diff --git a/.gitignore b/.gitignore index be75b6e..3f116f4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules/ npm-debug.log lerna-debug.log +*.vscode* diff --git a/packages/stepfunction-event-logger/Pipfile b/packages/stepfunction-event-logger/Pipfile new file mode 100644 index 0000000..bc74041 --- /dev/null +++ b/packages/stepfunction-event-logger/Pipfile @@ -0,0 +1,24 @@ +[[source]] +name = "pypi" +url = "https://pypi.org/simple" +verify_ssl = true + +[dev-packages] +pytest = "6.1.2" +black = "20.8b1" +flake8 = "3.8.4" +moto = "1.3.16" +boto3 = "1.16.25" + +[packages] + +[scripts] +unit-tests = "pytest lib/lambda/unit_tests" + +[requires] +python_version = "3.8" + + +[pipenv] +allow_prereleases = true + diff --git a/packages/stepfunction-event-logger/Pipfile.lock b/packages/stepfunction-event-logger/Pipfile.lock new file mode 100644 index 0000000..173e108 --- /dev/null +++ b/packages/stepfunction-event-logger/Pipfile.lock @@ -0,0 +1,708 @@ +{ + "_meta": { + "hash": { + "sha256": "4a706fef979cdb4b8d52d5ddcd9760c54ad2ada5b2b962dd3f179ef6ebe5f0ad" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.8" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": {}, + "develop": { + "appdirs": { + "hashes": [ + "sha256:7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41", + "sha256:a841dacd6b99318a741b166adb07e19ee71a274450e68237b4650ca1055ab128" + ], + "version": "==1.4.4" + }, + "attrs": { + "hashes": [ + "sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6", + "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==20.3.0" + }, + "aws-sam-translator": { + "hashes": [ + "sha256:3a1d73d098161e60966b0d53bb310c98e4f66101688cce3d1697903643782d79", + "sha256:65749571042e704027bbcaabe6dddd5d13ab54959c46e60c347918d6b85551fd", + "sha256:b87a61cffba8f29e4f1b5eb43a4abafdfb14b76aedc716517d48dbdf0b1f989a" + ], + "version": "==1.31.0" + }, + "aws-xray-sdk": { + "hashes": [ + "sha256:076f7c610cd3564bbba3507d43e328fb6ff4a2e841d3590f39b2c3ce99d41e1d", + "sha256:abf5b90f740e1f402e23414c9670e59cb9772e235e271fef2bce62b9100cbc77" + ], + "version": "==2.6.0" + }, + "black": { + "hashes": [ + "sha256:1c02557aa099101b9d21496f8a914e9ed2222ef70336404eeeac8edba836fbea" + ], + "index": "pypi", + "version": "==20.8b1" + }, + "boto": { + "hashes": [ + "sha256:147758d41ae7240dc989f0039f27da8ca0d53734be0eb869ef16e3adcfa462e8", + "sha256:ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a" + ], + "version": "==2.49.0" + }, + "boto3": { + "hashes": [ + "sha256:13e6ab0abe10b4de54583067d12ed48c8477d91b7a7a8e6097d366a2a3631d17", + "sha256:fb25ec578fe59aee298da2c976e2bcfd79a2eabead386e8e4f68bb3eb4ec50b3" + ], + "version": "==1.16.25" + }, + "botocore": { + "hashes": [ + "sha256:4e488351f399501a78b16e1dc466e505ccf63897c936030c56c6d3c37e57939c", + "sha256:ccaf3979590b72625b3699d93dabf48f350f9a3304c127fc6830e8ac842b0d96" + ], + "version": "==1.19.25" + }, + "certifi": { + "hashes": [ + "sha256:1f422849db327d534e3d0c5f02a263458c3955ec0aae4ff09b95f195c59f4edd", + "sha256:f05def092c44fbf25834a51509ef6e631dc19765ab8a57b4e7ab85531f0a9cf4" + ], + "version": "==2020.11.8" + }, + "cffi": { + "hashes": [ + "sha256:00a1ba5e2e95684448de9b89888ccd02c98d512064b4cb987d48f4b40aa0421e", + "sha256:00e28066507bfc3fe865a31f325c8391a1ac2916219340f87dfad602c3e48e5d", + "sha256:045d792900a75e8b1e1b0ab6787dd733a8190ffcf80e8c8ceb2fb10a29ff238a", + "sha256:0638c3ae1a0edfb77c6765d487fee624d2b1ee1bdfeffc1f0b58c64d149e7eec", + "sha256:105abaf8a6075dc96c1fe5ae7aae073f4696f2905fde6aeada4c9d2926752362", + "sha256:155136b51fd733fa94e1c2ea5211dcd4c8879869008fc811648f16541bf99668", + "sha256:1a465cbe98a7fd391d47dce4b8f7e5b921e6cd805ef421d04f5f66ba8f06086c", + "sha256:1d2c4994f515e5b485fd6d3a73d05526aa0fcf248eb135996b088d25dfa1865b", + "sha256:2c24d61263f511551f740d1a065eb0212db1dbbbbd241db758f5244281590c06", + "sha256:51a8b381b16ddd370178a65360ebe15fbc1c71cf6f584613a7ea08bfad946698", + "sha256:594234691ac0e9b770aee9fcdb8fa02c22e43e5c619456efd0d6c2bf276f3eb2", + "sha256:5cf4be6c304ad0b6602f5c4e90e2f59b47653ac1ed9c662ed379fe48a8f26b0c", + "sha256:64081b3f8f6f3c3de6191ec89d7dc6c86a8a43911f7ecb422c60e90c70be41c7", + "sha256:6bc25fc545a6b3d57b5f8618e59fc13d3a3a68431e8ca5fd4c13241cd70d0009", + "sha256:798caa2a2384b1cbe8a2a139d80734c9db54f9cc155c99d7cc92441a23871c03", + "sha256:7c6b1dece89874d9541fc974917b631406233ea0440d0bdfbb8e03bf39a49b3b", + "sha256:840793c68105fe031f34d6a086eaea153a0cd5c491cde82a74b420edd0a2b909", + "sha256:8d6603078baf4e11edc4168a514c5ce5b3ba6e3e9c374298cb88437957960a53", + "sha256:9cc46bc107224ff5b6d04369e7c595acb700c3613ad7bcf2e2012f62ece80c35", + "sha256:9f7a31251289b2ab6d4012f6e83e58bc3b96bd151f5b5262467f4bb6b34a7c26", + "sha256:9ffb888f19d54a4d4dfd4b3f29bc2c16aa4972f1c2ab9c4ab09b8ab8685b9c2b", + "sha256:a7711edca4dcef1a75257b50a2fbfe92a65187c47dab5a0f1b9b332c5919a3fb", + "sha256:af5c59122a011049aad5dd87424b8e65a80e4a6477419c0c1015f73fb5ea0293", + "sha256:b18e0a9ef57d2b41f5c68beefa32317d286c3d6ac0484efd10d6e07491bb95dd", + "sha256:b4e248d1087abf9f4c10f3c398896c87ce82a9856494a7155823eb45a892395d", + "sha256:ba4e9e0ae13fc41c6b23299545e5ef73055213e466bd107953e4a013a5ddd7e3", + "sha256:c6332685306b6417a91b1ff9fae889b3ba65c2292d64bd9245c093b1b284809d", + "sha256:d9efd8b7a3ef378dd61a1e77367f1924375befc2eba06168b6ebfa903a5e59ca", + "sha256:df5169c4396adc04f9b0a05f13c074df878b6052430e03f50e68adf3a57aa28d", + "sha256:ebb253464a5d0482b191274f1c8bf00e33f7e0b9c66405fbffc61ed2c839c775", + "sha256:ec80dc47f54e6e9a78181ce05feb71a0353854cc26999db963695f950b5fb375", + "sha256:f032b34669220030f905152045dfa27741ce1a6db3324a5bc0b96b6c7420c87b", + "sha256:f60567825f791c6f8a592f3c6e3bd93dd2934e3f9dac189308426bd76b00ef3b", + "sha256:f803eaa94c2fcda012c047e62bc7a51b0bdabda1cad7a92a522694ea2d76e49f" + ], + "version": "==1.14.4" + }, + "cfn-lint": { + "hashes": [ + "sha256:885be89cc66b754439c4e6bfe95d373fa183631e09494ec9f915c402588894ef", + "sha256:8cd2987e547f2779257de7e47b09ac7dbd14f788f19dc4892a3f32cc7d08599c" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.42.0" + }, + "chardet": { + "hashes": [ + "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", + "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" + ], + "version": "==3.0.4" + }, + "click": { + "hashes": [ + "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a", + "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==7.1.2" + }, + "cryptography": { + "hashes": [ + "sha256:07ca431b788249af92764e3be9a488aa1d39a0bc3be313d826bbec690417e538", + "sha256:13b88a0bd044b4eae1ef40e265d006e34dbcde0c2f1e15eb9896501b2d8f6c6f", + "sha256:32434673d8505b42c0de4de86da8c1620651abd24afe91ae0335597683ed1b77", + "sha256:3cd75a683b15576cfc822c7c5742b3276e50b21a06672dc3a800a2d5da4ecd1b", + "sha256:4e7268a0ca14536fecfdf2b00297d4e407da904718658c1ff1961c713f90fd33", + "sha256:545a8550782dda68f8cdc75a6e3bf252017aa8f75f19f5a9ca940772fc0cb56e", + "sha256:55d0b896631412b6f0c7de56e12eb3e261ac347fbaa5d5e705291a9016e5f8cb", + "sha256:5849d59358547bf789ee7e0d7a9036b2d29e9a4ddf1ce5e06bb45634f995c53e", + "sha256:6dc59630ecce8c1f558277ceb212c751d6730bd12c80ea96b4ac65637c4f55e7", + "sha256:7117319b44ed1842c617d0a452383a5a052ec6aa726dfbaffa8b94c910444297", + "sha256:75e8e6684cf0034f6bf2a97095cb95f81537b12b36a8fedf06e73050bb171c2d", + "sha256:7b8d9d8d3a9bd240f453342981f765346c87ade811519f98664519696f8e6ab7", + "sha256:a035a10686532b0587d58a606004aa20ad895c60c4d029afa245802347fab57b", + "sha256:a4e27ed0b2504195f855b52052eadcc9795c59909c9d84314c5408687f933fc7", + "sha256:a733671100cd26d816eed39507e585c156e4498293a907029969234e5e634bc4", + "sha256:a75f306a16d9f9afebfbedc41c8c2351d8e61e818ba6b4c40815e2b5740bb6b8", + "sha256:bd717aa029217b8ef94a7d21632a3bb5a4e7218a4513d2521c2a2fd63011e98b", + "sha256:d25cecbac20713a7c3bc544372d42d8eafa89799f492a43b79e1dfd650484851", + "sha256:d26a2557d8f9122f9bf445fc7034242f4375bd4e95ecda007667540270965b13", + "sha256:d3545829ab42a66b84a9aaabf216a4dce7f16dbc76eb69be5c302ed6b8f4a29b", + "sha256:d3d5e10be0cf2a12214ddee45c6bd203dab435e3d83b4560c03066eda600bfe3", + "sha256:efe15aca4f64f3a7ea0c09c87826490e50ed166ce67368a68f315ea0807a20df" + ], + "version": "==3.2.1" + }, + "decorator": { + "hashes": [ + "sha256:41fa54c2a0cc4ba648be4fd43cff00aedf5b9465c9bf18d64325bc225f08f760", + "sha256:e3a62f0520172440ca0dcc823749319382e377f37f140a0b99ef45fecb84bfe7" + ], + "version": "==4.4.2" + }, + "docker": { + "hashes": [ + "sha256:317e95a48c32de8c1aac92a48066a5b73e218ed096e03758bcdd799a7130a1a1", + "sha256:cffc771d4ea1389fc66bc95cb72d304aa41d1a1563482a9a000fba3a84ed5071" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==4.4.0" + }, + "ecdsa": { + "hashes": [ + "sha256:64c613005f13efec6541bb0a33290d0d03c27abab5f15fbab20fb0ee162bdd8e", + "sha256:e108a5fe92c67639abae3260e43561af914e7fd0d27bae6d2ec1312ae7934dfe" + ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'", + "version": "==0.14.1" + }, + "flake8": { + "hashes": [ + "sha256:749dbbd6bfd0cf1318af27bf97a14e28e5ff548ef8e5b1566ccfb25a11e7c839", + "sha256:aadae8761ec651813c24be05c6f7b4680857ef6afaae4651a4eccaef97ce6c3b" + ], + "index": "pypi", + "version": "==3.8.4" + }, + "future": { + "hashes": [ + "sha256:b1bead90b70cf6ec3f0710ae53a525360fa360d306a86583adc6bf83a4db537d" + ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'", + "version": "==0.18.2" + }, + "idna": { + "hashes": [ + "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6", + "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.10" + }, + "importlib-metadata": { + "hashes": [ + "sha256:590690d61efdd716ff82c39ca9a9d4209252adfe288a4b5721181050acbd4175", + "sha256:d9b8a46a0885337627a6430db287176970fff18ad421becec1d64cfc763c2099" + ], + "markers": "python_version >= '3.6'", + "version": "==3.1.0" + }, + "iniconfig": { + "hashes": [ + "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", + "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32" + ], + "version": "==1.1.1" + }, + "jinja2": { + "hashes": [ + "sha256:89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0", + "sha256:f0a4641d3cf955324a89c04f3d94663aa4d638abe8f733ecd3582848e1c37035" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==2.11.2" + }, + "jmespath": { + "hashes": [ + "sha256:b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9", + "sha256:cdf6525904cc597730141d61b36f2e4b8ecc257c420fa2f4549bac2c2d0cb72f" + ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'", + "version": "==0.10.0" + }, + "jsondiff": { + "hashes": [ + "sha256:34941bc431d10aa15828afe1cbb644977a114e75eef6cc74fb58951312326303" + ], + "version": "==1.2.0" + }, + "jsonpatch": { + "hashes": [ + "sha256:4d08af10d71723b5b2924da6ba90f273a4d1a5c6accfb605eb970cb2f9b29cf9", + "sha256:86eaaccfac8891c6a09ab48aec13fb5921ff32c838e7a19981f0d2b94915f668" + ], + "markers": "python_version != '3.4'", + "version": "==1.27" + }, + "jsonpickle": { + "hashes": [ + "sha256:8919c166bac0574e3d74425c7559434062002d9dfc0ac2afa6dc746ba4a19439", + "sha256:e8d4b7cd0bd6826001a74377df1079a76ad8bae0f909282de2554164c837c8ba" + ], + "markers": "python_version >= '2.7'", + "version": "==1.4.1" + }, + "jsonpointer": { + "hashes": [ + "sha256:c192ba86648e05fdae4f08a17ec25180a9aef5008d973407b581798a83975362", + "sha256:ff379fa021d1b81ab539f5ec467c7745beb1a5671463f9dcc2b2d458bd361c1e" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.0" + }, + "jsonschema": { + "hashes": [ + "sha256:4e5b3cf8216f577bee9ce139cbe72eca3ea4f292ec60928ff24758ce626cd163", + "sha256:c8a85b28d377cc7737e46e2d9f2b4f44ee3c0e1deac6bf46ddefc7187d30797a" + ], + "version": "==3.2.0" + }, + "junit-xml": { + "hashes": [ + "sha256:ec5ca1a55aefdd76d28fcc0b135251d156c7106fa979686a4b48d62b761b4732" + ], + "version": "==1.9" + }, + "markupsafe": { + "hashes": [ + "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473", + "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", + "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", + "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", + "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42", + "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", + "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", + "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", + "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", + "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", + "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", + "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b", + "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", + "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15", + "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", + "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", + "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", + "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", + "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", + "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", + "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", + "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", + "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", + "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", + "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", + "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", + "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", + "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", + "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", + "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", + "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2", + "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7", + "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.1.1" + }, + "mccabe": { + "hashes": [ + "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42", + "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f" + ], + "version": "==0.6.1" + }, + "mock": { + "hashes": [ + "sha256:3f9b2c0196c60d21838f307f5825a7b86b678cedc58ab9e50a8988187b4d81e0", + "sha256:dd33eb70232b6118298d516bbcecd26704689c386594f0f3c4f13867b2c56f72" + ], + "markers": "python_version >= '3.6'", + "version": "==4.0.2" + }, + "more-itertools": { + "hashes": [ + "sha256:8e1a2a43b2f2727425f2b5839587ae37093f19153dc26c0927d1048ff6557330", + "sha256:b3a9005928e5bed54076e6e549c792b306fddfe72b2d1d22dd63d42d5d3899cf" + ], + "markers": "python_version >= '3.5'", + "version": "==8.6.0" + }, + "moto": { + "hashes": [ + "sha256:6c686b1f117563391957ce47c2106bc3868783d59d0e004d2446dce875bec07f", + "sha256:f51903b6b532f6c887b111b3343f6925b77eef0505a914138d98290cf3526df9" + ], + "index": "pypi", + "version": "==1.3.16" + }, + "mypy-extensions": { + "hashes": [ + "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d", + "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8" + ], + "version": "==0.4.3" + }, + "networkx": { + "hashes": [ + "sha256:7978955423fbc9639c10498878be59caf99b44dc304c2286162fd24b458c1602", + "sha256:8c5812e9f798d37c50570d15c4a69d5710a18d77bafc903ee9c5fba7454c616c" + ], + "markers": "python_version >= '3.5'", + "version": "==2.5" + }, + "packaging": { + "hashes": [ + "sha256:4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8", + "sha256:998416ba6962ae7fbd6596850b80e17859a5753ba17c32284f67bfff33784181" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==20.4" + }, + "pathspec": { + "hashes": [ + "sha256:86379d6b86d75816baba717e64b1a3a3469deb93bb76d613c9ce79edc5cb68fd", + "sha256:aa0cb481c4041bf52ffa7b0d8fa6cd3e88a2ca4879c533c9153882ee2556790d" + ], + "version": "==0.8.1" + }, + "pluggy": { + "hashes": [ + "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0", + "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.13.1" + }, + "py": { + "hashes": [ + "sha256:366389d1db726cd2fcfc79732e75410e5fe4d31db13692115529d34069a043c2", + "sha256:9ca6883ce56b4e8da7e79ac18787889fa5206c79dcc67fb065376cd2fe03f342" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.9.0" + }, + "pyasn1": { + "hashes": [ + "sha256:014c0e9976956a08139dc0712ae195324a75e142284d5f87f1a87ee1b068a359", + "sha256:03840c999ba71680a131cfaee6fab142e1ed9bbd9c693e285cc6aca0d555e576", + "sha256:0458773cfe65b153891ac249bcf1b5f8f320b7c2ce462151f8fa74de8934becf", + "sha256:08c3c53b75eaa48d71cf8c710312316392ed40899cb34710d092e96745a358b7", + "sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d", + "sha256:5c9414dcfede6e441f7e8f81b43b34e834731003427e5b09e4e00e3172a10f00", + "sha256:6e7545f1a61025a4e58bb336952c5061697da694db1cae97b116e9c46abcf7c8", + "sha256:78fa6da68ed2727915c4767bb386ab32cdba863caa7dbe473eaae45f9959da86", + "sha256:7ab8a544af125fb704feadb008c99a88805126fb525280b2270bb25cc1d78a12", + "sha256:99fcc3c8d804d1bc6d9a099921e39d827026409a58f2a720dcdb89374ea0c776", + "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba", + "sha256:e89bf84b5437b532b0803ba5c9a5e054d21fec423a89952a74f87fa2c9b7bce2", + "sha256:fec3e9d8e36808a28efb59b489e4528c10ad0f480e57dcc32b4de5c9d8c9fdf3" + ], + "version": "==0.4.8" + }, + "pycodestyle": { + "hashes": [ + "sha256:2295e7b2f6b5bd100585ebcb1f616591b652db8a741695b3d8f5d28bdc934367", + "sha256:c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.6.0" + }, + "pycparser": { + "hashes": [ + "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0", + "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.20" + }, + "pyflakes": { + "hashes": [ + "sha256:0d94e0e05a19e57a99444b6ddcf9a6eb2e5c68d3ca1e98e90707af8152c90a92", + "sha256:35b2d75ee967ea93b55750aa9edbbf72813e06a66ba54438df2cfac9e3c27fc8" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.2.0" + }, + "pyparsing": { + "hashes": [ + "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1", + "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b" + ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'", + "version": "==2.4.7" + }, + "pyrsistent": { + "hashes": [ + "sha256:2e636185d9eb976a18a8a8e96efce62f2905fea90041958d8cc2a189756ebf3e" + ], + "markers": "python_version >= '3.5'", + "version": "==0.17.3" + }, + "pytest": { + "hashes": [ + "sha256:4288fed0d9153d9646bfcdf0c0428197dba1ecb27a33bb6e031d002fa88653fe", + "sha256:c0a7e94a8cdbc5422a51ccdad8e6f1024795939cc89159a0ae7f0b316ad3823e" + ], + "index": "pypi", + "version": "==6.1.2" + }, + "python-dateutil": { + "hashes": [ + "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c", + "sha256:75bb3f31ea686f1197762692a9ee6a7550b59fc6ca3a1f4b5d7e32fb98e2da2a" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "version": "==2.8.1" + }, + "python-jose": { + "extras": [ + "cryptography" + ], + "hashes": [ + "sha256:4e4192402e100b5fb09de5a8ea6bcc39c36ad4526341c123d401e2561720335b", + "sha256:67d7dfff599df676b04a996520d9be90d6cdb7e6dd10b4c7cacc0c3e2e92f2be" + ], + "version": "==3.2.0" + }, + "pytz": { + "hashes": [ + "sha256:3e6b7dd2d1e0a59084bcee14a17af60c5c562cdc16d828e8eba2e683d3a7e268", + "sha256:5c55e189b682d420be27c6995ba6edce0c0a77dd67bfbe2ae6607134d5851ffd" + ], + "version": "==2020.4" + }, + "pyyaml": { + "hashes": [ + "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97", + "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76", + "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2", + "sha256:6034f55dab5fea9e53f436aa68fa3ace2634918e8b5994d82f3621c04ff5ed2e", + "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648", + "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf", + "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f", + "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2", + "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee", + "sha256:ad9c67312c84def58f3c04504727ca879cb0013b2517c85a9a253f0cb6380c0a", + "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d", + "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c", + "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a" + ], + "markers": "python_version != '3.4'", + "version": "==5.3.1" + }, + "regex": { + "hashes": [ + "sha256:02951b7dacb123d8ea6da44fe45ddd084aa6777d4b2454fa0da61d569c6fa538", + "sha256:0d08e71e70c0237883d0bef12cad5145b84c3705e9c6a588b2a9c7080e5af2a4", + "sha256:1862a9d9194fae76a7aaf0150d5f2a8ec1da89e8b55890b1786b8f88a0f619dc", + "sha256:1ab79fcb02b930de09c76d024d279686ec5d532eb814fd0ed1e0051eb8bd2daa", + "sha256:1fa7ee9c2a0e30405e21031d07d7ba8617bc590d391adfc2b7f1e8b99f46f444", + "sha256:262c6825b309e6485ec2493ffc7e62a13cf13fb2a8b6d212f72bd53ad34118f1", + "sha256:2a11a3e90bd9901d70a5b31d7dd85114755a581a5da3fc996abfefa48aee78af", + "sha256:2c99e97d388cd0a8d30f7c514d67887d8021541b875baf09791a3baad48bb4f8", + "sha256:3128e30d83f2e70b0bed9b2a34e92707d0877e460b402faca908c6667092ada9", + "sha256:38c8fd190db64f513fe4e1baa59fed086ae71fa45083b6936b52d34df8f86a88", + "sha256:3bddc701bdd1efa0d5264d2649588cbfda549b2899dc8d50417e47a82e1387ba", + "sha256:4902e6aa086cbb224241adbc2f06235927d5cdacffb2425c73e6570e8d862364", + "sha256:49cae022fa13f09be91b2c880e58e14b6da5d10639ed45ca69b85faf039f7a4e", + "sha256:56e01daca75eae420bce184edd8bb341c8eebb19dd3bce7266332258f9fb9dd7", + "sha256:5862975b45d451b6db51c2e654990c1820523a5b07100fc6903e9c86575202a0", + "sha256:6a8ce43923c518c24a2579fda49f093f1397dad5d18346211e46f134fc624e31", + "sha256:6c54ce4b5d61a7129bad5c5dc279e222afd00e721bf92f9ef09e4fae28755683", + "sha256:6e4b08c6f8daca7d8f07c8d24e4331ae7953333dbd09c648ed6ebd24db5a10ee", + "sha256:717881211f46de3ab130b58ec0908267961fadc06e44f974466d1887f865bd5b", + "sha256:749078d1eb89484db5f34b4012092ad14b327944ee7f1c4f74d6279a6e4d1884", + "sha256:7913bd25f4ab274ba37bc97ad0e21c31004224ccb02765ad984eef43e04acc6c", + "sha256:7a25fcbeae08f96a754b45bdc050e1fb94b95cab046bf56b016c25e9ab127b3e", + "sha256:83d6b356e116ca119db8e7c6fc2983289d87b27b3fac238cfe5dca529d884562", + "sha256:8b882a78c320478b12ff024e81dc7d43c1462aa4a3341c754ee65d857a521f85", + "sha256:8f6a2229e8ad946e36815f2a03386bb8353d4bde368fdf8ca5f0cb97264d3b5c", + "sha256:9801c4c1d9ae6a70aeb2128e5b4b68c45d4f0af0d1535500884d644fa9b768c6", + "sha256:a15f64ae3a027b64496a71ab1f722355e570c3fac5ba2801cafce846bf5af01d", + "sha256:a3d748383762e56337c39ab35c6ed4deb88df5326f97a38946ddd19028ecce6b", + "sha256:a63f1a07932c9686d2d416fb295ec2c01ab246e89b4d58e5fa468089cab44b70", + "sha256:b2b1a5ddae3677d89b686e5c625fc5547c6e492bd755b520de5332773a8af06b", + "sha256:b2f4007bff007c96a173e24dcda236e5e83bde4358a557f9ccf5e014439eae4b", + "sha256:baf378ba6151f6e272824b86a774326f692bc2ef4cc5ce8d5bc76e38c813a55f", + "sha256:bafb01b4688833e099d79e7efd23f99172f501a15c44f21ea2118681473fdba0", + "sha256:bba349276b126947b014e50ab3316c027cac1495992f10e5682dc677b3dfa0c5", + "sha256:c084582d4215593f2f1d28b65d2a2f3aceff8342aa85afd7be23a9cad74a0de5", + "sha256:d1ebb090a426db66dd80df8ca85adc4abfcbad8a7c2e9a5ec7513ede522e0a8f", + "sha256:d2d8ce12b7c12c87e41123997ebaf1a5767a5be3ec545f64675388970f415e2e", + "sha256:e32f5f3d1b1c663af7f9c4c1e72e6ffe9a78c03a31e149259f531e0fed826512", + "sha256:e3faaf10a0d1e8e23a9b51d1900b72e1635c2d5b0e1bea1c18022486a8e2e52d", + "sha256:f7d29a6fc4760300f86ae329e3b6ca28ea9c20823df123a2ea8693e967b29917", + "sha256:f8f295db00ef5f8bae530fc39af0b40486ca6068733fb860b42115052206466f" + ], + "version": "==2020.11.13" + }, + "requests": { + "hashes": [ + "sha256:7f1a0b932f4a60a1a65caa4263921bb7d9ee911957e0ae4a23a6dd08185ad5f8", + "sha256:e786fa28d8c9154e6a4de5d46a1d921b8749f8b74e28bde23768e5e16eece998" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==2.25.0" + }, + "responses": { + "hashes": [ + "sha256:2e5764325c6b624e42b428688f2111fea166af46623cb0127c05f6afb14d3457", + "sha256:ef265bd3200bdef5ec17912fc64a23570ba23597fd54ca75c18650fa1699213d" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==0.12.1" + }, + "rsa": { + "hashes": [ + "sha256:109ea5a66744dd859bf16fe904b8d8b627adafb9408753161e766a92e7d681fa", + "sha256:6166864e23d6b5195a5cfed6cd9fed0fe774e226d8f854fcb23b7bbef0350233" + ], + "markers": "python_version >= '3.5' and python_version < '4'", + "version": "==4.6" + }, + "s3transfer": { + "hashes": [ + "sha256:2482b4259524933a022d59da830f51bd746db62f047d6eb213f2f8855dcb8a13", + "sha256:921a37e2aefc64145e7b73d50c71bb4f26f46e4c9f414dc648c6245ff92cf7db" + ], + "version": "==0.3.3" + }, + "six": { + "hashes": [ + "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259", + "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", + "version": "==1.15.0" + }, + "sshpubkeys": { + "hashes": [ + "sha256:9f73d51c2ef1e68cd7bde0825df29b3c6ec89f4ce24ebca3bf9eaa4a23a284db", + "sha256:b388399caeeccdc145f06fd0d2665eeecc545385c60b55c282a15a022215af80" + ], + "markers": "python_version > '3'", + "version": "==3.1.0" + }, + "toml": { + "hashes": [ + "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", + "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" + ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'", + "version": "==0.10.2" + }, + "typed-ast": { + "hashes": [ + "sha256:0666aa36131496aed8f7be0410ff974562ab7eeac11ef351def9ea6fa28f6355", + "sha256:0c2c07682d61a629b68433afb159376e24e5b2fd4641d35424e462169c0a7919", + "sha256:0d8110d78a5736e16e26213114a38ca35cb15b6515d535413b090bd50951556d", + "sha256:249862707802d40f7f29f6e1aad8d84b5aa9e44552d2cc17384b209f091276aa", + "sha256:24995c843eb0ad11a4527b026b4dde3da70e1f2d8806c99b7b4a7cf491612652", + "sha256:269151951236b0f9a6f04015a9004084a5ab0d5f19b57de779f908621e7d8b75", + "sha256:3742b32cf1c6ef124d57f95be609c473d7ec4c14d0090e5a5e05a15269fb4d0c", + "sha256:4083861b0aa07990b619bd7ddc365eb7fa4b817e99cf5f8d9cf21a42780f6e01", + "sha256:498b0f36cc7054c1fead3d7fc59d2150f4d5c6c56ba7fb150c013fbc683a8d2d", + "sha256:4e3e5da80ccbebfff202a67bf900d081906c358ccc3d5e3c8aea42fdfdfd51c1", + "sha256:6daac9731f172c2a22ade6ed0c00197ee7cc1221aa84cfdf9c31defeb059a907", + "sha256:715ff2f2df46121071622063fc7543d9b1fd19ebfc4f5c8895af64a77a8c852c", + "sha256:73d785a950fc82dd2a25897d525d003f6378d1cb23ab305578394694202a58c3", + "sha256:7e4c9d7658aaa1fc80018593abdf8598bf91325af6af5cce4ce7c73bc45ea53d", + "sha256:8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b", + "sha256:8ce678dbaf790dbdb3eba24056d5364fb45944f33553dd5869b7580cdbb83614", + "sha256:92c325624e304ebf0e025d1224b77dd4e6393f18aab8d829b5b7e04afe9b7a2c", + "sha256:aaee9905aee35ba5905cfb3c62f3e83b3bec7b39413f0a7f19be4e547ea01ebb", + "sha256:b52ccf7cfe4ce2a1064b18594381bccf4179c2ecf7f513134ec2f993dd4ab395", + "sha256:bcd3b13b56ea479b3650b82cabd6b5343a625b0ced5429e4ccad28a8973f301b", + "sha256:c9e348e02e4d2b4a8b2eedb48210430658df6951fa484e59de33ff773fbd4b41", + "sha256:d205b1b46085271b4e15f670058ce182bd1199e56b317bf2ec004b6a44f911f6", + "sha256:d43943ef777f9a1c42bf4e552ba23ac77a6351de620aa9acf64ad54933ad4d34", + "sha256:d5d33e9e7af3b34a40dc05f498939f0ebf187f07c385fd58d591c533ad8562fe", + "sha256:d648b8e3bf2fe648745c8ffcee3db3ff903d0817a01a12dd6a6ea7a8f4889072", + "sha256:f208eb7aff048f6bea9586e61af041ddf7f9ade7caed625742af423f6bae3298", + "sha256:fac11badff8313e23717f3dada86a15389d0708275bddf766cca67a84ead3e91", + "sha256:fc0fea399acb12edbf8a628ba8d2312f583bdbdb3335635db062fa98cf71fca4", + "sha256:fcf135e17cc74dbfbc05894ebca928ffeb23d9790b3167a674921db19082401f", + "sha256:fe460b922ec15dd205595c9b5b99e2f056fd98ae8f9f56b888e7a17dc2b757e7" + ], + "version": "==1.4.1" + }, + "typing-extensions": { + "hashes": [ + "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918", + "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c", + "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f" + ], + "version": "==3.7.4.3" + }, + "urllib3": { + "hashes": [ + "sha256:19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08", + "sha256:d8ff90d979214d7b4f8ce956e80f4028fc6860e4431f731ea4a8c08f23f99473" + ], + "markers": "python_version != '3.4'", + "version": "==1.26.2" + }, + "websocket-client": { + "hashes": [ + "sha256:0fc45c961324d79c781bab301359d5a1b00b13ad1b10415a4780229ef71a5549", + "sha256:d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010" + ], + "version": "==0.57.0" + }, + "werkzeug": { + "hashes": [ + "sha256:2de2a5db0baeae7b2d2664949077c2ac63fbd16d98da0ff71837f7d1dea3fd43", + "sha256:6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==1.0.1" + }, + "wrapt": { + "hashes": [ + "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7" + ], + "version": "==1.12.1" + }, + "xmltodict": { + "hashes": [ + "sha256:50d8c638ed7ecb88d90561beedbf720c9b4e851a9fa6c47ebd64e99d166d8a21", + "sha256:8bbcb45cc982f48b2ca8fe7e7827c5d792f217ecf1792626f808bf41c3b86051" + ], + "version": "==0.12.0" + }, + "zipp": { + "hashes": [ + "sha256:102c24ef8f171fd729d46599845e95c7ab894a4cf45f5de11a44cc7444fb1108", + "sha256:ed5eee1974372595f9e416cc7bbeeb12335201d8081ca8a0743c954d4446e5cb" + ], + "markers": "python_version >= '3.6'", + "version": "==3.4.0" + } + } +} diff --git a/packages/stepfunction-event-logger/README.md b/packages/stepfunction-event-logger/README.md new file mode 100644 index 0000000..c2582db --- /dev/null +++ b/packages/stepfunction-event-logger/README.md @@ -0,0 +1,11 @@ +# `@cdk-seed/stepfunction-event-logger` + +> TODO: description + +## Usage + +``` +const stepfunctionEventLogger = require('@cdk-seed/stepfunction-event-logger'); + +// TODO: DEMONSTRATE API +``` diff --git a/packages/stepfunction-event-logger/__tests__/stepfunction-event-logger.test.js b/packages/stepfunction-event-logger/__tests__/stepfunction-event-logger.test.js new file mode 100644 index 0000000..0aa84df --- /dev/null +++ b/packages/stepfunction-event-logger/__tests__/stepfunction-event-logger.test.js @@ -0,0 +1,7 @@ +'use strict'; + +const stepfunctionEventLogger = require('..'); + +describe('@cdk-seed/stepfunction-event-logger', () => { + it('needs tests'); +}); diff --git a/packages/stepfunction-event-logger/lib/index.ts b/packages/stepfunction-event-logger/lib/index.ts new file mode 100644 index 0000000..323994a --- /dev/null +++ b/packages/stepfunction-event-logger/lib/index.ts @@ -0,0 +1,223 @@ +import { Construct, Duration } from "@aws-cdk/core"; +import * as sqs from "@aws-cdk/aws-sqs"; +import * as events from "@aws-cdk/aws-events"; +import * as events_targets from "@aws-cdk/aws-events-targets"; +import * as lambda from "@aws-cdk/aws-lambda"; +import * as lambda_event_sources from "@aws-cdk/aws-lambda-event-sources"; +import * as dynamodb from "@aws-cdk/aws-dynamodb"; +import * as path from "path"; +import { StateMachine } from "@aws-cdk/aws-stepfunctions"; + +export enum EventLoggingLevel { + FULL = "FULL", + SUMMARY = "SUMMARY" +} +export enum Datastore { + DYNAMODB = "Dynamodb", + POSTGRES = "Postgres" +} + +export interface EventLoggerBaseProps { + readonly stepfunctions: Array +} +export interface EventLoggerCustomLambdaProps extends EventLoggerBaseProps { + readonly lambda: lambda.Function +} +export interface EventLoggerStandardLambdaProps extends EventLoggerBaseProps { + readonly eventLoggingLevel: EventLoggingLevel + readonly datastore: Datastore + // readonly dynamodbSettings?: DynamodbSettings +} + +export class StepFunctionEventLogger extends Construct { + constructor(scope: Construct, id: string, props: EventLoggerStandardLambdaProps | EventLoggerCustomLambdaProps) { + super(scope, id); + + function isCustomLambda(props: EventLoggerStandardLambdaProps | EventLoggerCustomLambdaProps): props is EventLoggerCustomLambdaProps { + return (props as EventLoggerCustomLambdaProps).lambda !== undefined + }; + + const deadLetterQueue = new sqs.Queue( + this, "EventLoggerDeadLetterQueue", { + retentionPeriod: Duration.days(14) + }); + + const mainQueue = new sqs.Queue( + this, "EventLoggingQueue", { + deadLetterQueue: { + maxReceiveCount: 6, + queue: deadLetterQueue + }, + retentionPeriod: Duration.days(1), + visibilityTimeout: Duration.minutes(1) + }); + + var stepfunctionArns = Array(); + + props.stepfunctions.forEach(sf => { + stepfunctionArns.push(sf.stateMachineArn) + }); + + new events.Rule( + this, "EventNotificationToSQSRule", + { + ruleName: "SendNewStepFunctionEventToQueue", + description: "Captures status changed events from StepFunction and creates a message in SQS", + eventPattern: { + detail: { + status: ["SUCCEEDED", "FAILED", "ABORTED", "TIMED_OUT"], + stateMachineArn: stepfunctionArns + }, + detailType: ["Step Functions Execution Status Change"], + source: ["aws.states"], + }, + targets: [new events_targets.SqsQueue(mainQueue)] + } + ) + const SQSMessageProcessorFunction = isCustomLambda(props) ? props.lambda : this.createMessageProcessorFunction(props.eventLoggingLevel, props.datastore) + + // grants message processor lambda permission to consume messages from SQS Queue + mainQueue.grantConsumeMessages(SQSMessageProcessorFunction) + + SQSMessageProcessorFunction.addEventSource(new lambda_event_sources.SqsEventSource(mainQueue)) + + // grants message processor lambda permsisions to read stepfunction execution history + props.stepfunctions.forEach(sf => { sf.grantRead(SQSMessageProcessorFunction) }); + } + + + createMessageProcessorFunction( + eventLoggingLevel: EventLoggingLevel, + datastore: Datastore + ) { + const SQSMessageProcessorFunction = new lambda.Function( + this, "SQSMessageProcessorFunction", + { + runtime: lambda.Runtime.PYTHON_3_8, + code: lambda.Code.fromAsset(path.join(__dirname, "lambda", "src")), + handler: "event_logger.handler", + timeout: Duration.minutes(1), + + } + ); + + SQSMessageProcessorFunction.addEnvironment( + "EVENT_LOGGING_LEVEL", eventLoggingLevel + ) + + SQSMessageProcessorFunction.addEnvironment( + "DATASTORE_TYPE", datastore + ) + + this.createDatastore(SQSMessageProcessorFunction, datastore, eventLoggingLevel); + + return SQSMessageProcessorFunction; + } + + createDatastore( + SQSMessageProcessorFunction: lambda.Function, + datastore: Datastore, + loglevel: EventLoggingLevel + ) { + if (datastore === Datastore.DYNAMODB) { + const dynamodb_datastore = new dynamodb.Table( + this, "EventsDatastore", { + partitionKey: { + name: "execution_id", + type: dynamodb.AttributeType.STRING + }, + sortKey: { + name: "step_id", + type: dynamodb.AttributeType.STRING + }, + }); + // TODO: make capacity and indexes configurable + dynamodb_datastore.autoScaleReadCapacity({ + minCapacity: 5, + maxCapacity: 10000 + }) + dynamodb_datastore.autoScaleWriteCapacity({ + minCapacity: 5, + maxCapacity: 10000 + }) + + + if (loglevel === EventLoggingLevel.FULL) { + dynamodb_datastore.addGlobalSecondaryIndex( + { + indexName: "EventType-Timestamp-Index", + partitionKey: { + name: "type", + type: dynamodb.AttributeType.STRING + }, + sortKey: { + name: "timestamp", + type: dynamodb.AttributeType.STRING + } + } + ) + + + dynamodb_datastore.autoScaleGlobalSecondaryIndexReadCapacity( + "EventType-Timestamp-Index", + { + minCapacity: 5, + maxCapacity: 10000 + } + ) + dynamodb_datastore.autoScaleGlobalSecondaryIndexWriteCapacity( + "EventType-Timestamp-Index", + { + minCapacity: 5, + maxCapacity: 10000 + } + ) + } else if (loglevel === EventLoggingLevel.SUMMARY) { + dynamodb_datastore.addGlobalSecondaryIndex( + { + indexName: "ExecutionStatus-Timestamp-Index", + partitionKey: { + name: "Status", + type: dynamodb.AttributeType.STRING + }, + sortKey: { + name: "timestamp", + type: dynamodb.AttributeType.STRING + } + } + ) + + + dynamodb_datastore.autoScaleGlobalSecondaryIndexReadCapacity( + "ExecutionStatus-Timestamp-Index", + { + minCapacity: 5, + maxCapacity: 10000 + } + ) + dynamodb_datastore.autoScaleGlobalSecondaryIndexWriteCapacity( + "ExecutionStatus-Timestamp-Index", + { + minCapacity: 5, + maxCapacity: 10000 + } + ) + } + + + // grants message processor lambda permission to write to DynamoDB + dynamodb_datastore.grantWriteData(SQSMessageProcessorFunction) + + SQSMessageProcessorFunction.addEnvironment( + "DATASTORE_ARN", dynamodb_datastore.tableArn + ) + } else if (datastore === Datastore.POSTGRES) { + // TODO: + // const postgres_datastore = new ... + + // TODO: grant lambda access to postgres_datastore + // datastoreArn = postgres_datastore.tableArn; + }; + } + +} diff --git a/packages/stepfunction-event-logger/lib/lambda/__init__.py b/packages/stepfunction-event-logger/lib/lambda/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/packages/stepfunction-event-logger/lib/lambda/src/__init__.py b/packages/stepfunction-event-logger/lib/lambda/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/packages/stepfunction-event-logger/lib/lambda/src/event_logger.py b/packages/stepfunction-event-logger/lib/lambda/src/event_logger.py new file mode 100644 index 0000000..d6dd8d6 --- /dev/null +++ b/packages/stepfunction-event-logger/lib/lambda/src/event_logger.py @@ -0,0 +1,98 @@ +import json +import os +from decimal import Decimal +from datetime import datetime +from typing import List +from .utils.types import ( + ExecutionDetails, + CloudwatchEvent, + SqsMessage, + StepFunctionHistoryEvent, +) +from .utils.services import stepfunction_client as sfn, dynamodb_resource as ddb + +TIMESTAMP_FMT = "%Y-%m-%dT%H:%M%S.%f%z" + + +def get_steps_details(execution_arn: str) -> List[StepFunctionHistoryEvent]: + + response = sfn().get_execution_history(executionArn=execution_arn) + execution_history: List[StepFunctionHistoryEvent] = response["events"] + while "nextToken" in response: + response = sfn().get_execution_history(executionArn=execution_arn) + execution_history.extend(response["events"]) + + return [ + { + "execution_id": execution_arn.split(":")[-1], + "stepfunction_name": execution_arn.split(":")[-2], + "step_id": f"{i['timestamp'].strftime(TIMESTAMP_FMT)}_{i['id']}", + "step_number": i["id"], + **{k: v for k, v in i.items() if k != "id"}, + } + for i in execution_history + ] + + +def generate_table_records(sqs_message: SqsMessage): + """ + Handler to process an SQS message generated by a StepFunction FAILED or SUCCEEDED + EventBridge Rule. First the StepFunction execution history is queried and + appropriate DynamoDB records are generated to store the successfull ingestion or + the failure. + + """ + msg: CloudwatchEvent = json.loads(sqs_message["body"]) + detail: ExecutionDetails = msg["detail"] + + execution_id = detail["executionArn"].split(":")[-1] + stepfunction_name = detail["executionArn"].split(":")[-2] + + items = [ + { + "execution_id": execution_id, + "step_id": f"{datetime.fromtimestamp(detail['startDate'] / 1000).strftime(TIMESTAMP_FMT)}_summary", + "stepfunction_name": stepfunction_name, + "status": detail["status"], + "input": json.loads(detail["input"]), + "output": json.loads(detail["output"]) if detail["output"] else "", + "startDate": datetime.fromtimestamp(detail["startDate"] / 1000).strftime( + TIMESTAMP_FMT + ), + "stopDate": datetime.fromtimestamp(detail["stopDate"] / 1000).strftime( + TIMESTAMP_FMT + ), + "startDate_raw": detail["startDate"], + "stopDate_raw": detail["stopDate"], + } + ] + + if os.environ.get("EVENT_LOGGING_LEVEL", "") == "SUMMARY": + return items + + items.extend(get_steps_details(detail["executionArn"])) + return items + + +def handle_dynamodb(event): + table_name = os.environ["DATASTORE_ARN"].split("/")[-1] + table = ddb().Table(table_name) + + with table.batch_writer() as batch: + for sqs_message in event["Records"]: + for item in generate_table_records(sqs_message): + batch.put_item( + Item=json.loads(json.dumps(item, default=str), parse_float=Decimal) + ) + + +def handle_postgres(event): + # TODO - implement + raise NotImplementedError + + +def handler(event, context): + if os.environ["DATASTORE_TYPE"] == "Dynamodb": + return handle_dynamodb(event) + if os.environ["DATASTORE_TYPE"] == "Postgres": + return handle_postgres(event) diff --git a/packages/stepfunction-event-logger/lib/lambda/src/utils/__init__.py b/packages/stepfunction-event-logger/lib/lambda/src/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/packages/stepfunction-event-logger/lib/lambda/src/utils/services.py b/packages/stepfunction-event-logger/lib/lambda/src/utils/services.py new file mode 100644 index 0000000..a502511 --- /dev/null +++ b/packages/stepfunction-event-logger/lib/lambda/src/utils/services.py @@ -0,0 +1,13 @@ +def stepfunction_client(): + import boto3 + from botocore.config import Config + + return boto3.client( + "stepfunctions", config=Config(retries={"max_attempts": 10, "mode": "standard"}) + ) + + +def dynamodb_resource(): + import boto3 + + return boto3.resource("dynamodb") diff --git a/packages/stepfunction-event-logger/lib/lambda/src/utils/types.py b/packages/stepfunction-event-logger/lib/lambda/src/utils/types.py new file mode 100644 index 0000000..ca0fba9 --- /dev/null +++ b/packages/stepfunction-event-logger/lib/lambda/src/utils/types.py @@ -0,0 +1,118 @@ +from typing import TypedDict, List, Optional +from datetime import datetime + + +class StepFunctionHistoryEvent(TypedDict): + timestamp: datetime + id: str + previousEventId: str + type: str + execution_arn: Optional[str] + + +class ExecutionDetails(TypedDict): + executionArn: str + stateMachineArn: str + name: str + status: str + startDate: int + stopDate: int + input: str + output: str + + +# Create a base object to avoid error due to the hyphenated key +# `detail-type` in the actual CloudwatchEvent Class +_CloudwatchEventBase = TypedDict("CloudwatchEventBase", {"detail-type": str}) + + +class CloudwatchEvent(_CloudwatchEventBase): + version: str + id: str + source: str + account: str + time: str + region: str + resources: List[str] + detail: ExecutionDetails + + +_SqsMessageAttributesBase = TypedDict( + "SqsMessageAttributesBase", + { + "ApproximateReceiveCount": str, + "SentTimestamp": str, + "SenderId": str, + "ApproximateFirstReceiveTimestamp": str, + }, +) + + +class SqsMessageAttributes(_SqsMessageAttributesBase): + pass + + +class SqsMessage(TypedDict): + messageId: str + receiptHandle: str + body: str + attributes: SqsMessageAttributes + messageAttributes: dict + md5OfBody: str + eventSource: str + eventSourceARN: str + awsRegion: str + + +_SqsStdQueueEventBase = TypedDict("SqsStdQueueEventBase", {"Records": List[SqsMessage]}) + + +class SqsStdQueueEvent(_SqsStdQueueEventBase): + """ https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html """ + + pass + + +class StepFunctionInput(TypedDict): + key: str + + +class FailedEvent(TypedDict): + error: str + cause: str + + +class EventsTableRecord(TypedDict): + partition_key: str + sort_key: str + + sfn_name: str + sfn_exec_start_ts: int + event_id: str + status: str + record_type: str + + +class FailedStepDetails(TypedDict): + failed_step_name: str + failed_step_input: str + failed_step_error_message: str + failed_step_error_name: str + + +class EventsTableFailedRecord(EventsTableRecord, FailedStepDetails): + pass + + +class EventsTableSnapshotRecord(EventsTableRecord): + sfn_exec_name: str + + +class EventsTableHistoryRecord(EventsTableRecord): + stac_item_id: str + + +class FailedEventsTableSnapshotRecord( + EventsTableFailedRecord, EventsTableSnapshotRecord +): + pass \ No newline at end of file diff --git a/packages/stepfunction-event-logger/lib/lambda/unit_tests/__init__.py b/packages/stepfunction-event-logger/lib/lambda/unit_tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/packages/stepfunction-event-logger/lib/lambda/unit_tests/conftest.py b/packages/stepfunction-event-logger/lib/lambda/unit_tests/conftest.py new file mode 100644 index 0000000..5912a17 --- /dev/null +++ b/packages/stepfunction-event-logger/lib/lambda/unit_tests/conftest.py @@ -0,0 +1,103 @@ +import pytest +import json +from moto import mock_stepfunctions, mock_lambda +import boto3 + + +@pytest.fixture(autouse=True) +def aws_credentials(monkeypatch): + """Mocked AWS Credentials for moto.""" + monkeypatch.setenv("AWS_ACCESS_KEY_ID", "testing") + monkeypatch.setenv("AWS_SECRET_ACCESS_KEY", "testing") + monkeypatch.setenv("AWS_SECURITY_TOKEN", "testing") + monkeypatch.setenv("AWS_SESSION_TOKEN", "testing") + + +@pytest.fixture() +def stepfunction_client(): + with mock_stepfunctions(): + yield boto3.client("stepfunctions", region_name="us-east-1") + + +@pytest.fixture() +def lambda_client(): + with mock_lambda(): + yield boto3.client("lambda", region_name="us-east-1") + + +@pytest.fixture +def mock_failed_stepfunction_execution_arn( + stepfunction_client, mock_failing_stepfunction_arn +): + execution = stepfunction_client.start_execution( + stateMachineArn=mock_failing_stepfunction_arn, + input=json.dumps({"ping": "pong"}), + ) + return execution["executionArn"] + + +@pytest.fixture +def mock_stepfunction_execution_arn(stepfunction_client, mock_stepfunction_arn): + execution = stepfunction_client.start_execution( + stateMachineArn=mock_stepfunction_arn, input=json.dumps({"ping": "pong"}) + ) + return execution["executionArn"] + + +@pytest.fixture +def mock_failing_stepfunction_arn(stepfunction_client): + stepfunction = stepfunction_client.create_state_machine( + name="TestFailStepFunction", + roleArn="arn:aws:iam::123456789012:role/TestRole", + definition=json.dumps( + { + "StartAt": "FirstState", + "States": { + "FirstState": {"Type": "Pass", "Next": "SecondState"}, + "SecondState": {"Type": "Fail", "End": True}, + }, + } + ), + ) + return stepfunction["stateMachineArn"] + + +@pytest.fixture +def mock_stepfunction_arn(stepfunction_client): + stepfunction = stepfunction_client.create_state_machine( + name="TestStepFunction", + roleArn="arn:aws:iam::123456789012:role/TestRole", + definition=json.dumps( + { + "StartAt": "FirstState", + "States": { + "FirstState": {"Type": "Pass", "Next": "SecondState"}, + "SecondState": {"Type": "Pass", "End": True}, + }, + } + ), + ) + return stepfunction["stateMachineArn"] + + +@pytest.fixture +def mock_summary_logging_level_env_var(monkeypatch): + monkeypatch.setenv("EVENT_LOGGING_LEVEL", "SUMMARY") + return "SUMMARY" + + +@pytest.fixture +def mock_full_logging_level_env_var(monkeypatch): + monkeypatch.setenv("EVENT_LOGGING_LEVEL", "FULL") + return "FULL" + + +@pytest.fixture +def json_data(filepath): + """ + Opens a json file as a dictionary. Expects test to be parametrized with + "filepath", e.g.: + @pytest.mark.parametrize("filepath", [my_filepath]) + """ + with open(filepath, "rb") as f: + yield json.load(f) diff --git a/packages/stepfunction-event-logger/lib/lambda/unit_tests/sqs_records.json b/packages/stepfunction-event-logger/lib/lambda/unit_tests/sqs_records.json new file mode 100644 index 0000000..902498b --- /dev/null +++ b/packages/stepfunction-event-logger/lib/lambda/unit_tests/sqs_records.json @@ -0,0 +1,20 @@ +{ + "Records": [ + { + "messageId": "29a2dcc4-4d16-4bf5-a639-c49852edae07", + "receiptHandle": "AQEBRiXLdBRBWmZ4Rwk/wfu4Mh8SOhtMJDEbwQ9Do/2UUP9mttP8aQmoGT37Ja8iwkZkDqSiakN7YLuUG+pXEa110I91ssL5SdlN4lgnUmeiiL7vFvXS534vMidXExfMU3nehPYQGgH4oXR2G2BWHpOKHR8eTZNv/PnERUnDGOydQQCF9wZCkByW1869DmcFkhDwsuKZISgf5dTWZVTkTX2ShyAQuFa+WKN4aUVtglvpGJDcrTgCikKhknFAjc+xonRJAJwM2eMXX269JtA1XLOcsmqvc6TAKTTnpe2fYHNs/SSThZYX2fsUVtXnRyqNP67iv5kXibPlWvLN0hn7fecV20QgHu/bbumVdwdSE5+JpwUvsVhQZsiPq/UXgqvPZ/Vl1oRZsUEt9+uvrOf7wzy9APnWU8raKKmO2szf7fn4aiAafo0PY/iXw0vmgl75YH4+PZ5OK0ngscD2l9i/SSSGem9tiD8dNdw6OtCjceSn5L8=", + "body": "{\"version\":\"0\",\"id\":\"9c3fd9ae-07b7-b8c0-3386-fa65300c998b\",\"detail-type\":\"Step Functions Execution Status Change\",\"source\":\"aws.states\",\"account\":\"278255066410\",\"time\":\"2020-11-18T14:41:29Z\",\"region\":\"us-east-1\",\"resources\":[\"arn:aws:states:us-east-1:278255066410:execution:EventLoggerTestStateMachine2AA2ECF9-EpNnq9esNvsS:test7\"],\"detail\":{\"executionArn\":\"arn:aws:states:us-east-1:278255066410:execution:EventLoggerTestStateMachine2AA2ECF9-EpNnq9esNvsS:test7\",\"stateMachineArn\":\"arn:aws:states:us-east-1:278255066410:stateMachine:EventLoggerTestStateMachine2AA2ECF9-EpNnq9esNvsS\",\"name\":\"test7\",\"status\":\"SUCCEEDED\",\"startDate\":1605710489061,\"stopDate\":1605710489866,\"input\":\"{\\n \\\"ping\\\":\\\"pong\\\"\\n}\",\"inputDetails\":{\"included\":true},\"output\":\"{\\\"ExecutedVersion\\\":\\\"$LATEST\\\",\\\"Payload\\\":{\\\"task1_output\\\":\\\"(With borat voice) Great Success from task 2!\\\"},\\\"SdkHttpMetadata\\\":{\\\"AllHttpHeaders\\\":{\\\"X-Amz-Executed-Version\\\":[\\\"$LATEST\\\"],\\\"x-amzn-Remapped-Content-Length\\\":[\\\"0\\\"],\\\"Connection\\\":[\\\"keep-alive\\\"],\\\"x-amzn-RequestId\\\":[\\\"c45e9f2c-afd0-4e5e-b434-1441b5e5772e\\\"],\\\"Content-Length\\\":[\\\"65\\\"],\\\"Date\\\":[\\\"Wed, 18 Nov 2020 14:41:29 GMT\\\"],\\\"X-Amzn-Trace-Id\\\":[\\\"root=1-5fb53299-74192d6a039648d809b12d94;sampled=0\\\"],\\\"Content-Type\\\":[\\\"application/json\\\"]},\\\"HttpHeaders\\\":{\\\"Connection\\\":\\\"keep-alive\\\",\\\"Content-Length\\\":\\\"65\\\",\\\"Content-Type\\\":\\\"application/json\\\",\\\"Date\\\":\\\"Wed, 18 Nov 2020 14:41:29 GMT\\\",\\\"X-Amz-Executed-Version\\\":\\\"$LATEST\\\",\\\"x-amzn-Remapped-Content-Length\\\":\\\"0\\\",\\\"x-amzn-RequestId\\\":\\\"c45e9f2c-afd0-4e5e-b434-1441b5e5772e\\\",\\\"X-Amzn-Trace-Id\\\":\\\"root=1-5fb53299-74192d6a039648d809b12d94;sampled=0\\\"},\\\"HttpStatusCode\\\":200},\\\"SdkResponseMetadata\\\":{\\\"RequestId\\\":\\\"c45e9f2c-afd0-4e5e-b434-1441b5e5772e\\\"},\\\"StatusCode\\\":200}\",\"outputDetails\":{\"included\":true}}}", + "attributes": { + "ApproximateReceiveCount": "1", + "SentTimestamp": "1605710490133", + "SenderId": "AIDAJXNJGGKNS7OSV23OI", + "ApproximateFirstReceiveTimestamp": "1605710490139" + }, + "messageAttributes": {}, + "md5OfBody": "0fc277d34563d30d2c0fb7c0df5aa5ed", + "eventSource": "aws:sqs", + "eventSourceARN": "arn:aws:sqs:us-east-1:278255066410:stepfunction-logger-test-StepfunctionEventLoggerEventLoggingQueue1-MLVS3ZMLC7YN", + "awsRegion": "us-east-1" + } + ] +} \ No newline at end of file diff --git a/packages/stepfunction-event-logger/lib/lambda/unit_tests/sqs_records_failed_exec.json b/packages/stepfunction-event-logger/lib/lambda/unit_tests/sqs_records_failed_exec.json new file mode 100644 index 0000000..9ecb0f3 --- /dev/null +++ b/packages/stepfunction-event-logger/lib/lambda/unit_tests/sqs_records_failed_exec.json @@ -0,0 +1,20 @@ +{ + "Records": [ + { + "messageId": "f470c1d2-6753-4abc-bdeb-c04e5ec3bf5c", + "receiptHandle": "AQEBBYuCbnC1ygSPBMS96YONDVZc267x+fkKeopsa5MhowQPYbrGELfpBUguKvyE/svJZEzvCfHCvsxhl3wR0Kryng5EeMNlg7kC9tRiBKC/pDoU+/SErI3amtdzSFV2XlP8YpVqrUIrHQ5bBi25xaSjWhIwZMhV77HPipxPq4fijpZbXzJ/6q/wF8VtTlPKHCKtWwGDx5VJXpBnAeSy35oiyQVRg6kHwlY8VLDSQhd1fnLzl7iFZxDSs3igWtcodqLs8xYKzerJ5SbuJkhTmOavECZ08+0JaZxUTEnoeIkBSbVntBncLiEbBuLoTPpU5V/N4EnpTbbUCbZDtkDFbYQ+tuDAGLaphTAGnRfcaOHvd25Zlvt8h/jOaxNLdNGN9JyCL9HFXadXybbYxLqRuk6CkBC/oiueqtmaHHt7XWcKuhc6mTyR0QZ0NUmOH250Gap646Z04cZ4lxvzNVlkvpN/++0ZfFHSjgKRZaQ/M/6X7Co=", + "body": "{\"version\":\"0\",\"id\":\"eb50a295-6143-a90d-cd36-d3113c29c766\",\"detail-type\":\"Step Functions Execution Status Change\",\"source\":\"aws.states\",\"account\":\"278255066410\",\"time\":\"2020-11-18T21: 51: 04Z\",\"region\":\"us-east-1\",\"resources\":[\"arn:aws:states:us-east-1: 278255066410:execution:EventLoggerTestStateMachine2AA2ECF9-3tzoxIpaO3Ps:9eaa2975-c936-4129-aec2-2dac7c0b4294\"],\"detail\":{\"executionArn\":\"arn:aws:states:us-east-1: 278255066410:execution:EventLoggerTestStateMachine2AA2ECF9-3tzoxIpaO3Ps:9eaa2975-c936-4129-aec2-2dac7c0b4294\",\"stateMachineArn\":\"arn:aws:states:us-east-1: 278255066410:stateMachine:EventLoggerTestStateMachine2AA2ECF9-3tzoxIpaO3Ps\",\"name\":\"9eaa2975-c936-4129-aec2-2dac7c0b4294\",\"status\":\"FAILED\",\"startDate\":1605736264365,\"stopDate\":1605736264795,\"input\":\"{\\n\\\"test_failure\\\": true\\n}\",\"inputDetails\":{\"included\":true},\"output\":null,\"outputDetails\":null}}", + "attributes": { + "ApproximateReceiveCount": "1", + "SentTimestamp": "1605736265300", + "SenderId": "AIDAJXNJGGKNS7OSV23OI", + "ApproximateFirstReceiveTimestamp": "1605736265355" + }, + "messageAttributes": {}, + "md5OfBody": "0713ae1f99b02a5e3f82cd5ec783f0a3", + "eventSource": "aws:sqs", + "eventSourceARN": "arn:aws:sqs:us-east-1:278255066410:stepfunction-logger-test-StepfunctionEventLoggerEventLoggingQueue1-16LUNXQQ1M4WJ", + "awsRegion": "us-east-1" + } + ] +} \ No newline at end of file diff --git a/packages/stepfunction-event-logger/lib/lambda/unit_tests/test_event_logger.py b/packages/stepfunction-event-logger/lib/lambda/unit_tests/test_event_logger.py new file mode 100644 index 0000000..d5f1099 --- /dev/null +++ b/packages/stepfunction-event-logger/lib/lambda/unit_tests/test_event_logger.py @@ -0,0 +1,44 @@ +from ..src.event_logger import generate_table_records +import pytest +import os + + +BASE = os.path.dirname(os.path.abspath(__file__)) + + +@pytest.mark.parametrize( + "filepath", [f"{BASE}/sqs_records.json"], +) +def test_generate_summary_table_records(json_data, mock_summary_logging_level_env_var): + for sqs_message in json_data["Records"]: + assert len(generate_table_records(sqs_message)) == 1 + + +@pytest.mark.parametrize( + "filepath", [f"{BASE}/sqs_records.json"], +) +def test_generate_full_table_records(json_data, mock_stepfunction_execution_arn): + for sqs_message in json_data["Records"]: + sqs_message["eventSourceArn"] = mock_stepfunction_execution_arn + assert len(generate_table_records(sqs_message)) > 1 + + +@pytest.mark.parametrize( + "filepath", [f"{BASE}/sqs_failed_records.json"], +) +def test_generate_summary_failed_table_records( + json_data, mock_stepfunction_execution_arn +): + for sqs_message in json_data["Records"]: + assert len(generate_table_records(sqs_message)) == 1 + + +@pytest.mark.parametrize( + "filepath", [f"{BASE}/sqs_failed_records.json"], +) +def test_generate_full_failed_table_records( + json_data, mock_failed_stepfunction_execution_arn +): + for sqs_message in json_data["Records"]: + sqs_message["eventSourceArn"] = mock_failed_stepfunction_execution_arn + assert len(generate_table_records(sqs_message)) > 1 diff --git a/packages/stepfunction-event-logger/package-lock.json b/packages/stepfunction-event-logger/package-lock.json new file mode 100644 index 0000000..114d41f --- /dev/null +++ b/packages/stepfunction-event-logger/package-lock.json @@ -0,0 +1,4601 @@ +{ + "name": "@cdk-seed/stepfunction-event-logger", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@cdk-seed/stepfunction-event-logger", + "version": "1.0.0", + "bundleDependencies": [ + "@types/node" + ], + "license": "MIT", + "dependencies": { + "@aws-cdk/aws-dynamodb": "^1.73.0", + "@aws-cdk/aws-events": "^1.73.0", + "@aws-cdk/aws-events-targets": "^1.73.0", + "@aws-cdk/aws-lambda": "^1.73.0", + "@aws-cdk/aws-lambda-event-sources": "^1.73.0", + "@aws-cdk/aws-sqs": "^1.73.0", + "@aws-cdk/aws-stepfunctions": "^1.73.0", + "@aws-cdk/core": "^1.73.0", + "@types/node": "^14.14.8" + }, + "devDependencies": { + "jsii": "^1.14.1", + "jsii-pacmak": "^1.14.1" + }, + "peerDependencies": { + "@aws-cdk/aws-dynamodb": "^1.73.0", + "@aws-cdk/aws-events": "^1.73.0", + "@aws-cdk/aws-events-targets": "^1.73.0", + "@aws-cdk/aws-lambda": "^1.73.0", + "@aws-cdk/aws-lambda-event-sources": "^1.73.0", + "@aws-cdk/aws-sqs": "^1.73.0", + "@aws-cdk/aws-stepfunctions": "^1.73.0", + "@aws-cdk/core": "^1.73.0" + } + }, + "node_modules/@aws-cdk/assets": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/assets/-/assets-1.73.0.tgz", + "integrity": "sha512-fAdRAWn/IWbalMZva86Q4BimYrwipSoqPzyC5d6fwxNmJU/QiFLMpILanS1T9a0a+yjqAqk+8pAXn44lZIOlPQ==", + "dependencies": { + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-apigateway": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigateway/-/aws-apigateway-1.73.0.tgz", + "integrity": "sha512-arqONYZqjPnS5ZyFcSeaiJewdjsl9+UrTcFHZTV/yIojdcm2yGc/rH5LMdCvptIHslIvwINlVm+PapBpgwPVTw==", + "dependencies": { + "@aws-cdk/assets": "1.73.0", + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-s3-assets": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/assets": "1.73.0", + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-s3-assets": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-apigatewayv2": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2/-/aws-apigatewayv2-1.73.0.tgz", + "integrity": "sha512-+++K1KADMSFGgvOaj3OwiVcNEYWUR878rqH50EDEf/UxaYky3eD0Sg255sGQWrjbi3bb60lYdzVFDjADHHnEtw==", + "dependencies": { + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-applicationautoscaling": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-applicationautoscaling/-/aws-applicationautoscaling-1.73.0.tgz", + "integrity": "sha512-ROJPuj+PyrYa7/P6JoTrsFs8WMxKra1yuXZJ3r0iTrnAgCDAVCVpzmiF3Uwqw6rip1o63ZLT3fxxMeJBb2wL7Q==", + "dependencies": { + "@aws-cdk/aws-autoscaling-common": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-autoscaling-common": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-autoscaling": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling/-/aws-autoscaling-1.73.0.tgz", + "integrity": "sha512-ejeIasJoff83LJWJmqpiC7fLxaPRaRKIXJ1TTdNtUjCgrVrU4LQbxpQfSmmHD7IWnwnMCbEPq/bkEh04rbr20g==", + "dependencies": { + "@aws-cdk/aws-autoscaling-common": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-elasticloadbalancing": "1.73.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-autoscaling-common": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-elasticloadbalancing": "1.73.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-autoscaling-common": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-common/-/aws-autoscaling-common-1.73.0.tgz", + "integrity": "sha512-AJf9F9X/ktSMLj/NaX0ccPXr7VlDR6CTycpEgJZU4qbXqIW/LhIDkAhH15CNV38WYQnVDkVSQgDNfCtGaeHTqA==", + "dependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-autoscaling-hooktargets": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-hooktargets/-/aws-autoscaling-hooktargets-1.73.0.tgz", + "integrity": "sha512-pIQZ3n6DXfEdh4+okcdvN2pAjYWPqC7auSV9vz0D7NVPgRgULIeNs69OhDQANIkdwwiyvSmHhhpJyCo9i6jk4A==", + "dependencies": { + "@aws-cdk/aws-autoscaling": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sns-subscriptions": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-autoscaling": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sns-subscriptions": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-batch": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-batch/-/aws-batch-1.73.0.tgz", + "integrity": "sha512-nt0YG4WNhhxp+sSN93A9WhwNJw/YhJM/cdhYoK+Gs6C1OxkD7GSf0DYWXugs5Wp+oZcFrD9azN7dHmot3jM82w==", + "dependencies": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-ecr": "1.73.0", + "@aws-cdk/aws-ecs": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-ecr": "1.73.0", + "@aws-cdk/aws-ecs": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-certificatemanager": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-certificatemanager/-/aws-certificatemanager-1.73.0.tgz", + "integrity": "sha512-r5talegg1Z79Fo289JRgm1u6SV16I7nO4AZEmmbceDByDnXiRcnroi0o9fZTVWNUYuIwrpY4ZWR2UTKY71xYTg==", + "dependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-route53": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-route53": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-cloudformation": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudformation/-/aws-cloudformation-1.73.0.tgz", + "integrity": "sha512-q53ozxFc8fgjd1B9At4ehlvG3LKuZ9D2ajG8QgR95Lpk8YR5a8ydM2HvoHTTvwFSoy6nCXVUQc0fcPMvzgpGdA==", + "dependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-cloudfront": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudfront/-/aws-cloudfront-1.73.0.tgz", + "integrity": "sha512-P9bNY+6CMXAlW09aP4gn/H+qPzro9VmtBmvLXRhWxs6rOsPU0JeQK8YSfvUHNa1Gp3f7qc3JI9Tb9Q9/6YfCig==", + "dependencies": { + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-cloudwatch": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudwatch/-/aws-cloudwatch-1.73.0.tgz", + "integrity": "sha512-H6MQVtJfKAJyE6DRHe71ivFu9OjhH32VtsJUZ1xuQ/pyeoQlOQ6fj0FIjz4ObG3qDBq72SBfrbPAQ3q+2g3HfA==", + "dependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-codebuild": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-codebuild/-/aws-codebuild-1.73.0.tgz", + "integrity": "sha512-AGbi9xEY71C4MuNjRVU6Nd0AN7bsfnK+S1mjdppe5DriUk8tcQ1J/J8r4MuFEh9D+O++7vGNcnawDcSGkf1BxQ==", + "dependencies": { + "@aws-cdk/assets": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-codecommit": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-ecr": "1.73.0", + "@aws-cdk/aws-ecr-assets": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-s3-assets": "1.73.0", + "@aws-cdk/aws-secretsmanager": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/assets": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-codecommit": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-ecr": "1.73.0", + "@aws-cdk/aws-ecr-assets": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-s3-assets": "1.73.0", + "@aws-cdk/aws-secretsmanager": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-codecommit": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-codecommit/-/aws-codecommit-1.73.0.tgz", + "integrity": "sha512-t7CrP+sG/rtB0WasvNfEkbC/7k656juWdwt6n21M8mvST/c4Ul+kjUHLehgGePWOcr3GNOKOp+SrvoQ5op3YvA==", + "dependencies": { + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-codeguruprofiler": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-codeguruprofiler/-/aws-codeguruprofiler-1.73.0.tgz", + "integrity": "sha512-WcJjCT+4zd3v4E1nWUagpHKWVIafM4vMe+4DAcBXZbhqXww1yyXUxf1A08uc7zQGko3hvIoHp41maAiT5G6/nw==", + "dependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-codepipeline": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-codepipeline/-/aws-codepipeline-1.73.0.tgz", + "integrity": "sha512-/7E2cAMvYQ95KOvc8KwzJzLVoJhHDVTBvgu5/Civ0d1fySLnRMIEJ8VVjT9D/9vXJ7MbdU/8YfOiQbuSIDa3kQ==", + "dependencies": { + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-cognito": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cognito/-/aws-cognito-1.73.0.tgz", + "integrity": "sha512-TktkQAFTrYqp3iHEfyCMgVRaavq2XjtAKmQ2lM0UiTDJ9ycXYK1xANj+STzVFamRJWBOlsksBzYYbhg0pDKdFA==", + "bundleDependencies": [ + "punycode" + ], + "dependencies": { + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/custom-resources": "1.73.0", + "constructs": "^3.2.0", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/custom-resources": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-cognito/node_modules/punycode": { + "version": "2.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@aws-cdk/aws-dynamodb": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-dynamodb/-/aws-dynamodb-1.73.0.tgz", + "integrity": "sha512-Ie4Y1LQyMxXsD8FhS7De6QyGilEqYr2PQ3jKrqEgIXUcT3jqvzuZsMsukT5CAEDEJrMlvat3mX46A3VVqrO9zw==", + "dependencies": { + "@aws-cdk/aws-applicationautoscaling": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/custom-resources": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-applicationautoscaling": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/custom-resources": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-ec2": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.73.0.tgz", + "integrity": "sha512-XjGcHaVlaJNorXv8qrRt7k8rPLE8yV1SAJWHY/SIf7NzIg9Y6lFV0eVkBU5RINfuD9GIW8YbgtLGE5ZpfZ5YkA==", + "dependencies": { + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-s3-assets": "1.73.0", + "@aws-cdk/aws-ssm": "1.73.0", + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/assets": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-s3-assets": "1.73.0", + "@aws-cdk/aws-ssm": "1.73.0", + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-ecr": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr/-/aws-ecr-1.73.0.tgz", + "integrity": "sha512-/nxC/JWYp1XHtGZ4jkaShl7iWcZsnnfsIhPzpOq32jH21p7w815tFvuLiDgZFVYgvfMIH9oacWWVnnK+TN+ZzQ==", + "dependencies": { + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/custom-resources": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/custom-resources": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-ecr-assets": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr-assets/-/aws-ecr-assets-1.73.0.tgz", + "integrity": "sha512-r67NW76sUTKhAgUyH5IbhedWlLM/1GOn3KzlWBsdgad8CMeHAOP2G5ArhJlKQsfjZ+LXiMGkQrkK+kM9oWOrYA==", + "bundleDependencies": [ + "minimatch" + ], + "dependencies": { + "@aws-cdk/assets": "1.73.0", + "@aws-cdk/aws-ecr": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/assets": "1.73.0", + "@aws-cdk/aws-ecr": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-ecr-assets/node_modules/balanced-match": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-cdk/aws-ecr-assets/node_modules/brace-expansion": { + "version": "1.1.11", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@aws-cdk/aws-ecr-assets/node_modules/concat-map": { + "version": "0.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-cdk/aws-ecr-assets/node_modules/minimatch": { + "version": "3.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@aws-cdk/aws-ecs": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecs/-/aws-ecs-1.73.0.tgz", + "integrity": "sha512-1deBHT/0K8PG7HQZ4h0HfHBKBbvL4my3E60v02wxZBcMA1o6OG0Bqw2OE/MLe2LbPg7Di8XHRdot9ZKwdhlF1g==", + "dependencies": { + "@aws-cdk/aws-applicationautoscaling": "1.73.0", + "@aws-cdk/aws-autoscaling": "1.73.0", + "@aws-cdk/aws-autoscaling-hooktargets": "1.73.0", + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-ecr": "1.73.0", + "@aws-cdk/aws-ecr-assets": "1.73.0", + "@aws-cdk/aws-elasticloadbalancing": "1.73.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/aws-route53": "1.73.0", + "@aws-cdk/aws-route53-targets": "1.73.0", + "@aws-cdk/aws-secretsmanager": "1.73.0", + "@aws-cdk/aws-servicediscovery": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/aws-ssm": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-applicationautoscaling": "1.73.0", + "@aws-cdk/aws-autoscaling": "1.73.0", + "@aws-cdk/aws-autoscaling-hooktargets": "1.73.0", + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-ecr": "1.73.0", + "@aws-cdk/aws-ecr-assets": "1.73.0", + "@aws-cdk/aws-elasticloadbalancing": "1.73.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/aws-route53": "1.73.0", + "@aws-cdk/aws-route53-targets": "1.73.0", + "@aws-cdk/aws-secretsmanager": "1.73.0", + "@aws-cdk/aws-servicediscovery": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/aws-ssm": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-efs": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-efs/-/aws-efs-1.73.0.tgz", + "integrity": "sha512-sWUU+nhJ78T5tElLy7BqUrlXj4kGv43nrkWE5+jbTaLRFEpJPM6fMuWfzcJGfkqpbppjc/aySyCPbvEcWb7bDQ==", + "dependencies": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-elasticloadbalancing": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancing/-/aws-elasticloadbalancing-1.73.0.tgz", + "integrity": "sha512-BZ9kEaJNZNmgZWTZumBG5lJoREc5r+u280o0a2Pt2TwmeE65wYDX1NxUgW36yWAob/M+PqdVrTr+UzoElEaXkg==", + "dependencies": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-elasticloadbalancingv2": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancingv2/-/aws-elasticloadbalancingv2-1.73.0.tgz", + "integrity": "sha512-NqsPFxyCm6RSeaXQigQJh3CSUeKiAhOB4B1cyU4t/lHVG2EUd4ObDmOYLRREfXEax+nqDg+ZhLzDR03I+sXhIg==", + "dependencies": { + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-events": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-events/-/aws-events-1.73.0.tgz", + "integrity": "sha512-CvOAIAt00xCWKC2U96NAgA8xIkzrNkwalCXk3RIRjz9xEVge5w3lQ7Hy6lSSbhyTfxQV01bppZO2ExaeAKOjOg==", + "dependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-events-targets": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-events-targets/-/aws-events-targets-1.73.0.tgz", + "integrity": "sha512-dbMe0boI7wWLE0LhYpeSUlLOBG/fNXJQfHVUVQhmDE7MN2mVsCpfd+hjQZPhoUCWNHPetZWf8sQnKswZKcmCDg==", + "dependencies": { + "@aws-cdk/aws-batch": "1.73.0", + "@aws-cdk/aws-codebuild": "1.73.0", + "@aws-cdk/aws-codepipeline": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-ecs": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kinesis": "1.73.0", + "@aws-cdk/aws-kinesisfirehose": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sns-subscriptions": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/aws-stepfunctions": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-batch": "1.73.0", + "@aws-cdk/aws-codebuild": "1.73.0", + "@aws-cdk/aws-codepipeline": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-ecs": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kinesis": "1.73.0", + "@aws-cdk/aws-kinesisfirehose": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sns-subscriptions": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/aws-stepfunctions": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-iam": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-iam/-/aws-iam-1.73.0.tgz", + "integrity": "sha512-o2pdkEEdwluZegLqlbhfK0zgIbezvKDf5UfwBKloeFSDcGOZAaqF25OPfrTowXkIakHbw2wMswbUlmUgYdmNFg==", + "dependencies": { + "@aws-cdk/core": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/core": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-kinesis": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kinesis/-/aws-kinesis-1.73.0.tgz", + "integrity": "sha512-1WEg4eMRBCCpcgx+jzt5VFgzcMBwOMUwq1hTpYheQMxxXMqCJFj9Funufo+IMthn7A5yekWPi2iE5alnNhIfdQ==", + "dependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-kinesisfirehose": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kinesisfirehose/-/aws-kinesisfirehose-1.73.0.tgz", + "integrity": "sha512-FR/iIvnaIuvmes3lRG07sroMbM2qR98uoi0+CWAWQp0TECfrxZKW8DMM9tEQ11wfglwEkeO0l5fVnp+XyhlMZA==", + "dependencies": { + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-kms": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kms/-/aws-kms-1.73.0.tgz", + "integrity": "sha512-4aQRGBktM1IYqM0Qa/yio1/sjNuokMdLQNrjTVxyX+AZE2/zPqARe+Gm6sFpPJ9Is8oy0YzecP80QZSCnWpCnQ==", + "dependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-lambda": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda/-/aws-lambda-1.73.0.tgz", + "integrity": "sha512-ffw/hK1DbbSXklry4sDmJ+c+dX3Zl+I9DsYNjf0h2aonEKZo+g7ItAhVzr5s1kDnKatlEJTNOw1Kdpn20vFZHg==", + "dependencies": { + "@aws-cdk/aws-applicationautoscaling": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-codeguruprofiler": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-efs": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-s3-assets": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-applicationautoscaling": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-codeguruprofiler": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-efs": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-s3-assets": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-lambda-event-sources": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda-event-sources/-/aws-lambda-event-sources-1.73.0.tgz", + "integrity": "sha512-g8ydXohno+5CWfBWJmRCVTwifX2pDnIVuq3/ng04aq4puTVfPKIgSfhpX8Zmj3f6rhgjrUUW5JnvJ7qMsltyPg==", + "dependencies": { + "@aws-cdk/aws-apigateway": "1.73.0", + "@aws-cdk/aws-dynamodb": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kinesis": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-s3-notifications": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sns-subscriptions": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-apigateway": "1.73.0", + "@aws-cdk/aws-dynamodb": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kinesis": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-s3-notifications": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sns-subscriptions": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-logs": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-logs/-/aws-logs-1.73.0.tgz", + "integrity": "sha512-pn/JUpz49nmP81rOW66S36HbBF+RCKDWyN+rQ671zr62T9EPJuRLWxbdahcnAN1eqyCsZEs9PpCvTnacj9ue7w==", + "dependencies": { + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-s3-assets": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-s3-assets": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-route53": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53/-/aws-route53-1.73.0.tgz", + "integrity": "sha512-M3298IkyLELVTlA+2g0EdEV+bYTkC3xzTiHwoqcJeCd8T7IY8E89f73bsweX8k49cu1soPAUvXVJuUfxb6WYEg==", + "dependencies": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-route53-targets": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53-targets/-/aws-route53-targets-1.73.0.tgz", + "integrity": "sha512-ojCU1VYNcp0JJWa+oFSaxFKBW1gbToBqnVkJPCx21gTQrpu/uNfKHd+QqTwXf9WSmAzzZtAobeN0IW7Sn9im3Q==", + "dependencies": { + "@aws-cdk/aws-apigateway": "1.73.0", + "@aws-cdk/aws-apigatewayv2": "1.73.0", + "@aws-cdk/aws-cloudfront": "1.73.0", + "@aws-cdk/aws-cognito": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-elasticloadbalancing": "1.73.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-route53": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-apigateway": "1.73.0", + "@aws-cdk/aws-apigatewayv2": "1.73.0", + "@aws-cdk/aws-cloudfront": "1.73.0", + "@aws-cdk/aws-cognito": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-elasticloadbalancing": "1.73.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-route53": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-s3": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3/-/aws-s3-1.73.0.tgz", + "integrity": "sha512-n0PuTBhqFxRfvGHhWk54R2hfS24b5DFkqP2PvTIwRFCBqmSUnRLF8I+GZ4c6RNxfVfDSzQBcGvfuCuNTL1KZLQ==", + "dependencies": { + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-s3-assets": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3-assets/-/aws-s3-assets-1.73.0.tgz", + "integrity": "sha512-CvxEIBOOj7tYMrMimPSsbtQ4OOurhUIiNIhM38gisTXYgSchKTeDzKJAbalfYOZSNJNEx1wMNL/+oKV/gDtrHQ==", + "dependencies": { + "@aws-cdk/assets": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/assets": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-s3-notifications": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3-notifications/-/aws-s3-notifications-1.73.0.tgz", + "integrity": "sha512-QRiwCrl9d8RXb3vp5qe0azRRcO3sWhmw+ZYOJxMvEQlh8v+OxajOX5BdngQaa6dyzR0CRwWXzNcs9MbZHxFUxw==", + "dependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-sam": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sam/-/aws-sam-1.73.0.tgz", + "integrity": "sha512-q/xI4sv7wavGUwRl6nYZmo/jLwCTaGnR2zC21rMOEdrRJjyJer/0iibpcuex2VysNXmY6qXCJ4OdcDk6lbO89A==", + "dependencies": { + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-secretsmanager": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-secretsmanager/-/aws-secretsmanager-1.73.0.tgz", + "integrity": "sha512-0MuyhHFkncStY0TjSKJso7hO1/2+lvHv+hnaNKCB+499vxvS1LcE244jYWieI9IQx/9G2pNQ285TNrMotjEeQQ==", + "dependencies": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-sam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-sam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-servicediscovery": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-servicediscovery/-/aws-servicediscovery-1.73.0.tgz", + "integrity": "sha512-3IV6+b6QUgQtOAqj1la6dagWufq6FcDIiDkhKLrzr3ppuT2wlkUsq+rjjQ6+4HHVoDEIy15E9/Dhxqm+nINCxQ==", + "dependencies": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.73.0", + "@aws-cdk/aws-route53": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.73.0", + "@aws-cdk/aws-route53": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-sns": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns/-/aws-sns-1.73.0.tgz", + "integrity": "sha512-Ovo39L+u2zozgd2NQZp67BEfmYoIanfaE00RCAXp1pSm3IGt3OjfXbWuaiyLwMUUex866+MNkQ9Hr4WO/0mRsw==", + "dependencies": { + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-sns-subscriptions": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns-subscriptions/-/aws-sns-subscriptions-1.73.0.tgz", + "integrity": "sha512-b5LnCM1CsqrNFurSrR7xI4Soldh01xMPsyz8G7qwOY2X7ZJJF2iHRAABjNEmClKDDP6Ln8mdJO50C9m3PM852A==", + "dependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-sqs": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sqs/-/aws-sqs-1.73.0.tgz", + "integrity": "sha512-15stNsRYY165Vvx/io6TnTSMHar10diLa2k2BTiL+PNzl18SfEIOoTy97PCvJp9AK2Ob9dyQwwjsiutTU56IbA==", + "dependencies": { + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-ssm": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ssm/-/aws-ssm-1.73.0.tgz", + "integrity": "sha512-6fobpaL7hh0My/aypd7DHQ+sLuPcb7Taj8ngjmoh8H0muiAkfj4O0CjN3cd+kCYRr8T4zRh546ypvFfsc9WEHQ==", + "dependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/aws-stepfunctions": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-stepfunctions/-/aws-stepfunctions-1.73.0.tgz", + "integrity": "sha512-e9KwgDAN8IvZap9IX7lhnAlZAeburIhvverZWs4ewhfulE27/O/sad0R5GYatzlCBVDCJ+8Eu/VUTI+Wgoa+eQ==", + "dependencies": { + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/cloud-assembly-schema": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.73.0.tgz", + "integrity": "sha512-3m5nJDLSApAuUMra2WrQF7GHt6xgxqFET91WShtKtj48brZk4MBJ3dLre2LjDVsmMMOVdd6FpjY7tE5C1v9Hyw==", + "bundleDependencies": [ + "jsonschema", + "semver" + ], + "dependencies": { + "jsonschema": "^1.4.0", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + } + }, + "node_modules/@aws-cdk/cloud-assembly-schema/node_modules/jsonschema": { + "version": "1.4.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/@aws-cdk/cloud-assembly-schema/node_modules/semver": { + "version": "7.3.2", + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@aws-cdk/core": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/core/-/core-1.73.0.tgz", + "integrity": "sha512-CTmUXo0hAH78/uvzfmgW4gQKLnusMxULIEUjd0wnfs/6/zoB6n2DP+lmkr/7Vp4aIG9nNNirThdHesidlx79eA==", + "bundleDependencies": [ + "fs-extra", + "minimatch", + "@balena/dockerignore", + "ignore" + ], + "dependencies": { + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "@balena/dockerignore": "^1.0.2", + "constructs": "^3.2.0", + "fs-extra": "^9.0.1", + "ignore": "^5.1.8", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/core/node_modules/@balena/dockerignore": { + "version": "1.0.2", + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/@aws-cdk/core/node_modules/at-least-node": { + "version": "1.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@aws-cdk/core/node_modules/balanced-match": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-cdk/core/node_modules/brace-expansion": { + "version": "1.1.11", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@aws-cdk/core/node_modules/concat-map": { + "version": "0.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/@aws-cdk/core/node_modules/fs-extra": { + "version": "9.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@aws-cdk/core/node_modules/graceful-fs": { + "version": "4.2.4", + "inBundle": true, + "license": "ISC" + }, + "node_modules/@aws-cdk/core/node_modules/ignore": { + "version": "5.1.8", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@aws-cdk/core/node_modules/jsonfile": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@aws-cdk/core/node_modules/minimatch": { + "version": "3.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@aws-cdk/core/node_modules/universalify": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@aws-cdk/custom-resources": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/custom-resources/-/custom-resources-1.73.0.tgz", + "integrity": "sha512-WiRNwrDVNwJMoWbekRFAMcR6J/C6W71rZF19QGbfcWzOm0FxLUAkcWOIIgn0IR7XxbkVdefe3RyK3YSDXDr7uA==", + "dependencies": { + "@aws-cdk/aws-cloudformation": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/aws-cloudformation": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "node_modules/@aws-cdk/cx-api": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.73.0.tgz", + "integrity": "sha512-HlBpbIGu71xXdfJ1De1/HOMK5LWzKK9J7REho0oncpAO9KDxAbk+1aOFUZJVEgTsJSUUzLMSIUtDIo+ev70HGA==", + "bundleDependencies": [ + "semver" + ], + "dependencies": { + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + }, + "peerDependencies": { + "@aws-cdk/cloud-assembly-schema": "1.73.0" + } + }, + "node_modules/@aws-cdk/cx-api/node_modules/semver": { + "version": "7.3.2", + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@aws-cdk/region-info": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.73.0.tgz", + "integrity": "sha512-jWfx5mY3BaCVeFnbdUxrDTczVTuwShdtu3WkV2vL+W3VnUMzLPKbCPiGY8GutSBlWvoFpubsbVqx8Kw61pRgdQ==", + "engines": { + "node": ">= 10.13.0 <13 || >=13.7.0" + } + }, + "node_modules/@jsii/spec": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@jsii/spec/-/spec-1.14.1.tgz", + "integrity": "sha512-h+HXPYD+k8zbkQRXzR9zWxXoSyBTBQL2N+t+iTgMuHpWvnrd6ZUegpWh/M1voMpmT5JHS7MftwIRjnp7yP92KQ==", + "dev": true, + "dependencies": { + "jsonschema": "^1.4.0" + }, + "engines": { + "node": ">= 10.3.0" + } + }, + "node_modules/@types/node": { + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==", + "inBundle": true + }, + "node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/array-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", + "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", + "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", + "dev": true, + "dependencies": { + "array-filter": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/case": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz", + "integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/codemaker": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/codemaker/-/codemaker-1.14.1.tgz", + "integrity": "sha512-km8Aqf1ZioiM9Xm4Tj9pbIyFLoRV9l3ssw073C1AePt76TDqWFmJ83LrXkm+dSgdysoKVqY3Svn3BoPnN5bFKQ==", + "dev": true, + "dependencies": { + "camelcase": "^6.2.0", + "decamelize": "^4.0.0", + "fs-extra": "^9.0.1" + }, + "engines": { + "node": ">= 10.3.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/commonmark": { + "version": "0.29.2", + "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.29.2.tgz", + "integrity": "sha512-spe43MvEIaPpHss1T7z4yQaFQfLGmMu+yvCwv6xqhELIwkG/ZGgDpxOPzKxnuYzYT2c+aziCCc8m2rBVLA7jUA==", + "dev": true, + "dependencies": { + "entities": "~2.0", + "mdurl": "~1.0.1", + "minimist": ">=1.2.2", + "string.prototype.repeat": "^0.2.0" + }, + "bin": { + "commonmark": "bin/commonmark" + }, + "engines": { + "node": "*" + } + }, + "node_modules/constructs": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.2.25.tgz", + "integrity": "sha512-CTjjeA2Lk71R0z0agDvaspcKB5WdwzeQgA8v30fSgqfX0xMj0DhJ6AcmCwWnVOvYUuTMnU7Qv05tcJKR4sSqwQ==", + "engines": { + "node": ">= 10.17.0" + } + }, + "node_modules/date-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-equal": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.4.tgz", + "integrity": "sha512-BUfaXrVoCfgkOQY/b09QdO9L3XNoF2XH0A3aY9IQwQL/ZjLOe8FQgCNVl1wiolhsFo8kFdO9zdPViCPbmaJA5w==", + "dev": true, + "dependencies": { + "es-abstract": "^1.18.0-next.1", + "es-get-iterator": "^1.1.0", + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.2", + "is-regex": "^1.1.1", + "isarray": "^2.0.5", + "object-is": "^1.1.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.3", + "which-boxed-primitive": "^1.0.1", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/detect-indent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/entities": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", + "dev": true + }, + "node_modules/es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.1.tgz", + "integrity": "sha512-qorBw8Y7B15DVLaJWy6WdEV/ZkieBcu6QCq/xzWzGOKJqgG1j754vXRfZ3NY7HSShneqU43mPB4OkQBTkvHhFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.1", + "has-symbols": "^1.0.1", + "is-arguments": "^1.0.4", + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "node_modules/foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "node_modules/fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", + "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.0.tgz", + "integrity": "sha512-t5mGUXC/xRheCK431ylNiSkGGpBp8bHENBcENTkDT6ppwPzEVxNGZRvgvmOEfbWkFhA7D2GEuE2mmQTr78sl2g==", + "dev": true + }, + "node_modules/is-boolean-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.1.tgz", + "integrity": "sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz", + "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz", + "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.3.tgz", + "integrity": "sha512-BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGTQ==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.0", + "es-abstract": "^1.17.4", + "foreach": "^2.0.5", + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array/node_modules/es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz", + "integrity": "sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/jsii": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/jsii/-/jsii-1.14.1.tgz", + "integrity": "sha512-uDVBl8bvSnraJpKYyY22dOoERpQv/sEAHEj3L5b00qkBi6FsFr2KWfQOdUg9fMWdYrmMVuXWOWXJ186Fn7XF+A==", + "dev": true, + "dependencies": { + "@jsii/spec": "^1.14.1", + "case": "^1.6.3", + "colors": "^1.4.0", + "deep-equal": "^2.0.4", + "fs-extra": "^9.0.1", + "log4js": "^6.3.0", + "semver": "^7.3.2", + "semver-intersect": "^1.4.0", + "sort-json": "^2.0.0", + "spdx-license-list": "^6.3.0", + "typescript": "~3.9.7", + "yargs": "^16.1.0" + }, + "bin": { + "jsii": "bin/jsii" + }, + "engines": { + "node": ">= 10.3.0" + } + }, + "node_modules/jsii-pacmak": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.14.1.tgz", + "integrity": "sha512-BRASls0wizqS4mxOmC2eoC7DgDb3tyS1UtFQeok0kfhhyi+GDs/9JPJ+VKlhU1kGLmsQswYxkPrZhV9VcXoiIw==", + "dev": true, + "dependencies": { + "@jsii/spec": "^1.14.1", + "clone": "^2.1.2", + "codemaker": "^1.14.1", + "commonmark": "^0.29.2", + "escape-string-regexp": "^4.0.0", + "fs-extra": "^9.0.1", + "jsii-reflect": "^1.14.1", + "jsii-rosetta": "^1.14.1", + "semver": "^7.3.2", + "spdx-license-list": "^6.3.0", + "xmlbuilder": "^15.1.1", + "yargs": "^16.1.0" + }, + "bin": { + "jsii-pacmak": "bin/jsii-pacmak" + }, + "engines": { + "node": ">= 10.3.0" + } + }, + "node_modules/jsii-reflect": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.14.1.tgz", + "integrity": "sha512-otKxvnNn2kAMMygBiw8fGnmJFhQ0EcPTJZH4y/Yn1rZg/nGLAk/G8lCQYfh3xm2/GwSpjh/w6ZEPsq/RUuPR1A==", + "dev": true, + "dependencies": { + "@jsii/spec": "^1.14.1", + "colors": "^1.4.0", + "fs-extra": "^9.0.1", + "oo-ascii-tree": "^1.14.1", + "yargs": "^16.1.0" + }, + "bin": { + "jsii-tree": "bin/jsii-tree" + }, + "engines": { + "node": ">= 10.3.0" + } + }, + "node_modules/jsii-rosetta": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.14.1.tgz", + "integrity": "sha512-HfM1IO7eIQ8qyDxTRRdV3TraBhnCivq3N3qMdJuPEJ3O2lprx0TS6pvIXzv9DgDWJwLVDaxI1ecTZhSl9poGeQ==", + "dev": true, + "dependencies": { + "@jsii/spec": "^1.14.1", + "commonmark": "^0.29.2", + "fs-extra": "^9.0.1", + "typescript": "~3.9.7", + "xmldom": "^0.4.0", + "yargs": "^16.1.0" + }, + "bin": { + "jsii-rosetta": "bin/jsii-rosetta" + }, + "engines": { + "node": ">= 10.5.0" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonfile/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/jsonschema": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz", + "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/log4js": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "dev": true, + "dependencies": { + "date-format": "^3.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.1", + "rfdc": "^1.1.4", + "streamroller": "^2.2.4" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.3.tgz", + "integrity": "sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/oo-ascii-tree": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.14.1.tgz", + "integrity": "sha512-dW0RFnYqUj8WQpvuYXVvjfA3ABoNQnScgSxnKa9lPPCvfcO4CBPshifk9M6hU3ksttcNGbQkFq6k2di2E23SVA==", + "dev": true, + "engines": { + "node": ">= 10.3.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags/node_modules/es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "dev": true + }, + "node_modules/semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "dependencies": { + "semver": "^5.0.0" + } + }, + "node_modules/semver-intersect/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/side-channel": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz", + "integrity": "sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g==", + "dev": true, + "dependencies": { + "es-abstract": "^1.18.0-next.0", + "object-inspect": "^1.8.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sort-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-json/-/sort-json-2.0.0.tgz", + "integrity": "sha512-OgXPErPJM/rBK5OhzIJ+etib/BmLQ1JY55Nb/ElhoWUec62pXNF/X6DrecHq3NW5OAGX0KxYD7m0HtgB9dvGeA==", + "dev": true, + "dependencies": { + "detect-indent": "^5.0.0", + "detect-newline": "^2.1.0", + "minimist": "^1.2.0" + }, + "bin": { + "sort-json": "app/cmd.js" + } + }, + "node_modules/spdx-license-list": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-6.3.0.tgz", + "integrity": "sha512-Qz8ru5VVK5T4cFOBrshIzggzrQ15fVBcpjpZLCVz2j9KNnpslGbw8w1r06v2vi6YP6bnUSY5CXsFCfUypLZ2GA==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/streamroller": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "dev": true, + "dependencies": { + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.6" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/streamroller/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.repeat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz", + "integrity": "sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8=", + "dev": true + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", + "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", + "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/typescript": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", + "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.1.tgz", + "integrity": "sha512-7BT4TwISdDGBgaemWU0N0OU7FeAEJ9Oo2P1PHRm/FCWoEi2VLWC9b6xvxAA3C/NMpxg3HXVgi0sMmGbNUbNepQ==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.0", + "is-boolean-object": "^1.0.0", + "is-number-object": "^1.0.3", + "is-string": "^1.0.4", + "is-symbol": "^1.0.2" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.2.tgz", + "integrity": "sha512-KT6okrd1tE6JdZAy3o2VhMoYPh3+J6EMZLyrxBQsZflI1QCZIxMrIYLkosd8Twf+YfknVIHmYQPgJt238p8dnQ==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.2", + "es-abstract": "^1.17.5", + "foreach": "^2.0.5", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array/node_modules/es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/xmldom": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.4.0.tgz", + "integrity": "sha512-2E93k08T30Ugs+34HBSTQLVtpi6mCddaY8uO+pMNk1pqSjV5vElzn4mmh6KLxN3hki8rNcHSYzILoh3TEWORvA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.1.0.tgz", + "integrity": "sha512-upWFJOmDdHN0syLuESuvXDmrRcWd1QafJolHskzaw79uZa7/x53gxQKiR07W59GWY1tFhhU/Th9DrtSfpS782g==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.2", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + } + }, + "dependencies": { + "@aws-cdk/assets": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/assets/-/assets-1.73.0.tgz", + "integrity": "sha512-fAdRAWn/IWbalMZva86Q4BimYrwipSoqPzyC5d6fwxNmJU/QiFLMpILanS1T9a0a+yjqAqk+8pAXn44lZIOlPQ==", + "requires": { + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-apigateway": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigateway/-/aws-apigateway-1.73.0.tgz", + "integrity": "sha512-arqONYZqjPnS5ZyFcSeaiJewdjsl9+UrTcFHZTV/yIojdcm2yGc/rH5LMdCvptIHslIvwINlVm+PapBpgwPVTw==", + "requires": { + "@aws-cdk/assets": "1.73.0", + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-s3-assets": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-apigatewayv2": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-apigatewayv2/-/aws-apigatewayv2-1.73.0.tgz", + "integrity": "sha512-+++K1KADMSFGgvOaj3OwiVcNEYWUR878rqH50EDEf/UxaYky3eD0Sg255sGQWrjbi3bb60lYdzVFDjADHHnEtw==", + "requires": { + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-applicationautoscaling": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-applicationautoscaling/-/aws-applicationautoscaling-1.73.0.tgz", + "integrity": "sha512-ROJPuj+PyrYa7/P6JoTrsFs8WMxKra1yuXZJ3r0iTrnAgCDAVCVpzmiF3Uwqw6rip1o63ZLT3fxxMeJBb2wL7Q==", + "requires": { + "@aws-cdk/aws-autoscaling-common": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-autoscaling": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling/-/aws-autoscaling-1.73.0.tgz", + "integrity": "sha512-ejeIasJoff83LJWJmqpiC7fLxaPRaRKIXJ1TTdNtUjCgrVrU4LQbxpQfSmmHD7IWnwnMCbEPq/bkEh04rbr20g==", + "requires": { + "@aws-cdk/aws-autoscaling-common": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-elasticloadbalancing": "1.73.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-autoscaling-common": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-common/-/aws-autoscaling-common-1.73.0.tgz", + "integrity": "sha512-AJf9F9X/ktSMLj/NaX0ccPXr7VlDR6CTycpEgJZU4qbXqIW/LhIDkAhH15CNV38WYQnVDkVSQgDNfCtGaeHTqA==", + "requires": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-autoscaling-hooktargets": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-autoscaling-hooktargets/-/aws-autoscaling-hooktargets-1.73.0.tgz", + "integrity": "sha512-pIQZ3n6DXfEdh4+okcdvN2pAjYWPqC7auSV9vz0D7NVPgRgULIeNs69OhDQANIkdwwiyvSmHhhpJyCo9i6jk4A==", + "requires": { + "@aws-cdk/aws-autoscaling": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sns-subscriptions": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-batch": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-batch/-/aws-batch-1.73.0.tgz", + "integrity": "sha512-nt0YG4WNhhxp+sSN93A9WhwNJw/YhJM/cdhYoK+Gs6C1OxkD7GSf0DYWXugs5Wp+oZcFrD9azN7dHmot3jM82w==", + "requires": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-ecr": "1.73.0", + "@aws-cdk/aws-ecs": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-certificatemanager": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-certificatemanager/-/aws-certificatemanager-1.73.0.tgz", + "integrity": "sha512-r5talegg1Z79Fo289JRgm1u6SV16I7nO4AZEmmbceDByDnXiRcnroi0o9fZTVWNUYuIwrpY4ZWR2UTKY71xYTg==", + "requires": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-route53": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-cloudformation": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudformation/-/aws-cloudformation-1.73.0.tgz", + "integrity": "sha512-q53ozxFc8fgjd1B9At4ehlvG3LKuZ9D2ajG8QgR95Lpk8YR5a8ydM2HvoHTTvwFSoy6nCXVUQc0fcPMvzgpGdA==", + "requires": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-cloudfront": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudfront/-/aws-cloudfront-1.73.0.tgz", + "integrity": "sha512-P9bNY+6CMXAlW09aP4gn/H+qPzro9VmtBmvLXRhWxs6rOsPU0JeQK8YSfvUHNa1Gp3f7qc3JI9Tb9Q9/6YfCig==", + "requires": { + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-cloudwatch": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cloudwatch/-/aws-cloudwatch-1.73.0.tgz", + "integrity": "sha512-H6MQVtJfKAJyE6DRHe71ivFu9OjhH32VtsJUZ1xuQ/pyeoQlOQ6fj0FIjz4ObG3qDBq72SBfrbPAQ3q+2g3HfA==", + "requires": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-codebuild": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-codebuild/-/aws-codebuild-1.73.0.tgz", + "integrity": "sha512-AGbi9xEY71C4MuNjRVU6Nd0AN7bsfnK+S1mjdppe5DriUk8tcQ1J/J8r4MuFEh9D+O++7vGNcnawDcSGkf1BxQ==", + "requires": { + "@aws-cdk/assets": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-codecommit": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-ecr": "1.73.0", + "@aws-cdk/aws-ecr-assets": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-s3-assets": "1.73.0", + "@aws-cdk/aws-secretsmanager": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-codecommit": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-codecommit/-/aws-codecommit-1.73.0.tgz", + "integrity": "sha512-t7CrP+sG/rtB0WasvNfEkbC/7k656juWdwt6n21M8mvST/c4Ul+kjUHLehgGePWOcr3GNOKOp+SrvoQ5op3YvA==", + "requires": { + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-codeguruprofiler": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-codeguruprofiler/-/aws-codeguruprofiler-1.73.0.tgz", + "integrity": "sha512-WcJjCT+4zd3v4E1nWUagpHKWVIafM4vMe+4DAcBXZbhqXww1yyXUxf1A08uc7zQGko3hvIoHp41maAiT5G6/nw==", + "requires": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-codepipeline": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-codepipeline/-/aws-codepipeline-1.73.0.tgz", + "integrity": "sha512-/7E2cAMvYQ95KOvc8KwzJzLVoJhHDVTBvgu5/Civ0d1fySLnRMIEJ8VVjT9D/9vXJ7MbdU/8YfOiQbuSIDa3kQ==", + "requires": { + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-cognito": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-cognito/-/aws-cognito-1.73.0.tgz", + "integrity": "sha512-TktkQAFTrYqp3iHEfyCMgVRaavq2XjtAKmQ2lM0UiTDJ9ycXYK1xANj+STzVFamRJWBOlsksBzYYbhg0pDKdFA==", + "requires": { + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/custom-resources": "1.73.0", + "constructs": "^3.2.0", + "punycode": "^2.1.1" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "bundled": true + } + } + }, + "@aws-cdk/aws-dynamodb": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-dynamodb/-/aws-dynamodb-1.73.0.tgz", + "integrity": "sha512-Ie4Y1LQyMxXsD8FhS7De6QyGilEqYr2PQ3jKrqEgIXUcT3jqvzuZsMsukT5CAEDEJrMlvat3mX46A3VVqrO9zw==", + "requires": { + "@aws-cdk/aws-applicationautoscaling": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/custom-resources": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-ec2": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ec2/-/aws-ec2-1.73.0.tgz", + "integrity": "sha512-XjGcHaVlaJNorXv8qrRt7k8rPLE8yV1SAJWHY/SIf7NzIg9Y6lFV0eVkBU5RINfuD9GIW8YbgtLGE5ZpfZ5YkA==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-s3-assets": "1.73.0", + "@aws-cdk/aws-ssm": "1.73.0", + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-ecr": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr/-/aws-ecr-1.73.0.tgz", + "integrity": "sha512-/nxC/JWYp1XHtGZ4jkaShl7iWcZsnnfsIhPzpOq32jH21p7w815tFvuLiDgZFVYgvfMIH9oacWWVnnK+TN+ZzQ==", + "requires": { + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/custom-resources": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-ecr-assets": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecr-assets/-/aws-ecr-assets-1.73.0.tgz", + "integrity": "sha512-r67NW76sUTKhAgUyH5IbhedWlLM/1GOn3KzlWBsdgad8CMeHAOP2G5ArhJlKQsfjZ+LXiMGkQrkK+kM9oWOrYA==", + "requires": { + "@aws-cdk/assets": "1.73.0", + "@aws-cdk/aws-ecr": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0", + "minimatch": "^3.0.4" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "@aws-cdk/aws-ecs": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ecs/-/aws-ecs-1.73.0.tgz", + "integrity": "sha512-1deBHT/0K8PG7HQZ4h0HfHBKBbvL4my3E60v02wxZBcMA1o6OG0Bqw2OE/MLe2LbPg7Di8XHRdot9ZKwdhlF1g==", + "requires": { + "@aws-cdk/aws-applicationautoscaling": "1.73.0", + "@aws-cdk/aws-autoscaling": "1.73.0", + "@aws-cdk/aws-autoscaling-hooktargets": "1.73.0", + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-ecr": "1.73.0", + "@aws-cdk/aws-ecr-assets": "1.73.0", + "@aws-cdk/aws-elasticloadbalancing": "1.73.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/aws-route53": "1.73.0", + "@aws-cdk/aws-route53-targets": "1.73.0", + "@aws-cdk/aws-secretsmanager": "1.73.0", + "@aws-cdk/aws-servicediscovery": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/aws-ssm": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-efs": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-efs/-/aws-efs-1.73.0.tgz", + "integrity": "sha512-sWUU+nhJ78T5tElLy7BqUrlXj4kGv43nrkWE5+jbTaLRFEpJPM6fMuWfzcJGfkqpbppjc/aySyCPbvEcWb7bDQ==", + "requires": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-elasticloadbalancing": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancing/-/aws-elasticloadbalancing-1.73.0.tgz", + "integrity": "sha512-BZ9kEaJNZNmgZWTZumBG5lJoREc5r+u280o0a2Pt2TwmeE65wYDX1NxUgW36yWAob/M+PqdVrTr+UzoElEaXkg==", + "requires": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-elasticloadbalancingv2": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-elasticloadbalancingv2/-/aws-elasticloadbalancingv2-1.73.0.tgz", + "integrity": "sha512-NqsPFxyCm6RSeaXQigQJh3CSUeKiAhOB4B1cyU4t/lHVG2EUd4ObDmOYLRREfXEax+nqDg+ZhLzDR03I+sXhIg==", + "requires": { + "@aws-cdk/aws-certificatemanager": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-events": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-events/-/aws-events-1.73.0.tgz", + "integrity": "sha512-CvOAIAt00xCWKC2U96NAgA8xIkzrNkwalCXk3RIRjz9xEVge5w3lQ7Hy6lSSbhyTfxQV01bppZO2ExaeAKOjOg==", + "requires": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-events-targets": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-events-targets/-/aws-events-targets-1.73.0.tgz", + "integrity": "sha512-dbMe0boI7wWLE0LhYpeSUlLOBG/fNXJQfHVUVQhmDE7MN2mVsCpfd+hjQZPhoUCWNHPetZWf8sQnKswZKcmCDg==", + "requires": { + "@aws-cdk/aws-batch": "1.73.0", + "@aws-cdk/aws-codebuild": "1.73.0", + "@aws-cdk/aws-codepipeline": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-ecs": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kinesis": "1.73.0", + "@aws-cdk/aws-kinesisfirehose": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sns-subscriptions": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/aws-stepfunctions": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-iam": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-iam/-/aws-iam-1.73.0.tgz", + "integrity": "sha512-o2pdkEEdwluZegLqlbhfK0zgIbezvKDf5UfwBKloeFSDcGOZAaqF25OPfrTowXkIakHbw2wMswbUlmUgYdmNFg==", + "requires": { + "@aws-cdk/core": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-kinesis": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kinesis/-/aws-kinesis-1.73.0.tgz", + "integrity": "sha512-1WEg4eMRBCCpcgx+jzt5VFgzcMBwOMUwq1hTpYheQMxxXMqCJFj9Funufo+IMthn7A5yekWPi2iE5alnNhIfdQ==", + "requires": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-kinesisfirehose": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kinesisfirehose/-/aws-kinesisfirehose-1.73.0.tgz", + "integrity": "sha512-FR/iIvnaIuvmes3lRG07sroMbM2qR98uoi0+CWAWQp0TECfrxZKW8DMM9tEQ11wfglwEkeO0l5fVnp+XyhlMZA==", + "requires": { + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-kms": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-kms/-/aws-kms-1.73.0.tgz", + "integrity": "sha512-4aQRGBktM1IYqM0Qa/yio1/sjNuokMdLQNrjTVxyX+AZE2/zPqARe+Gm6sFpPJ9Is8oy0YzecP80QZSCnWpCnQ==", + "requires": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-lambda": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda/-/aws-lambda-1.73.0.tgz", + "integrity": "sha512-ffw/hK1DbbSXklry4sDmJ+c+dX3Zl+I9DsYNjf0h2aonEKZo+g7ItAhVzr5s1kDnKatlEJTNOw1Kdpn20vFZHg==", + "requires": { + "@aws-cdk/aws-applicationautoscaling": "1.73.0", + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-codeguruprofiler": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-efs": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-s3-assets": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-lambda-event-sources": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-lambda-event-sources/-/aws-lambda-event-sources-1.73.0.tgz", + "integrity": "sha512-g8ydXohno+5CWfBWJmRCVTwifX2pDnIVuq3/ng04aq4puTVfPKIgSfhpX8Zmj3f6rhgjrUUW5JnvJ7qMsltyPg==", + "requires": { + "@aws-cdk/aws-apigateway": "1.73.0", + "@aws-cdk/aws-dynamodb": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kinesis": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-s3-notifications": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sns-subscriptions": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-logs": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-logs/-/aws-logs-1.73.0.tgz", + "integrity": "sha512-pn/JUpz49nmP81rOW66S36HbBF+RCKDWyN+rQ671zr62T9EPJuRLWxbdahcnAN1eqyCsZEs9PpCvTnacj9ue7w==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-s3-assets": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-route53": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53/-/aws-route53-1.73.0.tgz", + "integrity": "sha512-M3298IkyLELVTlA+2g0EdEV+bYTkC3xzTiHwoqcJeCd8T7IY8E89f73bsweX8k49cu1soPAUvXVJuUfxb6WYEg==", + "requires": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-route53-targets": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-route53-targets/-/aws-route53-targets-1.73.0.tgz", + "integrity": "sha512-ojCU1VYNcp0JJWa+oFSaxFKBW1gbToBqnVkJPCx21gTQrpu/uNfKHd+QqTwXf9WSmAzzZtAobeN0IW7Sn9im3Q==", + "requires": { + "@aws-cdk/aws-apigateway": "1.73.0", + "@aws-cdk/aws-apigatewayv2": "1.73.0", + "@aws-cdk/aws-cloudfront": "1.73.0", + "@aws-cdk/aws-cognito": "1.73.0", + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-elasticloadbalancing": "1.73.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-route53": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-s3": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3/-/aws-s3-1.73.0.tgz", + "integrity": "sha512-n0PuTBhqFxRfvGHhWk54R2hfS24b5DFkqP2PvTIwRFCBqmSUnRLF8I+GZ4c6RNxfVfDSzQBcGvfuCuNTL1KZLQ==", + "requires": { + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-s3-assets": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3-assets/-/aws-s3-assets-1.73.0.tgz", + "integrity": "sha512-CvxEIBOOj7tYMrMimPSsbtQ4OOurhUIiNIhM38gisTXYgSchKTeDzKJAbalfYOZSNJNEx1wMNL/+oKV/gDtrHQ==", + "requires": { + "@aws-cdk/assets": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/core": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-s3-notifications": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-s3-notifications/-/aws-s3-notifications-1.73.0.tgz", + "integrity": "sha512-QRiwCrl9d8RXb3vp5qe0azRRcO3sWhmw+ZYOJxMvEQlh8v+OxajOX5BdngQaa6dyzR0CRwWXzNcs9MbZHxFUxw==", + "requires": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-s3": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-sam": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sam/-/aws-sam-1.73.0.tgz", + "integrity": "sha512-q/xI4sv7wavGUwRl6nYZmo/jLwCTaGnR2zC21rMOEdrRJjyJer/0iibpcuex2VysNXmY6qXCJ4OdcDk6lbO89A==", + "requires": { + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-secretsmanager": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-secretsmanager/-/aws-secretsmanager-1.73.0.tgz", + "integrity": "sha512-0MuyhHFkncStY0TjSKJso7hO1/2+lvHv+hnaNKCB+499vxvS1LcE244jYWieI9IQx/9G2pNQ285TNrMotjEeQQ==", + "requires": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-sam": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-servicediscovery": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-servicediscovery/-/aws-servicediscovery-1.73.0.tgz", + "integrity": "sha512-3IV6+b6QUgQtOAqj1la6dagWufq6FcDIiDkhKLrzr3ppuT2wlkUsq+rjjQ6+4HHVoDEIy15E9/Dhxqm+nINCxQ==", + "requires": { + "@aws-cdk/aws-ec2": "1.73.0", + "@aws-cdk/aws-elasticloadbalancingv2": "1.73.0", + "@aws-cdk/aws-route53": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-sns": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns/-/aws-sns-1.73.0.tgz", + "integrity": "sha512-Ovo39L+u2zozgd2NQZp67BEfmYoIanfaE00RCAXp1pSm3IGt3OjfXbWuaiyLwMUUex866+MNkQ9Hr4WO/0mRsw==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-sns-subscriptions": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sns-subscriptions/-/aws-sns-subscriptions-1.73.0.tgz", + "integrity": "sha512-b5LnCM1CsqrNFurSrR7xI4Soldh01xMPsyz8G7qwOY2X7ZJJF2iHRAABjNEmClKDDP6Ln8mdJO50C9m3PM852A==", + "requires": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/aws-sqs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-sqs": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-sqs/-/aws-sqs-1.73.0.tgz", + "integrity": "sha512-15stNsRYY165Vvx/io6TnTSMHar10diLa2k2BTiL+PNzl18SfEIOoTy97PCvJp9AK2Ob9dyQwwjsiutTU56IbA==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-ssm": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-ssm/-/aws-ssm-1.73.0.tgz", + "integrity": "sha512-6fobpaL7hh0My/aypd7DHQ+sLuPcb7Taj8ngjmoh8H0muiAkfj4O0CjN3cd+kCYRr8T4zRh546ypvFfsc9WEHQ==", + "requires": { + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-kms": "1.73.0", + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/aws-stepfunctions": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/aws-stepfunctions/-/aws-stepfunctions-1.73.0.tgz", + "integrity": "sha512-e9KwgDAN8IvZap9IX7lhnAlZAeburIhvverZWs4ewhfulE27/O/sad0R5GYatzlCBVDCJ+8Eu/VUTI+Wgoa+eQ==", + "requires": { + "@aws-cdk/aws-cloudwatch": "1.73.0", + "@aws-cdk/aws-events": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/cloud-assembly-schema": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cloud-assembly-schema/-/cloud-assembly-schema-1.73.0.tgz", + "integrity": "sha512-3m5nJDLSApAuUMra2WrQF7GHt6xgxqFET91WShtKtj48brZk4MBJ3dLre2LjDVsmMMOVdd6FpjY7tE5C1v9Hyw==", + "requires": { + "jsonschema": "^1.4.0", + "semver": "^7.3.2" + }, + "dependencies": { + "jsonschema": { + "version": "1.4.0", + "bundled": true + }, + "semver": { + "version": "7.3.2", + "bundled": true + } + } + }, + "@aws-cdk/core": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/core/-/core-1.73.0.tgz", + "integrity": "sha512-CTmUXo0hAH78/uvzfmgW4gQKLnusMxULIEUjd0wnfs/6/zoB6n2DP+lmkr/7Vp4aIG9nNNirThdHesidlx79eA==", + "requires": { + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "@aws-cdk/cx-api": "1.73.0", + "@aws-cdk/region-info": "1.73.0", + "@balena/dockerignore": "^1.0.2", + "constructs": "^3.2.0", + "fs-extra": "^9.0.1", + "ignore": "^5.1.8", + "minimatch": "^3.0.4" + }, + "dependencies": { + "@balena/dockerignore": { + "version": "1.0.2", + "bundled": true + }, + "at-least-node": { + "version": "1.0.0", + "bundled": true + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "fs-extra": { + "version": "9.0.1", + "bundled": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "bundled": true + }, + "ignore": { + "version": "5.1.8", + "bundled": true + }, + "jsonfile": { + "version": "6.0.1", + "bundled": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "universalify": { + "version": "1.0.0", + "bundled": true + } + } + }, + "@aws-cdk/custom-resources": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/custom-resources/-/custom-resources-1.73.0.tgz", + "integrity": "sha512-WiRNwrDVNwJMoWbekRFAMcR6J/C6W71rZF19QGbfcWzOm0FxLUAkcWOIIgn0IR7XxbkVdefe3RyK3YSDXDr7uA==", + "requires": { + "@aws-cdk/aws-cloudformation": "1.73.0", + "@aws-cdk/aws-iam": "1.73.0", + "@aws-cdk/aws-lambda": "1.73.0", + "@aws-cdk/aws-logs": "1.73.0", + "@aws-cdk/aws-sns": "1.73.0", + "@aws-cdk/core": "1.73.0", + "constructs": "^3.2.0" + } + }, + "@aws-cdk/cx-api": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/cx-api/-/cx-api-1.73.0.tgz", + "integrity": "sha512-HlBpbIGu71xXdfJ1De1/HOMK5LWzKK9J7REho0oncpAO9KDxAbk+1aOFUZJVEgTsJSUUzLMSIUtDIo+ev70HGA==", + "requires": { + "@aws-cdk/cloud-assembly-schema": "1.73.0", + "semver": "^7.3.2" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "bundled": true + } + } + }, + "@aws-cdk/region-info": { + "version": "1.73.0", + "resolved": "https://registry.npmjs.org/@aws-cdk/region-info/-/region-info-1.73.0.tgz", + "integrity": "sha512-jWfx5mY3BaCVeFnbdUxrDTczVTuwShdtu3WkV2vL+W3VnUMzLPKbCPiGY8GutSBlWvoFpubsbVqx8Kw61pRgdQ==" + }, + "@jsii/spec": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@jsii/spec/-/spec-1.14.1.tgz", + "integrity": "sha512-h+HXPYD+k8zbkQRXzR9zWxXoSyBTBQL2N+t+iTgMuHpWvnrd6ZUegpWh/M1voMpmT5JHS7MftwIRjnp7yP92KQ==", + "dev": true, + "requires": { + "jsonschema": "^1.4.0" + } + }, + "@types/node": { + "version": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==" + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "array-filter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", + "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "available-typed-arrays": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", + "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", + "dev": true, + "requires": { + "array-filter": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + } + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "case": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz", + "integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "codemaker": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/codemaker/-/codemaker-1.14.1.tgz", + "integrity": "sha512-km8Aqf1ZioiM9Xm4Tj9pbIyFLoRV9l3ssw073C1AePt76TDqWFmJ83LrXkm+dSgdysoKVqY3Svn3BoPnN5bFKQ==", + "dev": true, + "requires": { + "camelcase": "^6.2.0", + "decamelize": "^4.0.0", + "fs-extra": "^9.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "commonmark": { + "version": "0.29.2", + "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.29.2.tgz", + "integrity": "sha512-spe43MvEIaPpHss1T7z4yQaFQfLGmMu+yvCwv6xqhELIwkG/ZGgDpxOPzKxnuYzYT2c+aziCCc8m2rBVLA7jUA==", + "dev": true, + "requires": { + "entities": "~2.0", + "mdurl": "~1.0.1", + "minimist": ">=1.2.2", + "string.prototype.repeat": "^0.2.0" + } + }, + "constructs": { + "version": "3.2.25", + "resolved": "https://registry.npmjs.org/constructs/-/constructs-3.2.25.tgz", + "integrity": "sha512-CTjjeA2Lk71R0z0agDvaspcKB5WdwzeQgA8v30fSgqfX0xMj0DhJ6AcmCwWnVOvYUuTMnU7Qv05tcJKR4sSqwQ==" + }, + "date-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "dev": true + }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + }, + "deep-equal": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.4.tgz", + "integrity": "sha512-BUfaXrVoCfgkOQY/b09QdO9L3XNoF2XH0A3aY9IQwQL/ZjLOe8FQgCNVl1wiolhsFo8kFdO9zdPViCPbmaJA5w==", + "dev": true, + "requires": { + "es-abstract": "^1.18.0-next.1", + "es-get-iterator": "^1.1.0", + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.2", + "is-regex": "^1.1.1", + "isarray": "^2.0.5", + "object-is": "^1.1.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.3", + "which-boxed-primitive": "^1.0.1", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "detect-indent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz", + "integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=", + "dev": true + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "entities": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==", + "dev": true + }, + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-get-iterator": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.1.tgz", + "integrity": "sha512-qorBw8Y7B15DVLaJWy6WdEV/ZkieBcu6QCq/xzWzGOKJqgG1j754vXRfZ3NY7HSShneqU43mPB4OkQBTkvHhFw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.1", + "has-symbols": "^1.0.1", + "is-arguments": "^1.0.4", + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", + "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "dev": true + }, + "is-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.0.tgz", + "integrity": "sha512-t5mGUXC/xRheCK431ylNiSkGGpBp8bHENBcENTkDT6ppwPzEVxNGZRvgvmOEfbWkFhA7D2GEuE2mmQTr78sl2g==", + "dev": true + }, + "is-boolean-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.0.1.tgz", + "integrity": "sha512-TqZuVwa/sppcrhUCAYkGBk7w0yxfQQnxq28fjkO53tnK9FQXmdwz2JS5+GjsWQ6RByES1K40nI+yDic5c9/aAQ==", + "dev": true + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz", + "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "dev": true + }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "dev": true + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-set": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz", + "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==", + "dev": true + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "dev": true + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typed-array": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.3.tgz", + "integrity": "sha512-BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGTQ==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.0", + "es-abstract": "^1.17.4", + "foreach": "^2.0.5", + "has-symbols": "^1.0.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true + }, + "is-weakset": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz", + "integrity": "sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==", + "dev": true + }, + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "jsii": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/jsii/-/jsii-1.14.1.tgz", + "integrity": "sha512-uDVBl8bvSnraJpKYyY22dOoERpQv/sEAHEj3L5b00qkBi6FsFr2KWfQOdUg9fMWdYrmMVuXWOWXJ186Fn7XF+A==", + "dev": true, + "requires": { + "@jsii/spec": "^1.14.1", + "case": "^1.6.3", + "colors": "^1.4.0", + "deep-equal": "^2.0.4", + "fs-extra": "^9.0.1", + "log4js": "^6.3.0", + "semver": "^7.3.2", + "semver-intersect": "^1.4.0", + "sort-json": "^2.0.0", + "spdx-license-list": "^6.3.0", + "typescript": "~3.9.7", + "yargs": "^16.1.0" + } + }, + "jsii-pacmak": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.14.1.tgz", + "integrity": "sha512-BRASls0wizqS4mxOmC2eoC7DgDb3tyS1UtFQeok0kfhhyi+GDs/9JPJ+VKlhU1kGLmsQswYxkPrZhV9VcXoiIw==", + "dev": true, + "requires": { + "@jsii/spec": "^1.14.1", + "clone": "^2.1.2", + "codemaker": "^1.14.1", + "commonmark": "^0.29.2", + "escape-string-regexp": "^4.0.0", + "fs-extra": "^9.0.1", + "jsii-reflect": "^1.14.1", + "jsii-rosetta": "^1.14.1", + "semver": "^7.3.2", + "spdx-license-list": "^6.3.0", + "xmlbuilder": "^15.1.1", + "yargs": "^16.1.0" + } + }, + "jsii-reflect": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.14.1.tgz", + "integrity": "sha512-otKxvnNn2kAMMygBiw8fGnmJFhQ0EcPTJZH4y/Yn1rZg/nGLAk/G8lCQYfh3xm2/GwSpjh/w6ZEPsq/RUuPR1A==", + "dev": true, + "requires": { + "@jsii/spec": "^1.14.1", + "colors": "^1.4.0", + "fs-extra": "^9.0.1", + "oo-ascii-tree": "^1.14.1", + "yargs": "^16.1.0" + } + }, + "jsii-rosetta": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.14.1.tgz", + "integrity": "sha512-HfM1IO7eIQ8qyDxTRRdV3TraBhnCivq3N3qMdJuPEJ3O2lprx0TS6pvIXzv9DgDWJwLVDaxI1ecTZhSl9poGeQ==", + "dev": true, + "requires": { + "@jsii/spec": "^1.14.1", + "commonmark": "^0.29.2", + "fs-extra": "^9.0.1", + "typescript": "~3.9.7", + "xmldom": "^0.4.0", + "yargs": "^16.1.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "jsonschema": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz", + "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==", + "dev": true + }, + "log4js": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "dev": true, + "requires": { + "date-format": "^3.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.1", + "rfdc": "^1.1.4", + "streamroller": "^2.2.4" + } + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + }, + "object-is": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.3.tgz", + "integrity": "sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "oo-ascii-tree": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.14.1.tgz", + "integrity": "sha512-dW0RFnYqUj8WQpvuYXVvjfA3ABoNQnScgSxnKa9lPPCvfcO4CBPshifk9M6hU3ksttcNGbQkFq6k2di2E23SVA==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "dev": true + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "requires": { + "semver": "^5.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "side-channel": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz", + "integrity": "sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g==", + "dev": true, + "requires": { + "es-abstract": "^1.18.0-next.0", + "object-inspect": "^1.8.0" + } + }, + "sort-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-json/-/sort-json-2.0.0.tgz", + "integrity": "sha512-OgXPErPJM/rBK5OhzIJ+etib/BmLQ1JY55Nb/ElhoWUec62pXNF/X6DrecHq3NW5OAGX0KxYD7m0HtgB9dvGeA==", + "dev": true, + "requires": { + "detect-indent": "^5.0.0", + "detect-newline": "^2.1.0", + "minimist": "^1.2.0" + } + }, + "spdx-license-list": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-6.3.0.tgz", + "integrity": "sha512-Qz8ru5VVK5T4cFOBrshIzggzrQ15fVBcpjpZLCVz2j9KNnpslGbw8w1r06v2vi6YP6bnUSY5CXsFCfUypLZ2GA==", + "dev": true + }, + "streamroller": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "dev": true, + "requires": { + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string.prototype.repeat": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz", + "integrity": "sha1-q6Nt4I3O5qWjN9SbLqHaGyj8Ds8=", + "dev": true + }, + "string.prototype.trimend": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", + "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "string.prototype.trimstart": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", + "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "typescript": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", + "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", + "dev": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + }, + "which-boxed-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.1.tgz", + "integrity": "sha512-7BT4TwISdDGBgaemWU0N0OU7FeAEJ9Oo2P1PHRm/FCWoEi2VLWC9b6xvxAA3C/NMpxg3HXVgi0sMmGbNUbNepQ==", + "dev": true, + "requires": { + "is-bigint": "^1.0.0", + "is-boolean-object": "^1.0.0", + "is-number-object": "^1.0.3", + "is-string": "^1.0.4", + "is-symbol": "^1.0.2" + } + }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-typed-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.2.tgz", + "integrity": "sha512-KT6okrd1tE6JdZAy3o2VhMoYPh3+J6EMZLyrxBQsZflI1QCZIxMrIYLkosd8Twf+YfknVIHmYQPgJt238p8dnQ==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.2", + "es-abstract": "^1.17.5", + "foreach": "^2.0.5", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true + }, + "xmldom": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.4.0.tgz", + "integrity": "sha512-2E93k08T30Ugs+34HBSTQLVtpi6mCddaY8uO+pMNk1pqSjV5vElzn4mmh6KLxN3hki8rNcHSYzILoh3TEWORvA==", + "dev": true + }, + "y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "dev": true + }, + "yargs": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.1.0.tgz", + "integrity": "sha512-upWFJOmDdHN0syLuESuvXDmrRcWd1QafJolHskzaw79uZa7/x53gxQKiR07W59GWY1tFhhU/Th9DrtSfpS782g==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.2", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + } + } +} diff --git a/packages/stepfunction-event-logger/package.json b/packages/stepfunction-event-logger/package.json new file mode 100644 index 0000000..80f849e --- /dev/null +++ b/packages/stepfunction-event-logger/package.json @@ -0,0 +1,80 @@ +{ + "name": "@cdk-seed/stepfunction-event-logger", + "version": "1.0.0", + "description": "StepFunction event logger using EventBridge and SQS", + "keywords": [ + "StepFunction", + "EventBridge", + "SQS", + "DynamoDB", + "PostgreSQL", + "events", + "logging", + "error", + "tracing" + ], + "author": "Leo Thomas ", + "homepage": "https://github.com/developmentseed/cdk-seed#readme", + "license": "MIT", + "main": "lib/index.js", + "types": "lib/index.d.ts", + "directories": { + "lib": "lib", + "test": "__tests__" + }, + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/developmentseed/cdk-seed.git" + }, + "scripts": { + "build": "jsii", + "build:watch": "jsii -w", + "package": "jsii-pacmak", + "docgen": "jsii-docgen" + }, + "bugs": { + "url": "https://github.com/developmentseed/cdk-seed/issues" + }, + "devDependencies": { + "jsii": "^1.14.1", + "jsii-pacmak": "^1.14.1" + }, + "stability": "experimental", + "jsii": { + "outdir": "dist", + "versionFormat": "full", + "targets": { + "python": { + "distName": "cdk-seed.stepfunction-event-logger", + "module": "cdk_seed.stepfunction_event_logger" + } + } + }, + "dependencies": { + "@aws-cdk/aws-dynamodb": "^1.73.0", + "@aws-cdk/aws-events": "^1.73.0", + "@aws-cdk/aws-events-targets": "^1.73.0", + "@aws-cdk/aws-lambda": "^1.73.0", + "@aws-cdk/aws-lambda-event-sources": "^1.73.0", + "@aws-cdk/aws-sqs": "^1.73.0", + "@aws-cdk/aws-stepfunctions": "^1.73.0", + "@aws-cdk/core": "^1.73.0", + "@types/node": "^14.14.8" + }, + "peerDependencies": { + "@aws-cdk/aws-dynamodb": "^1.73.0", + "@aws-cdk/aws-events": "^1.73.0", + "@aws-cdk/aws-events-targets": "^1.73.0", + "@aws-cdk/aws-lambda": "^1.73.0", + "@aws-cdk/aws-lambda-event-sources": "^1.73.0", + "@aws-cdk/aws-sqs": "^1.73.0", + "@aws-cdk/aws-stepfunctions": "^1.73.0", + "@aws-cdk/core": "^1.73.0" + }, + "bundleDependencies": [ + "@types/node" + ] +}