diff --git a/deno.lock b/deno.lock new file mode 100644 index 00000000..ea097db9 --- /dev/null +++ b/deno.lock @@ -0,0 +1,1552 @@ +{ + "version": "3", + "packages": { + "specifiers": { + "npm:@prisma/adapter-pg@^5.12.0": "npm:@prisma/adapter-pg@5.15.0_pg@8.12.0", + "npm:pg@^8.11.3": "npm:pg@8.12.0", + "npm:zod-validation-error@3.3.0": "npm:zod-validation-error@3.3.0_zod@3.23.8", + "npm:zod@3.23.8": "npm:zod@3.23.8" + }, + "npm": { + "@prisma/adapter-pg@5.15.0_pg@8.12.0": { + "integrity": "sha512-BH22FGKDGBjJRVOLiA1H45G7yRzeQ9IX5Kx+8oqISWzxxOcN6vNDHSmio9cJn6iMA7ygqTFi0gj5HvpmHB7DQA==", + "dependencies": { + "@prisma/driver-adapter-utils": "@prisma/driver-adapter-utils@5.15.0", + "pg": "pg@8.12.0", + "postgres-array": "postgres-array@3.0.2" + } + }, + "@prisma/debug@5.15.0": { + "integrity": "sha512-QpEAOjieLPc/4sMny/WrWqtpIAmBYsgqwWlWwIctqZO0AbhQ9QcT6x2Ut3ojbDo/pFRCCA1Z1+xm2MUy7fAkZA==", + "dependencies": {} + }, + "@prisma/driver-adapter-utils@5.15.0": { + "integrity": "sha512-p4jxptZE3p5WCdfE+dvHTNvrtlqPllAMkbAnR9BGr48nBwl15QDMDjZdvbubgO9VH30Nc5XWHINx0dyI+RlxSw==", + "dependencies": { + "@prisma/debug": "@prisma/debug@5.15.0" + } + }, + "pg-cloudflare@1.1.1": { + "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "dependencies": {} + }, + "pg-connection-string@2.6.4": { + "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==", + "dependencies": {} + }, + "pg-int8@1.0.1": { + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "dependencies": {} + }, + "pg-pool@3.6.2_pg@8.12.0": { + "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", + "dependencies": { + "pg": "pg@8.12.0" + } + }, + "pg-protocol@1.6.1": { + "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==", + "dependencies": {} + }, + "pg-types@2.2.0": { + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dependencies": { + "pg-int8": "pg-int8@1.0.1", + "postgres-array": "postgres-array@2.0.0", + "postgres-bytea": "postgres-bytea@1.0.0", + "postgres-date": "postgres-date@1.0.7", + "postgres-interval": "postgres-interval@1.2.0" + } + }, + "pg@8.12.0": { + "integrity": "sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ==", + "dependencies": { + "pg-cloudflare": "pg-cloudflare@1.1.1", + "pg-connection-string": "pg-connection-string@2.6.4", + "pg-pool": "pg-pool@3.6.2_pg@8.12.0", + "pg-protocol": "pg-protocol@1.6.1", + "pg-types": "pg-types@2.2.0", + "pgpass": "pgpass@1.0.5" + } + }, + "pgpass@1.0.5": { + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "dependencies": { + "split2": "split2@4.2.0" + } + }, + "postgres-array@2.0.0": { + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "dependencies": {} + }, + "postgres-array@3.0.2": { + "integrity": "sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==", + "dependencies": {} + }, + "postgres-bytea@1.0.0": { + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "dependencies": {} + }, + "postgres-date@1.0.7": { + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "dependencies": {} + }, + "postgres-interval@1.2.0": { + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dependencies": { + "xtend": "xtend@4.0.2" + } + }, + "split2@4.2.0": { + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dependencies": {} + }, + "xtend@4.0.2": { + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dependencies": {} + }, + "zod-validation-error@3.3.0_zod@3.23.8": { + "integrity": "sha512-Syib9oumw1NTqEv4LT0e6U83Td9aVRk9iTXPUQr1otyV1PuXQKOvOwhMNqZIq5hluzHP2pMgnOmHEo7kPdI2mw==", + "dependencies": { + "zod": "zod@3.23.8" + } + }, + "zod@3.23.8": { + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "dependencies": {} + } + } + }, + "redirects": { + "https://esm.sh/@aws-sdk/client-s3@^3.592.0": "https://esm.sh/@aws-sdk/client-s3@3.592.0", + "https://esm.sh/@aws-sdk/s3-request-presigner@^3.592.0": "https://esm.sh/@aws-sdk/s3-request-presigner@3.592.0", + "https://esm.sh/ajv-formats@^2.1.1": "https://esm.sh/ajv-formats@2.1.1", + "https://esm.sh/ajv@^8.12.0": "https://esm.sh/ajv@8.12.0" + }, + "remote": { + "https://deno.land/std@0.208.0/assert/_constants.ts": "8a9da298c26750b28b326b297316cdde860bc237533b07e1337c021379e6b2a9", + "https://deno.land/std@0.208.0/assert/_diff.ts": "58e1461cc61d8eb1eacbf2a010932bf6a05b79344b02ca38095f9b805795dc48", + "https://deno.land/std@0.208.0/assert/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", + "https://deno.land/std@0.208.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", + "https://deno.land/std@0.208.0/assert/assert_almost_equals.ts": "e15ca1f34d0d5e0afae63b3f5d975cbd18335a132e42b0c747d282f62ad2cd6c", + "https://deno.land/std@0.208.0/assert/assert_array_includes.ts": "6856d7f2c3544bc6e62fb4646dfefa3d1df5ff14744d1bca19f0cbaf3b0d66c9", + "https://deno.land/std@0.208.0/assert/assert_equals.ts": "d8ec8a22447fbaf2fc9d7c3ed2e66790fdb74beae3e482855d75782218d68227", + "https://deno.land/std@0.208.0/assert/assert_exists.ts": "407cb6b9fb23a835cd8d5ad804e2e2edbbbf3870e322d53f79e1c7a512e2efd7", + "https://deno.land/std@0.208.0/assert/assert_false.ts": "0ccbcaae910f52c857192ff16ea08bda40fdc79de80846c206bfc061e8c851c6", + "https://deno.land/std@0.208.0/assert/assert_greater.ts": "ae2158a2d19313bf675bf7251d31c6dc52973edb12ac64ac8fc7064152af3e63", + "https://deno.land/std@0.208.0/assert/assert_greater_or_equal.ts": "1439da5ebbe20855446cac50097ac78b9742abe8e9a43e7de1ce1426d556e89c", + "https://deno.land/std@0.208.0/assert/assert_instance_of.ts": "3aedb3d8186e120812d2b3a5dea66a6e42bf8c57a8bd927645770bd21eea554c", + "https://deno.land/std@0.208.0/assert/assert_is_error.ts": "c21113094a51a296ffaf036767d616a78a2ae5f9f7bbd464cd0197476498b94b", + "https://deno.land/std@0.208.0/assert/assert_less.ts": "aec695db57db42ec3e2b62e97e1e93db0063f5a6ec133326cc290ff4b71b47e4", + "https://deno.land/std@0.208.0/assert/assert_less_or_equal.ts": "5fa8b6a3ffa20fd0a05032fe7257bf985d207b85685fdbcd23651b70f928c848", + "https://deno.land/std@0.208.0/assert/assert_match.ts": "c4083f80600bc190309903c95e397a7c9257ff8b5ae5c7ef91e834704e672e9b", + "https://deno.land/std@0.208.0/assert/assert_not_equals.ts": "9f1acab95bd1f5fc9a1b17b8027d894509a745d91bac1718fdab51dc76831754", + "https://deno.land/std@0.208.0/assert/assert_not_instance_of.ts": "0c14d3dfd9ab7a5276ed8ed0b18c703d79a3d106102077ec437bfe7ed912bd22", + "https://deno.land/std@0.208.0/assert/assert_not_match.ts": "3796a5b0c57a1ce6c1c57883dd4286be13a26f715ea662318ab43a8491a13ab0", + "https://deno.land/std@0.208.0/assert/assert_not_strict_equals.ts": "4cdef83df17488df555c8aac1f7f5ec2b84ad161b6d0645ccdbcc17654e80c99", + "https://deno.land/std@0.208.0/assert/assert_object_match.ts": "d8fc2867cfd92eeacf9cea621e10336b666de1874a6767b5ec48988838370b54", + "https://deno.land/std@0.208.0/assert/assert_rejects.ts": "45c59724de2701e3b1f67c391d6c71c392363635aad3f68a1b3408f9efca0057", + "https://deno.land/std@0.208.0/assert/assert_strict_equals.ts": "b1f538a7ea5f8348aeca261d4f9ca603127c665e0f2bbfeb91fa272787c87265", + "https://deno.land/std@0.208.0/assert/assert_string_includes.ts": "b821d39ebf5cb0200a348863c86d8c4c4b398e02012ce74ad15666fc4b631b0c", + "https://deno.land/std@0.208.0/assert/assert_throws.ts": "63784e951475cb7bdfd59878cd25a0931e18f6dc32a6077c454b2cd94f4f4bcd", + "https://deno.land/std@0.208.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", + "https://deno.land/std@0.208.0/assert/equal.ts": "9f1a46d5993966d2596c44e5858eec821859b45f783a5ee2f7a695dfc12d8ece", + "https://deno.land/std@0.208.0/assert/fail.ts": "c36353d7ae6e1f7933d45f8ea51e358c8c4b67d7e7502028598fe1fea062e278", + "https://deno.land/std@0.208.0/assert/mod.ts": "37c49a26aae2b254bbe25723434dc28cd7532e444cf0b481a97c045d110ec085", + "https://deno.land/std@0.208.0/assert/unimplemented.ts": "d56fbeecb1f108331a380f72e3e010a1f161baa6956fd0f7cf3e095ae1a4c75a", + "https://deno.land/std@0.208.0/assert/unreachable.ts": "4600dc0baf7d9c15a7f7d234f00c23bca8f3eba8b140286aaca7aa998cf9a536", + "https://deno.land/std@0.208.0/fmt/colors.ts": "34b3f77432925eb72cf0bfb351616949746768620b8e5ead66da532f93d10ba2", + "https://deno.land/std@0.214.0/async/delay.ts": "8e1d18fe8b28ff95885e2bc54eccec1713f57f756053576d8228e6ca110793ad", + "https://deno.land/std@0.217.0/assert/_constants.ts": "a271e8ef5a573f1df8e822a6eb9d09df064ad66a4390f21b3e31f820a38e0975", + "https://deno.land/std@0.217.0/assert/_diff.ts": "dcc63d94ca289aec80644030cf88ccbf7acaa6fbd7b0f22add93616b36593840", + "https://deno.land/std@0.217.0/assert/_format.ts": "0ba808961bf678437fb486b56405b6fefad2cf87b5809667c781ddee8c32aff4", + "https://deno.land/std@0.217.0/assert/assert.ts": "bec068b2fccdd434c138a555b19a2c2393b71dfaada02b7d568a01541e67cdc5", + "https://deno.land/std@0.217.0/assert/assert_almost_equals.ts": "8b96b7385cc117668b0720115eb6ee73d04c9bcb2f5d2344d674918c9113688f", + "https://deno.land/std@0.217.0/assert/assert_array_includes.ts": "1688d76317fd45b7e93ef9e2765f112fdf2b7c9821016cdfb380b9445374aed1", + "https://deno.land/std@0.217.0/assert/assert_equals.ts": "4497c56fe7d2993b0d447926702802fc0becb44e319079e8eca39b482ee01b4e", + "https://deno.land/std@0.217.0/assert/assert_exists.ts": "24a7bf965e634f909242cd09fbaf38bde6b791128ece08e33ab08586a7cc55c9", + "https://deno.land/std@0.217.0/assert/assert_false.ts": "6f382568e5128c0f855e5f7dbda8624c1ed9af4fcc33ef4a9afeeedcdce99769", + "https://deno.land/std@0.217.0/assert/assert_greater.ts": "4945cf5729f1a38874d7e589e0fe5cc5cd5abe5573ca2ddca9d3791aa891856c", + "https://deno.land/std@0.217.0/assert/assert_greater_or_equal.ts": "573ed8823283b8d94b7443eb69a849a3c369a8eb9666b2d1db50c33763a5d219", + "https://deno.land/std@0.217.0/assert/assert_instance_of.ts": "72dc1faff1e248692d873c89382fa1579dd7b53b56d52f37f9874a75b11ba444", + "https://deno.land/std@0.217.0/assert/assert_is_error.ts": "6596f2b5ba89ba2fe9b074f75e9318cda97a2381e59d476812e30077fbdb6ed2", + "https://deno.land/std@0.217.0/assert/assert_less.ts": "2b4b3fe7910f65f7be52212f19c3977ecb8ba5b2d6d0a296c83cde42920bb005", + "https://deno.land/std@0.217.0/assert/assert_less_or_equal.ts": "b93d212fe669fbde959e35b3437ac9a4468f2e6b77377e7b6ea2cfdd825d38a0", + "https://deno.land/std@0.217.0/assert/assert_match.ts": "ec2d9680ed3e7b9746ec57ec923a17eef6d476202f339ad91d22277d7f1d16e1", + "https://deno.land/std@0.217.0/assert/assert_not_equals.ts": "ac86413ab70ffb14fdfc41740ba579a983fe355ba0ce4a9ab685e6b8e7f6a250", + "https://deno.land/std@0.217.0/assert/assert_not_instance_of.ts": "8f720d92d83775c40b2542a8d76c60c2d4aeddaf8713c8d11df8984af2604931", + "https://deno.land/std@0.217.0/assert/assert_not_match.ts": "b4b7c77f146963e2b673c1ce4846473703409eb93f5ab0eb60f6e6f8aeffe39f", + "https://deno.land/std@0.217.0/assert/assert_not_strict_equals.ts": "da0b8ab60a45d5a9371088378e5313f624799470c3b54c76e8b8abeec40a77be", + "https://deno.land/std@0.217.0/assert/assert_object_match.ts": "e85e5eef62a56ce364c3afdd27978ccab979288a3e772e6855c270a7b118fa49", + "https://deno.land/std@0.217.0/assert/assert_rejects.ts": "e9e0c8d9c3e164c7ac962c37b3be50577c5a2010db107ed272c4c1afb1269f54", + "https://deno.land/std@0.217.0/assert/assert_strict_equals.ts": "0425a98f70badccb151644c902384c12771a93e65f8ff610244b8147b03a2366", + "https://deno.land/std@0.217.0/assert/assert_string_includes.ts": "dfb072a890167146f8e5bdd6fde887ce4657098e9f71f12716ef37f35fb6f4a7", + "https://deno.land/std@0.217.0/assert/assert_throws.ts": "edddd86b39606c342164b49ad88dd39a26e72a26655e07545d172f164b617fa7", + "https://deno.land/std@0.217.0/assert/assertion_error.ts": "9f689a101ee586c4ce92f52fa7ddd362e86434ffdf1f848e45987dc7689976b8", + "https://deno.land/std@0.217.0/assert/equal.ts": "fae5e8a52a11d3ac694bbe1a53e13a7969e3f60791262312e91a3e741ae519e2", + "https://deno.land/std@0.217.0/assert/fail.ts": "f310e51992bac8e54f5fd8e44d098638434b2edb802383690e0d7a9be1979f1c", + "https://deno.land/std@0.217.0/assert/mod.ts": "325df8c0683ad83a873b9691aa66b812d6275fc9fec0b2d180ac68a2c5efed3b", + "https://deno.land/std@0.217.0/assert/unimplemented.ts": "47ca67d1c6dc53abd0bd729b71a31e0825fc452dbcd4fde4ca06789d5644e7fd", + "https://deno.land/std@0.217.0/assert/unreachable.ts": "38cfecb95d8b06906022d2f9474794fca4161a994f83354fd079cac9032b5145", + "https://deno.land/std@0.217.0/fmt/colors.ts": "d239d84620b921ea520125d778947881f62c50e78deef2657073840b8af9559a", + "https://deno.land/std@0.220.0/assert/_constants.ts": "a271e8ef5a573f1df8e822a6eb9d09df064ad66a4390f21b3e31f820a38e0975", + "https://deno.land/std@0.220.0/assert/_diff.ts": "4bf42969aa8b1a33aaf23eb8e478b011bfaa31b82d85d2ff4b5c4662d8780d2b", + "https://deno.land/std@0.220.0/assert/_format.ts": "0ba808961bf678437fb486b56405b6fefad2cf87b5809667c781ddee8c32aff4", + "https://deno.land/std@0.220.0/assert/assert.ts": "bec068b2fccdd434c138a555b19a2c2393b71dfaada02b7d568a01541e67cdc5", + "https://deno.land/std@0.220.0/assert/assert_almost_equals.ts": "8b96b7385cc117668b0720115eb6ee73d04c9bcb2f5d2344d674918c9113688f", + "https://deno.land/std@0.220.0/assert/assert_array_includes.ts": "1688d76317fd45b7e93ef9e2765f112fdf2b7c9821016cdfb380b9445374aed1", + "https://deno.land/std@0.220.0/assert/assert_equals.ts": "4497c56fe7d2993b0d447926702802fc0becb44e319079e8eca39b482ee01b4e", + "https://deno.land/std@0.220.0/assert/assert_exists.ts": "24a7bf965e634f909242cd09fbaf38bde6b791128ece08e33ab08586a7cc55c9", + "https://deno.land/std@0.220.0/assert/assert_false.ts": "6f382568e5128c0f855e5f7dbda8624c1ed9af4fcc33ef4a9afeeedcdce99769", + "https://deno.land/std@0.220.0/assert/assert_greater.ts": "4945cf5729f1a38874d7e589e0fe5cc5cd5abe5573ca2ddca9d3791aa891856c", + "https://deno.land/std@0.220.0/assert/assert_greater_or_equal.ts": "573ed8823283b8d94b7443eb69a849a3c369a8eb9666b2d1db50c33763a5d219", + "https://deno.land/std@0.220.0/assert/assert_instance_of.ts": "72dc1faff1e248692d873c89382fa1579dd7b53b56d52f37f9874a75b11ba444", + "https://deno.land/std@0.220.0/assert/assert_is_error.ts": "6596f2b5ba89ba2fe9b074f75e9318cda97a2381e59d476812e30077fbdb6ed2", + "https://deno.land/std@0.220.0/assert/assert_less.ts": "2b4b3fe7910f65f7be52212f19c3977ecb8ba5b2d6d0a296c83cde42920bb005", + "https://deno.land/std@0.220.0/assert/assert_less_or_equal.ts": "b93d212fe669fbde959e35b3437ac9a4468f2e6b77377e7b6ea2cfdd825d38a0", + "https://deno.land/std@0.220.0/assert/assert_match.ts": "ec2d9680ed3e7b9746ec57ec923a17eef6d476202f339ad91d22277d7f1d16e1", + "https://deno.land/std@0.220.0/assert/assert_not_equals.ts": "ac86413ab70ffb14fdfc41740ba579a983fe355ba0ce4a9ab685e6b8e7f6a250", + "https://deno.land/std@0.220.0/assert/assert_not_instance_of.ts": "8f720d92d83775c40b2542a8d76c60c2d4aeddaf8713c8d11df8984af2604931", + "https://deno.land/std@0.220.0/assert/assert_not_match.ts": "b4b7c77f146963e2b673c1ce4846473703409eb93f5ab0eb60f6e6f8aeffe39f", + "https://deno.land/std@0.220.0/assert/assert_not_strict_equals.ts": "da0b8ab60a45d5a9371088378e5313f624799470c3b54c76e8b8abeec40a77be", + "https://deno.land/std@0.220.0/assert/assert_object_match.ts": "e85e5eef62a56ce364c3afdd27978ccab979288a3e772e6855c270a7b118fa49", + "https://deno.land/std@0.220.0/assert/assert_rejects.ts": "5206ac37d883797d9504e3915a0c7b692df6efcdefff3889cc14bb5a325641dd", + "https://deno.land/std@0.220.0/assert/assert_strict_equals.ts": "0425a98f70badccb151644c902384c12771a93e65f8ff610244b8147b03a2366", + "https://deno.land/std@0.220.0/assert/assert_string_includes.ts": "dfb072a890167146f8e5bdd6fde887ce4657098e9f71f12716ef37f35fb6f4a7", + "https://deno.land/std@0.220.0/assert/assert_throws.ts": "31f3c061338aec2c2c33731973d58ccd4f14e42f355501541409ee958d2eb8e5", + "https://deno.land/std@0.220.0/assert/assertion_error.ts": "9f689a101ee586c4ce92f52fa7ddd362e86434ffdf1f848e45987dc7689976b8", + "https://deno.land/std@0.220.0/assert/equal.ts": "fae5e8a52a11d3ac694bbe1a53e13a7969e3f60791262312e91a3e741ae519e2", + "https://deno.land/std@0.220.0/assert/fail.ts": "f310e51992bac8e54f5fd8e44d098638434b2edb802383690e0d7a9be1979f1c", + "https://deno.land/std@0.220.0/assert/mod.ts": "7e41449e77a31fef91534379716971bebcfc12686e143d38ada5438e04d4a90e", + "https://deno.land/std@0.220.0/assert/unimplemented.ts": "47ca67d1c6dc53abd0bd729b71a31e0825fc452dbcd4fde4ca06789d5644e7fd", + "https://deno.land/std@0.220.0/assert/unreachable.ts": "3670816a4ab3214349acb6730e3e6f5299021234657eefe05b48092f3848c270", + "https://deno.land/std@0.220.0/fmt/colors.ts": "d239d84620b921ea520125d778947881f62c50e78deef2657073840b8af9559a", + "https://deno.land/std@0.224.0/collections/_utils.ts": "b2ec8ada31b5a72ebb1d99774b849b4c09fe4b3a38d07794bd010bd218a16e0b", + "https://deno.land/std@0.224.0/collections/deep_merge.ts": "04f8d2a6cfa15c7580e788689bcb5e162512b9ccb18bab1241824b432a78551e", + "https://deno.land/x/deno_faker@v1.0.3/lib/address.ts": "d461912c0a8c14fb6d277016e4e2e0098fcba4dee0fe77f5de248c7fc2aaa601", + "https://deno.land/x/deno_faker@v1.0.3/lib/commerce.ts": "797e10dd360b1f63b2d877b368db5bedabb90c07d5ccb4cc63fded644648c8b5", + "https://deno.land/x/deno_faker@v1.0.3/lib/company.ts": "c241dd2ccfcee7a400b94badcdb5ee9657784dd47a86417b54952913023cbd11", + "https://deno.land/x/deno_faker@v1.0.3/lib/database.ts": "72e0e71557311c87f2ea24688a6970c71b82f6696f6dd7b6e5649c9355339f7d", + "https://deno.land/x/deno_faker@v1.0.3/lib/date.ts": "4f3cc326337d5925e4a1093575d776d70ebf9051d0567355f4a67091bd0e31ba", + "https://deno.land/x/deno_faker@v1.0.3/lib/fake.ts": "3f1c321ec38f4d495412a41c3895ad3acb2f77b1ca3fe4ae51e62e3e8d5dbac7", + "https://deno.land/x/deno_faker@v1.0.3/lib/finance.ts": "c428ce66f0b4b8c95072e19675a321cbdb496ee965a0e47949ad1c2266cd7212", + "https://deno.land/x/deno_faker@v1.0.3/lib/git.ts": "f448237db41625767e6393f819b65406208b0d8abafd5773218ed07825e33a10", + "https://deno.land/x/deno_faker@v1.0.3/lib/hacker.ts": "adceba144436c773fc9416a462d8796f8db70a5556bdbdbd7cfcfbb486a6de4b", + "https://deno.land/x/deno_faker@v1.0.3/lib/helpers.ts": "3aa64169094ec471b790f6830746ea36343d211bddb3ca17e64d557e68da64e5", + "https://deno.land/x/deno_faker@v1.0.3/lib/iban.ts": "b1ccfc86f8a527b644ae30b9c21341b30215d44da2912e420a74565b3f6967eb", + "https://deno.land/x/deno_faker@v1.0.3/lib/image.ts": "d7300d6c4542483df47a49aec5f4dab091d3a4d354477dd6e4008a3f9feaf439", + "https://deno.land/x/deno_faker@v1.0.3/lib/image_providers/lorempixel.ts": "1ecd713b2f76a81ffcac705856e0a1c9c2ab8bd476c99a0d47d7a25805ce214e", + "https://deno.land/x/deno_faker@v1.0.3/lib/image_providers/unsplash.ts": "fb066692bfdc1ace611a954a7f4c5bd972db13edb7751eb74f92b8523fc590a6", + "https://deno.land/x/deno_faker@v1.0.3/lib/internet.ts": "eb2fb284d79bcfe5f2ef22483f1fc3087d136080e066e6f8713bc86dd3d972aa", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales.ts": "461a670a71a58a0241bb1c3ec7e260285e158d32cccad6587857ae97e0d2ca73", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/building_number.ts": "1eed25d6937aa63676fe04b9a2fda42df1dc2d2b04b28beda45f4dab2410413f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/country.ts": "7b17d4c0f9476dd4d15742fb61f16f571742477349de60ae87bea1ff79a238ef", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/default_country.ts": "2165aa40b29c6339785c419a9f871f6c8ee9c44495f9c6fa52ef211931e53d8e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/mod.ts": "19faf940c7b571fa8e96595f509abe6964419c271b8138458a6dfc37ae109d7b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/postcode.ts": "12d3bff99ec26dcea3f4e375ab450d848ffcdb7b43c3ff5f673b5a87c925a76f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/postcode_by_state.ts": "12d3bff99ec26dcea3f4e375ab450d848ffcdb7b43c3ff5f673b5a87c925a76f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/secondary_address.ts": "ad9669d73c976d1714d63d4a357626351dc3f60faa6b54214eaadd2eaae2d7bd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/state.ts": "188570a77efed0deb432bb37a9a736d70c8c7ff8eebdfa142a0c9e6feca49d82", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/street_address.ts": "b59074f0d19ce82f3fa5dc987279c0a89b42e60bd9e437c5382eeaaf25c321aa", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/street_name.ts": "4e0a40e6d88d5ed6314f2cc32687096bb6cd2785db591d53b9c8b0004d1afad8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/cell_phone/formats.ts": "34b4bdf380a6ba8541c4b28d55de9296024232ad6e7b033e67cf627201e2b2bc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/commerce/color.ts": "affb2ec4cd0baa1f807aab3279094d1e5c9e4676e746f63b9015b7244e100563", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/commerce/department.ts": "046757039555a61bea63e64b9854aa8b05409fa9c17bcfcdf721819f79811db0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/commerce/mod.ts": "765bd0d030f17e147cc41f61b55f27ee1f7a1685a137472e2ce50ca2f145032e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/mod.ts": "e32b62df3fd8666980319d1069a0c553369a1c406ea6ccd0591411e8051ded4c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/phone_number/formats.ts": "6b30689c06f0ffe8ffaf363addff160ba4a1e7313bde84f77b41e309586295a6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/building_number.ts": "9740db2c88dd22c886bf37bef7d3e0bdb81b801966b2b3f9ed75fb1e42a197ea", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/city.ts": "908b112fc91f60460a1b7bd190b9fa8a2c83fb26c1ee86b260ec685fe96de2cb", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/city_name.ts": "044ee3f1ccf9e469178d652f455de15933ef101351192ce473e29dbaf26784d3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/country.ts": "95a785f788f7b8ac5a90972d9f4e743080bffbc7fb637f2f8697feb47ef5eb00", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/default_country.ts": "3fbcb1fc44527dee04c294fde9e0aa55c1ac0937da5ff094dc1aa1f9034d56eb", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/mod.ts": "cb2f2355267791dc4d7f98fad3d42777778a199f8c32022ba13df714fd8a22ec", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/postcode.ts": "b8d6fbc798827ae9618ac89a0d08d289b43b9d87cebd9779ebf4aca990c1275b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/secondary_address.ts": "9028288c5292a53b8c54a873c0d8304ef1afbf3f11065d68acd93e8302b73741", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/state.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/street_address.ts": "2672823ce92f5a174d475eab67a815edcffd3093621a01134b05e6ac50b35f0a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/street_name.ts": "4cfd8b424391ef4760b3db820dad1d15afff0e1b4a1663a11fa0302120442595", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/street_suffix.ts": "c94f13c57ab645e58e2d28d416cc5b8ddf14c3b3dd0d96f457f2baf250a9b185", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/street_title.ts": "ca0ec1457dd25a8f07cf22bc52c61509324b19b2a0504ecf7848f03cffe941f5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/commerce/color.ts": "a52eb47c46d4cc2db00b8bf95751cf1223f559d64857ca50aa3b3e4bf23952c2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/commerce/department.ts": "dc61213ad9c1eb3220d11fb388ac2b0f56186bd0d68afda6a3d87a79838e40d4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/commerce/mod.ts": "59695866784d3ac860e0a0004e80a073ba4b3e73abc902038f7d9323d89f5743", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/commerce/product_name.ts": "e7a2e6061bb61867a14bd4b32d0fa0589f32eceb55bd22c05b77f4b8956c335e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/company/mod.ts": "bf5ff8a8bbd8137bdd6b0f0df25471a4e32dae61c906cd0d9c8a69c1c88e7a4d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/company/name.ts": "cbb3fe97d6429dbb9ac5e27233c1c2e39409370b04fe822c187a638751039ef4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/company/prefix.ts": "e863b39f5d929344e999486e9996166ca904f6d63722d71f5f5d08f15bca74bc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/company/suffix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/date/mod.ts": "c61d7c18e3791003fcc1ee425d5e0e406878fdef9f10f3fa75fbe95f40579f8e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/date/month.ts": "0fe6c2c3373ca898c4a9e634660e74840c0957c60f8785bb451e568bffafe4e2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/date/weekday.ts": "79098e9e6cb06c14fd16f8dc82cb86c169cf542e1fc3ff5d614bd1eae27591d2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/internet/domain_suffix.ts": "450a86d83e03f789c1de87c51f9fa52c5797bd14e15fff18d78e8bf945ad32cd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/internet/free_email.ts": "0e5260f3f8ce7842dd2da82ade79c78b312308a9f4024fc6c2fd8e407a43967a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/mod.ts": "8bc9a0aa33256b712060184b9f7033501e260686e1e9f40c1887a196f3158240", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/name/female_first_name.ts": "2d681904980371157781ff698a5b814d11ba07e6843acb389599c61b03d4526f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/name/female_last_name.ts": "9c363b29ea8022d872da415cd988d6c2c6b67bd9bf90b81c0a4405c8a8c27d63", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/name/male_first_name.ts": "bdacc78a073f79656644fb1b825eb978a22365c9953c9302969f8288db5c78d1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/name/male_last_name.ts": "dacaf22eb0b0bf17c38566980aabbdf7141321c0d74e4c6754fe283d1b66e47e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/name/mod.ts": "f93675814a7ea84f0423af6521c50b4bc687eb738be3e4e15b93fe4451102813", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/name/name.ts": "137245c60fe1543097885dfaed4f2c69ae155fdc553835fc9be329ee7774b90f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/name/prefix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/name/suffix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/phone_number/formats.ts": "e8383042dfe7d4a004dab8c3e3b6397ae6599f643638ff36386c163590c497f2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/building_number.ts": "9e5f7e3684562723796ec56969b91535559469a7f463c54c1564b1c6e0905213", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/city_name.ts": "5b8b517988c253a21598d3d2173206e8d79d0a4fd10c201abd30ac25fca264c1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/country.ts": "43666dae187ca244e1509e4bd80b8b3f24c6ec85b28328d165014fd8fccd0f93", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/default_country.ts": "4e78a5f6362279ca3b1545f7eb628c85803253b5dd436eec9057524d6623fd56", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/mod.ts": "e28a2d78240917219128be8438de2d161a9dbebedd1a36b163c5d44609de2f12", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/postcode.ts": "a97b95396026ee0d2832ac093b26419e50c42781d3449a2595330049f17fc60a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/secondary_address.ts": "9451a74fea0bc0ca76a4d9aead9ecf01a6da7eaaa072cd61496d441a1337f9c1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/state.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/state_abbr.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/street.ts": "2effc9d270b212689baeefee0ca095c5e6e54ed5a888b3ec7deb344ce442c165", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/street_name.ts": "50588dea6b3c50e02f2c695e1e209e8bd2671c0b76e34d0c7bad0471a8915e25", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/time_zone.ts": "c3d5b9356a4c6b65f269458268c43b426cedc8c40cb1f727bf57331a552df232", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/company/adjective.ts": "f7ad0bdfb675f6a40701785eae81713b0462b90d8dcc11ac10063a39fded223c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/company/bs_noun.ts": "ff5529d9504f54b631907c9b05125c6b20972b145b6ac7eb9c7626f58bdd23e8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/company/bs_verb.ts": "133dda7b4d222bd5ef8486e0d9168f6f602ea9898499b4945b19979bc62d569f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/company/descriptor.ts": "448c8a419f28805ccd751819309269d1b815ef9dfb94d98c691e7660b1086516", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/company/mod.ts": "cb7601de75d96215f7cc0900cb17392fd9a5e03bfc0eb410af3f27738711a20a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/company/name.ts": "f753d7174b6ab13f00a2579b3f1650ea532978ff44075c88fd82d2d810af00e4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/company/noun.ts": "6fe6f633bfbb61b51c0782a50fc76a8a6653d8e342d788bf0021f4375b5a5c75", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/company/suffix.ts": "a7c4bd0c95ad6e619bd1064908cc863b5c71ae02823dd3060f1ee94007399de8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/date/mod.ts": "c61d7c18e3791003fcc1ee425d5e0e406878fdef9f10f3fa75fbe95f40579f8e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/date/month.ts": "7887890073db2c31c75bd9e998ac8602c1b2038d195d9a9943e9d01526cb1fd2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/date/weekday.ts": "8e4a68a3eef5a3c0589f0104ccf19b5d28ab94e81f1a6cb9709c36531d790457", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/internet/domain_suffix.ts": "9021dd152cb5ab6a68783261e3ee66e64947c86310620483dbc9be1257249d7c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/internet/free_email.ts": "ea803bc265095ccc8aea29f17f777e28df96ca70035868396a1e4281149df5e3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/mod.ts": "179fef27bdf9064a714c3279eefd1d83d12d4c8c54e5bf26d537a7666d7abadf", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/female_first_name.ts": "ce2f69f549429c30af98028cadb024faf24721c00a17ce9c4ff1a2cfb9114c2b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/female_last_name.ts": "f1572e4bf61027120e00bcb2f98dc97f6db20ee9e011b1ba597d919839aa5181", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/male_first_name.ts": "83b5a6debd446dbcf780af213bd79d9e66ebea434403fe5a838ba68ce96bdc52", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/male_last_name.ts": "d9d3880ecc404da2fd2651066602a3cae149827493a2540e1546a82150bfd59c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/mod.ts": "8ed4852eff4a25831164e56ac90921b91174637ac90a14ec512a49b5a6177855", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/name.ts": "efb4e1047ff5cd5aba717c4182b8ea9b1ff971563122b46515e9af0bdfb42366", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/prefix.ts": "f6e09fdf247271accca04c70cd10efa1dee012488cad79c34cad8a33cc497009", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/suffix.ts": "f16a3ea91c495933d6af8359597f076027cf87260e34944d051c94e586c33ad9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/title.ts": "122b405e1f7218cc0e0bc15f3949a53a7e3e2945f195d0dcead16a6371bf3077", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/phone_number/formats.ts": "5f52a0fba2cf476a25e2299c9ac8b3a679b77704361ee6fdf6b66cafba16bd56", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/building_number.ts": "58e911a9258d31edc3bc09d5ae54aa3ce5d3e8eaf7c6351aa6b38c3101568027", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/city.ts": "e4434bc57ae5b65af3646a9db05a3f2ecc8b08d5ee1caaf0ead0909432a7e8bc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/city_prefix.ts": "4eb7b11ceb1c13a8b35dae5714a4a56426c0c9ec8bd366ee0a28105aa660d06e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/city_suffix.ts": "6315c4d8f645be4ad5e069e7fc2006a1d5efa3e9dfc4ae2845a571aaccbece48", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/country.ts": "b01715dcc7dd73a85e5d833916f2f1a14b2af864e3dac7bc4e93aa7f1897b499", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/default_country.ts": "8a0191b1bc606a49c564ff2deda1698e4b74694f51c5928dea2737e47955cf88", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/mod.ts": "971b1260afd49217ad6c298afb5d4f9d6a261ef9c2a0cebc1fde94a06b100473", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/postcode.ts": "52e65bbb089537e0792c067f7432d113aa5f8fd5d6c91f3e13aaeee7589a8967", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/secondary_address.ts": "697092f51d28b4db3de96c50a74f9c8a4faadf171cb6cab41377ea06de002455", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/state.ts": "001af53c1836f2252acf724692e843eeb0650abd3e16bd9d9ed2ff2fed6d1005", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/state_abbr.ts": "462c1a1ae1b2d5e879467a2ea2c7d62dd39578163bfead7218aaf492025e705c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/street_name.ts": "1af85fa4d8135613381aa2f9e88e672dc72bce736146539d9a96b3de25549216", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/street_root.ts": "6346006bfc5227acf4dd8a7e4d59fd99dfeb9f748590cc61dee9d9b14a66f1da", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/cell_phone/formats.ts": "bdbbbd46bc0d36100c056a8d776a8c2aefe4965d8dc90ad54c4d07b2e9c5154c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/company/legal_form.ts": "13cfed8077c630feb232a1d48bfbb7354f31f4d5f3951a14d4b29b78c1002077", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/company/mod.ts": "573d0e11cc8848b18665469343c62ed6fe0128a93ca62040cf6dd5d6677328fe", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/company/name.ts": "1a87cadc30d9e198e301e414bbacdc3c8a78f9a6bab593368c0bd7cceb7b6b58", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/company/suffix.ts": "13cfed8077c630feb232a1d48bfbb7354f31f4d5f3951a14d4b29b78c1002077", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/internet/domain_suffix.ts": "c450e7595781562d600449db067de2a0f38e42ba2a337164ba1d4cebebf5666a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/internet/free_email.ts": "95deb3f400012a03c0fbfba6e796c4228d5b1f9af6b512b01af7fe4fb0e439b4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/mod.ts": "cbf6313b5ea7897c5b8af4597f6ea9ca37f0e730c8eb66495ac193556354fc66", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/name/first_name.ts": "51d52cf7e9733eec2d8f900b2f8a9f2f0cde76b4d849b30e1ac6069bd043f7a6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/name/last_name.ts": "d8a1e8a322d88e01c6453fe7eaa1acf6dce8b032859f66052f226a7804df30e2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/name/mod.ts": "d360b129709776aae3b2ab863a7ef86172814ecb2b17ba685c7a2ca1131f90ca", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/name/name.ts": "7785bd3719abe19d8cb1fabec9a7025a177814f28b66085cf2f1d1b1dc695b77", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/name/nobility_title_prefix.ts": "b457d7ebbf04a51193affd114f8939feb1a7dfd4f6a8c2984d60b49f4a161264", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/name/prefix.ts": "bccb424bc09ee80b1aab1ae9077ce47a754721993fdd6942ef7bce90bd878d81", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/phone_number/formats.ts": "51d687a591b36ebec3b734310f5bc2aae3818801337f70e0dc654c7fcfe669ca", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/building_number.ts": "58e911a9258d31edc3bc09d5ae54aa3ce5d3e8eaf7c6351aa6b38c3101568027", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/city_name.ts": "ac5cd03fe8e8f72b50297e401a33a6161159f2d387251eda94a11895beb201ba", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/country.ts": "b01715dcc7dd73a85e5d833916f2f1a14b2af864e3dac7bc4e93aa7f1897b499", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/default_country.ts": "c15f1340fbdd6f3d9c4c88b48e8873ba5707f53e2070844febf08784b357edf1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/mod.ts": "df748c9a81767c86bebd0e4f1f1cc7cefc4ef5f43d0585a6f0cddcb448d357f6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/postcode.ts": "e0fa4cd27b4f833a2ad47c17115ebd0bb2999e90865e2b8386e0a7e0194f5317", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/secondary_address.ts": "697092f51d28b4db3de96c50a74f9c8a4faadf171cb6cab41377ea06de002455", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/state.ts": "5112a1f465734f689f06def98fc7bc9b260632dd4e0ce1bf9d1ffcbe9c604d96", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/state_abbr.ts": "344a3474b8db1a3a55b94f2e28df648549a5368f6accdb03011de088047f2132", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/street_name.ts": "1af85fa4d8135613381aa2f9e88e672dc72bce736146539d9a96b3de25549216", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/street_root.ts": "b5469bb6a1e45f428ee1d4d40332c0b782d4f447a54eacc45958658aae961b76", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/cell_phone/formats.ts": "c2c7de1bded36b7ab9ae265ca3fcda9ac79513c250bef3a0704940e09285297f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/company/legal_form.ts": "13cfed8077c630feb232a1d48bfbb7354f31f4d5f3951a14d4b29b78c1002077", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/company/mod.ts": "573d0e11cc8848b18665469343c62ed6fe0128a93ca62040cf6dd5d6677328fe", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/company/name.ts": "1a87cadc30d9e198e301e414bbacdc3c8a78f9a6bab593368c0bd7cceb7b6b58", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/company/suffix.ts": "13cfed8077c630feb232a1d48bfbb7354f31f4d5f3951a14d4b29b78c1002077", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/internet/domain_suffix.ts": "081a9e8ef5e82143cfe73bdcc7bafee6b8d2ee76e58d2531ef929b2d43a193b0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/internet/free_email.ts": "95deb3f400012a03c0fbfba6e796c4228d5b1f9af6b512b01af7fe4fb0e439b4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/mod.ts": "371a687f4a2735df432dc4eaf3333ace743c02d06c2733a78d5e88e67cb0a9fe", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/name/first_name.ts": "51d52cf7e9733eec2d8f900b2f8a9f2f0cde76b4d849b30e1ac6069bd043f7a6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/name/last_name.ts": "d8a1e8a322d88e01c6453fe7eaa1acf6dce8b032859f66052f226a7804df30e2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/name/mod.ts": "d360b129709776aae3b2ab863a7ef86172814ecb2b17ba685c7a2ca1131f90ca", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/name/name.ts": "7785bd3719abe19d8cb1fabec9a7025a177814f28b66085cf2f1d1b1dc695b77", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/name/nobility_title_prefix.ts": "b457d7ebbf04a51193affd114f8939feb1a7dfd4f6a8c2984d60b49f4a161264", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/name/prefix.ts": "eff0bf553812c2f7af5004fcff0e671a1246571b5caf3a0623da363ebbe1c918", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/phone_number/formats.ts": "50666030721f7cd269055892cfaad9d4d66f96bc74efb084d23a599f95c592dd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/address/country_code.ts": "b0614b27d16a9d7b8bd6fbbde2a4efacd39dc0825d8cef2144b94b82465da128", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/address/default_country.ts": "4984576ef8c933936326bb7db1bb6f5bfe4dbbaa78cef9765a09fce26404ff71", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/address/mod.ts": "7f4c1354e877ea05d67a08d103352a2699f6118244799d12334c0bd1f1e4a859", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/address/postcode.ts": "69c7b1b1f8efcc2e2c0267f23773b4e885c3ea8397f6489b4769aae5f9f1dee8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/company/mod.ts": "59429c1943da64620329a348742a0602a8544ff38e33fd1671e7c25d3ad43708", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/company/name.ts": "1a87cadc30d9e198e301e414bbacdc3c8a78f9a6bab593368c0bd7cceb7b6b58", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/company/suffix.ts": "b655c7701c527a6296a725c081cdadd513de7443efb03e7b0bea2cfd0588e1c0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/internet/domain_suffix.ts": "3c4280ce23ac802ad0985ec2d11b469888ab2add26166863f6043d28fd6fb8cc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/mod.ts": "77afafbf0b7be9252a00dd15dbd52196e192db672d06bb4846a201afe5209edc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/name/first_name.ts": "c3b15fe621bf78a3b3878f66364c0f6bab53d7586884b96d9a05d4b3f651ff7c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/name/last_name.ts": "e4e060f7115f9e882a5d77a071eecaac29807d690d5855a2f64d13224b5c4d6a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/name/mod.ts": "de5c8e623984da1e77f4ebe46b755b8431cad60a916b17d2bcfb5e1710d95f6c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/name/name.ts": "140b3298b2d055ef36b008a09a4f46532ecf425e35509abfb8c9e2109531cd09", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/name/prefix.ts": "6f5a91cf0f9281cb5f423b41cdab889eb5df39028cbc05502cd8279017f30bde", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/phone_number/formats.ts": "dc68d1a182e25f11df1a5563afbf0ec4bdfe312c4de7e807896cb3fa1c786255", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/building_number.ts": "1eed25d6937aa63676fe04b9a2fda42df1dc2d2b04b28beda45f4dab2410413f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/city.ts": "e4434bc57ae5b65af3646a9db05a3f2ecc8b08d5ee1caaf0ead0909432a7e8bc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/city_prefix.ts": "ec5c9962102a00d8bad931007a0dedcfcf52d683c910bad0910b98a85f8d455d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/city_suffix.ts": "7a9116f27cb3ff593b205d75e12f6f0bef2dc68a4b705c3d30801f72edc307af", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/country.ts": "db21728797574cbbbb1449ddc551cbe9d852896ae11ce1d60d13fa4c2a676c05", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/country_code.ts": "a71d6de1043584578aa47ad853592c21c8673ce6b52e66ca7e8844a9d97467a4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/county.ts": "d8322d68b59a6fa77415a374c1d3694b726eab1cd8538b38c8b00c1952f41780", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/default_country.ts": "57aa8690367cfd04703479067f30368a5c84c29cc578d25e18b8c4a610febc97", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/direction.ts": "9fc7f67c923a4efe8e1596a835452557692745db1262b0cf1924e64891254c06", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/direction_abbr.ts": "c09180e018984eef37873a05e4632fd30065561d912de635195995eee6ad29f8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/mod.ts": "4b550bc4983855933fe924d8f1a5b4698f5fe376ed8a05b3ded072ef76cf10f6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/postcode.ts": "12d3bff99ec26dcea3f4e375ab450d848ffcdb7b43c3ff5f673b5a87c925a76f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/postcode_by_state.ts": "12d3bff99ec26dcea3f4e375ab450d848ffcdb7b43c3ff5f673b5a87c925a76f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/secondary_address.ts": "9451a74fea0bc0ca76a4d9aead9ecf01a6da7eaaa072cd61496d441a1337f9c1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/state.ts": "243efa8fb53096cf8c7d8aa81b849749467ce9f0ce341f7f8330166d68b74fb8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/state_abbr.ts": "c9684ba3d2255a0efe4918cd020854263b279b3d7a118f4d0623f9d25c2b85c3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/street_address.ts": "b59074f0d19ce82f3fa5dc987279c0a89b42e60bd9e437c5382eeaaf25c321aa", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/street_name.ts": "facec236cdc5a83df805c619d35fcc972075a693d4d7f3fc5e3cc66bc875a423", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/street_suffix.ts": "df905df87f48e4db8acf36f761c9d566cf378a44c81795aecee8b7c6c1843ad8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/time_zone.ts": "c3d5b9356a4c6b65f269458268c43b426cedc8c40cb1f727bf57331a552df232", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/app/author.ts": "941451acb2834035289eed31ea6f662c3d0b83d2324813c8dff4a4dc9d7f7637", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/app/mod.ts": "3149146ea621f08812043e465e2932b696ab4c9328f14deddce550788f8b76d3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/app/name.ts": "1bbd257e4ff4707766ec96ba3cac901fde7b87a2be451de2c43450c45f44efda", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/app/version.ts": "f250a00e81fd62eeecf4a828ee198b815ef6779875b3431fb71d2d78e00c0270", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/business/credit_card_expiry_dates.ts": "b548917a425ce6c7a45c598808eaca73783419b56057cbabf2b68222c161976a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/business/credit_card_numbers.ts": "8bec174db514d6b395f89730675d5ff263e139341419c1c241ef505772aa9b42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/business/credit_card_types.ts": "aeeefda45ada161d36d8fd0789896d5e8befd08c4a943e5fa2f8f006a0cb2e73", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/business/mod.ts": "bae6912bf6f1a06cee24883516850747f64c2bde5e3938510bc32a7ebaebb162", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/cell_phone/formats.ts": "34b4bdf380a6ba8541c4b28d55de9296024232ad6e7b033e67cf627201e2b2bc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/commerce/color.ts": "ca04bc9b6617989c5f1326a06d6734d106fe4e4aa2fc8ad58c5f92320d572331", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/commerce/department.ts": "f8d69a3dbaf05ab804cbed95425da34bbe52f63f6f63248d004fb2486f317213", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/commerce/mod.ts": "59695866784d3ac860e0a0004e80a073ba4b3e73abc902038f7d9323d89f5743", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/commerce/product_name.ts": "b66a2d3c61603d3ad7b73b5e8494e24ba52f2310d52d0d02024ee3d75ea581ff", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/adjective.ts": "f7ad0bdfb675f6a40701785eae81713b0462b90d8dcc11ac10063a39fded223c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/bs_adjective.ts": "2bad5f774e303e29fcbd4b5151247595479eb363d0e5b7e75c656ca25d584f44", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/bs_noun.ts": "880ca12d99035b480695338c5ea1ffc0fda80fef44502e56cb06f53d27984638", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/bs_verb.ts": "133dda7b4d222bd5ef8486e0d9168f6f602ea9898499b4945b19979bc62d569f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/descriptor.ts": "448c8a419f28805ccd751819309269d1b815ef9dfb94d98c691e7660b1086516", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/mod.ts": "3099c443709533eeb07735538fb19552e1ed25db3eb7ced69ef76441bf853042", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/name.ts": "518a52bc2801a0fa590c69caf5c0371a42e6e0eb6af796a064f283fe86c0fb7f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/noun.ts": "6fe6f633bfbb61b51c0782a50fc76a8a6653d8e342d788bf0021f4375b5a5c75", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/suffix.ts": "dc4211e31463f9dfcbf590b2f5517659ce90c9fa43e5d10f34bfc77e6d16e3a9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/database/collation.ts": "74ededc6a012cdbc58a8e8d5bcc25e35711d917696d54a9f7eaebe4b93e7c3ca", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/database/column.ts": "4401fe15f1725aff14147414017ea402377c932a6f8b4ca02343e9212a6971ae", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/database/engine.ts": "81dc1361a4572a8c0f1077d574e88f41e7bff61d57d52d6508cd480740e839c4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/database/mod.ts": "ed53ad7725a8ca6813b996d5d8dd25224f9231468999d61edb26aaba8c79f37b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/database/type.ts": "54f26422e53ec8ac93ef2775fc94ffccea7e2ea68064dda742b867662ca756af", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/date/mod.ts": "c61d7c18e3791003fcc1ee425d5e0e406878fdef9f10f3fa75fbe95f40579f8e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/date/month.ts": "64644d63a06e69cdfc4c9b72672e4c46f5f6ce9e8a8ec845f25f08f5dccf2767", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/date/weekday.ts": "06fda72db1a9217c760a4c87a9e811ff296d62aec835dfdc880eab15d06ff790", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/account_type.ts": "2c67d1f5a30094ce90b38da38e33a9835d08693e3c8efa7a177889b90bc834e4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/american_express.ts": "a6de9df02565a1f3efc8e72fe74d3261699e5319a877a9b394eea05fd2b7e124", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/diners_club.ts": "3572efffb58240adfb536a6c81d29123d6895325300d418a07e6a30e7f80eba8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/discover.ts": "f9233e0d0679fa5500fd79d1a57a5d8b8220df9a8ecf276d70cf0997dbb1cf56", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/instapayment.ts": "08a7a4e55b9c54592886413122294e613564cf69f64d35bb4c4c5662d7f87eb6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/jcb.ts": "f94f8f1aabf3b19ab2f6f95f187de93bdc9f8c2a2911eeb92d775741d5477f3c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/laser.ts": "c6176f06b264deac8b190889f4361e0b12896592a903f23c9825d5180f2a06af", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/maestro.ts": "c35a1c7c25cd6a1e88f67e06d8d3efb0ed9a35592c43c605859eb5496c5463dc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/mastercard.ts": "a86f77dac2caa4b2d41886c22dfe2b9be1a039c8cac0033543a778b01c1e5fe7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/mod.ts": "88d0322fb888d44f7980d819eb15f5198b133127c3a7c16a0387aff85361b57f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/solo.ts": "6311adb8f8bd65861fd343a89dd03708b7bb37aef984d3e71e9784439787dc4e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/switch.ts": "9dc9a3664dd6d05183f101bf4c89a2cbc8e1d065450b35a983955c4ab212c766", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/visa.ts": "20cc6a0d07c10dd3b27a5a61b63e8a9a79eb1b0dff6295c8d1dce363359228be", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/currency.ts": "d2346e736ae4622f6a365516396d38168fb3ce8808dc9589f1e5e58784f2975d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/mod.ts": "a1593810ff914f01fa0a8a807b079ed8afc2072081485dc38296b66e7057dfca", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/transaction_type.ts": "a19cd76ca4ff92f72731131f587aa15a79237dd5f4b6ab4d1a14aba86e09aa3a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/hacker/abbreviation.ts": "6c9cdab06eeedd2711ec3e8ea6173982a46af2fa6e0ab69b62cd89cbda772b97", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/hacker/adjective.ts": "04a680ebe394107c235df6405981b629da761d52b580e381a7ed3a0352a80d59", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/hacker/ingverb.ts": "684ce10e53b15c95defb06e055cf2c58b59cd12572a1ba8cd5b6d9003ad165c4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/hacker/mod.ts": "8c47795f45bb64ab8014bc8596dfbcc83d894d1f08254501f3f78ffb14eb08de", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/hacker/noun.ts": "ba622028415c628338307c14738ae9246b98a4fb0ade02aa360cf0fecad5cd32", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/hacker/phrase.ts": "eba9a4dcc1fcffbe1a2378eba5d89ddfc804add04b0aafef41246c6ebe8db045", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/hacker/verb.ts": "e3f8781a3cf8c92b33b123cf23a961cfe827841c4357e38f0a37e7778280073c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/internet/avatar_uri.ts": "d649b2f0c52d2b07b41ba1d1b620a02565a9e6827e2ef7c404471328701289f9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/internet/domain_suffix.ts": "1c6202f708c084c1e6d8c3103b4e915da3ef3c2fd8757d6c2a8d162b6c0a0e8a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/internet/example_email.ts": "12b83da6c27a105238e4743f8e7cbeef0397e59a7c7042fb9d16c195e1dd89a3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/internet/free_email.ts": "95deb3f400012a03c0fbfba6e796c4228d5b1f9af6b512b01af7fe4fb0e439b4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/internet/mod.ts": "656604edd74729b725ae792be2f724d8e235eef8726f73337a76c62b9f361ac6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/lorem/mod.ts": "796c24db4629667e56bfbe1c5d48a4600ac3a294e387455131f1d82807eb7fce", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/lorem/supplemental.ts": "93d7c157180b628ddcfa26485d8e5f48f44240e7e1e2a38f4b3c69aa31fd4614", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/mod.ts": "b0703ef8fb97d0fb62cc30e5e440d170f8007ffe72748a0e63d8b907cf0bb965", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/female_first_name.ts": "b4abda5a890a8019d208749459a5fba10a871ab248f17fb3e09a69ceb5b7a3b2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/first_name.ts": "3e994cfc49947872fe5a0a8399356ecd369b5310319e927a12ccbaa47ce1ccf4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/gender.ts": "43d4698a76cabdcd43d52c8bba1a0c061b2bc73ee7f87f65f8fd5df015a72fe0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/last_name.ts": "f6b51ccfd0b5393a9bc41d5a97af3f49474352e1f09fe78a5b5abfe54f6f2458", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/male_first_name.ts": "64a77d5a4f4e99bde7981b97070acf3f71ef7730b7a75e479939209d8d1e2c3f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/mod.ts": "4f0c9f8029999b370528f0009dca429e55760a96d3e8dffc467c243b9ff76e35", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/name.ts": "7243299d031d7b3af8876cf51c338953a36d2408207624ea0cc176facd12d007", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/prefix.ts": "0516b54a947de45ae8a9f3e1661d789e1ffa62928fcdc3898eaa970ef3257956", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/suffix.ts": "4f93e4e3119845efd2b3c112e2648d17555bde98d35bde3e024e07e1f822042e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/title.ts": "1f3a839a9cb050ce27963de21c5c4ed53a00dda32b7bd9b3812618eb424dac0a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/phone_number/formats.ts": "9c28af3e0a850f28f57476f218e7769bc69df4a903bdc1d2a8754b3402e8c6f9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/system/directoryPaths.ts": "768b40841ad7de9a977e01d3cf0fcce1cc7bfee6427e4faf03c09a9945addae1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/system/mimeTypes.ts": "228427c28183d9e37c136e5374a70dfda72a914434f697b90f174cc1dab9433b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/system/mod.ts": "cc9f3afa6ac5b0c07451fcc443e7a96607c645def87b421e85babb953aaaec9c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/team/creature.ts": "745ea3e0e022e129ab2b37bd5c15f934d445e6d23cdf98d2c1e13cf45256fb76", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/team/mod.ts": "46b6bf273d984f0fad41ca41e04294e937917f4defba1b02416039039b6cf764", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/team/name.ts": "238c13d406a290f41add0a99a61b880a672c9053c6a52790a0bf1c93d84b12a9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/vehicle/fuel.ts": "349cd64a0efa292e80a67a32adb0296b2d3af7a41dc5d46e3ee73db0acf22996", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/vehicle/manufacturer.ts": "bda049d71cd86a7d6d6278583cf4470e6b95896cf7ee7606e09e584cd3ff6efd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/vehicle/mod.ts": "b59eb56e46fa6146c7f06ca3789127a1902ea17405fd3e1740ef2f8849fb70db", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/vehicle/model.ts": "67e4d3a701fe7cc4f1adf801eccced581ff0375cd4bbeda4f1e1cebaa47e0763", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/vehicle/vehicle_type.ts": "fb65bf7fc93373107cdf4fd47185f3b1458ca55687a62270dd1a73528f1c9840", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/address/building_number.ts": "48edd02efbb85b96177ea0b5735d7f04480c10b1965b1ac52bd1a48db504112c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/address/default_country.ts": "30d0060c98697b3ab7ab39b4339f10ac234ba2f8d09ad44b81866a8771ce7883", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/address/mod.ts": "18a70b6c0352b68c20f83c688b7f420a54295d14bb501c5b3feaed9f14a586e5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/address/postcode.ts": "e0fa4cd27b4f833a2ad47c17115ebd0bb2999e90865e2b8386e0a7e0194f5317", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/address/state.ts": "0d2af441c2800e83e362404c6335ce801d8374d02cda1996459997e2f222c607", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/address/state_abbr.ts": "adbe5b0d62c8536f55c2abac0d71722b72c97aa9ca1571e00ade699c80816e85", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/address/street_suffix.ts": "b6e0bfbc99e291888ca09cbc5ba113580e146693ae77ce5bf0f3a6a56454c3a3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/company/mod.ts": "20ac3010aee7c25a2fc994580e0f4640717c6444e7d26e3e486182254f23a239", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/company/suffix.ts": "6600a7e9740e8448ae7477b88bbdf19a12e65926e32a3b2eee819b021170c9ee", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/internet/domain_suffix.ts": "150e88a353f32a65304329ad40e7e38bac1ca0dfadffe94ca93adb21844d1ff2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/mod.ts": "1ebd65c0736fbd464c718a6521ec314c26a445ef546d94adb0df8a6b9641afa5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/name/first_name.ts": "353d42d4fbdbfbaab7ec075419d2de65869c7615ef590f79b58460e2803d4b91", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/name/last_name.ts": "c1814612927bc79e2f030b89bad23821d5f58aa5f63b6cac70e2c51f6406758b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/name/mod.ts": "4f951778555b5fa8fb8552c0bf955655e90e408c63a6d9465d7a83c21380b564", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/phone_number/formats.ts": "e5169e1652589fba4e80717edf0a280c14c5d51df15da588401589f0e146b60f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_BORK/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_BORK/lorem/words.ts": "b06ef784aa9d75bdd4d341686c32e9a4ecad0d3775bd0d1cbcb415c15b5608a5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_BORK/mod.ts": "64f634b318baf8c62e1fb94990b95ecc4684a3331c7953840cf24478b01ab380", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/address/default_country.ts": "57a5bf94d2a8e1a7c144c7f0a846c2c23c5e3be01f8645ce5032d08749bfb7e2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/address/mod.ts": "9061d0ad374809c8caec796e5efdcb2ad6a3c52d52cf22029007c763d9bc7d0e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/address/postcode.ts": "6c2df1e0ca28e31eb59d09559f29d4d0a7de1d42f685b35143b4bbf8bac997bb", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/address/state.ts": "7ff675c715c910b80309ae96fa16e5df324213a371e3807fcb3edee35be2c9d9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/address/state_abbr.ts": "a224672bb08af42d792d8e36414d14cb207a8168a856e33e88b8b9faad46f0ce", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/internet/domain_suffix.ts": "8e8a97ac50fd4366a0e88e6d414b505174ae2001a811c51290e38b157051374e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/internet/free_email.ts": "57e2667d137171dc541090ce24ff234fcfeeea9cd8e05021b7defd2d8a1e8b80", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/mod.ts": "f9d2f8aa01699042f8c3e142ea24cf5a34f1c413ee8dd46a9699ebc8414072d0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/phone_number/formats.ts": "3a710353624ff9ba667e8d8592dbf5901f6a125a16fcb38368dc4e2f6baaffa5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/address/county.ts": "7bbec4d477c90d2c0054bb7b4e9d6e2b3237f21994a0177ae29c2e85d1f15843", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/address/default_country.ts": "7fe27fe994dd18819d80c67bb3f8d5a3f1360ac22cedd0b0d7a081e3dc857bc8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/address/mod.ts": "a139b0439fd096e85cca75fae86af067a859ac24e53e57a633f2c0bb3616638f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/address/postcode.ts": "5f41822b87a9346713340293d6fdb1278e473eacb1956c43d1f9f6d2cfbac12a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/address/uk_country.ts": "7fe27fe994dd18819d80c67bb3f8d5a3f1360ac22cedd0b0d7a081e3dc857bc8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/cell_phone/formats.ts": "fba4d892d90259623cc89078fc5e81894d648ad05b14ab99aa92b285d1b9649c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/internet/domain_suffix.ts": "d979eba16ea1a25bffbc2d32af628d626be9e2254a7f5d1a217fa733b5ed8711", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/mod.ts": "d833d30d460885bc25d364b4a0282bf7ae94f09f1eff8e7929ce57f1721efc59", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/phone_number/formats.ts": "2726375ad43898078e6b5f524246239f65f3ad7ae74a12b6c665d4bdc803bc94", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/address/county.ts": "44b60593d5c190c30a7f62db53fa9e8675855ec5e6e7f6bf083f12d8a717d76a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/address/default_country.ts": "c8fe2a0405d9e7fc7d739fdeb00ed5bc091c65e6e4c8f2ec9e8c24030f259db4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/address/mod.ts": "59a40f66d287ff4660d45cb69ea90bca3d1ca38c10cd732f89eebb2c9ca47164", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/cell_phone/formats.ts": "6df438692049bd0ebe4ef0080fafcc7ecb1ef7b12deada50c3d1c4438c33816d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/internet/domain_suffix.ts": "7ab17c4dddca996eb78121cc60499a77a8c31435f4dd492070d20856414df88a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/mod.ts": "9da19fa434bfeceb711b7cceed1e2591eaa7b0f3f4df924bb4cd6c2f89d0ff5f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/phone_number/formats.ts": "c20e11536bd4aab92a3745914b5db7926db23c6c4d50367dad099f98a8ed4384", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/address/default_country.ts": "1b3d933cb56f2379f5b594d2dd771d026523b13df8bb63e6ded1f6a37640b313", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/address/mod.ts": "0c269018f4d4dd8c0dc513659636965dce48176a84d4b00cab7ec2a248d162e8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/address/postcode.ts": "d97706eafda9dd8b42226208f34d264cad4b1b9119273d2bfebbfc20729dcb47", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/address/state.ts": "24eaa3f3b0e2e72935181a4a8d7b319a780cdc639759969b76fa974a575c6913", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/address/state_abbr.ts": "7ef1fcad2d4b73d24658cfb40ec776341badd17013ea1a45de3976752889ca01", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/company/mod.ts": "20ac3010aee7c25a2fc994580e0f4640717c6444e7d26e3e486182254f23a239", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/company/suffix.ts": "c9c9760d34912ec5d1c25a081dc921fdee2d7728cf4af1ae12714f0088446254", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/internet/domain_suffix.ts": "99bd978a144c8a146cb6d5048ecaefeb2362c24889cec497138e5ebf50a82c74", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/internet/free_email.ts": "74e26fe252383bf236e9341001e698a936d3239e4937000ebc9cc3bb1315e550", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/mod.ts": "2bb6cb7dec9dbf6a5e2472d0493eac8de16ff0979da5fd0328a4497530704307", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/name/first_name.ts": "bc695d0d014ec74d5498931cf61b98c3ee00c96e0467a7c37662033e77ff1209", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/name/last_name.ts": "e4ae2a17eecef45e5e49ce3c644ffc8e0f5290c6e5a52b998a30106a96d51a92", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/name/mod.ts": "4f951778555b5fa8fb8552c0bf955655e90e408c63a6d9465d7a83c21380b564", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/phone_number/formats.ts": "18d4447d513eccce6a6e90f6de8bdb7aac67c5693d5779f4ff41fdaa922e492a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/address/default_country.ts": "b7a7fa17a8acccfb2c14a2401898341026c51adfe73d60a0c883bc1174fc90d0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/address/mod.ts": "273aa3c6a388729b526354a729651d1748e9a2e3b900cca129ac2cc043c407cf", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/address/postcode_by_state.ts": "759fc6d05676dc2313f0bfb99b6d3f31daed19be8f03a5bed4b6ffc15f0b7886", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/internet/domain_suffix.ts": "59aa53206ad273621b9cd4e085f068fa3cb9a2d297af78d8d222f40b44065c8a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/mod.ts": "0177ca54b0837b1148d0ee14ca448aa02dd90f9e644a02530b5aad0a64cd9626", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/phone_number/area_code.ts": "0e403532eaceca02af803a8a1318b7bbb6cd135ed849d2be6178606974432fcc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/phone_number/exchange_code.ts": "0e403532eaceca02af803a8a1318b7bbb6cd135ed849d2be6178606974432fcc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/phone_number/mod.ts": "9e723f96db02f1af04cd5000de0e00c0eddba4050a30ce8afc990837bac6f65d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/address/city.ts": "118b70812e34afd2da2485687260d8e361b86c10797d409938ae1c2eb01dd9e4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/address/city_prefix.ts": "b00dc27062d7971decc75ee650dc46b4a01277a88a88c236e9858789fadd1dad", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/address/default_country.ts": "3255d19dd08b30479f57e7cd95197b8375fc6b38d2e7223cc155351a5db53957", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/address/mod.ts": "1d31619929b3ed02a89b72815243bfe575094ace4bef8422a69f892fe49cd74c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/address/postcode.ts": "9303047def9baaab9cf0a18a9a50b65794881889072d40a091c2dba08a03590a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/address/state.ts": "0a387b24e84812616d93af01616a45ec44fbd48d733bacbe2c5c2fc886f5aa6f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/cell_phone/formats.ts": "2ca3f3c195186786efe254d4fe41b791879fd48584d4c110a8e2a2efda1dc4f9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/company/mod.ts": "20ac3010aee7c25a2fc994580e0f4640717c6444e7d26e3e486182254f23a239", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/company/suffix.ts": "ff5ab193c227ab8de439b43983d7519b7f09d7df533e074ea02dfc027525b6fa", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/internet/domain_suffix.ts": "e201a2ea48aa4d76ab8b1704f6632ff7d0c8862b15ae86880835fec55c0d924e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/mod.ts": "abeaa581bf467c085cde81f591a3b86c7788ce0b64ef1b24b488719046371ec7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/name/female_first_name.ts": "434cae9e1594dfc16cfc98faf41689790c4aa196bba8a69b2c09cf04b464ce54", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/name/first_name.ts": "dc758c777ebd88f9d966e47d15258d9c8594e9c11a36d0584561eb09eea88436", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/name/last_name.ts": "e438cfa053fb109596ae9e6cd57cc72f00903f625acfd9d0aea4b1edff455670", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/name/male_first_name.ts": "939a5a3747fb2ce124a6c9f435c6a5558c21ef48d252f48e8011e3e0379b0bff", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/name/mod.ts": "a1df2d51fb0b6b85ca81bc2f6af5ebd0b24745207aa8ff4d8fbcfe5468277237", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/name/name.ts": "f0aa3e3bba9e752d9100b52251aedc828d89cfaf45cca5719d8220ceeb0bb649", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/phone_number/area_code.ts": "aa1cfbdb4110be6edbffd469d2ac76d0846b7251198680d417d555570774c68f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/phone_number/exchange_code.ts": "0e403532eaceca02af803a8a1318b7bbb6cd135ed849d2be6178606974432fcc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/phone_number/formats.ts": "a72fdfa5ccc9842f46234727e117f4c71479e45a3aa3ec5079eeb78584fb914d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/phone_number/mod.ts": "f981bb057c9d8f3a7591a5e206f6adee9e54659ddaabb64e12ad6003d8ae7c92", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/building_number.ts": "48edd02efbb85b96177ea0b5735d7f04480c10b1965b1ac52bd1a48db504112c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/city.ts": "118b70812e34afd2da2485687260d8e361b86c10797d409938ae1c2eb01dd9e4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/city_prefix.ts": "407b1af1ad76cf1719cecd66ae68134996be55233661f748bbebac8e00927012", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/default_country.ts": "30d0060c98697b3ab7ab39b4339f10ac234ba2f8d09ad44b81866a8771ce7883", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/mod.ts": "9701b2a3e216f2d52b46af4799a56a226bfadc834a23b21d841632de08c960b6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/postcode.ts": "351e39bd719f1370563e782b74b3781e38c752c942720de1a368e51bd3eb4c87", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/region.ts": "e2d4539fce6a538ccc6ec6a2d7396aec386693088337daf443d4c8504c5d98a9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/state.ts": "0d2af441c2800e83e362404c6335ce801d8374d02cda1996459997e2f222c607", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/state_abbr.ts": "adbe5b0d62c8536f55c2abac0d71722b72c97aa9ca1571e00ade699c80816e85", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/street_name.ts": "1af85fa4d8135613381aa2f9e88e672dc72bce736146539d9a96b3de25549216", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/street_root.ts": "d08abcc04b79c81382f30311c1cf68fa2136ed5acffaeec450cddd4dd3d4d764", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/street_suffix.ts": "b6e0bfbc99e291888ca09cbc5ba113580e146693ae77ce5bf0f3a6a56454c3a3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/company/mod.ts": "20ac3010aee7c25a2fc994580e0f4640717c6444e7d26e3e486182254f23a239", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/company/suffix.ts": "6600a7e9740e8448ae7477b88bbdf19a12e65926e32a3b2eee819b021170c9ee", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/internet/domain_suffix.ts": "150e88a353f32a65304329ad40e7e38bac1ca0dfadffe94ca93adb21844d1ff2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/mod.ts": "30a3172649d745df25c2c2746aa00f74913198cbbf24fb67e2f0df5579b9d6a0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/name/first_name.ts": "89d2c3b1d4992297b51c1ae4b0beda94794d04d9966e74a02595a8dddc1090cc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/name/last_name.ts": "7f2c745088efaf4d5565b461f86411c2c0d85b3b3c8bc9ce5cb6ccfa92c8c820", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/name/mod.ts": "ada37fd75f47cd61c014c1754a78cee8367fce006f173d03de2d93a1139ea73d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/name/ocker_first_name.ts": "b3612458c11fd59e4b376ced5f082b8cb100cd0bd9a907f16b9186c1ae9a9d11", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/phone_number/formats.ts": "e5169e1652589fba4e80717edf0a280c14c5d51df15da588401589f0e146b60f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/building_number.ts": "5e984d37dbd70093d92f144b52d6bb916b92dfe56826a4dd5032dd74752320a2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/city.ts": "118b70812e34afd2da2485687260d8e361b86c10797d409938ae1c2eb01dd9e4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/city_prefix.ts": "c3fabcd32715efd64f5a9287b9a194e0ad390f559a804019e12860a715997c67", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/country.ts": "cf01d7568e6e43989c9ed42be7533e32e124a348469c4cea88ff0b7b363d8e4c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/default_country.ts": "09e3da41ddb34b734160a7f475dea265f609e03a315d569884b1795a4996520c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/mod.ts": "611ea8a1a21fa8bf7ff21394361cc3188b880bd6591a00e1564a76dc607b7ae8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/postcode.ts": "061e0ec295a754bec2497bc3fbe0cf0aa6a7e1a1ad3b6b846bbbdf81191b7097", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/province.ts": "277a9ef57ec2f6556a882f096e90b86a528c3c82f38dfd2641ea661ab3ed5451", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/secondary_address.ts": "1c7b5d47513bbd691abd838379e689d5105be76db8f8df80e2f26d9b20c467a9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/state.ts": "d1560f74ce26144ef6dae6db5f0efe1ebdaaed75b5e9ae46602a5237ac03202b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/state_abbr.ts": "1ee9ed0be405e105d8928414ade3ec6f8866acadf2b2d7a84c526d039fd07f58", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/street_address.ts": "11c3f648b399b8d3b2d5ad78126f1662bdc0bb54bd1b530ce84599185ede79f8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/street_name.ts": "90202e8680b2df259043a5177430b647f78112ad053186b9a5362e9d63869724", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/street_suffix.ts": "426160e18d20dd8982103e6f3a6dcdeb5bf258f0e98f316d09194364b64ed379", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/time_zone.ts": "94a970f84c9667658c2602af11aa8e6ca55b2aaa41e813697d7616fe118eb891", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/cell_phone/formats.ts": "5a4818139abc51740d283757870ed06463bcbe35cfa2a5e80fd73b030a6b489b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/commerce/color.ts": "7bda172ba7ebaad1c66019a145c244f8c528cfbff84191e530c675f958cf642e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/commerce/department.ts": "542dd7e901600ebeee1069f3685ab6b94ffcf4a0a67bd508d589a053eda3b9ba", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/commerce/mod.ts": "59695866784d3ac860e0a0004e80a073ba4b3e73abc902038f7d9323d89f5743", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/commerce/product_name.ts": "d0cf6ed897ad5ec1d694d8fb536ffa1dd6f6703e30562d9ed9eeca4d403127e9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/company/adjective.ts": "28a7005dd30d861e91fe3120b34c9b4b78cf790632325f95535a20f416f5e438", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/company/descriptor.ts": "a1e6eb947203261356f5547c3d4f1335463f303df0095d1e8933310e4019ad49", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/company/mod.ts": "df1ed0d21514b8dff85bbcce4d1307375033d2d51f536a97e838c32b59fddd4f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/company/name.ts": "f63ad37862ff5a114d580775c6081279fd92dbf7037c5e54b3aa73728a0c3189", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/company/noun.ts": "bdb060145d285f5e10dc00b0deee103af00e81d615521f2d96798c031b9a1db5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/company/suffix.ts": "27ec987099fbfeb713f67b55b14384e53224c460bfb582127c9435c8823764b7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/internet/domain_suffix.ts": "1797fbf71fe3b286d70c3169daa4e6c9ea8d92b8a4a43a0d45589acffab16492", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/internet/free_email.ts": "95deb3f400012a03c0fbfba6e796c4228d5b1f9af6b512b01af7fe4fb0e439b4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/mod.ts": "f311781bf463200661a2de7dd04f1430ece2f3b8a5bd6dfad8cfd83ba7288d59", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/name/first_name.ts": "4f6f60572c150dd1d09c2e9f6b7e8dda1b4b8df1022800dde20c9d35a1d5b5f3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/name/last_name.ts": "9879ee58eba6ce47ff45486317d4f49f6413a03569f4df2879faf7d4d1c0abc6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/name/mod.ts": "992a9abeaed8fd91224ef1da139ab7496e30f58812c6bf61f2136bb0b873c14e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/name/name.ts": "19270b27cdbc632de3fa84cf7b90cdf7631e42160046f8ac0369603de79bec0d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/name/prefix.ts": "66444e0a960c353c19600c2804146b635e52762ea042be179c7557f274b533ea", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/name/suffix.ts": "4f93e4e3119845efd2b3c112e2648d17555bde98d35bde3e024e07e1f822042e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/name/title.ts": "f2638a4b86549fa0d87eaa3991b956bca49fc17864a4b9cff90c08d33ffd84bb", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/phone_number/formats.ts": "4acc0e21216da89a9895de5b9675b4013a16b00cc7ca83815624098a378e048a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/building_number.ts": "7ad30029345aeaec8cbf7c51dad0915cbf70fc4d6423680fe91655f3745e9f72", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/city.ts": "118b70812e34afd2da2485687260d8e361b86c10797d409938ae1c2eb01dd9e4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/city_prefix.ts": "c2d739e7d22d4fb21f1fc3ffaa5b4fa5c7356f852b4e730d0cd901cb97fea55a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/city_suffix.ts": "7a9116f27cb3ff593b205d75e12f6f0bef2dc68a4b705c3d30801f72edc307af", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/country.ts": "9145262ed5d1c5f55cc461d292ef5ad17e4bbb74439dece74a5312c81f19ccc5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/default_country.ts": "b4047539b24803a6f39a5dc19ba175013f2b4a081499ab0568ee5c41941055fd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/mod.ts": "b87d3454321c4fdfed429b21745c6b0d64c5132d79843c606f74d0d69eb55534", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/postcode.ts": "061e0ec295a754bec2497bc3fbe0cf0aa6a7e1a1ad3b6b846bbbdf81191b7097", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/secondary_address.ts": "4aae244fff525b5f8972261f418932cbe93d8f55f1b60347d8db1adf5e91cae6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/state.ts": "01995a4371140bd6ec483f05aae42c37a0018bb9d1ffd35d265970b96a1d70dd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/state_abbr.ts": "5628d0d59e34ff59b436338d9fdf5b1e6043665305b792b62f4a98fed05aa959", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/street.ts": "ae4815ccffa6fc95b65cd4c4458530ca5807638daffd13d91ba9ffed1d7262c2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/street_address.ts": "11c3f648b399b8d3b2d5ad78126f1662bdc0bb54bd1b530ce84599185ede79f8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/street_name.ts": "d2f9eef39a03d030c652cfe9f54047bb36e3d5b9041e23b72b3d7200a512d68e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/street_suffix.ts": "426160e18d20dd8982103e6f3a6dcdeb5bf258f0e98f316d09194364b64ed379", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/time_zone.ts": "ffb85299cbfdc4f57aea24375a4399deda3b3657125f8aeb3797b3fe7c5c3e03", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/cell_phone/formats.ts": "5f935efb6f690258491b9b2cdc9d6225a14d6fbf94ca10c1ee48cb97b8a3f374", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/commerce/color.ts": "1263e4478589a9064c4371d3e7f6508e9118b88290e74ece14f1a770c6b0a5ac", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/commerce/department.ts": "223536d48533b48b78d44c81a2e291498bcde469af0fb47be2dc9388e9c8226a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/commerce/mod.ts": "59695866784d3ac860e0a0004e80a073ba4b3e73abc902038f7d9323d89f5743", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/commerce/product_name.ts": "df69db7762fa1d1aa66b88c7152281e9bce8053bd4556e47c899a646dc715046", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/adjective.ts": "d23140b5db5f24e0b0ae3f96082ec2f3ab1c93c64fd81c7cb56735aed5f5dad0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/bs_adjective.ts": "09d6a1e4f69a9d0cb2201e466c4dc34f5015ec2ca6a23c3c677b628d9d9e4162", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/bs_noun.ts": "4785c115a61871e98f1ee8e49ba9a8838e3b3558e03ee5b55f06ac1649bbcf2b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/bs_verb.ts": "fd1e13f2a72bd943e7b7dee64c690309f8272bc1d0693fd35c0e9e5e52306042", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/descriptor.ts": "a1e6eb947203261356f5547c3d4f1335463f303df0095d1e8933310e4019ad49", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/mod.ts": "6036d4a3d9f134b4c524d5e0178b2efa95017a79b9fc07020a69c0bb0e3b65aa", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/name.ts": "f63ad37862ff5a114d580775c6081279fd92dbf7037c5e54b3aa73728a0c3189", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/noun.ts": "bdb060145d285f5e10dc00b0deee103af00e81d615521f2d96798c031b9a1db5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/suffix.ts": "27ec987099fbfeb713f67b55b14384e53224c460bfb582127c9435c8823764b7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/internet/domain_suffix.ts": "5990c42122ac0f6397028676c8b8219798f691307515918732def7eff1793d32", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/internet/free_email.ts": "3be4e6b00658339a7c91df218f7ff9e7ff72f3d9ae4b93b64d438a5e11205cca", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/lorem/words.ts": "57430037bf92019be1d8df545fa03919842629049e9571b43b804912b7b46173", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/mod.ts": "43326de60335f8746be2a64ccd80680d11c0c0ac62b34019f6e40313b15489c7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/name/first_name.ts": "1505d7e60532bf540c3afa1e96b8efb8c42e83ba1b00c5c9720348f29868627c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/name/last_name.ts": "77382366dd6fdf2649f77a11f488b094d8a5429164813b31503ec69d9e8c4725", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/name/mod.ts": "992a9abeaed8fd91224ef1da139ab7496e30f58812c6bf61f2136bb0b873c14e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/name/name.ts": "85c8cb484b78813b10e3beae98c00968314e316de32b2f25619a0d279f80224d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/name/prefix.ts": "66444e0a960c353c19600c2804146b635e52762ea042be179c7557f274b533ea", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/name/suffix.ts": "fac0e3fc77a2f0ff43012b2fdb628f720cfaaeba2df44a3dde542e7f943a1c9d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/name/title.ts": "559710b470649cff5421b66b25f44cc162d797f83c46573102b19b93bf371d2c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/phone_number/formats.ts": "5de4b49aaa472ad5588ac3620bb7c7e840a06ec419e5e8a88f52f65738c7c328", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/team/creature.ts": "ac53b92456e413d4434486e713229f53bc958b923408a2feb51c0617e89a6730", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/team/mod.ts": "46b6bf273d984f0fad41ca41e04294e937917f4defba1b02416039039b6cf764", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/team/name.ts": "238c13d406a290f41add0a99a61b880a672c9053c6a52790a0bf1c93d84b12a9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/building_number.ts": "aaca82aa849b2cd6e2d86b2b95583317e96418be059b81495e32af832d6b560d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/city_name.ts": "cc055b5d382c4497b1b6ab982865915c747a9128a839a73b3dbbdc0ab5e3c7d0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/city_prefix.ts": "b55e3785098d3df046f7050a83377558393c79278bed28614df672e2ba8bdf2d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/city_suffix.ts": "b55e3785098d3df046f7050a83377558393c79278bed28614df672e2ba8bdf2d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/default_country.ts": "13bbd344047fc1e5e26e7c8c4742de228e1677e568fa8d90693d9a707dcef308", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/mod.ts": "b4d1decaeeca47daa2b735bcf4a22c2b1ab01bab0d5b1078917f359477440843", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/postcode.ts": "684ec2181dd0adadb983e188a321d8d34a29cd9db1a67211a773d67957c402fa", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/secondary_address.ts": "46ea1a511328cde66f1637e81494993fc3ba75df2697e00d87c5f2e564305d0e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/state.ts": "91ad4232c0703bad47fe8ff06419b5ecac31562e6ff7f4b579c6533143279bbd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/street_address.ts": "5f160bb98aecc4089c0be2bb943bb8e708d71e8bb873700557bcbbd43030a565", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/street_name.ts": "edf5157cc8e8248fb1d187a86dcea8bcb74eb7cdae4325b5a12ce42f2b88ad61", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/street_prefix.ts": "96778166516d12acd839930e68c7fd22a303698490fb9e56a83089cf292e6e7a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/street_suffix.ts": "2a4bab10241189b419c5289d0fb8dfff963a492ada04028cd8c1a4125085ee8f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/mod.ts": "ee16bf72b44fc720a4dc44564cace7ea74e04f8aa92935a430917a49f13fc721", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/name/first_name.ts": "db36335ac23247f46f8d0efe3b8674e247a3ca76c47d525af12b0744809e34b8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/name/last_name.ts": "3cd55b6b9b2ca7fa31ead437e0eb2ea1f74a2c602c6e0e92601b6764c5d2d7a1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/name/mod.ts": "b4d7ba5c0e43851aa71f4205787550d7b19bc1a71e4bfe746fe039d507947269", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/name/prefix.ts": "b479d2fdf7e76af1eb932147afcce9fc19faa3a32dad7af30e11b8ac1331dc86", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/building_number.ts": "3bbcaa5893195c47843299cc44e250c78a4888177477f9f7639ce5a28dcda349", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/city_name.ts": "486b91da5f5c285e3dd933325680b84ad12d2c475f6e52bb4d082ef340379140", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/default_country.ts": "c5d529cdd8580bb670d59f4c13be403ede3e36d91efef8c8cc440d2623f37282", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/mod.ts": "cba339eb60f55fa06f9c8f54dd5e152e41d9a9103ef8f05595e9ab4577676080", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/postcode.ts": "061e0ec295a754bec2497bc3fbe0cf0aa6a7e1a1ad3b6b846bbbdf81191b7097", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/secondary_address.ts": "0b7d68120cbdb1e61b0f87be4bda8f32dddff4140160b0e57abaa4464ef0bef6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/state.ts": "bfc67b42c6b598076e4a76681528081682f1ee5cf2585efd24381a050882fa1d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/street_address.ts": "b59074f0d19ce82f3fa5dc987279c0a89b42e60bd9e437c5382eeaaf25c321aa", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/street_name.ts": "edf5157cc8e8248fb1d187a86dcea8bcb74eb7cdae4325b5a12ce42f2b88ad61", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/street_prefix.ts": "fe90d830d68366ae308d45e47cba67bc6a587c8b2d8230f5cff6600d887aeec5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/street_suffix.ts": "3e4667eed3c6ad06b76a99dcc955bc3d203dfee6579de88de9c8b1d324ed1679", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/adjective.ts": "f7ad0bdfb675f6a40701785eae81713b0462b90d8dcc11ac10063a39fded223c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/bs_adjective.ts": "2bad5f774e303e29fcbd4b5151247595479eb363d0e5b7e75c656ca25d584f44", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/bs_noun.ts": "f92df9db224763d3a59fc6efd702bc2ea341fc1233273bc34a8498544ff37bf8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/bs_verb.ts": "133dda7b4d222bd5ef8486e0d9168f6f602ea9898499b4945b19979bc62d569f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/descriptor.ts": "448c8a419f28805ccd751819309269d1b815ef9dfb94d98c691e7660b1086516", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/mod.ts": "3099c443709533eeb07735538fb19552e1ed25db3eb7ced69ef76441bf853042", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/name.ts": "da3a5e66f3ecd086335376e2d4036349c6bdf8cffe24bed7c336d2dbe7a55095", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/noun.ts": "6fe6f633bfbb61b51c0782a50fc76a8a6653d8e342d788bf0021f4375b5a5c75", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/suffix.ts": "9365573a15fa99044983afedea9635224ad93f05c3d9a86df01348f68294912e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/internet/domain_suffix.ts": "71db116769ed6e48d3aba64186280922720445225c15599b146d6d3e618e3599", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/internet/free_email.ts": "86f6a3734cc2c245827548ef2611948ed88fd5191b3de5dd28936e70b404fa2b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/mod.ts": "b43a113f9f72601e2abb56e40e16d599c8d668e5c9701c6ac20da656766f47eb", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/name/first_name.ts": "28ea50d02d71b19a3c32f47ae2e30ec379c5dc7ae8b9babc3a6fc3e1830ca84c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/name/last_name.ts": "b0dfe9334b4c9c2230edf9e8b2edd80eb7d581bfa159120a9a60b1cc8f5a6aba", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/name/mod.ts": "8e9d93c349d09d4ae89a6f4855107584e1734e4ed036fc068a1f1b866fee0f82", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/name/name.ts": "89157dc973538eb2db9c8ca36d9b3ff33315edabe84bd9bed84a28c2f0c04cbf", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/name/prefix.ts": "e4917888a5e8989e3fd455a3676b11b8cf72883a4d118f5394f45760da15334a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/name/title.ts": "b7de7bbe9f52b69b3bae9928dd016a998881a95a6f24b4a08f4192f17cfa8c8f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/phone_number/formats.ts": "d6dab97a41e005ae019b096c33d83d25eca3746dddc32fec9ea612514d8e9f9a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/address/default_country.ts": "57a5bf94d2a8e1a7c144c7f0a846c2c23c5e3be01f8645ce5032d08749bfb7e2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/address/mod.ts": "0c269018f4d4dd8c0dc513659636965dce48176a84d4b00cab7ec2a248d162e8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/address/postcode.ts": "6c2df1e0ca28e31eb59d09559f29d4d0a7de1d42f685b35143b4bbf8bac997bb", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/address/state.ts": "803017e71fb54c8470461210e03c0ca09d6cc9a592c9806f27aa25c667e6218a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/address/state_abbr.ts": "b1c63627b572b9266f2abd369f94404cdb412df48b503abf755f31c555702730", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/internet/domain_suffix.ts": "b5c510e46342bf1e28032bf36cd775d1e094d178d6de0be623a118eb280b6bc8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/internet/free_email.ts": "57e2667d137171dc541090ce24ff234fcfeeea9cd8e05021b7defd2d8a1e8b80", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/mod.ts": "21d6c87b053cb9c8c38e0e1ceb29d050bcc9a544046dae8e4b7e7b43701c30ee", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/phone_number/formats.ts": "c7d10f09e24cf4d2236c44f01160574ee7caef4bfce048e15a6de2df59c9c87b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/address/city_name.ts": "5624aeab30b316c12abab36d6ba5e7bd3b2fd890238f8542cfbcae6e7209ad59", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/address/country_code.ts": "c593d8606122c6f04d5c9e6d3be03aecffebbd7e8d74d8563822ed9fbcb88939", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/address/default_country.ts": "d9aee8680f720761d30bbe7d5197d781767e8625e37607ee8cc70edacc3e8fb5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/address/mod.ts": "739fb4ead7efded042ba7e476ea45fb79b194948b8ee1f899c7209aa2a660966", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/address/postcode.ts": "69c7b1b1f8efcc2e2c0267f23773b4e885c3ea8397f6489b4769aae5f9f1dee8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/address/state.ts": "b6c551ed74182b0a682486caec8911d26ce9ba6916e8147ba51a9288161db463", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/internet/domain_suffix.ts": "7d1e6ad5a17e0d8b367da49db092ca7a4ad874a16063028caebd9c6ab49b8fa9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/mod.ts": "ded8b5e2fcafcf0f3b06e08b194f921ae1e3b0cfe696b917daa1a65ba76c6cbe", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/phone_number/formats.ts": "456c91f9d602cfe5ceb3bf0eea91c50eb901ce8e661f2ef6d18271a345533565", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/building_number.ts": "a565355a29f77429d5a433464cd3659607530cb86a2a32c33bba48b74c30bd48", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/city.ts": "781650c03d9d1252121e9091dee2f43897e55717762aaa55a761b70296279297", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/city_name.ts": "6b985bb6eea45f5912fb95f3f8ae1ab13254c77b8b40ddb2c9cfa8bfa0c0692c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/city_prefix.ts": "abb2c3f38f27ab34aa1760f697f2726b761eb0702886fc2d4b384810f938ff4a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/city_suffix.ts": "1ae6413d49b14f0fdf17762900b5f307aff71ef08c86ebe776d9b7e5cd4940bd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/country.ts": "9236dcf0d26b6147baf761344ec14561935de4145912a0a03043c648358c9917", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/default_country.ts": "7a15765e66aaeb78e89ef6e1442925d46c828dad54a631ad448484a091a584cf", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/mod.ts": "2b2fbb2193800b5f495eb0962d4c42345b53042166bdfb8d5f922e2305e7a408", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/postcode.ts": "31f3e421cade75b688f607314b3eb57ac42687af774c788cf70096cafa5e600b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/secondary_address.ts": "50d3509950fb84c53cb9127a35022794477875e963ac4789207d67b93959a761", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/street_name.ts": "1d5fa833b8806f61f41bc68b1f4cd8ad584f96d99d10baf85506599bae0c9ba8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/street_suffix.ts": "4262e7971700802cb46f9db058419c771453cbb3704205c0c5d093571e697b99", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/street_title.ts": "49dcd5f4c44262e9066d306f6b3d3861b9eba7317e69d99cd507c0e675f791c5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/cell_phone/formats.ts": "06e79bd734c5adc5593970a7a9c954c214c657ba34796edf900e2a195c7f1e06", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/company/mod.ts": "bf5ff8a8bbd8137bdd6b0f0df25471a4e32dae61c906cd0d9c8a69c1c88e7a4d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/company/name.ts": "79480e41e6b7ed8b9f6c7a0d404c4127079ebd5f7999ba61cf47d6e12d016fc0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/company/prefix.ts": "ee6bd6d78d94a2ca8552ffdf94599d1208dfac9a63d2e5ed31fe7e8dd9a97adc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/company/suffix.ts": "a7c99342100aa8a11eb374683542172a2a1018a5b462086434477aab64e73541", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/internet/domain_suffix.ts": "a22f6591249b9a5ff67a24c2e9862a1cb191f4858b70e6dcbb25fdd53e33d2aa", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/internet/free_email.ts": "4ec4051466aae815455e50347c67c153a0d1030f197b35507669baab6df36b6a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/mod.ts": "e02c7fec4ac7e52373934070a41999a1be27f2732249766f398cab32d4c0bc23", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/name/first_name.ts": "9ee9d74f6e364ea82b413048b1583a2c247452c72dea440c14a8a59db73d1f0e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/name/last_name.ts": "11301f67f6fb007b59a586ce843ac7ffa0a548fa07cd8ac10a4c13b63a691d7e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/name/mod.ts": "8e9d93c349d09d4ae89a6f4855107584e1734e4ed036fc068a1f1b866fee0f82", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/name/name.ts": "a2dbe9977eee053eaae1c005cffc15fd7cb50e3bfe09b4b6077901e21cecbc4e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/name/prefix.ts": "edc446bf0a1d62e4698d12d312e23a47ce5008b34d5dbc788dc5062a95ba2896", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/name/title.ts": "01ee0bc94373893f23a640d174246aac98c6f63f0635144418eea2eb35529696", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/phone_number/formats.ts": "2d29308cfd29d448574fd70bb220c8f7c29ef05c05bc328ee1365e6f739d10b0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/building_number.ts": "aaca82aa849b2cd6e2d86b2b95583317e96418be059b81495e32af832d6b560d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/city_name.ts": "a967311a2d113a1943eab1be8e6ad16c032117547089408e8f374c6e93969e38", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/default_country.ts": "bbef250c8b5888f73f2c62c08beea33ca26b28d52aeb2335fab4e57210681036", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/mod.ts": "43e2bce43222934ed6c71d4a84c46be984c6e554171e5832a14916d7534e4f54", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/postcode.ts": "061e0ec295a754bec2497bc3fbe0cf0aa6a7e1a1ad3b6b846bbbdf81191b7097", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/state.ts": "e9c8b34c2f8d00eca3cd17fa7f4cddc5f1de08496be6cfa2bb15965785ed6009", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/street_address.ts": "3e03e4117ae17e0e33f0513eb3db0163247a15e760c3990d0d96b073d4feb1c8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/street_name.ts": "705810cab3901d42bcd1ebcaf8d6efa48489c416fa0e3c1b0c241f99f9547262", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/street_prefix.ts": "0f89dad3ac1929f0e0b4979c663c0150a86d3f33bc804d475089fa286f8ae7e2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/company/mod.ts": "bf5ff8a8bbd8137bdd6b0f0df25471a4e32dae61c906cd0d9c8a69c1c88e7a4d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/company/name.ts": "7880cc0882d6b49a2a69271280cb52754452d65257206cf08a6896d011768454", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/company/prefix.ts": "4d1e9c3c357736a9ef0637325523a6aa63eef049575ecfeeddb7b1256db574ed", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/company/suffix.ts": "d75b1f4aef9639153d43e3df9cbc5ffb55ac1addf27a15fcbbcbe523c453e315", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/date/mod.ts": "c61d7c18e3791003fcc1ee425d5e0e406878fdef9f10f3fa75fbe95f40579f8e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/date/month.ts": "ccdde6f4dd012dec2ef043c9e1e1a4df6bb7f786b679c20fe106171cd8b7cd12", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/date/weekday.ts": "5e80c2958b55c4f4624da6691e54a143f5f8e1315a158ec1ee9c380544100cfb", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/internet/domain_suffix.ts": "8c25542c1691bb0faaf76df655a13af82734499fbf53ad0447e81f98fa111afd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/internet/free_email.ts": "a08b448b0a83315fd51c29d6fc5beb511a833485cb64a88ac7db4f40dc95f679", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/mod.ts": "84092a044f037d898733906cf2edbcc8f3b70409c765f411a985442e9e6a184f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/name/female_first_name.ts": "f4609910f89b3864c5a2d2a4aca4d10e07a06a4c06a09566741d107a34ee7cd1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/name/female_last_name.ts": "093a2bbabafb363c87c3f4b7606e3c0dd811dabef19c6d67dd6030aba16062e0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/name/male_first_name.ts": "3898ab31978e59dcaf168e37cf5e1393bad6258a55f5c56fa6d3fa31c644642c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/name/male_last_name.ts": "310e3726f0b1632bc9e614b8af909a7ed111f47c28bbcd14111498d77f980bd9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/name/mod.ts": "f93675814a7ea84f0423af6521c50b4bc687eb738be3e4e15b93fe4451102813", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/name/name.ts": "947da03c0d2cfa50b0c7bf608e17a876f6105768be94ed0fced006b18979d446", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/name/prefix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/name/suffix.ts": "dd3c5acf28a6f2df1cd2f97f32be5ec13077d196299805080e3c8972bbb85638", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/phone_number/formats.ts": "543019ac4f0d25fb1d9e5d936329dc32eaa9d377cf1e039ec9ae5b20369c5df7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/building_number.ts": "a565355a29f77429d5a433464cd3659607530cb86a2a32c33bba48b74c30bd48", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/city.ts": "20d170a21e9effc20bb5a2b9823be473fac6418c580e732d4945d7889f204c59", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/city_prefix.ts": "1ca4bdb70d087fb6585e9c8de483377e6a70f375820c74dbe0cdd13db053a7f4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/city_suffix.ts": "eeb1756dcf20dd976ae8fbcfcc3ddae42b528eaf70251f71b0e7441185b58a52", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/country.ts": "5d7676eb712307d3c0dabdb59f71d45af59b46b9d10c8f57c4e78e5ae7dbd54a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/default_country.ts": "ba2c784fb953782278284476e48ed8cc54c91cba25f20685744d465120a54696", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/mod.ts": "6ccc3d8847189d1566ed078dc719a6eeb785519a269ae727a436fb4f08efdf6a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/postcode.ts": "061e0ec295a754bec2497bc3fbe0cf0aa6a7e1a1ad3b6b846bbbdf81191b7097", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/secondary_address.ts": "1e7e78461b18274341d8427f23b2166c703677457f62104fbf231aeb8f874f54", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/state.ts": "73e70d5584af98d957c93ffce36fea26ff8d4d6226941f515ad26296b6dd6329", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/state_abbr.ts": "0a2a0b758ba65f8d4b0fa2bb81fe46a7d6ff493e9b371690563d15160e7b9ab7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/street_address.ts": "beffb6fe7355361e8a04437a5f0d55d7b1d42fc6eb1c17eaff06b2db0a04196f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/street_name.ts": "33b3abf231ad900b91a6d8e5e14dc08ff31743a8147ea25eafc0052d745413fc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/street_suffix.ts": "ef1eedea3668db65199ef4e7c9d6a6bf4da91586338d79397aaca1902a8fd909", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/adjective.ts": "f94e27972a83bfc216a19c57ca0240bf1e6a403967f68f4a88647d155508a732", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/bs_adjective.ts": "eb0dc1531794c448939dd13375a4ba10606df767bfb529735e99b0292f6a92e4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/bs_noun.ts": "53e2ff59255ed84823ffa38f7c4631bb6af4895b09bce4df1fd61a30e9d3f8f7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/bs_verb.ts": "4216c26bbabd4063823cbe452b6ef2c6f229309e458c77eeb2f2686250bad4db", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/descriptor.ts": "91d8ddb6f7b889884c88fd214fa2daf7c846a0086cce9ed8a98dbeb3b013fccd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/mod.ts": "bfcf70347bdf3c4ac01c7ac798318962a56763397f503a62c6e7a124a21402a7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/name.ts": "8a28cae5a29bd7d80a9702c0bbfb8e7e1cdc9ed73528f9604531825e983a4efd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/noun.ts": "902c481c518923a491fde7401eb9c1b7b68d6f5bcbb633d86970d5889275a1d4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/suffix.ts": "a833895e41a67c31ca7dcb8806ce94c6f31b2966af4c0960de2700f85e6a90d4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/internet/domain_suffix.ts": "eb246cabbb7ee4097e93802956dce8afbba3b924e9c222e96094f9f4644255c5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/internet/free_email.ts": "4e1e360cb79e2cfa1e1667887a00f071c9159c2d1f0c243f2b94b646cdd4a4b1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/mod.ts": "fbaae332d3fbc23ddc76aa6d05e8a23c89a7a49e25a4b418a94fd5eeff181a8f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/name/first_name.ts": "a8e155ee3d936ddcd5839fcc9381e8f04567e88c23291053d30dce0113ab956e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/name/last_name.ts": "7264e649ee0b40ff9e68d6ff350f42993c215f49e7e1c0a1121391fbee0de81b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/name/mod.ts": "b0888e78ca62a39189d4f4c6c2c8ba254c53c3c7f71f05ae469331777bc9d525", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/name/name.ts": "a2dbe9977eee053eaae1c005cffc15fd7cb50e3bfe09b4b6077901e21cecbc4e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/name/prefix.ts": "3c4b8d535276ed13f7b1b8f78c6a2930d0e861d37732577d05adf8edfd0ad2b9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/name/suffix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/phone_number/formats.ts": "ed251b7afcec2c0df9bfd2b4affb02197efb4fc833ee266aae8b692018d26f3a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/address/city.ts": "ad2cc21acc814818a6e973548a94f797dffc852d312e7e3080224cad8cc25cfb", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/address/city_prefix.ts": "d309f6c25550e8d75716fadda27b6663efee9a1d9cc047134521701a0eadfbb1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/address/city_suffix.ts": "98c87bb9d89aa252d54a8ad9243a2c919cc0ec67f52ecf35dec7f15f18fceec4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/address/mod.ts": "123856962aa34c455e2e88dd2a61054b6ec0cc01f71b1e070f82ee1a3952548c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/address/postcode.ts": "5bd9055b2e9076aa279ea2d5132f7ac8fb4fb33159c842d2a0dbaf87d7c738dc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/address/state.ts": "a041169ddc0cbd9e04a8e7311ffe7f7086501666e69940404d70c831f37e2af7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/address/state_abbr.ts": "1c4e5d69a2a756f369cb141702a479e89456f717c82e0c3c7f36d41f71070ebd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/address/street_name.ts": "1b7c3bedcffbf6e69b23bfdf2a81f172d83aa8eaf96f9016c5d823917ca58318", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/cell_phone/formats.ts": "a25baf92ccafac308a7e8cc99092baaa53ad6f478f0ba2d6b211993dc517b26a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/mod.ts": "3d77c67f0224fbe3a006f2d9e7ec49460e186b3b9cde0a6184c0d1a02575da02", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/name/first_name.ts": "5dad896f74d7e4ea75ff79ab18ba6b584e1f4485371ce251ceec51881120a925", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/name/last_name.ts": "76eb36465c8a3d8d538dc5dd6965126f9fdbe8b43f996b5263c2e1bc5ce64823", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/name/mod.ts": "f693a10528cbf16c21bc7b1a0762f5fe8e6069d4ea3af9143365cf2bae44210a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/name/name.ts": "60035fcd79e45945d523b0754d1beb43fa0fc910b6924322133acb29e3ae32e5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/phone_number/formats.ts": "28de27fb6653ee92a07fe3fa900c20b4efc36b346486a857451062a097152230", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/city.ts": "fa4862cb1d231a0c3526178cdc2763827acb77a1453975a97adad18a30d0a48b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/city_name.ts": "01bc14756d461f8346af83e967d03bdf7b6cbef5aae92d631bbc615ae5fe9297", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/city_suffix.ts": "7b13f2cad2fc0887bd986cd942caa1490f9f8e72da1985a59680885c20b99e34", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/mod.ts": "73bd5f608a2e9c4e63adc003b54e52f2878cbabef352c8bc7a91377c0cb33415", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/postcode.ts": "541c38e46ebf50480b202e74ddb0ca5fa675b51db6d4bdfda1b6438bfb0c0898", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/state.ts": "b08d1f987c0d9adf40a36471cbe7592db7b89bf76384ecc41832a7031ccac3a0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/state_abbr.ts": "b08d1f987c0d9adf40a36471cbe7592db7b89bf76384ecc41832a7031ccac3a0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/street_name.ts": "dd8f3629f0ab77c21558aa02fb78ce354ab51d7544c4cb15e3735d62282dd28d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/street_root.ts": "ca044e8a76c79bd185ff7349e433754d56a3f97f66b705c5d73e9a1e808e938c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/street_suffix.ts": "25dfe80b22f0ebafca08c0548fb7c5d4e264b5955c198f5760b87a68fe70b101", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/company/mod.ts": "685345de13526caa5e1cc082d1025b800cb309404923e0025d6eade2be844f7b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/company/name.ts": "5829238f752816aca30c5b4b67d076a2f6a950bdf869c9a6253cb022f48ace30", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/company/prefix.ts": "8f228599c9e2b9ca48c7f1b08e4dff5b61bf7bcb0cd7bf91584c1501d9d06c98", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/company/suffix.ts": "7edfd0c07d24e51dab122ee7b9eede6c6676933c9864e8e3e3eab2cdd48e2273", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/internet/domain_suffix.ts": "23b1b78c298677fb0b34518375514fa6356d5cd2efb983e56ccf6c6da8b646bf", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/internet/free_email.ts": "ad00f3448ec7c5f783601248efaaaec32bb4eff90d6389d2ec0f5fa115d6e654", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/lorem/words.ts": "c673ab3362b9ff032253405c79c087e96dd6f2edc10d96f93c6763807e8d4c2a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/mod.ts": "bfca3564c516661ba2f77910120788c0278dfefafaa3ddd297846a19746469e9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/name/first_name.ts": "22c79e8db74a4426d34e06456b7c3b6f49c1b6ea9dca045e4af159c837f0b3bf", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/name/last_name.ts": "fc8ac39d24637ad03c4c78ed1c01a48899195b1fca048833414e42a33430bf0f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/name/mod.ts": "f693a10528cbf16c21bc7b1a0762f5fe8e6069d4ea3af9143365cf2bae44210a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/name/name.ts": "60035fcd79e45945d523b0754d1beb43fa0fc910b6924322133acb29e3ae32e5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/phone_number/formats.ts": "5a77c28d90bd612c3e2c9e9d621f29dfa4535d0da80933f63108a9e596246d35", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/building_number.ts": "c56053b7f52be9053b2c59cb4b1453fd42dd425dfa79944dce5b625b29b5b59f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/city.ts": "62a0a2087ca7d03d82bd5510716b0e1945b1b4fa3d1c6f7679dc65ada0ed625c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/city_root.ts": "f5256670fea50f401dd883e6e3acce6cc18d6273264cc46f299a714f98e231ab", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/city_suffix.ts": "ecc1444ea404f4cd7b4ad66ecb344f08ca60414787eaf54af50df21d743a1e64", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/common_street_suffix.ts": "6fdb6545426467b169a9a91872151cffc1abfe289cffb8fc7b66672c34a4ee6f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/default_country.ts": "09d7baaacc1284c866d865f62b082ae819bbd9be6cd7b484e429047ea5318833", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/mod.ts": "009d68234495df0889ec88ed6458286c7b86a2dfacb4cd5afdca5934cba69a51", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/postcode.ts": "c364d1ec2cd8e633509a05bf0bccd2310543f8b2af7c1c1cae8d7fedc450bebf", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/secondary_address.ts": "219675ba3658bc89d23a6ad82c57c0d08bce5ddfcd7adafc469ed5b271266f4e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/state.ts": "b55e3785098d3df046f7050a83377558393c79278bed28614df672e2ba8bdf2d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/street_name.ts": "30c7603d2e0f0822541bd85dedb1b1d891374cbead328d898c4c9d55e6697d5b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/street_prefix.ts": "b61d61572405481eeeb2356c6578e63c9596050da93934b9a794872e0a3cd60d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/street_root.ts": "c6846fa1e11c3aaeb2292e7292c40e951491d506994b9f7578816e99e6d0af8f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/street_suffix.ts": "046d9c169711074ca810ca6e7e2542afad7ad4fc63e472a7e428d45a4a2224be", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/company/mod.ts": "59429c1943da64620329a348742a0602a8544ff38e33fd1671e7c25d3ad43708", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/company/name.ts": "cb4ae6023a4683585bf4f3b8cbc10a8f61993ccf03e645637b924922248a2838", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/company/suffix.ts": "34807cfaf2494e1c5a75fa2153d27e8fb0638c66bfe9872c1a8ff84aef513b97", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/internet/domain_suffix.ts": "ba2cf632e0aec4019cb58e5c5cade520718e13ad065eca2176722534d8e636dc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/mod.ts": "77afec9f52f8146ff1eb8ba8df6db659b5aff2c8e942f4e2aa95fec7b6f4f310", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/name/feminine_name.ts": "2dc69e8685750f92afb6072b130e056555ea1129c6d6065d134acde54dfef96a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/name/first_name.ts": "141ceb4d184c4266a04259987d98a84842409d0eb6d4c31e08c12c9f38a63949", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/name/last_name.ts": "613caecffc36e5ad6ba0f4b387b7e63a7f4ddfbc1f8ab678021bd8398529b722", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/name/masculine_name.ts": "a2b67dd0dd8d5cc692856c374a10f0fbcf0bd789c353e55e825f3613451d3877", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/name/mod.ts": "f6ed053646a8db0a170201b6fb2895897cb1d0dab7e0001eb45ffff79d9f9805", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/name/name.ts": "75be644ce9ca853bb9fecc716e7d21e7174fe82ddc6bc9ff230422e9084f7cc4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/name/prefix.ts": "5aa63e24a521cea5860e152c3bbf36ed75df566ec3485bbe08e6c3ae0b6c1dc3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/name/suffix.ts": "a99d0d997db0060da3b27835c3eec0269b173617be01f21d7c94894f86de46a6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/phone_number/formats.ts": "4bff3a591bb5f65ff73a2c47289467a7ccb576b4183c36cb784fc6f338b5ad34", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/address/city.ts": "00ca7ac696e0a8705af93f1de1b479a89166f222adf7c3673d92340ceacbeb1d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/address/default_country.ts": "a593e0ffaef5c6292ce889c4956df60f973e6ce8c46063d4a45efc7015c984b2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/address/mod.ts": "2b721f3994b555ecdc94f126a333dc44b0e95cc718894b52e1f4addfe4c5874f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/address/postcode.ts": "cafd2492928d01d7ae5958952d5b2ba75e4ba596de29d16a661ed59b15dc1ba7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/address/state.ts": "3b270b8d1cacd5c7928a8da53f3b9e4542572003d2ea10f8350c6ff96b81d535", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/company/mod.ts": "20ac3010aee7c25a2fc994580e0f4640717c6444e7d26e3e486182254f23a239", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/company/suffix.ts": "5816ba6f2411d93d007a82a752624038ed46733bc5617cf6e4d45fad05ca2b8e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/internet/domain_suffix.ts": "d208e9f9d3b62f5e7c91f75ba75f452245089ccdc9176563a2f07f35627be6a8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/internet/free_email.ts": "80a522e58f99cbfecaae4b196c677268bd8036e5605fcda5deb167579481eb2e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/mod.ts": "418d40eb18bc72d718e1c08016fea9c1ca83888a924ded18fdc8cec57102b92b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/name/first_name.ts": "fdaf016684b2cfbdccc7d20ec84d4e6db132c9c93eb82d454db45c1d4d9e90f7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/name/last_name.ts": "f2d92610d09bad69c06653283eb6f99b2d57ea18f3dcafb9a293e3095db5aa6d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/name/mod.ts": "4f951778555b5fa8fb8552c0bf955655e90e408c63a6d9465d7a83c21380b564", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/phone_number/formats.ts": "251d9e6c1868ece391999076bc416016aac6570f0e7452f4a481da523a4bf830", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/building_number.ts": "6d727cef50660c2bf7a04c879421d46924940b20db7c4a2846095db964e119d6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/city.ts": "22d2aaf5c3f53024b57a0c4ff15a2906e895eda7d2fb2c5365c377b33dd1c1b7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/city_prefix.ts": "466ee346e68e94fe6e54054d04ff88cad7ee14bd21da06f556eb0911d2101881", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/city_suffix.ts": "56f7350387bffe0434e5e7da134038e72837c7a4e02b9a461de427115a8356f2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/country.ts": "6029a0d839c3cf949bc1287b251d38f4d72e2f06a0121194433b9cc700913043", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/default_country.ts": "8e0d747b77ae05fd5ca96c69d3903d1704e7bb9306e6bda9495a2e9dd285b1e7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/mod.ts": "c606ab1987c2ff12e22f3dda80629a529d7d7b7be185d817317bae5dc7386b22", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/postcode.ts": "fd43b0ef451f5b67cf18cf123040c833988c7d98f061ebfa1e286d7ce96fad9f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/secondary_address.ts": "555b121d2e6fd7bc3db969c6e269d9e5aa641877e74ec4bddcd72ef9cff11048", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/state.ts": "4ecdd71bd3fe445b5df9935cfbbddc7d99d06c5f19ae131fdc7ecb9a8fe16177", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/street_name.ts": "1b7c3bedcffbf6e69b23bfdf2a81f172d83aa8eaf96f9016c5d823917ca58318", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/street_suffix.ts": "b583b92d81c3de56a9aa8785ac7bef9ea5077cd131af9e93f388ede729cc925e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/company/mod.ts": "20ac3010aee7c25a2fc994580e0f4640717c6444e7d26e3e486182254f23a239", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/company/suffix.ts": "87ad17126fa257b7d405cfcdaedf8e039fefb92c4c44c4e624a2726655d20081", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/internet/domain_suffix.ts": "a1a9bdb5121c63eaff3481cea3590113908d1c9712168f94d4023c63c664fa5e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/internet/free_email.ts": "95deb3f400012a03c0fbfba6e796c4228d5b1f9af6b512b01af7fe4fb0e439b4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/mod.ts": "6239e7f60b8abbff65994c637bb06c693700d8c1862f3b180c5a57d202b8e6e5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/name/first_name.ts": "3c15250c6ef7c8db9219298aef880ea2a0560bd96fd30d5aaa6cc8fec6c9a06c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/name/last_name.ts": "cb3ce386e1e94b0a741a118ffb6d4c6f73842331ad1dacd4cb6eef39453343ad", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/name/mod.ts": "471cd3847c2e9c8f2ddc789b02238f23ee47f032389e9f21209ed869428f4eca", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/name/name.ts": "9e62e3d654ff6b7d5907ab821e6ea2d684064228770a7d270b81ed7b81d56d47", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/name/prefix.ts": "16014a332fde9b07777377b091ffc8d0670fd75429e48566ee95da1b205c2a62", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/name/suffix.ts": "a99d0d997db0060da3b27835c3eec0269b173617be01f21d7c94894f86de46a6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/name/tussenvoegsel.ts": "01c5d256d1e0ff48090de6bafd2605153c47cf34fb53e1951cbe5169adc78eac", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/phone_number/formats.ts": "ef5b486144cc999176df7e48d086fd23a3767ba5f74ddaca96ca7352d4802073", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/building_number.ts": "8160bafc5116bf0c13aec782218d4d4ec8d0816cdfda18cd4c47805d304f4bc6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/city.ts": "8de357fdeed89df1cce0ccfa650c5c96fcbae1387d66d86ae5f0a2dad15d3507", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/city_prefix.ts": "89511155ef72b74ca6a5f07078e3e36e1db1b2a42a10c5488b1de6e11fa2c6d7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/city_suffix.ts": "191652273af105f3faf05419baa9605804bf43e3e7d53130764aac44202bfd8b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/default_country.ts": "1e871c7f287a020799225152b8b210080dbfe01983e6a49d046d3942d98483bb", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/mod.ts": "82c4ecb6661269ec4e6770d975089ebd21e5c8ebfb1ad178bab993c83561e99e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/postcode.ts": "e0fa4cd27b4f833a2ad47c17115ebd0bb2999e90865e2b8386e0a7e0194f5317", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/secondary_address.ts": "22d47453dd875129a177d38954ba0c0720fad5e4a7016bdcd626b39aa218b11f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/state.ts": "fb3e68ca4481d93d94e8078346c5e1168d8954f1f7e619ab0c1d890eece1e4bc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/state_abbr.ts": "d1ef75208af4175658281bcea03536deca32980a9172b6ebbabd2551e0677da6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/street_name.ts": "1b7c3bedcffbf6e69b23bfdf2a81f172d83aa8eaf96f9016c5d823917ca58318", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/street_suffix.ts": "d00cd93c3d6d6fc2e3702c96cee605491f2216f3b4d3242f210aa837a0966819", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/company/mod.ts": "20ac3010aee7c25a2fc994580e0f4640717c6444e7d26e3e486182254f23a239", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/company/suffix.ts": "a6c7476cdbb670d6240ec5f0b1d543d470f67c2c8a84ae67c20f94d685285ea9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/internet/domain_suffix.ts": "7d699d1b2e78fbe85fae5c7c2efe07a0afef80fbae136d7715600d7561b86fdd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/internet/free_email.ts": "11ffeff50e54109d5ad74488d12419bcb6865477b8c7df3d194bee8990298e14", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/mod.ts": "c6ceb8d66ea8bfb03a7036ff953ea60b0246148477618fde798f976db44d506a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/name/first_name.ts": "a8e3f7eae788d5e76e03890ef06454d02325444da536dcb0c9cb15260cdd6a0f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/name/last_name.ts": "dc5caf3e75226cf0eea8f65702f70257292f98a1a3c026cce98f204fba5a7094", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/name/mod.ts": "b0888e78ca62a39189d4f4c6c2c8ba254c53c3c7f71f05ae469331777bc9d525", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/name/name.ts": "74b9a8e93ada436ae30e7531993b245cafdae89d1236e449846b72c2a14c339d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/name/prefix.ts": "bd9105988f4317bd98e16edf6e7fe4c3c6da23cf937ed47ce8badbed127ad0fa", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/name/suffix.ts": "b4a8fcfa329d56a9f48e526197bb0a21484c3d5c7e5ede0072d5b7b5206a4c05", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/phone_number/formats.ts": "4f2edf875ca4b05325baf1e1d76fe118adc81a0f1e817a767b5ceb2a57d318a1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/building_number.ts": "1eed25d6937aa63676fe04b9a2fda42df1dc2d2b04b28beda45f4dab2410413f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/city_name.ts": "5bc87106e883408725dbf0c0d08b5d873cf16a12b6e4d7f2ef5be545a5f34e91", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/country.ts": "0309755e189035ec6a70dd9c08d8a83006dd1ef5d66f909442402dd976e541bd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/default_country.ts": "040bccf72e3e6c24c56170c396eb2a7d6b32ff7e9f1b23a427bf6d095c759f7a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/mod.ts": "18cdc6b33beb058bac9a7564da9f975812468bf95166bd799546becc71e28d4d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/postcode.ts": "361ad809eadbd279ed83c09dfd45e1001c3b85c07e83d872a4fa23619d3c39b4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/secondary_address.ts": "9451a74fea0bc0ca76a4d9aead9ecf01a6da7eaaa072cd61496d441a1337f9c1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/state.ts": "87f6e06680bbcdc414e03ffce363048bd8dc2db823ef65f4181eb1defd371403", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/state_abbr.ts": "fd0d7006cd83813d11ae6818d3578fa1eed0edf676580f18e764185dab5da24b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/street_name.ts": "02f67b36cdfce657ace0d6fd4e3957313c13470dd4d35031f1f953c4bd4b5bcb", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/street_prefix.ts": "9577cc15b63068014bbaaac982b86becbe24d0967d67067dc8ec2b619ffc46b8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/cell_phone/formats.ts": "565a33a90a44198ad5af8b4e09092681023e3d3cac7503eddadbc8a71b372459", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/adjetive.ts": "f7ad0bdfb675f6a40701785eae81713b0462b90d8dcc11ac10063a39fded223c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/bs_adjective.ts": "2bad5f774e303e29fcbd4b5151247595479eb363d0e5b7e75c656ca25d584f44", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/bs_noun.ts": "f92df9db224763d3a59fc6efd702bc2ea341fc1233273bc34a8498544ff37bf8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/bs_verb.ts": "133dda7b4d222bd5ef8486e0d9168f6f602ea9898499b4945b19979bc62d569f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/descriptor.ts": "448c8a419f28805ccd751819309269d1b815ef9dfb94d98c691e7660b1086516", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/mod.ts": "ce6ab7fc0e6f04f007b26d5eac0c2c0bceb695028b48a0ac1a4d1820f31863ab", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/name.ts": "518a52bc2801a0fa590c69caf5c0371a42e6e0eb6af796a064f283fe86c0fb7f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/noun.ts": "6fe6f633bfbb61b51c0782a50fc76a8a6653d8e342d788bf0021f4375b5a5c75", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/suffix.ts": "dc4211e31463f9dfcbf590b2f5517659ce90c9fa43e5d10f34bfc77e6d16e3a9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/internet/domain_suffix.ts": "c783ceb06b8fc1d17bb059bba47b4ca21c50ae023798bdefea48cf84e63bf031", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/internet/free_email.ts": "95deb3f400012a03c0fbfba6e796c4228d5b1f9af6b512b01af7fe4fb0e439b4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/mod.ts": "d3fb7c7ced967f364da169005b7ce64ec865a9f27b492e27a7b5b5834f88e916", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/name/first_name.ts": "8286a04dce5b0ac14c98bacc9d187e0f399a60af27a16eeec3143073623d5d57", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/name/last_name.ts": "f2a351462764eeb0025452e488a79fd88b3d6b70d069b8df4f43e7b5cad235b1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/name/mod.ts": "8e9d93c349d09d4ae89a6f4855107584e1734e4ed036fc068a1f1b866fee0f82", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/name/name.ts": "a2dbe9977eee053eaae1c005cffc15fd7cb50e3bfe09b4b6077901e21cecbc4e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/name/prefix.ts": "b6403f175ad5d0b3176a08e1ef2658801aab61770b6bc963e84ac1abf118124c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/name/title.ts": "1f3a839a9cb050ce27963de21c5c4ed53a00dda32b7bd9b3812618eb424dac0a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/phone_number/formats.ts": "c3e395e3da3b2382f8b45d861f28550c956650e2e0ab2b3a741c93b44ea246f7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/building_number.ts": "1eed25d6937aa63676fe04b9a2fda42df1dc2d2b04b28beda45f4dab2410413f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/city_prefix.ts": "57fac5b51b1789bfe4e22e9fce4960dc2598c2568b1249b367d99d7a25e836fb", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/city_suffix.ts": "e95cdaf4c78b0b6d565ba15f22b918f32a5eaf46f35a66ddacfd85e3fe32938e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/country.ts": "bfc374b6cc3d38f698d725b39d896baad5deaf3c55b62fe3d1261e30ef8fe009", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/default_country.ts": "9d5314da4c1c15dc78e76fea13fcdc0006cb141698eb8df0a387f3f001c71d0c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/mod.ts": "842b0cc9beabbe48a69469ed04d790f074ea219c39468658845aebe036b0beb1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/postcode.ts": "1c485d927a79f1e8da42ba204856cbe43b18ec8f8e4837226786ee0760b0866b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/secondary_address.ts": "71603c56bdf38c28c65f6f8683de72a27b004d7830aa74112fd0dd1554f79e0d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/state.ts": "cbe4cbdd265affc61940379627dff7c37c4651e97ef0e5876fc250143c5ef463", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/state_abbr.ts": "e7f988bba645d7c0c33879fcf2fb70caf96270ed3b9d1aa6f32f5272ded96569", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/street_suffix.ts": "a3b72be042cb6217f6e6cd751e92da9991febf6f41f13ff3e8a849609af93929", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/company/mod.ts": "59429c1943da64620329a348742a0602a8544ff38e33fd1671e7c25d3ad43708", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/company/name.ts": "dc549f989340145fc45a7cf7dcb5ef4db2cfff280596a939b2371e7753a87a4f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/company/suffix.ts": "447d7a4fc208bfd7990d79bd76e061936f61741c1a220f845c05b660134dffa0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/internet/domain_suffix.ts": "185b7f68c583bffa5073f31559a15f0d84eb1f86c7906bc80711f55ea1d10cdb", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/internet/free_email.ts": "195b11f8752cd912e64aa65b7ab3fcfc65ce367c7b22c7f2f2533376cad8cd30", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/mod.ts": "bad3ebb81dd51814f1be73fc02a5327b2150ce55d2918b68c47441415b0584c5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/name/first_name.ts": "0882f403695b3cf7be64ff0e11b4559493268b32738da6ab29abd05a6d7d51e5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/name/last_name.ts": "7949186159487ec8ad0e264d9dec0429742d4e79bcf2bb009870675fc7c19c22", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/name/mod.ts": "3378870a32caf78b531c2c8306620288fa66dee6951d41f4addfbfa16af68c13", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/name/prefix.ts": "1554f4a45b7a02267824e0b029409d50f8499b5b8ea5d7277df54b0012b3b52a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/name/suffix.ts": "8b3e90660ddb576758eb75bae6f5fdb397eb2846ed0d33d9e700751ff193999f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/phone_number/formats.ts": "0b11844a1f87104a7f417a8924a1bafbd49874c50f730e8c46a11367a8ae158c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/building_number.ts": "3bbcaa5893195c47843299cc44e250c78a4888177477f9f7639ce5a28dcda349", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/city_name.ts": "e5215356fa05f27fa30b32f747d1a601a76fa908fc348f0208f376a4975459d8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/city_prefix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/city_suffix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/country.ts": "93477cfcb293a5447a57cb9f9df140094fe82b1b276c056acd4e4a49a5e5c07f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/default_country.ts": "5b8752aae26297a5da2569eea2c0a522eb77db0136f24a6e7601fc1107fa35d5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/direction.ts": "aef691d4b7abea14a88f4ada6d580b5ab6802019c711de25f8d9d2d9993c378f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/mod.ts": "c1a739a867d92d7094ed5d156e39684566d87229756834e73102319d264bc4a5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/postcode.ts": "e6110e737191fec68c2c81991258e5472c3cbb8ce3fadf795ed3bfdd77210537", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/street_name.ts": "2cec743efe46fc6197f34112565edd40c0ee2c028822e1dbd0b51a1ef2fbc0f8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/street_prefix.ts": "3a6a0f53ac877ee6116826c89806a1160782ce9d3c85ef5f01c1e91bd00bd302", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/cell_phone/formats.ts": "8779340968afde06c4595d203ca4f5cd3272ae4623314761b3557bae2eb13a54", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/commerce/color.ts": "1b89da20600496f9c46aebf74c32eb4721a56052e0dca7d5fec37a83f0906117", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/commerce/department.ts": "76bcb04609da78d239e5ff7d53566106cb4580fb389ccfde9c7b1171791768d7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/commerce/mod.ts": "59695866784d3ac860e0a0004e80a073ba4b3e73abc902038f7d9323d89f5743", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/commerce/product_name.ts": "48085ab3bada6d1eb30aba6181439de14e5a41fb82655d689842a810b4c33545", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/date/mod.ts": "c61d7c18e3791003fcc1ee425d5e0e406878fdef9f10f3fa75fbe95f40579f8e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/date/month.ts": "87097c887314478b599fbbd6a56b60f4735f76b1b960b33cf3b0679c1c957338", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/date/weekday.ts": "7c86827a669e82162e3ae800342b4af4eb244e039637a6ba2a21c41b82be9882", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/internet/domain_suffix.ts": "91f6d1911aeec3a117a31a22d883f2aceafb0613aeaed8e005cdcd921b91995e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/internet/free_email.ts": "f20c88bd032545b46133b5a1a6328907b73c367f6700abcd0a81c4d91973fa5e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/mod.ts": "9698951d5a9980707790ec4c393625f1a7b12ab4a625fbec79bf074bc41f2d28", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/female_first_name.ts": "b790d1c9a9740e305f916c25551ccdb2cd2c55c47859e5e55b637a2fa614c6dd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/female_prefix.ts": "eac576f33f07aa85a3dcf22096ce23e3dd4702d031026c7b9515278d51793863", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/first_name.ts": "7b734421b82b0bfe40d09a0227e05988966974bb1bc03f8396c3791c68aeb7d4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/last_name.ts": "7b923a5242b23903a9e139f00d39091e65303e68fd5f682d4cd48ac0b5a39238", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/male_first_name.ts": "97b3215796f22de12400c2242938320117478acbacb18ea79a81c61b8d43292c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/male_prefix.ts": "f1824f1f3f4e805291ba76164abf831b985400e35ef93f497dbd9cae57f53382", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/mod.ts": "630bfd734fb266fc4223153941a51a568a5ece2154bee35ddf1317458a420e87", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/name.ts": "2f60a8f3243e61097aa2a09117e815f4912931c6459317529d779241968397d7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/prefix.ts": "13772bc8dd90dc5896d6f53f2f159723e9f4f7ac1ff66fa6e31e3148ca8c3c39", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/suffix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/phone_number/formats.ts": "8a72f882c3f7f251c0966ccc8d22edae39fa24f3f2e4edbee59702d7e2e9ea96", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/building_number.ts": "6551cfa7176a2d09bd69af62fa353c4d797db3682e16e8603f3e713957f965a4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/city.ts": "9a568ea88c3f7bfae95d5971e705e36425550df426bb8f0cc69961ec9ba7d72c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/county.ts": "c03f10174c369eb4e7bc75efa1e7ffc6f6ee1bff111c11dd0586de04286c0be3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/default_country.ts": "62481bb9d31db64bd1d4b7e6ec2df170083f8ac6af06f894303db2bed3ed0e18", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/mod.ts": "37d805da65d62a020c94b9f948fa7987f5afb2be1a56c2eaf9bc3a8b26ee87fc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/postcode.ts": "beff9c98268f8bf4bbf8d61aaa54493dd29fac0ba36b3bd1b3cfe97367ebfd8f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/secondary_address.ts": "932f59a1bf83ee954748cf457cf432f7306629bc4806f2c96a848cb5067c1d58", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/state.ts": "c03f10174c369eb4e7bc75efa1e7ffc6f6ee1bff111c11dd0586de04286c0be3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/state_abbr.ts": "d40add088db5c50f58b22b5f3fa5900073d1d0fc52faea84728de3bf04e5e2c8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/street_address.ts": "633253a806bf8bcfc1e081ff809bc0741aaf11712993f54031c260f89a84e9d6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/street_name.ts": "d5288a0679ae1f5b45f08ba70fe088c2369200ec1d3381351b26bfda46d2c172", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/street_suffix.ts": "5ec965cc9b93f3119f2151a0f6a17efd6fd57ce0e7666c1f66d09af05b761af5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/streets.ts": "18e3f5dfbc0c52da40fdbdcdef7af5b585ebbc549bda8e8710b332b67c4a259c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/cell_phone/formats.ts": "d816ef505dfe1f1af4d95f877fa6aab4f64f2444875a1286808aac9562007198", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/date/mod.ts": "c61d7c18e3791003fcc1ee425d5e0e406878fdef9f10f3fa75fbe95f40579f8e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/date/month.ts": "ce57c424ab3aa26bb92c60c4da2b2ab9495f6ac02b6cb47a40345d7bc5a25430", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/date/weekday.ts": "588ba3f45b33d0644d8bd147cc98a50be3b4301647e98653a8b46297567425e0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/internet/avatar_uri.ts": "94c1b5586fd894f351e64d1acfc2a0b671f34b13050c8c0e04daad962de29bdc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/internet/domain_suffix.ts": "fb902ce7f7a07b0d0720891ce7e1713c070914c28b8de3a784e11dc9799bf7f8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/internet/free_email.ts": "95deb3f400012a03c0fbfba6e796c4228d5b1f9af6b512b01af7fe4fb0e439b4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/internet/mod.ts": "50b82d473667609b0f1c992c825207cbd7aa61f4c3e22c22b127db95458ff61f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/mod.ts": "b671d8a9ffe186f2d2952f4022b10daeedb919b975dd04dbf8cb2e5d8090a374", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/name/female_first_name.ts": "ecf52a6780ba0120fda8975ce39d44185ec8d7e1d073fcedb24cb24fda67d21c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/name/last_name.ts": "cd9d6a84f4d9bfb6fbec73c762c26a129b6f6202360a03ceda2122c2257cd421", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/name/male_first_name.ts": "7b0841358f14e2aa796441966e0749d8acb3402c342acc4028f0caa9059965ed", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/name/mod.ts": "8e5f77c6d635779f8c2cb6929473108b675ea1c1ce248f7525aa5be8aaeb4bea", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/name/name.ts": "c2be18001712612e984ae579da8ab7d2223504cc31641b8112207fb91eeee1d7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/name/prefix.ts": "fa32158140540e0636486b0a0f337cb926dcc4cbf62f2798ec837dbcaa2205cf", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/name/suffix.ts": "ace46ede76572784701aac8b6fd45bbb73b12bd4a205ab4613d4b9aea3d3e281", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/phone_number/formats.ts": "d6e3d8d2048eb62b167fbbd767783ebcaddfc7ea5417926dd4db12773a098a0e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/building_number.ts": "9740db2c88dd22c886bf37bef7d3e0bdb81b801966b2b3f9ed75fb1e42a197ea", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/city.ts": "908b112fc91f60460a1b7bd190b9fa8a2c83fb26c1ee86b260ec685fe96de2cb", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/city_name.ts": "e00d5e450f73985d46305f9a6b87652d37d50c6c77e6d0ed6d06637fda8db9cd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/country.ts": "e3ed053118ae77d8b73c65dbe521b26221c4f51842b7f9e5d4d88b935e2c46c1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/default_country.ts": "54cd1ac16530683af2769afb30108ae0e8325ad49ff73b0938c03c0add77b822", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/mod.ts": "cb2f2355267791dc4d7f98fad3d42777778a199f8c32022ba13df714fd8a22ec", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/postcode.ts": "beff9c98268f8bf4bbf8d61aaa54493dd29fac0ba36b3bd1b3cfe97367ebfd8f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/secondary_address.ts": "8b3299105b4319e8ecf0366e912cbe1dcba8c88b31d2e4f68bed1cd3eee888ed", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/state.ts": "ec95b5bd318b36915321165a6b19f600b4bc3a90d772b26a071564fb2d128727", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/street_address.ts": "2672823ce92f5a174d475eab67a815edcffd3093621a01134b05e6ac50b35f0a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/street_name.ts": "4cfd8b424391ef4760b3db820dad1d15afff0e1b4a1663a11fa0302120442595", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/street_suffix.ts": "2e62eceaf5c5b0c1c0fff8d5cc83d6d0b5df91dcffb6f2de56dfba0d3a3b2048", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/street_title.ts": "6d6f4b9860467a6e793d1bdf1251a92b7d34bf108a5ba5fc21f9dd59d3c77b8d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/commerce/color.ts": "fbaa5c98aa3a22b1e3b1a28b0ddeb77c1042a37eec0e3b36569f6812d1389f24", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/commerce/department.ts": "fedf18b7c8f1e91b8b6cdb75f056dd1a3927d97140d80dcd0ff79423049e6d56", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/commerce/mod.ts": "59695866784d3ac860e0a0004e80a073ba4b3e73abc902038f7d9323d89f5743", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/commerce/product_name.ts": "c093378ef1229cd62cadbcde0cccb1760ae712eb5fb1d662ca9bbe04a047975d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/company/mod.ts": "bf5ff8a8bbd8137bdd6b0f0df25471a4e32dae61c906cd0d9c8a69c1c88e7a4d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/company/name.ts": "cbb3fe97d6429dbb9ac5e27233c1c2e39409370b04fe822c187a638751039ef4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/company/prefix.ts": "db7a2e875df3a41239a2b063dd6e6a7037ebbf1615a86d6fbb5458462cf6a96b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/company/suffix.ts": "f76738c067e8bac9dbb3598af3c37ed7845fd87c8397bd526f7702bfe46834ea", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/date/mod.ts": "c61d7c18e3791003fcc1ee425d5e0e406878fdef9f10f3fa75fbe95f40579f8e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/date/month.ts": "679d34edea89a0ba06206561d2f6ea104b5313d8b0fe6fd9d3f00e3c13e47924", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/date/weekday.ts": "682de381270d0ab44a73077676953484aff34d4667c5908c78bdc694293d7c42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/hacker/abbreviation.ts": "d07553ea763bfe6c9df17de818b6c88037e85e68903f3e1e33dc5be7281200a3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/hacker/adjective.ts": "b3cba43cbdcc63c2f02b8c69b2bbc9d7516241ebe42d157ad1d0c97c79712ca1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/hacker/ingverb.ts": "61d167f4434615dd3ac630551e5f424ed3af4caa145c769faa105963ce5805db", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/hacker/mod.ts": "8c47795f45bb64ab8014bc8596dfbcc83d894d1f08254501f3f78ffb14eb08de", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/hacker/noun.ts": "f2f8d8ad9e702d9772d126ed54b899c3b68ca2204ed8a0cee69dde8a3ca5bf3e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/hacker/phrase.ts": "860a9a286a49ed87ca855ffe1ca5575d84123e14745b7d4e2c999e865e4348ff", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/hacker/verb.ts": "af8f383444f363b04b5d9c0f4f62c10de8f4ff51e781ca8fbb0f0daded59c469", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/internet/domain_suffix.ts": "2562f5ad58936ac5a5b2a194e7f6f54367933a25937ab7349fc3699c358e5625", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/internet/free_email.ts": "583a64356614fc3198b2e0d359230e97dccbd35863b8f27834db15200f3513db", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/mod.ts": "701254158dd8b63ddef92f241409576096ad377b9649cc0f2899f97f26726536", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/female_first_name.ts": "516e2d58e01fbebd621343b46e3e2a8d481357165ffc77b3f11b6db37644e1e3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/female_last_name.ts": "45c3ea122b27155b51f1e09b4a9df16071f38da7d7a54d08b92487c14966fdf5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/female_middle_name.ts": "62faa5d7842a126fde96d39ab2de5b46d27bcb3b2336ced330487deda465ca0b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/male_first_name.ts": "2fd36a3950819c456c952d914d6acd534e766c87a3c9ae879e0830a7288b029d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/male_last_name.ts": "034fc790ef2cfc4b20529768af9ca4d995d0a68acffdd927db1815674ef3afe7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/male_middle_name.ts": "1c3f7585024429de66b0d9dc1cb0a8367f8b1c01e7c50b37166a3760f24ece68", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/mod.ts": "2de802c0b74085d4c74802097b6f94761c9fc42f8665f39a3e9484b44c8e442d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/name.ts": "4d96a6c543433717a55b7aa972faa961496e94aedd101a2c4934884de088390e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/prefix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/suffix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/phone_number/formats.ts": "e8383042dfe7d4a004dab8c3e3b6397ae6599f643638ff36386c163590c497f2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/building_number.ts": "9e5f7e3684562723796ec56969b91535559469a7f463c54c1564b1c6e0905213", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/city_name.ts": "74984e6a7292f43e3a33943de478449e04f8082899566c1805a28c6b3d5ba922", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/city_prefix.ts": "ec5c9962102a00d8bad931007a0dedcfcf52d683c910bad0910b98a85f8d455d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/city_suffix.ts": "7a9116f27cb3ff593b205d75e12f6f0bef2dc68a4b705c3d30801f72edc307af", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/country.ts": "4b0c8338a4ef3292306269f1839b361ddc791846b60a1a43cec9660e38bb7f89", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/default_country.ts": "e2b6e19533ee4779c578e9ffa923ac78195aac27d455904f440c678dbd4014ae", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/mod.ts": "ef61b15602ecf2ad4dffa6fbb18fd1e63c50304c9ad978bbdb5f9ad47002c071", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/postcode.ts": "355cb303eeef73ce16c15c1add661e7f1796153f5fd8df8e0035b8463fad50d2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/secondary_address.ts": "9451a74fea0bc0ca76a4d9aead9ecf01a6da7eaaa072cd61496d441a1337f9c1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/state.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/state_abbr.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/street.ts": "4643e932e7a18320cbe7d82c84de68f8c76057a92a40fe379fe0cdab6efa9ad8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/street_name.ts": "50588dea6b3c50e02f2c695e1e209e8bd2671c0b76e34d0c7bad0471a8915e25", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/time_zone.ts": "c3d5b9356a4c6b65f269458268c43b426cedc8c40cb1f727bf57331a552df232", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/company/adjective.ts": "f7ad0bdfb675f6a40701785eae81713b0462b90d8dcc11ac10063a39fded223c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/company/bs_noun.ts": "ff5529d9504f54b631907c9b05125c6b20972b145b6ac7eb9c7626f58bdd23e8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/company/bs_verb.ts": "133dda7b4d222bd5ef8486e0d9168f6f602ea9898499b4945b19979bc62d569f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/company/descriptor.ts": "448c8a419f28805ccd751819309269d1b815ef9dfb94d98c691e7660b1086516", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/company/mod.ts": "cb7601de75d96215f7cc0900cb17392fd9a5e03bfc0eb410af3f27738711a20a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/company/name.ts": "f753d7174b6ab13f00a2579b3f1650ea532978ff44075c88fd82d2d810af00e4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/company/noun.ts": "6fe6f633bfbb61b51c0782a50fc76a8a6653d8e342d788bf0021f4375b5a5c75", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/company/suffix.ts": "a7c4bd0c95ad6e619bd1064908cc863b5c71ae02823dd3060f1ee94007399de8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/internet/domain_suffix.ts": "048d2ff0f2897e9df0a0f9cdbc6b71f3c25fa069983529555d2364c1456ed7af", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/internet/free_email.ts": "6124c470d1f2a0646733b83f4e198964ef954a21daf9792fa691085e0e4c8e98", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/mod.ts": "8aa4a87e13480ceaf9d0cf5ebd15750415583a2b141591062da7705701707d8f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/female_first_name.ts": "01950bc9eecc1336c185b7e1fd1ff86fd1beee933815096250d44dcaf6856b4e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/female_last_name.ts": "6186b616042ce5d6985e8037f33d8a5f8ca2976a82b7bcd75917de6b5d869d2a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/male_first_name.ts": "36aece266aab11ab975aa15697e45c80f32b9081bdc02e7930b24f401ceb12e9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/male_last_name.ts": "bc8c7a06da54b2ef036e7374d1dc41d3adcc8336feb632d364f5fa4fb0c3e501", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/mod.ts": "8ed4852eff4a25831164e56ac90921b91174637ac90a14ec512a49b5a6177855", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/name.ts": "efb4e1047ff5cd5aba717c4182b8ea9b1ff971563122b46515e9af0bdfb42366", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/prefix.ts": "f6e09fdf247271accca04c70cd10efa1dee012488cad79c34cad8a33cc497009", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/suffix.ts": "f16a3ea91c495933d6af8359597f076027cf87260e34944d051c94e586c33ad9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/title.ts": "1f3a839a9cb050ce27963de21c5c4ed53a00dda32b7bd9b3812618eb424dac0a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/phone_number/formats.ts": "e4034ede83c4676354eed853988bf7b08b4df06dfca07527f893a7f9084374f5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/building_number.ts": "a565355a29f77429d5a433464cd3659607530cb86a2a32c33bba48b74c30bd48", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/city.ts": "dd5b5dc3ee5ee51222fb6f82614618d2b12d1c8e2f3a7def9911828bb402a0ed", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/city_prefix.ts": "50a82a91c276454916b93ab1f4e045530656284c61ee205a5c80e76cdc6965a7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/city_suffix.ts": "89ca578721ea891b674ea0b5b72e9f991cd607aa77738b367303c77687c53aa6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/common_street_suffix.ts": "d391be45dc7d7682e057fdd60626595c9dcebd0da1da3fb7178790fe21ff6d3f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/country.ts": "2b482744c43c13f3422ed6ee2cf2771e114d58ce65643ca51664511a14370e64", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/default_country.ts": "be532e0b7d0f61f0302192a1ce9b4363b5c48d0d1beaf7d0fd6b7e91cf51d38c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/mod.ts": "78579eeffbe8714ab7946f58469d6d5cb28b99752ebddc1a6fbd4be8f275f45c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/postcode.ts": "061e0ec295a754bec2497bc3fbe0cf0aa6a7e1a1ad3b6b846bbbdf81191b7097", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/secondary_address.ts": "489c78738083fc2e64afedc6fd9664382daa51b141ee1d1b6aae833cd6e35ec0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/state.ts": "4ff2891ac521a2dcaa548371bf1035ba5ba733a8d01943364117a81e5cc2aa85", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/street_name.ts": "30c7603d2e0f0822541bd85dedb1b1d891374cbead328d898c4c9d55e6697d5b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/street_prefix.ts": "49f4ba609f0a9bfba15576b815a2c25feb4fb39be994fec087effeef1206cc81", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/street_root.ts": "afa0c1631bdedf1cf22278f436289ed7160c93fff4e3711fca15c4896d352edd", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/street_suffix.ts": "35683871afca4c9c97554016aa22e4c9efa02afec48f224ac338c2b95b20f855", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/cell_phone/common_cell_prefix.ts": "2acdfb022b0a8c020ccf9b5e788b25bb363205540a806fa62f58f984e7183dec", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/cell_phone/formats.ts": "d0efbeefb3ff9d156940e2701158e23ad3558600c8b44df1d4c73462090e6e64", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/cell_phone/mod.ts": "fe2db6af11a5bc0dee56df1c8d4e5458dc47b70aa13f010311aea78284fdd0b5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/commerce/color.ts": "1338971b5a3650df6255f39796fc3915d940dca86d2f86e006a3bd5e466e4b27", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/commerce/department.ts": "5e04077cb4e4daa59d2ea78354c3650339fb94dd2cf5c357a5eea0f853eaee7d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/commerce/mod.ts": "59695866784d3ac860e0a0004e80a073ba4b3e73abc902038f7d9323d89f5743", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/commerce/product_name.ts": "39e5bb46196e9bdaffd02e991411bbdfbc1fdd21bf2d84d95849e692dd52513c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/company/mod.ts": "59429c1943da64620329a348742a0602a8544ff38e33fd1671e7c25d3ad43708", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/company/name.ts": "0e7b7b8ee82b70a81b1cbe94428243665314eb5f22fc5d60bf023019c14bc544", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/company/suffix.ts": "b5d11ef7241db6ec57c95a3fd1cbeeb8b0edab87eb5f499c42bfdee4b3be92c1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/date/mod.ts": "c61d7c18e3791003fcc1ee425d5e0e406878fdef9f10f3fa75fbe95f40579f8e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/date/month.ts": "55bfc7262f2c258ea440887322c9d9ee0830c67ae872752d2aa648a6e254f67e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/date/weekday.ts": "7f78f4005bb77bc330d3fdfb2b4ce6b41137bd9b53593d2c160b0eaf006c9e85", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/internet/domain_suffix.ts": "de4434cb4736bb79a510268c84ecb1cd62c65621861ca86827c9d09f081e3db4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/mod.ts": "0e31b6f65d7b96ec1c93ca6c699227cb2102007d918964629100c656cbe5422d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/name/first_name_men.ts": "8fcf552d3a7e390b80083526e99b8f0c55ea7666d80d643ecc8deade1289abb2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/name/first_name_women.ts": "66e013a6ab9f3eb94733a8a36319f625bebd069d53dc3e791c899e856f867099", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/name/last_name.ts": "46c1ebe5180c9b99e8fc0e719a30d56dac3a9b7acfec7b5877491a1adaffd786", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/name/mod.ts": "5e56a96bcf08ba1d099010d6c3a805e9b74da1dbf8ff4f00aaa1819bc65c94a5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/name/name.ts": "e12324bba47aa9e54031ceef8d9f7c61b5ff1ca5633d6a64000e38638a922059", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/name/prefix.ts": "e29f47d74c777a3f97a5215b27ca95cd81f9e0b2db1c7a9ac5df71da11925f65", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/name/title.ts": "1f3a839a9cb050ce27963de21c5c4ed53a00dda32b7bd9b3812618eb424dac0a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/phone_number/formats.ts": "3aba5e31af7d8130065ebfcc374db5d36e1e063f311227fef6b4455c8fea5934", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/team/mod.ts": "59429c1943da64620329a348742a0602a8544ff38e33fd1671e7c25d3ad43708", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/team/name.ts": "df1ff1c98aed29b1cb1410a02217afc53154be501b25862533e2416e362ab3c1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/team/suffix.ts": "05c253cbf8d9e22c4bcc19ec2ebaa80dfc430bf086400201078754a1b141d0ae", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/building_number.ts": "58e911a9258d31edc3bc09d5ae54aa3ce5d3e8eaf7c6351aa6b38c3101568027", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/city.ts": "c7efe9adf21d56d517d10c8bcdbdcec09efeae784ec6ec73965b017765a50c2f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/country.ts": "1184742614784b98ba3a12a308d53528429099214c8bba5c1a2a4a88837f0937", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/default_country.ts": "88f1d9bf4e9c27c103da2d60c971b58e024d93a8424c9d491b0ed869eab68963", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/mod.ts": "7aacaf0b82735b7615a6afc2eab80a9cd0872f522a3ae8b2e9b62bcba3fd240b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/postcode.ts": "061e0ec295a754bec2497bc3fbe0cf0aa6a7e1a1ad3b6b846bbbdf81191b7097", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/street_name.ts": "1af85fa4d8135613381aa2f9e88e672dc72bce736146539d9a96b3de25549216", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/street_root.ts": "75ce5a7ebd70ee3b1a5cb0a434cada57c92807fd5f79ad8e44c9df8bd62c3090", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/cell_phone/formats.ts": "91a2a8a70f847a62240ff1734a892b125d4fe8887c4b3ebc1e900ed1387188ba", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/internet/domain_suffix.ts": "5f9696f1e44addf28b1bd993439f21f7f1c7bf40f41ba16297770f2ff8c7db48", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/mod.ts": "35df8d1d8b11ece4007f80d6e86a10fedb749e65f12041998a0897bfd56781cf", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/name/first_name.ts": "0c8e91b3253bd3f893a367a1d4686f08b7447299ad375b788c2e95ed32ef4edf", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/name/last_name.ts": "52c786330c2ff289b3b330ac9262fac9337d6d5fb9707cfe087dbbb0cf03dc37", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/name/mod.ts": "de5c8e623984da1e77f4ebe46b755b8431cad60a916b17d2bcfb5e1710d95f6c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/name/name.ts": "a2dbe9977eee053eaae1c005cffc15fd7cb50e3bfe09b4b6077901e21cecbc4e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/name/prefix.ts": "af399b01bc128c97dc9948a20615e3ac6a946319ba8d63a1f65151ee2a8c81a8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/phone_number/area_code.ts": "4db0d10ab675933f7d97afb57eddf056926c85dc7f708a2f2d1948fb3c9e673c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/phone_number/formats.ts": "fe788241cbb1d7a8af39a57d129789c2a915cc4f014cfe9d9a629901d95b6f5d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/phone_number/mod.ts": "01f8bfff25939f155cbef1fbb61fab54743fc66087f7edbcf3c29257bcea0c28", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/building_number.ts": "9e5f7e3684562723796ec56969b91535559469a7f463c54c1564b1c6e0905213", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/city.ts": "0f54e27ea6206072f92ac0e759dfe6bca935bff2bdab4a6e75d92e4e7e3e35a3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/city_name.ts": "f4a8a201cf727a01207348637705c4778d08b94a71b9d54ef27702ec1d232983", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/city_prefix.ts": "dbbf30c43cc92285c0e37138006a92aeb089411294092c087c1c0a16df0726cf", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/city_suffix.ts": "b9ce9496367022bd93523579fb38939968fcf0c09748d46bea0412f60b07afae", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/country.ts": "92e75833a176e37dc9161f895a24c6854adfd20c3db115e9dbc33eff575a6ef2", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/default_country.ts": "5fa95e00dee7e33804bad560a9ca4a3be3818d460a09367acdac24c230e74f07", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/mod.ts": "caf2489e1982330f15e006daff83ed01c9eacd72473596bd781a4cdd976967f5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/postcode.ts": "061e0ec295a754bec2497bc3fbe0cf0aa6a7e1a1ad3b6b846bbbdf81191b7097", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/secondary_address.ts": "8b3299105b4319e8ecf0366e912cbe1dcba8c88b31d2e4f68bed1cd3eee888ed", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/state.ts": "3b961f67b84ace75a5459b62c550fd531b70bbc12106a2c1413ea50a861ff3f5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/street_address.ts": "2672823ce92f5a174d475eab67a815edcffd3093621a01134b05e6ac50b35f0a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/street_name.ts": "3521c3a589be35a2cf9d3a74ddbba13bc81006c18c2340110518448cf89af27b", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/street_prefix.ts": "ca534ddf0a78c87521762b83a5e21d8972c7344120b0f612f3be2c1e580ed26c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/street_suffix.ts": "6c4ca71a185c018b82e45dba9be9a99862b5fb83356f642ac1c429edc0414cbf", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/street_title.ts": "ace30d92083d492422f2d7d262e2a807412d7a7c3d0767a74beb085b1b2733e6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/company/mod.ts": "bf5ff8a8bbd8137bdd6b0f0df25471a4e32dae61c906cd0d9c8a69c1c88e7a4d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/company/name.ts": "cbb3fe97d6429dbb9ac5e27233c1c2e39409370b04fe822c187a638751039ef4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/company/prefix.ts": "d5e81ab31df2ff1403693c70910b180a336beba598cb95b70464d26028e5a0a8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/company/suffix.ts": "fb6cf41df52b8e1a8a3b1792a5cea1033d88558150c5bab2c06ce0aca1a26d0e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/internet/domain_suffix.ts": "5cd842bc5b581edb1818f0bdadc71f1f1bd0ad7af11a5f6cbf4c5e46b2b4c5af", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/internet/free_email.ts": "44451b0c555e8bc58502d9c7f40caebbe670247a6a2ca78c3d23ae8fb31db3f1", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/mod.ts": "9a63b16e6f69e12c95867465a533036430499119017d98e516a5977f6025d4ee", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/female_first_name.ts": "a9dc7b5eb1f66268ff69e8505a65140acd81e0bd29d20b42ddbded8757925364", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/female_last_name.ts": "31e9edd7f83a12c0bf59b4cdf6b4413d60601324a7a540b01e3b17f56ce3279d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/female_middle_name.ts": "eaece469a2d4cfd2a3f1da81df405f35bf603d0b6b520f00ccade6d508a97ee8", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/male_first_name.ts": "5d29e510471418a07d0774999ad769b1d646e47178021d3d277fa0109b6691d5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/male_last_name.ts": "5c5a5f913db0ee3a5eaeb1684aa30207b9d43233fbb01b1d831ab6b43237c4ad", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/male_middle_name.ts": "3f66b1c595616838bb53042a15c330e137d9a0f1e176d9b7c90ad80f15f41a23", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/mod.ts": "fa4d3a186f78571f0fc5f6d847f71aca2759140ab9b88ae0dade0c1554a45b1f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/name.ts": "4d96a6c543433717a55b7aa972faa961496e94aedd101a2c4934884de088390e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/prefix.ts": "0ee13a178869f393c0f1372e5dff18039f156ee7ab1c367c5e0c6c56f5e98fda", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/suffix.ts": "8bedd6b7086c54bc6d4b5ec1c7eb0daef5a69265cd918542a068b4c1ba83430c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/title.ts": "45af4758e2b320a5bb16da081ae06f5870d70cef66bc19a0f6cdb93d057b2d13", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/phone_number/formats.ts": "1f1e8fc6d80ac7031bd413815683cdcae00aa56d4d8adace31240a71596fead0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/address/city.ts": "43347ec0a8d9e9971b50f2aa5edd115410176e1a4ed774a98631eee4edee9259", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/address/city_root.ts": "3f4320c2efdc2a61168fb378d235aff299bb12370194fb9b20ac71cbbf9459a7", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/address/county.ts": "b843fdb2dbf59763464bf26f1eae3e99ceb36107804e723889ee648078fc000a", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/address/default_country.ts": "dfcd489b510422e2cd5b83d07829fc8b7b0e5162766ae4bd02911f0838f248f5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/address/mod.ts": "f16d82590a456b6c0765d790419de2dc62a7ecbc8434ce34560cf4df5f28fc4c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/cell_phone/formats.ts": "fba4d892d90259623cc89078fc5e81894d648ad05b14ab99aa92b285d1b9649c", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/company/mod.ts": "979e0af3d98c4e99a1c59e2c7b37d31c7a014158a4e08d612816a038125dbc26", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/company/name.ts": "f17578218e778678d315b4adaee62944a569485437191ff7812b6c37517b0be5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/company/prefix.ts": "43e7da95b8a9b022b938a97e888cacf86f028d3316308978df7b890ea5fd49e0", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/internet/domain_suffix.ts": "d725dc1926ee6e37408cd408a5b0a8c9d9b8794f2ad6ce2788c1d9e9430dd923", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/lorem/words.ts": "600b7e8d47aa12f92b794a8e275127a5172f12277e598e38e2543ba71aeda5f6", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/mod.ts": "fac0143a103fdc1a42ca47e39b14739fbe94d1fa421739670c5bf80636b8e690", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/name/first_name.ts": "5939cedfdddd5c586c4816f10f06f1318fd02bc20aaf93a9a390d332d3c3a968", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/name/last_name.ts": "b3e820d6a6ddd0f655b5e37fb536623d22b778a8fb820068cf82959ed693cea9", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/name/mod.ts": "a85442cb08f13a297e6328a96eb1c359099d86cd26e7b88eeabfa08ad73a8f63", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/name/name.ts": "89954c06839fd3673be4b3d834258dbf312cfb0085ee55be3644810b75153302", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/phone_number/formats.ts": "2726375ad43898078e6b5f524246239f65f3ad7ae74a12b6c665d4bdc803bc94", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/building_number.ts": "924c2cf0d1cf42d30cec9f2d635cdd604ba61f42bc15dcbfc5dca7be08741e8d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/city.ts": "dd5b5dc3ee5ee51222fb6f82614618d2b12d1c8e2f3a7def9911828bb402a0ed", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/city_prefix.ts": "5d1cf862ca2f01d4bbb247b0692930df86ed99b6e28ed6c1a6419490b405f531", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/city_suffix.ts": "a4ea6232c71908de45cbd14d22eabce1cdba7fbb91f8470bf176855368743eeb", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/default_country.ts": "adcf726afb31d30ed54af441c8507e64696a3cde0ee2f7909a46bbbc570ae489", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/mod.ts": "9e696a183c3fad56f78f0bc1403ab0410d233ff33d42f8924f120535f7174d68", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/postcode.ts": "beff9c98268f8bf4bbf8d61aaa54493dd29fac0ba36b3bd1b3cfe97367ebfd8f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/state.ts": "538b6e75e221b3a176ba6b8557de2576ec7924d5da24e74f14eaba6a04b9b988", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/state_abbr.ts": "fdca5bd970345e161ec8791fce39c4ff6ce431420dea5e10d65bbab01e3ab16d", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/street_address.ts": "beb98589deaa88c8e1e3da3d32568ca448c59c787ca510910e4d8a79c9c20d46", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/street_name.ts": "0d174505bd175a7f2515446eb998534cd4eec70fb50b5377d4716f22c86982a4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/street_suffix.ts": "0e65345effd383e1ec0b8746e2cde7e6b6a325fdf19f7f97e571259e2f29bc6f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/mod.ts": "659a2ee89f60c71226fd5db4412fec9bd686e7eab34210407707474b436f6961", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/name/first_name.ts": "3ea8dee19f4a9407f7c09f86e9786908c59c2f0cd1e4fbe56aee2e324a284678", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/name/last_name.ts": "f2645c75c074703ef88daa6c0ffb8e4ad66d7bbfa27d5775e282d9f26a99789e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/name/mod.ts": "a85442cb08f13a297e6328a96eb1c359099d86cd26e7b88eeabfa08ad73a8f63", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/name/name.ts": "a75a7bf6421a42b756aae4540eec468d9fca354bbf71a56d11c55c61731fec19", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/phone_number/formats.ts": "1756a10cb9283c8062ae50a863a3ea90c97385527ed88a875dee83ff50edbd39", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/building_number.ts": "3bbcaa5893195c47843299cc44e250c78a4888177477f9f7639ce5a28dcda349", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/city.ts": "dd5b5dc3ee5ee51222fb6f82614618d2b12d1c8e2f3a7def9911828bb402a0ed", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/city_prefix.ts": "19b4aad53d814263edc7c4521c18407cdb8dda58b0576811027f926860c46596", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/city_suffix.ts": "5f657d6a105bec9fd9bb38454f53fcd9337f397cd50ce32e6cda03d45cf4e534", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/default_country.ts": "e37dbeeb310c60119c130c0d33cb1fa6de96491c06a5bb6e8cf954c9a4038302", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/mod.ts": "9e696a183c3fad56f78f0bc1403ab0410d233ff33d42f8924f120535f7174d68", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/postcode.ts": "beff9c98268f8bf4bbf8d61aaa54493dd29fac0ba36b3bd1b3cfe97367ebfd8f", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/state.ts": "a551bb1f2fb7970ead2711a3f79464ab1f396d1a40d8ec21996728a11dd76e56", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/state_abbr.ts": "1cd83d2368d5538fda7fb6aa228fc73c05103015b9cd6e089cbe6c49cd5e3534", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/street_address.ts": "b5212e303e79f373b1ad7618ad7d693bee75d955291d474beeb68f82665cb0cc", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/street_name.ts": "0d174505bd175a7f2515446eb998534cd4eec70fb50b5377d4716f22c86982a4", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/street_suffix.ts": "8da9de29cb56f5be1dbc6844a8b686c78ea7a4e6c4dce323b8237523e7fd9d31", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/mod.ts": "537dcdc99f767717cd31c76dfe4e3ef094acf798371423fb0a5bae129b5b93c5", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/name/first_name.ts": "52691b2d0a5d9bb8101ea864c3203eb9f354857205cb771554faefd3483d0190", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/name/last_name.ts": "8d9c6ee5c5252df0663a75726bc01bbc6316b13c49202b31f639e23b7a23d560", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/name/mod.ts": "a85442cb08f13a297e6328a96eb1c359099d86cd26e7b88eeabfa08ad73a8f63", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/name/name.ts": "a75a7bf6421a42b756aae4540eec468d9fca354bbf71a56d11c55c61731fec19", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/phone_number/formats.ts": "0132764caaf52c0feaa4a4e590d7ba9d21501e85907e455162a2b837d7c5758e", + "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", + "https://deno.land/x/deno_faker@v1.0.3/lib/lorem.ts": "d97ce1f03d83a4d16c1fbf7ebb77a469a2a4f8ea18b7d9b2cf79a53b95cedabb", + "https://deno.land/x/deno_faker@v1.0.3/lib/mod.ts": "d4b1ab32d72a5713a3b4d68fdde485c1abd565835089825911b905dc3e01baad", + "https://deno.land/x/deno_faker@v1.0.3/lib/name.ts": "7f3954fda6231e422fcd6206ef457cad05aa4ed1cc53d57e302d6e556b4cf176", + "https://deno.land/x/deno_faker@v1.0.3/lib/phone_number.ts": "1a29bd04e63f875c61c2f6e33ebaf6a16b28a2b54b8eeac7202ec7990a1c2e83", + "https://deno.land/x/deno_faker@v1.0.3/lib/random.ts": "8957e8cbc22f506497f5246bf11ca2730b7f0b6393f400e7c3165665f2a2953a", + "https://deno.land/x/deno_faker@v1.0.3/lib/schemas.ts": "6c9e2030ce2d3b5f3a33753e17e0a991973df3cbc58c13b289a3f189da9df568", + "https://deno.land/x/deno_faker@v1.0.3/lib/system.ts": "4d000b700466103eb7e3da8cb50a9a20aefc4679ca711733e48fb2b53fd2c4be", + "https://deno.land/x/deno_faker@v1.0.3/lib/unique.ts": "8f5daf459c8a9c28c235d8250559a955208f508d24cb988c454a680d91a3f452", + "https://deno.land/x/deno_faker@v1.0.3/lib/vehicle.ts": "3a453912500162bba212c44ee08ff67ceb048fe1e042b90a8b338bdbe5480319", + "https://deno.land/x/deno_faker@v1.0.3/mod.ts": "f5a91e8796668d4c9354d4a149bd34cc027b79950e6e17713eac9f41980374c9", + "https://deno.land/x/deno_faker@v1.0.3/vendor/mersenne.ts": "8a61935ca2f91b925d9e8cf262eaf8b3277d091f791c8b4f93f995359db1a9a7", + "https://deno.land/x/deno_faker@v1.0.3/vendor/unique.ts": "b8bb044d4caf0bb1a868bd26839bb5822e2013e8385f119db7029631e5a53e0b", + "https://deno.land/x/deno_faker@v1.0.3/vendor/user-agent.ts": "b95c7bda4ad37ba25b60c4431227361eabba70db14456abb69227d6536ea93fb", + "https://esm.sh/@aws-sdk/client-s3@3.592.0": "6410aa6af828586a1fea0ad023479483b5844a15054bd62a77f8c1e1f467e54a", + "https://esm.sh/@aws-sdk/s3-request-presigner@3.592.0": "41615b3a8cdd935bae991dbff554dd0f8765cf591fef33072a5338e6a7576814", + "https://esm.sh/ajv-formats@2.1.1": "575b3830618970ddc3aba96310bf4df7358bb37fcea101f58b36897ff3ac2ea7", + "https://esm.sh/ajv@8.12.0": "965ce16eff0cefef99e67478c5ee760928bd8931d40c3b958325cdd6ab6149f2", + "https://esm.sh/nanoevents@9.0.0": "29ccd1d8839f2d7dd8d28ad9ec5d18723a7dbf966bf29179063442b1e88b3a4f", + "https://esm.sh/v135/@aws-crypto/crc32@3.0.0/denonext/crc32.mjs": "f9a98501e686244b2f327c7791df0f1f7830b8769dd2815b9de7e2aaca1f657f", + "https://esm.sh/v135/@aws-crypto/crc32c@3.0.0/denonext/crc32c.mjs": "5acc8d5648bf7266477caacf836109147e2815cb13ba198270b783e77380cd19", + "https://esm.sh/v135/@aws-crypto/ie11-detection@3.0.0/denonext/ie11-detection.mjs": "ae42f42b38941df739396432e9da809820c13a9f780bccb635326324bf51464e", + "https://esm.sh/v135/@aws-crypto/sha1-browser@3.0.0/denonext/sha1-browser.mjs": "43955bdd3f58d652c7c2adb381cd4cb846bab85b6937643f7d609bbea69e1c45", + "https://esm.sh/v135/@aws-crypto/sha256-browser@3.0.0/denonext/sha256-browser.mjs": "51fdfd6c58198e383a0581d659585f74855d20cbbef738e1cf9e98107d68a595", + "https://esm.sh/v135/@aws-crypto/sha256-js@3.0.0/denonext/sha256-js.mjs": "219bd945829420cf17c499fec637e6e3aa058c567877d8946b7e144eb3c0789f", + "https://esm.sh/v135/@aws-crypto/supports-web-crypto@3.0.0/denonext/supports-web-crypto.mjs": "ad038b921693e2961c79ad704940f31965cbcd1a985717da97875ec2fc5fabe3", + "https://esm.sh/v135/@aws-crypto/util@3.0.0/denonext/util.mjs": "0fbd60f4487011dd33dad62793bfa4617f07791d54e0a21e3ac7f9ceb99af7db", + "https://esm.sh/v135/@aws-sdk/client-s3@3.592.0/denonext/client-s3.mjs": "c3119115f1ef81a8421dae0709b34caa05ca440d53115d63897c624560a62fa0", + "https://esm.sh/v135/@aws-sdk/core@3.592.0/denonext/client.js": "f42f609255d95e489b042732d05429ad8395687c09fd2468074d703c646ef98c", + "https://esm.sh/v135/@aws-sdk/core@3.592.0/denonext/core.mjs": "ec83f9b606a4296b133afe72a06582ed83f2cf87f9394282429ed647a1fc17e1", + "https://esm.sh/v135/@aws-sdk/core@3.592.0/denonext/httpAuthSchemes.js": "045dd3cbafa9eec442fab98768b7ecc4cb945758c5899632ba50ee6c898d2823", + "https://esm.sh/v135/@aws-sdk/core@3.592.0/denonext/protocols.js": "797cda086c518b4f2d26b4e4b1bcfb02ce9927daf7e0f3161bb7854d0ea85b82", + "https://esm.sh/v135/@aws-sdk/middleware-expect-continue@3.577.0/denonext/middleware-expect-continue.mjs": "739b3e66661789760444e2dca83e6ef0662fffa005cbbe74f2e57f73a12405a3", + "https://esm.sh/v135/@aws-sdk/middleware-flexible-checksums@3.587.0/denonext/middleware-flexible-checksums.mjs": "77172bdbc7f4fcf8f5c6ffbc98e1f234e19a47241fcb3cf24ad929ab05caff3e", + "https://esm.sh/v135/@aws-sdk/middleware-host-header@3.577.0/denonext/middleware-host-header.mjs": "5f94dd2219c16e33e34f5364f5e38bdcf18212f03850e89d6f146b2af5895e56", + "https://esm.sh/v135/@aws-sdk/middleware-location-constraint@3.577.0/denonext/middleware-location-constraint.mjs": "c58d665287449ccff02a1899967fb79092ce9c55c01ca0147d94a006f1c5bcbb", + "https://esm.sh/v135/@aws-sdk/middleware-logger@3.577.0/denonext/middleware-logger.mjs": "970c0db148514a5c5248fd508a74ff9c194c4f8f1e5381e04df5d35c14a4f419", + "https://esm.sh/v135/@aws-sdk/middleware-recursion-detection@3.577.0/denonext/middleware-recursion-detection.mjs": "d732f8ab11ecf3652738f52454e10ca70a09ea1000947e283ae540387ccf19b2", + "https://esm.sh/v135/@aws-sdk/middleware-sdk-s3@3.587.0/denonext/middleware-sdk-s3.mjs": "bf3fd7a03012323e250710b352888238726f8cd61516a0f8fa53de43d0d61c52", + "https://esm.sh/v135/@aws-sdk/middleware-signing@3.587.0/denonext/middleware-signing.mjs": "7a0e1951c633a473cde14c5507318f5517641b30fa45a027513c3d44438e1257", + "https://esm.sh/v135/@aws-sdk/middleware-ssec@3.577.0/denonext/middleware-ssec.mjs": "1358d92c65585df3c042213c9a1e6fbf1bebfe4c2b215759dcd3c413a032b66a", + "https://esm.sh/v135/@aws-sdk/middleware-user-agent@3.587.0/denonext/middleware-user-agent.mjs": "656f101930640c87ccf38fbdcd1c3a85db7eeaab3160ab98174ea1fc8f823b3a", + "https://esm.sh/v135/@aws-sdk/region-config-resolver@3.587.0/denonext/region-config-resolver.mjs": "5d7e4eea57e2629eb30c7822f3dcfaff63fec155595301141cf4f27620bc5355", + "https://esm.sh/v135/@aws-sdk/s3-request-presigner@3.592.0/denonext/s3-request-presigner.mjs": "9711037af8dde7121d66a607c287ac08c18f4f9d7fe6e98af95b748bf7b32b15", + "https://esm.sh/v135/@aws-sdk/signature-v4-multi-region@3.587.0/denonext/signature-v4-multi-region.mjs": "97f7166508a9d41ae660774c6224dd0a96405313cbaab6945427f69e632e7061", + "https://esm.sh/v135/@aws-sdk/util-arn-parser@3.568.0/denonext/util-arn-parser.mjs": "e80995eaf790640e591f09d89d9099b022efa6d7954d6e23a1a7f5691b9b5110", + "https://esm.sh/v135/@aws-sdk/util-endpoints@3.587.0/denonext/util-endpoints.mjs": "6f6fe7b8cc359989529f23a3d284a8632bd1f01d475abaec2b3c24ddaa9284d0", + "https://esm.sh/v135/@aws-sdk/util-format-url@3.577.0/denonext/util-format-url.mjs": "dc97c48b31bb953af37a9b55a28f36af141397176af4160dd7caa865c1445efe", + "https://esm.sh/v135/@aws-sdk/util-locate-window@3.310.0/denonext/util-locate-window.mjs": "894879f284b5a41fc830b8fe40e2a7038b124d5f5b7a3fde841c3314366c56c5", + "https://esm.sh/v135/@aws-sdk/util-user-agent-browser@3.577.0/denonext/util-user-agent-browser.mjs": "d6cea3d3cc34e779a455d42fff12a68dc81f08fd0d2a8d4a7aac895785445ce0", + "https://esm.sh/v135/@aws-sdk/util-utf8-browser@3.259.0/denonext/util-utf8-browser.mjs": "79fc8ce5cd61204fe274363d637902a5d49ea40688e8d40cbd5b6ecf56f782b7", + "https://esm.sh/v135/@aws-sdk/xml-builder@3.575.0/denonext/xml-builder.mjs": "161f75c0f85617e6739362ffa17eefc8a02d68e310a0f4fe0e545d28dc880db8", + "https://esm.sh/v135/@smithy/chunked-blob-reader@3.0.0/denonext/chunked-blob-reader.mjs": "bfd33430ff0d1b7c3dc6e42401a2adfcdeaf2dbb9ac56ca6578782c99e2cb359", + "https://esm.sh/v135/@smithy/config-resolver@3.0.1/denonext/config-resolver.mjs": "40cbc0d1a37f1833d5c5a08706470df01c559b6426b3961863cd67ea69eb768d", + "https://esm.sh/v135/@smithy/core@2.2.0/denonext/core.mjs": "9d4f338ee9ac0575eab16dc95372a8fcb969b826affe9cecbd48c2db1127b8ca", + "https://esm.sh/v135/@smithy/eventstream-codec@3.0.0/denonext/eventstream-codec.mjs": "c190427a13a42185259c24c47d80b44c69041b4599107f3d4663cd4077c07cd9", + "https://esm.sh/v135/@smithy/eventstream-serde-browser@3.0.0/denonext/eventstream-serde-browser.mjs": "66549a531d3a353b49b3e67d788450e5555666bd09b81e02a219ea8432545cfd", + "https://esm.sh/v135/@smithy/eventstream-serde-config-resolver@3.0.0/denonext/eventstream-serde-config-resolver.mjs": "6f3de94d34c2253cab99484bb2cb45f7530207667a03c0468bbb10a89e984afb", + "https://esm.sh/v135/@smithy/eventstream-serde-universal@3.0.0/denonext/eventstream-serde-universal.mjs": "7dcab4cc065182e9059495b7523763cf28ceed4a638797e1cd3868c048543079", + "https://esm.sh/v135/@smithy/fetch-http-handler@3.0.1/denonext/fetch-http-handler.mjs": "d45f4739d78d06e5dc37271dcd859f9a67208dc6b008340dc2f9a70ad13db898", + "https://esm.sh/v135/@smithy/hash-blob-browser@3.0.0/denonext/hash-blob-browser.mjs": "49ab0fc6686ce3cb5a7b3a4a608cc2b2a1ac0243fad829d27154da3dd92d8a22", + "https://esm.sh/v135/@smithy/invalid-dependency@3.0.0/denonext/invalid-dependency.mjs": "ee4b310aaaf505741a23af8cf025792b34bee8d72042d6d4d166ab2caedd2999", + "https://esm.sh/v135/@smithy/is-array-buffer@3.0.0/denonext/is-array-buffer.mjs": "f8bb7f850b646a10880d4e52c60151913b7d81911b2b1cd1355c9adef56ab3e2", + "https://esm.sh/v135/@smithy/md5-js@3.0.0/denonext/md5-js.mjs": "737d30f6a285b1c0a06a5f95dbd8da140f81f7f12d12796144149a96e5f2a0a0", + "https://esm.sh/v135/@smithy/middleware-content-length@3.0.0/denonext/middleware-content-length.mjs": "fe7e78041a745957818bdfb56d3f0c28c3ef0628447bb5fced13887d17274f84", + "https://esm.sh/v135/@smithy/middleware-endpoint@3.0.1/denonext/middleware-endpoint.mjs": "bf9be6bcc613941c0a1350b67c4e33862f43c0ea610e38559abccdf37fb78342", + "https://esm.sh/v135/@smithy/middleware-retry@3.0.3/denonext/middleware-retry.mjs": "83a20b0ab6e92e94ef23402f99b830645e06d860e1f619d880f7cce1596a4f97", + "https://esm.sh/v135/@smithy/middleware-serde@3.0.0/denonext/middleware-serde.mjs": "7681ebe6e31f3974a04ea7515521c6b1b68aadd26367e105045a1a8e47219890", + "https://esm.sh/v135/@smithy/middleware-stack@3.0.0/denonext/middleware-stack.mjs": "9e954876cda37bc3bdd7cef702a0f2cad07e0a01fbf3f621ff3ad699176960dc", + "https://esm.sh/v135/@smithy/property-provider@3.1.0/denonext/property-provider.mjs": "b25b43f3a30179a6f23d8a50a21fbfcc57a6f27faacf16c9a5acd87e07439eba", + "https://esm.sh/v135/@smithy/protocol-http@4.0.0/denonext/protocol-http.mjs": "70c3ac96dde34152ba20e35c4aa8f1237624156a63565fc1278d669bc1aa4ced", + "https://esm.sh/v135/@smithy/querystring-builder@3.0.0/denonext/querystring-builder.mjs": "d7abeb886cd8805936ee2cef154c13a2116c7934c713b247783d26f9bdd5f526", + "https://esm.sh/v135/@smithy/querystring-parser@3.0.0/denonext/querystring-parser.mjs": "c4ecaaecb22801e82f0fc9bd0f01a3279fead61ee278334c2edbe008adb770fb", + "https://esm.sh/v135/@smithy/service-error-classification@3.0.0/denonext/service-error-classification.mjs": "4bbfa5fd2bac959692c578082c5ecf2f116e1dae821b6b9ac3888767397eb2d4", + "https://esm.sh/v135/@smithy/signature-v4@3.0.0/denonext/signature-v4.mjs": "c3013b99f3b7741a4787a38b5e8553befcd27fd3397567da3fb10a9fe24f530a", + "https://esm.sh/v135/@smithy/smithy-client@3.1.1/denonext/smithy-client.mjs": "b2e61a9deb80ce5074de3286bfe3142a282a286b2fb561ff0fc37ddbb5ba1c20", + "https://esm.sh/v135/@smithy/types@3.0.0/denonext/types.mjs": "25efdf4ec5b964611ca47bb80a2b2d849d393367df433c5bb23096d741f85f59", + "https://esm.sh/v135/@smithy/url-parser@3.0.0/denonext/url-parser.mjs": "15cce7f94afb9e392977b9b565386ea3c64cbf34df41b9f9138f77f56945424c", + "https://esm.sh/v135/@smithy/util-base64@3.0.0/denonext/util-base64.mjs": "d6a01faaa94fdbeb4b92b02e91801dfbe241439e37a0edf7d817c59daf66c0e3", + "https://esm.sh/v135/@smithy/util-body-length-browser@3.0.0/denonext/util-body-length-browser.mjs": "d67382004d61919b97a756a454f9b312cfb0011a9727d3d1ca69ebddf1c7843a", + "https://esm.sh/v135/@smithy/util-config-provider@3.0.0/denonext/util-config-provider.mjs": "832c0ab1d3b06a51351ea23b33628bd36a37ef570e02e469f6ab39f71d88d7b1", + "https://esm.sh/v135/@smithy/util-defaults-mode-browser@3.0.3/denonext/util-defaults-mode-browser.mjs": "f3c35b293e8819ef45d70b523e3b3d71bdfa13d1f59926381e0c7cabd791d6d9", + "https://esm.sh/v135/@smithy/util-endpoints@2.0.1/denonext/util-endpoints.mjs": "4db905d919da27dc7c71ed20addebc8729b2200b410e0657e6d74d3d11ecc6b1", + "https://esm.sh/v135/@smithy/util-hex-encoding@3.0.0/denonext/util-hex-encoding.mjs": "cbdd7aabeb3903596980e2903efec3e5501f7e1259fb7b97e327a3b4e635f23c", + "https://esm.sh/v135/@smithy/util-middleware@3.0.0/denonext/util-middleware.mjs": "6b85625cb9b9492f81270c274bb5ea491e903e619f89de0d1f5fbba49b418ca4", + "https://esm.sh/v135/@smithy/util-retry@3.0.0/denonext/util-retry.mjs": "cd770e5416f69c0a186e602dfc7f2aee4d0855310d7e1b6d556d812cacd1514a", + "https://esm.sh/v135/@smithy/util-stream@3.0.1/denonext/util-stream.mjs": "adc467f8edf75be350d4566ceb13377423b5bb9c152d0438296ed171b9a9e475", + "https://esm.sh/v135/@smithy/util-uri-escape@3.0.0/denonext/util-uri-escape.mjs": "df2c80781ede692323dee6e2da3711e7ccc4f7a1cee949b09aba8d1ce15bbe03", + "https://esm.sh/v135/@smithy/util-utf8@3.0.0/denonext/util-utf8.mjs": "abe704ed8c4266b29906116ef723b98e8729078537b252c9a213ad373559488a", + "https://esm.sh/v135/@smithy/util-waiter@3.0.0/denonext/util-waiter.mjs": "3f6ef1fd887ee17285898099e86083317573c81f93ca7821c62397374e224f16", + "https://esm.sh/v135/ajv-formats@2.1.1/denonext/ajv-formats.mjs": "06092e00b42202633ae6dab4b53287c133af882ddb14c6707277cdb237634967", + "https://esm.sh/v135/ajv@8.12.0/denonext/ajv.mjs": "4645df9093d0f8be0e964070a4a7aea8adea06e8883660340931f7a3f979fc65", + "https://esm.sh/v135/ajv@8.12.0/denonext/dist/compile/codegen.js": "d981238e5b1e78217e1c6db59cbd594369279722c608ed630d08717ee44edd84", + "https://esm.sh/v135/bowser@2.11.0/denonext/bowser.mjs": "3fd0c5d68c4bb8b3243c1b0ac76442fa90f5e20ee12773ce2b2f476c2e7a3615", + "https://esm.sh/v135/fast-deep-equal@3.1.3/denonext/fast-deep-equal.mjs": "6313b3e05436550e1c0aeb2a282206b9b8d9213b4c6f247964dd7bb4835fb9e5", + "https://esm.sh/v135/fast-xml-parser@4.2.5/denonext/fast-xml-parser.mjs": "c4512cbbb8ec8d60dedc374323e591d5bc4ae02e4da8c4092ff94602d19c9d62", + "https://esm.sh/v135/json-schema-traverse@1.0.0/denonext/json-schema-traverse.mjs": "c5da8353bc014e49ebbb1a2c0162d29969a14c325da19644e511f96ba670cc45", + "https://esm.sh/v135/strnum@1.0.5/denonext/strnum.mjs": "1ffef4adec2f74139e36a2bfed8381880541396fe1c315779fb22e081b17468b", + "https://esm.sh/v135/tslib@1.14.1/denonext/tslib.mjs": "5e49e8960f064d11fb709e3338f5437e2ede57e7df873a09d7834c2a0bf533f7", + "https://esm.sh/v135/uri-js@4.4.1/denonext/uri-js.mjs": "901d462f9db207376b39ec603d841d87e6b9e9568ce97dfaab12aa77d0f99f74", + "https://esm.sh/v135/uuid@9.0.1/denonext/uuid.mjs": "7d7d3aa57fa136e2540886654c416d9da10d8cfebe408bae47fd47070f0bfb2a" + } +} diff --git a/modules/email/scripts/send_email.ts b/modules/email/scripts/send_email.ts index 5c912f18..582317ae 100644 --- a/modules/email/scripts/send_email.ts +++ b/modules/email/scripts/send_email.ts @@ -27,7 +27,7 @@ export async function run( if ("test" in ctx.config.provider) { // Do nothing } else if ("sendGrid" in ctx.config.provider) { - await useSendGrid(ctx.config.provider.sendGrid, req); + await useSendGrid(ctx, ctx.config.provider.sendGrid, req); } else { throw new RuntimeError("unreachable"); } @@ -35,9 +35,9 @@ export async function run( return {}; } -async function useSendGrid(config: ProviderSendGrid, req: Request) { +async function useSendGrid(ctx: ScriptContext, config: ProviderSendGrid, req: Request) { const apiKeyVariable = config.apiKeyVariable ?? "SENDGRID_API_KEY"; - const apiKey = Deno.env.get(apiKeyVariable); + const apiKey = ctx.environment.get(apiKeyVariable); assertExists(apiKey, `Missing environment variable: ${apiKeyVariable}`); const content = []; diff --git a/modules/lobbies/actors/lobby_manager.ts b/modules/lobbies/actors/lobby_manager.ts new file mode 100644 index 00000000..199ed1ad --- /dev/null +++ b/modules/lobbies/actors/lobby_manager.ts @@ -0,0 +1,1163 @@ +import { + ActorBase, + ActorContext, + RuntimeError, + UnreachableError, + __EXPERIMENTAL, +} from "../module.gen.ts"; +import { createNanoEvents } from "https://esm.sh/nanoevents@9.0.0"; +import { LobbyConfig } from "../config.ts"; +import { + CreateServerPortRequest as RivetCreateServerPortRequest, + CreateServerRequest as RivetCreateServerRequest, + CreateServerResponse as RivetCreateServerResponse, + GetServerResponse as RivetGetServerResponse, +} from "../utils/rivet/endpoints.ts"; +import { Server as RivetServer } from "../utils/rivet/types.ts"; +import { +LobbyBackend, + LobbyBackendResponse, + LobbyResponse, + LobbyState, + lobbyTagsMatch, +} from "../utils/lobby/mod.ts"; +import { PlayerResponse, PlayerState } from "../utils/player.ts"; +import { canMutateLobbies, getLobbyConfig, requiresLobbyToken, canCallLobbyReadyMultipleTimes } from "../utils/lobby_config.ts"; +import { LobbyBackendLocalDevelopmentPort } from "../utils/lobby/backend/local_development.ts"; +import { LobbyBackendServerPortResponse } from "../utils/lobby/backend/server.ts"; +import { regionsForBackend } from "../utils/region.ts"; + +const GC_INTERVAL = 15 * 1000; + +type Input = undefined; + +interface State { + lobbies: Record; + servers: Record; +} + +interface Server { + id: string; + createdAt: number; + createFinishedAt?: number; + data?: RivetServer; +} + +const EVENT_KEYS = { + lobbyUpdate(lobbyId: string): string { + return `lobby.ready.${lobbyId}`; + }, +}; + +// TODO: Document why we make everything sync in this actor and use background jobs + +export class Actor extends ActorBase { + private emitter = createNanoEvents(); + + initialize(ctx: ActorContext) { + this.schedule.after(GC_INTERVAL, "gc", undefined); + + // TODO: This doesn't handle lobbyRules correctly + // Create default lobbies if needed + const lobbies: Record = {}; + if ("localDevelopment" in ctx.config.lobbies.backend) { + const devConfig = ctx.config.lobbies.backend.localDevelopment; + const localLobbyId = "00000000-0000-0000-0000-000000000000"; + + const ports: Record = {}; + for (const [portName, port] of Object.entries(devConfig.ports)) { + ports[portName] = { + protocol: port.protocol, + hostname: port.hostname ?? "127.0.0.1", + port: port.port, + } + }; + + lobbies[localLobbyId] ={ + id: localLobbyId, + version: devConfig.version ?? "default", + region: "local", + tags: devConfig.tags ?? {}, + createdAt: Date.now(), + readyAt: Date.now(), + emptyAt: Date.now(), + players: {}, + maxPlayers: devConfig.maxPlayers ?? 32, + maxPlayersDirect: devConfig.maxPlayersDirect ?? 32, + backend: { + localDevelopment: { ports } + }, + }; + } + + return { + lobbies, + servers: {}, + }; + } + + // MARK: RPC + public async rpcCreateLobby( + ctx: ActorContext, + req: CreateLobbyRequest, + ): Promise { + const { lobbyId, playerIds } = this.createLobby(ctx, req); + if (!req.noWait) await this.waitForLobbyReady(ctx, lobbyId); + return { + lobby: this.buildLobbyResponse(ctx, lobbyId), + players: this.buildPlayersResponse(lobbyId, playerIds), + }; + } + + public async rpcFindLobby( + ctx: ActorContext, + req: FindLobbyRequest, + ): Promise { + const { lobbyId, playerIds } = this.findLobby(ctx, req); + if (!req.noWait) await this.waitForLobbyReady(ctx, lobbyId); + return { + lobby: this.buildLobbyResponse(ctx, lobbyId), + players: this.buildPlayersResponse(lobbyId, playerIds), + }; + } + + public async rpcFindOrCreateLobby( + ctx: ActorContext, + req: FindOrCreateLobbyRequest, + ): Promise { + const { lobbyId, playerIds } = this.findOrCreateLobby(ctx, req); + if (!req.noWait) await this.waitForLobbyReady(ctx, lobbyId); + return { + lobby: this.buildLobbyResponse(ctx, lobbyId), + players: this.buildPlayersResponse(lobbyId, playerIds), + }; + } + + public async rpcJoinLobby( + ctx: ActorContext, + req: JoinLobbyRequest, + ): Promise { + const { playerIds } = this.createPlayers(ctx, req); + if (!req.noWait) await this.waitForLobbyReady(ctx, req.lobbyId); + return { + lobby: this.buildLobbyResponse(ctx, req.lobbyId), + players: this.buildPlayersResponse(req.lobbyId, playerIds), + }; + } + + public rpcSetLobbyReady(ctx: ActorContext, req: SetLobbyReadyRequest) { + this.setLobbyReady(ctx, req); + } + + public rpcDestroyPlayers( + ctx: ActorContext, + req: DestroyPlayersRequest, + ) { + this.destroyPlayers(ctx, req); + } + + public rpcSetPlayersConnected( + ctx: ActorContext, + req: SetPlayersConnectedRequest, + ) { + this.setPlayersConnected(ctx, req); + } + + public rpcDestroyLobby(ctx: ActorContext, req: DestroyLobbyRequest) { + this.destroyLobby(ctx, req); + } + + public rpcListLobbies( + ctx: ActorContext, + _req: ListLobbiesRequest, + ): ListLobbiesResponse { + return { + lobbies: Object.keys(this.state.lobbies).map((x) => + this.buildLobbyResponse(ctx, x) + ), + }; + } + + // MARK: Lobby + private createLobby( + ctx: ActorContext, + req: CreateLobbyRequest, + ): { lobbyId: string; playerIds: string[] } { + const lobbyConfig = getLobbyConfig(ctx.config, req.lobby.tags ?? {}); + + // Check lobby can be created + if (!canMutateLobbies(lobbyConfig)) throw new RuntimeError("cannot_mutate_lobbies"); + + if (req.players.length > req.lobby.maxPlayers) { + throw new RuntimeError("more_players_than_max"); + } + + if ( + lobbyConfig.destroyOnEmptyAfter != undefined && + (!req.players.length || req.players.length == 0) + ) { + throw new RuntimeError("lobby_create_missing_players"); + } + + // Valiadte region + const validRegions = regionsForBackend(lobbyConfig.backend); + if (validRegions.findIndex(x => x.id == req.lobby.region) == -1) { + throw new RuntimeError("region_not_found", { + meta: { region: req.lobby.region } + }); + } + + // Create backend + let backend: LobbyBackend; + if ("test" in lobbyConfig.backend) { + backend = { test: {} }; + } else if ("localDevelopment" in lobbyConfig.backend) { + throw new UnreachableError(undefined as never) + } else if ("server" in lobbyConfig.backend) { + // Create backend + const serverId = crypto.randomUUID(); + backend = { + server: { serverId }, + }; + + // Add server + const server: Server = { id: serverId, createdAt: Date.now() }; + this.state.servers[server.id] = server; + } else { + throw new UnreachableError(lobbyConfig.backend); + } + + // Create lobby + const lobby: LobbyState = { + id: req.lobby.lobbyId, + version: req.lobby.version, + region: req.lobby.region, + tags: req.lobby.tags ?? {}, + createdAt: Date.now(), + emptyAt: Date.now(), + players: {}, + maxPlayers: req.lobby.maxPlayers, + maxPlayersDirect: req.lobby.maxPlayersDirect, + backend, + }; + this.state.lobbies[lobby.id] = lobby; + + // Create players + const { playerIds } = this.createPlayers(ctx, { + lobbyId: lobby.id, + players: req.players, + noWait: true, + }); + + // Run background job + // + // This is because both requests finding & joining this lobby need to + // wait for the background job to finish before returning. + if ("server" in backend) { + this.runInBackground( + ctx, + this.createLobbyBackground(ctx, lobby, lobbyConfig, backend.server.serverId), + ); + } + + return { lobbyId: lobby.id, playerIds }; + } + + private async waitForLobbyReady(_ctx: ActorContext, lobbyId: string): Promise { + // Check the lobby state + const { status, lobby: newLobby } = this.getLobbyStatus(lobbyId); + switch (status) { + case "unready": + // Do nothing + break; + case "ready": + return newLobby!; + case "cancelled": + throw new RuntimeError("lobby_cancelled") + default: + throw new UnreachableError(status); + } + + // Wait for lobby to be ready + // + // If the lobby is never ready, it will time out from the GC destroying the + // lobby. + return await new Promise((resolve, reject) => { + // Wait for lobby ready + const unsubscribe = this.emitter.on( + EVENT_KEYS.lobbyUpdate(lobbyId), + () => { + const { status, lobby: newLobby } = this.getLobbyStatus(lobbyId); + switch (status) { + case "unready": + // Do nothing + break; + case "ready": + unsubscribe(); + resolve(newLobby!); + break; + case "cancelled": + unsubscribe(); + // TODO: Error type + reject(); + break; + default: + throw new UnreachableError(status); + } + }, + ); + }); + } + + /** + * The state of the server. + */ + private getLobbyStatus( + lobbyId: string, + ): { status: "unready" | "ready" | "cancelled"; lobby?: LobbyState } { + const lobby = this.state.lobbies[lobbyId]; + if (!lobby) { + return { status: "cancelled" }; + } else if (lobby.readyAt) { + return { status: this.getLobbyBackendStatus(lobby), lobby }; + } else { + return { status: "unready", lobby }; + } + } + + /** + * If the lobby backend is ready for players to start connecting. + */ + private getLobbyBackendStatus( + lobby: LobbyState, + ): "unready" | "ready" | "cancelled" { + if ("test" in lobby.backend) { + return "ready"; + } else if ("localDevelopment" in lobby.backend) { + return "ready"; + } else if ("server" in lobby.backend) { + const server = this.state.servers[lobby.backend.server.serverId]; + if (server?.createFinishedAt) { + return "ready"; + } else { + return "unready"; + } + } else { + throw new UnreachableError(lobby.backend); + } + } + + private buildLobbyResponse(_ctx: ActorContext, lobbyId: string): LobbyResponse { + const lobby = this.getLobby(lobbyId); + + let backend: LobbyBackendResponse; + if ("test" in lobby.backend) { + backend = { test: {} }; + } else if ("localDevelopment" in lobby.backend) { + backend = { + localDevelopment: { + ports: lobby.backend.localDevelopment.ports, + }, + }; + } else if ("server" in lobby.backend) { + const server = this.state.servers[lobby.backend.server.serverId]; + if (!server) throw new Error("server not found"); + + const serverData = server.data; + if (serverData) { + const ports: Record = {}; + for (const [k, v] of Object.entries(serverData.network.ports)) { + ports[k] = { + protocol: v.protocol, + internalPort: v.server_port, + publicHostname: v.public_hostname, + publicPort: v.public_port, + routing: v.routing, + }; + } + + backend = { + server: { + serverId: lobby.backend.server.serverId, + ports, + }, + }; + } else { + backend = { + server: { + serverId: lobby.backend.server.serverId, + ports: {}, + }, + }; + } + } else { + throw new UnreachableError(lobby.backend); + } + + return { + id: lobby.id, + version: lobby.version, + tags: lobby.tags, + createdAt: lobby.createdAt, + readyAt: lobby.readyAt, + players: Object.keys(lobby.players).length, + maxPlayers: lobby.maxPlayers, + maxPlayersDirect: lobby.maxPlayersDirect, + backend, + }; + } + + private buildPlayersResponse( + _lobbyId: string, + playerIds: string[], + ): PlayerResponse[] { + return playerIds.map((id) => ({ id })); + } + + private async createLobbyBackground( + ctx: ActorContext, + lobby: LobbyState, + lobbyConfig: LobbyConfig, + serverId: string, + ) { + // TODO: Race condition with publishign & deleting lobby if delete request gets processed first + + const token = await this.createLobbyToken(ctx, lobby.id); + + if (!("server" in lobbyConfig.backend)) return; + + // Build tags + const tags: Record = { + // TODO: backend/environment + "opengb/lobbies/lobby_id": lobby.id, + "opengb/lobbies/version": lobby.version, + }; + for (const [k, v] of Object.entries(lobby.tags)) { + tags[`opengb/lobbies/tags/${k}`] = v; + } + + // Build ports + const ports: Record = {}; + for (const [k, v] of Object.entries(lobbyConfig.backend.server.ports)) { + ports[k] = { + protocol: v.protocol, + internal_port: v.internalPort, + routing: v.routing, + }; + } + + const request: RivetCreateServerRequest = { + datacenter: lobby.region, + // TODO: + tags, + // TODO: Switch to querying builds + image_id: lobby.version, + arguments: lobbyConfig.backend.server.arguments, + environment: Object.assign({}, lobbyConfig.backend.server.environment, { + "LOBBY_ID": lobby.id, + "LOBBY_VERSION": lobby.version, + "LOBBY_TOKEN": token, + "BACKEND_ENDPOINT": ctx.runtime.publicEndpoint, + }), + network: { + mode: lobbyConfig.backend.server.networkMode, + ports, + }, + resources: lobbyConfig.backend.server.resources, + }; + // TODO: Handle fail + var createRivetServer; + try { + const { body: { server } } = await ctx.modules.rivet + .call({ + method: "POST", + path: "/servers", + body: request, + }) as { body: RivetCreateServerResponse }; + createRivetServer = server; + ctx.log.info("created server", [ + "server", + JSON.stringify(server), + ]); + } catch (err) { + ctx.log.warn('failed to create server, destroying lobby', ...__EXPERIMENTAL.Log.errorToLogEntries('error', err)); + this.destroyLobby(ctx, { lobbyId: lobby.id }); + return; + } + + // Update server state + const server = this.state.servers[serverId]; + if (server) { + server.data = createRivetServer; + + // TODO: Remove this + server.createFinishedAt = Date.now(); + } + + this.emitter.emit(EVENT_KEYS.lobbyUpdate(lobby.id)); + + // TODO: Replace with webhooks + // HACK: Poll for lobby ready + while (true) { + const { body: { server: getRivetServer } } = await ctx.modules.rivet.call( + { + method: "GET", + path: `/servers/servers/${createRivetServer.server_id}`, + }, + ) as { body: RivetGetServerResponse }; + + if (getRivetServer.destroy_ts) { + ctx.log.warn("server destroyed before ready"); + this.destroyLobby(ctx, { lobbyId: lobby.id }); + break; + } + + // Check if server can be connected to + const isConnectable = + Object.keys(getRivetServer.network.ports).length == 0 || + Object.values(getRivetServer.network.ports).filter((x) => + x.public_hostname + ).length == Object.keys(getRivetServer.network.ports).length; + if (isConnectable) { + ctx.log.info("server is connectable"); + + // Save server data + const server = this.state.servers[serverId]; + if (server) { + server.data = getRivetServer; + server.createFinishedAt = Date.now(); + await this.forceSaveState(); + } + + this.emitter.emit(EVENT_KEYS.lobbyUpdate(lobby.id)); + + break; + } else { + ctx.log.info("server not connectable yet"); + + // Wait + await new Promise((resolve) => setTimeout(resolve, 500)); + } + } + } + + private async createLobbyToken( + ctx: ActorContext, + lobbyId: string, + ): Promise { + const { token: token } = await ctx.modules.tokens.create({ + type: "lobby", + meta: { lobbyId }, + }); + return token.token; + } + + private destroyLobby(ctx: ActorContext, req: DestroyLobbyRequest) { + // Get lobby + const lobby = this.state.lobbies[req.lobbyId]; + if (!lobby) { + throw new RuntimeError("lobby_not_found", { + meta: { lobbyId: req.lobbyId }, + }); + } + + // Check can be deleted + const lobbyConfig = getLobbyConfig(ctx.config, lobby.tags); + if (!canMutateLobbies(lobbyConfig)) throw new RuntimeError("cannot_mutate_lobbies"); + + // Remove lobby + delete this.state.lobbies[req.lobbyId]; + + // TODO: Optimize + // TODO: Handle backends better + if ("test" in lobby.backend || "localDevelopment" in lobby.backend) { + // Do nothing + } else if ("server" in lobby.backend) { + const serverId = lobby.backend.server.serverId; + + // Delete server + const didDeleteServer = delete this.state.servers[serverId]; + if (didDeleteServer) { + this.runInBackground(ctx, this.destroyLobbyBackground(ctx, serverId)); + } else { + ctx.log.warn( + "did not find server to delete", + ["serverId", serverId], + ); + } + } else { + throw new UnreachableError(lobby.backend); + } + + this.emitter.emit(EVENT_KEYS.lobbyUpdate(req.lobbyId)); + } + + private async destroyLobbyBackground(ctx: ActorContext, serverId: string) { + // Destroy server + await ctx.modules.rivet.call({ + method: "DELETE", + path: `/servers/${serverId}`, + }); + } + + private findLobby( + ctx: ActorContext, + req: FindLobbyRequest, + ): { lobbyId: string; playerIds: string[] } { + const lobby = this.queryLobby(req.query, req.players.length); + if (!lobby) { + throw new RuntimeError("no_matching_lobbies", { + meta: { + playerCount: req.players.length, + query: req.query, + }, + }); + } + const { playerIds } = this.createPlayers(ctx, { + lobbyId: lobby.id, + players: req.players, + noWait: true, + }); + return { lobbyId: lobby.id, playerIds }; + } + + private findOrCreateLobby( + ctx: ActorContext, + req: FindOrCreateLobbyRequest, + ): { lobbyId: string; playerIds: string[] } { + const lobby = this.queryLobby(req.query, req.players.length); + if (lobby) { + const { playerIds } = this.createPlayers(ctx, { + lobbyId: lobby.id, + players: req.players, + noWait: true, + }); + return { lobbyId: lobby.id, playerIds }; + } else { + return this.createLobby(ctx, { + lobby: req.lobby, + players: req.players, + noWait: true, + }); + } + } + + private setLobbyReady(ctx: ActorContext, req: SetLobbyReadyRequest) { + // Get lobby. Fail gracefully since there may be a race condition with deleting lobby. + const lobby = this.state.lobbies[req.lobbyId]; + if (!lobby) { + ctx.log.warn("setting lobby ready on lobby that's already removed", [ + "lobbyId", + req.lobbyId, + ]); + return; + } + + const lobbyConfig = getLobbyConfig(ctx.config, lobby.tags); + + // Validate token + if (!req.hasLobbyToken && requiresLobbyToken(lobbyConfig)) { + throw new RuntimeError("lobby_token_required") + } + + // Update ready state + if (lobby.readyAt !== undefined) { + if (canCallLobbyReadyMultipleTimes(lobbyConfig)) { + // Exit gracefully + return; + } else { + throw new RuntimeError("lobby_already_ready"); + } + } + + lobby.readyAt = Date.now(); + + this.emitter.emit(EVENT_KEYS.lobbyUpdate(lobby.id)); + } + + private createPlayers( + ctx: ActorContext, + req: JoinLobbyRequest, + ): { playerIds: string[] } { + const lobby = this.getLobby(req.lobbyId); + + if (req.players.length == 0) { + return { playerIds: [] }; + } + + // Check for too many players for IP + if (ctx.config.players.maxPerIp != undefined) { + // Count the number of IPs for the request + const reqIpCounts = new Map(); + for (const player of req.players) { + if (player.publicIp) { + const count = reqIpCounts.get(player.publicIp) ?? 0; + reqIpCounts.set(player.publicIp, count + 1); + } + } + + // Valdiate IPs + for (const [ip, reqIpCount] of reqIpCounts) { + const playersForIp = this.playersForIp(ip); + + // Calculate the number of players over the max player count, + // including the player making the request. + const ipOverflow = (playersForIp.length + reqIpCount) - + ctx.config.players.maxPerIp; + + // Handle too many players per IP + if (ipOverflow > 0) { + // Before throwing an error, we'll try removing players + // that have not connected to a server yet. This helps + // mitigate the edge case where the game has a bug causing + // players to fail to connect, leaving a lot of unconnected + // players in the matchmaker. In this situation, new + // players can still be created. + // + // If there are unconnected players that can be removed, + // those players will be removed and this will continue as + // normal. + + // Find players that have not connected yet, sorted oldest + // to newest. This does not include the player that is + // making the request. + const unconnectedPlayersForIp = playersForIp + .filter((x) => x.connectedAt == undefined) + .sort((a, b) => a.createdAt - b.createdAt); + + // Check if there are enough players that we can delete to + // make space for the new players + if (unconnectedPlayersForIp.length >= ipOverflow) { + ctx.log.warn( + "removing unconnected player with the same ip to make space for new player. the game server is likely having issues accepting connections.", + ["ip", ip], + ["ipOverflow", ipOverflow], + ["maxPerIp", ctx.config.players.maxPerIp], + ); + + // Remove oldest players first in favor of the new + // player we're about to add + for (let i = 0; i < ipOverflow; i++) { + const unconnectedPlayer = unconnectedPlayersForIp[i]!; + this.destroyPlayers(ctx, { + lobbyId: unconnectedPlayer.lobbyId, + hasLobbyToken: true, + playerIds: [unconnectedPlayer.id], + }); + } + } else { + // Fail + throw new RuntimeError("too_many_players_for_ip", { + meta: { ip }, + }); + } + } + } + } + + // Check if we need to remove unconnected players + if (ctx.config.players.maxUnconnected != undefined) { + const unconnectedPlayers = this.unconnectedPlayers(); + + const unconnectedOverflow = + (unconnectedPlayers.length + req.players.length) - + ctx.config.players.maxUnconnected; + if (unconnectedOverflow > 0) { + // Calc number of players to remove + const unconnectedPlayersToRemove = Math.min( + unconnectedOverflow, + unconnectedPlayers.length, + ); + ctx.log.warn( + "removing unconnected player to make space for new player. the game server is likely having issues accepting connections.", + ["maxUnconnected", ctx.config.players.maxUnconnected], + ["unconnectedOverflow", unconnectedOverflow], + ["unconnectedPlayersToRemove", unconnectedPlayersToRemove], + ); + + // Remove unconnected players from oldest to newest + unconnectedPlayers.sort((a, b) => a.createdAt - b.createdAt); + for (let i = 0; i < unconnectedPlayersToRemove; i++) { + const player = unconnectedPlayers[i]!; + this.destroyPlayers(ctx, { + lobbyId: player.lobbyId, + hasLobbyToken: true, + playerIds: [player.id], + }); + } + } + } + + // Check for available spots in lobby + if (lobby.maxPlayers - req.players.length < 0) { + throw new RuntimeError("lobby_full", { meta: { lobbyId: req.lobbyId } }); + } + + // Create players + const players = []; + for (const playerOpts of req.players) { + const playerId = crypto.randomUUID(); + const player: PlayerState = { + id: playerId, + lobbyId: lobby.id, + createdAt: Date.now(), + publicIp: playerOpts.publicIp, + }; + lobby.players[player.id] = player; + players.push(player); + } + + // Make lobby not empty + lobby.emptyAt = undefined; + + this.emitter.emit(EVENT_KEYS.lobbyUpdate(lobby.id)); + + return { playerIds: players.map((x) => x.id) }; + } + + private destroyPlayers(ctx: ActorContext, req: DestroyPlayersRequest) { + const lobby = this.getLobby(req.lobbyId); + const lobbyConfig = getLobbyConfig(ctx.config, lobby.tags); + + // Validate token + if (!req.hasLobbyToken && requiresLobbyToken(lobbyConfig)) { + throw new RuntimeError("lobby_token_required") + } + + + // Remove player + for (const playerId of req.playerIds) { + delete lobby.players[playerId]; + } + + // Destroy lobby immediately on empty + if (Object.keys(lobby.players).length == 0) { + lobby.emptyAt = Date.now(); + + if (canMutateLobbies(lobbyConfig) && lobbyConfig.destroyOnEmptyAfter == 0) { + ctx.log.info( + "destroying empty lobby", + ["lobbyId", lobby.id], + ["unreadyExpireAfter", ctx.config.lobbies.unreadyExpireAfter], + ); + this.destroyLobby(ctx, { lobbyId: lobby.id }); + } + } + + this.emitter.emit(EVENT_KEYS.lobbyUpdate(lobby.id)); + } + + private setPlayersConnected( + ctx: ActorContext, + req: SetPlayersConnectedRequest, + ) { + const lobby = this.getLobby(req.lobbyId); + const lobbyConfig = getLobbyConfig(ctx.config, lobby.tags); + + // Validate token + if (!req.hasLobbyToken && requiresLobbyToken(lobbyConfig)) { + throw new RuntimeError("lobby_token_required") + } + + // Validate players + const allPlayers = []; + for (const playerId of req.playerIds) { + const player = lobby.players[playerId]; + if (player) { + // TODO: Allow reusing connection token + // TODO: What if the player already connected + if (player.connectedAt != undefined) { + throw new RuntimeError("player_already_connected", { + meta: { lobbyId: lobby.id, playerId }, + }); + } + + allPlayers.push(player); + } else { + throw new RuntimeError("player_disconnected", { + meta: { lobbyId: lobby.id, playerId }, + }); + } + } + + // Update players + for (const player of allPlayers) { + player.connectedAt = Date.now(); + } + } + + public gc(ctx: ActorContext) { + // Schedule next GC + this.schedule.after(GC_INTERVAL, "gc", undefined); + + let unreadyLobbies = 0; + let emptyLobbies = 0; + let unconnectedPlayers = 0; + let oldPlayers = 0; + for (const lobby of Object.values(this.state.lobbies)) { + const lobbyConfig = getLobbyConfig(ctx.config, lobby.tags); + + // Destroy lobby if unready + // TODO: pass this on lobby create instead of in config? + if ( + canMutateLobbies(lobbyConfig) && + lobby.readyAt == undefined && + Date.now() - lobby.createdAt > ctx.config.lobbies.unreadyExpireAfter + ) { + ctx.log.warn( + "destroying unready lobby", + ["lobbyId", lobby.id], + ["unreadyExpireAfter", ctx.config.lobbies.unreadyExpireAfter], + ); + this.destroyLobby(ctx, { lobbyId: lobby.id }); + unreadyLobbies++; + continue; + } + + // Destroy lobby if empty for long enough + if ( + canMutateLobbies(lobbyConfig) && + lobbyConfig.destroyOnEmptyAfter != undefined && + lobby.emptyAt != undefined && + Date.now() - lobby.emptyAt > lobbyConfig.destroyOnEmptyAfter + ) { + ctx.log.debug( + "destroying empty lobby", + ["lobbyId", lobby.id], + ["unreadyExpireAfter", ctx.config.lobbies.unreadyExpireAfter], + ); + this.destroyLobby(ctx, { lobbyId: lobby.id }); + emptyLobbies++; + continue; + } + + if (lobby.readyAt != undefined) { + for (const player of Object.values(lobby.players)) { + // If joining a preemptively created lobby, the player's + // created timestamp will be earlier than when the lobby + // actually becomes able to be connected to. + // + // GC players based on the timestamp the lobby started if + // needed. + const startAt = Math.max(player.createdAt, lobby.readyAt); + + // Clean up unconnected players + if ( + player.connectedAt == undefined && + Date.now() - startAt > ctx.config.players.unconnectedExpireAfter + ) { + ctx.log.debug( + "destroying unconnected player", + ["playerId", player.id], + [ + "unconnectedExpireAfter", + ctx.config.players.unconnectedExpireAfter, + ], + ); + this.destroyPlayers(ctx, { + lobbyId: player.lobbyId, + hasLobbyToken: true, + playerIds: [player.id], + }); + unconnectedPlayers++; + continue; + } + + // Clean up really old players + if ( + ctx.config.players.autoDestroyAfter != undefined && + Date.now() - startAt > ctx.config.players.autoDestroyAfter + ) { + ctx.log.warn( + "destroying old player", + ["playerId", player.id], + ["autoDestroyAfter", ctx.config.players.autoDestroyAfter], + ); + this.destroyPlayers(ctx, { + lobbyId: player.lobbyId, + hasLobbyToken: true, + playerIds: [player.id], + }); + oldPlayers++; + continue; + } + } + } + } + + ctx.log.info( + "gc summary", + ["unreadyLobbies", unreadyLobbies], + ["emptyLobbies", emptyLobbies], + ["unconnectedPlayers", unconnectedPlayers], + ["oldPlayers", oldPlayers], + ); + } + + /** + * Returns a lobby or throws `lobby_not_found`. + */ + private getLobby(lobbyId: string): LobbyState { + const lobby = this.state.lobbies[lobbyId]; + if (lobby === undefined) { + throw new RuntimeError("lobby_not_found", { + meta: { lobbyId }, + }); + } + return lobby; + } + + /** + * Finds a lobby for a given query. + */ + private queryLobby( + query: QueryRequest, + playerCount: number, + ): LobbyState | undefined { + // TODO: optimize + // Find largest lobby that can fit the requested players + const lobbies = Object.values(this.state.lobbies) + .filter((x) => x.version == query.version) + .filter((x) => query.regions == undefined || query.regions.includes(x.region)) + .filter((x) => + Object.keys(x.players).length <= x.maxPlayers - playerCount + ) + .filter((x) => query.tags == undefined || lobbyTagsMatch(query.tags, x.tags)) + .sort((a, b) => b.createdAt - a.createdAt) + .sort((a, b) => + Object.keys(b.players).length - Object.keys(a.players).length + ); + return lobbies[0]; + } + + playersForIp(ip: string): PlayerState[] { + // TODO: optimize + const players = []; + for (const lobby of Object.values(this.state.lobbies)) { + for (const player of Object.values(lobby.players)) { + if (player.publicIp == ip) { + players.push(player); + } + } + } + return players; + } + + unconnectedPlayers(): PlayerState[] { + // TODO: optimize + const players = []; + for (const lobby of Object.values(this.state.lobbies)) { + // Don't count unready lobbies since these players haven't had time to connect yet + if (lobby.readyAt == undefined) continue; + + for (const player of Object.values(lobby.players)) { + if (player.connectedAt == undefined) { + players.push(player); + } + } + } + return players; + } +} + +/** + * Common response type used for create/find/join requests. + */ +interface BaseLobbyResponse { + lobby: LobbyResponse; + players: PlayerResponse[]; +} + +// MARK: Create Lobby +export interface CreateLobbyRequest { + lobby: LobbyRequest; + players: PlayerRequest[]; + noWait: boolean; +} + +export type CreateLobbyResponse = BaseLobbyResponse; + +// MARK: Destroy Lobby +export interface DestroyLobbyRequest { + lobbyId: string; +} + +// MARK: Find Lobby +export interface FindLobbyRequest { + query: QueryRequest; + players: PlayerRequest[]; + noWait: boolean; +} + +export type FindLobbyResponse = BaseLobbyResponse; + +// MARK: Find or Create +export interface FindOrCreateLobbyRequest { + query: QueryRequest; + lobby: LobbyRequest; + players: PlayerRequest[]; + noWait: boolean; +} + +export type FindOrCreateLobbyResponse = BaseLobbyResponse; + +// MARK: Set Lobby Ready +export interface SetLobbyReadyRequest { + lobbyId: string; + hasLobbyToken: boolean; +} + +// MARK: List Lobbies +export type ListLobbiesRequest = QueryRequest; + +export interface ListLobbiesResponse { + lobbies: LobbyResponse[]; +} + +// MARK: Create Players +export interface JoinLobbyRequest { + lobbyId: string; + players: PlayerRequest[]; + // TODO: Make noWait only be passed to rpc + noWait: boolean; +} + +export type JoinLobbyResponse = BaseLobbyResponse; + +// MARK: Destroy Players +export interface DestroyPlayersRequest { + lobbyId: string; + hasLobbyToken: boolean; + playerIds: string[]; +} + +// MARK: Set Players Connected +export interface SetPlayersConnectedRequest { + lobbyId: string; + hasLobbyToken: boolean; + playerIds: string[]; +} + +// MARK: Common +export interface QueryRequest { + /** + * Version is required in query in order to correctly match the client to the + * correct server version. + */ + version: string; + regions?: string[]; + tags?: Record; +} + +export interface LobbyRequest { + lobbyId: string; + version: string; + region: string; + tags?: Record; + maxPlayers: number; + maxPlayersDirect: number; +} + +export interface PlayerRequest { + publicIp?: string; +} diff --git a/modules/lobbies/config.ts b/modules/lobbies/config.ts new file mode 100644 index 00000000..1b5c4d4f --- /dev/null +++ b/modules/lobbies/config.ts @@ -0,0 +1,44 @@ +import { BackendLocalDevelopmentConfig, BackendLocalDevelopmentConfigPort } from "./utils/lobby/backend/local_development.ts"; +import { BackendServerConfig } from "./utils/lobby/backend/server.ts"; +import { BackendTestConfig } from "./utils/lobby/backend/test.ts"; + +export interface Config { + lobbies: LobbyConfig; + lobbyRules: LobbyRule[]; + players: { + maxPerIp?: number; + maxUnconnected?: number; + unconnectedExpireAfter: number; + autoDestroyAfter?: number; + }; +} + +export interface LobbyRule { + tags: Record; + config: Partial; +} + +export interface LobbyConfig extends Record { + regions: string[]; + destroyOnEmptyAfter?: number | null; + unreadyExpireAfter: number; + maxPlayers: number; + maxPlayersDirect: number; + enableDynamicMaxPlayers?: PlayerRange; + enableDynamicMaxPlayersDirect?: PlayerRange; + enableCreate: boolean; + enableDestroy: boolean; + enableFind: boolean; + enableFindOrCreate: boolean; + enableJoin: boolean; + enableList: boolean; + backend: LobbyBackend; +} + +export interface PlayerRange { + min: number; + max: number; +} + +export type LobbyBackend = { test: BackendTestConfig } | { localDevelopment: BackendLocalDevelopmentConfig } | { server: BackendServerConfig }; + diff --git a/modules/lobbies/docs/UNCONNECTED_PLAYERS.md b/modules/lobbies/docs/UNCONNECTED_PLAYERS.md new file mode 100644 index 00000000..1a183fee --- /dev/null +++ b/modules/lobbies/docs/UNCONNECTED_PLAYERS.md @@ -0,0 +1,15 @@ +# Unconnected Players + +## Why it exists? + +- high load & low player caps +- preventing botting + +## What happens when players fail to connect? + +- Unconnected players stack up +- How lobbies API handles it + - Max players per IP: if creating another player and goes over ip limit, will + delete the old unconnected player for the same IP + - Maximum unconnected players: if too many unconnected players, we'll start + discarding the oldest unconnected player diff --git a/modules/lobbies/module.json b/modules/lobbies/module.json new file mode 100644 index 00000000..eb85fc0d --- /dev/null +++ b/modules/lobbies/module.json @@ -0,0 +1,152 @@ +{ + "status": "stable", + "name": "Lobbies", + "description": "Lobby & player management.", + "icon": "game-board", + "tags": [ + "core", + "multiplayer" + ], + "authors": [ + "NathanFlurry" + ], + "scripts": { + "create": { + "name": "Create Lobby", + "description": "Creates a new lobby on-demand.", + "public": true + }, + "destroy": { + "name": "Destroy Lobby", + "description": "Destroys an existing lobby.", + "public": true + }, + "find_or_create": { + "name": "Find Or Create Lobby", + "description": "Finds a lobby or creates one if there are no available spots for players.", + "public": true + }, + "join": { + "name": "Join Lobby", + "description": "Add a player to an existing lobby.", + "public": true + }, + "list": { + "name": "List Lobbies", + "description": "List & query all lobbies.", + "public": true + }, + "set_lobby_ready": { + "name": "Set Lobby Ready", + "description": "Called on lobby startup after initiation to notify it can start accepting player. This should be called after operations like loading maps are complete.", + "public": true + }, + "set_player_connected": { + "name": "Set Player Connected", + "description": "Called when a player connects to the lobby.", + "public": true + }, + "set_player_disconnected": { + "name": "Set Player Disconnected", + "description": "Called when a player disconnects from the lobby.", + "public": true + }, + "find": { + "name": "Find Lobby", + "description": "Finds an existing lobby with a given query. This will not create a new lobby, see `find_or_create` instead.", + "public": true + }, + "force_gc": { + "name": "Force Garbage Collection", + "description": "Rarely used. Forces the matchmaker to purge lobbies & players.", + "public": false + }, + "list_regions": { + "name": "List Regions", + "description": "List available regions.", + "public": false + } + }, + "actors": { + "lobby_manager": {} + }, + "errors": { + "lobby_not_found": { + "name": "Lobby Not Found", + "description": "Lobby not found." + }, + "lobby_cancelled": { + "name": "Lobby Cancelled", + "description": "Lobby stopped while attempting to join." + }, + "lobby_create_missing_players": { + "name": "Lobby Create Missing Players", + "description": "When creating a lobby with `config.lobbies.autoDestroyWhenEmpty`, a lobby must be created with players in order to avoid creating an empty lobby." + }, + "lobby_full": { + "name": "Lobby Full", + "description": "No more players can join this lobby." + }, + "more_players_than_max": { + "name": "More Players Than Max", + "description": "More players were passed to the create lobby than the number of max players in a lobby." + }, + "lobby_already_ready": { + "name": "Lobby Already Ready", + "description": "Lobby already set as ready." + }, + "player_already_connected": { + "name": "Player Already Connected", + "description": "The player has already connected to this server. This error helps mitigate botting attacks by only allowing one scoket to connect to a game server for every player." + }, + "player_disconnected": { + "name": "Player Disconnected", + "description": "The player has already disconnected from the server. Create a new player for the specified lobby using the `join` script." + }, + "no_matching_lobbies": { + "name": "No Matching Lobbies", + "description": "No lobbies matched the given query." + }, + "too_many_players_for_ip": { + "name": "Too Many Players For IP", + "description": "The player has too many existing players for the given IP." + }, + "cannot_mutate_lobbies": { + "name": "Cannot Mutate Lobbies", + "description": "This backend doesn't let you create or destroy lobbies." + }, + "lobby_token_required": { + "name": "Lobby Token Required", + "description": "A lobby token was not provided when required for authentication." + }, + "region_not_found": { + "name": "Region Not Found", + "description": "Region not found." + } + }, + "dependencies": { + "tokens": {}, + "rivet": {} + }, + "defaultConfig": { + "lobbies": { + "destroyOnEmptyAfter": 60000, + "unreadyExpireAfter": 300000, + "maxPlayers": 16, + "maxPlayersDirect": 16, + "enableCreate": false, + "enableDestroy": false, + "enableFind": true, + "enableFindOrCreate": true, + "enableJoin": true, + "enableList": true + }, + "lobbyRules": [], + "players": { + "maxPerIp": 8, + "maxUnconnected": 128, + "unconnectedExpireAfter": 60000, + "autoDestroyAfter": 4147200000 + } + } +} diff --git a/modules/lobbies/scripts/create.ts b/modules/lobbies/scripts/create.ts new file mode 100644 index 00000000..4d6304c0 --- /dev/null +++ b/modules/lobbies/scripts/create.ts @@ -0,0 +1,66 @@ +import { + CreateLobbyRequest, + CreateLobbyResponse, +} from "../actors/lobby_manager.ts"; +import { ScriptContext } from "../module.gen.ts"; +import { LobbyResponse } from "../utils/lobby/mod.ts"; +import { + buildPlayerResponseWithToken, + PlayerRequest, + PlayerResponseWithToken, +} from "../utils/player.ts"; + +export interface Request { + version: string; + region: string; + tags?: Record; + maxPlayers: number; + maxPlayersDirect: number; + + players: PlayerRequest[]; + + noWait?: boolean; +} + +export interface Response { + lobby: LobbyResponse; + players: PlayerResponseWithToken[]; +} + +// TODO: Doc why we create tokens on the script and not the DO + +export async function run( + ctx: ScriptContext, + req: Request, +): Promise { + const lobbyId = crypto.randomUUID(); + + const { lobby, players } = await ctx.actors.lobbyManager + .getOrCreateAndCall( + "default", + undefined, + "rpcCreateLobby", + { + lobby: { + lobbyId, + version: req.version, + region: req.region, + tags: req.tags, + maxPlayers: req.maxPlayers, + maxPlayersDirect: req.maxPlayersDirect, + }, + players: req.players, + noWait: req.noWait ?? false, + }, + ); + + const playerResponses = []; + for (const player of players) { + playerResponses.push(await buildPlayerResponseWithToken(ctx, player)); + } + + return { + lobby, + players: playerResponses, + }; +} diff --git a/modules/lobbies/scripts/destroy.ts b/modules/lobbies/scripts/destroy.ts new file mode 100644 index 00000000..1c180b27 --- /dev/null +++ b/modules/lobbies/scripts/destroy.ts @@ -0,0 +1,23 @@ +import { DestroyLobbyRequest } from "../actors/lobby_manager.ts"; +import { ScriptContext } from "../module.gen.ts"; + +export interface Request { + lobbyId: string; +} + +export interface Response { +} + +export async function run( + ctx: ScriptContext, + req: Request, +): Promise { + await ctx.actors.lobbyManager.getOrCreateAndCall( + "default", + undefined, + "rpcDestroyLobby", + { lobbyId: req.lobbyId } + ); + + return {}; +} diff --git a/modules/lobbies/scripts/find.ts b/modules/lobbies/scripts/find.ts new file mode 100644 index 00000000..e5ac17d7 --- /dev/null +++ b/modules/lobbies/scripts/find.ts @@ -0,0 +1,55 @@ +import { + FindLobbyRequest, + FindLobbyResponse, +} from "../actors/lobby_manager.ts"; +import { ScriptContext } from "../module.gen.ts"; +import { LobbyResponse } from "../utils/lobby/mod.ts"; +import { + buildPlayerResponseWithToken, + PlayerRequest, + PlayerResponseWithToken, +} from "../utils/player.ts"; + +export interface Request { + version: string; + regions?: string[]; + tags?: Record; + players: PlayerRequest[]; + noWait?: boolean; +} + +export interface Response { + lobby: LobbyResponse; + players: PlayerResponseWithToken[]; +} + +export async function run( + ctx: ScriptContext, + req: Request, +): Promise { + const { lobby, players } = await ctx.actors.lobbyManager + .getOrCreateAndCall( + "default", + undefined, + "rpcFindLobby", + { + query: { + version: req.version, + regions: req.regions, + tags: req.tags, + }, + players: req.players, + noWait: req.noWait ?? false, + } + ); + + const playerResponses = []; + for (const player of players) { + playerResponses.push(await buildPlayerResponseWithToken(ctx, player)); + } + + return { + lobby, + players: playerResponses, + }; +} diff --git a/modules/lobbies/scripts/find_or_create.ts b/modules/lobbies/scripts/find_or_create.ts new file mode 100644 index 00000000..b54ef93e --- /dev/null +++ b/modules/lobbies/scripts/find_or_create.ts @@ -0,0 +1,72 @@ +import { + FindOrCreateLobbyRequest, + FindOrCreateLobbyResponse, +} from "../actors/lobby_manager.ts"; +import { ScriptContext } from "../module.gen.ts"; +import { LobbyResponse } from "../utils/lobby/mod.ts"; +import { + buildPlayerResponseWithToken, + PlayerRequest, + PlayerResponseWithToken, +} from "../utils/player.ts"; + +export interface Request { + version: string; + regions?: string[]; + tags?: Record; + players: PlayerRequest[]; + noWait?: boolean; + + createConfig: { + region: string; + tags?: Record; + maxPlayers: number; + maxPlayersDirect: number; + }; +} + +export interface Response { + lobby: LobbyResponse; + players: PlayerResponseWithToken[]; +} + +export async function run( + ctx: ScriptContext, + req: Request, +): Promise { + const lobbyId = crypto.randomUUID(); + + const { lobby, players } = await ctx.actors + .lobbyManager.getOrCreateAndCall( + "default", + undefined, + "rpcFindOrCreateLobby", + { + query: { + version: req.version, + regions: req.regions, + tags: req.tags, + }, + lobby: { + lobbyId, + version: req.version, + region: req.createConfig.region, + tags: req.createConfig.tags, + maxPlayers: req.createConfig.maxPlayers, + maxPlayersDirect: req.createConfig.maxPlayersDirect, + }, + players: req.players, + noWait: req.noWait ?? false, + } + ); + + const playerResponses = []; + for (const player of players) { + playerResponses.push(await buildPlayerResponseWithToken(ctx, player)); + } + + return { + lobby, + players: playerResponses, + }; +} diff --git a/modules/lobbies/scripts/force_gc.ts b/modules/lobbies/scripts/force_gc.ts new file mode 100644 index 00000000..f4367c43 --- /dev/null +++ b/modules/lobbies/scripts/force_gc.ts @@ -0,0 +1,21 @@ +import { ScriptContext } from "../module.gen.ts"; + +export interface Request { +} + +export interface Response { +} + +export async function run( + ctx: ScriptContext, + _req: Request, +): Promise { + await ctx.actors.lobbyManager.getOrCreateAndCall( + "default", + undefined, + "gc", + undefined, + ); + + return {}; +} diff --git a/modules/lobbies/scripts/join.ts b/modules/lobbies/scripts/join.ts new file mode 100644 index 00000000..1ba94982 --- /dev/null +++ b/modules/lobbies/scripts/join.ts @@ -0,0 +1,49 @@ +import { + JoinLobbyRequest, + JoinLobbyResponse, +} from "../actors/lobby_manager.ts"; +import { ScriptContext } from "../module.gen.ts"; +import { LobbyResponse } from "../utils/lobby/mod.ts"; +import { + buildPlayerResponseWithToken, + PlayerRequest, + PlayerResponseWithToken, +} from "../utils/player.ts"; + +export interface Request { + lobbyId: string; + players: PlayerRequest[]; + noWait?: boolean; +} + +export interface Response { + lobby: LobbyResponse; + players: PlayerResponseWithToken[]; +} + +export async function run( + ctx: ScriptContext, + req: Request, +): Promise { + const { lobby, players } = await ctx.actors + .lobbyManager.getOrCreateAndCall( + "default", + undefined, + "rpcJoinLobby", + { + lobbyId: req.lobbyId, + players: req.players, + noWait: req.noWait ?? false, + } + ); + + const playerResponses = []; + for (const player of players) { + playerResponses.push(await buildPlayerResponseWithToken(ctx, player)); + } + + return { + lobby, + players: playerResponses, + }; +} diff --git a/modules/lobbies/scripts/list.ts b/modules/lobbies/scripts/list.ts new file mode 100644 index 00000000..cb6fdf9e --- /dev/null +++ b/modules/lobbies/scripts/list.ts @@ -0,0 +1,56 @@ +import { + ListLobbiesRequest, + ListLobbiesResponse, +} from "../actors/lobby_manager.ts"; +import { ScriptContext } from "../module.gen.ts"; + +export interface Request { + version: string; + regions?: string[]; + tags?: Record; +} + +export interface Response { + // TODO: Populate this + lobbies: LobbyListEntry[]; +} + +interface LobbyListEntry { + id: string; + version: string; + tags: Record; +} + +export async function run( + ctx: ScriptContext, + req: Request, +): Promise { + // TODO: Cache this without hitting the DO + + const { lobbies } = await ctx.actors.lobbyManager.getOrCreateAndCall< + undefined, + ListLobbiesRequest, + ListLobbiesResponse + >( + "default", + undefined, + "rpcListLobbies", + { + version: req.version, + regions: req.regions, + tags: req.tags, + }, + ); + + const lobbyList = lobbies.map((lobby) => ({ + id: lobby.id, + version: lobby.version, + tags: lobby.tags, + createdAt: lobby.createdAt, + players: lobby.players, + maxPlayers: lobby.maxPlayers, + maxPlayersDirect: lobby.maxPlayersDirect, + })); + + return { lobbies: lobbyList }; +} diff --git a/modules/lobbies/scripts/list_regions.ts b/modules/lobbies/scripts/list_regions.ts new file mode 100644 index 00000000..447b21c6 --- /dev/null +++ b/modules/lobbies/scripts/list_regions.ts @@ -0,0 +1,23 @@ +import { RuntimeError, ScriptContext } from "../module.gen.ts"; +import { getLobbyConfig } from "../utils/lobby_config.ts"; +import { Region, regionsForBackend } from "../utils/region.ts"; + +export interface Request { + tags?: Record, +} + +export interface Response { + regions: Region[]; +} + +export async function run( + ctx: ScriptContext, + req: Request, +): Promise { + const lobbyConfig = getLobbyConfig(ctx.config, req.tags ?? {}); + + const regions = regionsForBackend(lobbyConfig.backend) + + return { regions }; +} + diff --git a/modules/lobbies/scripts/set_lobby_ready.ts b/modules/lobbies/scripts/set_lobby_ready.ts new file mode 100644 index 00000000..98b5a9bb --- /dev/null +++ b/modules/lobbies/scripts/set_lobby_ready.ts @@ -0,0 +1,43 @@ +import { SetLobbyReadyRequest } from "../actors/lobby_manager.ts"; +import { RuntimeError, ScriptContext } from "../module.gen.ts"; + +export interface Request { + lobbyId?: string; + lobbyToken?: string; +} + +export interface Response { +} + +export async function run( + ctx: ScriptContext, + req: Request, +): Promise { + let lobbyId: string; + let hasLobbyToken: boolean; + if (req.lobbyToken) { + const { token } = await ctx.modules.tokens.validate({ + token: req.lobbyToken, + }); + lobbyId = token.meta.lobbyId; + hasLobbyToken = true; + } else if (req.lobbyId) { + lobbyId = req.lobbyId; + hasLobbyToken = false; + } else { + throw new RuntimeError("lobby_token_required"); + } + + await ctx.actors.lobbyManager.getOrCreateAndCall< + undefined, + SetLobbyReadyRequest, + undefined + >( + "default", + undefined, + "rpcSetLobbyReady", + { lobbyId, hasLobbyToken }, + ); + + return {}; +} diff --git a/modules/lobbies/scripts/set_player_connected.ts b/modules/lobbies/scripts/set_player_connected.ts new file mode 100644 index 00000000..fd200e35 --- /dev/null +++ b/modules/lobbies/scripts/set_player_connected.ts @@ -0,0 +1,50 @@ +import { SetPlayersConnectedRequest } from "../actors/lobby_manager.ts"; +import { RuntimeError, ScriptContext, UnreachableError } from "../module.gen.ts"; + +export interface Request { + lobbyId?: string; + lobbyToken?: string; + playerTokens: string[]; +} + +export interface Response { +} + +export async function run( + ctx: ScriptContext, + req: Request, +): Promise { + let lobbyId: string; + let hasLobbyToken: boolean; + if (req.lobbyToken) { + const { token } = await ctx.modules.tokens.validate({ + token: req.lobbyToken, + }); + lobbyId = token.meta.lobbyId; + hasLobbyToken = true; + } else if (req.lobbyId) { + lobbyId = req.lobbyId; + hasLobbyToken = false; + } else { + throw new RuntimeError("lobby_token_required"); + } + + const playerIds: string[] = []; + for (const playerToken of req.playerTokens) { + const { token } = await ctx.modules.tokens.validate({ token: playerToken }); + playerIds.push(token.meta.playerId); + } + + await ctx.actors.lobbyManager.getOrCreateAndCall< + undefined, + SetPlayersConnectedRequest, + undefined + >( + "default", + undefined, + "rpcSetPlayersConnected", + { lobbyId, hasLobbyToken, playerIds }, + ); + + return {}; +} diff --git a/modules/lobbies/scripts/set_player_disconnected.ts b/modules/lobbies/scripts/set_player_disconnected.ts new file mode 100644 index 00000000..4a0795a2 --- /dev/null +++ b/modules/lobbies/scripts/set_player_disconnected.ts @@ -0,0 +1,46 @@ +import { DestroyPlayersRequest } from "../actors/lobby_manager.ts"; +import { RuntimeError, ScriptContext } from "../module.gen.ts"; + +export interface Request { + lobbyId?: string; + lobbyToken?: string; + playerTokens: string[]; +} + +export interface Response { +} + +export async function run( + ctx: ScriptContext, + req: Request, +): Promise { + let lobbyId: string; + let hasLobbyToken: boolean; + if (req.lobbyToken) { + const { token } = await ctx.modules.tokens.validate({ + token: req.lobbyToken, + }); + lobbyId = token.meta.lobbyId; + hasLobbyToken = true; + } else if (req.lobbyId) { + lobbyId = req.lobbyId; + hasLobbyToken = false; + } else { + throw new RuntimeError("lobby_token_required"); + } + + const playerIds: string[] = []; + for (const playerToken of req.playerTokens) { + const { token } = await ctx.modules.tokens.validate({ token: playerToken }); + playerIds.push(token.meta.playerId); + } + + await ctx.actors.lobbyManager.getOrCreateAndCall( + "default", + undefined, + "rpcDestroyPlayers", + { lobbyId, hasLobbyToken, playerIds } + ); + + return {}; +} diff --git a/modules/lobbies/sdk_addons/godot/multiplayer_manager.gd b/modules/lobbies/sdk_addons/godot/multiplayer_manager.gd new file mode 100644 index 00000000..b2e76614 --- /dev/null +++ b/modules/lobbies/sdk_addons/godot/multiplayer_manager.gd @@ -0,0 +1,308 @@ +extends Node +class_name BackendMultiplayerManager + +enum Transport { ENET, WEB_SOCKET } + +# MARK: User Settings +var transport = Transport.ENET +var port_name = "game" + +# MARK: Signals +## Client has successfully connected & authenticated to the server. +signal server_connected() + +## Client has disconnected from the server. +signal server_disconnected() + +## Client connected & authenticated to the server. Only called server-side. +signal client_connected(id: int) + +## Client disconnected from the server. Only called server-side. +signal client_disconnected(id: int) + +# MARK: State +## If running in server mode. +## +## Configured by adding `--server` flag to process. +var is_server: bool + +## Peer connected to the server. +var peer: MultiplayerPeer + +## Multiplayer case to SceneMultiplayer +var _scene_multiplayer: SceneMultiplayer: + get: + return multiplayer as SceneMultiplayer + +## If the multiplayer server has started. +var _multiplayer_setup = false + +## Hostname to run the server on. +## +## Overridden with SERVER_HOSTNAME environment variable. +## +## Server only +var _server_hostname: String = "127.0.0.1" + +## Port to run the server on. +## +## Overridden with SERVER_PORT environment variable. +## +## Server only +var _server_port: int = 7777 + +## Token used to authenticate for this lobby. + +## +## Server only +var _lobby_id: String = "00000000-0000-0000-0000-000000000000" + +## Token used to authenticate for this lobby. +## +## Will be null for backends that do not support lobby tokens. +## +## Server only +var _lobby_token + +## All player tokens for players that have authenticated. +## +## Server only +var _player_tokens = {} + +## The player token for this client that will be sent on the next +## authentication. +## +## Client only +var _player_token = null + +## Sets up the authentication hooks on SceneMultiplayer. +func setup_multiplayer(): + # Validate only initialized once + if _multiplayer_setup: + BackendLogger.warning("setup_multiplayer already called") + return + _multiplayer_setup = true + + is_server = OS.get_cmdline_user_args().has("--server") + + # Setup auth + _scene_multiplayer.auth_callback = _auth_callback + _scene_multiplayer.auth_timeout = 15.0 + + # Setup signals + _scene_multiplayer.peer_connected.connect(_on_peer_connected) + _scene_multiplayer.peer_disconnected.connect(_on_peer_disconnected) + _scene_multiplayer.connected_to_server.connect(_on_connected_to_server) + _scene_multiplayer.connection_failed.connect(_on_connection_failed) + _scene_multiplayer.server_disconnected.connect(_on_server_disconnected) + _scene_multiplayer.peer_authenticating.connect(_on_peer_authenticating) + _scene_multiplayer.peer_authentication_failed.connect(_on_peer_authentication_failed) + + # Start server immediately + # + # Client will be started when `connect_to_lobby` is called + if is_server: + if OS.has_environment("SERVER_HOSTNAME"): + _server_hostname = OS.get_environment("SERVER_HOSTNAME") + + if OS.has_environment("SERVER_PORT"): + _server_port = OS.get_environment("SERVER_PORT").to_int() + + if OS.has_environment("LOBBY_ID"): + _lobby_id = OS.get_environment("LOBBY_ID") + else: + BackendLogger.warning("Missing lobby ID") + + if OS.has_environment("LOBBY_TOKEN"): + _lobby_token = OS.get_environment("LOBBY_TOKEN") + + # Start server + if transport == Transport.ENET: + BackendLogger.log("Starting ENet server: %s:%s" % [_server_hostname, _server_port]) + + peer = ENetMultiplayerPeer.new() + peer.set_bind_ip(_server_hostname) + peer.create_server(_server_port) + # TODO: crash if create server fails + multiplayer.set_multiplayer_peer(peer) + elif transport == Transport.WEB_SOCKET: + BackendLogger.log("Starting WebSocket server: %s:%s" % [_server_hostname, _server_port]) + + peer = WebSocketMultiplayerPeer.new() + peer.create_server(_server_port, _server_hostname) + # TODO: crash if create server fails + multiplayer.set_multiplayer_peer(peer) + else: + BackendLogger.error("Unsupported transport: %s" % transport) + OS.crash("Unsupported transport") + + # Notify lobby ready + var request = { + "lobbyId": _lobby_id, + } + if _lobby_token != null: + request["lobbyToken"] = _lobby_token + var response = await Backend.lobbies.set_lobby_ready(request).async() + if response.is_ok(): + BackendLogger.log("Lobby ready") + else: + BackendLogger.warning("Lobby ready failed failed: %s" % response.body) + OS.crash("Lobby ready failed") + return + +## Connect to a lobby returned from the backend. +func connect_to_lobby(lobby, player): + if !_multiplayer_setup: + BackendLogger.error("setup_multiplayer needs to be called in _ready") + return + if is_server: + BackendLogger.warning("Cannot called set_player_token on server") + return + + BackendLogger.log("Connecting to lobby: %s %s" % [lobby, player]) + + # Save token + _player_token = player.token + + # Extract port from backend + var hostname: String + var port: int + var is_tls: bool = false + if "server" in lobby.backend: + var backend_port = lobby.backend.server.ports[port_name] + hostname = backend_port.publicHostname + port = backend_port.publicPort + if backend_port.protocol == "https" or backend_port.protocol == "tcp_tls": + is_tls = true + elif "localDevelopment" in lobby.backend: + var backend_port = lobby.backend.localDevelopment.ports[port_name] + hostname = backend_port.hostname + port = backend_port.port + else: + BackendLogger.error("Unsupported lobby backend: %s" % lobby.backend) + return + + # Start server + if transport == Transport.ENET: + BackendLogger.log("Connecting to ENet server: %s:%s" % [hostname, port]) + + peer = ENetMultiplayerPeer.new() + peer.create_client(hostname, port) + multiplayer.set_multiplayer_peer(peer) + elif transport == Transport.WEB_SOCKET: + var ws_protocol: String + if is_tls: + ws_protocol = "wss" + else: + ws_protocol = "ws" + var url = "%s://%s:%s" % [ws_protocol, hostname, port] + + BackendLogger.log("Connecting to WebSocket server: %s" % url) + + peer = WebSocketMultiplayerPeer.new() + peer.create_client(url) + multiplayer.set_multiplayer_peer(peer) + else: + BackendLogger.error("Unsupported transport: %s" % transport) + +# MARK: Peers +func _on_peer_connected(id): + BackendLogger.log('Peer connected: %s' % id) + + if is_server: + client_connected.emit(id) + else: + server_connected.emit() + +func _on_peer_disconnected(id): + BackendLogger.log('Peer disconnected: %s' % id) + + if is_server: + # Remove player from lobby + var player_token = _player_tokens.get(id) + if player_token != null: + _player_tokens.erase(id) + BackendLogger.log("Removing player %s" % player_token) + + var request = { + "lobbyId": _lobby_id, + "playerTokens": [player_token], + } + if _lobby_token != null: + request["lobbyToken"] = _lobby_token + var response = await Backend.lobbies.set_player_disconnected(request).async() + if response.is_error(): + BackendLogger.warning("Player disconnect failed for %id: %s" % [id, response.body]) + else: + BackendLogger.warning("Player disconnected without player token: %s" % id) + return + + # Signal + client_disconnected.emit(id) + else: + server_disconnected.emit() + +func _on_connected_to_server(): + BackendLogger.log('Connected to server') + +func _on_connection_failed(): + BackendLogger.log('Connection failed') + +func _on_server_disconnected(): + BackendLogger.log('Server disconnected') + +# MARK: Authentication +func _auth_callback(id: int, buf: PackedByteArray): + if is_server: + # Read json + var json = JSON.new() + json.parse(buf.get_string_from_utf8()) + var data = json.get_data() + + BackendLogger.log("Player authenticating %s: %s" % [id, data]) + + # Check token + var player_token = data["player_token"] + if player_token == null: + BackendLogger.warning("Player token not provided in auth for %s" % id) + _scene_multiplayer.disconnect_peer(id) + return + + # Save player token in order to prevent race condition with + # disconnecting before authentication complete + _player_tokens[id] = data["player_token"] + + var request = { + "lobbyId": _lobby_id, + "playerTokens": [player_token] + } + if _lobby_token != null: + request["lobbyToken"] = _lobby_token + var response = await Backend.lobbies.set_player_connected(request).async() + if response.is_ok(): + BackendLogger.log("Player authenticated for %s" % id) + _scene_multiplayer.complete_auth(id) + else: + # Player will be cleaned up on disconnect handler + BackendLogger.warning("Player authentiation failed for %s: %s" % [id, response.body]) + _scene_multiplayer.disconnect_peer(id) + else: + # Server does not need to auth with client + _scene_multiplayer.complete_auth(id) + +func _on_peer_authenticating(id): + #if is_server: + #return + + BackendLogger.log("Authenticating with server") + var body = JSON.stringify({ "player_token": _player_token }) + (multiplayer as SceneMultiplayer).send_auth(id, body.to_utf8_buffer()) + + +func _on_peer_authentication_failed(id): + #if !is_server: + #return + + BackendLogger.warning("Client authentication failed %s" % id) + multiplayer.set_multiplayer_peer(null) + diff --git a/modules/lobbies/tests/e2e.ts b/modules/lobbies/tests/e2e.ts new file mode 100644 index 00000000..9689ff06 --- /dev/null +++ b/modules/lobbies/tests/e2e.ts @@ -0,0 +1,182 @@ +import { CreateLobbyRequest, CreateLobbyResponse } from "../actors/lobby_manager.ts"; +import { RuntimeError, test, TestContext } from "../module.gen.ts"; +import { + assertArrayIncludes, + assertEquals, + assertRejects, +} from "https://deno.land/std@0.208.0/assert/mod.ts"; + +const VERSION = "TODO"; + +test("e2e", async (ctx: TestContext) => { + // MARK: Create lobby + const { lobby, players } = await ctx.modules.lobbies.create({ + version: VERSION, + tags: {}, + players: [{}, {}], + maxPlayers: 8, + maxPlayersDirect: 8, + noWait: true, + }); + const { lobbyToken } = await setLobbyReady(ctx, lobby.id); + + // MARK: List lobbies + { + const { lobbies } = await ctx.modules.lobbies.list({}); + assertEquals(lobbies.length, 1); + assertEquals(lobbies[0]!.id, lobby.id); + } + + // MARK: Connect players + await ctx.modules.lobbies.setPlayerConnected({ + lobbyToken, + playerTokens: [players[0]!.token, players[1]!.token], + }); + + // MARK: Disconnect players + await ctx.modules.lobbies.setPlayerDisconnected({ + lobbyToken, + playerTokens: [players[0]!.token, players[1]!.token], + }); + + // MARK: Create players + { + const { players: players2 } = await ctx.modules.lobbies.join({ + lobbyId: lobby.id, + players: [{}], + }); + await ctx.modules.lobbies.setPlayerConnected({ + lobbyToken, + playerTokens: [players2[0]!.token], + }); + await ctx.modules.lobbies.setPlayerDisconnected({ + lobbyToken, + playerTokens: [players2[0]!.token], + }); + } + + // MARK: Destroy lobby + await ctx.modules.lobbies.destroy({ + lobbyId: lobby.id, + }); + + { + const { lobbies } = await ctx.modules.lobbies.list({}); + assertEquals(lobbies.length, 0); + } + + const error = await assertRejects(async () => { + await ctx.modules.lobbies.destroy({ lobbyId: lobby.id }); + }, RuntimeError); + assertEquals(error.code, "lobby_not_found"); +}); + +test("lobby tags", async (ctx: TestContext) => { + // MARK: Create lobbies + const { lobby: lobby1 } = await ctx.modules.lobbies.create( + { + version: VERSION, + tags: { gameMode: "a", region: "atl" }, + players: [{}], + maxPlayers: 8, + maxPlayersDirect: 8, + noWait: true, + }, + ); + await setLobbyReady(ctx, lobby1.id); + const { lobby: lobby2 } = await ctx.modules.lobbies.create( + { + version: VERSION, + tags: { gameMode: "a", region: "fra" }, + players: [{}], + maxPlayers: 8, + maxPlayersDirect: 8, + noWait: true, + }, + ); + await setLobbyReady(ctx, lobby2.id); + const { lobby: lobby3 } = await ctx.modules.lobbies.create( + { + version: VERSION, + tags: { gameMode: "b", region: "fra" }, + players: [{}], + maxPlayers: 8, + maxPlayersDirect: 8, + noWait: true, + }, + ); + await setLobbyReady(ctx, lobby3.id); + + // MARK: Find lobbies + const { lobby: lobby4 } = await ctx.modules.lobbies.find({ + version: VERSION, + tags: { gameMode: "a" }, + players: [{}], + }); + assertArrayIncludes([lobby1.id, lobby2.id], [lobby4.id]); + + const { lobby: lobby5 } = await ctx.modules.lobbies.find({ + version: VERSION, + tags: { gameMode: "b" }, + players: [{}], + }); + assertEquals(lobby5.id, lobby3.id); + + const { lobby: lobby6 } = await ctx.modules.lobbies.find({ + version: VERSION, + tags: { gameMode: "a", region: "fra" }, + players: [{}], + }); + assertEquals(lobby6.id, lobby2.id); +}); + +test("sort order", async (_ctx: TestContext) => { + // TODO: +}); + +test("lobby size", async (_ctx: TestContext) => { + // TODO: +}); + +test("max players per ip", async (_ctx: TestContext) => { + // TODO: +}); + +test("max players per ip with unconnected players", async (_ctx: TestContext) => { + // TODO: +}); + +test("max unconnected players", async (_ctx: TestContext) => { + // TODO: +}); + +test("player unconnected expire", async (_ctx: TestContext) => { + // TODO: +}); + +test("old player expire", async (_ctx: TestContext) => { +}); + +test("lobby unready expire", async (_ctx: TestContext) => { + // TODO: +}); + +test("empty lobby expire", async (_ctx: TestContext) => { + // TODO: +}); + +async function issueLobbyToken(ctx: TestContext, lobbyId: string): Promise { + // Issue another token for the lobby for tests + const { token: { token: lobbyToken } } = await ctx.modules.tokens.create({ + type: "lobby_test", + meta: { lobbyId }, + }); + + return lobbyToken; +} + +async function setLobbyReady(ctx: TestContext, lobbyId: string): Promise<{ lobbyToken: string }> { + const lobbyToken = await issueLobbyToken(ctx, lobbyId); + await ctx.modules.lobbies.setLobbyReady({ lobbyToken }); + return { lobbyToken }; +} diff --git a/modules/lobbies/utils/lobby/backend/local_development.ts b/modules/lobbies/utils/lobby/backend/local_development.ts new file mode 100644 index 00000000..9243103f --- /dev/null +++ b/modules/lobbies/utils/lobby/backend/local_development.ts @@ -0,0 +1,44 @@ +import { Region } from "../../region.ts"; + +export type BackendLocalDevelopmentPortProtocol = "http" | "tcp" | "udp"; + +// MARK: Config +export interface BackendLocalDevelopmentConfig { + version?: string; + tags?: Record, + maxPlayers?: number, + maxPlayersDirect?: number, + ports: Record +} + +export interface BackendLocalDevelopmentConfigPort { + protocol: BackendLocalDevelopmentPortProtocol; + hostname?: string; + port: number; +} + +// MARK: State +export interface LobbyBackendLocalDevelopmentState { + ports: Record; +} + +export interface LobbyBackendLocalDevelopmentPort { + protocol: BackendLocalDevelopmentPortProtocol; + hostname: string; + port: number; +} + +// MARK: Repsponse +export interface LobbyBackendLocalDevelopmentResponse { + ports: Record; +} + +export const REGIONS: Region[] = [ + { + id: "local", + display_name: "Local", + latitude: 32.232330, + longitude: -110.961670, + } +]; + diff --git a/modules/lobbies/utils/lobby/backend/server.ts b/modules/lobbies/utils/lobby/backend/server.ts new file mode 100644 index 00000000..61411ec4 --- /dev/null +++ b/modules/lobbies/utils/lobby/backend/server.ts @@ -0,0 +1,91 @@ +import { Region } from "../../region.ts"; +import { Server as RivetServer } from "../../rivet/types.ts"; +import * as rivetTypes from "../../rivet/types.ts"; + +// MARK: Config +export interface BackendServerConfig { + // TODO: Auto-determine build + resources: rivetTypes.Resources; + arguments?: string[]; + environment?: Record; + networkMode?: rivetTypes.NetworkMode; + ports: Record; +} + +export interface BackendServerConfigPort { + protocol: rivetTypes.PortProtocol; + internalPort?: number; + routing?: rivetTypes.PortRouting; +} + +// MARK: State +export interface LobbyBackendServerState { + serverId: string; + data?: RivetServer; +} + +// MARK: Response +export interface LobbyBackendServerResponse { + serverId: string; + ports?: Record; +} + +export interface LobbyBackendServerPortResponse { + protocol: rivetTypes.PortProtocol; + internalPort?: number; + publicHostname?: string; + publicPort?: number; + routing: rivetTypes.PortRouting; +} + +export const REGIONS: Region[] = [ + { + id: "atl", + display_name: "Atlanta", + latitude: 33.7490, + longitude: -84.3880, + }, + { + id: "lax", + display_name: "Los Angeles", + latitude: 34.0522, + longitude: -118.2437, + }, + { + id: "fra", + display_name: "Frankfurt", + latitude: 50.1109, + longitude: 8.6821, + }, + { + id: "syd", + display_name: "Sydney", + latitude: -33.8688, + longitude: 151.2093, + }, + { + id: "osa", + display_name: "Osaka", + latitude: 34.6937, + longitude: 135.5023, + }, + { + id: "gru", + display_name: "São Paulo", + latitude: -23.5505, + longitude: -46.6333, + }, + { + id: "bom", + display_name: "Mumbai", + latitude: 19.0760, + longitude: 72.8777, + }, + { + id: "sin", + display_name: "Singapore", + latitude: 1.3521, + longitude: 103.8198, + }, +]; + diff --git a/modules/lobbies/utils/lobby/backend/test.ts b/modules/lobbies/utils/lobby/backend/test.ts new file mode 100644 index 00000000..354dbe25 --- /dev/null +++ b/modules/lobbies/utils/lobby/backend/test.ts @@ -0,0 +1,20 @@ +import { Region } from "../../region.ts"; + +// MARK: Config +export type BackendTestConfig = Record; + +// MARK: State +export type LobbyBackendTestState = Record; + +// MARK: Response +export type LobbyBackendTestResponse = Record; + +export const REGIONS: Region[] = [ + { + id: "test", + display_name: "Test", + latitude: 33.67727501667558, + longitude: -106.47527637325621, + } +]; + diff --git a/modules/lobbies/utils/lobby/mod.ts b/modules/lobbies/utils/lobby/mod.ts new file mode 100644 index 00000000..268d4ace --- /dev/null +++ b/modules/lobbies/utils/lobby/mod.ts @@ -0,0 +1,64 @@ +import { + LobbyBackendTestResponse, + LobbyBackendTestState, +} from "./backend/test.ts"; +import { + LobbyBackendServerResponse, + LobbyBackendServerState, +} from "./backend/server.ts"; +import { PlayerState } from "../player.ts"; +import { LobbyBackendLocalDevelopmentResponse, LobbyBackendLocalDevelopmentState } from "./backend/local_development.ts"; + +export interface LobbyState { + id: string; + version: string; + region: string; + tags: Record; + + createdAt: number; + readyAt?: number; + /** + * Timestamp at which the last player left the lobby. + */ + emptyAt?: number; + + players: Record; + + maxPlayers: number; + maxPlayersDirect: number; + + backend: LobbyBackend; +} + +export type LobbyBackend = { test: LobbyBackendTestState } | { localDevelopment: LobbyBackendLocalDevelopmentState } | { server: LobbyBackendServerState }; + +/** + * Check if a lobby with the given tags matches a query. + */ +export function lobbyTagsMatch( + query: Record, + target: Record, +): boolean { + for (const key in query) { + if (target[key] != query[key]) return false; + } + return true; +} + +export interface LobbyResponse { + id: string; + version: string; + tags: Record; + + createdAt: number; + readyAt?: number; + + players: number; + maxPlayers: number; + maxPlayersDirect: number; + + backend: LobbyBackendResponse; +} + +export type LobbyBackendResponse = { test: LobbyBackendTestResponse } | { localDevelopment: LobbyBackendLocalDevelopmentResponse } | { server: LobbyBackendServerResponse }; + diff --git a/modules/lobbies/utils/lobby_config.ts b/modules/lobbies/utils/lobby_config.ts new file mode 100644 index 00000000..35fb2eb6 --- /dev/null +++ b/modules/lobbies/utils/lobby_config.ts @@ -0,0 +1,44 @@ +import { deepMerge } from "https://deno.land/std@0.224.0/collections/deep_merge.ts"; +import { Config, LobbyConfig } from "../config.ts"; +import { lobbyTagsMatch } from "./lobby/mod.ts"; + +export function getLobbyConfig( + userConfig: Config, + lobbyTags: Record, +): LobbyConfig { + let lobbyConfig = userConfig.lobbies; + + // Apply rules + for (const rule of userConfig.lobbyRules) { + if (lobbyTagsMatch(rule.tags, lobbyTags)) { + lobbyConfig = deepMerge(lobbyConfig, rule.config); + } + } + + return lobbyConfig; +} + +/** + * If lobbies can be created and destroyed. + * + * In some cases, there are a fixed number of lobbies. + */ +export function canMutateLobbies(lobbyConfig: LobbyConfig): boolean { + return !("localDevelopment" in lobbyConfig.backend); +} + +/** + * If lobby config requires lobby token. + */ +export function requiresLobbyToken(lobbyConfig: LobbyConfig): boolean { + return !("localDevelopment" in lobbyConfig.backend); +} + + +/** + * If lobby can call ready multiple times. + */ +export function canCallLobbyReadyMultipleTimes(lobbyConfig: LobbyConfig): boolean { + return "localDevelopment" in lobbyConfig.backend; +} + diff --git a/modules/lobbies/utils/player.ts b/modules/lobbies/utils/player.ts new file mode 100644 index 00000000..7fe52c0b --- /dev/null +++ b/modules/lobbies/utils/player.ts @@ -0,0 +1,30 @@ +import { ScriptContext } from "../module.gen.ts"; + +export interface PlayerState { + id: string; + lobbyId: string; + createdAt: number; + connectedAt?: number; + publicIp?: string; +} + +export type PlayerRequest = Record; + +export interface PlayerResponse { + id: string; +} + +export interface PlayerResponseWithToken extends PlayerResponse { + token: string; +} + +export async function buildPlayerResponseWithToken( + ctx: ScriptContext, + player: PlayerResponse, +): Promise { + const { token } = await ctx.modules.tokens.create({ + type: "player", + meta: { playerId: player.id }, + }); + return { ...player, token: token.token }; +} diff --git a/modules/lobbies/utils/region.ts b/modules/lobbies/utils/region.ts new file mode 100644 index 00000000..aa07c1bc --- /dev/null +++ b/modules/lobbies/utils/region.ts @@ -0,0 +1,24 @@ +import { + REGIONS as TEST_REGIONS, +} from "./lobby/backend/test.ts"; +import { + REGIONS as SERVER_REGIONS, +} from "./lobby/backend/server.ts"; +import { REGIONS as LOCAL_DEVELOPMENT_REGIONS } from "./lobby/backend/local_development.ts"; +import { UnreachableError } from "../module.gen.ts"; +import { LobbyBackend } from "../config.ts"; + +export interface Region { + id: string; + display_name: string; + latitude: number; + longitude: number; +} + +export function regionsForBackend(backend: LobbyBackend): Region[] { + if ("test" in backend) return TEST_REGIONS; + else if ("localDevelopment" in backend) return LOCAL_DEVELOPMENT_REGIONS; + else if ("server" in backend) return SERVER_REGIONS; + else throw new UnreachableError(backend); +} + diff --git a/modules/lobbies/utils/rivet/endpoints.ts b/modules/lobbies/utils/rivet/endpoints.ts new file mode 100644 index 00000000..faedd1dc --- /dev/null +++ b/modules/lobbies/utils/rivet/endpoints.ts @@ -0,0 +1,37 @@ +import { + NetworkMode, + PortProtocol, + PortRouting, + Resources, + Server, +} from "./types.ts"; + +export interface CreateServerNetworkRequest { + mode?: NetworkMode; + ports: Record; +} +export interface CreateServerPortRequest { + protocol: PortProtocol; + internal_port?: number; + routing?: PortRouting; +} +export interface CreateServerRequest { + datacenter: string; + tags?: unknown; + image_id: string; + arguments?: string[]; + environment?: Record; + network: CreateServerNetworkRequest; + resources: Resources; + kill_timeout?: number; + webbhook_url?: string; +} +export interface CreateServerResponse { + server: Server; +} +export interface DestroyServerResponse { + server_id: string; +} +export interface GetServerResponse { + server: Server; +} diff --git a/modules/lobbies/utils/rivet/types.ts b/modules/lobbies/utils/rivet/types.ts new file mode 100644 index 00000000..f169f790 --- /dev/null +++ b/modules/lobbies/utils/rivet/types.ts @@ -0,0 +1,40 @@ +import { Empty } from "../../module.gen.ts"; + +export type GameGuardRouting = Empty; +export type HostRouting = Empty; +export interface Network { + mode?: NetworkMode; + ports: Record; +} +export type NetworkMode = "bridge" | "host"; +export interface Port { + protocol: PortProtocol; + server_port?: number; + public_hostname?: string; + public_port?: number; + routing: PortRouting; +} +export type PortProtocol = "http" | "https" | "tcp" | "tcp_tls" | "udp"; +export interface PortRouting { + game_guard?: GameGuardRouting; + host?: HostRouting; +} +export interface Resources { + cpu: number; + memory: number; +} +export interface Server { + server_id: string; + game_id: string; + datacenter_id: string; + cluster_id: string; + metadata?: unknown; + image_id: string; + args?: string[]; + environment?: Record; + network: Network; + resources: Resources; + kill_timeout?: number; + create_ts: number; + destroy_ts?: number; +} diff --git a/modules/rivet/config.ts b/modules/rivet/config.ts new file mode 100644 index 00000000..fcde8664 --- /dev/null +++ b/modules/rivet/config.ts @@ -0,0 +1,4 @@ +export interface Config { + apiEndpoint: string; + serviceTokenVariable: string; +} diff --git a/modules/rivet/module.json b/modules/rivet/module.json new file mode 100644 index 00000000..37b253ac --- /dev/null +++ b/modules/rivet/module.json @@ -0,0 +1,29 @@ +{ + "name": "Rivet API", + "description": "Helper for calling the Rivet API.", + "icon": "r", + "tags": [ + "core", + "api" + ], + "authors": [ + "NathanFlurry" + ], + "status": "stable", + "scripts": { + "call": { + "name": "Call", + "description": "Call a Rivet REST endpoint." + } + }, + "errors": { + "rivet_error": { + "name": "Rivet Error", + "description": "An error from the Rivet API." + } + }, + "defaultConfig": { + "apiEndpoint": "https://api.rivet.gg", + "serviceTokenVariable": "RIVET_SERVICE_TOKEN" + } +} diff --git a/modules/rivet/scripts/call.ts b/modules/rivet/scripts/call.ts new file mode 100644 index 00000000..5fb2cddb --- /dev/null +++ b/modules/rivet/scripts/call.ts @@ -0,0 +1,45 @@ +import { RuntimeError, ScriptContext } from "../module.gen.ts"; +import { assertExists } from "https://deno.land/std@0.208.0/assert/mod.ts"; + +export interface Request { + method: string; + path: string; + // TODO: Change back to unknown + body?: any; +} + +export interface Response { + // TODO: Change back to unknown + body: any; +} + +export async function run( + ctx: ScriptContext, + req: Request, +): Promise { + const serviceToken = ctx.environment.get(ctx.config.serviceTokenVariable); + assertExists( + serviceToken, + `Missing environment variable: ${ctx.config.serviceTokenVariable}`, + ); + + const response = await fetch(new URL(req.path, ctx.config.apiEndpoint), { + method: req.method, + headers: { + "Authorization": `Bearer ${serviceToken}`, + "Content-Type": "application/json", + }, + body: req.body !== undefined ? JSON.stringify(req.body) : undefined, + }); + if (!response.ok) { + throw new RuntimeError("rivet_error", { + meta: { + status: response.status, + text: await response.text(), + }, + }); + } + const body = await response.json(); + + return { body }; +} diff --git a/modules/tokens/scripts/create.ts b/modules/tokens/scripts/create.ts index ef5fc5a7..85a4fe66 100644 --- a/modules/tokens/scripts/create.ts +++ b/modules/tokens/scripts/create.ts @@ -4,7 +4,7 @@ import { tokenFromRow } from "../utils/types.ts"; export interface Request { type: string; - meta: { [key: string]: any }; + meta: Record, expireAt?: string; } diff --git a/sandbox/.dockerignore b/sandbox/.dockerignore new file mode 100644 index 00000000..40b878db --- /dev/null +++ b/sandbox/.dockerignore @@ -0,0 +1 @@ +node_modules/ \ No newline at end of file diff --git a/sandbox/.gitignore b/sandbox/.gitignore new file mode 100644 index 00000000..db872fac --- /dev/null +++ b/sandbox/.gitignore @@ -0,0 +1 @@ +sdk/ diff --git a/sandbox/.rivet/settings.json b/sandbox/.rivet/settings.json new file mode 100644 index 00000000..6516df70 --- /dev/null +++ b/sandbox/.rivet/settings.json @@ -0,0 +1 @@ +{"game_server": {"deploy": {"dockerfile_path": "game_server.Dockerfile"}}} \ No newline at end of file diff --git a/sandbox/backend.dev.json b/sandbox/backend.dev.json new file mode 100644 index 00000000..7506b238 --- /dev/null +++ b/sandbox/backend.dev.json @@ -0,0 +1,21 @@ +{ + "extends": "./backend.json", + "modules": { + "lobbies": { + "registry": "local", + "config": { + "lobbies": { + "regions": ["local"], + "backend": { + "localDevelopment": { + "tags": {}, + "ports": { + "game": { "protocol": "http", "port": 7777 } + } + } + } + } + } + } + } +} diff --git a/sandbox/backend.json b/sandbox/backend.json new file mode 100644 index 00000000..9ad7bab0 --- /dev/null +++ b/sandbox/backend.json @@ -0,0 +1,61 @@ +{ + "runtime": { + "cors": { + "origins": [ + "http://localhost:8080" + ] + } + }, + "registries": { + "local": { + "local": { + "directory": "../modules" + } + } + }, + "modules": { + "rate_limit": { + "registry": "local" + }, + "tokens": { + "registry": "local" + }, + "lobbies": { + "registry": "local", + "config": { + "lobbies": { + "regions": [ + "atl" + ], + "backend": { + "server": { + "environment": { + "SERVER_HOSTNAME": "0.0.0.0" + }, + "tags": { + + }, + "ports": { + "game": { + "protocol": "http", + "internalPort": 7777 + } + }, + "resources": { + "cpu": 250, + "memory": 250 + } + } + } + } + } + }, + "rivet": { + "registry": "local", + "config": { + "apiEndpoint": "https://api.nathan16.gameinc.io", + "serviceTokenVariable": "RIVET_SERVICE_TOKEN" + } + } + } +} diff --git a/sandbox/client/.env.yarn b/sandbox/client/.env.yarn new file mode 100644 index 00000000..74129607 --- /dev/null +++ b/sandbox/client/.env.yarn @@ -0,0 +1 @@ +FONTAWESOME_PACKAGE_TOKEN=E7A94808-3467-4150-B90D-EABDAEB9E0B4 diff --git a/sandbox/client/.env.yarn.example b/sandbox/client/.env.yarn.example new file mode 100644 index 00000000..3dfbfef7 --- /dev/null +++ b/sandbox/client/.env.yarn.example @@ -0,0 +1 @@ +FONTAWESOME_PACKAGE_TOKEN= \ No newline at end of file diff --git a/sandbox/client/.gitignore b/sandbox/client/.gitignore new file mode 100644 index 00000000..a547bf36 --- /dev/null +++ b/sandbox/client/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/sandbox/client/.yarn/install-state.gz b/sandbox/client/.yarn/install-state.gz new file mode 100644 index 00000000..cbf8c60a Binary files /dev/null and b/sandbox/client/.yarn/install-state.gz differ diff --git a/sandbox/client/.yarnrc.yml b/sandbox/client/.yarnrc.yml new file mode 100644 index 00000000..8ad42bf8 --- /dev/null +++ b/sandbox/client/.yarnrc.yml @@ -0,0 +1,7 @@ +nodeLinker: node-modules + +npmScopes: + fortawesome: + npmAlwaysAuth: true + npmRegistryServer: 'https://npm.fontawesome.com/' + npmAuthToken: ${FONTAWESOME_PACKAGE_TOKEN} \ No newline at end of file diff --git a/sandbox/client/index.html b/sandbox/client/index.html new file mode 100644 index 00000000..5634ae84 --- /dev/null +++ b/sandbox/client/index.html @@ -0,0 +1,20 @@ + + + + + + + OpenGB · Sandbox + + +
+ + + + diff --git a/sandbox/client/index.js b/sandbox/client/index.js new file mode 100644 index 00000000..402ef38d --- /dev/null +++ b/sandbox/client/index.js @@ -0,0 +1,100 @@ +/// +import { Backend } from './dist/sdk.mjs'; + +const urlParams = new URLSearchParams(window.location.search); +const environment = urlParams.get('env') || 'local'; +const API_ENDPOINT = environment === 'remote' ? "https://sandbox-back-vlk--staging.backend.nathan16.gameinc.io" : "http://localhost:6420"; + +const backend = new Backend({ endpoint: API_ENDPOINT }); + +console.log('backend', backend); + +window.findOrCreateLobby = async function() { + let res; + if (environment == 'local') { + res = await backend.lobbies.findOrCreate({ + version: "default", + regions: ["local"], + tags: {}, + players: [{}], + + createConfig: { + region: "local", + tags: {}, + maxPlayers: 8, + maxPlayersDirect: 8, + }, + }); + } else { + const region = "atl"; + const tags = {"foo": "bar"}; + res = await backend.lobbies.findOrCreate({ + version: "95cbad73-dcfd-4a74-96de-799b8ddc1b72", + regions: [region], + tags, + players: [{}], + + createConfig: { + region, + tags, + maxPlayers: 8, + maxPlayersDirect: 8, + }, + }); + } + + let { lobby, players } = res; + + // Test lobby connection + while (true) { + try { + await connect(lobby, players); + break; + } catch (err) { + console.warn('failed', err); + } + + await new Promise((resolve) => setTimeout(resolve, 500)); + } + + console.log('finished'); +} + +function connect(lobby, players) { + return new Promise((resolve, reject) => { + let hostname; + let port; + if (lobby.backend.server) { + port = lobby.backend.server.ports["game"]; + } else if (lobby.backend.localDevelopment) { + port = lobby.backend.localDevelopment.ports["game"]; + } else { + throw new Error("unknown backend"); + } + + console.log('connecting to', port); + + const ws = new WebSocket(`${port.isTls ? "wss" : "ws"}://${port.hostname}:${port.port}?token=${players[0].token}`); + ws.onopen = () => { + console.log('open'); + }; + ws.onerror = err => { + reject(err) + }; + ws.onmessage = ev => { + let [event, data] = JSON.parse(ev.data); + if (event == 'init') { + console.log('init', data) + ws.send(JSON.stringify(["ping", 1])) + } else if (event == 'pong') { + console.log('pong'); + ws.close(); + resolve(); + } else if (event == 'stats') { + // pass + } else { + console.warn('unknown event', event, data) + } + }; + }); +} diff --git a/sandbox/client/index.old.html b/sandbox/client/index.old.html new file mode 100644 index 00000000..a42ab12c --- /dev/null +++ b/sandbox/client/index.old.html @@ -0,0 +1,40 @@ + + + + + + OpenGB E2E Test + + +

OpenGB E2E Test

+ +
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/sandbox/client/package copy.json b/sandbox/client/package copy.json new file mode 100644 index 00000000..fe817ff4 --- /dev/null +++ b/sandbox/client/package copy.json @@ -0,0 +1,33 @@ +{ + "name": "@rivet-gg/sandbox", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@codemirror/lang-json": "^6.0.1", + "@codemirror/lint": "^6.8.0", + "@codemirror/view": "^6.28.4", + "@rivet-gg/api": "^24.1.2", + "@rivet-gg/components": "workspace:^", + "@tanstack/react-query": "^5.32.0", + "@tanstack/react-query-devtools": "^5.32.0", + "@uiw/codemirror-extensions-basic-setup": "^4.22.1", + "@uiw/codemirror-theme-github": "^4.22.1", + "@uiw/react-codemirror": "^4.22.1", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "simple-statistics": "^7.8.3" + }, + "devDependencies": { + "@types/react": "^18.2.66", + "@types/react-dom": "^18.2.22", + "@vitejs/plugin-react": "^4.2.1", + "typescript": "^5.2.2", + "vite": "^5.2.0" + } +} diff --git a/sandbox/client/package.json b/sandbox/client/package.json new file mode 100644 index 00000000..8e752b62 --- /dev/null +++ b/sandbox/client/package.json @@ -0,0 +1,36 @@ +{ + "name": "@rivet-gg/opengb-sandbox", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@codemirror/lang-json": "^6.0.1", + "@codemirror/lint": "^6.8.0", + "@codemirror/view": "^6.28.4", + "@rivet-gg/api": "^24.1.2", + "@rivet-gg/components": "https://github.com/rivet-gg/hub#workspace=@rivet-gg/components&head=08-08-feat_opengb_components_module_adjustments", + "@tanstack/react-query": "^5.32.0", + "@tanstack/react-query-devtools": "^5.32.0", + "@uiw/codemirror-extensions-basic-setup": "^4.22.1", + "@uiw/codemirror-theme-github": "^4.22.1", + "@uiw/react-codemirror": "^4.22.1", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "simple-statistics": "^7.8.3" + }, + "devDependencies": { + "@types/react": "^18.2.66", + "@types/react-dom": "^18.2.22", + "@vitejs/plugin-react": "^4.2.1", + "autoprefixer": "^10.4.20", + "tailwindcss": "^3.4.9", + "typescript": "^5.2.2", + "vite": "^5.2.0" + }, + "packageManager": "yarn@4.4.0" +} diff --git a/sandbox/client/postcss.config.js b/sandbox/client/postcss.config.js new file mode 100644 index 00000000..2aa7205d --- /dev/null +++ b/sandbox/client/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/sandbox/client/src/index.css b/sandbox/client/src/index.css new file mode 100644 index 00000000..dfaa945f --- /dev/null +++ b/sandbox/client/src/index.css @@ -0,0 +1,17 @@ +@import "@rivet-gg/components/theme.css"; + +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground min-h-screen; + } + #root { + @apply min-h-screen; + } +} diff --git a/sandbox/client/src/main.tsx b/sandbox/client/src/main.tsx new file mode 100644 index 00000000..31c8e4d2 --- /dev/null +++ b/sandbox/client/src/main.tsx @@ -0,0 +1,11 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import Root from "./root.tsx"; +import "./index.css"; + +// biome-ignore lint/style/noNonNullAssertion: it should always be present +ReactDOM.createRoot(document.getElementById("root")!).render( + + + , +); diff --git a/sandbox/client/src/root.tsx b/sandbox/client/src/root.tsx new file mode 100644 index 00000000..beddc5c2 --- /dev/null +++ b/sandbox/client/src/root.tsx @@ -0,0 +1,40 @@ +import { ConfigProvider, getConfig } from "@rivet-gg/components"; +import { Header } from "@rivet-gg/components/header"; +import { PageLayout, RootLayout } from "@rivet-gg/components/layout"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import { ReactQueryDevtools } from "@tanstack/react-query-devtools"; + +export const queryClient = new QueryClient(); + +declare global { + namespace RivetApp { + interface Config { + identityToken: string; + } + } +} + +function Root() { + return ( + + + +
Sandbox} + /> + + hello + + + © {new Date().getFullYear()} Rivet Gaming, Inc. All rights + reserved + + + + + + + ); +} + +export default Root; diff --git a/sandbox/client/src/vite-env.d.ts b/sandbox/client/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/sandbox/client/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/sandbox/client/tailwind.config.js b/sandbox/client/tailwind.config.js new file mode 100644 index 00000000..67b78396 --- /dev/null +++ b/sandbox/client/tailwind.config.js @@ -0,0 +1,8 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + "./src/**/*.{ts,tsx}", + "../../node_modules/@rivet-gg/components/**/*.{ts,tsx}", + ], + presets: [require("@rivet-gg/components/tailwind-base")], +}; diff --git a/sandbox/client/tsconfig.json b/sandbox/client/tsconfig.json new file mode 100644 index 00000000..7a287b91 --- /dev/null +++ b/sandbox/client/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["es2022", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/sandbox/client/tsconfig.node.json b/sandbox/client/tsconfig.node.json new file mode 100644 index 00000000..97ede7ee --- /dev/null +++ b/sandbox/client/tsconfig.node.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "strict": true + }, + "include": ["vite.config.ts"] +} diff --git a/sandbox/client/turbo.json b/sandbox/client/turbo.json new file mode 100644 index 00000000..35be9c68 --- /dev/null +++ b/sandbox/client/turbo.json @@ -0,0 +1,8 @@ +{ + "extends": ["//"], + "tasks": { + "build": { + "outputs": ["dist/**"] + } + } +} diff --git a/sandbox/client/vite.config.ts b/sandbox/client/vite.config.ts new file mode 100644 index 00000000..68c490f6 --- /dev/null +++ b/sandbox/client/vite.config.ts @@ -0,0 +1,10 @@ +import react from "@vitejs/plugin-react"; +import { defineConfig } from "vite"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + server: { + port: 1337, + }, +}); diff --git a/sandbox/client/yarn.lock b/sandbox/client/yarn.lock new file mode 100644 index 00000000..2f577243 --- /dev/null +++ b/sandbox/client/yarn.lock @@ -0,0 +1,4914 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10c0 + +"@alloc/quick-lru@npm:^5.2.0": + version: 5.2.0 + resolution: "@alloc/quick-lru@npm:5.2.0" + checksum: 10c0/7b878c48b9d25277d0e1a9b8b2f2312a314af806b4129dc902f2bc29ab09b58236e53964689feec187b28c80d2203aff03829754773a707a8a5987f1b7682d92 + languageName: node + linkType: hard + +"@ampproject/remapping@npm:^2.2.0": + version: 2.3.0 + resolution: "@ampproject/remapping@npm:2.3.0" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/81d63cca5443e0f0c72ae18b544cc28c7c0ec2cea46e7cb888bb0e0f411a1191d0d6b7af798d54e30777d8d1488b2ec0732aac2be342d3d7d3ffd271c6f489ed + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/code-frame@npm:7.24.7" + dependencies: + "@babel/highlight": "npm:^7.24.7" + picocolors: "npm:^1.0.0" + checksum: 10c0/ab0af539473a9f5aeaac7047e377cb4f4edd255a81d84a76058595f8540784cc3fbe8acf73f1e073981104562490aabfb23008cd66dc677a456a4ed5390fdde6 + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/compat-data@npm:7.25.2" + checksum: 10c0/5bf1f14d6e5f0d37c19543e99209ff4a94bb97915e1ce01e5334a144aa08cd56b6e62ece8135dac77e126723d63d4d4b96fc603a12c43b88c28f4b5e070270c5 + languageName: node + linkType: hard + +"@babel/core@npm:^7.24.5": + version: 7.25.2 + resolution: "@babel/core@npm:7.25.2" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.24.7" + "@babel/generator": "npm:^7.25.0" + "@babel/helper-compilation-targets": "npm:^7.25.2" + "@babel/helper-module-transforms": "npm:^7.25.2" + "@babel/helpers": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.0" + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.2" + "@babel/types": "npm:^7.25.2" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/a425fa40e73cb72b6464063a57c478bc2de9dbcc19c280f1b55a3d88b35d572e87e8594e7d7b4880331addb6faef641bbeb701b91b41b8806cd4deae5d74f401 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/generator@npm:7.25.0" + dependencies: + "@babel/types": "npm:^7.25.0" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^2.5.1" + checksum: 10c0/d0e2dfcdc8bdbb5dded34b705ceebf2e0bc1b06795a1530e64fb6a3ccf313c189db7f60c1616effae48114e1a25adc75855bc4496f3779a396b3377bae718ce7 + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/helper-compilation-targets@npm:7.25.2" + dependencies: + "@babel/compat-data": "npm:^7.25.2" + "@babel/helper-validator-option": "npm:^7.24.8" + browserslist: "npm:^4.23.1" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10c0/de10e986b5322c9f807350467dc845ec59df9e596a5926a3b5edbb4710d8e3b8009d4396690e70b88c3844fe8ec4042d61436dd4b92d1f5f75655cf43ab07e99 + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-module-imports@npm:7.24.7" + dependencies: + "@babel/traverse": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10c0/97c57db6c3eeaea31564286e328a9fb52b0313c5cfcc7eee4bc226aebcf0418ea5b6fe78673c0e4a774512ec6c86e309d0f326e99d2b37bfc16a25a032498af0 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/helper-module-transforms@npm:7.25.2" + dependencies: + "@babel/helper-module-imports": "npm:^7.24.7" + "@babel/helper-simple-access": "npm:^7.24.7" + "@babel/helper-validator-identifier": "npm:^7.24.7" + "@babel/traverse": "npm:^7.25.2" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/adaa15970ace0aee5934b5a633789b5795b6229c6a9cf3e09a7e80aa33e478675eee807006a862aa9aa517935d81f88a6db8a9f5936e3a2a40ec75f8062bc329 + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.24.7": + version: 7.24.8 + resolution: "@babel/helper-plugin-utils@npm:7.24.8" + checksum: 10c0/0376037f94a3bfe6b820a39f81220ac04f243eaee7193774b983e956c1750883ff236b30785795abbcda43fac3ece74750566830c2daa4d6e3870bb0dff34c2d + languageName: node + linkType: hard + +"@babel/helper-simple-access@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-simple-access@npm:7.24.7" + dependencies: + "@babel/traverse": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10c0/7230e419d59a85f93153415100a5faff23c133d7442c19e0cd070da1784d13cd29096ee6c5a5761065c44e8164f9f80e3a518c41a0256df39e38f7ad6744fed7 + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-string-parser@npm:7.24.8" + checksum: 10c0/6361f72076c17fabf305e252bf6d580106429014b3ab3c1f5c4eb3e6d465536ea6b670cc0e9a637a77a9ad40454d3e41361a2909e70e305116a23d68ce094c08 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-validator-identifier@npm:7.24.7" + checksum: 10c0/87ad608694c9477814093ed5b5c080c2e06d44cb1924ae8320474a74415241223cc2a725eea2640dd783ff1e3390e5f95eede978bc540e870053152e58f1d651 + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-validator-option@npm:7.24.8" + checksum: 10c0/73db93a34ae89201351288bee7623eed81a54000779462a986105b54ffe82069e764afd15171a428b82e7c7a9b5fec10b5d5603b216317a414062edf5c67a21f + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helpers@npm:7.25.0" + dependencies: + "@babel/template": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10c0/b7fe007fc4194268abf70aa3810365085e290e6528dcb9fbbf7a765d43c74b6369ce0f99c5ccd2d44c413853099daa449c9a0123f0b212ac8d18643f2e8174b8 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/highlight@npm:7.24.7" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.24.7" + chalk: "npm:^2.4.2" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10c0/674334c571d2bb9d1c89bdd87566383f59231e16bcdcf5bb7835babdf03c9ae585ca0887a7b25bdf78f303984af028df52831c7989fecebb5101cc132da9393a + languageName: node + linkType: hard + +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.3": + version: 7.25.3 + resolution: "@babel/parser@npm:7.25.3" + dependencies: + "@babel/types": "npm:^7.25.2" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/874b01349aedb805d6694f867a752fdc7469778fad76aca4548d2cc6ce96087c3ba5fb917a6f8d05d2d1a74aae309b5f50f1a4dba035f5a2c9fcfe6e106d2c4e + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-self@npm:^7.24.5": + version: 7.24.7 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/dcf3b732401f47f06bb29d6016e48066f66de00029a0ded98ddd9983c770a00a109d91cd04d2700d15ee0bcec3ae3027a5f12d69e15ec56efc0bcbfac65e92cb + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-source@npm:^7.24.1": + version: 7.24.7 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/970ef1264c7c6c416ab11610665d5309aec2bd2b9086ae394e1132e65138d97b060a7dc9d31054e050d6dc475b5a213938c9707c0202a5022d55dcb4c5abe28f + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.18.6": + version: 7.25.0 + resolution: "@babel/runtime@npm:7.25.0" + dependencies: + regenerator-runtime: "npm:^0.14.0" + checksum: 10c0/bd3faf246170826cef2071a94d7b47b49d532351360ecd17722d03f6713fd93a3eb3dbd9518faa778d5e8ccad7392a7a604e56bd37aaad3f3aa68d619ccd983d + languageName: node + linkType: hard + +"@babel/template@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/template@npm:7.25.0" + dependencies: + "@babel/code-frame": "npm:^7.24.7" + "@babel/parser": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10c0/4e31afd873215744c016e02b04f43b9fa23205d6d0766fb2e93eb4091c60c1b88897936adb895fb04e3c23de98dfdcbe31bc98daaa1a4e0133f78bb948e1209b + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.25.2": + version: 7.25.3 + resolution: "@babel/traverse@npm:7.25.3" + dependencies: + "@babel/code-frame": "npm:^7.24.7" + "@babel/generator": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.3" + "@babel/template": "npm:^7.25.0" + "@babel/types": "npm:^7.25.2" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10c0/4c8a1966fa90b53a783a4afd2fcdaa6ab1a912e6621dca9fcc6633e80ccb9491620e88caf73b537da4e16cefd537b548c87d7087868d5b0066414dea375c0e9b + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/types@npm:7.25.2" + dependencies: + "@babel/helper-string-parser": "npm:^7.24.8" + "@babel/helper-validator-identifier": "npm:^7.24.7" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/e489435856be239f8cc1120c90a197e4c2865385121908e5edb7223cfdff3768cba18f489adfe0c26955d9e7bbb1fb10625bc2517505908ceb0af848989bd864 + languageName: node + linkType: hard + +"@codemirror/autocomplete@npm:^6.0.0": + version: 6.18.0 + resolution: "@codemirror/autocomplete@npm:6.18.0" + dependencies: + "@codemirror/language": "npm:^6.0.0" + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.17.0" + "@lezer/common": "npm:^1.0.0" + peerDependencies: + "@codemirror/language": ^6.0.0 + "@codemirror/state": ^6.0.0 + "@codemirror/view": ^6.0.0 + "@lezer/common": ^1.0.0 + checksum: 10c0/dbcd6a63bd097ba78cbfbcb7f0096a8fbb801a3cabab7d6ff2c0e5b5f9af57b7609837d3a6104d1739bf021795e1204dd9423716e1a6517ab4323e4e5a54c96d + languageName: node + linkType: hard + +"@codemirror/commands@npm:^6.0.0, @codemirror/commands@npm:^6.1.0": + version: 6.6.0 + resolution: "@codemirror/commands@npm:6.6.0" + dependencies: + "@codemirror/language": "npm:^6.0.0" + "@codemirror/state": "npm:^6.4.0" + "@codemirror/view": "npm:^6.27.0" + "@lezer/common": "npm:^1.1.0" + checksum: 10c0/72be283779dafb1dc7ec4a7c80a7911b9edc251944f0a2c8112230154e7e84a0b3dedc3f09277935614b92eb3d3194b32fdbc3e167496c2501e8ee2ed4e42909 + languageName: node + linkType: hard + +"@codemirror/lang-javascript@npm:^6.2.2": + version: 6.2.2 + resolution: "@codemirror/lang-javascript@npm:6.2.2" + dependencies: + "@codemirror/autocomplete": "npm:^6.0.0" + "@codemirror/language": "npm:^6.6.0" + "@codemirror/lint": "npm:^6.0.0" + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.17.0" + "@lezer/common": "npm:^1.0.0" + "@lezer/javascript": "npm:^1.0.0" + checksum: 10c0/348969167fa5f18e8ec7e3614d408a95a54514f5625afcc680377d58a53d0f4ea412dcaeee65f0965e7d96f358d513b5c2744641b21ee5d0d976905b33715e48 + languageName: node + linkType: hard + +"@codemirror/lang-json@npm:^6.0.1": + version: 6.0.1 + resolution: "@codemirror/lang-json@npm:6.0.1" + dependencies: + "@codemirror/language": "npm:^6.0.0" + "@lezer/json": "npm:^1.0.0" + checksum: 10c0/c70301ba43d44dbd1ff0ccab6ec6e3fb9825d61d4854b4839441a8144a9c96997acdad16d93199d157308dd80088a5e9f14b66f395c7e79f4dadc6b4e70ce8a8 + languageName: node + linkType: hard + +"@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.6.0": + version: 6.10.2 + resolution: "@codemirror/language@npm:6.10.2" + dependencies: + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.23.0" + "@lezer/common": "npm:^1.1.0" + "@lezer/highlight": "npm:^1.0.0" + "@lezer/lr": "npm:^1.0.0" + style-mod: "npm:^4.0.0" + checksum: 10c0/ac9b24dffb3aa6f502283dfe2bc4b4038f9fecbed9450fc4a72d408b9a09dc254f9af735b98091531829da163eb116e4cfa95aeacacff4fd36ef95cd9a54c4a6 + languageName: node + linkType: hard + +"@codemirror/lint@npm:^6.0.0, @codemirror/lint@npm:^6.8.0": + version: 6.8.1 + resolution: "@codemirror/lint@npm:6.8.1" + dependencies: + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.0.0" + crelt: "npm:^1.0.5" + checksum: 10c0/3e7ca352fe08dd11cea4f3b5cdccff2fd08afb5393fdaf98ac659ef368d9169b4d42618c4f856168910a5d1bae7aa1ab6c72020be85b56ccdeb7f678ceb65b6d + languageName: node + linkType: hard + +"@codemirror/search@npm:^6.0.0": + version: 6.5.6 + resolution: "@codemirror/search@npm:6.5.6" + dependencies: + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.0.0" + crelt: "npm:^1.0.5" + checksum: 10c0/4bb8ca46d105e4b7eb5830c65abc61302f5cc86f0118c5ad3f0fe72d2a7f7309a7394eba8c784a8ac152569e16003f6edf3d69a7da6dac0c7abe96fe5395ed9b + languageName: node + linkType: hard + +"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.1.1, @codemirror/state@npm:^6.4.0": + version: 6.4.1 + resolution: "@codemirror/state@npm:6.4.1" + checksum: 10c0/cdab74d0ca4e262531a257ac419c9c44124f3ace8b0ca1262598a9218fbb6fd8f0afeb4b5ed2f64552a9573a0fc5d55481d4b9b05e9505ef729f9bd0f9469423 + languageName: node + linkType: hard + +"@codemirror/theme-one-dark@npm:^6.0.0": + version: 6.1.2 + resolution: "@codemirror/theme-one-dark@npm:6.1.2" + dependencies: + "@codemirror/language": "npm:^6.0.0" + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.0.0" + "@lezer/highlight": "npm:^1.0.0" + checksum: 10c0/d0d70ce1e03fa7e5d51cc72d8bdef043f30e14a5aee88f4dd71b64e176c3d68629c82390b9cfdab8cc1ac20d35703b65fe9160051fddc873aa67c613d9525a3d + languageName: node + linkType: hard + +"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.27.0, @codemirror/view@npm:^6.28.4": + version: 6.30.0 + resolution: "@codemirror/view@npm:6.30.0" + dependencies: + "@codemirror/state": "npm:^6.4.0" + style-mod: "npm:^4.1.0" + w3c-keyname: "npm:^2.2.4" + checksum: 10c0/cfc572a20f7db3e1571c28d8835f57679e2c4a4cc4a72d9eb0cd43ce5f250f3c2f178d28b36e2c44f6a7d425ccd0cd287e84c1f465f626c61ce8cdccbc6241b5 + languageName: node + linkType: hard + +"@esbuild/aix-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/aix-ppc64@npm:0.21.5" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm64@npm:0.21.5" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm@npm:0.21.5" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-x64@npm:0.21.5" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-arm64@npm:0.21.5" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-x64@npm:0.21.5" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-arm64@npm:0.21.5" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-x64@npm:0.21.5" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm64@npm:0.21.5" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm@npm:0.21.5" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ia32@npm:0.21.5" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-loong64@npm:0.21.5" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-mips64el@npm:0.21.5" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ppc64@npm:0.21.5" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-riscv64@npm:0.21.5" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-s390x@npm:0.21.5" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-x64@npm:0.21.5" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/netbsd-x64@npm:0.21.5" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/openbsd-x64@npm:0.21.5" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/sunos-x64@npm:0.21.5" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-arm64@npm:0.21.5" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-ia32@npm:0.21.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-x64@npm:0.21.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@floating-ui/core@npm:^1.6.0": + version: 1.6.7 + resolution: "@floating-ui/core@npm:1.6.7" + dependencies: + "@floating-ui/utils": "npm:^0.2.7" + checksum: 10c0/5c9ae274854f87ed09a61de758377d444c2b13ade7fd1067d74287b3e66de5340ae1281e48604b631c540855a2595cfc717adf9a2331eaadc4fa6d28e8571f64 + languageName: node + linkType: hard + +"@floating-ui/dom@npm:^1.0.0": + version: 1.6.10 + resolution: "@floating-ui/dom@npm:1.6.10" + dependencies: + "@floating-ui/core": "npm:^1.6.0" + "@floating-ui/utils": "npm:^0.2.7" + checksum: 10c0/ed7d7b400e00b2f31f1b8f11863af2cb95d0d3cd84635186ca31b41d8d9fe7fe12c85e4985617d7df7ed365abad48b327d0bae35934842007b4e1052d9780576 + languageName: node + linkType: hard + +"@floating-ui/react-dom@npm:^2.0.0": + version: 2.1.1 + resolution: "@floating-ui/react-dom@npm:2.1.1" + dependencies: + "@floating-ui/dom": "npm:^1.0.0" + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 10c0/732ab64600c511ceb0563b87bc557aa61789fec4f416a3f092bab89e508fa1d3ee5ade0f42051cc56eb5e4db867b87ab7fd48ce82db9fd4c01d94ffa08f60115 + languageName: node + linkType: hard + +"@floating-ui/utils@npm:^0.2.7": + version: 0.2.7 + resolution: "@floating-ui/utils@npm:0.2.7" + checksum: 10c0/0559ea5df2dc82219bad26e3509e9d2b70f6987e552dc8ddf7d7f5923cfeb7c44bf884567125b1f9cdb122a4c7e6e7ddbc666740bc30b0e4091ccbca63c6fb1c + languageName: node + linkType: hard + +"@fortawesome/fontawesome-common-types@npm:6.6.0": + version: 6.6.0 + resolution: "@fortawesome/fontawesome-common-types@npm:6.6.0::__archiveUrl=https%3A%2F%2Fnpm.fontawesome.com%2F%40fortawesome%2Ffontawesome-common-types%2F-%2F6.6.0%2Ffontawesome-common-types-6.6.0.tgz" + checksum: 10c0/f76e5959f6ce01355f599126a3a68facba578dc8ebb7ad40fbd22417b7056364a577c1887720ec9653d4efa5b704a01150f5064fc7de237d697fd80e3d9c83aa + languageName: node + linkType: hard + +"@fortawesome/fontawesome-svg-core@npm:^6.5.2": + version: 6.6.0 + resolution: "@fortawesome/fontawesome-svg-core@npm:6.6.0::__archiveUrl=https%3A%2F%2Fnpm.fontawesome.com%2F%40fortawesome%2Ffontawesome-svg-core%2F-%2F6.6.0%2Ffontawesome-svg-core-6.6.0.tgz" + dependencies: + "@fortawesome/fontawesome-common-types": "npm:6.6.0" + checksum: 10c0/38e2840791711524a3c57d9ea48a5a2e99da6fa3c657ba6beaad7ec3b8da31489a9e38f42b23d70584c75b579dc1ff8c67e075bc9789032278e4da54bb86ecfe + languageName: node + linkType: hard + +"@fortawesome/free-brands-svg-icons@npm:^6.5.2": + version: 6.6.0 + resolution: "@fortawesome/free-brands-svg-icons@npm:6.6.0::__archiveUrl=https%3A%2F%2Fnpm.fontawesome.com%2F%40fortawesome%2Ffree-brands-svg-icons%2F-%2F6.6.0%2Ffree-brands-svg-icons-6.6.0.tgz" + dependencies: + "@fortawesome/fontawesome-common-types": "npm:6.6.0" + checksum: 10c0/1135a22ff274939da477496f550b6750a1b5fd0ddd0c09bddb1874f2c183a5c8edb519de2cebf6454b12a8457c3eec587bdb6f68e96140cceeb6d02c1ec35479 + languageName: node + linkType: hard + +"@fortawesome/free-solid-svg-icons@npm:^6.5.2": + version: 6.6.0 + resolution: "@fortawesome/free-solid-svg-icons@npm:6.6.0::__archiveUrl=https%3A%2F%2Fnpm.fontawesome.com%2F%40fortawesome%2Ffree-solid-svg-icons%2F-%2F6.6.0%2Ffree-solid-svg-icons-6.6.0.tgz" + dependencies: + "@fortawesome/fontawesome-common-types": "npm:6.6.0" + checksum: 10c0/34828d5e682c6f9d19e3a892ff8a390128fa7dc68768b11c727c11b6a05e5efc929206bfbec83e9d3ae0590a6f6ea22fd5e447fea647e560650f7f3ef1cff543 + languageName: node + linkType: hard + +"@fortawesome/pro-regular-svg-icons@npm:^6.5.2": + version: 6.6.0 + resolution: "@fortawesome/pro-regular-svg-icons@npm:6.6.0::__archiveUrl=https%3A%2F%2Fnpm.fontawesome.com%2F%40fortawesome%2Fpro-regular-svg-icons%2F-%2F6.6.0%2Fpro-regular-svg-icons-6.6.0.tgz" + dependencies: + "@fortawesome/fontawesome-common-types": "npm:6.6.0" + checksum: 10c0/0f051410718d3c8cdd17fb3aa8b22db954e131d769de325f9abb3e6c1625472bb96838cef71974a36bfadb32604762217c6b49ac0d28377c0d23a37e7639caa9 + languageName: node + linkType: hard + +"@fortawesome/pro-solid-svg-icons@npm:^6.5.2": + version: 6.6.0 + resolution: "@fortawesome/pro-solid-svg-icons@npm:6.6.0::__archiveUrl=https%3A%2F%2Fnpm.fontawesome.com%2F%40fortawesome%2Fpro-solid-svg-icons%2F-%2F6.6.0%2Fpro-solid-svg-icons-6.6.0.tgz" + dependencies: + "@fortawesome/fontawesome-common-types": "npm:6.6.0" + checksum: 10c0/9bdf705e571a963e61023bfaa862ead6d51548a5101f3ae30b4214f8be56e44f3792ca289314321f5cb7843717f0d8e7d4c381d812e772da8f841753010ded7e + languageName: node + linkType: hard + +"@fortawesome/react-fontawesome@npm:^0.2.2": + version: 0.2.2 + resolution: "@fortawesome/react-fontawesome@npm:0.2.2::__archiveUrl=https%3A%2F%2Fnpm.fontawesome.com%2F%40fortawesome%2Freact-fontawesome%2F-%2F0.2.2%2Freact-fontawesome-0.2.2.tgz" + dependencies: + prop-types: "npm:^15.8.1" + peerDependencies: + "@fortawesome/fontawesome-svg-core": ~1 || ~6 + react: ">=16.3" + checksum: 10c0/824f96cd9be2e637738de3073450b30fe6b5a91b4f95df804c162b47ddf7d1a43df5ed7439a01e7236e888edc093efad1e61322ac693ddc3ae01147b90318745 + languageName: node + linkType: hard + +"@hookform/resolvers@npm:^3.9.0": + version: 3.9.0 + resolution: "@hookform/resolvers@npm:3.9.0" + peerDependencies: + react-hook-form: ^7.0.0 + checksum: 10c0/0e0e55f63abbd212cf14abbd39afad1f9b6105d6b25ce827fc651b624ed2be467ebe9b186026e0f032062db59ce2370b14e9583b436ae2d057738bdd6f04356c + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: "npm:^5.1.2" + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: "npm:^7.0.1" + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: "npm:^8.1.0" + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.2, @jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.5 + resolution: "@jridgewell/gen-mapping@npm:0.3.5" + dependencies: + "@jridgewell/set-array": "npm:^1.2.1" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/1be4fd4a6b0f41337c4f5fdf4afc3bd19e39c3691924817108b82ffcb9c9e609c273f936932b9fba4b3a298ce2eb06d9bff4eb1cc3bd81c4f4ee1b4917e25feb + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e + languageName: node + linkType: hard + +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 10c0/2a5aa7b4b5c3464c895c802d8ae3f3d2b92fcbe84ad12f8d0bfbb1f5ad006717e7577ee1fd2eac00c088abe486c7adb27976f45d2941ff6b0b92b2c3302c60f4 + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": + version: 0.3.25 + resolution: "@jridgewell/trace-mapping@npm:0.3.25" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 10c0/3d1ce6ebc69df9682a5a8896b414c6537e428a1d68b02fcc8363b04284a8ca0df04d0ee3013132252ab14f2527bc13bea6526a912ecb5658f0e39fd2860b4df4 + languageName: node + linkType: hard + +"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.1.0, @lezer/common@npm:^1.2.0": + version: 1.2.1 + resolution: "@lezer/common@npm:1.2.1" + checksum: 10c0/af61436dc026f8deebaded13d8e1beea2ae307cbbfb270116cdedadb8208f0674da9c3b5963128a2b1cd4072b4e90bc8128133f4feaf31b6e801e4568f1a15a6 + languageName: node + linkType: hard + +"@lezer/highlight@npm:^1.0.0, @lezer/highlight@npm:^1.1.3": + version: 1.2.0 + resolution: "@lezer/highlight@npm:1.2.0" + dependencies: + "@lezer/common": "npm:^1.0.0" + checksum: 10c0/d4312f95b78e4b6f10833b1cf99601c6381c22b755bbf60fd61d6fe9b4cf7780650e2e2dadf75beb8d94824dcb5ec81da5cfc9ca54122688a482e488103105aa + languageName: node + linkType: hard + +"@lezer/javascript@npm:^1.0.0": + version: 1.4.17 + resolution: "@lezer/javascript@npm:1.4.17" + dependencies: + "@lezer/common": "npm:^1.2.0" + "@lezer/highlight": "npm:^1.1.3" + "@lezer/lr": "npm:^1.3.0" + checksum: 10c0/5e69eabd7b6ea58ff828073324282a38567488bd6da1541023f1a66268a0ac9d01cde924f4fad183fcbf630ac33680e6b859a18f6fbec14ffb76073cdccf7b2b + languageName: node + linkType: hard + +"@lezer/json@npm:^1.0.0": + version: 1.0.2 + resolution: "@lezer/json@npm:1.0.2" + dependencies: + "@lezer/common": "npm:^1.2.0" + "@lezer/highlight": "npm:^1.0.0" + "@lezer/lr": "npm:^1.0.0" + checksum: 10c0/a84283b4e4ded682b5e90a068c52155deaeac79e8dc16da0e9904e72633be029a00ad2da26daa259e503ae3b116722985c3e15d9448336e5f0fde59f79b716ad + languageName: node + linkType: hard + +"@lezer/lr@npm:^1.0.0, @lezer/lr@npm:^1.3.0": + version: 1.4.2 + resolution: "@lezer/lr@npm:1.4.2" + dependencies: + "@lezer/common": "npm:^1.0.0" + checksum: 10c0/22bb5d0d4b33d0de5eb0706b7e5b5f2d20f570e112d9110009bd35b62ff10f2eb4eff8da4cf373dd4ddf5e06a304120b8f039add7ed9997c981c13945d5329cd + languageName: node + linkType: hard + +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" + dependencies: + "@nodelib/fs.stat": "npm:2.0.5" + run-parallel: "npm:^1.1.9" + checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.3": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" + dependencies: + "@nodelib/fs.scandir": "npm:2.1.5" + fastq: "npm:^1.6.0" + checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^2.0.0": + version: 2.2.2 + resolution: "@npmcli/agent@npm:2.2.2" + dependencies: + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^10.0.1" + socks-proxy-agent: "npm:^8.0.3" + checksum: 10c0/325e0db7b287d4154ecd164c0815c08007abfb07653cc57bceded17bb7fd240998a3cbdbe87d700e30bef494885eccc725ab73b668020811d56623d145b524ae + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.0": + version: 3.1.1 + resolution: "@npmcli/fs@npm:3.1.1" + dependencies: + semver: "npm:^7.3.5" + checksum: 10c0/c37a5b4842bfdece3d14dfdb054f73fe15ed2d3da61b34ff76629fb5b1731647c49166fd2a8bf8b56fcfa51200382385ea8909a3cbecdad612310c114d3f6c99 + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd + languageName: node + linkType: hard + +"@radix-ui/number@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/number@npm:1.1.0" + checksum: 10c0/a48e34d5ff1484de1b7cf5d7317fefc831d49e96a2229f300fd37b657bd8cfb59c922830c00ec02838ab21de3b299a523474592e4f30882153412ed47edce6a4 + languageName: node + linkType: hard + +"@radix-ui/primitive@npm:1.0.1": + version: 1.0.1 + resolution: "@radix-ui/primitive@npm:1.0.1" + dependencies: + "@babel/runtime": "npm:^7.13.10" + checksum: 10c0/912216455537db3ca77f3e7f70174fb2b454fbd4a37a0acb7cfadad9ab6131abdfb787472242574460a3c301edf45738340cc84f6717982710082840fde7d916 + languageName: node + linkType: hard + +"@radix-ui/primitive@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/primitive@npm:1.1.0" + checksum: 10c0/1dcc8b5401799416ff8bdb15c7189b4536c193220ad8fd348a48b88f804ee38cec7bd03e2b9641f7da24610e2f61f23a306911ce883af92c4e8c1abac634cb61 + languageName: node + linkType: hard + +"@radix-ui/react-accordion@npm:^1.1.2": + version: 1.2.0 + resolution: "@radix-ui/react-accordion@npm:1.2.0" + dependencies: + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-collapsible": "npm:1.1.0" + "@radix-ui/react-collection": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-direction": "npm:1.1.0" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/324d7eb1653f57431297a2f3428f6221edf54d712b94ce9194243cfaef462490bd9d9976ec3cc868f5598f156242068f84d674a3febcf1c8ea8c4115efea0ae2 + languageName: node + linkType: hard + +"@radix-ui/react-arrow@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-arrow@npm:1.1.0" + dependencies: + "@radix-ui/react-primitive": "npm:2.0.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/cbe059dfa5a9c1677478d363bb5fd75b0c7a08221d0ac7f8e7b9aec9dbae9754f6a3518218cf63e4ed53df6c36d193c8d2618d03433a37aa0cb7ee77a60a591f + languageName: node + linkType: hard + +"@radix-ui/react-avatar@npm:^1.0.4": + version: 1.1.0 + resolution: "@radix-ui/react-avatar@npm:1.1.0" + dependencies: + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/6358ae171c886aa66a4b381d847ef8c84b7020adceaea8676f4f434e5229ff06a13022ff611557f548dd4e8739eadf1b0d22111ae3d47e08b5dd1005edcf76a5 + languageName: node + linkType: hard + +"@radix-ui/react-checkbox@npm:^1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-checkbox@npm:1.1.1" + dependencies: + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-presence": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + "@radix-ui/react-use-previous": "npm:1.1.0" + "@radix-ui/react-use-size": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/2d7d35b8319298166905057e9f7fb1d4b51d73bdec6c7c2127d2266e0f053c39586e316ea0da9a24612dfa86b8fc1f5160d4c37f79ae567025b62616de95c2c7 + languageName: node + linkType: hard + +"@radix-ui/react-collapsible@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-collapsible@npm:1.1.0" + dependencies: + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-presence": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/07d6d0be153d0c56d533e820005caa13a8305ba34b55af74180180113074979bcfd1d7414ba2533272deb659275c0c38eb48004338fd542fdcbd1962925f199f + languageName: node + linkType: hard + +"@radix-ui/react-collection@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-collection@npm:1.1.0" + dependencies: + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-slot": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/fecb9f0871c827070a8794b39c7379fdc7d0855c4b05804f0b395eef39c37b2c2b6779865d6cb35d3bc74b6b380107bd8b3754d1730a34ea88913e6cd0eb84d4 + languageName: node + linkType: hard + +"@radix-ui/react-compose-refs@npm:1.0.1": + version: 1.0.1 + resolution: "@radix-ui/react-compose-refs@npm:1.0.1" + dependencies: + "@babel/runtime": "npm:^7.13.10" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/be06f8dab35b5a1bffa7a5982fb26218ddade1acb751288333e3b89d7b4a7dfb5a6371be83876dac0ec2ebe0866d295e8618b778608e1965342986ea448040ec + languageName: node + linkType: hard + +"@radix-ui/react-compose-refs@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-compose-refs@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/7e18706084397d9458ca3473d8565b10691da06f6499a78edbcc4bd72cde08f62e91120658d17d58c19fc39d6b1dffe0133cc4535c8f5fce470abd478f6107e5 + languageName: node + linkType: hard + +"@radix-ui/react-context@npm:1.0.1": + version: 1.0.1 + resolution: "@radix-ui/react-context@npm:1.0.1" + dependencies: + "@babel/runtime": "npm:^7.13.10" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/3de5761b32cc70cd61715527f29d8c699c01ab28c195ced972ccbc7025763a373a68f18c9f948c7a7b922e469fd2df7fee5f7536e3f7bad44ffc06d959359333 + languageName: node + linkType: hard + +"@radix-ui/react-context@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-context@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/c843980f568cc61b512708863ec84c42a02e0f88359b22ad1c0e290cea3e6d7618eccbd2cd37bd974fadaa7636cbed5bda27553722e61197eb53852eaa34f1bb + languageName: node + linkType: hard + +"@radix-ui/react-dialog@npm:1.0.5": + version: 1.0.5 + resolution: "@radix-ui/react-dialog@npm:1.0.5" + dependencies: + "@babel/runtime": "npm:^7.13.10" + "@radix-ui/primitive": "npm:1.0.1" + "@radix-ui/react-compose-refs": "npm:1.0.1" + "@radix-ui/react-context": "npm:1.0.1" + "@radix-ui/react-dismissable-layer": "npm:1.0.5" + "@radix-ui/react-focus-guards": "npm:1.0.1" + "@radix-ui/react-focus-scope": "npm:1.0.4" + "@radix-ui/react-id": "npm:1.0.1" + "@radix-ui/react-portal": "npm:1.0.4" + "@radix-ui/react-presence": "npm:1.0.1" + "@radix-ui/react-primitive": "npm:1.0.3" + "@radix-ui/react-slot": "npm:1.0.2" + "@radix-ui/react-use-controllable-state": "npm:1.0.1" + aria-hidden: "npm:^1.1.1" + react-remove-scroll: "npm:2.5.5" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/c5b3069397379e79857a3203f3ead4d12d87736b59899f02a63e620a07dd1e6704e15523926cdf8e39afe1c945a7ff0f2533c5ea5be1e17c3114820300a51133 + languageName: node + linkType: hard + +"@radix-ui/react-dialog@npm:^1.0.5": + version: 1.1.1 + resolution: "@radix-ui/react-dialog@npm:1.1.1" + dependencies: + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-dismissable-layer": "npm:1.1.0" + "@radix-ui/react-focus-guards": "npm:1.1.0" + "@radix-ui/react-focus-scope": "npm:1.1.0" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-portal": "npm:1.1.1" + "@radix-ui/react-presence": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-slot": "npm:1.1.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + aria-hidden: "npm:^1.1.1" + react-remove-scroll: "npm:2.5.7" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/a21e318e8d45bed22067880f66beb4ea91118a6c0d43aa20de495c0373b53c12dfe28f58196d5b33300573a5e24e064ec53648a576f02366fb5a297d887b0860 + languageName: node + linkType: hard + +"@radix-ui/react-direction@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-direction@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/eb07d8cc3ae2388b824e0a11ae0e3b71fb0c49972b506e249cec9f27a5b7ef4305ee668c98b674833c92e842163549a83beb0a197dec1ec65774bdeeb61f932c + languageName: node + linkType: hard + +"@radix-ui/react-dismissable-layer@npm:1.0.5": + version: 1.0.5 + resolution: "@radix-ui/react-dismissable-layer@npm:1.0.5" + dependencies: + "@babel/runtime": "npm:^7.13.10" + "@radix-ui/primitive": "npm:1.0.1" + "@radix-ui/react-compose-refs": "npm:1.0.1" + "@radix-ui/react-primitive": "npm:1.0.3" + "@radix-ui/react-use-callback-ref": "npm:1.0.1" + "@radix-ui/react-use-escape-keydown": "npm:1.0.3" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/7e4308867aecfb07b506330c1964d94a52247ab9453725613cd326762aa13e483423c250f107219c131b0449600eb8d1576ce3159c2b96e8c978f75e46062cb2 + languageName: node + linkType: hard + +"@radix-ui/react-dismissable-layer@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-dismissable-layer@npm:1.1.0" + dependencies: + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + "@radix-ui/react-use-escape-keydown": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/72967068ab02127b668ecfd0a1863149e2a42d9fd12d3247f51422a41f3d5faa82a147a5b0a8a6ec609eff8fe6baede6fb7d6111f76896656d13567e3ec29ba8 + languageName: node + linkType: hard + +"@radix-ui/react-dropdown-menu@npm:^2.0.6": + version: 2.1.1 + resolution: "@radix-ui/react-dropdown-menu@npm:2.1.1" + dependencies: + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-menu": "npm:2.1.1" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/b54f1e41ddc8c3709ba2f8a59621138268d0380aca8399450a234997cc2214e4a6acf1a64ab387558ba39c0bd5839995a668bd71781762daac7618a2d71b4082 + languageName: node + linkType: hard + +"@radix-ui/react-focus-guards@npm:1.0.1": + version: 1.0.1 + resolution: "@radix-ui/react-focus-guards@npm:1.0.1" + dependencies: + "@babel/runtime": "npm:^7.13.10" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/d5fd4e5aa9d9a87c8ad490b3b4992d6f1d9eddf18e56df2a2bcf8744c4332b275d73377fd193df3e6ba0ad9608dc497709beca5c64de2b834d5f5350b3c9a272 + languageName: node + linkType: hard + +"@radix-ui/react-focus-guards@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-focus-guards@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/23af9ff17244568db9b2e99ae6e5718747a4b656bf12b1b15b0d3adca407988641a930612eca35a61b7e15d1ce312b3db13ea95999fa31ae641aaaac1e325df8 + languageName: node + linkType: hard + +"@radix-ui/react-focus-scope@npm:1.0.4": + version: 1.0.4 + resolution: "@radix-ui/react-focus-scope@npm:1.0.4" + dependencies: + "@babel/runtime": "npm:^7.13.10" + "@radix-ui/react-compose-refs": "npm:1.0.1" + "@radix-ui/react-primitive": "npm:1.0.3" + "@radix-ui/react-use-callback-ref": "npm:1.0.1" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/2fce0bafcab4e16cf4ed7560bda40654223f3d0add6b231e1c607433030c14e6249818b444b7b58ee7a6ff6bbf8e192c9c81d22c3a5c88c2daade9d1f881b5be + languageName: node + linkType: hard + +"@radix-ui/react-focus-scope@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-focus-scope@npm:1.1.0" + dependencies: + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/2593d4bbd4a3525624675ec1d5a591a44f015f43f449b99a5a33228159b83f445e8f1c6bc6f9f2011387abaeadd3df406623c08d4e795b7ae509795652a1d069 + languageName: node + linkType: hard + +"@radix-ui/react-id@npm:1.0.1": + version: 1.0.1 + resolution: "@radix-ui/react-id@npm:1.0.1" + dependencies: + "@babel/runtime": "npm:^7.13.10" + "@radix-ui/react-use-layout-effect": "npm:1.0.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/e2859ca58bea171c956098ace7ecf615cf9432f58a118b779a14720746b3adcf0351c36c75de131548672d3cd290ca238198acbd33b88dc4706f98312e9317ad + languageName: node + linkType: hard + +"@radix-ui/react-id@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-id@npm:1.1.0" + dependencies: + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/acf13e29e51ee96336837fc0cfecc306328b20b0e0070f6f0f7aa7a621ded4a1ee5537cfad58456f64bae76caa7f8769231e88dc7dc106197347ee433c275a79 + languageName: node + linkType: hard + +"@radix-ui/react-label@npm:^2.0.2": + version: 2.1.0 + resolution: "@radix-ui/react-label@npm:2.1.0" + dependencies: + "@radix-ui/react-primitive": "npm:2.0.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/282d3b1b72ff14b431b3bb427d66d14253bbd30fad2437d8f4e7d5c0b6a41f6f7ed157460e02fb91b67b1c8cebc65f2c6fe1d3a32f4459d41238fc0fd4719875 + languageName: node + linkType: hard + +"@radix-ui/react-menu@npm:2.1.1": + version: 2.1.1 + resolution: "@radix-ui/react-menu@npm:2.1.1" + dependencies: + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-collection": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-direction": "npm:1.1.0" + "@radix-ui/react-dismissable-layer": "npm:1.1.0" + "@radix-ui/react-focus-guards": "npm:1.1.0" + "@radix-ui/react-focus-scope": "npm:1.1.0" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-popper": "npm:1.2.0" + "@radix-ui/react-portal": "npm:1.1.1" + "@radix-ui/react-presence": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-roving-focus": "npm:1.1.0" + "@radix-ui/react-slot": "npm:1.1.0" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + aria-hidden: "npm:^1.1.1" + react-remove-scroll: "npm:2.5.7" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/2cb11867430276d8db595886ae0e01e67a555676d37e108d5a6c386df23329482115a041b6a4057fad6b855aa423681805c20d1f290fd1502e521e8e55aafb54 + languageName: node + linkType: hard + +"@radix-ui/react-popover@npm:^1.0.7": + version: 1.1.1 + resolution: "@radix-ui/react-popover@npm:1.1.1" + dependencies: + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-dismissable-layer": "npm:1.1.0" + "@radix-ui/react-focus-guards": "npm:1.1.0" + "@radix-ui/react-focus-scope": "npm:1.1.0" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-popper": "npm:1.2.0" + "@radix-ui/react-portal": "npm:1.1.1" + "@radix-ui/react-presence": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-slot": "npm:1.1.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + aria-hidden: "npm:^1.1.1" + react-remove-scroll: "npm:2.5.7" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/4539082143c6c006727cf4a6300479f3dd912e85291d5ed7f084d8a7730acc3b5f6589925ab70eca025d3c78026f52f99c0155e11a35de37fe26b8078e6802b3 + languageName: node + linkType: hard + +"@radix-ui/react-popper@npm:1.2.0": + version: 1.2.0 + resolution: "@radix-ui/react-popper@npm:1.2.0" + dependencies: + "@floating-ui/react-dom": "npm:^2.0.0" + "@radix-ui/react-arrow": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + "@radix-ui/react-use-rect": "npm:1.1.0" + "@radix-ui/react-use-size": "npm:1.1.0" + "@radix-ui/rect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/a78ea534b9822d07153fff0895b6cdf742e7213782b140b3ab94a76df0ca70e6001925aea946e99ca680fc63a7fcca49c1d62e8dc5a2f651692fba3541e180c0 + languageName: node + linkType: hard + +"@radix-ui/react-portal@npm:1.0.4": + version: 1.0.4 + resolution: "@radix-ui/react-portal@npm:1.0.4" + dependencies: + "@babel/runtime": "npm:^7.13.10" + "@radix-ui/react-primitive": "npm:1.0.3" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/fed32f8148b833fe852fb5e2f859979ffdf2fb9a9ef46583b9b52915d764ad36ba5c958a64e61d23395628ccc09d678229ee94cd112941e8fe2575021f820c29 + languageName: node + linkType: hard + +"@radix-ui/react-portal@npm:1.1.1": + version: 1.1.1 + resolution: "@radix-ui/react-portal@npm:1.1.1" + dependencies: + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/7e7130fcb0d99197322cd97987e1d7279b6c264fb6be3d883cbfcd49267740d83ca17b431e0d98848afd6067a13ee823ca396a8b63ae68f18a728cf70398c830 + languageName: node + linkType: hard + +"@radix-ui/react-presence@npm:1.0.1": + version: 1.0.1 + resolution: "@radix-ui/react-presence@npm:1.0.1" + dependencies: + "@babel/runtime": "npm:^7.13.10" + "@radix-ui/react-compose-refs": "npm:1.0.1" + "@radix-ui/react-use-layout-effect": "npm:1.0.1" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/90780618b265fe794a8f1ddaa5bfd3c71a1127fa79330a14d32722e6265b44452a9dd36efe4e769129d33e57f979f6b8713e2cbf2e2755326aa3b0f337185b6e + languageName: node + linkType: hard + +"@radix-ui/react-presence@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-presence@npm:1.1.0" + dependencies: + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/58acb658b15b72991ad7a234ea90995902c470b3a182aa90ad03145cbbeaa40f211700c444bfa14cf47537cbb6b732e1359bc5396182de839bd680843c11bf31 + languageName: node + linkType: hard + +"@radix-ui/react-primitive@npm:1.0.3": + version: 1.0.3 + resolution: "@radix-ui/react-primitive@npm:1.0.3" + dependencies: + "@babel/runtime": "npm:^7.13.10" + "@radix-ui/react-slot": "npm:1.0.2" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/67a66ff8898a5e7739eda228ab6f5ce808858da1dce967014138d87e72b6bbfc93dc1467c706d98d1a2b93bf0b6e09233d1a24d31c78227b078444c1a69c42be + languageName: node + linkType: hard + +"@radix-ui/react-primitive@npm:2.0.0": + version: 2.0.0 + resolution: "@radix-ui/react-primitive@npm:2.0.0" + dependencies: + "@radix-ui/react-slot": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/00cb6ca499252ca848c299212ba6976171cea7608b10b3f9a9639d6732dea2df1197ba0d97c001a4fdb29313c3e7fc2a490f6245dd3579617a0ffd85ae964fdd + languageName: node + linkType: hard + +"@radix-ui/react-progress@npm:^1.0.3": + version: 1.1.0 + resolution: "@radix-ui/react-progress@npm:1.1.0" + dependencies: + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/36b722fe274f843162cea186993bc8254ab034341becc88d031e44e1fd3a31dd3c3e7b8fb64e19a02d04da842e3f3b5a7638ed4924cf70f50925889d4439e3ed + languageName: node + linkType: hard + +"@radix-ui/react-radio-group@npm:^1.0.3": + version: 1.2.0 + resolution: "@radix-ui/react-radio-group@npm:1.2.0" + dependencies: + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-direction": "npm:1.1.0" + "@radix-ui/react-presence": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-roving-focus": "npm:1.1.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + "@radix-ui/react-use-previous": "npm:1.1.0" + "@radix-ui/react-use-size": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/24764236699e397c65ed32260e91d40681e24f3808b19c1f8fec4757641e3f959a32dacd83f23aaf4abda6c26d28af6ce293e5736f7d6220a129c15953b21ab7 + languageName: node + linkType: hard + +"@radix-ui/react-roving-focus@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-roving-focus@npm:1.1.0" + dependencies: + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-collection": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-direction": "npm:1.1.0" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/ce367d3033a12d639a8d445d2efa090aa4bc5a78125be568f8c8e4e59f30afd51b585a90031ec18cdba19afbaf1974633dbc0c2c3d2a14d9eb1bfea2ddbe5369 + languageName: node + linkType: hard + +"@radix-ui/react-scroll-area@npm:^1.0.5": + version: 1.1.0 + resolution: "@radix-ui/react-scroll-area@npm:1.1.0" + dependencies: + "@radix-ui/number": "npm:1.1.0" + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-direction": "npm:1.1.0" + "@radix-ui/react-presence": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/46063b17f06bd2fe20ceaceb2fb0c1cd1b2767045d6d721904bc3f5d6726704a77eaf63997a514ca8f43d973da0c6446d7ca04057d9983cb0d46f4be8c01c9f5 + languageName: node + linkType: hard + +"@radix-ui/react-select@npm:^2.0.0": + version: 2.1.1 + resolution: "@radix-ui/react-select@npm:2.1.1" + dependencies: + "@radix-ui/number": "npm:1.1.0" + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-collection": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-direction": "npm:1.1.0" + "@radix-ui/react-dismissable-layer": "npm:1.1.0" + "@radix-ui/react-focus-guards": "npm:1.1.0" + "@radix-ui/react-focus-scope": "npm:1.1.0" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-popper": "npm:1.2.0" + "@radix-ui/react-portal": "npm:1.1.1" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-slot": "npm:1.1.0" + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + "@radix-ui/react-use-previous": "npm:1.1.0" + "@radix-ui/react-visually-hidden": "npm:1.1.0" + aria-hidden: "npm:^1.1.1" + react-remove-scroll: "npm:2.5.7" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/f12bce67f49f82e44f04d109f53be195d7a415e89e29aa09ec704899d6a7198486f118f3d1e37aa7afd3e14524951752fc79170ac5bd4c831cdc4032ea1c0382 + languageName: node + linkType: hard + +"@radix-ui/react-separator@npm:^1.0.3": + version: 1.1.0 + resolution: "@radix-ui/react-separator@npm:1.1.0" + dependencies: + "@radix-ui/react-primitive": "npm:2.0.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/0ca9e25db27b6b001f3c0c50b2df9d6cf070b949f183043e263115d694a25b7268fecd670572469a512e556deca25ebb08b3aec4a870f0309eed728eef19ab8a + languageName: node + linkType: hard + +"@radix-ui/react-slider@npm:^1.1.2": + version: 1.2.0 + resolution: "@radix-ui/react-slider@npm:1.2.0" + dependencies: + "@radix-ui/number": "npm:1.1.0" + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-collection": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-direction": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + "@radix-ui/react-use-previous": "npm:1.1.0" + "@radix-ui/react-use-size": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/46aea4fadf5d2bf8273f0d9189d88a8c4d5fbb304990a1235a0fdf1d463201bec9655785f8c62d60c4aff3e6ab63d8b37c0c7cb23153ebd190f33cf9fa8bc0ea + languageName: node + linkType: hard + +"@radix-ui/react-slot@npm:1.0.2": + version: 1.0.2 + resolution: "@radix-ui/react-slot@npm:1.0.2" + dependencies: + "@babel/runtime": "npm:^7.13.10" + "@radix-ui/react-compose-refs": "npm:1.0.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/3af6ea4891e6fa8091e666802adffe7718b3cd390a10fa9229a5f40f8efded9f3918ea01b046103d93923d41cc32119505ebb6bde76cad07a87b6cf4f2119347 + languageName: node + linkType: hard + +"@radix-ui/react-slot@npm:1.1.0, @radix-ui/react-slot@npm:^1.0.2": + version: 1.1.0 + resolution: "@radix-ui/react-slot@npm:1.1.0" + dependencies: + "@radix-ui/react-compose-refs": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/a2e8bfb70c440506dd84a1a274f9a8bc433cca37ceae275e53552c9122612e3837744d7fc6f113d6ef1a11491aa914f4add71d76de41cb6d4db72547a8e261ae + languageName: node + linkType: hard + +"@radix-ui/react-switch@npm:^1.0.3": + version: 1.1.0 + resolution: "@radix-ui/react-switch@npm:1.1.0" + dependencies: + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + "@radix-ui/react-use-previous": "npm:1.1.0" + "@radix-ui/react-use-size": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/49a250371dccce2a06564ce5812ffbd13b7b69fffe8473529a8a344d8caf95d4068f7d47bd257228e35802f008ba66af410b4d8456bc4257da237fa657c74d50 + languageName: node + linkType: hard + +"@radix-ui/react-tabs@npm:^1.0.4": + version: 1.1.0 + resolution: "@radix-ui/react-tabs@npm:1.1.0" + dependencies: + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-direction": "npm:1.1.0" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-presence": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-roving-focus": "npm:1.1.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/d6cb742c36a6918dd37c6a3c531b1f6832916dde26855f6c94baf4a17d20bbb17ffd8ba9844539c568a4484a39bbdf5fc528d44534d1d46d094840836c9ff47d + languageName: node + linkType: hard + +"@radix-ui/react-toggle@npm:^1.0.3": + version: 1.1.0 + resolution: "@radix-ui/react-toggle@npm:1.1.0" + dependencies: + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/68af7280b88e1696f0c5b2dfbb53473d45ccc960dc8ae3326aed6086945696f2a4a9d73305a80cd945fb9d33ccf756a3162041d5e89bb713aa5a5231b636b010 + languageName: node + linkType: hard + +"@radix-ui/react-tooltip@npm:^1.1.1": + version: 1.1.2 + resolution: "@radix-ui/react-tooltip@npm:1.1.2" + dependencies: + "@radix-ui/primitive": "npm:1.1.0" + "@radix-ui/react-compose-refs": "npm:1.1.0" + "@radix-ui/react-context": "npm:1.1.0" + "@radix-ui/react-dismissable-layer": "npm:1.1.0" + "@radix-ui/react-id": "npm:1.1.0" + "@radix-ui/react-popper": "npm:1.2.0" + "@radix-ui/react-portal": "npm:1.1.1" + "@radix-ui/react-presence": "npm:1.1.0" + "@radix-ui/react-primitive": "npm:2.0.0" + "@radix-ui/react-slot": "npm:1.1.0" + "@radix-ui/react-use-controllable-state": "npm:1.1.0" + "@radix-ui/react-visually-hidden": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/76f3abcd27f7f673612631abc340a17e6ab0e5d20b901fe4828400de05d4d8a8711392417b028be86a3053a0881b80d0ed41c4e027eb64c1af9fe74db70d3786 + languageName: node + linkType: hard + +"@radix-ui/react-use-callback-ref@npm:1.0.1": + version: 1.0.1 + resolution: "@radix-ui/react-use-callback-ref@npm:1.0.1" + dependencies: + "@babel/runtime": "npm:^7.13.10" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/331b432be1edc960ca148637ae6087220873ee828ceb13bd155926ef8f49e862812de5b379129f6aaefcd11be53715f3237e6caa9a33d9c0abfff43f3ba58938 + languageName: node + linkType: hard + +"@radix-ui/react-use-callback-ref@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-callback-ref@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/e954863f3baa151faf89ac052a5468b42650efca924417470efd1bd254b411a94c69c30de2fdbb90187b38cb984795978e12e30423dc41e4309d93d53b66d819 + languageName: node + linkType: hard + +"@radix-ui/react-use-controllable-state@npm:1.0.1": + version: 1.0.1 + resolution: "@radix-ui/react-use-controllable-state@npm:1.0.1" + dependencies: + "@babel/runtime": "npm:^7.13.10" + "@radix-ui/react-use-callback-ref": "npm:1.0.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/29b069dbf09e48bca321af6272574ad0fc7283174e7d092731a10663fe00c0e6b4bde5e1b5ea67725fe48dcbe8026e7ff0d69d42891c62cbb9ca408498171fbe + languageName: node + linkType: hard + +"@radix-ui/react-use-controllable-state@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-controllable-state@npm:1.1.0" + dependencies: + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/2af883b5b25822ac226e60a6bfde647c0123a76345052a90219026059b3f7225844b2c13a9a16fba859c1cda5fb3d057f2a04503f71780e607516492db4eb3a1 + languageName: node + linkType: hard + +"@radix-ui/react-use-escape-keydown@npm:1.0.3": + version: 1.0.3 + resolution: "@radix-ui/react-use-escape-keydown@npm:1.0.3" + dependencies: + "@babel/runtime": "npm:^7.13.10" + "@radix-ui/react-use-callback-ref": "npm:1.0.1" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/3c94c78902dcb40b60083ee2184614f45c95a189178f52d89323b467bd04bcf5fdb1bc4d43debecd7f0b572c3843c7e04edbcb56f40a4b4b43936fb2770fb8ad + languageName: node + linkType: hard + +"@radix-ui/react-use-escape-keydown@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-escape-keydown@npm:1.1.0" + dependencies: + "@radix-ui/react-use-callback-ref": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/910fd696e5a0994b0e06b9cb68def8a865f47951a013ec240c77db2a9e1e726105602700ef5e5f01af49f2f18fe0e73164f9a9651021f28538ef8a30d91f3fbb + languageName: node + linkType: hard + +"@radix-ui/react-use-layout-effect@npm:1.0.1": + version: 1.0.1 + resolution: "@radix-ui/react-use-layout-effect@npm:1.0.1" + dependencies: + "@babel/runtime": "npm:^7.13.10" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/13cd0c38395c5838bc9a18238020d3bcf67fb340039e6d1cbf438be1b91d64cf6900b78121f3dc9219faeb40dcc7b523ce0f17e4a41631655690e5a30a40886a + languageName: node + linkType: hard + +"@radix-ui/react-use-layout-effect@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-layout-effect@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/9bf87ece1845c038ed95863cfccf9d75f557c2400d606343bab0ab3192b9806b9840e6aa0a0333fdf3e83cf9982632852192f3e68d7d8367bc8c788dfdf8e62b + languageName: node + linkType: hard + +"@radix-ui/react-use-previous@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-previous@npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/9787d24790d4e330715127f2f4db56c4cbed9b0a47f97e11a68582c08a356a53c1ec41c7537382f6fb8d0db25de152770f17430e8eaf0fa59705be97760acbad + languageName: node + linkType: hard + +"@radix-ui/react-use-rect@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-rect@npm:1.1.0" + dependencies: + "@radix-ui/rect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/c2e30150ab49e2cec238cda306fd748c3d47fb96dcff69a3b08e1d19108d80bac239d48f1747a25dadca614e3e967267d43b91e60ea59db2befbc7bea913ff84 + languageName: node + linkType: hard + +"@radix-ui/react-use-size@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/react-use-size@npm:1.1.0" + dependencies: + "@radix-ui/react-use-layout-effect": "npm:1.1.0" + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/4c8b89037597fdc1824d009e0c941b510c7c6c30f83024cc02c934edd748886786e7d9f36f57323b02ad29833e7fa7e8974d81969b4ab33d8f41661afa4f30a6 + languageName: node + linkType: hard + +"@radix-ui/react-visually-hidden@npm:1.1.0, @radix-ui/react-visually-hidden@npm:^1.0.3": + version: 1.1.0 + resolution: "@radix-ui/react-visually-hidden@npm:1.1.0" + dependencies: + "@radix-ui/react-primitive": "npm:2.0.0" + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/db138dd5f3c94958a9f836740d4408c89c4a73e770eaba5ead921e69b3c0d196c5cd58323d82829a9bc05a74873c299195dfd8366b9808e53a9a3dbca5a1e5fe + languageName: node + linkType: hard + +"@radix-ui/rect@npm:1.1.0": + version: 1.1.0 + resolution: "@radix-ui/rect@npm:1.1.0" + checksum: 10c0/a26ff7f8708fb5f2f7949baad70a6b2a597d761ee4dd4aadaf1c1a33ea82ea23dfef6ce6366a08310c5d008cdd60b2e626e4ee03fa342bd5f246ddd9d427f6be + languageName: node + linkType: hard + +"@rivet-gg/api@https://github.com/rivet-gg/rivet/raw/539f11efb856bc936576fe593fe051c0d7e1355d/sdks/typescript/archive.tgz": + version: 23.2.0-rc1 + resolution: "@rivet-gg/api@https://github.com/rivet-gg/rivet/raw/539f11efb856bc936576fe593fe051c0d7e1355d/sdks/typescript/archive.tgz" + dependencies: + form-data: "npm:^4.0.0" + js-base64: "npm:^3.7.5" + node-fetch: "npm:2" + qs: "npm:^6.11.2" + url-join: "npm:^5.0.0" + checksum: 10c0/d1a0836d5aa50c7f216c6049e44e9bcb49ab58d9ae441a28e8c0928f3b3a42fc95f743d2a888b518287ab77252fd5929311c8f42dab137e4398ca32bc7f218fc + languageName: node + linkType: hard + +"@rivet-gg/api@npm:^24.1.2": + version: 24.1.2 + resolution: "@rivet-gg/api@npm:24.1.2" + dependencies: + form-data: "npm:^4.0.0" + js-base64: "npm:^3.7.5" + node-fetch: "npm:2" + qs: "npm:^6.11.2" + url-join: "npm:^5.0.0" + checksum: 10c0/a286ec211c85153d597944f2265071317ddb5936c0792233b285a4905a77ab4624e47b23f90c7fe5ffb5b9e1966ab400d6af298b3f32c27e76250b561a13cd10 + languageName: node + linkType: hard + +"@rivet-gg/components@https://github.com/rivet-gg/hub#workspace=@rivet-gg/components&head=08-08-feat_opengb_components_module_adjustments": + version: 1.0.0 + resolution: "@rivet-gg/components@https://github.com/rivet-gg/hub.git#workspace=%40rivet-gg%2Fcomponents&commit=3ebb0c440422b4ea24b0ec8408470aeed65e55d4" + dependencies: + "@codemirror/lang-javascript": "npm:^6.2.2" + "@codemirror/lang-json": "npm:^6.0.1" + "@codemirror/view": "npm:^6.28.4" + "@fortawesome/fontawesome-svg-core": "npm:^6.5.2" + "@fortawesome/free-brands-svg-icons": "npm:^6.5.2" + "@fortawesome/free-solid-svg-icons": "npm:^6.5.2" + "@fortawesome/pro-regular-svg-icons": "npm:^6.5.2" + "@fortawesome/pro-solid-svg-icons": "npm:^6.5.2" + "@fortawesome/react-fontawesome": "npm:^0.2.2" + "@hookform/resolvers": "npm:^3.9.0" + "@radix-ui/react-accordion": "npm:^1.1.2" + "@radix-ui/react-avatar": "npm:^1.0.4" + "@radix-ui/react-checkbox": "npm:^1.1.1" + "@radix-ui/react-dialog": "npm:^1.0.5" + "@radix-ui/react-dropdown-menu": "npm:^2.0.6" + "@radix-ui/react-label": "npm:^2.0.2" + "@radix-ui/react-popover": "npm:^1.0.7" + "@radix-ui/react-progress": "npm:^1.0.3" + "@radix-ui/react-radio-group": "npm:^1.0.3" + "@radix-ui/react-scroll-area": "npm:^1.0.5" + "@radix-ui/react-select": "npm:^2.0.0" + "@radix-ui/react-separator": "npm:^1.0.3" + "@radix-ui/react-slider": "npm:^1.1.2" + "@radix-ui/react-slot": "npm:^1.0.2" + "@radix-ui/react-switch": "npm:^1.0.3" + "@radix-ui/react-tabs": "npm:^1.0.4" + "@radix-ui/react-toggle": "npm:^1.0.3" + "@radix-ui/react-tooltip": "npm:^1.1.1" + "@radix-ui/react-visually-hidden": "npm:^1.0.3" + "@rivet-gg/api": "https://github.com/rivet-gg/rivet/raw/539f11efb856bc936576fe593fe051c0d7e1355d/sdks/typescript/archive.tgz" + "@tanstack/react-virtual": "npm:^3.8.1" + "@uiw/codemirror-extensions-basic-setup": "npm:^4.23.0" + "@uiw/codemirror-theme-github": "npm:^4.23.0" + "@uiw/react-codemirror": "npm:^4.23.0" + class-variance-authority: "npm:^0.7.0" + clsx: "npm:^2.1.0" + cmdk: "npm:^1.0.0" + date-fns: "npm:^3.6.0" + framer-motion: "npm:^11.2.11" + input-otp: "npm:^1.2.3" + react: "npm:^18.2.0" + react-day-picker: "npm:^8.10.1" + react-dom: "npm:^18.2.0" + react-hook-form: "npm:^7.51.1" + react-resizable-panels: "npm:^2.0.19" + sonner: "npm:^1.4.41" + tailwind-merge: "npm:^2.2.2" + tailwindcss-animate: "npm:^1.0.7" + zod: "npm:^3.23.8" + checksum: 10c0/8ab211a4798692f28c3f1346ced4b7762d786c72a49761ec7c867983c9e30f295f28beb2569ebddd4224839fc2320729239fc159d604f739bbd06f9a56a94fe4 + languageName: node + linkType: hard + +"@rivet-gg/opengb-sandbox@workspace:.": + version: 0.0.0-use.local + resolution: "@rivet-gg/opengb-sandbox@workspace:." + dependencies: + "@codemirror/lang-json": "npm:^6.0.1" + "@codemirror/lint": "npm:^6.8.0" + "@codemirror/view": "npm:^6.28.4" + "@rivet-gg/api": "npm:^24.1.2" + "@rivet-gg/components": "https://github.com/rivet-gg/hub#workspace=@rivet-gg/components&head=08-08-feat_opengb_components_module_adjustments" + "@tanstack/react-query": "npm:^5.32.0" + "@tanstack/react-query-devtools": "npm:^5.32.0" + "@types/react": "npm:^18.2.66" + "@types/react-dom": "npm:^18.2.22" + "@uiw/codemirror-extensions-basic-setup": "npm:^4.22.1" + "@uiw/codemirror-theme-github": "npm:^4.22.1" + "@uiw/react-codemirror": "npm:^4.22.1" + "@vitejs/plugin-react": "npm:^4.2.1" + autoprefixer: "npm:^10.4.20" + react: "npm:^18.3.1" + react-dom: "npm:^18.3.1" + simple-statistics: "npm:^7.8.3" + tailwindcss: "npm:^3.4.9" + typescript: "npm:^5.2.2" + vite: "npm:^5.2.0" + languageName: unknown + linkType: soft + +"@rollup/rollup-android-arm-eabi@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.20.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-android-arm64@npm:4.20.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.20.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.20.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.20.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.20.0" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.20.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.20.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.20.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.20.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.20.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.20.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.20.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.20.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.20.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.20.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@tanstack/query-core@npm:5.51.21": + version: 5.51.21 + resolution: "@tanstack/query-core@npm:5.51.21" + checksum: 10c0/bb9e03391facd21c431d6571f3e088f47dc996b42a10ef636d3fd4444a483019d0e9bd4eb971d554bb4317ac3ee3ab23d5ce9221345753b792fb6fae030d1ad7 + languageName: node + linkType: hard + +"@tanstack/query-devtools@npm:5.51.16": + version: 5.51.16 + resolution: "@tanstack/query-devtools@npm:5.51.16" + checksum: 10c0/40f1fbad77b703b96809b06323962614f9868b6e453fbcfcc1c73f3ff4f479f4ef066706fdfb3c3be33da76122dac21725de42c0f65ac0344d3839688d672c32 + languageName: node + linkType: hard + +"@tanstack/react-query-devtools@npm:^5.32.0": + version: 5.51.23 + resolution: "@tanstack/react-query-devtools@npm:5.51.23" + dependencies: + "@tanstack/query-devtools": "npm:5.51.16" + peerDependencies: + "@tanstack/react-query": ^5.51.23 + react: ^18 || ^19 + checksum: 10c0/f11d53c47fc66d1f04edb7018fc9934d6019c02634eedb82be9aef305f1e61f9593bfa5e5e9f3adba9b1a4e6dc15566123b9d8b1618045571062d8bba739765c + languageName: node + linkType: hard + +"@tanstack/react-query@npm:^5.32.0": + version: 5.51.23 + resolution: "@tanstack/react-query@npm:5.51.23" + dependencies: + "@tanstack/query-core": "npm:5.51.21" + peerDependencies: + react: ^18.0.0 + checksum: 10c0/913566a6778197b0b6dd04416e7ccb2fc766b4c0d04b0dc7f0e10f2bb5dee5663688369e363ae129ccbc1844578f57c81ee7599fac7f3b90ab9611bc52a35e69 + languageName: node + linkType: hard + +"@tanstack/react-virtual@npm:^3.8.1": + version: 3.8.4 + resolution: "@tanstack/react-virtual@npm:3.8.4" + dependencies: + "@tanstack/virtual-core": "npm:3.8.4" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 10c0/2c803a0fd9101c75666b894d455c0c793bc50df4b5039e2bc748c4c50b64ec4ebaf3de990ab711d396ad8cd0582ca1858c7d0132d7f72acb57dfd9721464186e + languageName: node + linkType: hard + +"@tanstack/virtual-core@npm:3.8.4": + version: 3.8.4 + resolution: "@tanstack/virtual-core@npm:3.8.4" + checksum: 10c0/32b3d7c7d7c380992730f38efe171eddb4841a3f9bdac198ff6f6e7c00da0e22d2984d57dcb27895f234768accb5625fc04946aa8745c22a136b3f31941d42ac + languageName: node + linkType: hard + +"@types/babel__core@npm:^7.20.5": + version: 7.20.5 + resolution: "@types/babel__core@npm:7.20.5" + dependencies: + "@babel/parser": "npm:^7.20.7" + "@babel/types": "npm:^7.20.7" + "@types/babel__generator": "npm:*" + "@types/babel__template": "npm:*" + "@types/babel__traverse": "npm:*" + checksum: 10c0/bdee3bb69951e833a4b811b8ee9356b69a61ed5b7a23e1a081ec9249769117fa83aaaf023bb06562a038eb5845155ff663e2d5c75dd95c1d5ccc91db012868ff + languageName: node + linkType: hard + +"@types/babel__generator@npm:*": + version: 7.6.8 + resolution: "@types/babel__generator@npm:7.6.8" + dependencies: + "@babel/types": "npm:^7.0.0" + checksum: 10c0/f0ba105e7d2296bf367d6e055bb22996886c114261e2cb70bf9359556d0076c7a57239d019dee42bb063f565bade5ccb46009bce2044b2952d964bf9a454d6d2 + languageName: node + linkType: hard + +"@types/babel__template@npm:*": + version: 7.4.4 + resolution: "@types/babel__template@npm:7.4.4" + dependencies: + "@babel/parser": "npm:^7.1.0" + "@babel/types": "npm:^7.0.0" + checksum: 10c0/cc84f6c6ab1eab1427e90dd2b76ccee65ce940b778a9a67be2c8c39e1994e6f5bbc8efa309f6cea8dc6754994524cd4d2896558df76d92e7a1f46ecffee7112b + languageName: node + linkType: hard + +"@types/babel__traverse@npm:*": + version: 7.20.6 + resolution: "@types/babel__traverse@npm:7.20.6" + dependencies: + "@babel/types": "npm:^7.20.7" + checksum: 10c0/7ba7db61a53e28cac955aa99af280d2600f15a8c056619c05b6fc911cbe02c61aa4f2823299221b23ce0cce00b294c0e5f618ec772aa3f247523c2e48cf7b888 + languageName: node + linkType: hard + +"@types/estree@npm:1.0.5": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d + languageName: node + linkType: hard + +"@types/prop-types@npm:*": + version: 15.7.12 + resolution: "@types/prop-types@npm:15.7.12" + checksum: 10c0/1babcc7db6a1177779f8fde0ccc78d64d459906e6ef69a4ed4dd6339c920c2e05b074ee5a92120fe4e9d9f1a01c952f843ebd550bee2332fc2ef81d1706878f8 + languageName: node + linkType: hard + +"@types/react-dom@npm:^18.2.22": + version: 18.3.0 + resolution: "@types/react-dom@npm:18.3.0" + dependencies: + "@types/react": "npm:*" + checksum: 10c0/6c90d2ed72c5a0e440d2c75d99287e4b5df3e7b011838cdc03ae5cd518ab52164d86990e73246b9d812eaf02ec351d74e3b4f5bd325bf341e13bf980392fd53b + languageName: node + linkType: hard + +"@types/react@npm:*, @types/react@npm:^18.2.66": + version: 18.3.3 + resolution: "@types/react@npm:18.3.3" + dependencies: + "@types/prop-types": "npm:*" + csstype: "npm:^3.0.2" + checksum: 10c0/fe455f805c5da13b89964c3d68060cebd43e73ec15001a68b34634604a78140e6fc202f3f61679b9d809dde6d7a7c2cb3ed51e0fd1462557911db09879b55114 + languageName: node + linkType: hard + +"@uiw/codemirror-extensions-basic-setup@npm:4.23.0, @uiw/codemirror-extensions-basic-setup@npm:^4.22.1, @uiw/codemirror-extensions-basic-setup@npm:^4.23.0": + version: 4.23.0 + resolution: "@uiw/codemirror-extensions-basic-setup@npm:4.23.0" + dependencies: + "@codemirror/autocomplete": "npm:^6.0.0" + "@codemirror/commands": "npm:^6.0.0" + "@codemirror/language": "npm:^6.0.0" + "@codemirror/lint": "npm:^6.0.0" + "@codemirror/search": "npm:^6.0.0" + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.0.0" + peerDependencies: + "@codemirror/autocomplete": ">=6.0.0" + "@codemirror/commands": ">=6.0.0" + "@codemirror/language": ">=6.0.0" + "@codemirror/lint": ">=6.0.0" + "@codemirror/search": ">=6.0.0" + "@codemirror/state": ">=6.0.0" + "@codemirror/view": ">=6.0.0" + checksum: 10c0/951ce6f6b771c3a6c61a3e031e59e1a20bad3f9f36815743ca96a1c90bdb6b1f9bc956beda41d61c628e196e8c333512fa9e8d5ca3b5121901d294db926de31f + languageName: node + linkType: hard + +"@uiw/codemirror-theme-github@npm:^4.22.1, @uiw/codemirror-theme-github@npm:^4.23.0": + version: 4.23.0 + resolution: "@uiw/codemirror-theme-github@npm:4.23.0" + dependencies: + "@uiw/codemirror-themes": "npm:4.23.0" + checksum: 10c0/f61b833d602c4b8e2754dc657f40692abb7dafb28381329f2ee9d322ddb4a93c75db34080b3bb47d7ec0c9722bdf79be47c9368407486bb2e5e7bf2167384e57 + languageName: node + linkType: hard + +"@uiw/codemirror-themes@npm:4.23.0": + version: 4.23.0 + resolution: "@uiw/codemirror-themes@npm:4.23.0" + dependencies: + "@codemirror/language": "npm:^6.0.0" + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.0.0" + peerDependencies: + "@codemirror/language": ">=6.0.0" + "@codemirror/state": ">=6.0.0" + "@codemirror/view": ">=6.0.0" + checksum: 10c0/2e3408037434424da89495e647703f9eac27bf4d53c4ab63faa1265021c24fa28c3ca084e3b4ca2c5ac9c6ef3336d707b4eefca8ebfea988ecd1beb66afce834 + languageName: node + linkType: hard + +"@uiw/react-codemirror@npm:^4.22.1, @uiw/react-codemirror@npm:^4.23.0": + version: 4.23.0 + resolution: "@uiw/react-codemirror@npm:4.23.0" + dependencies: + "@babel/runtime": "npm:^7.18.6" + "@codemirror/commands": "npm:^6.1.0" + "@codemirror/state": "npm:^6.1.1" + "@codemirror/theme-one-dark": "npm:^6.0.0" + "@uiw/codemirror-extensions-basic-setup": "npm:4.23.0" + codemirror: "npm:^6.0.0" + peerDependencies: + "@babel/runtime": ">=7.11.0" + "@codemirror/state": ">=6.0.0" + "@codemirror/theme-one-dark": ">=6.0.0" + "@codemirror/view": ">=6.0.0" + codemirror: ">=6.0.0" + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 10c0/3bdd3bc442624f6f1c6b00b5cb447c9a57c2ccfce3b0813b8631a365b5b7408957eb1a6ac64813520658273ff18fb189a7097df0574905d672139d25f8c9259e + languageName: node + linkType: hard + +"@vitejs/plugin-react@npm:^4.2.1": + version: 4.3.1 + resolution: "@vitejs/plugin-react@npm:4.3.1" + dependencies: + "@babel/core": "npm:^7.24.5" + "@babel/plugin-transform-react-jsx-self": "npm:^7.24.5" + "@babel/plugin-transform-react-jsx-source": "npm:^7.24.1" + "@types/babel__core": "npm:^7.20.5" + react-refresh: "npm:^0.14.2" + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + checksum: 10c0/39a027feddfd6b3e307121d79631462ef1aae05714ba7a2f9a73d240d0f89c2bf281132568eb27b55d6ddaf08d86ad1bd8b0066090240e570de8c6320eb9a903 + languageName: node + linkType: hard + +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372 + languageName: node + linkType: hard + +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": + version: 7.1.1 + resolution: "agent-base@npm:7.1.1" + dependencies: + debug: "npm:^4.3.4" + checksum: 10c0/e59ce7bed9c63bf071a30cc471f2933862044c97fd9958967bfe22521d7a0f601ce4ed5a8c011799d0c726ca70312142ae193bbebb60f576b52be19d4a363b50 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: "npm:^2.0.0" + indent-string: "npm:^4.0.0" + checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.0.1 + resolution: "ansi-regex@npm:6.0.1" + checksum: 10c0/cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08 + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: "npm:^1.9.0" + checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: "npm:^2.0.1" + checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c + languageName: node + linkType: hard + +"any-promise@npm:^1.0.0": + version: 1.3.0 + resolution: "any-promise@npm:1.3.0" + checksum: 10c0/60f0298ed34c74fef50daab88e8dab786036ed5a7fad02e012ab57e376e0a0b4b29e83b95ea9b5e7d89df762f5f25119b83e00706ecaccb22cfbacee98d74889 + languageName: node + linkType: hard + +"anymatch@npm:~3.1.2": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" + dependencies: + normalize-path: "npm:^3.0.0" + picomatch: "npm:^2.0.4" + checksum: 10c0/57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac + languageName: node + linkType: hard + +"arg@npm:^5.0.2": + version: 5.0.2 + resolution: "arg@npm:5.0.2" + checksum: 10c0/ccaf86f4e05d342af6666c569f844bec426595c567d32a8289715087825c2ca7edd8a3d204e4d2fb2aa4602e09a57d0c13ea8c9eea75aac3dbb4af5514e6800e + languageName: node + linkType: hard + +"aria-hidden@npm:^1.1.1": + version: 1.2.4 + resolution: "aria-hidden@npm:1.2.4" + dependencies: + tslib: "npm:^2.0.0" + checksum: 10c0/8abcab2e1432efc4db415e97cb3959649ddf52c8fc815d7384f43f3d3abf56f1c12852575d00df9a8927f421d7e0712652dd5f8db244ea57634344e29ecfc74a + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d + languageName: node + linkType: hard + +"autoprefixer@npm:^10.4.20": + version: 10.4.20 + resolution: "autoprefixer@npm:10.4.20" + dependencies: + browserslist: "npm:^4.23.3" + caniuse-lite: "npm:^1.0.30001646" + fraction.js: "npm:^4.3.7" + normalize-range: "npm:^0.1.2" + picocolors: "npm:^1.0.1" + postcss-value-parser: "npm:^4.2.0" + peerDependencies: + postcss: ^8.1.0 + bin: + autoprefixer: bin/autoprefixer + checksum: 10c0/e1f00978a26e7c5b54ab12036d8c13833fad7222828fc90914771b1263f51b28c7ddb5803049de4e77696cbd02bb25cfc3634e80533025bb26c26aacdf938940 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee + languageName: node + linkType: hard + +"binary-extensions@npm:^2.0.0": + version: 2.3.0 + resolution: "binary-extensions@npm:2.3.0" + checksum: 10c0/75a59cafc10fb12a11d510e77110c6c7ae3f4ca22463d52487709ca7f18f69d886aa387557cc9864fbdb10153d0bdb4caacabf11541f55e89ed6e18d12ece2b5 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: "npm:^1.0.0" + checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f + languageName: node + linkType: hard + +"braces@npm:^3.0.3, braces@npm:~3.0.2": + version: 3.0.3 + resolution: "braces@npm:3.0.3" + dependencies: + fill-range: "npm:^7.1.1" + checksum: 10c0/7c6dfd30c338d2997ba77500539227b9d1f85e388a5f43220865201e407e076783d0881f2d297b9f80951b4c957fcf0b51c1d2d24227631643c3f7c284b0aa04 + languageName: node + linkType: hard + +"browserslist@npm:^4.23.1, browserslist@npm:^4.23.3": + version: 4.23.3 + resolution: "browserslist@npm:4.23.3" + dependencies: + caniuse-lite: "npm:^1.0.30001646" + electron-to-chromium: "npm:^1.5.4" + node-releases: "npm:^2.0.18" + update-browserslist-db: "npm:^1.1.0" + bin: + browserslist: cli.js + checksum: 10c0/3063bfdf812815346447f4796c8f04601bf5d62003374305fd323c2a463e42776475bcc5309264e39bcf9a8605851e53560695991a623be988138b3ff8c66642 + languageName: node + linkType: hard + +"cacache@npm:^18.0.0": + version: 18.0.4 + resolution: "cacache@npm:18.0.4" + dependencies: + "@npmcli/fs": "npm:^3.1.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^10.0.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^4.0.0" + ssri: "npm:^10.0.0" + tar: "npm:^6.1.11" + unique-filename: "npm:^3.0.0" + checksum: 10c0/6c055bafed9de4f3dcc64ac3dc7dd24e863210902b7c470eb9ce55a806309b3efff78033e3d8b4f7dcc5d467f2db43c6a2857aaaf26f0094b8a351d44c42179f + languageName: node + linkType: hard + +"call-bind@npm:^1.0.7": + version: 1.0.7 + resolution: "call-bind@npm:1.0.7" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + set-function-length: "npm:^1.2.1" + checksum: 10c0/a3ded2e423b8e2a265983dba81c27e125b48eefb2655e7dfab6be597088da3d47c47976c24bc51b8fd9af1061f8f87b4ab78a314f3c77784b2ae2ba535ad8b8d + languageName: node + linkType: hard + +"camelcase-css@npm:^2.0.1": + version: 2.0.1 + resolution: "camelcase-css@npm:2.0.1" + checksum: 10c0/1a1a3137e8a781e6cbeaeab75634c60ffd8e27850de410c162cce222ea331cd1ba5364e8fb21c95e5ca76f52ac34b81a090925ca00a87221355746d049c6e273 + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001646": + version: 1.0.30001651 + resolution: "caniuse-lite@npm:1.0.30001651" + checksum: 10c0/7821278952a6dbd17358e5d08083d258f092e2a530f5bc1840657cb140fbbc5ec44293bc888258c44a18a9570cde149ed05819ac8320b9710cf22f699891e6ad + languageName: node + linkType: hard + +"chalk@npm:^2.4.2": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: "npm:^3.2.1" + escape-string-regexp: "npm:^1.0.5" + supports-color: "npm:^5.3.0" + checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073 + languageName: node + linkType: hard + +"chokidar@npm:^3.5.3": + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" + dependencies: + anymatch: "npm:~3.1.2" + braces: "npm:~3.0.2" + fsevents: "npm:~2.3.2" + glob-parent: "npm:~5.1.2" + is-binary-path: "npm:~2.1.0" + is-glob: "npm:~4.0.1" + normalize-path: "npm:~3.0.0" + readdirp: "npm:~3.6.0" + dependenciesMeta: + fsevents: + optional: true + checksum: 10c0/8361dcd013f2ddbe260eacb1f3cb2f2c6f2b0ad118708a343a5ed8158941a39cb8fb1d272e0f389712e74ee90ce8ba864eece9e0e62b9705cb468a2f6d917462 + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6 + languageName: node + linkType: hard + +"class-variance-authority@npm:^0.7.0": + version: 0.7.0 + resolution: "class-variance-authority@npm:0.7.0" + dependencies: + clsx: "npm:2.0.0" + checksum: 10c0/e11c57edf4bf50ef1c97bae41d68885afbaaedba26c48b7cc5dfb033390fed7012147e9532168d8c4f3497fce4dff15e20e6e60b8c9c9a4b0fe26b0e804513db + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 + languageName: node + linkType: hard + +"clsx@npm:2.0.0": + version: 2.0.0 + resolution: "clsx@npm:2.0.0" + checksum: 10c0/c09f43b3144a0b7826b6b11b6a111b2c7440831004eecc02d333533c5e58ef0aa5f2dce071d3b25fbb8c8ea97b45df96c74bcc1d51c8c2027eb981931107b0cd + languageName: node + linkType: hard + +"clsx@npm:^2.1.0": + version: 2.1.1 + resolution: "clsx@npm:2.1.1" + checksum: 10c0/c4c8eb865f8c82baab07e71bfa8897c73454881c4f99d6bc81585aecd7c441746c1399d08363dc096c550cceaf97bd4ce1e8854e1771e9998d9f94c4fe075839 + languageName: node + linkType: hard + +"cmdk@npm:^1.0.0": + version: 1.0.0 + resolution: "cmdk@npm:1.0.0" + dependencies: + "@radix-ui/react-dialog": "npm:1.0.5" + "@radix-ui/react-primitive": "npm:1.0.3" + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 10c0/bf1c9cfce46f2f507ab95735fa08c9aa27e76ecdff87720cc51ae89dbf4814b7559668458f66ff4c3932a88a6b9d8817be05c3cc4ff98bc40c3645acf4a97376 + languageName: node + linkType: hard + +"codemirror@npm:^6.0.0": + version: 6.0.1 + resolution: "codemirror@npm:6.0.1" + dependencies: + "@codemirror/autocomplete": "npm:^6.0.0" + "@codemirror/commands": "npm:^6.0.0" + "@codemirror/language": "npm:^6.0.0" + "@codemirror/lint": "npm:^6.0.0" + "@codemirror/search": "npm:^6.0.0" + "@codemirror/state": "npm:^6.0.0" + "@codemirror/view": "npm:^6.0.0" + checksum: 10c0/219b0f6ee91d373380fba2e0564a2665990a3cdada0b01861768005b09061187c58eeb3db96aef486777b02b77b50a50ee843635e3743c47d3725034913c4b60 + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: "npm:1.1.3" + checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: "npm:~1.1.4" + checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6 + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.8": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: "npm:~1.0.0" + checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 + languageName: node + linkType: hard + +"commander@npm:^4.0.0": + version: 4.1.1 + resolution: "commander@npm:4.1.1" + checksum: 10c0/84a76c08fe6cc08c9c93f62ac573d2907d8e79138999312c92d4155bc2325d487d64d13f669b2000c9f8caf70493c1be2dac74fec3c51d5a04f8bc3ae1830bab + languageName: node + linkType: hard + +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 10c0/8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b + languageName: node + linkType: hard + +"crelt@npm:^1.0.5": + version: 1.0.6 + resolution: "crelt@npm:1.0.6" + checksum: 10c0/e0fb76dff50c5eb47f2ea9b786c17f9425c66276025adee80876bdbf4a84ab72e899e56d3928431ab0cb057a105ef704df80fe5726ef0f7b1658f815521bdf09 + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 + languageName: node + linkType: hard + +"cssesc@npm:^3.0.0": + version: 3.0.0 + resolution: "cssesc@npm:3.0.0" + bin: + cssesc: bin/cssesc + checksum: 10c0/6bcfd898662671be15ae7827120472c5667afb3d7429f1f917737f3bf84c4176003228131b643ae74543f17a394446247df090c597bb9a728cce298606ed0aa7 + languageName: node + linkType: hard + +"csstype@npm:^3.0.2": + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 10c0/80c089d6f7e0c5b2bd83cf0539ab41474198579584fa10d86d0cafe0642202343cbc119e076a0b1aece191989477081415d66c9fefbf3c957fc2fc4b7009f248 + languageName: node + linkType: hard + +"date-fns@npm:^3.6.0": + version: 3.6.0 + resolution: "date-fns@npm:3.6.0" + checksum: 10c0/0b5fb981590ef2f8e5a3ba6cd6d77faece0ea7f7158948f2eaae7bbb7c80a8f63ae30b01236c2923cf89bb3719c33aeb150c715ea4fe4e86e37dcf06bed42fb6 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.4": + version: 4.3.6 + resolution: "debug@npm:4.3.6" + dependencies: + ms: "npm:2.1.2" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/3293416bff072389c101697d4611c402a6bacd1900ac20c0492f61a9cdd6b3b29750fc7f5e299f8058469ef60ff8fb79b86395a30374fbd2490113c1c7112285 + languageName: node + linkType: hard + +"define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.0.1" + checksum: 10c0/dea0606d1483eb9db8d930d4eac62ca0fa16738b0b3e07046cddfacf7d8c868bbe13fa0cb263eb91c7d0d527960dc3f2f2471a69ed7816210307f6744fe62e37 + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 + languageName: node + linkType: hard + +"detect-node-es@npm:^1.1.0": + version: 1.1.0 + resolution: "detect-node-es@npm:1.1.0" + checksum: 10c0/e562f00de23f10c27d7119e1af0e7388407eb4b06596a25f6d79a360094a109ff285de317f02b090faae093d314cf6e73ac3214f8a5bb3a0def5bece94557fbe + languageName: node + linkType: hard + +"didyoumean@npm:^1.2.2": + version: 1.2.2 + resolution: "didyoumean@npm:1.2.2" + checksum: 10c0/95d0b53d23b851aacff56dfadb7ecfedce49da4232233baecfeecb7710248c4aa03f0aa8995062f0acafaf925adf8536bd7044a2e68316fd7d411477599bc27b + languageName: node + linkType: hard + +"dlv@npm:^1.1.3": + version: 1.1.3 + resolution: "dlv@npm:1.1.3" + checksum: 10c0/03eb4e769f19a027fd5b43b59e8a05e3fd2100ac239ebb0bf9a745de35d449e2f25cfaf3aa3934664551d72856f4ae8b7822016ce5c42c2d27c18ae79429ec42 + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.5.4": + version: 1.5.5 + resolution: "electron-to-chromium@npm:1.5.5" + checksum: 10c0/6e5e12f729a74a78d9a7386ea32039262cb8a2f4611ab346da1f162c270d0569194c72169042080a1017220835ed30ee2d77ca5ba13c1acaa5fa0d373fbc0ad5 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: "npm:^0.6.2" + checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "es-define-property@npm:1.0.0" + dependencies: + get-intrinsic: "npm:^1.2.4" + checksum: 10c0/6bf3191feb7ea2ebda48b577f69bdfac7a2b3c9bcf97307f55fd6ef1bbca0b49f0c219a935aca506c993d8c5d8bddd937766cb760cd5e5a1071351f2df9f9aa4 + languageName: node + linkType: hard + +"es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 + languageName: node + linkType: hard + +"esbuild@npm:^0.21.3": + version: 0.21.5 + resolution: "esbuild@npm:0.21.5" + dependencies: + "@esbuild/aix-ppc64": "npm:0.21.5" + "@esbuild/android-arm": "npm:0.21.5" + "@esbuild/android-arm64": "npm:0.21.5" + "@esbuild/android-x64": "npm:0.21.5" + "@esbuild/darwin-arm64": "npm:0.21.5" + "@esbuild/darwin-x64": "npm:0.21.5" + "@esbuild/freebsd-arm64": "npm:0.21.5" + "@esbuild/freebsd-x64": "npm:0.21.5" + "@esbuild/linux-arm": "npm:0.21.5" + "@esbuild/linux-arm64": "npm:0.21.5" + "@esbuild/linux-ia32": "npm:0.21.5" + "@esbuild/linux-loong64": "npm:0.21.5" + "@esbuild/linux-mips64el": "npm:0.21.5" + "@esbuild/linux-ppc64": "npm:0.21.5" + "@esbuild/linux-riscv64": "npm:0.21.5" + "@esbuild/linux-s390x": "npm:0.21.5" + "@esbuild/linux-x64": "npm:0.21.5" + "@esbuild/netbsd-x64": "npm:0.21.5" + "@esbuild/openbsd-x64": "npm:0.21.5" + "@esbuild/sunos-x64": "npm:0.21.5" + "@esbuild/win32-arm64": "npm:0.21.5" + "@esbuild/win32-ia32": "npm:0.21.5" + "@esbuild/win32-x64": "npm:0.21.5" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/fa08508adf683c3f399e8a014a6382a6b65542213431e26206c0720e536b31c09b50798747c2a105a4bbba1d9767b8d3615a74c2f7bf1ddf6d836cd11eb672de + languageName: node + linkType: hard + +"escalade@npm:^3.1.2": + version: 3.1.2 + resolution: "escalade@npm:3.1.2" + checksum: 10c0/6b4adafecd0682f3aa1cd1106b8fff30e492c7015b178bc81b2d2f75106dabea6c6d6e8508fc491bd58e597c74abb0e8e2368f943ecb9393d4162e3c2f3cf287 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 + languageName: node + linkType: hard + +"fast-glob@npm:^3.3.0": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" + dependencies: + "@nodelib/fs.stat": "npm:^2.0.2" + "@nodelib/fs.walk": "npm:^1.2.3" + glob-parent: "npm:^5.1.2" + merge2: "npm:^1.3.0" + micromatch: "npm:^4.0.4" + checksum: 10c0/42baad7b9cd40b63e42039132bde27ca2cb3a4950d0a0f9abe4639ea1aa9d3e3b40f98b1fe31cbc0cc17b664c9ea7447d911a152fa34ec5b72977b125a6fc845 + languageName: node + linkType: hard + +"fastq@npm:^1.6.0": + version: 1.17.1 + resolution: "fastq@npm:1.17.1" + dependencies: + reusify: "npm:^1.0.4" + checksum: 10c0/1095f16cea45fb3beff558bb3afa74ca7a9250f5a670b65db7ed585f92b4b48381445cd328b3d87323da81e43232b5d5978a8201bde84e0cd514310f1ea6da34 + languageName: node + linkType: hard + +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" + dependencies: + to-regex-range: "npm:^5.0.1" + checksum: 10c0/b75b691bbe065472f38824f694c2f7449d7f5004aa950426a2c28f0306c60db9b880c0b0e4ed819997ffb882d1da02cfcfc819bddc94d71627f5269682edf018 + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.3.0 + resolution: "foreground-child@npm:3.3.0" + dependencies: + cross-spawn: "npm:^7.0.0" + signal-exit: "npm:^4.0.1" + checksum: 10c0/028f1d41000553fcfa6c4bb5c372963bf3d9bf0b1f25a87d1a6253014343fb69dfb1b42d9625d7cf44c8ba429940f3d0ff718b62105d4d4a4f6ef8ca0a53faa2 + languageName: node + linkType: hard + +"form-data@npm:^4.0.0": + version: 4.0.0 + resolution: "form-data@npm:4.0.0" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + mime-types: "npm:^2.1.12" + checksum: 10c0/cb6f3ac49180be03ff07ba3ff125f9eba2ff0b277fb33c7fc47569fc5e616882c5b1c69b9904c4c4187e97dd0419dd03b134174756f296dec62041e6527e2c6e + languageName: node + linkType: hard + +"fraction.js@npm:^4.3.7": + version: 4.3.7 + resolution: "fraction.js@npm:4.3.7" + checksum: 10c0/df291391beea9ab4c263487ffd9d17fed162dbb736982dee1379b2a8cc94e4e24e46ed508c6d278aded9080ba51872f1bc5f3a5fd8d7c74e5f105b508ac28711 + languageName: node + linkType: hard + +"framer-motion@npm:^11.2.11": + version: 11.3.24 + resolution: "framer-motion@npm:11.3.24" + dependencies: + tslib: "npm:^2.4.0" + peerDependencies: + "@emotion/is-prop-valid": "*" + react: ^18.0.0 + react-dom: ^18.0.0 + peerDependenciesMeta: + "@emotion/is-prop-valid": + optional: true + react: + optional: true + react-dom: + optional: true + checksum: 10c0/5322fce366b4ea0836bb7c684f5eb834beaab20db7c09b8661f1a7903739df6090b154bed396da930affff3def949cfe9da5288828824bb0c73cf1efb00ab33a + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 + languageName: node + linkType: hard + +"fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 + languageName: node + linkType: hard + +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: 10c0/782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8 + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.4": + version: 1.2.4 + resolution: "get-intrinsic@npm:1.2.4" + dependencies: + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + has-proto: "npm:^1.0.1" + has-symbols: "npm:^1.0.3" + hasown: "npm:^2.0.0" + checksum: 10c0/0a9b82c16696ed6da5e39b1267104475c47e3a9bdbe8b509dfe1710946e38a87be70d759f4bb3cda042d76a41ef47fe769660f3b7c0d1f68750299344ffb15b7 + languageName: node + linkType: hard + +"get-nonce@npm:^1.0.0": + version: 1.0.1 + resolution: "get-nonce@npm:1.0.1" + checksum: 10c0/2d7df55279060bf0568549e1ffc9b84bc32a32b7541675ca092dce56317cdd1a59a98dcc4072c9f6a980779440139a3221d7486f52c488e69dc0fd27b1efb162 + languageName: node + linkType: hard + +"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: "npm:^4.0.1" + checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee + languageName: node + linkType: hard + +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: "npm:^4.0.3" + checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8 + languageName: node + linkType: hard + +"glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.4.5 + resolution: "glob@npm:10.4.5" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e + languageName: node + linkType: hard + +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 10c0/758f9f258e7b19226bd8d4af5d3b0dcf7038780fb23d82e6f98932c44e239f884847f1766e8fa9cc5635ccb3204f7fa7314d4408dd4002a5e8ea827b4018f0a1 + languageName: node + linkType: hard + +"gopd@npm:^1.0.1": + version: 1.0.1 + resolution: "gopd@npm:1.0.1" + dependencies: + get-intrinsic: "npm:^1.1.3" + checksum: 10c0/505c05487f7944c552cee72087bf1567debb470d4355b1335f2c262d218ebbff805cd3715448fe29b4b380bae6912561d0467233e4165830efd28da241418c63 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 + languageName: node + linkType: hard + +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473 + languageName: node + linkType: hard + +"has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" + dependencies: + es-define-property: "npm:^1.0.0" + checksum: 10c0/253c1f59e80bb476cf0dde8ff5284505d90c3bdb762983c3514d36414290475fe3fd6f574929d84de2a8eec00d35cf07cb6776205ff32efd7c50719125f00236 + languageName: node + linkType: hard + +"has-proto@npm:^1.0.1": + version: 1.0.3 + resolution: "has-proto@npm:1.0.3" + checksum: 10c0/35a6989f81e9f8022c2f4027f8b48a552de714938765d019dbea6bb547bd49ce5010a3c7c32ec6ddac6e48fc546166a3583b128f5a7add8b058a6d8b4afec205 + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.3": + version: 1.0.3 + resolution: "has-symbols@npm:1.0.3" + checksum: 10c0/e6922b4345a3f37069cdfe8600febbca791c94988c01af3394d86ca3360b4b93928bbf395859158f88099cb10b19d98e3bbab7c9ff2c1bd09cf665ee90afa2c3 + languageName: node + linkType: hard + +"hasown@npm:^2.0.0, hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc + languageName: node + linkType: hard + +"http-proxy-agent@npm:^7.0.0": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: "npm:^7.1.0" + debug: "npm:^4.3.4" + checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.1": + version: 7.0.5 + resolution: "https-proxy-agent@npm:7.0.5" + dependencies: + agent-base: "npm:^7.0.2" + debug: "npm:4" + checksum: 10c0/2490e3acec397abeb88807db52cac59102d5ed758feee6df6112ab3ccd8325e8a1ce8bce6f4b66e5470eca102d31e425ace904242e4fa28dbe0c59c4bafa7b2c + languageName: node + linkType: hard + +"iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f + languageName: node + linkType: hard + +"input-otp@npm:^1.2.3": + version: 1.2.4 + resolution: "input-otp@npm:1.2.4" + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + checksum: 10c0/bb2cd158cb244da6e807f791261a77a6184de19580af4afba6cc1ea5ff69e675d401537f8186dd6eab7985748e8e2f0ae67c3a7edfbffe963dda029679ee2d8d + languageName: node + linkType: hard + +"invariant@npm:^2.2.4": + version: 2.2.4 + resolution: "invariant@npm:2.2.4" + dependencies: + loose-envify: "npm:^1.0.0" + checksum: 10c0/5af133a917c0bcf65e84e7f23e779e7abc1cd49cb7fdc62d00d1de74b0d8c1b5ee74ac7766099fb3be1b05b26dfc67bab76a17030d2fe7ea2eef867434362dfc + languageName: node + linkType: hard + +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: "npm:1.1.0" + sprintf-js: "npm:^1.1.3" + checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc + languageName: node + linkType: hard + +"is-binary-path@npm:~2.1.0": + version: 2.1.0 + resolution: "is-binary-path@npm:2.1.0" + dependencies: + binary-extensions: "npm:^2.0.0" + checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38 + languageName: node + linkType: hard + +"is-core-module@npm:^2.13.0": + version: 2.15.0 + resolution: "is-core-module@npm:2.15.0" + dependencies: + hasown: "npm:^2.0.2" + checksum: 10c0/da161f3d9906f459486da65609b2f1a2dfdc60887c689c234d04e88a062cb7920fa5be5fb7ab08dc43b732929653c4135ef05bf77888ae2a9040ce76815eb7b1 + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc + languageName: node + linkType: hard + +"is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: "npm:^2.1.1" + checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811 + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d + languageName: node + linkType: hard + +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 + languageName: node + linkType: hard + +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9 + languageName: node + linkType: hard + +"jiti@npm:^1.21.0": + version: 1.21.6 + resolution: "jiti@npm:1.21.6" + bin: + jiti: bin/jiti.js + checksum: 10c0/05b9ed58cd30d0c3ccd3c98209339e74f50abd9a17e716f65db46b6a35812103f6bde6e134be7124d01745586bca8cc5dae1d0d952267c3ebe55171949c32e56 + languageName: node + linkType: hard + +"js-base64@npm:^3.7.5": + version: 3.7.7 + resolution: "js-base64@npm:3.7.7" + checksum: 10c0/3c905a7e78b601e4751b5e710edd0d6d045ce2d23eb84c9df03515371e1b291edc72808dc91e081cb9855aef6758292a2407006f4608ec3705373dd8baf2f80f + languageName: node + linkType: hard + +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed + languageName: node + linkType: hard + +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 + languageName: node + linkType: hard + +"jsesc@npm:^2.5.1": + version: 2.5.2 + resolution: "jsesc@npm:2.5.2" + bin: + jsesc: bin/jsesc + checksum: 10c0/dbf59312e0ebf2b4405ef413ec2b25abb5f8f4d9bc5fb8d9f90381622ebca5f2af6a6aa9a8578f65903f9e33990a6dc798edd0ce5586894bf0e9e31803a1de88 + languageName: node + linkType: hard + +"json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 10c0/5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c + languageName: node + linkType: hard + +"lilconfig@npm:^2.1.0": + version: 2.1.0 + resolution: "lilconfig@npm:2.1.0" + checksum: 10c0/64645641aa8d274c99338e130554abd6a0190533c0d9eb2ce7ebfaf2e05c7d9961f3ffe2bfa39efd3b60c521ba3dd24fa236fe2775fc38501bf82bf49d4678b8 + languageName: node + linkType: hard + +"lilconfig@npm:^3.0.0": + version: 3.1.2 + resolution: "lilconfig@npm:3.1.2" + checksum: 10c0/f059630b1a9bddaeba83059db00c672b64dc14074e9f232adce32b38ca1b5686ab737eb665c5ba3c32f147f0002b4bee7311ad0386a9b98547b5623e87071fbe + languageName: node + linkType: hard + +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 10c0/3da6ee62d4cd9f03f5dc90b4df2540fb85b352081bee77fe4bbcd12c9000ead7f35e0a38b8d09a9bb99b13223446dd8689ff3c4959807620726d788701a83d2d + languageName: node + linkType: hard + +"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: "npm:^3.0.0 || ^4.0.0" + bin: + loose-envify: cli.js + checksum: 10c0/655d110220983c1a4b9c0c679a2e8016d4b67f6e9c7b5435ff5979ecdb20d0813f4dec0a08674fcbdd4846a3f07edbb50a36811fd37930b94aaa0d9daceb017e + languageName: node + linkType: hard + +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb + languageName: node + linkType: hard + +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" + dependencies: + yallist: "npm:^3.0.2" + checksum: 10c0/89b2ef2ef45f543011e38737b8a8622a2f8998cddf0e5437174ef8f1f70a8b9d14a918ab3e232cb3ba343b7abddffa667f0b59075b2b80e6b4d63c3de6127482 + languageName: node + linkType: hard + +"make-fetch-happen@npm:^13.0.0": + version: 13.0.1 + resolution: "make-fetch-happen@npm:13.0.1" + dependencies: + "@npmcli/agent": "npm:^2.0.0" + cacache: "npm:^18.0.0" + http-cache-semantics: "npm:^4.1.1" + is-lambda: "npm:^1.0.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^3.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^0.6.3" + proc-log: "npm:^4.2.0" + promise-retry: "npm:^2.0.1" + ssri: "npm:^10.0.0" + checksum: 10c0/df5f4dbb6d98153b751bccf4dc4cc500de85a96a9331db9805596c46aa9f99d9555983954e6c1266d9f981ae37a9e4647f42b9a4bb5466f867f4012e582c9e7e + languageName: node + linkType: hard + +"merge2@npm:^1.3.0": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb + languageName: node + linkType: hard + +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": + version: 4.0.7 + resolution: "micromatch@npm:4.0.7" + dependencies: + braces: "npm:^3.0.3" + picomatch: "npm:^2.3.1" + checksum: 10c0/58fa99bc5265edec206e9163a1d2cec5fabc46a5b473c45f4a700adce88c2520456ae35f2b301e4410fb3afb27e9521fb2813f6fc96be0a48a89430e0916a772 + languageName: node + linkType: hard + +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 + languageName: node + linkType: hard + +"minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e + languageName: node + linkType: hard + +"minipass-fetch@npm:^3.0.0": + version: 3.0.5 + resolution: "minipass-fetch@npm:3.0.5" + dependencies: + encoding: "npm:^0.1.13" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^1.0.3" + minizlib: "npm:^2.1.2" + dependenciesMeta: + encoding: + optional: true + checksum: 10c0/9d702d57f556274286fdd97e406fc38a2f5c8d15e158b498d7393b1105974b21249289ec571fa2b51e038a4872bfc82710111cf75fae98c662f3d6f95e72152b + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: "npm:^3.0.0" + yallist: "npm:^4.0.0" + checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf + languageName: node + linkType: hard + +"ms@npm:2.1.2": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 10c0/a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc + languageName: node + linkType: hard + +"mz@npm:^2.7.0": + version: 2.7.0 + resolution: "mz@npm:2.7.0" + dependencies: + any-promise: "npm:^1.0.0" + object-assign: "npm:^4.0.1" + thenify-all: "npm:^1.0.0" + checksum: 10c0/103114e93f87362f0b56ab5b2e7245051ad0276b646e3902c98397d18bb8f4a77f2ea4a2c9d3ad516034ea3a56553b60d3f5f78220001ca4c404bd711bd0af39 + languageName: node + linkType: hard + +"nanoid@npm:^3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" + bin: + nanoid: bin/nanoid.cjs + checksum: 10c0/e3fb661aa083454f40500473bb69eedb85dc160e763150b9a2c567c7e9ff560ce028a9f833123b618a6ea742e311138b591910e795614a629029e86e180660f3 + languageName: node + linkType: hard + +"negotiator@npm:^0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 + languageName: node + linkType: hard + +"node-fetch@npm:2": + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" + dependencies: + whatwg-url: "npm:^5.0.0" + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 10c0/b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8 + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 10.2.0 + resolution: "node-gyp@npm:10.2.0" + dependencies: + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + glob: "npm:^10.3.10" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^13.0.0" + nopt: "npm:^7.0.0" + proc-log: "npm:^4.1.0" + semver: "npm:^7.3.5" + tar: "npm:^6.2.1" + which: "npm:^4.0.0" + bin: + node-gyp: bin/node-gyp.js + checksum: 10c0/00630d67dbd09a45aee0a5d55c05e3916ca9e6d427ee4f7bc392d2d3dc5fad7449b21fc098dd38260a53d9dcc9c879b36704a1994235d4707e7271af7e9a835b + languageName: node + linkType: hard + +"node-releases@npm:^2.0.18": + version: 2.0.18 + resolution: "node-releases@npm:2.0.18" + checksum: 10c0/786ac9db9d7226339e1dc84bbb42007cb054a346bd9257e6aa154d294f01bc6a6cddb1348fa099f079be6580acbb470e3c048effd5f719325abd0179e566fd27 + languageName: node + linkType: hard + +"nopt@npm:^7.0.0": + version: 7.2.1 + resolution: "nopt@npm:7.2.1" + dependencies: + abbrev: "npm:^2.0.0" + bin: + nopt: bin/nopt.js + checksum: 10c0/a069c7c736767121242037a22a788863accfa932ab285a1eb569eb8cd534b09d17206f68c37f096ae785647435e0c5a5a0a67b42ec743e481a455e5ae6a6df81 + languageName: node + linkType: hard + +"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": + version: 3.0.0 + resolution: "normalize-path@npm:3.0.0" + checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046 + languageName: node + linkType: hard + +"normalize-range@npm:^0.1.2": + version: 0.1.2 + resolution: "normalize-range@npm:0.1.2" + checksum: 10c0/bf39b73a63e0a42ad1a48c2bd1bda5a07ede64a7e2567307a407674e595bcff0fa0d57e8e5f1e7fa5e91000797c7615e13613227aaaa4d6d6e87f5bd5cc95de6 + languageName: node + linkType: hard + +"object-assign@npm:^4.0.1, object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 + languageName: node + linkType: hard + +"object-hash@npm:^3.0.0": + version: 3.0.0 + resolution: "object-hash@npm:3.0.0" + checksum: 10c0/a06844537107b960c1c8b96cd2ac8592a265186bfa0f6ccafe0d34eabdb526f6fa81da1f37c43df7ed13b12a4ae3457a16071603bcd39d8beddb5f08c37b0f47 + languageName: node + linkType: hard + +"object-inspect@npm:^1.13.1": + version: 1.13.2 + resolution: "object-inspect@npm:1.13.2" + checksum: 10c0/b97835b4c91ec37b5fd71add84f21c3f1047d1d155d00c0fcd6699516c256d4fcc6ff17a1aced873197fe447f91a3964178fd2a67a1ee2120cdaf60e81a050b4 + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: "npm:^3.0.0" + checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 + languageName: node + linkType: hard + +"package-json-from-dist@npm:^1.0.0": + version: 1.0.0 + resolution: "package-json-from-dist@npm:1.0.0" + checksum: 10c0/e3ffaf6ac1040ab6082a658230c041ad14e72fabe99076a2081bb1d5d41210f11872403fc09082daf4387fc0baa6577f96c9c0e94c90c394fd57794b66aa4033 + languageName: node + linkType: hard + +"path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c + languageName: node + linkType: hard + +"path-parse@npm:^1.0.7": + version: 1.0.7 + resolution: "path-parse@npm:1.0.7" + checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1 + languageName: node + linkType: hard + +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" + dependencies: + lru-cache: "npm:^10.2.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1": + version: 1.0.1 + resolution: "picocolors@npm:1.0.1" + checksum: 10c0/c63cdad2bf812ef0d66c8db29583802355d4ca67b9285d846f390cc15c2f6ccb94e8cb7eb6a6e97fc5990a6d3ad4ae42d86c84d3146e667c739a4234ed50d400 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be + languageName: node + linkType: hard + +"pify@npm:^2.3.0": + version: 2.3.0 + resolution: "pify@npm:2.3.0" + checksum: 10c0/551ff8ab830b1052633f59cb8adc9ae8407a436e06b4a9718bcb27dc5844b83d535c3a8512b388b6062af65a98c49bdc0dd523d8b2617b188f7c8fee457158dc + languageName: node + linkType: hard + +"pirates@npm:^4.0.1": + version: 4.0.6 + resolution: "pirates@npm:4.0.6" + checksum: 10c0/00d5fa51f8dded94d7429700fb91a0c1ead00ae2c7fd27089f0c5b63e6eca36197fe46384631872690a66f390c5e27198e99006ab77ae472692ab9c2ca903f36 + languageName: node + linkType: hard + +"postcss-import@npm:^15.1.0": + version: 15.1.0 + resolution: "postcss-import@npm:15.1.0" + dependencies: + postcss-value-parser: "npm:^4.0.0" + read-cache: "npm:^1.0.0" + resolve: "npm:^1.1.7" + peerDependencies: + postcss: ^8.0.0 + checksum: 10c0/518aee5c83ea6940e890b0be675a2588db68b2582319f48c3b4e06535a50ea6ee45f7e63e4309f8754473245c47a0372632378d1d73d901310f295a92f26f17b + languageName: node + linkType: hard + +"postcss-js@npm:^4.0.1": + version: 4.0.1 + resolution: "postcss-js@npm:4.0.1" + dependencies: + camelcase-css: "npm:^2.0.1" + peerDependencies: + postcss: ^8.4.21 + checksum: 10c0/af35d55cb873b0797d3b42529514f5318f447b134541844285c9ac31a17497297eb72296902967911bb737a75163441695737300ce2794e3bd8c70c13a3b106e + languageName: node + linkType: hard + +"postcss-load-config@npm:^4.0.1": + version: 4.0.2 + resolution: "postcss-load-config@npm:4.0.2" + dependencies: + lilconfig: "npm:^3.0.0" + yaml: "npm:^2.3.4" + peerDependencies: + postcss: ">=8.0.9" + ts-node: ">=9.0.0" + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + checksum: 10c0/3d7939acb3570b0e4b4740e483d6e555a3e2de815219cb8a3c8fc03f575a6bde667443aa93369c0be390af845cb84471bf623e24af833260de3a105b78d42519 + languageName: node + linkType: hard + +"postcss-nested@npm:^6.0.1": + version: 6.2.0 + resolution: "postcss-nested@npm:6.2.0" + dependencies: + postcss-selector-parser: "npm:^6.1.1" + peerDependencies: + postcss: ^8.2.14 + checksum: 10c0/7f9c3f2d764191a39364cbdcec350f26a312431a569c9ef17408021424726b0d67995ff5288405e3724bb7152a4c92f73c027e580ec91e798800ed3c52e2bc6e + languageName: node + linkType: hard + +"postcss-selector-parser@npm:^6.0.11, postcss-selector-parser@npm:^6.1.1": + version: 6.1.1 + resolution: "postcss-selector-parser@npm:6.1.1" + dependencies: + cssesc: "npm:^3.0.0" + util-deprecate: "npm:^1.0.2" + checksum: 10c0/5608765e033fee35d448e1f607ffbaa750eb86901824a8bc4a911ea8bc137cb82f29239330787427c5d3695afd90d8721e190f211dbbf733e25033d8b3100763 + languageName: node + linkType: hard + +"postcss-value-parser@npm:^4.0.0, postcss-value-parser@npm:^4.2.0": + version: 4.2.0 + resolution: "postcss-value-parser@npm:4.2.0" + checksum: 10c0/f4142a4f56565f77c1831168e04e3effd9ffcc5aebaf0f538eee4b2d465adfd4b85a44257bb48418202a63806a7da7fe9f56c330aebb3cac898e46b4cbf49161 + languageName: node + linkType: hard + +"postcss@npm:^8.4.23, postcss@npm:^8.4.40": + version: 8.4.41 + resolution: "postcss@npm:8.4.41" + dependencies: + nanoid: "npm:^3.3.7" + picocolors: "npm:^1.0.1" + source-map-js: "npm:^1.2.0" + checksum: 10c0/c1828fc59e7ec1a3bf52b3a42f615dba53c67960ed82a81df6441b485fe43c20aba7f4e7c55425762fd99c594ecabbaaba8cf5b30fd79dfec5b52a9f63a2d690 + languageName: node + linkType: hard + +"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": + version: 4.2.0 + resolution: "proc-log@npm:4.2.0" + checksum: 10c0/17db4757c2a5c44c1e545170e6c70a26f7de58feb985091fb1763f5081cab3d01b181fb2dd240c9f4a4255a1d9227d163d5771b7e69c9e49a561692db865efb9 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: "npm:^2.0.2" + retry: "npm:^0.12.0" + checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 + languageName: node + linkType: hard + +"prop-types@npm:^15.8.1": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: "npm:^1.4.0" + object-assign: "npm:^4.1.1" + react-is: "npm:^16.13.1" + checksum: 10c0/59ece7ca2fb9838031d73a48d4becb9a7cc1ed10e610517c7d8f19a1e02fa47f7c27d557d8a5702bec3cfeccddc853579832b43f449e54635803f277b1c78077 + languageName: node + linkType: hard + +"qs@npm:^6.11.2": + version: 6.13.0 + resolution: "qs@npm:6.13.0" + dependencies: + side-channel: "npm:^1.0.6" + checksum: 10c0/62372cdeec24dc83a9fb240b7533c0fdcf0c5f7e0b83343edd7310f0ab4c8205a5e7c56406531f2e47e1b4878a3821d652be4192c841de5b032ca83619d8f860 + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102 + languageName: node + linkType: hard + +"react-day-picker@npm:^8.10.1": + version: 8.10.1 + resolution: "react-day-picker@npm:8.10.1" + peerDependencies: + date-fns: ^2.28.0 || ^3.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 10c0/a0ff28c4b61b3882e6a825b19e5679e2fdf3256cf1be8eb0a0c028949815c1ae5a6561474c2c19d231c010c8e0e0b654d3a322610881e0655abca05a2e03d9df + languageName: node + linkType: hard + +"react-dom@npm:^18.2.0, react-dom@npm:^18.3.1": + version: 18.3.1 + resolution: "react-dom@npm:18.3.1" + dependencies: + loose-envify: "npm:^1.1.0" + scheduler: "npm:^0.23.2" + peerDependencies: + react: ^18.3.1 + checksum: 10c0/a752496c1941f958f2e8ac56239172296fcddce1365ce45222d04a1947e0cc5547df3e8447f855a81d6d39f008d7c32eab43db3712077f09e3f67c4874973e85 + languageName: node + linkType: hard + +"react-hook-form@npm:^7.51.1": + version: 7.52.2 + resolution: "react-hook-form@npm:7.52.2" + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + checksum: 10c0/2b8d37239d40f4326a24609c1bf5b4ba2cf66bc4a988213ccd7eb92a254dd5bf9c4b94caa353bce4b1d6d8a9ecd2ea3103e25c6d2d72d53f7be26f09053a8b2f + languageName: node + linkType: hard + +"react-is@npm:^16.13.1": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: 10c0/33977da7a5f1a287936a0c85639fec6ca74f4f15ef1e59a6bc20338fc73dc69555381e211f7a3529b8150a1f71e4225525b41b60b52965bda53ce7d47377ada1 + languageName: node + linkType: hard + +"react-refresh@npm:^0.14.2": + version: 0.14.2 + resolution: "react-refresh@npm:0.14.2" + checksum: 10c0/875b72ef56b147a131e33f2abd6ec059d1989854b3ff438898e4f9310bfcc73acff709445b7ba843318a953cb9424bcc2c05af2b3d80011cee28f25aef3e2ebb + languageName: node + linkType: hard + +"react-remove-scroll-bar@npm:^2.3.3, react-remove-scroll-bar@npm:^2.3.4": + version: 2.3.6 + resolution: "react-remove-scroll-bar@npm:2.3.6" + dependencies: + react-style-singleton: "npm:^2.2.1" + tslib: "npm:^2.0.0" + peerDependencies: + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/4e32ee04bf655a8bd3b4aacf6ffc596ae9eb1b9ba27eef83f7002632ee75371f61516ae62250634a9eae4b2c8fc6f6982d9b182de260f6c11841841e6e2e7515 + languageName: node + linkType: hard + +"react-remove-scroll@npm:2.5.5": + version: 2.5.5 + resolution: "react-remove-scroll@npm:2.5.5" + dependencies: + react-remove-scroll-bar: "npm:^2.3.3" + react-style-singleton: "npm:^2.2.1" + tslib: "npm:^2.1.0" + use-callback-ref: "npm:^1.3.0" + use-sidecar: "npm:^1.1.2" + peerDependencies: + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/4952657e6a7b9d661d4ad4dfcef81b9c7fa493e35164abff99c35c0b27b3d172ef7ad70c09416dc44dd14ff2e6b38a5ec7da27e27e90a15cbad36b8fd2fd8054 + languageName: node + linkType: hard + +"react-remove-scroll@npm:2.5.7": + version: 2.5.7 + resolution: "react-remove-scroll@npm:2.5.7" + dependencies: + react-remove-scroll-bar: "npm:^2.3.4" + react-style-singleton: "npm:^2.2.1" + tslib: "npm:^2.1.0" + use-callback-ref: "npm:^1.3.0" + use-sidecar: "npm:^1.1.2" + peerDependencies: + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/dcd523ada602bd0a839c2032cadf0b3e4af55ee85acefee3760976a9cceaa4606927801b093bbb8bf3c2989c71e048f5428c2c6eb9e6681762e86356833d039b + languageName: node + linkType: hard + +"react-resizable-panels@npm:^2.0.19": + version: 2.0.23 + resolution: "react-resizable-panels@npm:2.0.23" + peerDependencies: + react: ^16.14.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.14.0 || ^17.0.0 || ^18.0.0 + checksum: 10c0/74bcfb4952bda2e8f3e780891fde27da2be9ec3ae0e6d5efa45edd2ae566b3867bb715da887a563f9f110af495d0c02f818e24991d2f30604079421995dc9f1a + languageName: node + linkType: hard + +"react-style-singleton@npm:^2.2.1": + version: 2.2.1 + resolution: "react-style-singleton@npm:2.2.1" + dependencies: + get-nonce: "npm:^1.0.0" + invariant: "npm:^2.2.4" + tslib: "npm:^2.0.0" + peerDependencies: + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/6d66f3bdb65e1ec79089f80314da97c9a005087a04ee034255a5de129a4c0d9fd0bf99fa7bf642781ac2dc745ca687aae3de082bd8afdd0d117bc953241e15ad + languageName: node + linkType: hard + +"react@npm:^18.2.0, react@npm:^18.3.1": + version: 18.3.1 + resolution: "react@npm:18.3.1" + dependencies: + loose-envify: "npm:^1.1.0" + checksum: 10c0/283e8c5efcf37802c9d1ce767f302dd569dd97a70d9bb8c7be79a789b9902451e0d16334b05d73299b20f048cbc3c7d288bbbde10b701fa194e2089c237dbea3 + languageName: node + linkType: hard + +"read-cache@npm:^1.0.0": + version: 1.0.0 + resolution: "read-cache@npm:1.0.0" + dependencies: + pify: "npm:^2.3.0" + checksum: 10c0/90cb2750213c7dd7c80cb420654344a311fdec12944e81eb912cd82f1bc92aea21885fa6ce442e3336d9fccd663b8a7a19c46d9698e6ca55620848ab932da814 + languageName: node + linkType: hard + +"readdirp@npm:~3.6.0": + version: 3.6.0 + resolution: "readdirp@npm:3.6.0" + dependencies: + picomatch: "npm:^2.2.1" + checksum: 10c0/6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.14.0": + version: 0.14.1 + resolution: "regenerator-runtime@npm:0.14.1" + checksum: 10c0/1b16eb2c4bceb1665c89de70dcb64126a22bc8eb958feef3cd68fe11ac6d2a4899b5cd1b80b0774c7c03591dc57d16631a7f69d2daa2ec98100e2f29f7ec4cc4 + languageName: node + linkType: hard + +"resolve@npm:^1.1.7, resolve@npm:^1.22.2": + version: 1.22.8 + resolution: "resolve@npm:1.22.8" + dependencies: + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/07e179f4375e1fd072cfb72ad66d78547f86e6196c4014b31cb0b8bb1db5f7ca871f922d08da0fbc05b94e9fd42206f819648fa3b5b873ebbc8e1dc68fec433a + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin": + version: 1.22.8 + resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/0446f024439cd2e50c6c8fa8ba77eaa8370b4180f401a96abf3d1ebc770ac51c1955e12764cde449fde3fff480a61f84388e3505ecdbab778f4bef5f8212c729 + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe + languageName: node + linkType: hard + +"reusify@npm:^1.0.4": + version: 1.0.4 + resolution: "reusify@npm:1.0.4" + checksum: 10c0/c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107 + languageName: node + linkType: hard + +"rollup@npm:^4.13.0": + version: 4.20.0 + resolution: "rollup@npm:4.20.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.20.0" + "@rollup/rollup-android-arm64": "npm:4.20.0" + "@rollup/rollup-darwin-arm64": "npm:4.20.0" + "@rollup/rollup-darwin-x64": "npm:4.20.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.20.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.20.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.20.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.20.0" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.20.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.20.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.20.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.20.0" + "@rollup/rollup-linux-x64-musl": "npm:4.20.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.20.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.20.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.20.0" + "@types/estree": "npm:1.0.5" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10c0/9b23bf0e3380e64573a5f68a55274d5c7969036e55c19aab9fb4deea2e938d76769db70f3c95ee3783c24af152bea1772ad73f9e3625b6ffd4e600a788fe97ea + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.9": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: "npm:^1.2.2" + checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 + languageName: node + linkType: hard + +"scheduler@npm:^0.23.2": + version: 0.23.2 + resolution: "scheduler@npm:0.23.2" + dependencies: + loose-envify: "npm:^1.1.0" + checksum: 10c0/26383305e249651d4c58e6705d5f8425f153211aef95f15161c151f7b8de885f24751b377e4a0b3dd42cce09aad3f87a61dab7636859c0d89b7daf1a1e2a5c78 + languageName: node + linkType: hard + +"semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d + languageName: node + linkType: hard + +"semver@npm:^7.3.5": + version: 7.6.3 + resolution: "semver@npm:7.6.3" + bin: + semver: bin/semver.js + checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf + languageName: node + linkType: hard + +"set-function-length@npm:^1.2.1": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + checksum: 10c0/82850e62f412a258b71e123d4ed3873fa9377c216809551192bb6769329340176f109c2eeae8c22a8d386c76739855f78e8716515c818bcaef384b51110f0f3c + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: "npm:^3.0.0" + checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 + languageName: node + linkType: hard + +"side-channel@npm:^1.0.6": + version: 1.0.6 + resolution: "side-channel@npm:1.0.6" + dependencies: + call-bind: "npm:^1.0.7" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.4" + object-inspect: "npm:^1.13.1" + checksum: 10c0/d2afd163dc733cc0a39aa6f7e39bf0c436293510dbccbff446733daeaf295857dbccf94297092ec8c53e2503acac30f0b78830876f0485991d62a90e9cad305f + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 + languageName: node + linkType: hard + +"simple-statistics@npm:^7.8.3": + version: 7.8.3 + resolution: "simple-statistics@npm:7.8.3" + checksum: 10c0/a33953334ad444c0cfdb5fe00e02fb8c860466856c0583925ae42e2668b3f08a9b9ac01988efb4304a79a776886d89897632f43a919396884be6906052132683 + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^8.0.3": + version: 8.0.4 + resolution: "socks-proxy-agent@npm:8.0.4" + dependencies: + agent-base: "npm:^7.1.1" + debug: "npm:^4.3.4" + socks: "npm:^2.8.3" + checksum: 10c0/345593bb21b95b0508e63e703c84da11549f0a2657d6b4e3ee3612c312cb3a907eac10e53b23ede3557c6601d63252103494caa306b66560f43af7b98f53957a + languageName: node + linkType: hard + +"socks@npm:^2.8.3": + version: 2.8.3 + resolution: "socks@npm:2.8.3" + dependencies: + ip-address: "npm:^9.0.5" + smart-buffer: "npm:^4.2.0" + checksum: 10c0/d54a52bf9325165770b674a67241143a3d8b4e4c8884560c4e0e078aace2a728dffc7f70150660f51b85797c4e1a3b82f9b7aa25e0a0ceae1a243365da5c51a7 + languageName: node + linkType: hard + +"sonner@npm:^1.4.41": + version: 1.5.0 + resolution: "sonner@npm:1.5.0" + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 10c0/9561b5861bede7f874cc442e447a68c8bfa6e4eadad603bc04e38db35a8b8108741f595a12c9856742062bae230ffedf73122015940491f482c5aa9e68ee85e0 + languageName: node + linkType: hard + +"source-map-js@npm:^1.2.0": + version: 1.2.0 + resolution: "source-map-js@npm:1.2.0" + checksum: 10c0/7e5f896ac10a3a50fe2898e5009c58ff0dc102dcb056ed27a354623a0ece8954d4b2649e1a1b2b52ef2e161d26f8859c7710350930751640e71e374fe2d321a4 + languageName: node + linkType: hard + +"sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec + languageName: node + linkType: hard + +"ssri@npm:^10.0.0": + version: 10.0.6 + resolution: "ssri@npm:10.0.6" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/e5a1e23a4057a86a97971465418f22ea89bd439ac36ade88812dd920e4e61873e8abd6a9b72a03a67ef50faa00a2daf1ab745c5a15b46d03e0544a0296354227 + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^9.2.2" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: "npm:^5.0.1" + checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: "npm:^6.0.1" + checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 + languageName: node + linkType: hard + +"style-mod@npm:^4.0.0, style-mod@npm:^4.1.0": + version: 4.1.2 + resolution: "style-mod@npm:4.1.2" + checksum: 10c0/ad4d870b3642b0e42ecc7be0e106dd14b7af11985e34fee8de34e5e38c3214bfc96fa7055acea86d75a3a59ddea3f6a8c6641001a66494d7df72d09685e3fadb + languageName: node + linkType: hard + +"sucrase@npm:^3.32.0": + version: 3.35.0 + resolution: "sucrase@npm:3.35.0" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.2" + commander: "npm:^4.0.0" + glob: "npm:^10.3.10" + lines-and-columns: "npm:^1.1.6" + mz: "npm:^2.7.0" + pirates: "npm:^4.0.1" + ts-interface-checker: "npm:^0.1.9" + bin: + sucrase: bin/sucrase + sucrase-node: bin/sucrase-node + checksum: 10c0/ac85f3359d2c2ecbf5febca6a24ae9bf96c931f05fde533c22a94f59c6a74895e5d5f0e871878dfd59c2697a75ebb04e4b2224ef0bfc24ca1210735c2ec191ef + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: "npm:^3.0.0" + checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05 + languageName: node + linkType: hard + +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39 + languageName: node + linkType: hard + +"tailwind-merge@npm:^2.2.2": + version: 2.4.0 + resolution: "tailwind-merge@npm:2.4.0" + checksum: 10c0/77bd20647d08db78a0bdf7b57d4b904479aee7727f44570f8834d62a1aa56f42d7ae68ac959e3d610c9f188aa164eeefb6c43df4f0c8bb7cfc3418e1575bfecb + languageName: node + linkType: hard + +"tailwindcss-animate@npm:^1.0.7": + version: 1.0.7 + resolution: "tailwindcss-animate@npm:1.0.7" + peerDependencies: + tailwindcss: "*" + checksum: 10c0/ec7dbd1631076b97d66a1fbaaa06e0725fccfa63119221e8d87a997b02dcede98ad88bb1ef6665b968f5d260fcefb10592e0299ca70208d365b37761edf5e19a + languageName: node + linkType: hard + +"tailwindcss@npm:^3.4.9": + version: 3.4.9 + resolution: "tailwindcss@npm:3.4.9" + dependencies: + "@alloc/quick-lru": "npm:^5.2.0" + arg: "npm:^5.0.2" + chokidar: "npm:^3.5.3" + didyoumean: "npm:^1.2.2" + dlv: "npm:^1.1.3" + fast-glob: "npm:^3.3.0" + glob-parent: "npm:^6.0.2" + is-glob: "npm:^4.0.3" + jiti: "npm:^1.21.0" + lilconfig: "npm:^2.1.0" + micromatch: "npm:^4.0.5" + normalize-path: "npm:^3.0.0" + object-hash: "npm:^3.0.0" + picocolors: "npm:^1.0.0" + postcss: "npm:^8.4.23" + postcss-import: "npm:^15.1.0" + postcss-js: "npm:^4.0.1" + postcss-load-config: "npm:^4.0.1" + postcss-nested: "npm:^6.0.1" + postcss-selector-parser: "npm:^6.0.11" + resolve: "npm:^1.22.2" + sucrase: "npm:^3.32.0" + bin: + tailwind: lib/cli.js + tailwindcss: lib/cli.js + checksum: 10c0/b072028e87dd9dcbf858285681bdb8b5a1ff0b4439b956cc1b7aae4ae288f4d531867dea6ce3a2d974cbbd9699f3552ee515a56d079903fdd1eeae06305f60ba + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.2.1": + version: 6.2.1 + resolution: "tar@npm:6.2.1" + dependencies: + chownr: "npm:^2.0.0" + fs-minipass: "npm:^2.0.0" + minipass: "npm:^5.0.0" + minizlib: "npm:^2.1.1" + mkdirp: "npm:^1.0.3" + yallist: "npm:^4.0.0" + checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537 + languageName: node + linkType: hard + +"thenify-all@npm:^1.0.0": + version: 1.6.0 + resolution: "thenify-all@npm:1.6.0" + dependencies: + thenify: "npm:>= 3.1.0 < 4" + checksum: 10c0/9b896a22735e8122754fe70f1d65f7ee691c1d70b1f116fda04fea103d0f9b356e3676cb789506e3909ae0486a79a476e4914b0f92472c2e093d206aed4b7d6b + languageName: node + linkType: hard + +"thenify@npm:>= 3.1.0 < 4": + version: 3.3.1 + resolution: "thenify@npm:3.3.1" + dependencies: + any-promise: "npm:^1.0.0" + checksum: 10c0/f375aeb2b05c100a456a30bc3ed07ef03a39cbdefe02e0403fb714b8c7e57eeaad1a2f5c4ecfb9ce554ce3db9c2b024eba144843cd9e344566d9fcee73b04767 + languageName: node + linkType: hard + +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: 10c0/b214d21dbfb4bce3452b6244b336806ffea9c05297148d32ebb428d5c43ce7545bdfc65a1ceb58c9ef4376a65c0cb2854d645f33961658b3e3b4f84910ddcdd7 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: "npm:^7.0.0" + checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892 + languageName: node + linkType: hard + +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 10c0/047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11 + languageName: node + linkType: hard + +"ts-interface-checker@npm:^0.1.9": + version: 0.1.13 + resolution: "ts-interface-checker@npm:0.1.13" + checksum: 10c0/232509f1b84192d07b81d1e9b9677088e590ac1303436da1e92b296e9be8e31ea042e3e1fd3d29b1742ad2c959e95afe30f63117b8f1bc3a3850070a5142fea7 + languageName: node + linkType: hard + +"tslib@npm:^2.0.0, tslib@npm:^2.1.0, tslib@npm:^2.4.0": + version: 2.6.3 + resolution: "tslib@npm:2.6.3" + checksum: 10c0/2598aef53d9dbe711af75522464b2104724d6467b26a60f2bdac8297d2b5f1f6b86a71f61717384aa8fd897240467aaa7bcc36a0700a0faf751293d1331db39a + languageName: node + linkType: hard + +"typescript@npm:^5.2.2": + version: 5.5.4 + resolution: "typescript@npm:5.5.4" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/422be60f89e661eab29ac488c974b6cc0a660fb2228003b297c3d10c32c90f3bcffc1009b43876a082515a3c376b1eefcce823d6e78982e6878408b9a923199c + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A^5.2.2#optional!builtin": + version: 5.5.4 + resolution: "typescript@patch:typescript@npm%3A5.5.4#optional!builtin::version=5.5.4&hash=379a07" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/73409d7b9196a5a1217b3aaad929bf76294d3ce7d6e9766dd880ece296ee91cf7d7db6b16c6c6c630ee5096eccde726c0ef17c7dfa52b01a243e57ae1f09ef07 + languageName: node + linkType: hard + +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: "npm:^4.0.0" + checksum: 10c0/6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f + languageName: node + linkType: hard + +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: "npm:^0.1.4" + checksum: 10c0/cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635 + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.1.0": + version: 1.1.0 + resolution: "update-browserslist-db@npm:1.1.0" + dependencies: + escalade: "npm:^3.1.2" + picocolors: "npm:^1.0.1" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10c0/a7452de47785842736fb71547651c5bbe5b4dc1e3722ccf48a704b7b34e4dcf633991eaa8e4a6a517ffb738b3252eede3773bef673ef9021baa26b056d63a5b9 + languageName: node + linkType: hard + +"url-join@npm:^5.0.0": + version: 5.0.0 + resolution: "url-join@npm:5.0.0" + checksum: 10c0/ed2b166b4b5a98adcf6828a48b6bd6df1dac4c8a464a73cf4d8e2457ed410dd8da6be0d24855b86026cd7f5c5a3657c1b7b2c7a7c5b8870af17635a41387b04c + languageName: node + linkType: hard + +"use-callback-ref@npm:^1.3.0": + version: 1.3.2 + resolution: "use-callback-ref@npm:1.3.2" + dependencies: + tslib: "npm:^2.0.0" + peerDependencies: + "@types/react": ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/d232c37160fe3970c99255da19b5fb5299fb5926a5d6141d928a87feb47732c323d29be2f8137d3b1e5499c70d284cd1d9cfad703cc58179db8be24d7dd8f1f2 + languageName: node + linkType: hard + +"use-sidecar@npm:^1.1.2": + version: 1.1.2 + resolution: "use-sidecar@npm:1.1.2" + dependencies: + detect-node-es: "npm:^1.1.0" + tslib: "npm:^2.0.0" + peerDependencies: + "@types/react": ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/89f0018fd9aee1fc17c85ac18c4bf8944d460d453d0d0e04ddbc8eaddf3fa591e9c74a1f8a438a1bff368a7a2417fab380bdb3df899d2194c4375b0982736de0 + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.2": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 + languageName: node + linkType: hard + +"vite@npm:^5.2.0": + version: 5.4.0 + resolution: "vite@npm:5.4.0" + dependencies: + esbuild: "npm:^0.21.3" + fsevents: "npm:~2.3.3" + postcss: "npm:^8.4.40" + rollup: "npm:^4.13.0" + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 10c0/122de7795e1c3c08cd0acc7d77296f908398266b424492be7310400107f37a3cf4c9506f2b4b16619e57299ca2859b8ca187aac5e25f8e66d84f9204a1d72d18 + languageName: node + linkType: hard + +"w3c-keyname@npm:^2.2.4": + version: 2.2.8 + resolution: "w3c-keyname@npm:2.2.8" + checksum: 10c0/37cf335c90efff31672ebb345577d681e2177f7ff9006a9ad47c68c5a9d265ba4a7b39d6c2599ceea639ca9315584ce4bd9c9fbf7a7217bfb7a599e71943c4c4 + languageName: node + linkType: hard + +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: 10c0/5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db + languageName: node + linkType: hard + +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: "npm:~0.0.3" + webidl-conversions: "npm:^3.0.0" + checksum: 10c0/1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5 + languageName: node + linkType: hard + +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: "npm:^2.0.0" + bin: + node-which: ./bin/node-which + checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f + languageName: node + linkType: hard + +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" + dependencies: + isexe: "npm:^3.1.1" + bin: + node-which: bin/which.js + checksum: 10c0/449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: "npm:^6.1.0" + string-width: "npm:^5.0.1" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 + languageName: node + linkType: hard + +"yallist@npm:^3.0.2": + version: 3.1.1 + resolution: "yallist@npm:3.1.1" + checksum: 10c0/c66a5c46bc89af1625476f7f0f2ec3653c1a1791d2f9407cfb4c2ba812a1e1c9941416d71ba9719876530e3340a99925f697142989371b72d93b9ee628afd8c1 + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a + languageName: node + linkType: hard + +"yaml@npm:^2.3.4": + version: 2.5.0 + resolution: "yaml@npm:2.5.0" + bin: + yaml: bin.mjs + checksum: 10c0/771a1df083c8217cf04ef49f87244ae2dd7d7457094425e793b8f056159f167602ce172aa32d6bca21f787d24ec724aee3cecde938f6643564117bd151452631 + languageName: node + linkType: hard + +"zod@npm:^3.23.8": + version: 3.23.8 + resolution: "zod@npm:3.23.8" + checksum: 10c0/8f14c87d6b1b53c944c25ce7a28616896319d95bc46a9660fe441adc0ed0a81253b02b5abdaeffedbeb23bdd25a0bf1c29d2c12dd919aef6447652dd295e3e69 + languageName: node + linkType: hard diff --git a/sandbox/deno.json b/sandbox/deno.json new file mode 100644 index 00000000..12f4307e --- /dev/null +++ b/sandbox/deno.json @@ -0,0 +1,20 @@ +{ + "lint": { + "include": [ + "src/" + ], + "exclude": [ + "tests/" + ], + "rules": { + "exclude": [ + "no-empty-interface", + "no-explicit-any", + "require-await" + ] + } + }, + "fmt": { + "useTabs": true + } +} \ No newline at end of file diff --git a/sandbox/deno.lock b/sandbox/deno.lock new file mode 100644 index 00000000..68bb2b80 --- /dev/null +++ b/sandbox/deno.lock @@ -0,0 +1,1002 @@ +{ + "version": "3", + "packages": { + "specifiers": { + "npm:@prisma/adapter-pg@^5.12.0": "npm:@prisma/adapter-pg@5.17.0_pg@8.12.0", + "npm:pg@^8.11.3": "npm:pg@8.12.0", + "npm:tsup": "npm:tsup@8.1.0_typescript@5.5.3_esbuild@0.21.5", + "npm:typescript": "npm:typescript@5.5.3", + "npm:zod-validation-error@3.3.0": "npm:zod-validation-error@3.3.0_zod@3.23.8", + "npm:zod@3.23.8": "npm:zod@3.23.8" + }, + "npm": { + "@esbuild/aix-ppc64@0.21.5": { + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "dependencies": {} + }, + "@esbuild/android-arm64@0.21.5": { + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "dependencies": {} + }, + "@esbuild/android-arm@0.21.5": { + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "dependencies": {} + }, + "@esbuild/android-x64@0.21.5": { + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "dependencies": {} + }, + "@esbuild/darwin-arm64@0.21.5": { + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "dependencies": {} + }, + "@esbuild/darwin-x64@0.21.5": { + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "dependencies": {} + }, + "@esbuild/freebsd-arm64@0.21.5": { + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "dependencies": {} + }, + "@esbuild/freebsd-x64@0.21.5": { + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "dependencies": {} + }, + "@esbuild/linux-arm64@0.21.5": { + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "dependencies": {} + }, + "@esbuild/linux-arm@0.21.5": { + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "dependencies": {} + }, + "@esbuild/linux-ia32@0.21.5": { + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "dependencies": {} + }, + "@esbuild/linux-loong64@0.21.5": { + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "dependencies": {} + }, + "@esbuild/linux-mips64el@0.21.5": { + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "dependencies": {} + }, + "@esbuild/linux-ppc64@0.21.5": { + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "dependencies": {} + }, + "@esbuild/linux-riscv64@0.21.5": { + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "dependencies": {} + }, + "@esbuild/linux-s390x@0.21.5": { + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "dependencies": {} + }, + "@esbuild/linux-x64@0.21.5": { + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "dependencies": {} + }, + "@esbuild/netbsd-x64@0.21.5": { + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "dependencies": {} + }, + "@esbuild/openbsd-x64@0.21.5": { + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "dependencies": {} + }, + "@esbuild/sunos-x64@0.21.5": { + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "dependencies": {} + }, + "@esbuild/win32-arm64@0.21.5": { + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "dependencies": {} + }, + "@esbuild/win32-ia32@0.21.5": { + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "dependencies": {} + }, + "@esbuild/win32-x64@0.21.5": { + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "dependencies": {} + }, + "@isaacs/cliui@8.0.2": { + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "string-width@5.1.2", + "string-width-cjs": "string-width@4.2.3", + "strip-ansi": "strip-ansi@7.1.0", + "strip-ansi-cjs": "strip-ansi@6.0.1", + "wrap-ansi": "wrap-ansi@8.1.0", + "wrap-ansi-cjs": "wrap-ansi@7.0.0" + } + }, + "@jridgewell/gen-mapping@0.3.5": { + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "@jridgewell/set-array@1.2.1", + "@jridgewell/sourcemap-codec": "@jridgewell/sourcemap-codec@1.5.0", + "@jridgewell/trace-mapping": "@jridgewell/trace-mapping@0.3.25" + } + }, + "@jridgewell/resolve-uri@3.1.2": { + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dependencies": {} + }, + "@jridgewell/set-array@1.2.1": { + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dependencies": {} + }, + "@jridgewell/sourcemap-codec@1.5.0": { + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dependencies": {} + }, + "@jridgewell/trace-mapping@0.3.25": { + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "@jridgewell/resolve-uri@3.1.2", + "@jridgewell/sourcemap-codec": "@jridgewell/sourcemap-codec@1.5.0" + } + }, + "@nodelib/fs.scandir@2.1.5": { + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "@nodelib/fs.stat@2.0.5", + "run-parallel": "run-parallel@1.2.0" + } + }, + "@nodelib/fs.stat@2.0.5": { + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dependencies": {} + }, + "@nodelib/fs.walk@1.2.8": { + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "@nodelib/fs.scandir@2.1.5", + "fastq": "fastq@1.17.1" + } + }, + "@pkgjs/parseargs@0.11.0": { + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dependencies": {} + }, + "@prisma/adapter-pg@5.17.0_pg@8.12.0": { + "integrity": "sha512-ZMHVGOxftEZEbIzQ8gEGQBnK5MxBwKuLcoLZ/hpYA//csVxQhsnBoi2iGYOMcSv6gD6y7k6FroAESk9KzRiMtw==", + "dependencies": { + "@prisma/driver-adapter-utils": "@prisma/driver-adapter-utils@5.17.0", + "pg": "pg@8.12.0", + "postgres-array": "postgres-array@3.0.2" + } + }, + "@prisma/debug@5.17.0": { + "integrity": "sha512-l7+AteR3P8FXiYyo496zkuoiJ5r9jLQEdUuxIxNCN1ud8rdbH3GTxm+f+dCyaSv9l9WY+29L9czaVRXz9mULfg==", + "dependencies": {} + }, + "@prisma/driver-adapter-utils@5.17.0": { + "integrity": "sha512-ivelC8JJg88krvuf3rGF82J3CYwYFmLhhAUdNnkr9LTjS30U5r8AYDhV12/TdmnwzgWZNqHA+icg2Vm+vmRBLw==", + "dependencies": { + "@prisma/debug": "@prisma/debug@5.17.0" + } + }, + "@rollup/rollup-android-arm-eabi@4.18.0": { + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "dependencies": {} + }, + "@rollup/rollup-android-arm64@4.18.0": { + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "dependencies": {} + }, + "@rollup/rollup-darwin-arm64@4.18.0": { + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "dependencies": {} + }, + "@rollup/rollup-darwin-x64@4.18.0": { + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "dependencies": {} + }, + "@rollup/rollup-linux-arm-gnueabihf@4.18.0": { + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "dependencies": {} + }, + "@rollup/rollup-linux-arm-musleabihf@4.18.0": { + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "dependencies": {} + }, + "@rollup/rollup-linux-arm64-gnu@4.18.0": { + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "dependencies": {} + }, + "@rollup/rollup-linux-arm64-musl@4.18.0": { + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "dependencies": {} + }, + "@rollup/rollup-linux-powerpc64le-gnu@4.18.0": { + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "dependencies": {} + }, + "@rollup/rollup-linux-riscv64-gnu@4.18.0": { + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "dependencies": {} + }, + "@rollup/rollup-linux-s390x-gnu@4.18.0": { + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "dependencies": {} + }, + "@rollup/rollup-linux-x64-gnu@4.18.0": { + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "dependencies": {} + }, + "@rollup/rollup-linux-x64-musl@4.18.0": { + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "dependencies": {} + }, + "@rollup/rollup-win32-arm64-msvc@4.18.0": { + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "dependencies": {} + }, + "@rollup/rollup-win32-ia32-msvc@4.18.0": { + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "dependencies": {} + }, + "@rollup/rollup-win32-x64-msvc@4.18.0": { + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "dependencies": {} + }, + "@types/estree@1.0.5": { + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dependencies": {} + }, + "ansi-regex@5.0.1": { + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dependencies": {} + }, + "ansi-regex@6.0.1": { + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dependencies": {} + }, + "ansi-styles@4.3.0": { + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "color-convert@2.0.1" + } + }, + "ansi-styles@6.2.1": { + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dependencies": {} + }, + "any-promise@1.3.0": { + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dependencies": {} + }, + "anymatch@3.1.3": { + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "normalize-path@3.0.0", + "picomatch": "picomatch@2.3.1" + } + }, + "array-union@2.1.0": { + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dependencies": {} + }, + "balanced-match@1.0.2": { + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dependencies": {} + }, + "binary-extensions@2.3.0": { + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dependencies": {} + }, + "brace-expansion@2.0.1": { + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "balanced-match@1.0.2" + } + }, + "braces@3.0.3": { + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "fill-range@7.1.1" + } + }, + "bundle-require@4.2.1_esbuild@0.21.5": { + "integrity": "sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==", + "dependencies": { + "esbuild": "esbuild@0.21.5", + "load-tsconfig": "load-tsconfig@0.2.5" + } + }, + "cac@6.7.14": { + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dependencies": {} + }, + "chokidar@3.6.0": { + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "anymatch@3.1.3", + "braces": "braces@3.0.3", + "fsevents": "fsevents@2.3.3", + "glob-parent": "glob-parent@5.1.2", + "is-binary-path": "is-binary-path@2.1.0", + "is-glob": "is-glob@4.0.3", + "normalize-path": "normalize-path@3.0.0", + "readdirp": "readdirp@3.6.0" + } + }, + "color-convert@2.0.1": { + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "color-name@1.1.4" + } + }, + "color-name@1.1.4": { + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dependencies": {} + }, + "commander@4.1.1": { + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dependencies": {} + }, + "cross-spawn@7.0.3": { + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "path-key@3.1.1", + "shebang-command": "shebang-command@2.0.0", + "which": "which@2.0.2" + } + }, + "debug@4.3.5": { + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "ms@2.1.2" + } + }, + "dir-glob@3.0.1": { + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "path-type@4.0.0" + } + }, + "eastasianwidth@0.2.0": { + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dependencies": {} + }, + "emoji-regex@8.0.0": { + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dependencies": {} + }, + "emoji-regex@9.2.2": { + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dependencies": {} + }, + "esbuild@0.21.5": { + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dependencies": { + "@esbuild/aix-ppc64": "@esbuild/aix-ppc64@0.21.5", + "@esbuild/android-arm": "@esbuild/android-arm@0.21.5", + "@esbuild/android-arm64": "@esbuild/android-arm64@0.21.5", + "@esbuild/android-x64": "@esbuild/android-x64@0.21.5", + "@esbuild/darwin-arm64": "@esbuild/darwin-arm64@0.21.5", + "@esbuild/darwin-x64": "@esbuild/darwin-x64@0.21.5", + "@esbuild/freebsd-arm64": "@esbuild/freebsd-arm64@0.21.5", + "@esbuild/freebsd-x64": "@esbuild/freebsd-x64@0.21.5", + "@esbuild/linux-arm": "@esbuild/linux-arm@0.21.5", + "@esbuild/linux-arm64": "@esbuild/linux-arm64@0.21.5", + "@esbuild/linux-ia32": "@esbuild/linux-ia32@0.21.5", + "@esbuild/linux-loong64": "@esbuild/linux-loong64@0.21.5", + "@esbuild/linux-mips64el": "@esbuild/linux-mips64el@0.21.5", + "@esbuild/linux-ppc64": "@esbuild/linux-ppc64@0.21.5", + "@esbuild/linux-riscv64": "@esbuild/linux-riscv64@0.21.5", + "@esbuild/linux-s390x": "@esbuild/linux-s390x@0.21.5", + "@esbuild/linux-x64": "@esbuild/linux-x64@0.21.5", + "@esbuild/netbsd-x64": "@esbuild/netbsd-x64@0.21.5", + "@esbuild/openbsd-x64": "@esbuild/openbsd-x64@0.21.5", + "@esbuild/sunos-x64": "@esbuild/sunos-x64@0.21.5", + "@esbuild/win32-arm64": "@esbuild/win32-arm64@0.21.5", + "@esbuild/win32-ia32": "@esbuild/win32-ia32@0.21.5", + "@esbuild/win32-x64": "@esbuild/win32-x64@0.21.5" + } + }, + "execa@5.1.1": { + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "cross-spawn@7.0.3", + "get-stream": "get-stream@6.0.1", + "human-signals": "human-signals@2.1.0", + "is-stream": "is-stream@2.0.1", + "merge-stream": "merge-stream@2.0.0", + "npm-run-path": "npm-run-path@4.0.1", + "onetime": "onetime@5.1.2", + "signal-exit": "signal-exit@3.0.7", + "strip-final-newline": "strip-final-newline@2.0.0" + } + }, + "fast-glob@3.3.2": { + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "@nodelib/fs.stat@2.0.5", + "@nodelib/fs.walk": "@nodelib/fs.walk@1.2.8", + "glob-parent": "glob-parent@5.1.2", + "merge2": "merge2@1.4.1", + "micromatch": "micromatch@4.0.7" + } + }, + "fastq@1.17.1": { + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "reusify@1.0.4" + } + }, + "fill-range@7.1.1": { + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "to-regex-range@5.0.1" + } + }, + "foreground-child@3.1.1": { + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "cross-spawn@7.0.3", + "signal-exit": "signal-exit@4.1.0" + } + }, + "fsevents@2.3.3": { + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dependencies": {} + }, + "get-stream@6.0.1": { + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dependencies": {} + }, + "glob-parent@5.1.2": { + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "is-glob@4.0.3" + } + }, + "glob@10.4.3": { + "integrity": "sha512-Q38SGlYRpVtDBPSWEylRyctn7uDeTp4NQERTLiCT1FqA9JXPYWqAVmQU6qh4r/zMM5ehxTcbaO8EjhWnvEhmyg==", + "dependencies": { + "foreground-child": "foreground-child@3.1.1", + "jackspeak": "jackspeak@3.4.0", + "minimatch": "minimatch@9.0.5", + "minipass": "minipass@7.1.2", + "package-json-from-dist": "package-json-from-dist@1.0.0", + "path-scurry": "path-scurry@1.11.1" + } + }, + "globby@11.1.0": { + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "array-union@2.1.0", + "dir-glob": "dir-glob@3.0.1", + "fast-glob": "fast-glob@3.3.2", + "ignore": "ignore@5.3.1", + "merge2": "merge2@1.4.1", + "slash": "slash@3.0.0" + } + }, + "human-signals@2.1.0": { + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dependencies": {} + }, + "ignore@5.3.1": { + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dependencies": {} + }, + "is-binary-path@2.1.0": { + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "binary-extensions@2.3.0" + } + }, + "is-extglob@2.1.1": { + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dependencies": {} + }, + "is-fullwidth-code-point@3.0.0": { + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dependencies": {} + }, + "is-glob@4.0.3": { + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "is-extglob@2.1.1" + } + }, + "is-number@7.0.0": { + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dependencies": {} + }, + "is-stream@2.0.1": { + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dependencies": {} + }, + "isexe@2.0.0": { + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dependencies": {} + }, + "jackspeak@3.4.0": { + "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "dependencies": { + "@isaacs/cliui": "@isaacs/cliui@8.0.2", + "@pkgjs/parseargs": "@pkgjs/parseargs@0.11.0" + } + }, + "joycon@3.1.1": { + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "dependencies": {} + }, + "lilconfig@3.1.2": { + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dependencies": {} + }, + "lines-and-columns@1.2.4": { + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dependencies": {} + }, + "load-tsconfig@0.2.5": { + "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", + "dependencies": {} + }, + "lodash.sortby@4.7.0": { + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dependencies": {} + }, + "lru-cache@10.4.3": { + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dependencies": {} + }, + "merge-stream@2.0.0": { + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dependencies": {} + }, + "merge2@1.4.1": { + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dependencies": {} + }, + "micromatch@4.0.7": { + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dependencies": { + "braces": "braces@3.0.3", + "picomatch": "picomatch@2.3.1" + } + }, + "mimic-fn@2.1.0": { + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dependencies": {} + }, + "minimatch@9.0.5": { + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "brace-expansion@2.0.1" + } + }, + "minipass@7.1.2": { + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dependencies": {} + }, + "ms@2.1.2": { + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dependencies": {} + }, + "mz@2.7.0": { + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "any-promise@1.3.0", + "object-assign": "object-assign@4.1.1", + "thenify-all": "thenify-all@1.6.0" + } + }, + "normalize-path@3.0.0": { + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dependencies": {} + }, + "npm-run-path@4.0.1": { + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "path-key@3.1.1" + } + }, + "object-assign@4.1.1": { + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dependencies": {} + }, + "onetime@5.1.2": { + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "mimic-fn@2.1.0" + } + }, + "package-json-from-dist@1.0.0": { + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dependencies": {} + }, + "path-key@3.1.1": { + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dependencies": {} + }, + "path-scurry@1.11.1": { + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "lru-cache@10.4.3", + "minipass": "minipass@7.1.2" + } + }, + "path-type@4.0.0": { + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dependencies": {} + }, + "pg-cloudflare@1.1.1": { + "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "dependencies": {} + }, + "pg-connection-string@2.6.4": { + "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==", + "dependencies": {} + }, + "pg-int8@1.0.1": { + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "dependencies": {} + }, + "pg-pool@3.6.2_pg@8.12.0": { + "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", + "dependencies": { + "pg": "pg@8.12.0" + } + }, + "pg-protocol@1.6.1": { + "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==", + "dependencies": {} + }, + "pg-types@2.2.0": { + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dependencies": { + "pg-int8": "pg-int8@1.0.1", + "postgres-array": "postgres-array@2.0.0", + "postgres-bytea": "postgres-bytea@1.0.0", + "postgres-date": "postgres-date@1.0.7", + "postgres-interval": "postgres-interval@1.2.0" + } + }, + "pg@8.12.0": { + "integrity": "sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ==", + "dependencies": { + "pg-cloudflare": "pg-cloudflare@1.1.1", + "pg-connection-string": "pg-connection-string@2.6.4", + "pg-pool": "pg-pool@3.6.2_pg@8.12.0", + "pg-protocol": "pg-protocol@1.6.1", + "pg-types": "pg-types@2.2.0", + "pgpass": "pgpass@1.0.5" + } + }, + "pgpass@1.0.5": { + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "dependencies": { + "split2": "split2@4.2.0" + } + }, + "picomatch@2.3.1": { + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dependencies": {} + }, + "pirates@4.0.6": { + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dependencies": {} + }, + "postcss-load-config@4.0.2": { + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dependencies": { + "lilconfig": "lilconfig@3.1.2", + "yaml": "yaml@2.4.5" + } + }, + "postgres-array@2.0.0": { + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "dependencies": {} + }, + "postgres-array@3.0.2": { + "integrity": "sha512-6faShkdFugNQCLwucjPcY5ARoW1SlbnrZjmGl0IrrqewpvxvhSLHimCVzqeuULCbG0fQv7Dtk1yDbG3xv7Veog==", + "dependencies": {} + }, + "postgres-bytea@1.0.0": { + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "dependencies": {} + }, + "postgres-date@1.0.7": { + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "dependencies": {} + }, + "postgres-interval@1.2.0": { + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dependencies": { + "xtend": "xtend@4.0.2" + } + }, + "punycode@2.3.1": { + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dependencies": {} + }, + "queue-microtask@1.2.3": { + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dependencies": {} + }, + "readdirp@3.6.0": { + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "picomatch@2.3.1" + } + }, + "resolve-from@5.0.0": { + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dependencies": {} + }, + "reusify@1.0.4": { + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dependencies": {} + }, + "rollup@4.18.0": { + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@rollup/rollup-android-arm-eabi": "@rollup/rollup-android-arm-eabi@4.18.0", + "@rollup/rollup-android-arm64": "@rollup/rollup-android-arm64@4.18.0", + "@rollup/rollup-darwin-arm64": "@rollup/rollup-darwin-arm64@4.18.0", + "@rollup/rollup-darwin-x64": "@rollup/rollup-darwin-x64@4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "@rollup/rollup-linux-arm-gnueabihf@4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "@rollup/rollup-linux-arm-musleabihf@4.18.0", + "@rollup/rollup-linux-arm64-gnu": "@rollup/rollup-linux-arm64-gnu@4.18.0", + "@rollup/rollup-linux-arm64-musl": "@rollup/rollup-linux-arm64-musl@4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "@rollup/rollup-linux-powerpc64le-gnu@4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "@rollup/rollup-linux-riscv64-gnu@4.18.0", + "@rollup/rollup-linux-s390x-gnu": "@rollup/rollup-linux-s390x-gnu@4.18.0", + "@rollup/rollup-linux-x64-gnu": "@rollup/rollup-linux-x64-gnu@4.18.0", + "@rollup/rollup-linux-x64-musl": "@rollup/rollup-linux-x64-musl@4.18.0", + "@rollup/rollup-win32-arm64-msvc": "@rollup/rollup-win32-arm64-msvc@4.18.0", + "@rollup/rollup-win32-ia32-msvc": "@rollup/rollup-win32-ia32-msvc@4.18.0", + "@rollup/rollup-win32-x64-msvc": "@rollup/rollup-win32-x64-msvc@4.18.0", + "@types/estree": "@types/estree@1.0.5", + "fsevents": "fsevents@2.3.3" + } + }, + "run-parallel@1.2.0": { + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dependencies": { + "queue-microtask": "queue-microtask@1.2.3" + } + }, + "shebang-command@2.0.0": { + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "shebang-regex@3.0.0" + } + }, + "shebang-regex@3.0.0": { + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dependencies": {} + }, + "signal-exit@3.0.7": { + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dependencies": {} + }, + "signal-exit@4.1.0": { + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dependencies": {} + }, + "slash@3.0.0": { + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dependencies": {} + }, + "source-map@0.8.0-beta.0": { + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dependencies": { + "whatwg-url": "whatwg-url@7.1.0" + } + }, + "split2@4.2.0": { + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dependencies": {} + }, + "string-width@4.2.3": { + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "emoji-regex@8.0.0", + "is-fullwidth-code-point": "is-fullwidth-code-point@3.0.0", + "strip-ansi": "strip-ansi@6.0.1" + } + }, + "string-width@5.1.2": { + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "eastasianwidth@0.2.0", + "emoji-regex": "emoji-regex@9.2.2", + "strip-ansi": "strip-ansi@7.1.0" + } + }, + "strip-ansi@6.0.1": { + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "ansi-regex@5.0.1" + } + }, + "strip-ansi@7.1.0": { + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "ansi-regex@6.0.1" + } + }, + "strip-final-newline@2.0.0": { + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dependencies": {} + }, + "sucrase@3.35.0": { + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "@jridgewell/gen-mapping@0.3.5", + "commander": "commander@4.1.1", + "glob": "glob@10.4.3", + "lines-and-columns": "lines-and-columns@1.2.4", + "mz": "mz@2.7.0", + "pirates": "pirates@4.0.6", + "ts-interface-checker": "ts-interface-checker@0.1.13" + } + }, + "thenify-all@1.6.0": { + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": "thenify@3.3.1" + } + }, + "thenify@3.3.1": { + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "any-promise@1.3.0" + } + }, + "to-regex-range@5.0.1": { + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "is-number@7.0.0" + } + }, + "tr46@1.0.1": { + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dependencies": { + "punycode": "punycode@2.3.1" + } + }, + "tree-kill@1.2.2": { + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dependencies": {} + }, + "ts-interface-checker@0.1.13": { + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dependencies": {} + }, + "tsup@8.1.0_typescript@5.5.3_esbuild@0.21.5": { + "integrity": "sha512-UFdfCAXukax+U6KzeTNO2kAARHcWxmKsnvSPXUcfA1D+kU05XDccCrkffCQpFaWDsZfV0jMyTsxU39VfCp6EOg==", + "dependencies": { + "bundle-require": "bundle-require@4.2.1_esbuild@0.21.5", + "cac": "cac@6.7.14", + "chokidar": "chokidar@3.6.0", + "debug": "debug@4.3.5", + "esbuild": "esbuild@0.21.5", + "execa": "execa@5.1.1", + "globby": "globby@11.1.0", + "joycon": "joycon@3.1.1", + "postcss-load-config": "postcss-load-config@4.0.2", + "resolve-from": "resolve-from@5.0.0", + "rollup": "rollup@4.18.0", + "source-map": "source-map@0.8.0-beta.0", + "sucrase": "sucrase@3.35.0", + "tree-kill": "tree-kill@1.2.2", + "typescript": "typescript@5.5.3" + } + }, + "typescript@5.5.3": { + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "dependencies": {} + }, + "webidl-conversions@4.0.2": { + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dependencies": {} + }, + "whatwg-url@7.1.0": { + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "lodash.sortby@4.7.0", + "tr46": "tr46@1.0.1", + "webidl-conversions": "webidl-conversions@4.0.2" + } + }, + "which@2.0.2": { + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "isexe@2.0.0" + } + }, + "wrap-ansi@7.0.0": { + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "ansi-styles@4.3.0", + "string-width": "string-width@4.2.3", + "strip-ansi": "strip-ansi@6.0.1" + } + }, + "wrap-ansi@8.1.0": { + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "ansi-styles@6.2.1", + "string-width": "string-width@5.1.2", + "strip-ansi": "strip-ansi@7.1.0" + } + }, + "xtend@4.0.2": { + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dependencies": {} + }, + "yaml@2.4.5": { + "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "dependencies": {} + }, + "zod-validation-error@3.3.0_zod@3.23.8": { + "integrity": "sha512-Syib9oumw1NTqEv4LT0e6U83Td9aVRk9iTXPUQr1otyV1PuXQKOvOwhMNqZIq5hluzHP2pMgnOmHEo7kPdI2mw==", + "dependencies": { + "zod": "zod@3.23.8" + } + }, + "zod@3.23.8": { + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "dependencies": {} + } + } + }, + "remote": { + "https://deno.land/std@0.208.0/assert/_constants.ts": "8a9da298c26750b28b326b297316cdde860bc237533b07e1337c021379e6b2a9", + "https://deno.land/std@0.208.0/assert/_diff.ts": "58e1461cc61d8eb1eacbf2a010932bf6a05b79344b02ca38095f9b805795dc48", + "https://deno.land/std@0.208.0/assert/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", + "https://deno.land/std@0.208.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", + "https://deno.land/std@0.208.0/assert/assert_almost_equals.ts": "e15ca1f34d0d5e0afae63b3f5d975cbd18335a132e42b0c747d282f62ad2cd6c", + "https://deno.land/std@0.208.0/assert/assert_array_includes.ts": "6856d7f2c3544bc6e62fb4646dfefa3d1df5ff14744d1bca19f0cbaf3b0d66c9", + "https://deno.land/std@0.208.0/assert/assert_equals.ts": "d8ec8a22447fbaf2fc9d7c3ed2e66790fdb74beae3e482855d75782218d68227", + "https://deno.land/std@0.208.0/assert/assert_exists.ts": "407cb6b9fb23a835cd8d5ad804e2e2edbbbf3870e322d53f79e1c7a512e2efd7", + "https://deno.land/std@0.208.0/assert/assert_false.ts": "0ccbcaae910f52c857192ff16ea08bda40fdc79de80846c206bfc061e8c851c6", + "https://deno.land/std@0.208.0/assert/assert_greater.ts": "ae2158a2d19313bf675bf7251d31c6dc52973edb12ac64ac8fc7064152af3e63", + "https://deno.land/std@0.208.0/assert/assert_greater_or_equal.ts": "1439da5ebbe20855446cac50097ac78b9742abe8e9a43e7de1ce1426d556e89c", + "https://deno.land/std@0.208.0/assert/assert_instance_of.ts": "3aedb3d8186e120812d2b3a5dea66a6e42bf8c57a8bd927645770bd21eea554c", + "https://deno.land/std@0.208.0/assert/assert_is_error.ts": "c21113094a51a296ffaf036767d616a78a2ae5f9f7bbd464cd0197476498b94b", + "https://deno.land/std@0.208.0/assert/assert_less.ts": "aec695db57db42ec3e2b62e97e1e93db0063f5a6ec133326cc290ff4b71b47e4", + "https://deno.land/std@0.208.0/assert/assert_less_or_equal.ts": "5fa8b6a3ffa20fd0a05032fe7257bf985d207b85685fdbcd23651b70f928c848", + "https://deno.land/std@0.208.0/assert/assert_match.ts": "c4083f80600bc190309903c95e397a7c9257ff8b5ae5c7ef91e834704e672e9b", + "https://deno.land/std@0.208.0/assert/assert_not_equals.ts": "9f1acab95bd1f5fc9a1b17b8027d894509a745d91bac1718fdab51dc76831754", + "https://deno.land/std@0.208.0/assert/assert_not_instance_of.ts": "0c14d3dfd9ab7a5276ed8ed0b18c703d79a3d106102077ec437bfe7ed912bd22", + "https://deno.land/std@0.208.0/assert/assert_not_match.ts": "3796a5b0c57a1ce6c1c57883dd4286be13a26f715ea662318ab43a8491a13ab0", + "https://deno.land/std@0.208.0/assert/assert_not_strict_equals.ts": "4cdef83df17488df555c8aac1f7f5ec2b84ad161b6d0645ccdbcc17654e80c99", + "https://deno.land/std@0.208.0/assert/assert_object_match.ts": "d8fc2867cfd92eeacf9cea621e10336b666de1874a6767b5ec48988838370b54", + "https://deno.land/std@0.208.0/assert/assert_rejects.ts": "45c59724de2701e3b1f67c391d6c71c392363635aad3f68a1b3408f9efca0057", + "https://deno.land/std@0.208.0/assert/assert_strict_equals.ts": "b1f538a7ea5f8348aeca261d4f9ca603127c665e0f2bbfeb91fa272787c87265", + "https://deno.land/std@0.208.0/assert/assert_string_includes.ts": "b821d39ebf5cb0200a348863c86d8c4c4b398e02012ce74ad15666fc4b631b0c", + "https://deno.land/std@0.208.0/assert/assert_throws.ts": "63784e951475cb7bdfd59878cd25a0931e18f6dc32a6077c454b2cd94f4f4bcd", + "https://deno.land/std@0.208.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", + "https://deno.land/std@0.208.0/assert/equal.ts": "9f1a46d5993966d2596c44e5858eec821859b45f783a5ee2f7a695dfc12d8ece", + "https://deno.land/std@0.208.0/assert/fail.ts": "c36353d7ae6e1f7933d45f8ea51e358c8c4b67d7e7502028598fe1fea062e278", + "https://deno.land/std@0.208.0/assert/mod.ts": "37c49a26aae2b254bbe25723434dc28cd7532e444cf0b481a97c045d110ec085", + "https://deno.land/std@0.208.0/assert/unimplemented.ts": "d56fbeecb1f108331a380f72e3e010a1f161baa6956fd0f7cf3e095ae1a4c75a", + "https://deno.land/std@0.208.0/assert/unreachable.ts": "4600dc0baf7d9c15a7f7d234f00c23bca8f3eba8b140286aaca7aa998cf9a536", + "https://deno.land/std@0.208.0/fmt/colors.ts": "34b3f77432925eb72cf0bfb351616949746768620b8e5ead66da532f93d10ba2", + "https://deno.land/std@0.208.0/path/_common/assert_path.ts": "061e4d093d4ba5aebceb2c4da3318bfe3289e868570e9d3a8e327d91c2958946", + "https://deno.land/std@0.208.0/path/_common/constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", + "https://deno.land/std@0.208.0/path/_common/normalize_string.ts": "88c472f28ae49525f9fe82de8c8816d93442d46a30d6bb5063b07ff8a89ff589", + "https://deno.land/std@0.208.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2", + "https://deno.land/std@0.208.0/path/posix/_util.ts": "ecf49560fedd7dd376c6156cc5565cad97c1abe9824f4417adebc7acc36c93e5", + "https://deno.land/std@0.208.0/path/posix/resolve.ts": "51579d83159d5c719518c9ae50812a63959bbcb7561d79acbdb2c3682236e285", + "https://deno.land/std@0.208.0/path/resolve.ts": "5b184efc87155a0af9fa305ff68a109e28de9aee81fc3e77cd01380f19daf867", + "https://deno.land/std@0.208.0/path/windows/_util.ts": "f32b9444554c8863b9b4814025c700492a2b57ff2369d015360970a1b1099d54", + "https://deno.land/std@0.208.0/path/windows/resolve.ts": "5ff441ab18a2346abadf778121128ee71bda4d0898513d4639a6ca04edca366b", + "https://deno.land/std@0.224.0/collections/_utils.ts": "b2ec8ada31b5a72ebb1d99774b849b4c09fe4b3a38d07794bd010bd218a16e0b", + "https://deno.land/std@0.224.0/collections/deep_merge.ts": "04f8d2a6cfa15c7580e788689bcb5e162512b9ccb18bab1241824b432a78551e", + "https://esm.sh/nanoevents@9.0.0": "29ccd1d8839f2d7dd8d28ad9ec5d18723a7dbf966bf29179063442b1e88b3a4f", + "https://esm.sh/v135/nanoevents@9.0.0/denonext/nanoevents.mjs": "666c9d584019a64758bd3071e561051747454da64299ac06b79ede7210fe5e85" + } +} diff --git a/sandbox/game_server.Dockerfile b/sandbox/game_server.Dockerfile new file mode 100644 index 00000000..410f5c2c --- /dev/null +++ b/sandbox/game_server.Dockerfile @@ -0,0 +1,12 @@ +FROM node:20-alpine +RUN adduser -D server +WORKDIR /app +COPY sdk ./sdk +COPY game_server ./game_server +WORKDIR /app/game_server +RUN yarn install --frozen-lockfile +RUN yarn build +RUN chown -R server:server /app +USER server +EXPOSE 7777 +CMD ["node", "dist/index.js"] \ No newline at end of file diff --git a/sandbox/game_server/.gitignore b/sandbox/game_server/.gitignore new file mode 100644 index 00000000..c2658d7d --- /dev/null +++ b/sandbox/game_server/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/sandbox/game_server/package-lock.json b/sandbox/game_server/package-lock.json new file mode 100644 index 00000000..47488506 --- /dev/null +++ b/sandbox/game_server/package-lock.json @@ -0,0 +1,827 @@ +{ + "name": "server", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "dotenv": "^16.0.0", + "express": "^4.18.2", + "ws": "^7.5.4" + }, + "devDependencies": { + "@types/node": "^20.14.10", + "typescript": "^5.5.3" + } + }, + "node_modules/@types/node": { + "version": "20.14.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", + "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "license": "MIT" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true, + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/sandbox/game_server/package.json b/sandbox/game_server/package.json new file mode 100644 index 00000000..8394bdcb --- /dev/null +++ b/sandbox/game_server/package.json @@ -0,0 +1,21 @@ +{ + "scripts": { + "start": "npx ts-node src/index.ts", + "start:dev": "nodemon --watch 'src/**/*.ts' --exec 'ts-node' src/index.ts", + "build": "tsc --project tsconfig.json" + }, + "dependencies": { + "dotenv": "^16.0.0", + "express": "^4.18.2", + "node-fetch": "2", + "opengb-sdk": "../sdk/", + "ws": "^7.5.4" + }, + "packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610", + "devDependencies": { + "@types/node": "^20.14.10", + "nodemon": "^2.0.20", + "ts-node": "^10.9.2", + "typescript": "^5.5.3" + } +} diff --git a/sandbox/game_server/src/index.ts b/sandbox/game_server/src/index.ts new file mode 100644 index 00000000..02e405f1 --- /dev/null +++ b/sandbox/game_server/src/index.ts @@ -0,0 +1,218 @@ +// Since we can't inherit the cert from mkcert +process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'; + +import { Backend } from "opengb-sdk"; +import { URL } from 'url'; +import { WebSocket, Server as WebSocketServer } from 'ws'; +import * as http from 'http'; +import express from 'express'; + +// Add fetch API +import * as fetch from 'node-fetch' +if (!globalThis.fetch) { + globalThis.fetch = fetch.default as any; + globalThis.Headers = fetch.Headers as any; + globalThis.Request = fetch.Request as any; + globalThis.Response = fetch.Response as any; +} + +console.log(process.env); + +logTimestamp('start'); + +const BACKEND_ENDPOINT = process.env.BACKEND_ENDPOINT; +const LOBBY_ID = process.env.LOBBY_ID ?? "00000000-0000-0000-0000-000000000000"; +const LOBBY_TOKEN= process.env.LOBBY_TOKEN; +if (!BACKEND_ENDPOINT) throw new Error("BACKEND_ENDPOINT"); + +const backend = new Backend({ endpoint: BACKEND_ENDPOINT }); + +retryDns(() => backend.lobbies.setLobbyReady({ lobbyId: LOBBY_ID, lobbyToken: LOBBY_TOKEN })) + .then(() => { + logTimestamp('server-ready'); + }) + .catch(err => { + console.error('Failed to start lobby', err); + process.exit(1); + }); + +// Test SIGTERM handling +process.on('SIGTERM', () => { + console.log('SIGTERM signal received'); + setTimeout(() => { + console.log('Exiting'); + process.exit(0); + }, 1000); +}); + +// Apply lobby config +let gameConfig = { + scoreIncr: 1 +}; +// if (process.env.RIVET_LOBBY_CONFIG) { +// let config = JSON.parse(process.env.RIVET_LOBBY_CONFIG); +// let scoreIncr = parseInt(config.scoreIncr); +// if (scoreIncr) gameConfig.scoreIncr = scoreIncr; +// } + +// Create game state +interface GameState { + lobbyConfig: any; + lobbyTags: any; + scores: { [id: number]: number }; +} + +const gameState: GameState = { + lobbyConfig: null, + lobbyTags: null, + // lobbyConfig: process.env.RIVET_LOBBY_CONFIG ? JSON.parse(process.env.RIVET_LOBBY_CONFIG) : null, + // lobbyTags: process.env.RIVET_LOBBY_TAGS ? JSON.parse(process.env.RIVET_LOBBY_TAGS) : null, + scores: {} +}; + +// Setup HTTP server +const app = express(); +app.get('/health', (_req, res) => { + res.send('ok'); +}); + +// Setup server +const server = http.createServer(app); +const wss = new WebSocketServer({ server }); + +const port = parseInt(process.env.PORT!) || 7777; +console.log(`Listening on port ${port}`); +server.listen(port); + +// Handle connections +let clients = new Map(); + +function broadcast(event: string, data: any) { + clients.forEach(client => { + client.send(JSON.stringify([event, data])); + }); +} + +let counter = 0; +wss.on('connection', async (ws, req) => { + let idx = counter++; + const playerId = idx; + + clients.set(idx, ws); + + logTimestamp(`player-connect-${idx}`); + + let url = new URL(req.url!, 'http://test.com'); + let playerToken = url.searchParams.get('token') as string; + + ws.on('close', async () => { + logTimestamp(`player-disconnect-${idx}`); + + // Remove client + clients.delete(idx); + + // Delete player + delete gameState.scores[playerId]; + broadcast('state', gameState); + + // Unregister player + try { + await retryDns(() => backend.lobbies.setPlayerDisconnected({ lobbyId: LOBBY_ID, lobbyToken: LOBBY_TOKEN, playerTokens: [playerToken] })); + logTimestamp(`player-disconnect-complete-${idx}`); + } catch (err) { + console.error('failed to disconnect player', err); + } + }); + + try { + await retryDns(() => backend.lobbies.setPlayerConnected({ lobbyId: LOBBY_ID, lobbyToken: LOBBY_TOKEN, playerTokens: [playerToken] })); + logTimestamp(`player-connect-complete-${idx}`); + } catch (err) { + console.error('failed to connect player', idx, err); + ws.close(); + } + + // Listen for messages once connected + ws.on('message', (rawData: string) => { + let [event, data] = JSON.parse(rawData.slice(0, 2 ** 13)); + switch (event) { + case 'ping': + ws.send(JSON.stringify(['pong', data])); + break; + case 'score': + gameState.scores[playerId] += gameConfig.scoreIncr; + broadcast('state', gameState); + break; + case 'log': + if (data.stdout) { + console.log(data.stdout); + } else if (data.stderr) { + console.error(data.stderr); + } + break; + case 'set-closed': + let isClosed = parseInt(data) == 1; + console.log('Setting closed: ', isClosed); + // TODO: + // RIVET.matchmaker.lobbies + // .setClosed({ isClosed }) + // .then(() => console.log('Set closed success')); + break; + case 'force-exit': + let code = parseInt(data); + console.log('forcing exit with code', code); + process.exit(code); + break; + + default: + console.warn('unknown event', event); + break; + } + }); + + ws.send( + JSON.stringify([ + 'init', + { + forwardedFor: req.headers['x-forwarded-for'] + } + ]) + ); + + gameState.scores[playerId] = 0; + broadcast('state', gameState); +}); + +setInterval(() => { + broadcastStats(); +}, 1000); + +function broadcastStats() { + broadcast('stats', { + memory: process.memoryUsage() + }); +} + +// TODO: Figure out the DNS issue +// When running on localhost, we occasionally get `getaddrinfo ENOTFOUND` errors when we shouldn't. +async function retryDns(cb: () => Promise): Promise { + while (true) { + try { + return await cb(); + } catch (err: any) { + if ((err + '').indexOf('getaddrinfo ENOTFOUND') != -1) { + console.error('getaddrinfo ENOTFOUND error, retrying'); + continue; + } else { + let text = err.text && (await err.text()); + console.error('request error', err.url, err.status, text, err); + throw err; + } + } + } +} + +function logTimestamp(label: string) { + let date = new Date(); + console.log(`${label}: ${date.toISOString()}`); +} diff --git a/sandbox/game_server/tsconfig.json b/sandbox/game_server/tsconfig.json new file mode 100644 index 00000000..d7f34d64 --- /dev/null +++ b/sandbox/game_server/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "experimentalDecorators": true, + "target": "es2022", + "esModuleInterop": true, + "moduleResolution": "node", + "module": "commonjs", + "downlevelIteration": true, + "outDir": "dist/" + }, + "include": ["src/index.ts"] +} diff --git a/sandbox/game_server/yarn.lock b/sandbox/game_server/yarn.lock new file mode 100644 index 00000000..352d4896 --- /dev/null +++ b/sandbox/game_server/yarn.lock @@ -0,0 +1,823 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@tsconfig/node10@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" + integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== + +"@types/node@^20.14.10": + version "20.14.10" + resolved "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz" + integrity sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ== + dependencies: + undici-types "~5.26.4" + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-walk@^8.1.1: + version "8.3.3" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" + integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== + dependencies: + acorn "^8.11.0" + +acorn@^8.11.0, acorn@^8.4.1: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +chokidar@^3.5.2: + version "3.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dotenv@^16.0.0: + version "16.4.5" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +express@^4.18.2: + version "4.19.2" + resolved "https://registry.npmjs.org/express/-/express-4.19.2.tgz" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.6.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ignore-by-default@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" + integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== + +inherits@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.3, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +node-fetch@2: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +nodemon@^2.0.20: + version "2.0.22" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.22.tgz#182c45c3a78da486f673d6c1702e00728daf5258" + integrity sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ== + dependencies: + chokidar "^3.5.2" + debug "^3.2.7" + ignore-by-default "^1.0.1" + minimatch "^3.1.2" + pstree.remy "^1.1.8" + semver "^5.7.1" + simple-update-notifier "^1.0.7" + supports-color "^5.5.0" + touch "^3.1.0" + undefsafe "^2.0.5" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +opengb-sdk@../sdk/: + version "1.0.0" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +pstree.remy@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" + integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +safe-buffer@5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +semver@^5.7.1: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@~7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +side-channel@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +simple-update-notifier@^1.0.7: + version "1.1.0" + resolved "https://registry.yarnpkg.com/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz#67694c121de354af592b347cdba798463ed49c82" + integrity sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg== + dependencies: + semver "~7.0.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +touch@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.1.tgz#097a23d7b161476435e5c1344a95c0f75b4a5694" + integrity sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +ts-node@^10.9.2: + version "10.9.2" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typescript@^5.5.3: + version "5.5.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz" + integrity sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ== + +undefsafe@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" + integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +ws@^7.5.4: + version "7.5.10" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== diff --git a/sandbox/scripts/deploy.sh b/sandbox/scripts/deploy.sh new file mode 100755 index 00000000..0c4c8ebc --- /dev/null +++ b/sandbox/scripts/deploy.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +rivet-cli deploy staging + diff --git a/sandbox/scripts/gen_sdk.ts b/sandbox/scripts/gen_sdk.ts new file mode 100755 index 00000000..d9f9df57 --- /dev/null +++ b/sandbox/scripts/gen_sdk.ts @@ -0,0 +1,72 @@ +#!/usr/bin/env -S deno run -A + +// import * as esbuild from "https://deno.land/x/esbuild@v0.20.2/mod.js"; +// import { denoPlugins } from "jsr:@luca/esbuild-deno-loader@^0.10.3"; +// import { generate } from "https://deno.land/x/dts_generate@v1.4.0/mod.ts"; +// import { build } from 'https://esm.sh/tsup' +import "npm:typescript"; +import { build } from "npm:tsup"; +import { resolve } from "https://deno.land/std@0.208.0/path/resolve.ts"; + +const entryPath = resolve(Deno.cwd(), "./sdk/src/index.ts"); +const outDir = resolve(Deno.cwd(), "./client/dist/"); + +const genOutput = await new Deno.Command( + "opengb", + { + args: ["sdk", "generate", "typescript"], + stdout: "inherit", + stderr: "inherit", + }, +).output(); +if (!genOutput.success) throw new Error("gen failed"); + +Deno.chdir(resolve(Deno.cwd(), "sdk")); + +await new Deno.Command("npm", { args: ["install"], stdout: "inherit", stderr: "inherit" }).output(); + +await new Deno.Command("npm", { args: ["run", "build"], stdout: "inherit", stderr: "inherit" }).output(); + +await build({ + entry: { sdk: entryPath }, + outDir, + sourcemap: true, + dts: true, + target: "es2022", + format: "esm", +}); + +// TODO: Do we need to polyfill anything to target es6? +// const result = await esbuild.build({ +// entryPoints: ['./sdk/src/index.ts'], +// outfile, +// platform: "browser", +// format: "esm", +// target: 'es2022', +// sourcemap: true, +// plugins: denoPlugins(), +// bundle: true, +// }); +// +// console.log('Build complete:', result); +// +// // Generate .d.ts file +// // const dtsResult = await generate({ +// // entries: ['./src/main.ts'], +// // output: outfile.replace('.js', '.d.ts'), +// // }); +// +// const output = await new Deno.Command( +// "tsc", +// { +// args: ["--project", "sdk/tsconfig.json", "--outFile", dtsOutFile], +// // args: ["--emitDeclarationOnly", "--declaration", "--declarationMap", "--project", "sdk/tsconfig.json", "--outFile", dtsOutFile], +// stdout: "inherit", +// stderr: "inherit", +// } +// ).output(); +// if (!output.success) throw new Error("tsc failed"); +// +// console.log('Declaration file generated'); +// +// esbuild.stop(); \ No newline at end of file diff --git a/sandbox/scripts/run_local.sh b/sandbox/scripts/run_local.sh new file mode 100755 index 00000000..045e1ade --- /dev/null +++ b/sandbox/scripts/run_local.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -euo pipefail + +export BACKEND_ENDPOINT="http://127.0.0.1:6420" + +# Function to clean up background processes +cleanup() { + echo "Stopping all processes..." + kill $(jobs -p) 2>/dev/null +} + +# Trap Ctrl+C and call cleanup +trap cleanup INT TERM + +# Run components +# ./scripts/run_local_backend.sh 2>&1 | sed 's/^/[BACKEND] /' & +./scripts/run_local_game_server.sh 2>&1 | sed 's/^/[GAME_SERVER] /' & +./scripts/run_local_client.sh 2>&1 | sed 's/^/[CLIENT] /' & + +# Wait for all background processes to finish +wait diff --git a/sandbox/scripts/run_local_backend.sh b/sandbox/scripts/run_local_backend.sh new file mode 100755 index 00000000..00b20f4d --- /dev/null +++ b/sandbox/scripts/run_local_backend.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +opengb dev --project backend.dev.json diff --git a/sandbox/scripts/run_local_client.sh b/sandbox/scripts/run_local_client.sh new file mode 100755 index 00000000..a8203cc6 --- /dev/null +++ b/sandbox/scripts/run_local_client.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +cd client +npx http-server diff --git a/sandbox/scripts/run_local_game_server.sh b/sandbox/scripts/run_local_game_server.sh new file mode 100755 index 00000000..5c37a78d --- /dev/null +++ b/sandbox/scripts/run_local_game_server.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +cd game_server +yarn start:dev diff --git a/sandbox/scripts/run_remote.sh b/sandbox/scripts/run_remote.sh new file mode 100755 index 00000000..1dbb8ffe --- /dev/null +++ b/sandbox/scripts/run_remote.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -euo pipefail + +export BACKEND_ENDPOINT="https://sandbox-back-vlk--staging.backend.nathan16.gameinc.io" + +# Function to clean up background processes +cleanup() { + echo "Stopping all processes..." + kill $(jobs -p) 2>/dev/null +} + +# Trap Ctrl+C and call cleanup +trap cleanup INT TERM + +# Run components +# ./scripts/run_local_backend.sh 2>&1 | sed 's/^/[BACKEND] /' & +# ./scripts/run_local_game_server.sh 2>&1 | sed 's/^/[GAME_SERVER] /' & +./scripts/run_local_client.sh 2>&1 | sed 's/^/[CLIENT] /' & + +# Wait for all background processes to finish +wait diff --git a/tests/basic/.dockerignore b/tests/basic/.dockerignore new file mode 100644 index 00000000..08dc7b03 --- /dev/null +++ b/tests/basic/.dockerignore @@ -0,0 +1,3 @@ +node_modules/ +dist/ + diff --git a/tests/basic/.gitignore b/tests/basic/.gitignore new file mode 100644 index 00000000..8a969631 --- /dev/null +++ b/tests/basic/.gitignore @@ -0,0 +1,5 @@ +sdk/ + +node_modules/ +dist/ + diff --git a/tests/basic/backend.json b/tests/basic/backend.json index 897a398e..d07a863e 100644 --- a/tests/basic/backend.json +++ b/tests/basic/backend.json @@ -1,50 +1,61 @@ { - "registries": { - "local": { - "local": { - "directory": "../../modules" - } - } - }, - "modules": { - "currency": { - "registry": "local" - }, - "friends": { - "registry": "local" - }, - "rate_limit": { - "registry": "local" - }, - "tokens": { - "registry": "local" - }, - "users": { - "registry": "local" - }, - "uploads": { - "registry": "local", - "config": { - "maxFilesPerUpload": 16, - "maxUploadSize": "100mib", - "maxMultipartUploadSize": "10gib" - } - }, - "auth": { - "registry": "local", - "config": { - "email": { - "fromEmail": "hello@rivet.gg" - } - } - }, - "email": { - "registry": "local", - "config": { - "provider": { - "test": {} - } - } - } - } -} + "runtime": { + "cors": { + "origins": [ + "http://localhost:8010" + ] + } + }, + "registries": { + "local": { + "local": { + "directory": "../../modules" + } + } + }, + "modules": { + "rate_limit": { + "registry": "local" + }, + "tokens": { + "registry": "local" + }, + "lobbies": { + "registry": "local", + "config": { + "lobbies": { + "regions": [ + "test" + ], + "destroyOnEmptyAfter": 60000, + "unreadyExpireAfter": 300000, + "maxPlayers": 16, + "maxPlayersDirect": 16, + "enableCreate": false, + "enableDestroy": false, + "enableFind": true, + "enableFindOrCreate": true, + "enableJoin": true, + "enableList": true, + "backend": { + "test": {} + } + }, + "lobbyRules": [], + "players": { + "maxPerIp": 8, + "maxUnconnected": 128, + "unconnectedExpireAfter": 60000, + "autoDestroyAfter": 4147200000 + } + } + }, + "rivet": { + "registry": "local", + "config": { + "apiEndpoint": "https://api.nathan16.gameinc.io", + "serviceTokenVariable": "RIVET_SERVICE_TOKEN" + } + } + } +} \ No newline at end of file diff --git a/tests/basic/backend.json.bk b/tests/basic/backend.json.bk new file mode 100644 index 00000000..1dae7e4a --- /dev/null +++ b/tests/basic/backend.json.bk @@ -0,0 +1,6 @@ + "server": { + "resources": { "cpu": 50, "memory": 50 }, + "ports": { + "game": { "protocol": "http", "serverPort": 8080 } + } + } diff --git a/tests/basic/build_sdk.ts b/tests/basic/build_sdk.ts new file mode 100755 index 00000000..75a167cc --- /dev/null +++ b/tests/basic/build_sdk.ts @@ -0,0 +1,70 @@ +#!/usr/bin/env -S deno run -A + +// import * as esbuild from "https://deno.land/x/esbuild@v0.20.2/mod.js"; +// import { denoPlugins } from "jsr:@luca/esbuild-deno-loader@^0.10.3"; +// import { generate } from "https://deno.land/x/dts_generate@v1.4.0/mod.ts"; +// import { build } from 'https://esm.sh/tsup' +import "npm:typescript"; +import { build } from "npm:tsup"; +import { resolve } from "https://deno.land/std@0.208.0/path/resolve.ts"; + +const entryPath = resolve(Deno.cwd(), "./sdk/src/index.ts"); +const outDir = resolve(Deno.cwd(), "./public/dist/"); + +const genOutput = await new Deno.Command( + "opengb", + { + args: ["sdk", "generate", "typescript"], + stdout: "inherit", + stderr: "inherit", + }, +).output(); +if (!genOutput.success) throw new Error("gen failed"); + +Deno.chdir(resolve(Deno.cwd(), "sdk")); + +await new Deno.Command("npm", { args: ["install", "typescript"], stdout: "inherit", stderr: "inherit" }).output(); + +await build({ + entry: { sdk: entryPath }, + outDir, + sourcemap: true, + dts: true, + target: "es2022", + format: "esm", +}); + +// TODO: Do we need to polyfill anything to target es6? +// const result = await esbuild.build({ +// entryPoints: ['./sdk/src/index.ts'], +// outfile, +// platform: "browser", +// format: "esm", +// target: 'es2022', +// sourcemap: true, +// plugins: denoPlugins(), +// bundle: true, +// }); +// +// console.log('Build complete:', result); +// +// // Generate .d.ts file +// // const dtsResult = await generate({ +// // entries: ['./src/main.ts'], +// // output: outfile.replace('.js', '.d.ts'), +// // }); +// +// const output = await new Deno.Command( +// "tsc", +// { +// args: ["--project", "sdk/tsconfig.json", "--outFile", dtsOutFile], +// // args: ["--emitDeclarationOnly", "--declaration", "--declarationMap", "--project", "sdk/tsconfig.json", "--outFile", dtsOutFile], +// stdout: "inherit", +// stderr: "inherit", +// } +// ).output(); +// if (!output.success) throw new Error("tsc failed"); +// +// console.log('Declaration file generated'); +// +// esbuild.stop(); diff --git a/tests/basic/deno.json b/tests/basic/deno.json new file mode 100644 index 00000000..12f4307e --- /dev/null +++ b/tests/basic/deno.json @@ -0,0 +1,20 @@ +{ + "lint": { + "include": [ + "src/" + ], + "exclude": [ + "tests/" + ], + "rules": { + "exclude": [ + "no-empty-interface", + "no-explicit-any", + "require-await" + ] + } + }, + "fmt": { + "useTabs": true + } +} \ No newline at end of file diff --git a/tests/basic/deno.lock b/tests/basic/deno.lock index a6304c20..03d2123c 100644 --- a/tests/basic/deno.lock +++ b/tests/basic/deno.lock @@ -2,35 +2,638 @@ "version": "3", "packages": { "specifiers": { - "npm:@prisma/adapter-pg@^5.12.0": "npm:@prisma/adapter-pg@5.15.0_pg@8.12.0", + "npm:@prisma/adapter-pg@^5.12.0": "npm:@prisma/adapter-pg@5.16.1_pg@8.12.0", "npm:@types/node": "npm:@types/node@18.16.19", "npm:pg@^8.11.3": "npm:pg@8.12.0", + "npm:tsup": "npm:tsup@8.1.0_typescript@5.5.3_esbuild@0.21.5", + "npm:typescript": "npm:typescript@5.5.3", "npm:zod-validation-error@3.3.0": "npm:zod-validation-error@3.3.0_zod@3.23.8", "npm:zod@3.23.8": "npm:zod@3.23.8" }, "npm": { - "@prisma/adapter-pg@5.15.0_pg@8.12.0": { - "integrity": "sha512-BH22FGKDGBjJRVOLiA1H45G7yRzeQ9IX5Kx+8oqISWzxxOcN6vNDHSmio9cJn6iMA7ygqTFi0gj5HvpmHB7DQA==", + "@esbuild/aix-ppc64@0.21.5": { + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "dependencies": {} + }, + "@esbuild/android-arm64@0.21.5": { + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "dependencies": {} + }, + "@esbuild/android-arm@0.21.5": { + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "dependencies": {} + }, + "@esbuild/android-x64@0.21.5": { + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "dependencies": {} + }, + "@esbuild/darwin-arm64@0.21.5": { + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "dependencies": {} + }, + "@esbuild/darwin-x64@0.21.5": { + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "dependencies": {} + }, + "@esbuild/freebsd-arm64@0.21.5": { + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "dependencies": {} + }, + "@esbuild/freebsd-x64@0.21.5": { + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "dependencies": {} + }, + "@esbuild/linux-arm64@0.21.5": { + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "dependencies": {} + }, + "@esbuild/linux-arm@0.21.5": { + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "dependencies": {} + }, + "@esbuild/linux-ia32@0.21.5": { + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "dependencies": {} + }, + "@esbuild/linux-loong64@0.21.5": { + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "dependencies": {} + }, + "@esbuild/linux-mips64el@0.21.5": { + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "dependencies": {} + }, + "@esbuild/linux-ppc64@0.21.5": { + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "dependencies": {} + }, + "@esbuild/linux-riscv64@0.21.5": { + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "dependencies": {} + }, + "@esbuild/linux-s390x@0.21.5": { + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "dependencies": {} + }, + "@esbuild/linux-x64@0.21.5": { + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "dependencies": {} + }, + "@esbuild/netbsd-x64@0.21.5": { + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "dependencies": {} + }, + "@esbuild/openbsd-x64@0.21.5": { + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "dependencies": {} + }, + "@esbuild/sunos-x64@0.21.5": { + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "dependencies": {} + }, + "@esbuild/win32-arm64@0.21.5": { + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "dependencies": {} + }, + "@esbuild/win32-ia32@0.21.5": { + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "dependencies": {} + }, + "@esbuild/win32-x64@0.21.5": { + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "dependencies": {} + }, + "@isaacs/cliui@8.0.2": { + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "string-width@5.1.2", + "string-width-cjs": "string-width@4.2.3", + "strip-ansi": "strip-ansi@7.1.0", + "strip-ansi-cjs": "strip-ansi@6.0.1", + "wrap-ansi": "wrap-ansi@8.1.0", + "wrap-ansi-cjs": "wrap-ansi@7.0.0" + } + }, + "@jridgewell/gen-mapping@0.3.5": { + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dependencies": { - "@prisma/driver-adapter-utils": "@prisma/driver-adapter-utils@5.15.0", + "@jridgewell/set-array": "@jridgewell/set-array@1.2.1", + "@jridgewell/sourcemap-codec": "@jridgewell/sourcemap-codec@1.4.15", + "@jridgewell/trace-mapping": "@jridgewell/trace-mapping@0.3.25" + } + }, + "@jridgewell/resolve-uri@3.1.2": { + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dependencies": {} + }, + "@jridgewell/set-array@1.2.1": { + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dependencies": {} + }, + "@jridgewell/sourcemap-codec@1.4.15": { + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dependencies": {} + }, + "@jridgewell/trace-mapping@0.3.25": { + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "@jridgewell/resolve-uri@3.1.2", + "@jridgewell/sourcemap-codec": "@jridgewell/sourcemap-codec@1.4.15" + } + }, + "@nodelib/fs.scandir@2.1.5": { + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "@nodelib/fs.stat@2.0.5", + "run-parallel": "run-parallel@1.2.0" + } + }, + "@nodelib/fs.stat@2.0.5": { + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dependencies": {} + }, + "@nodelib/fs.walk@1.2.8": { + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "@nodelib/fs.scandir@2.1.5", + "fastq": "fastq@1.17.1" + } + }, + "@pkgjs/parseargs@0.11.0": { + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dependencies": {} + }, + "@prisma/adapter-pg@5.16.1_pg@8.12.0": { + "integrity": "sha512-QokxNP58fzepQ8pVIrrQzv+uxxIxNr5Fj3SHXFPVg7/DcowdHNHB9ZeJ+BGAKxlkt6qySddRnK68cAyKUIY/mQ==", + "dependencies": { + "@prisma/driver-adapter-utils": "@prisma/driver-adapter-utils@5.16.1", "pg": "pg@8.12.0", "postgres-array": "postgres-array@3.0.2" } }, - "@prisma/debug@5.15.0": { - "integrity": "sha512-QpEAOjieLPc/4sMny/WrWqtpIAmBYsgqwWlWwIctqZO0AbhQ9QcT6x2Ut3ojbDo/pFRCCA1Z1+xm2MUy7fAkZA==", + "@prisma/debug@5.16.1": { + "integrity": "sha512-JsNgZAg6BD9RInLSrg7ZYzo11N7cVvYArq3fHGSD89HSgtN0VDdjV6bib7YddbcO6snzjchTiLfjeTqBjtArVQ==", "dependencies": {} }, - "@prisma/driver-adapter-utils@5.15.0": { - "integrity": "sha512-p4jxptZE3p5WCdfE+dvHTNvrtlqPllAMkbAnR9BGr48nBwl15QDMDjZdvbubgO9VH30Nc5XWHINx0dyI+RlxSw==", + "@prisma/driver-adapter-utils@5.16.1": { + "integrity": "sha512-QGnxw6FMts2/YSeZY3+A/kxyGQV2Be8oLLLrczdy8uM0oc2RREHUtpD14MyOOIaCytnJK7kwCbORcBhgk41+tQ==", "dependencies": { - "@prisma/debug": "@prisma/debug@5.15.0" + "@prisma/debug": "@prisma/debug@5.16.1" } }, + "@rollup/rollup-android-arm-eabi@4.18.0": { + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "dependencies": {} + }, + "@rollup/rollup-android-arm64@4.18.0": { + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "dependencies": {} + }, + "@rollup/rollup-darwin-arm64@4.18.0": { + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "dependencies": {} + }, + "@rollup/rollup-darwin-x64@4.18.0": { + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "dependencies": {} + }, + "@rollup/rollup-linux-arm-gnueabihf@4.18.0": { + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "dependencies": {} + }, + "@rollup/rollup-linux-arm-musleabihf@4.18.0": { + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "dependencies": {} + }, + "@rollup/rollup-linux-arm64-gnu@4.18.0": { + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "dependencies": {} + }, + "@rollup/rollup-linux-arm64-musl@4.18.0": { + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "dependencies": {} + }, + "@rollup/rollup-linux-powerpc64le-gnu@4.18.0": { + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "dependencies": {} + }, + "@rollup/rollup-linux-riscv64-gnu@4.18.0": { + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "dependencies": {} + }, + "@rollup/rollup-linux-s390x-gnu@4.18.0": { + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "dependencies": {} + }, + "@rollup/rollup-linux-x64-gnu@4.18.0": { + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "dependencies": {} + }, + "@rollup/rollup-linux-x64-musl@4.18.0": { + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "dependencies": {} + }, + "@rollup/rollup-win32-arm64-msvc@4.18.0": { + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "dependencies": {} + }, + "@rollup/rollup-win32-ia32-msvc@4.18.0": { + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "dependencies": {} + }, + "@rollup/rollup-win32-x64-msvc@4.18.0": { + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "dependencies": {} + }, + "@types/estree@1.0.5": { + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dependencies": {} + }, "@types/node@18.16.19": { "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", "dependencies": {} }, + "ansi-regex@5.0.1": { + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dependencies": {} + }, + "ansi-regex@6.0.1": { + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dependencies": {} + }, + "ansi-styles@4.3.0": { + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "color-convert@2.0.1" + } + }, + "ansi-styles@6.2.1": { + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dependencies": {} + }, + "any-promise@1.3.0": { + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dependencies": {} + }, + "anymatch@3.1.3": { + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "normalize-path@3.0.0", + "picomatch": "picomatch@2.3.1" + } + }, + "array-union@2.1.0": { + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dependencies": {} + }, + "balanced-match@1.0.2": { + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dependencies": {} + }, + "binary-extensions@2.3.0": { + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dependencies": {} + }, + "brace-expansion@2.0.1": { + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "balanced-match@1.0.2" + } + }, + "braces@3.0.3": { + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "fill-range@7.1.1" + } + }, + "bundle-require@4.2.1_esbuild@0.21.5": { + "integrity": "sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==", + "dependencies": { + "esbuild": "esbuild@0.21.5", + "load-tsconfig": "load-tsconfig@0.2.5" + } + }, + "cac@6.7.14": { + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dependencies": {} + }, + "chokidar@3.6.0": { + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "anymatch@3.1.3", + "braces": "braces@3.0.3", + "fsevents": "fsevents@2.3.3", + "glob-parent": "glob-parent@5.1.2", + "is-binary-path": "is-binary-path@2.1.0", + "is-glob": "is-glob@4.0.3", + "normalize-path": "normalize-path@3.0.0", + "readdirp": "readdirp@3.6.0" + } + }, + "color-convert@2.0.1": { + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "color-name@1.1.4" + } + }, + "color-name@1.1.4": { + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dependencies": {} + }, + "commander@4.1.1": { + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dependencies": {} + }, + "cross-spawn@7.0.3": { + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "path-key@3.1.1", + "shebang-command": "shebang-command@2.0.0", + "which": "which@2.0.2" + } + }, + "debug@4.3.4": { + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "ms@2.1.2" + } + }, + "dir-glob@3.0.1": { + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "path-type@4.0.0" + } + }, + "eastasianwidth@0.2.0": { + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dependencies": {} + }, + "emoji-regex@8.0.0": { + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dependencies": {} + }, + "emoji-regex@9.2.2": { + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dependencies": {} + }, + "esbuild@0.21.5": { + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dependencies": { + "@esbuild/aix-ppc64": "@esbuild/aix-ppc64@0.21.5", + "@esbuild/android-arm": "@esbuild/android-arm@0.21.5", + "@esbuild/android-arm64": "@esbuild/android-arm64@0.21.5", + "@esbuild/android-x64": "@esbuild/android-x64@0.21.5", + "@esbuild/darwin-arm64": "@esbuild/darwin-arm64@0.21.5", + "@esbuild/darwin-x64": "@esbuild/darwin-x64@0.21.5", + "@esbuild/freebsd-arm64": "@esbuild/freebsd-arm64@0.21.5", + "@esbuild/freebsd-x64": "@esbuild/freebsd-x64@0.21.5", + "@esbuild/linux-arm": "@esbuild/linux-arm@0.21.5", + "@esbuild/linux-arm64": "@esbuild/linux-arm64@0.21.5", + "@esbuild/linux-ia32": "@esbuild/linux-ia32@0.21.5", + "@esbuild/linux-loong64": "@esbuild/linux-loong64@0.21.5", + "@esbuild/linux-mips64el": "@esbuild/linux-mips64el@0.21.5", + "@esbuild/linux-ppc64": "@esbuild/linux-ppc64@0.21.5", + "@esbuild/linux-riscv64": "@esbuild/linux-riscv64@0.21.5", + "@esbuild/linux-s390x": "@esbuild/linux-s390x@0.21.5", + "@esbuild/linux-x64": "@esbuild/linux-x64@0.21.5", + "@esbuild/netbsd-x64": "@esbuild/netbsd-x64@0.21.5", + "@esbuild/openbsd-x64": "@esbuild/openbsd-x64@0.21.5", + "@esbuild/sunos-x64": "@esbuild/sunos-x64@0.21.5", + "@esbuild/win32-arm64": "@esbuild/win32-arm64@0.21.5", + "@esbuild/win32-ia32": "@esbuild/win32-ia32@0.21.5", + "@esbuild/win32-x64": "@esbuild/win32-x64@0.21.5" + } + }, + "execa@5.1.1": { + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "cross-spawn@7.0.3", + "get-stream": "get-stream@6.0.1", + "human-signals": "human-signals@2.1.0", + "is-stream": "is-stream@2.0.1", + "merge-stream": "merge-stream@2.0.0", + "npm-run-path": "npm-run-path@4.0.1", + "onetime": "onetime@5.1.2", + "signal-exit": "signal-exit@3.0.7", + "strip-final-newline": "strip-final-newline@2.0.0" + } + }, + "fast-glob@3.3.2": { + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "@nodelib/fs.stat@2.0.5", + "@nodelib/fs.walk": "@nodelib/fs.walk@1.2.8", + "glob-parent": "glob-parent@5.1.2", + "merge2": "merge2@1.4.1", + "micromatch": "micromatch@4.0.7" + } + }, + "fastq@1.17.1": { + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "reusify@1.0.4" + } + }, + "fill-range@7.1.1": { + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "to-regex-range@5.0.1" + } + }, + "foreground-child@3.1.1": { + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "cross-spawn@7.0.3", + "signal-exit": "signal-exit@4.1.0" + } + }, + "fsevents@2.3.3": { + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dependencies": {} + }, + "get-stream@6.0.1": { + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dependencies": {} + }, + "glob-parent@5.1.2": { + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "is-glob@4.0.3" + } + }, + "glob@10.4.3": { + "integrity": "sha512-Q38SGlYRpVtDBPSWEylRyctn7uDeTp4NQERTLiCT1FqA9JXPYWqAVmQU6qh4r/zMM5ehxTcbaO8EjhWnvEhmyg==", + "dependencies": { + "foreground-child": "foreground-child@3.1.1", + "jackspeak": "jackspeak@3.4.0", + "minimatch": "minimatch@9.0.5", + "minipass": "minipass@7.1.2", + "package-json-from-dist": "package-json-from-dist@1.0.0", + "path-scurry": "path-scurry@1.11.1" + } + }, + "globby@11.1.0": { + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "array-union@2.1.0", + "dir-glob": "dir-glob@3.0.1", + "fast-glob": "fast-glob@3.3.2", + "ignore": "ignore@5.3.1", + "merge2": "merge2@1.4.1", + "slash": "slash@3.0.0" + } + }, + "human-signals@2.1.0": { + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dependencies": {} + }, + "ignore@5.3.1": { + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dependencies": {} + }, + "is-binary-path@2.1.0": { + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "binary-extensions@2.3.0" + } + }, + "is-extglob@2.1.1": { + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dependencies": {} + }, + "is-fullwidth-code-point@3.0.0": { + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dependencies": {} + }, + "is-glob@4.0.3": { + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "is-extglob@2.1.1" + } + }, + "is-number@7.0.0": { + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dependencies": {} + }, + "is-stream@2.0.1": { + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dependencies": {} + }, + "isexe@2.0.0": { + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dependencies": {} + }, + "jackspeak@3.4.0": { + "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "dependencies": { + "@isaacs/cliui": "@isaacs/cliui@8.0.2", + "@pkgjs/parseargs": "@pkgjs/parseargs@0.11.0" + } + }, + "joycon@3.1.1": { + "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", + "dependencies": {} + }, + "lilconfig@3.1.2": { + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dependencies": {} + }, + "lines-and-columns@1.2.4": { + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dependencies": {} + }, + "load-tsconfig@0.2.5": { + "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==", + "dependencies": {} + }, + "lodash.sortby@4.7.0": { + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dependencies": {} + }, + "lru-cache@10.2.2": { + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dependencies": {} + }, + "merge-stream@2.0.0": { + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dependencies": {} + }, + "merge2@1.4.1": { + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dependencies": {} + }, + "micromatch@4.0.7": { + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dependencies": { + "braces": "braces@3.0.3", + "picomatch": "picomatch@2.3.1" + } + }, + "mimic-fn@2.1.0": { + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dependencies": {} + }, + "minimatch@9.0.5": { + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "brace-expansion@2.0.1" + } + }, + "minipass@7.1.2": { + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dependencies": {} + }, + "ms@2.1.2": { + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dependencies": {} + }, + "mz@2.7.0": { + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "any-promise@1.3.0", + "object-assign": "object-assign@4.1.1", + "thenify-all": "thenify-all@1.6.0" + } + }, + "normalize-path@3.0.0": { + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dependencies": {} + }, + "npm-run-path@4.0.1": { + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "path-key@3.1.1" + } + }, + "object-assign@4.1.1": { + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dependencies": {} + }, + "onetime@5.1.2": { + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "mimic-fn@2.1.0" + } + }, + "package-json-from-dist@1.0.0": { + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dependencies": {} + }, + "path-key@3.1.1": { + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dependencies": {} + }, + "path-scurry@1.11.1": { + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "lru-cache@10.2.2", + "minipass": "minipass@7.1.2" + } + }, + "path-type@4.0.0": { + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dependencies": {} + }, "pg-cloudflare@1.1.1": { "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", "dependencies": {} @@ -80,6 +683,21 @@ "split2": "split2@4.2.0" } }, + "picomatch@2.3.1": { + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dependencies": {} + }, + "pirates@4.0.6": { + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dependencies": {} + }, + "postcss-load-config@4.0.2": { + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dependencies": { + "lilconfig": "lilconfig@3.1.2", + "yaml": "yaml@2.4.5" + } + }, "postgres-array@2.0.0": { "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", "dependencies": {} @@ -102,14 +720,231 @@ "xtend": "xtend@4.0.2" } }, + "punycode@2.3.1": { + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dependencies": {} + }, + "queue-microtask@1.2.3": { + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dependencies": {} + }, + "readdirp@3.6.0": { + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "picomatch@2.3.1" + } + }, + "resolve-from@5.0.0": { + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dependencies": {} + }, + "reusify@1.0.4": { + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dependencies": {} + }, + "rollup@4.18.0": { + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@rollup/rollup-android-arm-eabi": "@rollup/rollup-android-arm-eabi@4.18.0", + "@rollup/rollup-android-arm64": "@rollup/rollup-android-arm64@4.18.0", + "@rollup/rollup-darwin-arm64": "@rollup/rollup-darwin-arm64@4.18.0", + "@rollup/rollup-darwin-x64": "@rollup/rollup-darwin-x64@4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "@rollup/rollup-linux-arm-gnueabihf@4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "@rollup/rollup-linux-arm-musleabihf@4.18.0", + "@rollup/rollup-linux-arm64-gnu": "@rollup/rollup-linux-arm64-gnu@4.18.0", + "@rollup/rollup-linux-arm64-musl": "@rollup/rollup-linux-arm64-musl@4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "@rollup/rollup-linux-powerpc64le-gnu@4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "@rollup/rollup-linux-riscv64-gnu@4.18.0", + "@rollup/rollup-linux-s390x-gnu": "@rollup/rollup-linux-s390x-gnu@4.18.0", + "@rollup/rollup-linux-x64-gnu": "@rollup/rollup-linux-x64-gnu@4.18.0", + "@rollup/rollup-linux-x64-musl": "@rollup/rollup-linux-x64-musl@4.18.0", + "@rollup/rollup-win32-arm64-msvc": "@rollup/rollup-win32-arm64-msvc@4.18.0", + "@rollup/rollup-win32-ia32-msvc": "@rollup/rollup-win32-ia32-msvc@4.18.0", + "@rollup/rollup-win32-x64-msvc": "@rollup/rollup-win32-x64-msvc@4.18.0", + "@types/estree": "@types/estree@1.0.5", + "fsevents": "fsevents@2.3.3" + } + }, + "run-parallel@1.2.0": { + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dependencies": { + "queue-microtask": "queue-microtask@1.2.3" + } + }, + "shebang-command@2.0.0": { + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "shebang-regex@3.0.0" + } + }, + "shebang-regex@3.0.0": { + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dependencies": {} + }, + "signal-exit@3.0.7": { + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dependencies": {} + }, + "signal-exit@4.1.0": { + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dependencies": {} + }, + "slash@3.0.0": { + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dependencies": {} + }, + "source-map@0.8.0-beta.0": { + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dependencies": { + "whatwg-url": "whatwg-url@7.1.0" + } + }, "split2@4.2.0": { "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "dependencies": {} }, + "string-width@4.2.3": { + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "emoji-regex@8.0.0", + "is-fullwidth-code-point": "is-fullwidth-code-point@3.0.0", + "strip-ansi": "strip-ansi@6.0.1" + } + }, + "string-width@5.1.2": { + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "eastasianwidth@0.2.0", + "emoji-regex": "emoji-regex@9.2.2", + "strip-ansi": "strip-ansi@7.1.0" + } + }, + "strip-ansi@6.0.1": { + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "ansi-regex@5.0.1" + } + }, + "strip-ansi@7.1.0": { + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "ansi-regex@6.0.1" + } + }, + "strip-final-newline@2.0.0": { + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dependencies": {} + }, + "sucrase@3.35.0": { + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "@jridgewell/gen-mapping@0.3.5", + "commander": "commander@4.1.1", + "glob": "glob@10.4.3", + "lines-and-columns": "lines-and-columns@1.2.4", + "mz": "mz@2.7.0", + "pirates": "pirates@4.0.6", + "ts-interface-checker": "ts-interface-checker@0.1.13" + } + }, + "thenify-all@1.6.0": { + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": "thenify@3.3.1" + } + }, + "thenify@3.3.1": { + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "any-promise@1.3.0" + } + }, + "to-regex-range@5.0.1": { + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "is-number@7.0.0" + } + }, + "tr46@1.0.1": { + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dependencies": { + "punycode": "punycode@2.3.1" + } + }, + "tree-kill@1.2.2": { + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dependencies": {} + }, + "ts-interface-checker@0.1.13": { + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dependencies": {} + }, + "tsup@8.1.0_typescript@5.5.3_esbuild@0.21.5": { + "integrity": "sha512-UFdfCAXukax+U6KzeTNO2kAARHcWxmKsnvSPXUcfA1D+kU05XDccCrkffCQpFaWDsZfV0jMyTsxU39VfCp6EOg==", + "dependencies": { + "bundle-require": "bundle-require@4.2.1_esbuild@0.21.5", + "cac": "cac@6.7.14", + "chokidar": "chokidar@3.6.0", + "debug": "debug@4.3.4", + "esbuild": "esbuild@0.21.5", + "execa": "execa@5.1.1", + "globby": "globby@11.1.0", + "joycon": "joycon@3.1.1", + "postcss-load-config": "postcss-load-config@4.0.2", + "resolve-from": "resolve-from@5.0.0", + "rollup": "rollup@4.18.0", + "source-map": "source-map@0.8.0-beta.0", + "sucrase": "sucrase@3.35.0", + "tree-kill": "tree-kill@1.2.2", + "typescript": "typescript@5.5.3" + } + }, + "typescript@5.5.3": { + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "dependencies": {} + }, + "webidl-conversions@4.0.2": { + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dependencies": {} + }, + "whatwg-url@7.1.0": { + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "lodash.sortby@4.7.0", + "tr46": "tr46@1.0.1", + "webidl-conversions": "webidl-conversions@4.0.2" + } + }, + "which@2.0.2": { + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "isexe@2.0.0" + } + }, + "wrap-ansi@7.0.0": { + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "ansi-styles@4.3.0", + "string-width": "string-width@4.2.3", + "strip-ansi": "strip-ansi@6.0.1" + } + }, + "wrap-ansi@8.1.0": { + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "ansi-styles@6.2.1", + "string-width": "string-width@5.1.2", + "strip-ansi": "strip-ansi@7.1.0" + } + }, "xtend@4.0.2": { "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dependencies": {} }, + "yaml@2.4.5": { + "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "dependencies": {} + }, "zod-validation-error@3.3.0_zod@3.23.8": { "integrity": "sha512-Syib9oumw1NTqEv4LT0e6U83Td9aVRk9iTXPUQr1otyV1PuXQKOvOwhMNqZIq5hluzHP2pMgnOmHEo7kPdI2mw==", "dependencies": { @@ -161,1313 +996,22 @@ "https://deno.land/std@0.208.0/assert/unimplemented.ts": "d56fbeecb1f108331a380f72e3e010a1f161baa6956fd0f7cf3e095ae1a4c75a", "https://deno.land/std@0.208.0/assert/unreachable.ts": "4600dc0baf7d9c15a7f7d234f00c23bca8f3eba8b140286aaca7aa998cf9a536", "https://deno.land/std@0.208.0/fmt/colors.ts": "34b3f77432925eb72cf0bfb351616949746768620b8e5ead66da532f93d10ba2", - "https://deno.land/std@0.214.0/async/delay.ts": "8e1d18fe8b28ff95885e2bc54eccec1713f57f756053576d8228e6ca110793ad", - "https://deno.land/std@0.217.0/assert/_constants.ts": "a271e8ef5a573f1df8e822a6eb9d09df064ad66a4390f21b3e31f820a38e0975", - "https://deno.land/std@0.217.0/assert/_diff.ts": "dcc63d94ca289aec80644030cf88ccbf7acaa6fbd7b0f22add93616b36593840", - "https://deno.land/std@0.217.0/assert/_format.ts": "0ba808961bf678437fb486b56405b6fefad2cf87b5809667c781ddee8c32aff4", - "https://deno.land/std@0.217.0/assert/assert.ts": "bec068b2fccdd434c138a555b19a2c2393b71dfaada02b7d568a01541e67cdc5", - "https://deno.land/std@0.217.0/assert/assert_almost_equals.ts": "8b96b7385cc117668b0720115eb6ee73d04c9bcb2f5d2344d674918c9113688f", - "https://deno.land/std@0.217.0/assert/assert_array_includes.ts": "1688d76317fd45b7e93ef9e2765f112fdf2b7c9821016cdfb380b9445374aed1", - "https://deno.land/std@0.217.0/assert/assert_equals.ts": "4497c56fe7d2993b0d447926702802fc0becb44e319079e8eca39b482ee01b4e", - "https://deno.land/std@0.217.0/assert/assert_exists.ts": "24a7bf965e634f909242cd09fbaf38bde6b791128ece08e33ab08586a7cc55c9", - "https://deno.land/std@0.217.0/assert/assert_false.ts": "6f382568e5128c0f855e5f7dbda8624c1ed9af4fcc33ef4a9afeeedcdce99769", - "https://deno.land/std@0.217.0/assert/assert_greater.ts": "4945cf5729f1a38874d7e589e0fe5cc5cd5abe5573ca2ddca9d3791aa891856c", - "https://deno.land/std@0.217.0/assert/assert_greater_or_equal.ts": "573ed8823283b8d94b7443eb69a849a3c369a8eb9666b2d1db50c33763a5d219", - "https://deno.land/std@0.217.0/assert/assert_instance_of.ts": "72dc1faff1e248692d873c89382fa1579dd7b53b56d52f37f9874a75b11ba444", - "https://deno.land/std@0.217.0/assert/assert_is_error.ts": "6596f2b5ba89ba2fe9b074f75e9318cda97a2381e59d476812e30077fbdb6ed2", - "https://deno.land/std@0.217.0/assert/assert_less.ts": "2b4b3fe7910f65f7be52212f19c3977ecb8ba5b2d6d0a296c83cde42920bb005", - "https://deno.land/std@0.217.0/assert/assert_less_or_equal.ts": "b93d212fe669fbde959e35b3437ac9a4468f2e6b77377e7b6ea2cfdd825d38a0", - "https://deno.land/std@0.217.0/assert/assert_match.ts": "ec2d9680ed3e7b9746ec57ec923a17eef6d476202f339ad91d22277d7f1d16e1", - "https://deno.land/std@0.217.0/assert/assert_not_equals.ts": "ac86413ab70ffb14fdfc41740ba579a983fe355ba0ce4a9ab685e6b8e7f6a250", - "https://deno.land/std@0.217.0/assert/assert_not_instance_of.ts": "8f720d92d83775c40b2542a8d76c60c2d4aeddaf8713c8d11df8984af2604931", - "https://deno.land/std@0.217.0/assert/assert_not_match.ts": "b4b7c77f146963e2b673c1ce4846473703409eb93f5ab0eb60f6e6f8aeffe39f", - "https://deno.land/std@0.217.0/assert/assert_not_strict_equals.ts": "da0b8ab60a45d5a9371088378e5313f624799470c3b54c76e8b8abeec40a77be", - "https://deno.land/std@0.217.0/assert/assert_object_match.ts": "e85e5eef62a56ce364c3afdd27978ccab979288a3e772e6855c270a7b118fa49", - "https://deno.land/std@0.217.0/assert/assert_rejects.ts": "e9e0c8d9c3e164c7ac962c37b3be50577c5a2010db107ed272c4c1afb1269f54", - "https://deno.land/std@0.217.0/assert/assert_strict_equals.ts": "0425a98f70badccb151644c902384c12771a93e65f8ff610244b8147b03a2366", - "https://deno.land/std@0.217.0/assert/assert_string_includes.ts": "dfb072a890167146f8e5bdd6fde887ce4657098e9f71f12716ef37f35fb6f4a7", - "https://deno.land/std@0.217.0/assert/assert_throws.ts": "edddd86b39606c342164b49ad88dd39a26e72a26655e07545d172f164b617fa7", - "https://deno.land/std@0.217.0/assert/assertion_error.ts": "9f689a101ee586c4ce92f52fa7ddd362e86434ffdf1f848e45987dc7689976b8", - "https://deno.land/std@0.217.0/assert/equal.ts": "fae5e8a52a11d3ac694bbe1a53e13a7969e3f60791262312e91a3e741ae519e2", - "https://deno.land/std@0.217.0/assert/fail.ts": "f310e51992bac8e54f5fd8e44d098638434b2edb802383690e0d7a9be1979f1c", - "https://deno.land/std@0.217.0/assert/mod.ts": "325df8c0683ad83a873b9691aa66b812d6275fc9fec0b2d180ac68a2c5efed3b", - "https://deno.land/std@0.217.0/assert/unimplemented.ts": "47ca67d1c6dc53abd0bd729b71a31e0825fc452dbcd4fde4ca06789d5644e7fd", - "https://deno.land/std@0.217.0/assert/unreachable.ts": "38cfecb95d8b06906022d2f9474794fca4161a994f83354fd079cac9032b5145", - "https://deno.land/std@0.217.0/fmt/colors.ts": "d239d84620b921ea520125d778947881f62c50e78deef2657073840b8af9559a", - "https://deno.land/std@0.220.0/assert/_constants.ts": "a271e8ef5a573f1df8e822a6eb9d09df064ad66a4390f21b3e31f820a38e0975", - "https://deno.land/std@0.220.0/assert/_diff.ts": "4bf42969aa8b1a33aaf23eb8e478b011bfaa31b82d85d2ff4b5c4662d8780d2b", - "https://deno.land/std@0.220.0/assert/_format.ts": "0ba808961bf678437fb486b56405b6fefad2cf87b5809667c781ddee8c32aff4", - "https://deno.land/std@0.220.0/assert/assert.ts": "bec068b2fccdd434c138a555b19a2c2393b71dfaada02b7d568a01541e67cdc5", - "https://deno.land/std@0.220.0/assert/assert_almost_equals.ts": "8b96b7385cc117668b0720115eb6ee73d04c9bcb2f5d2344d674918c9113688f", - "https://deno.land/std@0.220.0/assert/assert_array_includes.ts": "1688d76317fd45b7e93ef9e2765f112fdf2b7c9821016cdfb380b9445374aed1", - "https://deno.land/std@0.220.0/assert/assert_equals.ts": "4497c56fe7d2993b0d447926702802fc0becb44e319079e8eca39b482ee01b4e", - "https://deno.land/std@0.220.0/assert/assert_exists.ts": "24a7bf965e634f909242cd09fbaf38bde6b791128ece08e33ab08586a7cc55c9", - "https://deno.land/std@0.220.0/assert/assert_false.ts": "6f382568e5128c0f855e5f7dbda8624c1ed9af4fcc33ef4a9afeeedcdce99769", - "https://deno.land/std@0.220.0/assert/assert_greater.ts": "4945cf5729f1a38874d7e589e0fe5cc5cd5abe5573ca2ddca9d3791aa891856c", - "https://deno.land/std@0.220.0/assert/assert_greater_or_equal.ts": "573ed8823283b8d94b7443eb69a849a3c369a8eb9666b2d1db50c33763a5d219", - "https://deno.land/std@0.220.0/assert/assert_instance_of.ts": "72dc1faff1e248692d873c89382fa1579dd7b53b56d52f37f9874a75b11ba444", - "https://deno.land/std@0.220.0/assert/assert_is_error.ts": "6596f2b5ba89ba2fe9b074f75e9318cda97a2381e59d476812e30077fbdb6ed2", - "https://deno.land/std@0.220.0/assert/assert_less.ts": "2b4b3fe7910f65f7be52212f19c3977ecb8ba5b2d6d0a296c83cde42920bb005", - "https://deno.land/std@0.220.0/assert/assert_less_or_equal.ts": "b93d212fe669fbde959e35b3437ac9a4468f2e6b77377e7b6ea2cfdd825d38a0", - "https://deno.land/std@0.220.0/assert/assert_match.ts": "ec2d9680ed3e7b9746ec57ec923a17eef6d476202f339ad91d22277d7f1d16e1", - "https://deno.land/std@0.220.0/assert/assert_not_equals.ts": "ac86413ab70ffb14fdfc41740ba579a983fe355ba0ce4a9ab685e6b8e7f6a250", - "https://deno.land/std@0.220.0/assert/assert_not_instance_of.ts": "8f720d92d83775c40b2542a8d76c60c2d4aeddaf8713c8d11df8984af2604931", - "https://deno.land/std@0.220.0/assert/assert_not_match.ts": "b4b7c77f146963e2b673c1ce4846473703409eb93f5ab0eb60f6e6f8aeffe39f", - "https://deno.land/std@0.220.0/assert/assert_not_strict_equals.ts": "da0b8ab60a45d5a9371088378e5313f624799470c3b54c76e8b8abeec40a77be", - "https://deno.land/std@0.220.0/assert/assert_object_match.ts": "e85e5eef62a56ce364c3afdd27978ccab979288a3e772e6855c270a7b118fa49", - "https://deno.land/std@0.220.0/assert/assert_rejects.ts": "5206ac37d883797d9504e3915a0c7b692df6efcdefff3889cc14bb5a325641dd", - "https://deno.land/std@0.220.0/assert/assert_strict_equals.ts": "0425a98f70badccb151644c902384c12771a93e65f8ff610244b8147b03a2366", - "https://deno.land/std@0.220.0/assert/assert_string_includes.ts": "dfb072a890167146f8e5bdd6fde887ce4657098e9f71f12716ef37f35fb6f4a7", - "https://deno.land/std@0.220.0/assert/assert_throws.ts": "31f3c061338aec2c2c33731973d58ccd4f14e42f355501541409ee958d2eb8e5", - "https://deno.land/std@0.220.0/assert/assertion_error.ts": "9f689a101ee586c4ce92f52fa7ddd362e86434ffdf1f848e45987dc7689976b8", - "https://deno.land/std@0.220.0/assert/equal.ts": "fae5e8a52a11d3ac694bbe1a53e13a7969e3f60791262312e91a3e741ae519e2", - "https://deno.land/std@0.220.0/assert/fail.ts": "f310e51992bac8e54f5fd8e44d098638434b2edb802383690e0d7a9be1979f1c", - "https://deno.land/std@0.220.0/assert/mod.ts": "7e41449e77a31fef91534379716971bebcfc12686e143d38ada5438e04d4a90e", - "https://deno.land/std@0.220.0/assert/unimplemented.ts": "47ca67d1c6dc53abd0bd729b71a31e0825fc452dbcd4fde4ca06789d5644e7fd", - "https://deno.land/std@0.220.0/assert/unreachable.ts": "3670816a4ab3214349acb6730e3e6f5299021234657eefe05b48092f3848c270", - "https://deno.land/std@0.220.0/fmt/colors.ts": "d239d84620b921ea520125d778947881f62c50e78deef2657073840b8af9559a", - "https://deno.land/x/deno_faker@v1.0.3/lib/address.ts": "d461912c0a8c14fb6d277016e4e2e0098fcba4dee0fe77f5de248c7fc2aaa601", - "https://deno.land/x/deno_faker@v1.0.3/lib/commerce.ts": "797e10dd360b1f63b2d877b368db5bedabb90c07d5ccb4cc63fded644648c8b5", - "https://deno.land/x/deno_faker@v1.0.3/lib/company.ts": "c241dd2ccfcee7a400b94badcdb5ee9657784dd47a86417b54952913023cbd11", - "https://deno.land/x/deno_faker@v1.0.3/lib/database.ts": "72e0e71557311c87f2ea24688a6970c71b82f6696f6dd7b6e5649c9355339f7d", - "https://deno.land/x/deno_faker@v1.0.3/lib/date.ts": "4f3cc326337d5925e4a1093575d776d70ebf9051d0567355f4a67091bd0e31ba", - "https://deno.land/x/deno_faker@v1.0.3/lib/fake.ts": "3f1c321ec38f4d495412a41c3895ad3acb2f77b1ca3fe4ae51e62e3e8d5dbac7", - "https://deno.land/x/deno_faker@v1.0.3/lib/finance.ts": "c428ce66f0b4b8c95072e19675a321cbdb496ee965a0e47949ad1c2266cd7212", - "https://deno.land/x/deno_faker@v1.0.3/lib/git.ts": "f448237db41625767e6393f819b65406208b0d8abafd5773218ed07825e33a10", - "https://deno.land/x/deno_faker@v1.0.3/lib/hacker.ts": "adceba144436c773fc9416a462d8796f8db70a5556bdbdbd7cfcfbb486a6de4b", - "https://deno.land/x/deno_faker@v1.0.3/lib/helpers.ts": "3aa64169094ec471b790f6830746ea36343d211bddb3ca17e64d557e68da64e5", - "https://deno.land/x/deno_faker@v1.0.3/lib/iban.ts": "b1ccfc86f8a527b644ae30b9c21341b30215d44da2912e420a74565b3f6967eb", - "https://deno.land/x/deno_faker@v1.0.3/lib/image.ts": "d7300d6c4542483df47a49aec5f4dab091d3a4d354477dd6e4008a3f9feaf439", - "https://deno.land/x/deno_faker@v1.0.3/lib/image_providers/lorempixel.ts": "1ecd713b2f76a81ffcac705856e0a1c9c2ab8bd476c99a0d47d7a25805ce214e", - "https://deno.land/x/deno_faker@v1.0.3/lib/image_providers/unsplash.ts": "fb066692bfdc1ace611a954a7f4c5bd972db13edb7751eb74f92b8523fc590a6", - "https://deno.land/x/deno_faker@v1.0.3/lib/internet.ts": "eb2fb284d79bcfe5f2ef22483f1fc3087d136080e066e6f8713bc86dd3d972aa", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales.ts": "461a670a71a58a0241bb1c3ec7e260285e158d32cccad6587857ae97e0d2ca73", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/building_number.ts": "1eed25d6937aa63676fe04b9a2fda42df1dc2d2b04b28beda45f4dab2410413f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/country.ts": "7b17d4c0f9476dd4d15742fb61f16f571742477349de60ae87bea1ff79a238ef", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/default_country.ts": "2165aa40b29c6339785c419a9f871f6c8ee9c44495f9c6fa52ef211931e53d8e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/mod.ts": "19faf940c7b571fa8e96595f509abe6964419c271b8138458a6dfc37ae109d7b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/postcode.ts": "12d3bff99ec26dcea3f4e375ab450d848ffcdb7b43c3ff5f673b5a87c925a76f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/postcode_by_state.ts": "12d3bff99ec26dcea3f4e375ab450d848ffcdb7b43c3ff5f673b5a87c925a76f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/secondary_address.ts": "ad9669d73c976d1714d63d4a357626351dc3f60faa6b54214eaadd2eaae2d7bd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/state.ts": "188570a77efed0deb432bb37a9a736d70c8c7ff8eebdfa142a0c9e6feca49d82", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/street_address.ts": "b59074f0d19ce82f3fa5dc987279c0a89b42e60bd9e437c5382eeaaf25c321aa", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/address/street_name.ts": "4e0a40e6d88d5ed6314f2cc32687096bb6cd2785db591d53b9c8b0004d1afad8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/cell_phone/formats.ts": "34b4bdf380a6ba8541c4b28d55de9296024232ad6e7b033e67cf627201e2b2bc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/commerce/color.ts": "affb2ec4cd0baa1f807aab3279094d1e5c9e4676e746f63b9015b7244e100563", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/commerce/department.ts": "046757039555a61bea63e64b9854aa8b05409fa9c17bcfcdf721819f79811db0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/commerce/mod.ts": "765bd0d030f17e147cc41f61b55f27ee1f7a1685a137472e2ce50ca2f145032e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/mod.ts": "e32b62df3fd8666980319d1069a0c553369a1c406ea6ccd0591411e8051ded4c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/phone_number/formats.ts": "6b30689c06f0ffe8ffaf363addff160ba4a1e7313bde84f77b41e309586295a6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ar/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/building_number.ts": "9740db2c88dd22c886bf37bef7d3e0bdb81b801966b2b3f9ed75fb1e42a197ea", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/city.ts": "908b112fc91f60460a1b7bd190b9fa8a2c83fb26c1ee86b260ec685fe96de2cb", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/city_name.ts": "044ee3f1ccf9e469178d652f455de15933ef101351192ce473e29dbaf26784d3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/country.ts": "95a785f788f7b8ac5a90972d9f4e743080bffbc7fb637f2f8697feb47ef5eb00", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/default_country.ts": "3fbcb1fc44527dee04c294fde9e0aa55c1ac0937da5ff094dc1aa1f9034d56eb", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/mod.ts": "cb2f2355267791dc4d7f98fad3d42777778a199f8c32022ba13df714fd8a22ec", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/postcode.ts": "b8d6fbc798827ae9618ac89a0d08d289b43b9d87cebd9779ebf4aca990c1275b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/secondary_address.ts": "9028288c5292a53b8c54a873c0d8304ef1afbf3f11065d68acd93e8302b73741", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/state.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/street_address.ts": "2672823ce92f5a174d475eab67a815edcffd3093621a01134b05e6ac50b35f0a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/street_name.ts": "4cfd8b424391ef4760b3db820dad1d15afff0e1b4a1663a11fa0302120442595", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/street_suffix.ts": "c94f13c57ab645e58e2d28d416cc5b8ddf14c3b3dd0d96f457f2baf250a9b185", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/address/street_title.ts": "ca0ec1457dd25a8f07cf22bc52c61509324b19b2a0504ecf7848f03cffe941f5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/commerce/color.ts": "a52eb47c46d4cc2db00b8bf95751cf1223f559d64857ca50aa3b3e4bf23952c2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/commerce/department.ts": "dc61213ad9c1eb3220d11fb388ac2b0f56186bd0d68afda6a3d87a79838e40d4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/commerce/mod.ts": "59695866784d3ac860e0a0004e80a073ba4b3e73abc902038f7d9323d89f5743", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/commerce/product_name.ts": "e7a2e6061bb61867a14bd4b32d0fa0589f32eceb55bd22c05b77f4b8956c335e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/company/mod.ts": "bf5ff8a8bbd8137bdd6b0f0df25471a4e32dae61c906cd0d9c8a69c1c88e7a4d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/company/name.ts": "cbb3fe97d6429dbb9ac5e27233c1c2e39409370b04fe822c187a638751039ef4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/company/prefix.ts": "e863b39f5d929344e999486e9996166ca904f6d63722d71f5f5d08f15bca74bc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/company/suffix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/date/mod.ts": "c61d7c18e3791003fcc1ee425d5e0e406878fdef9f10f3fa75fbe95f40579f8e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/date/month.ts": "0fe6c2c3373ca898c4a9e634660e74840c0957c60f8785bb451e568bffafe4e2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/date/weekday.ts": "79098e9e6cb06c14fd16f8dc82cb86c169cf542e1fc3ff5d614bd1eae27591d2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/internet/domain_suffix.ts": "450a86d83e03f789c1de87c51f9fa52c5797bd14e15fff18d78e8bf945ad32cd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/internet/free_email.ts": "0e5260f3f8ce7842dd2da82ade79c78b312308a9f4024fc6c2fd8e407a43967a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/mod.ts": "8bc9a0aa33256b712060184b9f7033501e260686e1e9f40c1887a196f3158240", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/name/female_first_name.ts": "2d681904980371157781ff698a5b814d11ba07e6843acb389599c61b03d4526f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/name/female_last_name.ts": "9c363b29ea8022d872da415cd988d6c2c6b67bd9bf90b81c0a4405c8a8c27d63", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/name/male_first_name.ts": "bdacc78a073f79656644fb1b825eb978a22365c9953c9302969f8288db5c78d1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/name/male_last_name.ts": "dacaf22eb0b0bf17c38566980aabbdf7141321c0d74e4c6754fe283d1b66e47e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/name/mod.ts": "f93675814a7ea84f0423af6521c50b4bc687eb738be3e4e15b93fe4451102813", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/name/name.ts": "137245c60fe1543097885dfaed4f2c69ae155fdc553835fc9be329ee7774b90f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/name/prefix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/name/suffix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/phone_number/formats.ts": "e8383042dfe7d4a004dab8c3e3b6397ae6599f643638ff36386c163590c497f2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/az/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/building_number.ts": "9e5f7e3684562723796ec56969b91535559469a7f463c54c1564b1c6e0905213", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/city_name.ts": "5b8b517988c253a21598d3d2173206e8d79d0a4fd10c201abd30ac25fca264c1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/country.ts": "43666dae187ca244e1509e4bd80b8b3f24c6ec85b28328d165014fd8fccd0f93", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/default_country.ts": "4e78a5f6362279ca3b1545f7eb628c85803253b5dd436eec9057524d6623fd56", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/mod.ts": "e28a2d78240917219128be8438de2d161a9dbebedd1a36b163c5d44609de2f12", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/postcode.ts": "a97b95396026ee0d2832ac093b26419e50c42781d3449a2595330049f17fc60a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/secondary_address.ts": "9451a74fea0bc0ca76a4d9aead9ecf01a6da7eaaa072cd61496d441a1337f9c1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/state.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/state_abbr.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/street.ts": "2effc9d270b212689baeefee0ca095c5e6e54ed5a888b3ec7deb344ce442c165", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/street_name.ts": "50588dea6b3c50e02f2c695e1e209e8bd2671c0b76e34d0c7bad0471a8915e25", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/address/time_zone.ts": "c3d5b9356a4c6b65f269458268c43b426cedc8c40cb1f727bf57331a552df232", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/company/adjective.ts": "f7ad0bdfb675f6a40701785eae81713b0462b90d8dcc11ac10063a39fded223c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/company/bs_noun.ts": "ff5529d9504f54b631907c9b05125c6b20972b145b6ac7eb9c7626f58bdd23e8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/company/bs_verb.ts": "133dda7b4d222bd5ef8486e0d9168f6f602ea9898499b4945b19979bc62d569f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/company/descriptor.ts": "448c8a419f28805ccd751819309269d1b815ef9dfb94d98c691e7660b1086516", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/company/mod.ts": "cb7601de75d96215f7cc0900cb17392fd9a5e03bfc0eb410af3f27738711a20a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/company/name.ts": "f753d7174b6ab13f00a2579b3f1650ea532978ff44075c88fd82d2d810af00e4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/company/noun.ts": "6fe6f633bfbb61b51c0782a50fc76a8a6653d8e342d788bf0021f4375b5a5c75", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/company/suffix.ts": "a7c4bd0c95ad6e619bd1064908cc863b5c71ae02823dd3060f1ee94007399de8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/date/mod.ts": "c61d7c18e3791003fcc1ee425d5e0e406878fdef9f10f3fa75fbe95f40579f8e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/date/month.ts": "7887890073db2c31c75bd9e998ac8602c1b2038d195d9a9943e9d01526cb1fd2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/date/weekday.ts": "8e4a68a3eef5a3c0589f0104ccf19b5d28ab94e81f1a6cb9709c36531d790457", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/internet/domain_suffix.ts": "9021dd152cb5ab6a68783261e3ee66e64947c86310620483dbc9be1257249d7c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/internet/free_email.ts": "ea803bc265095ccc8aea29f17f777e28df96ca70035868396a1e4281149df5e3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/mod.ts": "179fef27bdf9064a714c3279eefd1d83d12d4c8c54e5bf26d537a7666d7abadf", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/female_first_name.ts": "ce2f69f549429c30af98028cadb024faf24721c00a17ce9c4ff1a2cfb9114c2b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/female_last_name.ts": "f1572e4bf61027120e00bcb2f98dc97f6db20ee9e011b1ba597d919839aa5181", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/male_first_name.ts": "83b5a6debd446dbcf780af213bd79d9e66ebea434403fe5a838ba68ce96bdc52", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/male_last_name.ts": "d9d3880ecc404da2fd2651066602a3cae149827493a2540e1546a82150bfd59c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/mod.ts": "8ed4852eff4a25831164e56ac90921b91174637ac90a14ec512a49b5a6177855", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/name.ts": "efb4e1047ff5cd5aba717c4182b8ea9b1ff971563122b46515e9af0bdfb42366", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/prefix.ts": "f6e09fdf247271accca04c70cd10efa1dee012488cad79c34cad8a33cc497009", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/suffix.ts": "f16a3ea91c495933d6af8359597f076027cf87260e34944d051c94e586c33ad9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/name/title.ts": "122b405e1f7218cc0e0bc15f3949a53a7e3e2945f195d0dcead16a6371bf3077", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/phone_number/formats.ts": "5f52a0fba2cf476a25e2299c9ac8b3a679b77704361ee6fdf6b66cafba16bd56", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/cz/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/building_number.ts": "58e911a9258d31edc3bc09d5ae54aa3ce5d3e8eaf7c6351aa6b38c3101568027", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/city.ts": "e4434bc57ae5b65af3646a9db05a3f2ecc8b08d5ee1caaf0ead0909432a7e8bc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/city_prefix.ts": "4eb7b11ceb1c13a8b35dae5714a4a56426c0c9ec8bd366ee0a28105aa660d06e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/city_suffix.ts": "6315c4d8f645be4ad5e069e7fc2006a1d5efa3e9dfc4ae2845a571aaccbece48", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/country.ts": "b01715dcc7dd73a85e5d833916f2f1a14b2af864e3dac7bc4e93aa7f1897b499", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/default_country.ts": "8a0191b1bc606a49c564ff2deda1698e4b74694f51c5928dea2737e47955cf88", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/mod.ts": "971b1260afd49217ad6c298afb5d4f9d6a261ef9c2a0cebc1fde94a06b100473", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/postcode.ts": "52e65bbb089537e0792c067f7432d113aa5f8fd5d6c91f3e13aaeee7589a8967", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/secondary_address.ts": "697092f51d28b4db3de96c50a74f9c8a4faadf171cb6cab41377ea06de002455", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/state.ts": "001af53c1836f2252acf724692e843eeb0650abd3e16bd9d9ed2ff2fed6d1005", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/state_abbr.ts": "462c1a1ae1b2d5e879467a2ea2c7d62dd39578163bfead7218aaf492025e705c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/street_name.ts": "1af85fa4d8135613381aa2f9e88e672dc72bce736146539d9a96b3de25549216", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/address/street_root.ts": "6346006bfc5227acf4dd8a7e4d59fd99dfeb9f748590cc61dee9d9b14a66f1da", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/cell_phone/formats.ts": "bdbbbd46bc0d36100c056a8d776a8c2aefe4965d8dc90ad54c4d07b2e9c5154c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/company/legal_form.ts": "13cfed8077c630feb232a1d48bfbb7354f31f4d5f3951a14d4b29b78c1002077", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/company/mod.ts": "573d0e11cc8848b18665469343c62ed6fe0128a93ca62040cf6dd5d6677328fe", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/company/name.ts": "1a87cadc30d9e198e301e414bbacdc3c8a78f9a6bab593368c0bd7cceb7b6b58", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/company/suffix.ts": "13cfed8077c630feb232a1d48bfbb7354f31f4d5f3951a14d4b29b78c1002077", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/internet/domain_suffix.ts": "c450e7595781562d600449db067de2a0f38e42ba2a337164ba1d4cebebf5666a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/internet/free_email.ts": "95deb3f400012a03c0fbfba6e796c4228d5b1f9af6b512b01af7fe4fb0e439b4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/mod.ts": "cbf6313b5ea7897c5b8af4597f6ea9ca37f0e730c8eb66495ac193556354fc66", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/name/first_name.ts": "51d52cf7e9733eec2d8f900b2f8a9f2f0cde76b4d849b30e1ac6069bd043f7a6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/name/last_name.ts": "d8a1e8a322d88e01c6453fe7eaa1acf6dce8b032859f66052f226a7804df30e2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/name/mod.ts": "d360b129709776aae3b2ab863a7ef86172814ecb2b17ba685c7a2ca1131f90ca", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/name/name.ts": "7785bd3719abe19d8cb1fabec9a7025a177814f28b66085cf2f1d1b1dc695b77", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/name/nobility_title_prefix.ts": "b457d7ebbf04a51193affd114f8939feb1a7dfd4f6a8c2984d60b49f4a161264", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/name/prefix.ts": "bccb424bc09ee80b1aab1ae9077ce47a754721993fdd6942ef7bce90bd878d81", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/phone_number/formats.ts": "51d687a591b36ebec3b734310f5bc2aae3818801337f70e0dc654c7fcfe669ca", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/building_number.ts": "58e911a9258d31edc3bc09d5ae54aa3ce5d3e8eaf7c6351aa6b38c3101568027", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/city_name.ts": "ac5cd03fe8e8f72b50297e401a33a6161159f2d387251eda94a11895beb201ba", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/country.ts": "b01715dcc7dd73a85e5d833916f2f1a14b2af864e3dac7bc4e93aa7f1897b499", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/default_country.ts": "c15f1340fbdd6f3d9c4c88b48e8873ba5707f53e2070844febf08784b357edf1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/mod.ts": "df748c9a81767c86bebd0e4f1f1cc7cefc4ef5f43d0585a6f0cddcb448d357f6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/postcode.ts": "e0fa4cd27b4f833a2ad47c17115ebd0bb2999e90865e2b8386e0a7e0194f5317", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/secondary_address.ts": "697092f51d28b4db3de96c50a74f9c8a4faadf171cb6cab41377ea06de002455", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/state.ts": "5112a1f465734f689f06def98fc7bc9b260632dd4e0ce1bf9d1ffcbe9c604d96", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/state_abbr.ts": "344a3474b8db1a3a55b94f2e28df648549a5368f6accdb03011de088047f2132", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/street_name.ts": "1af85fa4d8135613381aa2f9e88e672dc72bce736146539d9a96b3de25549216", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/address/street_root.ts": "b5469bb6a1e45f428ee1d4d40332c0b782d4f447a54eacc45958658aae961b76", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/cell_phone/formats.ts": "c2c7de1bded36b7ab9ae265ca3fcda9ac79513c250bef3a0704940e09285297f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/company/legal_form.ts": "13cfed8077c630feb232a1d48bfbb7354f31f4d5f3951a14d4b29b78c1002077", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/company/mod.ts": "573d0e11cc8848b18665469343c62ed6fe0128a93ca62040cf6dd5d6677328fe", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/company/name.ts": "1a87cadc30d9e198e301e414bbacdc3c8a78f9a6bab593368c0bd7cceb7b6b58", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/company/suffix.ts": "13cfed8077c630feb232a1d48bfbb7354f31f4d5f3951a14d4b29b78c1002077", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/internet/domain_suffix.ts": "081a9e8ef5e82143cfe73bdcc7bafee6b8d2ee76e58d2531ef929b2d43a193b0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/internet/free_email.ts": "95deb3f400012a03c0fbfba6e796c4228d5b1f9af6b512b01af7fe4fb0e439b4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/mod.ts": "371a687f4a2735df432dc4eaf3333ace743c02d06c2733a78d5e88e67cb0a9fe", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/name/first_name.ts": "51d52cf7e9733eec2d8f900b2f8a9f2f0cde76b4d849b30e1ac6069bd043f7a6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/name/last_name.ts": "d8a1e8a322d88e01c6453fe7eaa1acf6dce8b032859f66052f226a7804df30e2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/name/mod.ts": "d360b129709776aae3b2ab863a7ef86172814ecb2b17ba685c7a2ca1131f90ca", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/name/name.ts": "7785bd3719abe19d8cb1fabec9a7025a177814f28b66085cf2f1d1b1dc695b77", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/name/nobility_title_prefix.ts": "b457d7ebbf04a51193affd114f8939feb1a7dfd4f6a8c2984d60b49f4a161264", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/name/prefix.ts": "eff0bf553812c2f7af5004fcff0e671a1246571b5caf3a0623da363ebbe1c918", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/phone_number/formats.ts": "50666030721f7cd269055892cfaad9d4d66f96bc74efb084d23a599f95c592dd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_AT/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/address/country_code.ts": "b0614b27d16a9d7b8bd6fbbde2a4efacd39dc0825d8cef2144b94b82465da128", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/address/default_country.ts": "4984576ef8c933936326bb7db1bb6f5bfe4dbbaa78cef9765a09fce26404ff71", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/address/mod.ts": "7f4c1354e877ea05d67a08d103352a2699f6118244799d12334c0bd1f1e4a859", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/address/postcode.ts": "69c7b1b1f8efcc2e2c0267f23773b4e885c3ea8397f6489b4769aae5f9f1dee8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/company/mod.ts": "59429c1943da64620329a348742a0602a8544ff38e33fd1671e7c25d3ad43708", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/company/name.ts": "1a87cadc30d9e198e301e414bbacdc3c8a78f9a6bab593368c0bd7cceb7b6b58", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/company/suffix.ts": "b655c7701c527a6296a725c081cdadd513de7443efb03e7b0bea2cfd0588e1c0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/internet/domain_suffix.ts": "3c4280ce23ac802ad0985ec2d11b469888ab2add26166863f6043d28fd6fb8cc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/mod.ts": "77afafbf0b7be9252a00dd15dbd52196e192db672d06bb4846a201afe5209edc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/name/first_name.ts": "c3b15fe621bf78a3b3878f66364c0f6bab53d7586884b96d9a05d4b3f651ff7c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/name/last_name.ts": "e4e060f7115f9e882a5d77a071eecaac29807d690d5855a2f64d13224b5c4d6a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/name/mod.ts": "de5c8e623984da1e77f4ebe46b755b8431cad60a916b17d2bcfb5e1710d95f6c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/name/name.ts": "140b3298b2d055ef36b008a09a4f46532ecf425e35509abfb8c9e2109531cd09", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/name/prefix.ts": "6f5a91cf0f9281cb5f423b41cdab889eb5df39028cbc05502cd8279017f30bde", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/phone_number/formats.ts": "dc68d1a182e25f11df1a5563afbf0ec4bdfe312c4de7e807896cb3fa1c786255", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/de_CH/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/building_number.ts": "1eed25d6937aa63676fe04b9a2fda42df1dc2d2b04b28beda45f4dab2410413f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/city.ts": "e4434bc57ae5b65af3646a9db05a3f2ecc8b08d5ee1caaf0ead0909432a7e8bc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/city_prefix.ts": "ec5c9962102a00d8bad931007a0dedcfcf52d683c910bad0910b98a85f8d455d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/city_suffix.ts": "7a9116f27cb3ff593b205d75e12f6f0bef2dc68a4b705c3d30801f72edc307af", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/country.ts": "db21728797574cbbbb1449ddc551cbe9d852896ae11ce1d60d13fa4c2a676c05", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/country_code.ts": "a71d6de1043584578aa47ad853592c21c8673ce6b52e66ca7e8844a9d97467a4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/county.ts": "d8322d68b59a6fa77415a374c1d3694b726eab1cd8538b38c8b00c1952f41780", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/default_country.ts": "57aa8690367cfd04703479067f30368a5c84c29cc578d25e18b8c4a610febc97", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/direction.ts": "9fc7f67c923a4efe8e1596a835452557692745db1262b0cf1924e64891254c06", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/direction_abbr.ts": "c09180e018984eef37873a05e4632fd30065561d912de635195995eee6ad29f8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/mod.ts": "4b550bc4983855933fe924d8f1a5b4698f5fe376ed8a05b3ded072ef76cf10f6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/postcode.ts": "12d3bff99ec26dcea3f4e375ab450d848ffcdb7b43c3ff5f673b5a87c925a76f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/postcode_by_state.ts": "12d3bff99ec26dcea3f4e375ab450d848ffcdb7b43c3ff5f673b5a87c925a76f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/secondary_address.ts": "9451a74fea0bc0ca76a4d9aead9ecf01a6da7eaaa072cd61496d441a1337f9c1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/state.ts": "243efa8fb53096cf8c7d8aa81b849749467ce9f0ce341f7f8330166d68b74fb8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/state_abbr.ts": "c9684ba3d2255a0efe4918cd020854263b279b3d7a118f4d0623f9d25c2b85c3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/street_address.ts": "b59074f0d19ce82f3fa5dc987279c0a89b42e60bd9e437c5382eeaaf25c321aa", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/street_name.ts": "facec236cdc5a83df805c619d35fcc972075a693d4d7f3fc5e3cc66bc875a423", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/street_suffix.ts": "df905df87f48e4db8acf36f761c9d566cf378a44c81795aecee8b7c6c1843ad8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/address/time_zone.ts": "c3d5b9356a4c6b65f269458268c43b426cedc8c40cb1f727bf57331a552df232", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/app/author.ts": "941451acb2834035289eed31ea6f662c3d0b83d2324813c8dff4a4dc9d7f7637", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/app/mod.ts": "3149146ea621f08812043e465e2932b696ab4c9328f14deddce550788f8b76d3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/app/name.ts": "1bbd257e4ff4707766ec96ba3cac901fde7b87a2be451de2c43450c45f44efda", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/app/version.ts": "f250a00e81fd62eeecf4a828ee198b815ef6779875b3431fb71d2d78e00c0270", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/business/credit_card_expiry_dates.ts": "b548917a425ce6c7a45c598808eaca73783419b56057cbabf2b68222c161976a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/business/credit_card_numbers.ts": "8bec174db514d6b395f89730675d5ff263e139341419c1c241ef505772aa9b42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/business/credit_card_types.ts": "aeeefda45ada161d36d8fd0789896d5e8befd08c4a943e5fa2f8f006a0cb2e73", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/business/mod.ts": "bae6912bf6f1a06cee24883516850747f64c2bde5e3938510bc32a7ebaebb162", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/cell_phone/formats.ts": "34b4bdf380a6ba8541c4b28d55de9296024232ad6e7b033e67cf627201e2b2bc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/commerce/color.ts": "ca04bc9b6617989c5f1326a06d6734d106fe4e4aa2fc8ad58c5f92320d572331", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/commerce/department.ts": "f8d69a3dbaf05ab804cbed95425da34bbe52f63f6f63248d004fb2486f317213", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/commerce/mod.ts": "59695866784d3ac860e0a0004e80a073ba4b3e73abc902038f7d9323d89f5743", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/commerce/product_name.ts": "b66a2d3c61603d3ad7b73b5e8494e24ba52f2310d52d0d02024ee3d75ea581ff", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/adjective.ts": "f7ad0bdfb675f6a40701785eae81713b0462b90d8dcc11ac10063a39fded223c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/bs_adjective.ts": "2bad5f774e303e29fcbd4b5151247595479eb363d0e5b7e75c656ca25d584f44", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/bs_noun.ts": "880ca12d99035b480695338c5ea1ffc0fda80fef44502e56cb06f53d27984638", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/bs_verb.ts": "133dda7b4d222bd5ef8486e0d9168f6f602ea9898499b4945b19979bc62d569f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/descriptor.ts": "448c8a419f28805ccd751819309269d1b815ef9dfb94d98c691e7660b1086516", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/mod.ts": "3099c443709533eeb07735538fb19552e1ed25db3eb7ced69ef76441bf853042", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/name.ts": "518a52bc2801a0fa590c69caf5c0371a42e6e0eb6af796a064f283fe86c0fb7f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/noun.ts": "6fe6f633bfbb61b51c0782a50fc76a8a6653d8e342d788bf0021f4375b5a5c75", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/company/suffix.ts": "dc4211e31463f9dfcbf590b2f5517659ce90c9fa43e5d10f34bfc77e6d16e3a9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/database/collation.ts": "74ededc6a012cdbc58a8e8d5bcc25e35711d917696d54a9f7eaebe4b93e7c3ca", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/database/column.ts": "4401fe15f1725aff14147414017ea402377c932a6f8b4ca02343e9212a6971ae", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/database/engine.ts": "81dc1361a4572a8c0f1077d574e88f41e7bff61d57d52d6508cd480740e839c4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/database/mod.ts": "ed53ad7725a8ca6813b996d5d8dd25224f9231468999d61edb26aaba8c79f37b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/database/type.ts": "54f26422e53ec8ac93ef2775fc94ffccea7e2ea68064dda742b867662ca756af", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/date/mod.ts": "c61d7c18e3791003fcc1ee425d5e0e406878fdef9f10f3fa75fbe95f40579f8e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/date/month.ts": "64644d63a06e69cdfc4c9b72672e4c46f5f6ce9e8a8ec845f25f08f5dccf2767", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/date/weekday.ts": "06fda72db1a9217c760a4c87a9e811ff296d62aec835dfdc880eab15d06ff790", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/account_type.ts": "2c67d1f5a30094ce90b38da38e33a9835d08693e3c8efa7a177889b90bc834e4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/american_express.ts": "a6de9df02565a1f3efc8e72fe74d3261699e5319a877a9b394eea05fd2b7e124", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/diners_club.ts": "3572efffb58240adfb536a6c81d29123d6895325300d418a07e6a30e7f80eba8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/discover.ts": "f9233e0d0679fa5500fd79d1a57a5d8b8220df9a8ecf276d70cf0997dbb1cf56", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/instapayment.ts": "08a7a4e55b9c54592886413122294e613564cf69f64d35bb4c4c5662d7f87eb6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/jcb.ts": "f94f8f1aabf3b19ab2f6f95f187de93bdc9f8c2a2911eeb92d775741d5477f3c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/laser.ts": "c6176f06b264deac8b190889f4361e0b12896592a903f23c9825d5180f2a06af", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/maestro.ts": "c35a1c7c25cd6a1e88f67e06d8d3efb0ed9a35592c43c605859eb5496c5463dc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/mastercard.ts": "a86f77dac2caa4b2d41886c22dfe2b9be1a039c8cac0033543a778b01c1e5fe7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/mod.ts": "88d0322fb888d44f7980d819eb15f5198b133127c3a7c16a0387aff85361b57f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/solo.ts": "6311adb8f8bd65861fd343a89dd03708b7bb37aef984d3e71e9784439787dc4e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/switch.ts": "9dc9a3664dd6d05183f101bf4c89a2cbc8e1d065450b35a983955c4ab212c766", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/credit_card/visa.ts": "20cc6a0d07c10dd3b27a5a61b63e8a9a79eb1b0dff6295c8d1dce363359228be", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/currency.ts": "d2346e736ae4622f6a365516396d38168fb3ce8808dc9589f1e5e58784f2975d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/mod.ts": "a1593810ff914f01fa0a8a807b079ed8afc2072081485dc38296b66e7057dfca", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/finance/transaction_type.ts": "a19cd76ca4ff92f72731131f587aa15a79237dd5f4b6ab4d1a14aba86e09aa3a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/hacker/abbreviation.ts": "6c9cdab06eeedd2711ec3e8ea6173982a46af2fa6e0ab69b62cd89cbda772b97", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/hacker/adjective.ts": "04a680ebe394107c235df6405981b629da761d52b580e381a7ed3a0352a80d59", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/hacker/ingverb.ts": "684ce10e53b15c95defb06e055cf2c58b59cd12572a1ba8cd5b6d9003ad165c4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/hacker/mod.ts": "8c47795f45bb64ab8014bc8596dfbcc83d894d1f08254501f3f78ffb14eb08de", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/hacker/noun.ts": "ba622028415c628338307c14738ae9246b98a4fb0ade02aa360cf0fecad5cd32", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/hacker/phrase.ts": "eba9a4dcc1fcffbe1a2378eba5d89ddfc804add04b0aafef41246c6ebe8db045", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/hacker/verb.ts": "e3f8781a3cf8c92b33b123cf23a961cfe827841c4357e38f0a37e7778280073c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/internet/avatar_uri.ts": "d649b2f0c52d2b07b41ba1d1b620a02565a9e6827e2ef7c404471328701289f9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/internet/domain_suffix.ts": "1c6202f708c084c1e6d8c3103b4e915da3ef3c2fd8757d6c2a8d162b6c0a0e8a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/internet/example_email.ts": "12b83da6c27a105238e4743f8e7cbeef0397e59a7c7042fb9d16c195e1dd89a3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/internet/free_email.ts": "95deb3f400012a03c0fbfba6e796c4228d5b1f9af6b512b01af7fe4fb0e439b4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/internet/mod.ts": "656604edd74729b725ae792be2f724d8e235eef8726f73337a76c62b9f361ac6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/lorem/mod.ts": "796c24db4629667e56bfbe1c5d48a4600ac3a294e387455131f1d82807eb7fce", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/lorem/supplemental.ts": "93d7c157180b628ddcfa26485d8e5f48f44240e7e1e2a38f4b3c69aa31fd4614", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/mod.ts": "b0703ef8fb97d0fb62cc30e5e440d170f8007ffe72748a0e63d8b907cf0bb965", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/female_first_name.ts": "b4abda5a890a8019d208749459a5fba10a871ab248f17fb3e09a69ceb5b7a3b2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/first_name.ts": "3e994cfc49947872fe5a0a8399356ecd369b5310319e927a12ccbaa47ce1ccf4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/gender.ts": "43d4698a76cabdcd43d52c8bba1a0c061b2bc73ee7f87f65f8fd5df015a72fe0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/last_name.ts": "f6b51ccfd0b5393a9bc41d5a97af3f49474352e1f09fe78a5b5abfe54f6f2458", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/male_first_name.ts": "64a77d5a4f4e99bde7981b97070acf3f71ef7730b7a75e479939209d8d1e2c3f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/mod.ts": "4f0c9f8029999b370528f0009dca429e55760a96d3e8dffc467c243b9ff76e35", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/name.ts": "7243299d031d7b3af8876cf51c338953a36d2408207624ea0cc176facd12d007", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/prefix.ts": "0516b54a947de45ae8a9f3e1661d789e1ffa62928fcdc3898eaa970ef3257956", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/suffix.ts": "4f93e4e3119845efd2b3c112e2648d17555bde98d35bde3e024e07e1f822042e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/name/title.ts": "1f3a839a9cb050ce27963de21c5c4ed53a00dda32b7bd9b3812618eb424dac0a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/phone_number/formats.ts": "9c28af3e0a850f28f57476f218e7769bc69df4a903bdc1d2a8754b3402e8c6f9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/system/directoryPaths.ts": "768b40841ad7de9a977e01d3cf0fcce1cc7bfee6427e4faf03c09a9945addae1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/system/mimeTypes.ts": "228427c28183d9e37c136e5374a70dfda72a914434f697b90f174cc1dab9433b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/system/mod.ts": "cc9f3afa6ac5b0c07451fcc443e7a96607c645def87b421e85babb953aaaec9c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/team/creature.ts": "745ea3e0e022e129ab2b37bd5c15f934d445e6d23cdf98d2c1e13cf45256fb76", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/team/mod.ts": "46b6bf273d984f0fad41ca41e04294e937917f4defba1b02416039039b6cf764", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/team/name.ts": "238c13d406a290f41add0a99a61b880a672c9053c6a52790a0bf1c93d84b12a9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/vehicle/fuel.ts": "349cd64a0efa292e80a67a32adb0296b2d3af7a41dc5d46e3ee73db0acf22996", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/vehicle/manufacturer.ts": "bda049d71cd86a7d6d6278583cf4470e6b95896cf7ee7606e09e584cd3ff6efd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/vehicle/mod.ts": "b59eb56e46fa6146c7f06ca3789127a1902ea17405fd3e1740ef2f8849fb70db", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/vehicle/model.ts": "67e4d3a701fe7cc4f1adf801eccced581ff0375cd4bbeda4f1e1cebaa47e0763", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en/vehicle/vehicle_type.ts": "fb65bf7fc93373107cdf4fd47185f3b1458ca55687a62270dd1a73528f1c9840", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/address/building_number.ts": "48edd02efbb85b96177ea0b5735d7f04480c10b1965b1ac52bd1a48db504112c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/address/default_country.ts": "30d0060c98697b3ab7ab39b4339f10ac234ba2f8d09ad44b81866a8771ce7883", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/address/mod.ts": "18a70b6c0352b68c20f83c688b7f420a54295d14bb501c5b3feaed9f14a586e5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/address/postcode.ts": "e0fa4cd27b4f833a2ad47c17115ebd0bb2999e90865e2b8386e0a7e0194f5317", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/address/state.ts": "0d2af441c2800e83e362404c6335ce801d8374d02cda1996459997e2f222c607", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/address/state_abbr.ts": "adbe5b0d62c8536f55c2abac0d71722b72c97aa9ca1571e00ade699c80816e85", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/address/street_suffix.ts": "b6e0bfbc99e291888ca09cbc5ba113580e146693ae77ce5bf0f3a6a56454c3a3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/company/mod.ts": "20ac3010aee7c25a2fc994580e0f4640717c6444e7d26e3e486182254f23a239", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/company/suffix.ts": "6600a7e9740e8448ae7477b88bbdf19a12e65926e32a3b2eee819b021170c9ee", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/internet/domain_suffix.ts": "150e88a353f32a65304329ad40e7e38bac1ca0dfadffe94ca93adb21844d1ff2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/mod.ts": "1ebd65c0736fbd464c718a6521ec314c26a445ef546d94adb0df8a6b9641afa5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/name/first_name.ts": "353d42d4fbdbfbaab7ec075419d2de65869c7615ef590f79b58460e2803d4b91", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/name/last_name.ts": "c1814612927bc79e2f030b89bad23821d5f58aa5f63b6cac70e2c51f6406758b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/name/mod.ts": "4f951778555b5fa8fb8552c0bf955655e90e408c63a6d9465d7a83c21380b564", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/phone_number/formats.ts": "e5169e1652589fba4e80717edf0a280c14c5d51df15da588401589f0e146b60f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_AU/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_BORK/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_BORK/lorem/words.ts": "b06ef784aa9d75bdd4d341686c32e9a4ecad0d3775bd0d1cbcb415c15b5608a5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_BORK/mod.ts": "64f634b318baf8c62e1fb94990b95ecc4684a3331c7953840cf24478b01ab380", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/address/default_country.ts": "57a5bf94d2a8e1a7c144c7f0a846c2c23c5e3be01f8645ce5032d08749bfb7e2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/address/mod.ts": "9061d0ad374809c8caec796e5efdcb2ad6a3c52d52cf22029007c763d9bc7d0e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/address/postcode.ts": "6c2df1e0ca28e31eb59d09559f29d4d0a7de1d42f685b35143b4bbf8bac997bb", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/address/state.ts": "7ff675c715c910b80309ae96fa16e5df324213a371e3807fcb3edee35be2c9d9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/address/state_abbr.ts": "a224672bb08af42d792d8e36414d14cb207a8168a856e33e88b8b9faad46f0ce", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/internet/domain_suffix.ts": "8e8a97ac50fd4366a0e88e6d414b505174ae2001a811c51290e38b157051374e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/internet/free_email.ts": "57e2667d137171dc541090ce24ff234fcfeeea9cd8e05021b7defd2d8a1e8b80", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/mod.ts": "f9d2f8aa01699042f8c3e142ea24cf5a34f1c413ee8dd46a9699ebc8414072d0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/phone_number/formats.ts": "3a710353624ff9ba667e8d8592dbf5901f6a125a16fcb38368dc4e2f6baaffa5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_CA/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/address/county.ts": "7bbec4d477c90d2c0054bb7b4e9d6e2b3237f21994a0177ae29c2e85d1f15843", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/address/default_country.ts": "7fe27fe994dd18819d80c67bb3f8d5a3f1360ac22cedd0b0d7a081e3dc857bc8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/address/mod.ts": "a139b0439fd096e85cca75fae86af067a859ac24e53e57a633f2c0bb3616638f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/address/postcode.ts": "5f41822b87a9346713340293d6fdb1278e473eacb1956c43d1f9f6d2cfbac12a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/address/uk_country.ts": "7fe27fe994dd18819d80c67bb3f8d5a3f1360ac22cedd0b0d7a081e3dc857bc8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/cell_phone/formats.ts": "fba4d892d90259623cc89078fc5e81894d648ad05b14ab99aa92b285d1b9649c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/internet/domain_suffix.ts": "d979eba16ea1a25bffbc2d32af628d626be9e2254a7f5d1a217fa733b5ed8711", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/mod.ts": "d833d30d460885bc25d364b4a0282bf7ae94f09f1eff8e7929ce57f1721efc59", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/phone_number/formats.ts": "2726375ad43898078e6b5f524246239f65f3ad7ae74a12b6c665d4bdc803bc94", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_GB/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/address/county.ts": "44b60593d5c190c30a7f62db53fa9e8675855ec5e6e7f6bf083f12d8a717d76a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/address/default_country.ts": "c8fe2a0405d9e7fc7d739fdeb00ed5bc091c65e6e4c8f2ec9e8c24030f259db4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/address/mod.ts": "59a40f66d287ff4660d45cb69ea90bca3d1ca38c10cd732f89eebb2c9ca47164", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/cell_phone/formats.ts": "6df438692049bd0ebe4ef0080fafcc7ecb1ef7b12deada50c3d1c4438c33816d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/internet/domain_suffix.ts": "7ab17c4dddca996eb78121cc60499a77a8c31435f4dd492070d20856414df88a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/mod.ts": "9da19fa434bfeceb711b7cceed1e2591eaa7b0f3f4df924bb4cd6c2f89d0ff5f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/phone_number/formats.ts": "c20e11536bd4aab92a3745914b5db7926db23c6c4d50367dad099f98a8ed4384", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IE/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/address/default_country.ts": "1b3d933cb56f2379f5b594d2dd771d026523b13df8bb63e6ded1f6a37640b313", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/address/mod.ts": "0c269018f4d4dd8c0dc513659636965dce48176a84d4b00cab7ec2a248d162e8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/address/postcode.ts": "d97706eafda9dd8b42226208f34d264cad4b1b9119273d2bfebbfc20729dcb47", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/address/state.ts": "24eaa3f3b0e2e72935181a4a8d7b319a780cdc639759969b76fa974a575c6913", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/address/state_abbr.ts": "7ef1fcad2d4b73d24658cfb40ec776341badd17013ea1a45de3976752889ca01", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/company/mod.ts": "20ac3010aee7c25a2fc994580e0f4640717c6444e7d26e3e486182254f23a239", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/company/suffix.ts": "c9c9760d34912ec5d1c25a081dc921fdee2d7728cf4af1ae12714f0088446254", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/internet/domain_suffix.ts": "99bd978a144c8a146cb6d5048ecaefeb2362c24889cec497138e5ebf50a82c74", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/internet/free_email.ts": "74e26fe252383bf236e9341001e698a936d3239e4937000ebc9cc3bb1315e550", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/mod.ts": "2bb6cb7dec9dbf6a5e2472d0493eac8de16ff0979da5fd0328a4497530704307", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/name/first_name.ts": "bc695d0d014ec74d5498931cf61b98c3ee00c96e0467a7c37662033e77ff1209", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/name/last_name.ts": "e4ae2a17eecef45e5e49ce3c644ffc8e0f5290c6e5a52b998a30106a96d51a92", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/name/mod.ts": "4f951778555b5fa8fb8552c0bf955655e90e408c63a6d9465d7a83c21380b564", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/phone_number/formats.ts": "18d4447d513eccce6a6e90f6de8bdb7aac67c5693d5779f4ff41fdaa922e492a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_IND/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/address/default_country.ts": "b7a7fa17a8acccfb2c14a2401898341026c51adfe73d60a0c883bc1174fc90d0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/address/mod.ts": "273aa3c6a388729b526354a729651d1748e9a2e3b900cca129ac2cc043c407cf", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/address/postcode_by_state.ts": "759fc6d05676dc2313f0bfb99b6d3f31daed19be8f03a5bed4b6ffc15f0b7886", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/internet/domain_suffix.ts": "59aa53206ad273621b9cd4e085f068fa3cb9a2d297af78d8d222f40b44065c8a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/mod.ts": "0177ca54b0837b1148d0ee14ca448aa02dd90f9e644a02530b5aad0a64cd9626", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/phone_number/area_code.ts": "0e403532eaceca02af803a8a1318b7bbb6cd135ed849d2be6178606974432fcc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/phone_number/exchange_code.ts": "0e403532eaceca02af803a8a1318b7bbb6cd135ed849d2be6178606974432fcc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_US/phone_number/mod.ts": "9e723f96db02f1af04cd5000de0e00c0eddba4050a30ce8afc990837bac6f65d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/address/city.ts": "118b70812e34afd2da2485687260d8e361b86c10797d409938ae1c2eb01dd9e4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/address/city_prefix.ts": "b00dc27062d7971decc75ee650dc46b4a01277a88a88c236e9858789fadd1dad", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/address/default_country.ts": "3255d19dd08b30479f57e7cd95197b8375fc6b38d2e7223cc155351a5db53957", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/address/mod.ts": "1d31619929b3ed02a89b72815243bfe575094ace4bef8422a69f892fe49cd74c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/address/postcode.ts": "9303047def9baaab9cf0a18a9a50b65794881889072d40a091c2dba08a03590a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/address/state.ts": "0a387b24e84812616d93af01616a45ec44fbd48d733bacbe2c5c2fc886f5aa6f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/cell_phone/formats.ts": "2ca3f3c195186786efe254d4fe41b791879fd48584d4c110a8e2a2efda1dc4f9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/company/mod.ts": "20ac3010aee7c25a2fc994580e0f4640717c6444e7d26e3e486182254f23a239", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/company/suffix.ts": "ff5ab193c227ab8de439b43983d7519b7f09d7df533e074ea02dfc027525b6fa", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/internet/domain_suffix.ts": "e201a2ea48aa4d76ab8b1704f6632ff7d0c8862b15ae86880835fec55c0d924e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/mod.ts": "abeaa581bf467c085cde81f591a3b86c7788ce0b64ef1b24b488719046371ec7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/name/female_first_name.ts": "434cae9e1594dfc16cfc98faf41689790c4aa196bba8a69b2c09cf04b464ce54", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/name/first_name.ts": "dc758c777ebd88f9d966e47d15258d9c8594e9c11a36d0584561eb09eea88436", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/name/last_name.ts": "e438cfa053fb109596ae9e6cd57cc72f00903f625acfd9d0aea4b1edff455670", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/name/male_first_name.ts": "939a5a3747fb2ce124a6c9f435c6a5558c21ef48d252f48e8011e3e0379b0bff", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/name/mod.ts": "a1df2d51fb0b6b85ca81bc2f6af5ebd0b24745207aa8ff4d8fbcfe5468277237", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/name/name.ts": "f0aa3e3bba9e752d9100b52251aedc828d89cfaf45cca5719d8220ceeb0bb649", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/phone_number/area_code.ts": "aa1cfbdb4110be6edbffd469d2ac76d0846b7251198680d417d555570774c68f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/phone_number/exchange_code.ts": "0e403532eaceca02af803a8a1318b7bbb6cd135ed849d2be6178606974432fcc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/phone_number/formats.ts": "a72fdfa5ccc9842f46234727e117f4c71479e45a3aa3ec5079eeb78584fb914d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_ZA/phone_number/mod.ts": "f981bb057c9d8f3a7591a5e206f6adee9e54659ddaabb64e12ad6003d8ae7c92", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/building_number.ts": "48edd02efbb85b96177ea0b5735d7f04480c10b1965b1ac52bd1a48db504112c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/city.ts": "118b70812e34afd2da2485687260d8e361b86c10797d409938ae1c2eb01dd9e4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/city_prefix.ts": "407b1af1ad76cf1719cecd66ae68134996be55233661f748bbebac8e00927012", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/default_country.ts": "30d0060c98697b3ab7ab39b4339f10ac234ba2f8d09ad44b81866a8771ce7883", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/mod.ts": "9701b2a3e216f2d52b46af4799a56a226bfadc834a23b21d841632de08c960b6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/postcode.ts": "351e39bd719f1370563e782b74b3781e38c752c942720de1a368e51bd3eb4c87", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/region.ts": "e2d4539fce6a538ccc6ec6a2d7396aec386693088337daf443d4c8504c5d98a9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/state.ts": "0d2af441c2800e83e362404c6335ce801d8374d02cda1996459997e2f222c607", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/state_abbr.ts": "adbe5b0d62c8536f55c2abac0d71722b72c97aa9ca1571e00ade699c80816e85", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/street_name.ts": "1af85fa4d8135613381aa2f9e88e672dc72bce736146539d9a96b3de25549216", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/street_root.ts": "d08abcc04b79c81382f30311c1cf68fa2136ed5acffaeec450cddd4dd3d4d764", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/address/street_suffix.ts": "b6e0bfbc99e291888ca09cbc5ba113580e146693ae77ce5bf0f3a6a56454c3a3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/company/mod.ts": "20ac3010aee7c25a2fc994580e0f4640717c6444e7d26e3e486182254f23a239", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/company/suffix.ts": "6600a7e9740e8448ae7477b88bbdf19a12e65926e32a3b2eee819b021170c9ee", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/internet/domain_suffix.ts": "150e88a353f32a65304329ad40e7e38bac1ca0dfadffe94ca93adb21844d1ff2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/mod.ts": "30a3172649d745df25c2c2746aa00f74913198cbbf24fb67e2f0df5579b9d6a0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/name/first_name.ts": "89d2c3b1d4992297b51c1ae4b0beda94794d04d9966e74a02595a8dddc1090cc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/name/last_name.ts": "7f2c745088efaf4d5565b461f86411c2c0d85b3b3c8bc9ce5cb6ccfa92c8c820", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/name/mod.ts": "ada37fd75f47cd61c014c1754a78cee8367fce006f173d03de2d93a1139ea73d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/name/ocker_first_name.ts": "b3612458c11fd59e4b376ced5f082b8cb100cd0bd9a907f16b9186c1ae9a9d11", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/phone_number/formats.ts": "e5169e1652589fba4e80717edf0a280c14c5d51df15da588401589f0e146b60f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/en_au_ocker/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/building_number.ts": "5e984d37dbd70093d92f144b52d6bb916b92dfe56826a4dd5032dd74752320a2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/city.ts": "118b70812e34afd2da2485687260d8e361b86c10797d409938ae1c2eb01dd9e4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/city_prefix.ts": "c3fabcd32715efd64f5a9287b9a194e0ad390f559a804019e12860a715997c67", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/country.ts": "cf01d7568e6e43989c9ed42be7533e32e124a348469c4cea88ff0b7b363d8e4c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/default_country.ts": "09e3da41ddb34b734160a7f475dea265f609e03a315d569884b1795a4996520c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/mod.ts": "611ea8a1a21fa8bf7ff21394361cc3188b880bd6591a00e1564a76dc607b7ae8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/postcode.ts": "061e0ec295a754bec2497bc3fbe0cf0aa6a7e1a1ad3b6b846bbbdf81191b7097", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/province.ts": "277a9ef57ec2f6556a882f096e90b86a528c3c82f38dfd2641ea661ab3ed5451", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/secondary_address.ts": "1c7b5d47513bbd691abd838379e689d5105be76db8f8df80e2f26d9b20c467a9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/state.ts": "d1560f74ce26144ef6dae6db5f0efe1ebdaaed75b5e9ae46602a5237ac03202b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/state_abbr.ts": "1ee9ed0be405e105d8928414ade3ec6f8866acadf2b2d7a84c526d039fd07f58", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/street_address.ts": "11c3f648b399b8d3b2d5ad78126f1662bdc0bb54bd1b530ce84599185ede79f8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/street_name.ts": "90202e8680b2df259043a5177430b647f78112ad053186b9a5362e9d63869724", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/street_suffix.ts": "426160e18d20dd8982103e6f3a6dcdeb5bf258f0e98f316d09194364b64ed379", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/address/time_zone.ts": "94a970f84c9667658c2602af11aa8e6ca55b2aaa41e813697d7616fe118eb891", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/cell_phone/formats.ts": "5a4818139abc51740d283757870ed06463bcbe35cfa2a5e80fd73b030a6b489b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/commerce/color.ts": "7bda172ba7ebaad1c66019a145c244f8c528cfbff84191e530c675f958cf642e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/commerce/department.ts": "542dd7e901600ebeee1069f3685ab6b94ffcf4a0a67bd508d589a053eda3b9ba", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/commerce/mod.ts": "59695866784d3ac860e0a0004e80a073ba4b3e73abc902038f7d9323d89f5743", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/commerce/product_name.ts": "d0cf6ed897ad5ec1d694d8fb536ffa1dd6f6703e30562d9ed9eeca4d403127e9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/company/adjective.ts": "28a7005dd30d861e91fe3120b34c9b4b78cf790632325f95535a20f416f5e438", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/company/descriptor.ts": "a1e6eb947203261356f5547c3d4f1335463f303df0095d1e8933310e4019ad49", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/company/mod.ts": "df1ed0d21514b8dff85bbcce4d1307375033d2d51f536a97e838c32b59fddd4f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/company/name.ts": "f63ad37862ff5a114d580775c6081279fd92dbf7037c5e54b3aa73728a0c3189", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/company/noun.ts": "bdb060145d285f5e10dc00b0deee103af00e81d615521f2d96798c031b9a1db5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/company/suffix.ts": "27ec987099fbfeb713f67b55b14384e53224c460bfb582127c9435c8823764b7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/internet/domain_suffix.ts": "1797fbf71fe3b286d70c3169daa4e6c9ea8d92b8a4a43a0d45589acffab16492", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/internet/free_email.ts": "95deb3f400012a03c0fbfba6e796c4228d5b1f9af6b512b01af7fe4fb0e439b4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/mod.ts": "f311781bf463200661a2de7dd04f1430ece2f3b8a5bd6dfad8cfd83ba7288d59", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/name/first_name.ts": "4f6f60572c150dd1d09c2e9f6b7e8dda1b4b8df1022800dde20c9d35a1d5b5f3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/name/last_name.ts": "9879ee58eba6ce47ff45486317d4f49f6413a03569f4df2879faf7d4d1c0abc6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/name/mod.ts": "992a9abeaed8fd91224ef1da139ab7496e30f58812c6bf61f2136bb0b873c14e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/name/name.ts": "19270b27cdbc632de3fa84cf7b90cdf7631e42160046f8ac0369603de79bec0d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/name/prefix.ts": "66444e0a960c353c19600c2804146b635e52762ea042be179c7557f274b533ea", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/name/suffix.ts": "4f93e4e3119845efd2b3c112e2648d17555bde98d35bde3e024e07e1f822042e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/name/title.ts": "f2638a4b86549fa0d87eaa3991b956bca49fc17864a4b9cff90c08d33ffd84bb", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/phone_number/formats.ts": "4acc0e21216da89a9895de5b9675b4013a16b00cc7ca83815624098a378e048a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/building_number.ts": "7ad30029345aeaec8cbf7c51dad0915cbf70fc4d6423680fe91655f3745e9f72", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/city.ts": "118b70812e34afd2da2485687260d8e361b86c10797d409938ae1c2eb01dd9e4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/city_prefix.ts": "c2d739e7d22d4fb21f1fc3ffaa5b4fa5c7356f852b4e730d0cd901cb97fea55a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/city_suffix.ts": "7a9116f27cb3ff593b205d75e12f6f0bef2dc68a4b705c3d30801f72edc307af", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/country.ts": "9145262ed5d1c5f55cc461d292ef5ad17e4bbb74439dece74a5312c81f19ccc5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/default_country.ts": "b4047539b24803a6f39a5dc19ba175013f2b4a081499ab0568ee5c41941055fd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/mod.ts": "b87d3454321c4fdfed429b21745c6b0d64c5132d79843c606f74d0d69eb55534", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/postcode.ts": "061e0ec295a754bec2497bc3fbe0cf0aa6a7e1a1ad3b6b846bbbdf81191b7097", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/secondary_address.ts": "4aae244fff525b5f8972261f418932cbe93d8f55f1b60347d8db1adf5e91cae6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/state.ts": "01995a4371140bd6ec483f05aae42c37a0018bb9d1ffd35d265970b96a1d70dd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/state_abbr.ts": "5628d0d59e34ff59b436338d9fdf5b1e6043665305b792b62f4a98fed05aa959", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/street.ts": "ae4815ccffa6fc95b65cd4c4458530ca5807638daffd13d91ba9ffed1d7262c2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/street_address.ts": "11c3f648b399b8d3b2d5ad78126f1662bdc0bb54bd1b530ce84599185ede79f8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/street_name.ts": "d2f9eef39a03d030c652cfe9f54047bb36e3d5b9041e23b72b3d7200a512d68e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/street_suffix.ts": "426160e18d20dd8982103e6f3a6dcdeb5bf258f0e98f316d09194364b64ed379", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/address/time_zone.ts": "ffb85299cbfdc4f57aea24375a4399deda3b3657125f8aeb3797b3fe7c5c3e03", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/cell_phone/formats.ts": "5f935efb6f690258491b9b2cdc9d6225a14d6fbf94ca10c1ee48cb97b8a3f374", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/commerce/color.ts": "1263e4478589a9064c4371d3e7f6508e9118b88290e74ece14f1a770c6b0a5ac", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/commerce/department.ts": "223536d48533b48b78d44c81a2e291498bcde469af0fb47be2dc9388e9c8226a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/commerce/mod.ts": "59695866784d3ac860e0a0004e80a073ba4b3e73abc902038f7d9323d89f5743", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/commerce/product_name.ts": "df69db7762fa1d1aa66b88c7152281e9bce8053bd4556e47c899a646dc715046", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/adjective.ts": "d23140b5db5f24e0b0ae3f96082ec2f3ab1c93c64fd81c7cb56735aed5f5dad0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/bs_adjective.ts": "09d6a1e4f69a9d0cb2201e466c4dc34f5015ec2ca6a23c3c677b628d9d9e4162", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/bs_noun.ts": "4785c115a61871e98f1ee8e49ba9a8838e3b3558e03ee5b55f06ac1649bbcf2b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/bs_verb.ts": "fd1e13f2a72bd943e7b7dee64c690309f8272bc1d0693fd35c0e9e5e52306042", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/descriptor.ts": "a1e6eb947203261356f5547c3d4f1335463f303df0095d1e8933310e4019ad49", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/mod.ts": "6036d4a3d9f134b4c524d5e0178b2efa95017a79b9fc07020a69c0bb0e3b65aa", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/name.ts": "f63ad37862ff5a114d580775c6081279fd92dbf7037c5e54b3aa73728a0c3189", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/noun.ts": "bdb060145d285f5e10dc00b0deee103af00e81d615521f2d96798c031b9a1db5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/company/suffix.ts": "27ec987099fbfeb713f67b55b14384e53224c460bfb582127c9435c8823764b7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/internet/domain_suffix.ts": "5990c42122ac0f6397028676c8b8219798f691307515918732def7eff1793d32", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/internet/free_email.ts": "3be4e6b00658339a7c91df218f7ff9e7ff72f3d9ae4b93b64d438a5e11205cca", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/lorem/words.ts": "57430037bf92019be1d8df545fa03919842629049e9571b43b804912b7b46173", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/mod.ts": "43326de60335f8746be2a64ccd80680d11c0c0ac62b34019f6e40313b15489c7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/name/first_name.ts": "1505d7e60532bf540c3afa1e96b8efb8c42e83ba1b00c5c9720348f29868627c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/name/last_name.ts": "77382366dd6fdf2649f77a11f488b094d8a5429164813b31503ec69d9e8c4725", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/name/mod.ts": "992a9abeaed8fd91224ef1da139ab7496e30f58812c6bf61f2136bb0b873c14e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/name/name.ts": "85c8cb484b78813b10e3beae98c00968314e316de32b2f25619a0d279f80224d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/name/prefix.ts": "66444e0a960c353c19600c2804146b635e52762ea042be179c7557f274b533ea", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/name/suffix.ts": "fac0e3fc77a2f0ff43012b2fdb628f720cfaaeba2df44a3dde542e7f943a1c9d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/name/title.ts": "559710b470649cff5421b66b25f44cc162d797f83c46573102b19b93bf371d2c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/phone_number/formats.ts": "5de4b49aaa472ad5588ac3620bb7c7e840a06ec419e5e8a88f52f65738c7c328", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/team/creature.ts": "ac53b92456e413d4434486e713229f53bc958b923408a2feb51c0617e89a6730", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/team/mod.ts": "46b6bf273d984f0fad41ca41e04294e937917f4defba1b02416039039b6cf764", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/es_MX/team/name.ts": "238c13d406a290f41add0a99a61b880a672c9053c6a52790a0bf1c93d84b12a9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/building_number.ts": "aaca82aa849b2cd6e2d86b2b95583317e96418be059b81495e32af832d6b560d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/city_name.ts": "cc055b5d382c4497b1b6ab982865915c747a9128a839a73b3dbbdc0ab5e3c7d0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/city_prefix.ts": "b55e3785098d3df046f7050a83377558393c79278bed28614df672e2ba8bdf2d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/city_suffix.ts": "b55e3785098d3df046f7050a83377558393c79278bed28614df672e2ba8bdf2d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/default_country.ts": "13bbd344047fc1e5e26e7c8c4742de228e1677e568fa8d90693d9a707dcef308", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/mod.ts": "b4d1decaeeca47daa2b735bcf4a22c2b1ab01bab0d5b1078917f359477440843", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/postcode.ts": "684ec2181dd0adadb983e188a321d8d34a29cd9db1a67211a773d67957c402fa", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/secondary_address.ts": "46ea1a511328cde66f1637e81494993fc3ba75df2697e00d87c5f2e564305d0e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/state.ts": "91ad4232c0703bad47fe8ff06419b5ecac31562e6ff7f4b579c6533143279bbd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/street_address.ts": "5f160bb98aecc4089c0be2bb943bb8e708d71e8bb873700557bcbbd43030a565", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/street_name.ts": "edf5157cc8e8248fb1d187a86dcea8bcb74eb7cdae4325b5a12ce42f2b88ad61", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/street_prefix.ts": "96778166516d12acd839930e68c7fd22a303698490fb9e56a83089cf292e6e7a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/address/street_suffix.ts": "2a4bab10241189b419c5289d0fb8dfff963a492ada04028cd8c1a4125085ee8f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/mod.ts": "ee16bf72b44fc720a4dc44564cace7ea74e04f8aa92935a430917a49f13fc721", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/name/first_name.ts": "db36335ac23247f46f8d0efe3b8674e247a3ca76c47d525af12b0744809e34b8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/name/last_name.ts": "3cd55b6b9b2ca7fa31ead437e0eb2ea1f74a2c602c6e0e92601b6764c5d2d7a1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/name/mod.ts": "b4d7ba5c0e43851aa71f4205787550d7b19bc1a71e4bfe746fe039d507947269", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fa/name/prefix.ts": "b479d2fdf7e76af1eb932147afcce9fc19faa3a32dad7af30e11b8ac1331dc86", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/building_number.ts": "3bbcaa5893195c47843299cc44e250c78a4888177477f9f7639ce5a28dcda349", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/city_name.ts": "486b91da5f5c285e3dd933325680b84ad12d2c475f6e52bb4d082ef340379140", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/default_country.ts": "c5d529cdd8580bb670d59f4c13be403ede3e36d91efef8c8cc440d2623f37282", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/mod.ts": "cba339eb60f55fa06f9c8f54dd5e152e41d9a9103ef8f05595e9ab4577676080", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/postcode.ts": "061e0ec295a754bec2497bc3fbe0cf0aa6a7e1a1ad3b6b846bbbdf81191b7097", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/secondary_address.ts": "0b7d68120cbdb1e61b0f87be4bda8f32dddff4140160b0e57abaa4464ef0bef6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/state.ts": "bfc67b42c6b598076e4a76681528081682f1ee5cf2585efd24381a050882fa1d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/street_address.ts": "b59074f0d19ce82f3fa5dc987279c0a89b42e60bd9e437c5382eeaaf25c321aa", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/street_name.ts": "edf5157cc8e8248fb1d187a86dcea8bcb74eb7cdae4325b5a12ce42f2b88ad61", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/street_prefix.ts": "fe90d830d68366ae308d45e47cba67bc6a587c8b2d8230f5cff6600d887aeec5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/address/street_suffix.ts": "3e4667eed3c6ad06b76a99dcc955bc3d203dfee6579de88de9c8b1d324ed1679", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/adjective.ts": "f7ad0bdfb675f6a40701785eae81713b0462b90d8dcc11ac10063a39fded223c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/bs_adjective.ts": "2bad5f774e303e29fcbd4b5151247595479eb363d0e5b7e75c656ca25d584f44", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/bs_noun.ts": "f92df9db224763d3a59fc6efd702bc2ea341fc1233273bc34a8498544ff37bf8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/bs_verb.ts": "133dda7b4d222bd5ef8486e0d9168f6f602ea9898499b4945b19979bc62d569f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/descriptor.ts": "448c8a419f28805ccd751819309269d1b815ef9dfb94d98c691e7660b1086516", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/mod.ts": "3099c443709533eeb07735538fb19552e1ed25db3eb7ced69ef76441bf853042", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/name.ts": "da3a5e66f3ecd086335376e2d4036349c6bdf8cffe24bed7c336d2dbe7a55095", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/noun.ts": "6fe6f633bfbb61b51c0782a50fc76a8a6653d8e342d788bf0021f4375b5a5c75", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/company/suffix.ts": "9365573a15fa99044983afedea9635224ad93f05c3d9a86df01348f68294912e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/internet/domain_suffix.ts": "71db116769ed6e48d3aba64186280922720445225c15599b146d6d3e618e3599", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/internet/free_email.ts": "86f6a3734cc2c245827548ef2611948ed88fd5191b3de5dd28936e70b404fa2b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/mod.ts": "b43a113f9f72601e2abb56e40e16d599c8d668e5c9701c6ac20da656766f47eb", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/name/first_name.ts": "28ea50d02d71b19a3c32f47ae2e30ec379c5dc7ae8b9babc3a6fc3e1830ca84c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/name/last_name.ts": "b0dfe9334b4c9c2230edf9e8b2edd80eb7d581bfa159120a9a60b1cc8f5a6aba", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/name/mod.ts": "8e9d93c349d09d4ae89a6f4855107584e1734e4ed036fc068a1f1b866fee0f82", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/name/name.ts": "89157dc973538eb2db9c8ca36d9b3ff33315edabe84bd9bed84a28c2f0c04cbf", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/name/prefix.ts": "e4917888a5e8989e3fd455a3676b11b8cf72883a4d118f5394f45760da15334a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/name/title.ts": "b7de7bbe9f52b69b3bae9928dd016a998881a95a6f24b4a08f4192f17cfa8c8f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/phone_number/formats.ts": "d6dab97a41e005ae019b096c33d83d25eca3746dddc32fec9ea612514d8e9f9a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/address/default_country.ts": "57a5bf94d2a8e1a7c144c7f0a846c2c23c5e3be01f8645ce5032d08749bfb7e2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/address/mod.ts": "0c269018f4d4dd8c0dc513659636965dce48176a84d4b00cab7ec2a248d162e8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/address/postcode.ts": "6c2df1e0ca28e31eb59d09559f29d4d0a7de1d42f685b35143b4bbf8bac997bb", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/address/state.ts": "803017e71fb54c8470461210e03c0ca09d6cc9a592c9806f27aa25c667e6218a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/address/state_abbr.ts": "b1c63627b572b9266f2abd369f94404cdb412df48b503abf755f31c555702730", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/internet/domain_suffix.ts": "b5c510e46342bf1e28032bf36cd775d1e094d178d6de0be623a118eb280b6bc8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/internet/free_email.ts": "57e2667d137171dc541090ce24ff234fcfeeea9cd8e05021b7defd2d8a1e8b80", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/mod.ts": "21d6c87b053cb9c8c38e0e1ceb29d050bcc9a544046dae8e4b7e7b43701c30ee", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/phone_number/formats.ts": "c7d10f09e24cf4d2236c44f01160574ee7caef4bfce048e15a6de2df59c9c87b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CA/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/address/city_name.ts": "5624aeab30b316c12abab36d6ba5e7bd3b2fd890238f8542cfbcae6e7209ad59", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/address/country_code.ts": "c593d8606122c6f04d5c9e6d3be03aecffebbd7e8d74d8563822ed9fbcb88939", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/address/default_country.ts": "d9aee8680f720761d30bbe7d5197d781767e8625e37607ee8cc70edacc3e8fb5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/address/mod.ts": "739fb4ead7efded042ba7e476ea45fb79b194948b8ee1f899c7209aa2a660966", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/address/postcode.ts": "69c7b1b1f8efcc2e2c0267f23773b4e885c3ea8397f6489b4769aae5f9f1dee8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/address/state.ts": "b6c551ed74182b0a682486caec8911d26ce9ba6916e8147ba51a9288161db463", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/internet/domain_suffix.ts": "7d1e6ad5a17e0d8b367da49db092ca7a4ad874a16063028caebd9c6ab49b8fa9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/mod.ts": "ded8b5e2fcafcf0f3b06e08b194f921ae1e3b0cfe696b917daa1a65ba76c6cbe", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/phone_number/formats.ts": "456c91f9d602cfe5ceb3bf0eea91c50eb901ce8e661f2ef6d18271a345533565", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/fr_CH/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/building_number.ts": "a565355a29f77429d5a433464cd3659607530cb86a2a32c33bba48b74c30bd48", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/city.ts": "781650c03d9d1252121e9091dee2f43897e55717762aaa55a761b70296279297", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/city_name.ts": "6b985bb6eea45f5912fb95f3f8ae1ab13254c77b8b40ddb2c9cfa8bfa0c0692c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/city_prefix.ts": "abb2c3f38f27ab34aa1760f697f2726b761eb0702886fc2d4b384810f938ff4a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/city_suffix.ts": "1ae6413d49b14f0fdf17762900b5f307aff71ef08c86ebe776d9b7e5cd4940bd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/country.ts": "9236dcf0d26b6147baf761344ec14561935de4145912a0a03043c648358c9917", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/default_country.ts": "7a15765e66aaeb78e89ef6e1442925d46c828dad54a631ad448484a091a584cf", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/mod.ts": "2b2fbb2193800b5f495eb0962d4c42345b53042166bdfb8d5f922e2305e7a408", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/postcode.ts": "31f3e421cade75b688f607314b3eb57ac42687af774c788cf70096cafa5e600b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/secondary_address.ts": "50d3509950fb84c53cb9127a35022794477875e963ac4789207d67b93959a761", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/street_name.ts": "1d5fa833b8806f61f41bc68b1f4cd8ad584f96d99d10baf85506599bae0c9ba8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/street_suffix.ts": "4262e7971700802cb46f9db058419c771453cbb3704205c0c5d093571e697b99", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/address/street_title.ts": "49dcd5f4c44262e9066d306f6b3d3861b9eba7317e69d99cd507c0e675f791c5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/cell_phone/formats.ts": "06e79bd734c5adc5593970a7a9c954c214c657ba34796edf900e2a195c7f1e06", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/company/mod.ts": "bf5ff8a8bbd8137bdd6b0f0df25471a4e32dae61c906cd0d9c8a69c1c88e7a4d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/company/name.ts": "79480e41e6b7ed8b9f6c7a0d404c4127079ebd5f7999ba61cf47d6e12d016fc0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/company/prefix.ts": "ee6bd6d78d94a2ca8552ffdf94599d1208dfac9a63d2e5ed31fe7e8dd9a97adc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/company/suffix.ts": "a7c99342100aa8a11eb374683542172a2a1018a5b462086434477aab64e73541", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/internet/domain_suffix.ts": "a22f6591249b9a5ff67a24c2e9862a1cb191f4858b70e6dcbb25fdd53e33d2aa", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/internet/free_email.ts": "4ec4051466aae815455e50347c67c153a0d1030f197b35507669baab6df36b6a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/mod.ts": "e02c7fec4ac7e52373934070a41999a1be27f2732249766f398cab32d4c0bc23", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/name/first_name.ts": "9ee9d74f6e364ea82b413048b1583a2c247452c72dea440c14a8a59db73d1f0e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/name/last_name.ts": "11301f67f6fb007b59a586ce843ac7ffa0a548fa07cd8ac10a4c13b63a691d7e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/name/mod.ts": "8e9d93c349d09d4ae89a6f4855107584e1734e4ed036fc068a1f1b866fee0f82", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/name/name.ts": "a2dbe9977eee053eaae1c005cffc15fd7cb50e3bfe09b4b6077901e21cecbc4e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/name/prefix.ts": "edc446bf0a1d62e4698d12d312e23a47ce5008b34d5dbc788dc5062a95ba2896", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/name/title.ts": "01ee0bc94373893f23a640d174246aac98c6f63f0635144418eea2eb35529696", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/phone_number/formats.ts": "2d29308cfd29d448574fd70bb220c8f7c29ef05c05bc328ee1365e6f739d10b0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ge/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/building_number.ts": "aaca82aa849b2cd6e2d86b2b95583317e96418be059b81495e32af832d6b560d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/city_name.ts": "a967311a2d113a1943eab1be8e6ad16c032117547089408e8f374c6e93969e38", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/default_country.ts": "bbef250c8b5888f73f2c62c08beea33ca26b28d52aeb2335fab4e57210681036", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/mod.ts": "43e2bce43222934ed6c71d4a84c46be984c6e554171e5832a14916d7534e4f54", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/postcode.ts": "061e0ec295a754bec2497bc3fbe0cf0aa6a7e1a1ad3b6b846bbbdf81191b7097", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/state.ts": "e9c8b34c2f8d00eca3cd17fa7f4cddc5f1de08496be6cfa2bb15965785ed6009", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/street_address.ts": "3e03e4117ae17e0e33f0513eb3db0163247a15e760c3990d0d96b073d4feb1c8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/street_name.ts": "705810cab3901d42bcd1ebcaf8d6efa48489c416fa0e3c1b0c241f99f9547262", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/address/street_prefix.ts": "0f89dad3ac1929f0e0b4979c663c0150a86d3f33bc804d475089fa286f8ae7e2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/company/mod.ts": "bf5ff8a8bbd8137bdd6b0f0df25471a4e32dae61c906cd0d9c8a69c1c88e7a4d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/company/name.ts": "7880cc0882d6b49a2a69271280cb52754452d65257206cf08a6896d011768454", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/company/prefix.ts": "4d1e9c3c357736a9ef0637325523a6aa63eef049575ecfeeddb7b1256db574ed", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/company/suffix.ts": "d75b1f4aef9639153d43e3df9cbc5ffb55ac1addf27a15fcbbcbe523c453e315", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/date/mod.ts": "c61d7c18e3791003fcc1ee425d5e0e406878fdef9f10f3fa75fbe95f40579f8e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/date/month.ts": "ccdde6f4dd012dec2ef043c9e1e1a4df6bb7f786b679c20fe106171cd8b7cd12", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/date/weekday.ts": "5e80c2958b55c4f4624da6691e54a143f5f8e1315a158ec1ee9c380544100cfb", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/internet/domain_suffix.ts": "8c25542c1691bb0faaf76df655a13af82734499fbf53ad0447e81f98fa111afd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/internet/free_email.ts": "a08b448b0a83315fd51c29d6fc5beb511a833485cb64a88ac7db4f40dc95f679", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/mod.ts": "84092a044f037d898733906cf2edbcc8f3b70409c765f411a985442e9e6a184f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/name/female_first_name.ts": "f4609910f89b3864c5a2d2a4aca4d10e07a06a4c06a09566741d107a34ee7cd1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/name/female_last_name.ts": "093a2bbabafb363c87c3f4b7606e3c0dd811dabef19c6d67dd6030aba16062e0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/name/male_first_name.ts": "3898ab31978e59dcaf168e37cf5e1393bad6258a55f5c56fa6d3fa31c644642c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/name/male_last_name.ts": "310e3726f0b1632bc9e614b8af909a7ed111f47c28bbcd14111498d77f980bd9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/name/mod.ts": "f93675814a7ea84f0423af6521c50b4bc687eb738be3e4e15b93fe4451102813", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/name/name.ts": "947da03c0d2cfa50b0c7bf608e17a876f6105768be94ed0fced006b18979d446", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/name/prefix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/name/suffix.ts": "dd3c5acf28a6f2df1cd2f97f32be5ec13077d196299805080e3c8972bbb85638", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/phone_number/formats.ts": "543019ac4f0d25fb1d9e5d936329dc32eaa9d377cf1e039ec9ae5b20369c5df7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/id_ID/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/building_number.ts": "a565355a29f77429d5a433464cd3659607530cb86a2a32c33bba48b74c30bd48", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/city.ts": "20d170a21e9effc20bb5a2b9823be473fac6418c580e732d4945d7889f204c59", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/city_prefix.ts": "1ca4bdb70d087fb6585e9c8de483377e6a70f375820c74dbe0cdd13db053a7f4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/city_suffix.ts": "eeb1756dcf20dd976ae8fbcfcc3ddae42b528eaf70251f71b0e7441185b58a52", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/country.ts": "5d7676eb712307d3c0dabdb59f71d45af59b46b9d10c8f57c4e78e5ae7dbd54a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/default_country.ts": "ba2c784fb953782278284476e48ed8cc54c91cba25f20685744d465120a54696", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/mod.ts": "6ccc3d8847189d1566ed078dc719a6eeb785519a269ae727a436fb4f08efdf6a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/postcode.ts": "061e0ec295a754bec2497bc3fbe0cf0aa6a7e1a1ad3b6b846bbbdf81191b7097", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/secondary_address.ts": "1e7e78461b18274341d8427f23b2166c703677457f62104fbf231aeb8f874f54", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/state.ts": "73e70d5584af98d957c93ffce36fea26ff8d4d6226941f515ad26296b6dd6329", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/state_abbr.ts": "0a2a0b758ba65f8d4b0fa2bb81fe46a7d6ff493e9b371690563d15160e7b9ab7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/street_address.ts": "beffb6fe7355361e8a04437a5f0d55d7b1d42fc6eb1c17eaff06b2db0a04196f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/street_name.ts": "33b3abf231ad900b91a6d8e5e14dc08ff31743a8147ea25eafc0052d745413fc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/address/street_suffix.ts": "ef1eedea3668db65199ef4e7c9d6a6bf4da91586338d79397aaca1902a8fd909", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/adjective.ts": "f94e27972a83bfc216a19c57ca0240bf1e6a403967f68f4a88647d155508a732", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/bs_adjective.ts": "eb0dc1531794c448939dd13375a4ba10606df767bfb529735e99b0292f6a92e4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/bs_noun.ts": "53e2ff59255ed84823ffa38f7c4631bb6af4895b09bce4df1fd61a30e9d3f8f7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/bs_verb.ts": "4216c26bbabd4063823cbe452b6ef2c6f229309e458c77eeb2f2686250bad4db", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/descriptor.ts": "91d8ddb6f7b889884c88fd214fa2daf7c846a0086cce9ed8a98dbeb3b013fccd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/mod.ts": "bfcf70347bdf3c4ac01c7ac798318962a56763397f503a62c6e7a124a21402a7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/name.ts": "8a28cae5a29bd7d80a9702c0bbfb8e7e1cdc9ed73528f9604531825e983a4efd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/noun.ts": "902c481c518923a491fde7401eb9c1b7b68d6f5bcbb633d86970d5889275a1d4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/company/suffix.ts": "a833895e41a67c31ca7dcb8806ce94c6f31b2966af4c0960de2700f85e6a90d4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/internet/domain_suffix.ts": "eb246cabbb7ee4097e93802956dce8afbba3b924e9c222e96094f9f4644255c5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/internet/free_email.ts": "4e1e360cb79e2cfa1e1667887a00f071c9159c2d1f0c243f2b94b646cdd4a4b1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/mod.ts": "fbaae332d3fbc23ddc76aa6d05e8a23c89a7a49e25a4b418a94fd5eeff181a8f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/name/first_name.ts": "a8e155ee3d936ddcd5839fcc9381e8f04567e88c23291053d30dce0113ab956e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/name/last_name.ts": "7264e649ee0b40ff9e68d6ff350f42993c215f49e7e1c0a1121391fbee0de81b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/name/mod.ts": "b0888e78ca62a39189d4f4c6c2c8ba254c53c3c7f71f05ae469331777bc9d525", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/name/name.ts": "a2dbe9977eee053eaae1c005cffc15fd7cb50e3bfe09b4b6077901e21cecbc4e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/name/prefix.ts": "3c4b8d535276ed13f7b1b8f78c6a2930d0e861d37732577d05adf8edfd0ad2b9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/name/suffix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/phone_number/formats.ts": "ed251b7afcec2c0df9bfd2b4affb02197efb4fc833ee266aae8b692018d26f3a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/it/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/address/city.ts": "ad2cc21acc814818a6e973548a94f797dffc852d312e7e3080224cad8cc25cfb", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/address/city_prefix.ts": "d309f6c25550e8d75716fadda27b6663efee9a1d9cc047134521701a0eadfbb1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/address/city_suffix.ts": "98c87bb9d89aa252d54a8ad9243a2c919cc0ec67f52ecf35dec7f15f18fceec4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/address/mod.ts": "123856962aa34c455e2e88dd2a61054b6ec0cc01f71b1e070f82ee1a3952548c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/address/postcode.ts": "5bd9055b2e9076aa279ea2d5132f7ac8fb4fb33159c842d2a0dbaf87d7c738dc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/address/state.ts": "a041169ddc0cbd9e04a8e7311ffe7f7086501666e69940404d70c831f37e2af7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/address/state_abbr.ts": "1c4e5d69a2a756f369cb141702a479e89456f717c82e0c3c7f36d41f71070ebd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/address/street_name.ts": "1b7c3bedcffbf6e69b23bfdf2a81f172d83aa8eaf96f9016c5d823917ca58318", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/cell_phone/formats.ts": "a25baf92ccafac308a7e8cc99092baaa53ad6f478f0ba2d6b211993dc517b26a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/mod.ts": "3d77c67f0224fbe3a006f2d9e7ec49460e186b3b9cde0a6184c0d1a02575da02", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/name/first_name.ts": "5dad896f74d7e4ea75ff79ab18ba6b584e1f4485371ce251ceec51881120a925", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/name/last_name.ts": "76eb36465c8a3d8d538dc5dd6965126f9fdbe8b43f996b5263c2e1bc5ce64823", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/name/mod.ts": "f693a10528cbf16c21bc7b1a0762f5fe8e6069d4ea3af9143365cf2bae44210a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/name/name.ts": "60035fcd79e45945d523b0754d1beb43fa0fc910b6924322133acb29e3ae32e5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/phone_number/formats.ts": "28de27fb6653ee92a07fe3fa900c20b4efc36b346486a857451062a097152230", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ja/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/city.ts": "fa4862cb1d231a0c3526178cdc2763827acb77a1453975a97adad18a30d0a48b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/city_name.ts": "01bc14756d461f8346af83e967d03bdf7b6cbef5aae92d631bbc615ae5fe9297", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/city_suffix.ts": "7b13f2cad2fc0887bd986cd942caa1490f9f8e72da1985a59680885c20b99e34", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/mod.ts": "73bd5f608a2e9c4e63adc003b54e52f2878cbabef352c8bc7a91377c0cb33415", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/postcode.ts": "541c38e46ebf50480b202e74ddb0ca5fa675b51db6d4bdfda1b6438bfb0c0898", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/state.ts": "b08d1f987c0d9adf40a36471cbe7592db7b89bf76384ecc41832a7031ccac3a0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/state_abbr.ts": "b08d1f987c0d9adf40a36471cbe7592db7b89bf76384ecc41832a7031ccac3a0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/street_name.ts": "dd8f3629f0ab77c21558aa02fb78ce354ab51d7544c4cb15e3735d62282dd28d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/street_root.ts": "ca044e8a76c79bd185ff7349e433754d56a3f97f66b705c5d73e9a1e808e938c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/address/street_suffix.ts": "25dfe80b22f0ebafca08c0548fb7c5d4e264b5955c198f5760b87a68fe70b101", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/company/mod.ts": "685345de13526caa5e1cc082d1025b800cb309404923e0025d6eade2be844f7b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/company/name.ts": "5829238f752816aca30c5b4b67d076a2f6a950bdf869c9a6253cb022f48ace30", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/company/prefix.ts": "8f228599c9e2b9ca48c7f1b08e4dff5b61bf7bcb0cd7bf91584c1501d9d06c98", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/company/suffix.ts": "7edfd0c07d24e51dab122ee7b9eede6c6676933c9864e8e3e3eab2cdd48e2273", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/internet/domain_suffix.ts": "23b1b78c298677fb0b34518375514fa6356d5cd2efb983e56ccf6c6da8b646bf", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/internet/free_email.ts": "ad00f3448ec7c5f783601248efaaaec32bb4eff90d6389d2ec0f5fa115d6e654", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/lorem/words.ts": "c673ab3362b9ff032253405c79c087e96dd6f2edc10d96f93c6763807e8d4c2a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/mod.ts": "bfca3564c516661ba2f77910120788c0278dfefafaa3ddd297846a19746469e9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/name/first_name.ts": "22c79e8db74a4426d34e06456b7c3b6f49c1b6ea9dca045e4af159c837f0b3bf", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/name/last_name.ts": "fc8ac39d24637ad03c4c78ed1c01a48899195b1fca048833414e42a33430bf0f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/name/mod.ts": "f693a10528cbf16c21bc7b1a0762f5fe8e6069d4ea3af9143365cf2bae44210a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/name/name.ts": "60035fcd79e45945d523b0754d1beb43fa0fc910b6924322133acb29e3ae32e5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/phone_number/formats.ts": "5a77c28d90bd612c3e2c9e9d621f29dfa4535d0da80933f63108a9e596246d35", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ko/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/building_number.ts": "c56053b7f52be9053b2c59cb4b1453fd42dd425dfa79944dce5b625b29b5b59f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/city.ts": "62a0a2087ca7d03d82bd5510716b0e1945b1b4fa3d1c6f7679dc65ada0ed625c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/city_root.ts": "f5256670fea50f401dd883e6e3acce6cc18d6273264cc46f299a714f98e231ab", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/city_suffix.ts": "ecc1444ea404f4cd7b4ad66ecb344f08ca60414787eaf54af50df21d743a1e64", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/common_street_suffix.ts": "6fdb6545426467b169a9a91872151cffc1abfe289cffb8fc7b66672c34a4ee6f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/default_country.ts": "09d7baaacc1284c866d865f62b082ae819bbd9be6cd7b484e429047ea5318833", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/mod.ts": "009d68234495df0889ec88ed6458286c7b86a2dfacb4cd5afdca5934cba69a51", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/postcode.ts": "c364d1ec2cd8e633509a05bf0bccd2310543f8b2af7c1c1cae8d7fedc450bebf", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/secondary_address.ts": "219675ba3658bc89d23a6ad82c57c0d08bce5ddfcd7adafc469ed5b271266f4e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/state.ts": "b55e3785098d3df046f7050a83377558393c79278bed28614df672e2ba8bdf2d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/street_name.ts": "30c7603d2e0f0822541bd85dedb1b1d891374cbead328d898c4c9d55e6697d5b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/street_prefix.ts": "b61d61572405481eeeb2356c6578e63c9596050da93934b9a794872e0a3cd60d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/street_root.ts": "c6846fa1e11c3aaeb2292e7292c40e951491d506994b9f7578816e99e6d0af8f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/address/street_suffix.ts": "046d9c169711074ca810ca6e7e2542afad7ad4fc63e472a7e428d45a4a2224be", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/company/mod.ts": "59429c1943da64620329a348742a0602a8544ff38e33fd1671e7c25d3ad43708", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/company/name.ts": "cb4ae6023a4683585bf4f3b8cbc10a8f61993ccf03e645637b924922248a2838", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/company/suffix.ts": "34807cfaf2494e1c5a75fa2153d27e8fb0638c66bfe9872c1a8ff84aef513b97", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/internet/domain_suffix.ts": "ba2cf632e0aec4019cb58e5c5cade520718e13ad065eca2176722534d8e636dc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/mod.ts": "77afec9f52f8146ff1eb8ba8df6db659b5aff2c8e942f4e2aa95fec7b6f4f310", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/name/feminine_name.ts": "2dc69e8685750f92afb6072b130e056555ea1129c6d6065d134acde54dfef96a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/name/first_name.ts": "141ceb4d184c4266a04259987d98a84842409d0eb6d4c31e08c12c9f38a63949", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/name/last_name.ts": "613caecffc36e5ad6ba0f4b387b7e63a7f4ddfbc1f8ab678021bd8398529b722", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/name/masculine_name.ts": "a2b67dd0dd8d5cc692856c374a10f0fbcf0bd789c353e55e825f3613451d3877", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/name/mod.ts": "f6ed053646a8db0a170201b6fb2895897cb1d0dab7e0001eb45ffff79d9f9805", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/name/name.ts": "75be644ce9ca853bb9fecc716e7d21e7174fe82ddc6bc9ff230422e9084f7cc4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/name/prefix.ts": "5aa63e24a521cea5860e152c3bbf36ed75df566ec3485bbe08e6c3ae0b6c1dc3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/name/suffix.ts": "a99d0d997db0060da3b27835c3eec0269b173617be01f21d7c94894f86de46a6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/phone_number/formats.ts": "4bff3a591bb5f65ff73a2c47289467a7ccb576b4183c36cb784fc6f338b5ad34", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nb_NO/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/address/city.ts": "00ca7ac696e0a8705af93f1de1b479a89166f222adf7c3673d92340ceacbeb1d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/address/default_country.ts": "a593e0ffaef5c6292ce889c4956df60f973e6ce8c46063d4a45efc7015c984b2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/address/mod.ts": "2b721f3994b555ecdc94f126a333dc44b0e95cc718894b52e1f4addfe4c5874f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/address/postcode.ts": "cafd2492928d01d7ae5958952d5b2ba75e4ba596de29d16a661ed59b15dc1ba7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/address/state.ts": "3b270b8d1cacd5c7928a8da53f3b9e4542572003d2ea10f8350c6ff96b81d535", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/company/mod.ts": "20ac3010aee7c25a2fc994580e0f4640717c6444e7d26e3e486182254f23a239", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/company/suffix.ts": "5816ba6f2411d93d007a82a752624038ed46733bc5617cf6e4d45fad05ca2b8e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/internet/domain_suffix.ts": "d208e9f9d3b62f5e7c91f75ba75f452245089ccdc9176563a2f07f35627be6a8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/internet/free_email.ts": "80a522e58f99cbfecaae4b196c677268bd8036e5605fcda5deb167579481eb2e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/mod.ts": "418d40eb18bc72d718e1c08016fea9c1ca83888a924ded18fdc8cec57102b92b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/name/first_name.ts": "fdaf016684b2cfbdccc7d20ec84d4e6db132c9c93eb82d454db45c1d4d9e90f7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/name/last_name.ts": "f2d92610d09bad69c06653283eb6f99b2d57ea18f3dcafb9a293e3095db5aa6d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/name/mod.ts": "4f951778555b5fa8fb8552c0bf955655e90e408c63a6d9465d7a83c21380b564", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/phone_number/formats.ts": "251d9e6c1868ece391999076bc416016aac6570f0e7452f4a481da523a4bf830", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nep/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/building_number.ts": "6d727cef50660c2bf7a04c879421d46924940b20db7c4a2846095db964e119d6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/city.ts": "22d2aaf5c3f53024b57a0c4ff15a2906e895eda7d2fb2c5365c377b33dd1c1b7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/city_prefix.ts": "466ee346e68e94fe6e54054d04ff88cad7ee14bd21da06f556eb0911d2101881", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/city_suffix.ts": "56f7350387bffe0434e5e7da134038e72837c7a4e02b9a461de427115a8356f2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/country.ts": "6029a0d839c3cf949bc1287b251d38f4d72e2f06a0121194433b9cc700913043", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/default_country.ts": "8e0d747b77ae05fd5ca96c69d3903d1704e7bb9306e6bda9495a2e9dd285b1e7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/mod.ts": "c606ab1987c2ff12e22f3dda80629a529d7d7b7be185d817317bae5dc7386b22", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/postcode.ts": "fd43b0ef451f5b67cf18cf123040c833988c7d98f061ebfa1e286d7ce96fad9f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/secondary_address.ts": "555b121d2e6fd7bc3db969c6e269d9e5aa641877e74ec4bddcd72ef9cff11048", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/state.ts": "4ecdd71bd3fe445b5df9935cfbbddc7d99d06c5f19ae131fdc7ecb9a8fe16177", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/street_name.ts": "1b7c3bedcffbf6e69b23bfdf2a81f172d83aa8eaf96f9016c5d823917ca58318", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/address/street_suffix.ts": "b583b92d81c3de56a9aa8785ac7bef9ea5077cd131af9e93f388ede729cc925e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/company/mod.ts": "20ac3010aee7c25a2fc994580e0f4640717c6444e7d26e3e486182254f23a239", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/company/suffix.ts": "87ad17126fa257b7d405cfcdaedf8e039fefb92c4c44c4e624a2726655d20081", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/internet/domain_suffix.ts": "a1a9bdb5121c63eaff3481cea3590113908d1c9712168f94d4023c63c664fa5e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/internet/free_email.ts": "95deb3f400012a03c0fbfba6e796c4228d5b1f9af6b512b01af7fe4fb0e439b4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/mod.ts": "6239e7f60b8abbff65994c637bb06c693700d8c1862f3b180c5a57d202b8e6e5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/name/first_name.ts": "3c15250c6ef7c8db9219298aef880ea2a0560bd96fd30d5aaa6cc8fec6c9a06c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/name/last_name.ts": "cb3ce386e1e94b0a741a118ffb6d4c6f73842331ad1dacd4cb6eef39453343ad", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/name/mod.ts": "471cd3847c2e9c8f2ddc789b02238f23ee47f032389e9f21209ed869428f4eca", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/name/name.ts": "9e62e3d654ff6b7d5907ab821e6ea2d684064228770a7d270b81ed7b81d56d47", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/name/prefix.ts": "16014a332fde9b07777377b091ffc8d0670fd75429e48566ee95da1b205c2a62", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/name/suffix.ts": "a99d0d997db0060da3b27835c3eec0269b173617be01f21d7c94894f86de46a6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/name/tussenvoegsel.ts": "01c5d256d1e0ff48090de6bafd2605153c47cf34fb53e1951cbe5169adc78eac", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/phone_number/formats.ts": "ef5b486144cc999176df7e48d086fd23a3767ba5f74ddaca96ca7352d4802073", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/building_number.ts": "8160bafc5116bf0c13aec782218d4d4ec8d0816cdfda18cd4c47805d304f4bc6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/city.ts": "8de357fdeed89df1cce0ccfa650c5c96fcbae1387d66d86ae5f0a2dad15d3507", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/city_prefix.ts": "89511155ef72b74ca6a5f07078e3e36e1db1b2a42a10c5488b1de6e11fa2c6d7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/city_suffix.ts": "191652273af105f3faf05419baa9605804bf43e3e7d53130764aac44202bfd8b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/default_country.ts": "1e871c7f287a020799225152b8b210080dbfe01983e6a49d046d3942d98483bb", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/mod.ts": "82c4ecb6661269ec4e6770d975089ebd21e5c8ebfb1ad178bab993c83561e99e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/postcode.ts": "e0fa4cd27b4f833a2ad47c17115ebd0bb2999e90865e2b8386e0a7e0194f5317", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/secondary_address.ts": "22d47453dd875129a177d38954ba0c0720fad5e4a7016bdcd626b39aa218b11f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/state.ts": "fb3e68ca4481d93d94e8078346c5e1168d8954f1f7e619ab0c1d890eece1e4bc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/state_abbr.ts": "d1ef75208af4175658281bcea03536deca32980a9172b6ebbabd2551e0677da6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/street_name.ts": "1b7c3bedcffbf6e69b23bfdf2a81f172d83aa8eaf96f9016c5d823917ca58318", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/address/street_suffix.ts": "d00cd93c3d6d6fc2e3702c96cee605491f2216f3b4d3242f210aa837a0966819", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/company/mod.ts": "20ac3010aee7c25a2fc994580e0f4640717c6444e7d26e3e486182254f23a239", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/company/suffix.ts": "a6c7476cdbb670d6240ec5f0b1d543d470f67c2c8a84ae67c20f94d685285ea9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/internet/domain_suffix.ts": "7d699d1b2e78fbe85fae5c7c2efe07a0afef80fbae136d7715600d7561b86fdd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/internet/free_email.ts": "11ffeff50e54109d5ad74488d12419bcb6865477b8c7df3d194bee8990298e14", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/mod.ts": "c6ceb8d66ea8bfb03a7036ff953ea60b0246148477618fde798f976db44d506a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/name/first_name.ts": "a8e3f7eae788d5e76e03890ef06454d02325444da536dcb0c9cb15260cdd6a0f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/name/last_name.ts": "dc5caf3e75226cf0eea8f65702f70257292f98a1a3c026cce98f204fba5a7094", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/name/mod.ts": "b0888e78ca62a39189d4f4c6c2c8ba254c53c3c7f71f05ae469331777bc9d525", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/name/name.ts": "74b9a8e93ada436ae30e7531993b245cafdae89d1236e449846b72c2a14c339d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/name/prefix.ts": "bd9105988f4317bd98e16edf6e7fe4c3c6da23cf937ed47ce8badbed127ad0fa", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/name/suffix.ts": "b4a8fcfa329d56a9f48e526197bb0a21484c3d5c7e5ede0072d5b7b5206a4c05", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/phone_number/formats.ts": "4f2edf875ca4b05325baf1e1d76fe118adc81a0f1e817a767b5ceb2a57d318a1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/nl_BE/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/building_number.ts": "1eed25d6937aa63676fe04b9a2fda42df1dc2d2b04b28beda45f4dab2410413f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/city_name.ts": "5bc87106e883408725dbf0c0d08b5d873cf16a12b6e4d7f2ef5be545a5f34e91", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/country.ts": "0309755e189035ec6a70dd9c08d8a83006dd1ef5d66f909442402dd976e541bd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/default_country.ts": "040bccf72e3e6c24c56170c396eb2a7d6b32ff7e9f1b23a427bf6d095c759f7a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/mod.ts": "18cdc6b33beb058bac9a7564da9f975812468bf95166bd799546becc71e28d4d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/postcode.ts": "361ad809eadbd279ed83c09dfd45e1001c3b85c07e83d872a4fa23619d3c39b4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/secondary_address.ts": "9451a74fea0bc0ca76a4d9aead9ecf01a6da7eaaa072cd61496d441a1337f9c1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/state.ts": "87f6e06680bbcdc414e03ffce363048bd8dc2db823ef65f4181eb1defd371403", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/state_abbr.ts": "fd0d7006cd83813d11ae6818d3578fa1eed0edf676580f18e764185dab5da24b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/street_name.ts": "02f67b36cdfce657ace0d6fd4e3957313c13470dd4d35031f1f953c4bd4b5bcb", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/address/street_prefix.ts": "9577cc15b63068014bbaaac982b86becbe24d0967d67067dc8ec2b619ffc46b8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/cell_phone/formats.ts": "565a33a90a44198ad5af8b4e09092681023e3d3cac7503eddadbc8a71b372459", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/adjetive.ts": "f7ad0bdfb675f6a40701785eae81713b0462b90d8dcc11ac10063a39fded223c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/bs_adjective.ts": "2bad5f774e303e29fcbd4b5151247595479eb363d0e5b7e75c656ca25d584f44", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/bs_noun.ts": "f92df9db224763d3a59fc6efd702bc2ea341fc1233273bc34a8498544ff37bf8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/bs_verb.ts": "133dda7b4d222bd5ef8486e0d9168f6f602ea9898499b4945b19979bc62d569f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/descriptor.ts": "448c8a419f28805ccd751819309269d1b815ef9dfb94d98c691e7660b1086516", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/mod.ts": "ce6ab7fc0e6f04f007b26d5eac0c2c0bceb695028b48a0ac1a4d1820f31863ab", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/name.ts": "518a52bc2801a0fa590c69caf5c0371a42e6e0eb6af796a064f283fe86c0fb7f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/noun.ts": "6fe6f633bfbb61b51c0782a50fc76a8a6653d8e342d788bf0021f4375b5a5c75", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/company/suffix.ts": "dc4211e31463f9dfcbf590b2f5517659ce90c9fa43e5d10f34bfc77e6d16e3a9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/internet/domain_suffix.ts": "c783ceb06b8fc1d17bb059bba47b4ca21c50ae023798bdefea48cf84e63bf031", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/internet/free_email.ts": "95deb3f400012a03c0fbfba6e796c4228d5b1f9af6b512b01af7fe4fb0e439b4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/mod.ts": "d3fb7c7ced967f364da169005b7ce64ec865a9f27b492e27a7b5b5834f88e916", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/name/first_name.ts": "8286a04dce5b0ac14c98bacc9d187e0f399a60af27a16eeec3143073623d5d57", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/name/last_name.ts": "f2a351462764eeb0025452e488a79fd88b3d6b70d069b8df4f43e7b5cad235b1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/name/mod.ts": "8e9d93c349d09d4ae89a6f4855107584e1734e4ed036fc068a1f1b866fee0f82", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/name/name.ts": "a2dbe9977eee053eaae1c005cffc15fd7cb50e3bfe09b4b6077901e21cecbc4e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/name/prefix.ts": "b6403f175ad5d0b3176a08e1ef2658801aab61770b6bc963e84ac1abf118124c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/name/title.ts": "1f3a839a9cb050ce27963de21c5c4ed53a00dda32b7bd9b3812618eb424dac0a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/phone_number/formats.ts": "c3e395e3da3b2382f8b45d861f28550c956650e2e0ab2b3a741c93b44ea246f7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pl/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/building_number.ts": "1eed25d6937aa63676fe04b9a2fda42df1dc2d2b04b28beda45f4dab2410413f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/city_prefix.ts": "57fac5b51b1789bfe4e22e9fce4960dc2598c2568b1249b367d99d7a25e836fb", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/city_suffix.ts": "e95cdaf4c78b0b6d565ba15f22b918f32a5eaf46f35a66ddacfd85e3fe32938e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/country.ts": "bfc374b6cc3d38f698d725b39d896baad5deaf3c55b62fe3d1261e30ef8fe009", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/default_country.ts": "9d5314da4c1c15dc78e76fea13fcdc0006cb141698eb8df0a387f3f001c71d0c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/mod.ts": "842b0cc9beabbe48a69469ed04d790f074ea219c39468658845aebe036b0beb1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/postcode.ts": "1c485d927a79f1e8da42ba204856cbe43b18ec8f8e4837226786ee0760b0866b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/secondary_address.ts": "71603c56bdf38c28c65f6f8683de72a27b004d7830aa74112fd0dd1554f79e0d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/state.ts": "cbe4cbdd265affc61940379627dff7c37c4651e97ef0e5876fc250143c5ef463", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/state_abbr.ts": "e7f988bba645d7c0c33879fcf2fb70caf96270ed3b9d1aa6f32f5272ded96569", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/address/street_suffix.ts": "a3b72be042cb6217f6e6cd751e92da9991febf6f41f13ff3e8a849609af93929", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/company/mod.ts": "59429c1943da64620329a348742a0602a8544ff38e33fd1671e7c25d3ad43708", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/company/name.ts": "dc549f989340145fc45a7cf7dcb5ef4db2cfff280596a939b2371e7753a87a4f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/company/suffix.ts": "447d7a4fc208bfd7990d79bd76e061936f61741c1a220f845c05b660134dffa0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/internet/domain_suffix.ts": "185b7f68c583bffa5073f31559a15f0d84eb1f86c7906bc80711f55ea1d10cdb", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/internet/free_email.ts": "195b11f8752cd912e64aa65b7ab3fcfc65ce367c7b22c7f2f2533376cad8cd30", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/mod.ts": "bad3ebb81dd51814f1be73fc02a5327b2150ce55d2918b68c47441415b0584c5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/name/first_name.ts": "0882f403695b3cf7be64ff0e11b4559493268b32738da6ab29abd05a6d7d51e5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/name/last_name.ts": "7949186159487ec8ad0e264d9dec0429742d4e79bcf2bb009870675fc7c19c22", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/name/mod.ts": "3378870a32caf78b531c2c8306620288fa66dee6951d41f4addfbfa16af68c13", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/name/prefix.ts": "1554f4a45b7a02267824e0b029409d50f8499b5b8ea5d7277df54b0012b3b52a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/name/suffix.ts": "8b3e90660ddb576758eb75bae6f5fdb397eb2846ed0d33d9e700751ff193999f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/phone_number/formats.ts": "0b11844a1f87104a7f417a8924a1bafbd49874c50f730e8c46a11367a8ae158c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_BR/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/building_number.ts": "3bbcaa5893195c47843299cc44e250c78a4888177477f9f7639ce5a28dcda349", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/city_name.ts": "e5215356fa05f27fa30b32f747d1a601a76fa908fc348f0208f376a4975459d8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/city_prefix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/city_suffix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/country.ts": "93477cfcb293a5447a57cb9f9df140094fe82b1b276c056acd4e4a49a5e5c07f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/default_country.ts": "5b8752aae26297a5da2569eea2c0a522eb77db0136f24a6e7601fc1107fa35d5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/direction.ts": "aef691d4b7abea14a88f4ada6d580b5ab6802019c711de25f8d9d2d9993c378f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/mod.ts": "c1a739a867d92d7094ed5d156e39684566d87229756834e73102319d264bc4a5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/postcode.ts": "e6110e737191fec68c2c81991258e5472c3cbb8ce3fadf795ed3bfdd77210537", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/street_name.ts": "2cec743efe46fc6197f34112565edd40c0ee2c028822e1dbd0b51a1ef2fbc0f8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/address/street_prefix.ts": "3a6a0f53ac877ee6116826c89806a1160782ce9d3c85ef5f01c1e91bd00bd302", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/cell_phone/formats.ts": "8779340968afde06c4595d203ca4f5cd3272ae4623314761b3557bae2eb13a54", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/commerce/color.ts": "1b89da20600496f9c46aebf74c32eb4721a56052e0dca7d5fec37a83f0906117", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/commerce/department.ts": "76bcb04609da78d239e5ff7d53566106cb4580fb389ccfde9c7b1171791768d7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/commerce/mod.ts": "59695866784d3ac860e0a0004e80a073ba4b3e73abc902038f7d9323d89f5743", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/commerce/product_name.ts": "48085ab3bada6d1eb30aba6181439de14e5a41fb82655d689842a810b4c33545", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/date/mod.ts": "c61d7c18e3791003fcc1ee425d5e0e406878fdef9f10f3fa75fbe95f40579f8e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/date/month.ts": "87097c887314478b599fbbd6a56b60f4735f76b1b960b33cf3b0679c1c957338", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/date/weekday.ts": "7c86827a669e82162e3ae800342b4af4eb244e039637a6ba2a21c41b82be9882", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/internet/domain_suffix.ts": "91f6d1911aeec3a117a31a22d883f2aceafb0613aeaed8e005cdcd921b91995e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/internet/free_email.ts": "f20c88bd032545b46133b5a1a6328907b73c367f6700abcd0a81c4d91973fa5e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/mod.ts": "9698951d5a9980707790ec4c393625f1a7b12ab4a625fbec79bf074bc41f2d28", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/female_first_name.ts": "b790d1c9a9740e305f916c25551ccdb2cd2c55c47859e5e55b637a2fa614c6dd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/female_prefix.ts": "eac576f33f07aa85a3dcf22096ce23e3dd4702d031026c7b9515278d51793863", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/first_name.ts": "7b734421b82b0bfe40d09a0227e05988966974bb1bc03f8396c3791c68aeb7d4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/last_name.ts": "7b923a5242b23903a9e139f00d39091e65303e68fd5f682d4cd48ac0b5a39238", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/male_first_name.ts": "97b3215796f22de12400c2242938320117478acbacb18ea79a81c61b8d43292c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/male_prefix.ts": "f1824f1f3f4e805291ba76164abf831b985400e35ef93f497dbd9cae57f53382", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/mod.ts": "630bfd734fb266fc4223153941a51a568a5ece2154bee35ddf1317458a420e87", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/name.ts": "2f60a8f3243e61097aa2a09117e815f4912931c6459317529d779241968397d7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/prefix.ts": "13772bc8dd90dc5896d6f53f2f159723e9f4f7ac1ff66fa6e31e3148ca8c3c39", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/name/suffix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/phone_number/formats.ts": "8a72f882c3f7f251c0966ccc8d22edae39fa24f3f2e4edbee59702d7e2e9ea96", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/pt_PT/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/building_number.ts": "6551cfa7176a2d09bd69af62fa353c4d797db3682e16e8603f3e713957f965a4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/city.ts": "9a568ea88c3f7bfae95d5971e705e36425550df426bb8f0cc69961ec9ba7d72c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/county.ts": "c03f10174c369eb4e7bc75efa1e7ffc6f6ee1bff111c11dd0586de04286c0be3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/default_country.ts": "62481bb9d31db64bd1d4b7e6ec2df170083f8ac6af06f894303db2bed3ed0e18", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/mod.ts": "37d805da65d62a020c94b9f948fa7987f5afb2be1a56c2eaf9bc3a8b26ee87fc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/postcode.ts": "beff9c98268f8bf4bbf8d61aaa54493dd29fac0ba36b3bd1b3cfe97367ebfd8f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/secondary_address.ts": "932f59a1bf83ee954748cf457cf432f7306629bc4806f2c96a848cb5067c1d58", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/state.ts": "c03f10174c369eb4e7bc75efa1e7ffc6f6ee1bff111c11dd0586de04286c0be3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/state_abbr.ts": "d40add088db5c50f58b22b5f3fa5900073d1d0fc52faea84728de3bf04e5e2c8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/street_address.ts": "633253a806bf8bcfc1e081ff809bc0741aaf11712993f54031c260f89a84e9d6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/street_name.ts": "d5288a0679ae1f5b45f08ba70fe088c2369200ec1d3381351b26bfda46d2c172", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/street_suffix.ts": "5ec965cc9b93f3119f2151a0f6a17efd6fd57ce0e7666c1f66d09af05b761af5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/address/streets.ts": "18e3f5dfbc0c52da40fdbdcdef7af5b585ebbc549bda8e8710b332b67c4a259c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/cell_phone/formats.ts": "d816ef505dfe1f1af4d95f877fa6aab4f64f2444875a1286808aac9562007198", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/date/mod.ts": "c61d7c18e3791003fcc1ee425d5e0e406878fdef9f10f3fa75fbe95f40579f8e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/date/month.ts": "ce57c424ab3aa26bb92c60c4da2b2ab9495f6ac02b6cb47a40345d7bc5a25430", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/date/weekday.ts": "588ba3f45b33d0644d8bd147cc98a50be3b4301647e98653a8b46297567425e0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/internet/avatar_uri.ts": "94c1b5586fd894f351e64d1acfc2a0b671f34b13050c8c0e04daad962de29bdc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/internet/domain_suffix.ts": "fb902ce7f7a07b0d0720891ce7e1713c070914c28b8de3a784e11dc9799bf7f8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/internet/free_email.ts": "95deb3f400012a03c0fbfba6e796c4228d5b1f9af6b512b01af7fe4fb0e439b4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/internet/mod.ts": "50b82d473667609b0f1c992c825207cbd7aa61f4c3e22c22b127db95458ff61f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/mod.ts": "b671d8a9ffe186f2d2952f4022b10daeedb919b975dd04dbf8cb2e5d8090a374", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/name/female_first_name.ts": "ecf52a6780ba0120fda8975ce39d44185ec8d7e1d073fcedb24cb24fda67d21c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/name/last_name.ts": "cd9d6a84f4d9bfb6fbec73c762c26a129b6f6202360a03ceda2122c2257cd421", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/name/male_first_name.ts": "7b0841358f14e2aa796441966e0749d8acb3402c342acc4028f0caa9059965ed", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/name/mod.ts": "8e5f77c6d635779f8c2cb6929473108b675ea1c1ce248f7525aa5be8aaeb4bea", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/name/name.ts": "c2be18001712612e984ae579da8ab7d2223504cc31641b8112207fb91eeee1d7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/name/prefix.ts": "fa32158140540e0636486b0a0f337cb926dcc4cbf62f2798ec837dbcaa2205cf", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/name/suffix.ts": "ace46ede76572784701aac8b6fd45bbb73b12bd4a205ab4613d4b9aea3d3e281", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/phone_number/formats.ts": "d6e3d8d2048eb62b167fbbd767783ebcaddfc7ea5417926dd4db12773a098a0e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ro/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/building_number.ts": "9740db2c88dd22c886bf37bef7d3e0bdb81b801966b2b3f9ed75fb1e42a197ea", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/city.ts": "908b112fc91f60460a1b7bd190b9fa8a2c83fb26c1ee86b260ec685fe96de2cb", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/city_name.ts": "e00d5e450f73985d46305f9a6b87652d37d50c6c77e6d0ed6d06637fda8db9cd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/country.ts": "e3ed053118ae77d8b73c65dbe521b26221c4f51842b7f9e5d4d88b935e2c46c1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/default_country.ts": "54cd1ac16530683af2769afb30108ae0e8325ad49ff73b0938c03c0add77b822", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/mod.ts": "cb2f2355267791dc4d7f98fad3d42777778a199f8c32022ba13df714fd8a22ec", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/postcode.ts": "beff9c98268f8bf4bbf8d61aaa54493dd29fac0ba36b3bd1b3cfe97367ebfd8f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/secondary_address.ts": "8b3299105b4319e8ecf0366e912cbe1dcba8c88b31d2e4f68bed1cd3eee888ed", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/state.ts": "ec95b5bd318b36915321165a6b19f600b4bc3a90d772b26a071564fb2d128727", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/street_address.ts": "2672823ce92f5a174d475eab67a815edcffd3093621a01134b05e6ac50b35f0a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/street_name.ts": "4cfd8b424391ef4760b3db820dad1d15afff0e1b4a1663a11fa0302120442595", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/street_suffix.ts": "2e62eceaf5c5b0c1c0fff8d5cc83d6d0b5df91dcffb6f2de56dfba0d3a3b2048", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/address/street_title.ts": "6d6f4b9860467a6e793d1bdf1251a92b7d34bf108a5ba5fc21f9dd59d3c77b8d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/commerce/color.ts": "fbaa5c98aa3a22b1e3b1a28b0ddeb77c1042a37eec0e3b36569f6812d1389f24", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/commerce/department.ts": "fedf18b7c8f1e91b8b6cdb75f056dd1a3927d97140d80dcd0ff79423049e6d56", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/commerce/mod.ts": "59695866784d3ac860e0a0004e80a073ba4b3e73abc902038f7d9323d89f5743", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/commerce/product_name.ts": "c093378ef1229cd62cadbcde0cccb1760ae712eb5fb1d662ca9bbe04a047975d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/company/mod.ts": "bf5ff8a8bbd8137bdd6b0f0df25471a4e32dae61c906cd0d9c8a69c1c88e7a4d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/company/name.ts": "cbb3fe97d6429dbb9ac5e27233c1c2e39409370b04fe822c187a638751039ef4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/company/prefix.ts": "db7a2e875df3a41239a2b063dd6e6a7037ebbf1615a86d6fbb5458462cf6a96b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/company/suffix.ts": "f76738c067e8bac9dbb3598af3c37ed7845fd87c8397bd526f7702bfe46834ea", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/date/mod.ts": "c61d7c18e3791003fcc1ee425d5e0e406878fdef9f10f3fa75fbe95f40579f8e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/date/month.ts": "679d34edea89a0ba06206561d2f6ea104b5313d8b0fe6fd9d3f00e3c13e47924", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/date/weekday.ts": "682de381270d0ab44a73077676953484aff34d4667c5908c78bdc694293d7c42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/hacker/abbreviation.ts": "d07553ea763bfe6c9df17de818b6c88037e85e68903f3e1e33dc5be7281200a3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/hacker/adjective.ts": "b3cba43cbdcc63c2f02b8c69b2bbc9d7516241ebe42d157ad1d0c97c79712ca1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/hacker/ingverb.ts": "61d167f4434615dd3ac630551e5f424ed3af4caa145c769faa105963ce5805db", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/hacker/mod.ts": "8c47795f45bb64ab8014bc8596dfbcc83d894d1f08254501f3f78ffb14eb08de", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/hacker/noun.ts": "f2f8d8ad9e702d9772d126ed54b899c3b68ca2204ed8a0cee69dde8a3ca5bf3e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/hacker/phrase.ts": "860a9a286a49ed87ca855ffe1ca5575d84123e14745b7d4e2c999e865e4348ff", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/hacker/verb.ts": "af8f383444f363b04b5d9c0f4f62c10de8f4ff51e781ca8fbb0f0daded59c469", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/internet/domain_suffix.ts": "2562f5ad58936ac5a5b2a194e7f6f54367933a25937ab7349fc3699c358e5625", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/internet/free_email.ts": "583a64356614fc3198b2e0d359230e97dccbd35863b8f27834db15200f3513db", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/mod.ts": "701254158dd8b63ddef92f241409576096ad377b9649cc0f2899f97f26726536", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/female_first_name.ts": "516e2d58e01fbebd621343b46e3e2a8d481357165ffc77b3f11b6db37644e1e3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/female_last_name.ts": "45c3ea122b27155b51f1e09b4a9df16071f38da7d7a54d08b92487c14966fdf5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/female_middle_name.ts": "62faa5d7842a126fde96d39ab2de5b46d27bcb3b2336ced330487deda465ca0b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/male_first_name.ts": "2fd36a3950819c456c952d914d6acd534e766c87a3c9ae879e0830a7288b029d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/male_last_name.ts": "034fc790ef2cfc4b20529768af9ca4d995d0a68acffdd927db1815674ef3afe7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/male_middle_name.ts": "1c3f7585024429de66b0d9dc1cb0a8367f8b1c01e7c50b37166a3760f24ece68", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/mod.ts": "2de802c0b74085d4c74802097b6f94761c9fc42f8665f39a3e9484b44c8e442d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/name.ts": "4d96a6c543433717a55b7aa972faa961496e94aedd101a2c4934884de088390e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/prefix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/name/suffix.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/phone_number/formats.ts": "e8383042dfe7d4a004dab8c3e3b6397ae6599f643638ff36386c163590c497f2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/ru/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/building_number.ts": "9e5f7e3684562723796ec56969b91535559469a7f463c54c1564b1c6e0905213", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/city.ts": "dd9d973ee8e86a91b97b0bbed28483e0b1ce4e089b91e23bb0c46f9d749ebce4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/city_name.ts": "74984e6a7292f43e3a33943de478449e04f8082899566c1805a28c6b3d5ba922", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/city_prefix.ts": "ec5c9962102a00d8bad931007a0dedcfcf52d683c910bad0910b98a85f8d455d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/city_suffix.ts": "7a9116f27cb3ff593b205d75e12f6f0bef2dc68a4b705c3d30801f72edc307af", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/country.ts": "4b0c8338a4ef3292306269f1839b361ddc791846b60a1a43cec9660e38bb7f89", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/default_country.ts": "e2b6e19533ee4779c578e9ffa923ac78195aac27d455904f440c678dbd4014ae", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/mod.ts": "ef61b15602ecf2ad4dffa6fbb18fd1e63c50304c9ad978bbdb5f9ad47002c071", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/postcode.ts": "355cb303eeef73ce16c15c1add661e7f1796153f5fd8df8e0035b8463fad50d2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/secondary_address.ts": "9451a74fea0bc0ca76a4d9aead9ecf01a6da7eaaa072cd61496d441a1337f9c1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/state.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/state_abbr.ts": "d7076912d1c9786ca76231a2a77cef475b7fafbe4950a8ecc430af171422993c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/street.ts": "4643e932e7a18320cbe7d82c84de68f8c76057a92a40fe379fe0cdab6efa9ad8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/street_name.ts": "50588dea6b3c50e02f2c695e1e209e8bd2671c0b76e34d0c7bad0471a8915e25", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/address/time_zone.ts": "c3d5b9356a4c6b65f269458268c43b426cedc8c40cb1f727bf57331a552df232", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/company/adjective.ts": "f7ad0bdfb675f6a40701785eae81713b0462b90d8dcc11ac10063a39fded223c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/company/bs_noun.ts": "ff5529d9504f54b631907c9b05125c6b20972b145b6ac7eb9c7626f58bdd23e8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/company/bs_verb.ts": "133dda7b4d222bd5ef8486e0d9168f6f602ea9898499b4945b19979bc62d569f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/company/descriptor.ts": "448c8a419f28805ccd751819309269d1b815ef9dfb94d98c691e7660b1086516", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/company/mod.ts": "cb7601de75d96215f7cc0900cb17392fd9a5e03bfc0eb410af3f27738711a20a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/company/name.ts": "f753d7174b6ab13f00a2579b3f1650ea532978ff44075c88fd82d2d810af00e4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/company/noun.ts": "6fe6f633bfbb61b51c0782a50fc76a8a6653d8e342d788bf0021f4375b5a5c75", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/company/suffix.ts": "a7c4bd0c95ad6e619bd1064908cc863b5c71ae02823dd3060f1ee94007399de8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/internet/domain_suffix.ts": "048d2ff0f2897e9df0a0f9cdbc6b71f3c25fa069983529555d2364c1456ed7af", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/internet/free_email.ts": "6124c470d1f2a0646733b83f4e198964ef954a21daf9792fa691085e0e4c8e98", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/mod.ts": "8aa4a87e13480ceaf9d0cf5ebd15750415583a2b141591062da7705701707d8f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/female_first_name.ts": "01950bc9eecc1336c185b7e1fd1ff86fd1beee933815096250d44dcaf6856b4e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/female_last_name.ts": "6186b616042ce5d6985e8037f33d8a5f8ca2976a82b7bcd75917de6b5d869d2a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/male_first_name.ts": "36aece266aab11ab975aa15697e45c80f32b9081bdc02e7930b24f401ceb12e9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/male_last_name.ts": "bc8c7a06da54b2ef036e7374d1dc41d3adcc8336feb632d364f5fa4fb0c3e501", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/mod.ts": "8ed4852eff4a25831164e56ac90921b91174637ac90a14ec512a49b5a6177855", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/name.ts": "efb4e1047ff5cd5aba717c4182b8ea9b1ff971563122b46515e9af0bdfb42366", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/prefix.ts": "f6e09fdf247271accca04c70cd10efa1dee012488cad79c34cad8a33cc497009", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/suffix.ts": "f16a3ea91c495933d6af8359597f076027cf87260e34944d051c94e586c33ad9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/name/title.ts": "1f3a839a9cb050ce27963de21c5c4ed53a00dda32b7bd9b3812618eb424dac0a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/phone_number/formats.ts": "e4034ede83c4676354eed853988bf7b08b4df06dfca07527f893a7f9084374f5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sk/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/building_number.ts": "a565355a29f77429d5a433464cd3659607530cb86a2a32c33bba48b74c30bd48", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/city.ts": "dd5b5dc3ee5ee51222fb6f82614618d2b12d1c8e2f3a7def9911828bb402a0ed", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/city_prefix.ts": "50a82a91c276454916b93ab1f4e045530656284c61ee205a5c80e76cdc6965a7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/city_suffix.ts": "89ca578721ea891b674ea0b5b72e9f991cd607aa77738b367303c77687c53aa6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/common_street_suffix.ts": "d391be45dc7d7682e057fdd60626595c9dcebd0da1da3fb7178790fe21ff6d3f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/country.ts": "2b482744c43c13f3422ed6ee2cf2771e114d58ce65643ca51664511a14370e64", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/default_country.ts": "be532e0b7d0f61f0302192a1ce9b4363b5c48d0d1beaf7d0fd6b7e91cf51d38c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/mod.ts": "78579eeffbe8714ab7946f58469d6d5cb28b99752ebddc1a6fbd4be8f275f45c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/postcode.ts": "061e0ec295a754bec2497bc3fbe0cf0aa6a7e1a1ad3b6b846bbbdf81191b7097", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/secondary_address.ts": "489c78738083fc2e64afedc6fd9664382daa51b141ee1d1b6aae833cd6e35ec0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/state.ts": "4ff2891ac521a2dcaa548371bf1035ba5ba733a8d01943364117a81e5cc2aa85", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/street_name.ts": "30c7603d2e0f0822541bd85dedb1b1d891374cbead328d898c4c9d55e6697d5b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/street_prefix.ts": "49f4ba609f0a9bfba15576b815a2c25feb4fb39be994fec087effeef1206cc81", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/street_root.ts": "afa0c1631bdedf1cf22278f436289ed7160c93fff4e3711fca15c4896d352edd", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/address/street_suffix.ts": "35683871afca4c9c97554016aa22e4c9efa02afec48f224ac338c2b95b20f855", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/cell_phone/common_cell_prefix.ts": "2acdfb022b0a8c020ccf9b5e788b25bb363205540a806fa62f58f984e7183dec", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/cell_phone/formats.ts": "d0efbeefb3ff9d156940e2701158e23ad3558600c8b44df1d4c73462090e6e64", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/cell_phone/mod.ts": "fe2db6af11a5bc0dee56df1c8d4e5458dc47b70aa13f010311aea78284fdd0b5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/commerce/color.ts": "1338971b5a3650df6255f39796fc3915d940dca86d2f86e006a3bd5e466e4b27", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/commerce/department.ts": "5e04077cb4e4daa59d2ea78354c3650339fb94dd2cf5c357a5eea0f853eaee7d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/commerce/mod.ts": "59695866784d3ac860e0a0004e80a073ba4b3e73abc902038f7d9323d89f5743", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/commerce/product_name.ts": "39e5bb46196e9bdaffd02e991411bbdfbc1fdd21bf2d84d95849e692dd52513c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/company/mod.ts": "59429c1943da64620329a348742a0602a8544ff38e33fd1671e7c25d3ad43708", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/company/name.ts": "0e7b7b8ee82b70a81b1cbe94428243665314eb5f22fc5d60bf023019c14bc544", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/company/suffix.ts": "b5d11ef7241db6ec57c95a3fd1cbeeb8b0edab87eb5f499c42bfdee4b3be92c1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/date/mod.ts": "c61d7c18e3791003fcc1ee425d5e0e406878fdef9f10f3fa75fbe95f40579f8e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/date/month.ts": "55bfc7262f2c258ea440887322c9d9ee0830c67ae872752d2aa648a6e254f67e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/date/weekday.ts": "7f78f4005bb77bc330d3fdfb2b4ce6b41137bd9b53593d2c160b0eaf006c9e85", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/internet/domain_suffix.ts": "de4434cb4736bb79a510268c84ecb1cd62c65621861ca86827c9d09f081e3db4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/mod.ts": "0e31b6f65d7b96ec1c93ca6c699227cb2102007d918964629100c656cbe5422d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/name/first_name_men.ts": "8fcf552d3a7e390b80083526e99b8f0c55ea7666d80d643ecc8deade1289abb2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/name/first_name_women.ts": "66e013a6ab9f3eb94733a8a36319f625bebd069d53dc3e791c899e856f867099", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/name/last_name.ts": "46c1ebe5180c9b99e8fc0e719a30d56dac3a9b7acfec7b5877491a1adaffd786", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/name/mod.ts": "5e56a96bcf08ba1d099010d6c3a805e9b74da1dbf8ff4f00aaa1819bc65c94a5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/name/name.ts": "e12324bba47aa9e54031ceef8d9f7c61b5ff1ca5633d6a64000e38638a922059", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/name/prefix.ts": "e29f47d74c777a3f97a5215b27ca95cd81f9e0b2db1c7a9ac5df71da11925f65", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/name/title.ts": "1f3a839a9cb050ce27963de21c5c4ed53a00dda32b7bd9b3812618eb424dac0a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/phone_number/formats.ts": "3aba5e31af7d8130065ebfcc374db5d36e1e063f311227fef6b4455c8fea5934", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/team/mod.ts": "59429c1943da64620329a348742a0602a8544ff38e33fd1671e7c25d3ad43708", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/team/name.ts": "df1ff1c98aed29b1cb1410a02217afc53154be501b25862533e2416e362ab3c1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/sv/team/suffix.ts": "05c253cbf8d9e22c4bcc19ec2ebaa80dfc430bf086400201078754a1b141d0ae", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/building_number.ts": "58e911a9258d31edc3bc09d5ae54aa3ce5d3e8eaf7c6351aa6b38c3101568027", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/city.ts": "c7efe9adf21d56d517d10c8bcdbdcec09efeae784ec6ec73965b017765a50c2f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/country.ts": "1184742614784b98ba3a12a308d53528429099214c8bba5c1a2a4a88837f0937", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/default_country.ts": "88f1d9bf4e9c27c103da2d60c971b58e024d93a8424c9d491b0ed869eab68963", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/mod.ts": "7aacaf0b82735b7615a6afc2eab80a9cd0872f522a3ae8b2e9b62bcba3fd240b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/postcode.ts": "061e0ec295a754bec2497bc3fbe0cf0aa6a7e1a1ad3b6b846bbbdf81191b7097", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/street_address.ts": "35b5c57473d557bb075046af46a0e5eec757fb9931afd8599e7073c147086544", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/street_name.ts": "1af85fa4d8135613381aa2f9e88e672dc72bce736146539d9a96b3de25549216", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/address/street_root.ts": "75ce5a7ebd70ee3b1a5cb0a434cada57c92807fd5f79ad8e44c9df8bd62c3090", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/cell_phone/formats.ts": "91a2a8a70f847a62240ff1734a892b125d4fe8887c4b3ebc1e900ed1387188ba", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/internet/domain_suffix.ts": "5f9696f1e44addf28b1bd993439f21f7f1c7bf40f41ba16297770f2ff8c7db48", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/lorem/words.ts": "b7ad7df2a34d8cd32350d20ba44d4353fac4fbcaabd361c4a26080851dd03276", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/mod.ts": "35df8d1d8b11ece4007f80d6e86a10fedb749e65f12041998a0897bfd56781cf", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/name/first_name.ts": "0c8e91b3253bd3f893a367a1d4686f08b7447299ad375b788c2e95ed32ef4edf", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/name/last_name.ts": "52c786330c2ff289b3b330ac9262fac9337d6d5fb9707cfe087dbbb0cf03dc37", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/name/mod.ts": "de5c8e623984da1e77f4ebe46b755b8431cad60a916b17d2bcfb5e1710d95f6c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/name/name.ts": "a2dbe9977eee053eaae1c005cffc15fd7cb50e3bfe09b4b6077901e21cecbc4e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/name/prefix.ts": "af399b01bc128c97dc9948a20615e3ac6a946319ba8d63a1f65151ee2a8c81a8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/phone_number/area_code.ts": "4db0d10ab675933f7d97afb57eddf056926c85dc7f708a2f2d1948fb3c9e673c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/phone_number/formats.ts": "fe788241cbb1d7a8af39a57d129789c2a915cc4f014cfe9d9a629901d95b6f5d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/tr/phone_number/mod.ts": "01f8bfff25939f155cbef1fbb61fab54743fc66087f7edbcf3c29257bcea0c28", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/building_number.ts": "9e5f7e3684562723796ec56969b91535559469a7f463c54c1564b1c6e0905213", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/city.ts": "0f54e27ea6206072f92ac0e759dfe6bca935bff2bdab4a6e75d92e4e7e3e35a3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/city_name.ts": "f4a8a201cf727a01207348637705c4778d08b94a71b9d54ef27702ec1d232983", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/city_prefix.ts": "dbbf30c43cc92285c0e37138006a92aeb089411294092c087c1c0a16df0726cf", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/city_suffix.ts": "b9ce9496367022bd93523579fb38939968fcf0c09748d46bea0412f60b07afae", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/country.ts": "92e75833a176e37dc9161f895a24c6854adfd20c3db115e9dbc33eff575a6ef2", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/default_country.ts": "5fa95e00dee7e33804bad560a9ca4a3be3818d460a09367acdac24c230e74f07", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/mod.ts": "caf2489e1982330f15e006daff83ed01c9eacd72473596bd781a4cdd976967f5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/postcode.ts": "061e0ec295a754bec2497bc3fbe0cf0aa6a7e1a1ad3b6b846bbbdf81191b7097", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/secondary_address.ts": "8b3299105b4319e8ecf0366e912cbe1dcba8c88b31d2e4f68bed1cd3eee888ed", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/state.ts": "3b961f67b84ace75a5459b62c550fd531b70bbc12106a2c1413ea50a861ff3f5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/street_address.ts": "2672823ce92f5a174d475eab67a815edcffd3093621a01134b05e6ac50b35f0a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/street_name.ts": "3521c3a589be35a2cf9d3a74ddbba13bc81006c18c2340110518448cf89af27b", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/street_prefix.ts": "ca534ddf0a78c87521762b83a5e21d8972c7344120b0f612f3be2c1e580ed26c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/street_suffix.ts": "6c4ca71a185c018b82e45dba9be9a99862b5fb83356f642ac1c429edc0414cbf", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/address/street_title.ts": "ace30d92083d492422f2d7d262e2a807412d7a7c3d0767a74beb085b1b2733e6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/company/mod.ts": "bf5ff8a8bbd8137bdd6b0f0df25471a4e32dae61c906cd0d9c8a69c1c88e7a4d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/company/name.ts": "cbb3fe97d6429dbb9ac5e27233c1c2e39409370b04fe822c187a638751039ef4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/company/prefix.ts": "d5e81ab31df2ff1403693c70910b180a336beba598cb95b70464d26028e5a0a8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/company/suffix.ts": "fb6cf41df52b8e1a8a3b1792a5cea1033d88558150c5bab2c06ce0aca1a26d0e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/internet/domain_suffix.ts": "5cd842bc5b581edb1818f0bdadc71f1f1bd0ad7af11a5f6cbf4c5e46b2b4c5af", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/internet/free_email.ts": "44451b0c555e8bc58502d9c7f40caebbe670247a6a2ca78c3d23ae8fb31db3f1", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/internet/mod.ts": "bdc817897f1a1850b2e9a3f7627bad1e5d13a977fcd98ead85a1c358fa6f5d42", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/mod.ts": "9a63b16e6f69e12c95867465a533036430499119017d98e516a5977f6025d4ee", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/female_first_name.ts": "a9dc7b5eb1f66268ff69e8505a65140acd81e0bd29d20b42ddbded8757925364", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/female_last_name.ts": "31e9edd7f83a12c0bf59b4cdf6b4413d60601324a7a540b01e3b17f56ce3279d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/female_middle_name.ts": "eaece469a2d4cfd2a3f1da81df405f35bf603d0b6b520f00ccade6d508a97ee8", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/male_first_name.ts": "5d29e510471418a07d0774999ad769b1d646e47178021d3d277fa0109b6691d5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/male_last_name.ts": "5c5a5f913db0ee3a5eaeb1684aa30207b9d43233fbb01b1d831ab6b43237c4ad", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/male_middle_name.ts": "3f66b1c595616838bb53042a15c330e137d9a0f1e176d9b7c90ad80f15f41a23", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/mod.ts": "fa4d3a186f78571f0fc5f6d847f71aca2759140ab9b88ae0dade0c1554a45b1f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/name.ts": "4d96a6c543433717a55b7aa972faa961496e94aedd101a2c4934884de088390e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/prefix.ts": "0ee13a178869f393c0f1372e5dff18039f156ee7ab1c367c5e0c6c56f5e98fda", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/suffix.ts": "8bedd6b7086c54bc6d4b5ec1c7eb0daef5a69265cd918542a068b4c1ba83430c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/name/title.ts": "45af4758e2b320a5bb16da081ae06f5870d70cef66bc19a0f6cdb93d057b2d13", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/phone_number/formats.ts": "1f1e8fc6d80ac7031bd413815683cdcae00aa56d4d8adace31240a71596fead0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/uk/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/address/city.ts": "43347ec0a8d9e9971b50f2aa5edd115410176e1a4ed774a98631eee4edee9259", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/address/city_root.ts": "3f4320c2efdc2a61168fb378d235aff299bb12370194fb9b20ac71cbbf9459a7", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/address/county.ts": "b843fdb2dbf59763464bf26f1eae3e99ceb36107804e723889ee648078fc000a", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/address/default_country.ts": "dfcd489b510422e2cd5b83d07829fc8b7b0e5162766ae4bd02911f0838f248f5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/address/mod.ts": "f16d82590a456b6c0765d790419de2dc62a7ecbc8434ce34560cf4df5f28fc4c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/cell_phone/formats.ts": "fba4d892d90259623cc89078fc5e81894d648ad05b14ab99aa92b285d1b9649c", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/cell_phone/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/company/mod.ts": "979e0af3d98c4e99a1c59e2c7b37d31c7a014158a4e08d612816a038125dbc26", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/company/name.ts": "f17578218e778678d315b4adaee62944a569485437191ff7812b6c37517b0be5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/company/prefix.ts": "43e7da95b8a9b022b938a97e888cacf86f028d3316308978df7b890ea5fd49e0", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/internet/domain_suffix.ts": "d725dc1926ee6e37408cd408a5b0a8c9d9b8794f2ad6ce2788c1d9e9430dd923", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/internet/mod.ts": "5fea49f7b9ef7e213c3cb66b71299ff782f9e05a04587a13c6d8ac8f8e3f023e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/lorem/mod.ts": "800d2d7b28fbb968f68caeb3fa495b898c1e333a0cc90c22e6d7701cf4742f7f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/lorem/words.ts": "600b7e8d47aa12f92b794a8e275127a5172f12277e598e38e2543ba71aeda5f6", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/mod.ts": "fac0143a103fdc1a42ca47e39b14739fbe94d1fa421739670c5bf80636b8e690", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/name/first_name.ts": "5939cedfdddd5c586c4816f10f06f1318fd02bc20aaf93a9a390d332d3c3a968", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/name/last_name.ts": "b3e820d6a6ddd0f655b5e37fb536623d22b778a8fb820068cf82959ed693cea9", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/name/mod.ts": "a85442cb08f13a297e6328a96eb1c359099d86cd26e7b88eeabfa08ad73a8f63", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/name/name.ts": "89954c06839fd3673be4b3d834258dbf312cfb0085ee55be3644810b75153302", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/phone_number/formats.ts": "2726375ad43898078e6b5f524246239f65f3ad7ae74a12b6c665d4bdc803bc94", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/vi/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/building_number.ts": "924c2cf0d1cf42d30cec9f2d635cdd604ba61f42bc15dcbfc5dca7be08741e8d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/city.ts": "dd5b5dc3ee5ee51222fb6f82614618d2b12d1c8e2f3a7def9911828bb402a0ed", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/city_prefix.ts": "5d1cf862ca2f01d4bbb247b0692930df86ed99b6e28ed6c1a6419490b405f531", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/city_suffix.ts": "a4ea6232c71908de45cbd14d22eabce1cdba7fbb91f8470bf176855368743eeb", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/default_country.ts": "adcf726afb31d30ed54af441c8507e64696a3cde0ee2f7909a46bbbc570ae489", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/mod.ts": "9e696a183c3fad56f78f0bc1403ab0410d233ff33d42f8924f120535f7174d68", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/postcode.ts": "beff9c98268f8bf4bbf8d61aaa54493dd29fac0ba36b3bd1b3cfe97367ebfd8f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/state.ts": "538b6e75e221b3a176ba6b8557de2576ec7924d5da24e74f14eaba6a04b9b988", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/state_abbr.ts": "fdca5bd970345e161ec8791fce39c4ff6ce431420dea5e10d65bbab01e3ab16d", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/street_address.ts": "beb98589deaa88c8e1e3da3d32568ca448c59c787ca510910e4d8a79c9c20d46", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/street_name.ts": "0d174505bd175a7f2515446eb998534cd4eec70fb50b5377d4716f22c86982a4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/address/street_suffix.ts": "0e65345effd383e1ec0b8746e2cde7e6b6a325fdf19f7f97e571259e2f29bc6f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/mod.ts": "659a2ee89f60c71226fd5db4412fec9bd686e7eab34210407707474b436f6961", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/name/first_name.ts": "3ea8dee19f4a9407f7c09f86e9786908c59c2f0cd1e4fbe56aee2e324a284678", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/name/last_name.ts": "f2645c75c074703ef88daa6c0ffb8e4ad66d7bbfa27d5775e282d9f26a99789e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/name/mod.ts": "a85442cb08f13a297e6328a96eb1c359099d86cd26e7b88eeabfa08ad73a8f63", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/name/name.ts": "a75a7bf6421a42b756aae4540eec468d9fca354bbf71a56d11c55c61731fec19", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/phone_number/formats.ts": "1756a10cb9283c8062ae50a863a3ea90c97385527ed88a875dee83ff50edbd39", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_CN/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/building_number.ts": "3bbcaa5893195c47843299cc44e250c78a4888177477f9f7639ce5a28dcda349", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/city.ts": "dd5b5dc3ee5ee51222fb6f82614618d2b12d1c8e2f3a7def9911828bb402a0ed", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/city_prefix.ts": "19b4aad53d814263edc7c4521c18407cdb8dda58b0576811027f926860c46596", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/city_suffix.ts": "5f657d6a105bec9fd9bb38454f53fcd9337f397cd50ce32e6cda03d45cf4e534", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/default_country.ts": "e37dbeeb310c60119c130c0d33cb1fa6de96491c06a5bb6e8cf954c9a4038302", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/mod.ts": "9e696a183c3fad56f78f0bc1403ab0410d233ff33d42f8924f120535f7174d68", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/postcode.ts": "beff9c98268f8bf4bbf8d61aaa54493dd29fac0ba36b3bd1b3cfe97367ebfd8f", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/state.ts": "a551bb1f2fb7970ead2711a3f79464ab1f396d1a40d8ec21996728a11dd76e56", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/state_abbr.ts": "1cd83d2368d5538fda7fb6aa228fc73c05103015b9cd6e089cbe6c49cd5e3534", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/street_address.ts": "b5212e303e79f373b1ad7618ad7d693bee75d955291d474beeb68f82665cb0cc", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/street_name.ts": "0d174505bd175a7f2515446eb998534cd4eec70fb50b5377d4716f22c86982a4", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/address/street_suffix.ts": "8da9de29cb56f5be1dbc6844a8b686c78ea7a4e6c4dce323b8237523e7fd9d31", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/mod.ts": "537dcdc99f767717cd31c76dfe4e3ef094acf798371423fb0a5bae129b5b93c5", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/name/first_name.ts": "52691b2d0a5d9bb8101ea864c3203eb9f354857205cb771554faefd3483d0190", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/name/last_name.ts": "8d9c6ee5c5252df0663a75726bc01bbc6316b13c49202b31f639e23b7a23d560", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/name/mod.ts": "a85442cb08f13a297e6328a96eb1c359099d86cd26e7b88eeabfa08ad73a8f63", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/name/name.ts": "a75a7bf6421a42b756aae4540eec468d9fca354bbf71a56d11c55c61731fec19", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/phone_number/formats.ts": "0132764caaf52c0feaa4a4e590d7ba9d21501e85907e455162a2b837d7c5758e", - "https://deno.land/x/deno_faker@v1.0.3/lib/locales/zh_TW/phone_number/mod.ts": "15920d5946122bc7449ee48323f21d4b1c4143a8751005909366ef127f5c4de3", - "https://deno.land/x/deno_faker@v1.0.3/lib/lorem.ts": "d97ce1f03d83a4d16c1fbf7ebb77a469a2a4f8ea18b7d9b2cf79a53b95cedabb", - "https://deno.land/x/deno_faker@v1.0.3/lib/mod.ts": "d4b1ab32d72a5713a3b4d68fdde485c1abd565835089825911b905dc3e01baad", - "https://deno.land/x/deno_faker@v1.0.3/lib/name.ts": "7f3954fda6231e422fcd6206ef457cad05aa4ed1cc53d57e302d6e556b4cf176", - "https://deno.land/x/deno_faker@v1.0.3/lib/phone_number.ts": "1a29bd04e63f875c61c2f6e33ebaf6a16b28a2b54b8eeac7202ec7990a1c2e83", - "https://deno.land/x/deno_faker@v1.0.3/lib/random.ts": "8957e8cbc22f506497f5246bf11ca2730b7f0b6393f400e7c3165665f2a2953a", - "https://deno.land/x/deno_faker@v1.0.3/lib/schemas.ts": "6c9e2030ce2d3b5f3a33753e17e0a991973df3cbc58c13b289a3f189da9df568", - "https://deno.land/x/deno_faker@v1.0.3/lib/system.ts": "4d000b700466103eb7e3da8cb50a9a20aefc4679ca711733e48fb2b53fd2c4be", - "https://deno.land/x/deno_faker@v1.0.3/lib/unique.ts": "8f5daf459c8a9c28c235d8250559a955208f508d24cb988c454a680d91a3f452", - "https://deno.land/x/deno_faker@v1.0.3/lib/vehicle.ts": "3a453912500162bba212c44ee08ff67ceb048fe1e042b90a8b338bdbe5480319", - "https://deno.land/x/deno_faker@v1.0.3/mod.ts": "f5a91e8796668d4c9354d4a149bd34cc027b79950e6e17713eac9f41980374c9", - "https://deno.land/x/deno_faker@v1.0.3/vendor/mersenne.ts": "8a61935ca2f91b925d9e8cf262eaf8b3277d091f791c8b4f93f995359db1a9a7", - "https://deno.land/x/deno_faker@v1.0.3/vendor/unique.ts": "b8bb044d4caf0bb1a868bd26839bb5822e2013e8385f119db7029631e5a53e0b", - "https://deno.land/x/deno_faker@v1.0.3/vendor/user-agent.ts": "b95c7bda4ad37ba25b60c4431227361eabba70db14456abb69227d6536ea93fb", + "https://deno.land/std@0.208.0/path/_common/assert_path.ts": "061e4d093d4ba5aebceb2c4da3318bfe3289e868570e9d3a8e327d91c2958946", + "https://deno.land/std@0.208.0/path/_common/constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", + "https://deno.land/std@0.208.0/path/_common/normalize_string.ts": "88c472f28ae49525f9fe82de8c8816d93442d46a30d6bb5063b07ff8a89ff589", + "https://deno.land/std@0.208.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2", + "https://deno.land/std@0.208.0/path/posix/_util.ts": "ecf49560fedd7dd376c6156cc5565cad97c1abe9824f4417adebc7acc36c93e5", + "https://deno.land/std@0.208.0/path/posix/resolve.ts": "51579d83159d5c719518c9ae50812a63959bbcb7561d79acbdb2c3682236e285", + "https://deno.land/std@0.208.0/path/resolve.ts": "5b184efc87155a0af9fa305ff68a109e28de9aee81fc3e77cd01380f19daf867", + "https://deno.land/std@0.208.0/path/windows/_util.ts": "f32b9444554c8863b9b4814025c700492a2b57ff2369d015360970a1b1099d54", + "https://deno.land/std@0.208.0/path/windows/resolve.ts": "5ff441ab18a2346abadf778121128ee71bda4d0898513d4639a6ca04edca366b", + "https://deno.land/std@0.224.0/collections/_utils.ts": "b2ec8ada31b5a72ebb1d99774b849b4c09fe4b3a38d07794bd010bd218a16e0b", + "https://deno.land/std@0.224.0/collections/deep_merge.ts": "04f8d2a6cfa15c7580e788689bcb5e162512b9ccb18bab1241824b432a78551e", "https://esm.sh/@aws-sdk/client-s3@3.592.0": "6410aa6af828586a1fea0ad023479483b5844a15054bd62a77f8c1e1f467e54a", "https://esm.sh/@aws-sdk/s3-request-presigner@3.592.0": "41615b3a8cdd935bae991dbff554dd0f8765cf591fef33072a5338e6a7576814", "https://esm.sh/ajv-formats@2.1.1": "575b3830618970ddc3aba96310bf4df7358bb37fcea101f58b36897ff3ac2ea7", "https://esm.sh/ajv@8.12.0": "965ce16eff0cefef99e67478c5ee760928bd8931d40c3b958325cdd6ab6149f2", + "https://esm.sh/nanoevents@9.0.0": "29ccd1d8839f2d7dd8d28ad9ec5d18723a7dbf966bf29179063442b1e88b3a4f", "https://esm.sh/v135/@aws-crypto/crc32@3.0.0/denonext/crc32.mjs": "f9a98501e686244b2f327c7791df0f1f7830b8769dd2815b9de7e2aaca1f657f", "https://esm.sh/v135/@aws-crypto/crc32c@3.0.0/denonext/crc32c.mjs": "5acc8d5648bf7266477caacf836109147e2815cb13ba198270b783e77380cd19", "https://esm.sh/v135/@aws-crypto/ie11-detection@3.0.0/denonext/ie11-detection.mjs": "ae42f42b38941df739396432e9da809820c13a9f780bccb635326324bf51464e", @@ -1539,16 +1083,11 @@ "https://esm.sh/v135/@smithy/util-uri-escape@3.0.0/denonext/util-uri-escape.mjs": "df2c80781ede692323dee6e2da3711e7ccc4f7a1cee949b09aba8d1ce15bbe03", "https://esm.sh/v135/@smithy/util-utf8@3.0.0/denonext/util-utf8.mjs": "abe704ed8c4266b29906116ef723b98e8729078537b252c9a213ad373559488a", "https://esm.sh/v135/@smithy/util-waiter@3.0.0/denonext/util-waiter.mjs": "3f6ef1fd887ee17285898099e86083317573c81f93ca7821c62397374e224f16", - "https://esm.sh/v135/ajv-formats@2.1.1/denonext/ajv-formats.mjs": "06092e00b42202633ae6dab4b53287c133af882ddb14c6707277cdb237634967", - "https://esm.sh/v135/ajv@8.12.0/denonext/ajv.mjs": "4645df9093d0f8be0e964070a4a7aea8adea06e8883660340931f7a3f979fc65", - "https://esm.sh/v135/ajv@8.12.0/denonext/dist/compile/codegen.js": "d981238e5b1e78217e1c6db59cbd594369279722c608ed630d08717ee44edd84", "https://esm.sh/v135/bowser@2.11.0/denonext/bowser.mjs": "3fd0c5d68c4bb8b3243c1b0ac76442fa90f5e20ee12773ce2b2f476c2e7a3615", - "https://esm.sh/v135/fast-deep-equal@3.1.3/denonext/fast-deep-equal.mjs": "6313b3e05436550e1c0aeb2a282206b9b8d9213b4c6f247964dd7bb4835fb9e5", "https://esm.sh/v135/fast-xml-parser@4.2.5/denonext/fast-xml-parser.mjs": "c4512cbbb8ec8d60dedc374323e591d5bc4ae02e4da8c4092ff94602d19c9d62", - "https://esm.sh/v135/json-schema-traverse@1.0.0/denonext/json-schema-traverse.mjs": "c5da8353bc014e49ebbb1a2c0162d29969a14c325da19644e511f96ba670cc45", + "https://esm.sh/v135/nanoevents@9.0.0/denonext/nanoevents.mjs": "666c9d584019a64758bd3071e561051747454da64299ac06b79ede7210fe5e85", "https://esm.sh/v135/strnum@1.0.5/denonext/strnum.mjs": "1ffef4adec2f74139e36a2bfed8381880541396fe1c315779fb22e081b17468b", "https://esm.sh/v135/tslib@1.14.1/denonext/tslib.mjs": "5e49e8960f064d11fb709e3338f5437e2ede57e7df873a09d7834c2a0bf533f7", - "https://esm.sh/v135/uri-js@4.4.1/denonext/uri-js.mjs": "901d462f9db207376b39ec603d841d87e6b9e9568ce97dfaab12aa77d0f99f74", "https://esm.sh/v135/uuid@9.0.1/denonext/uuid.mjs": "7d7d3aa57fa136e2540886654c416d9da10d8cfebe408bae47fd47070f0bfb2a" } } diff --git a/tests/basic/public/index.html b/tests/basic/public/index.html new file mode 100644 index 00000000..91a9f87f --- /dev/null +++ b/tests/basic/public/index.html @@ -0,0 +1,16 @@ + + + + + + OpenGB E2E Test + + +

OpenGB E2E Test

+ + + + + + + diff --git a/tests/basic/public/index.js b/tests/basic/public/index.js new file mode 100644 index 00000000..6a23f14a --- /dev/null +++ b/tests/basic/public/index.js @@ -0,0 +1,65 @@ +/// +import { Backend } from './dist/sdk.mjs'; + +const backend = new Backend({ endpoint: "http://localhost:6420" }); + +console.log('backend', backend); + +window.findOrCreateLobby = async function() { + const { lobby, players } = await backend.lobbies.findOrCreate({ + version: "TODO", + regions: ["test"], + tags: {"hello": "world"}, + players: [{}], + + createConfig: { + region: "test", + tags: {"hello": "world"}, + maxPlayers: 8, + maxPlayersDirect: 8, + }, + }); + + // Test lobby connection + while (true) { + try { + await connect(lobby, players); + break; + } catch (err) { + console.warn('failed', err); + } + + await new Promise((resolve) => setTimeout(resolve, 500)); + } + + console.log('finished'); +} + +function connect(lobby, players) { + return new Promise((resolve, reject) => { + const port = lobby.backend.server.ports["game"]; + console.log('port', port); + const ws = new WebSocket(`http://${port.publicHostname}?token=${players[0].token}`); + ws.onopen = () => { + console.log('open'); + }; + ws.onerror = err => { + reject(err) + }; + ws.onmessage = ev => { + let [event, data] = JSON.parse(ev.data); + if (event == 'init') { + console.log('init', data) + ws.send(JSON.stringify(["ping", 1])) + } else if (event == 'pong') { + console.log('pong'); + ws.close(); + resolve(); + } else if (event == 'stats') { + // pass + } else { + console.warn('unknown event', event, data) + } + }; + }); +} diff --git a/tests/basic/rivet.yaml b/tests/basic/rivet.yaml index bb3c2158..9038aafd 100644 --- a/tests/basic/rivet.yaml +++ b/tests/basic/rivet.yaml @@ -10,5 +10,17 @@ # └───────────────────────────────────────────────────────┘ engine: - custom: {} + html5: {} + +matchmaker: + max_players: 128 + tier: basic-1d8 + game_modes: + default: {} + docker: + dockerfile: server.Dockerfile + ports: + default: + port: 8080 + protocol: https diff --git a/tests/basic/run_server.sh b/tests/basic/run_server.sh new file mode 100755 index 00000000..b9fcaefd --- /dev/null +++ b/tests/basic/run_server.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +(cd public && python -m http.server 8010) + diff --git a/tests/basic/server.Dockerfile b/tests/basic/server.Dockerfile new file mode 100644 index 00000000..90909dcd --- /dev/null +++ b/tests/basic/server.Dockerfile @@ -0,0 +1,20 @@ +FROM node:16.13.0-alpine3.14 + +WORKDIR /app + +RUN apk add --no-cache git + +# Build Rivet libs +COPY sdk/ sdk/ +COPY server/package.json server/yarn.lock server/ +RUN cd server && yarn install --production && yarn add typescript + +# Build server +COPY server/ server/ +RUN cd server && yarn run build + +RUN adduser -D server +USER server + +CMD ["node", "server/dist/index.js"] + diff --git a/tests/basic/server/package-lock.json b/tests/basic/server/package-lock.json new file mode 100644 index 00000000..47488506 --- /dev/null +++ b/tests/basic/server/package-lock.json @@ -0,0 +1,827 @@ +{ + "name": "server", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "dotenv": "^16.0.0", + "express": "^4.18.2", + "ws": "^7.5.4" + }, + "devDependencies": { + "@types/node": "^20.14.10", + "typescript": "^5.5.3" + } + }, + "node_modules/@types/node": { + "version": "20.14.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", + "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "license": "MIT" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "dev": true, + "license": "MIT" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/tests/basic/server/package.json b/tests/basic/server/package.json new file mode 100644 index 00000000..2286c001 --- /dev/null +++ b/tests/basic/server/package.json @@ -0,0 +1,18 @@ +{ + "scripts": { + "start": "npx ts-node src/server.ts", + "build": "tsc --project tsconfig.json" + }, + "dependencies": { + "dotenv": "^16.0.0", + "express": "^4.18.2", + "node-fetch": "2", + "opengb-sdk": "../sdk/", + "ws": "^7.5.4" + }, + "packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610", + "devDependencies": { + "@types/node": "^20.14.10", + "typescript": "^5.5.3" + } +} diff --git a/tests/basic/server/src/index.ts b/tests/basic/server/src/index.ts new file mode 100644 index 00000000..fc61ddb7 --- /dev/null +++ b/tests/basic/server/src/index.ts @@ -0,0 +1,218 @@ +// Since we can't inherit the cert from mkcert +process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'; + +import { Backend } from "opengb-sdk"; +import { URL } from 'url'; +import { WebSocket, Server as WebSocketServer } from 'ws'; +import * as http from 'http'; +import express from 'express'; + +// Add fetch API +import * as fetch from 'node-fetch' +if (!globalThis.fetch) { + globalThis.fetch = fetch.default as any; + globalThis.Headers = fetch.Headers as any; + globalThis.Request = fetch.Request as any; + globalThis.Response = fetch.Response as any; +} + +console.log(process.env); + +logTimestamp('start'); + +const BACKEND_ENDPOINT = process.env.BACKEND_ENDPOINT; +const LOBBY_TOKEN= process.env.LOBBY_TOKEN; +if (!BACKEND_ENDPOINT) throw new Error("BACKEND_ENDPOINT"); +if (!LOBBY_TOKEN) throw new Error("LOBBY_TOKEN"); + +const backend = new Backend({ endpoint: BACKEND_ENDPOINT }); + +retryDns(() => backend.lobbies.setLobbyReady({ lobbyToken: LOBBY_TOKEN })) + .then(() => { + logTimestamp('server-ready'); + }) + .catch(err => { + console.error('Failed to start lobby', err); + process.exit(1); + }); + +// Test SIGTERM handling +process.on('SIGTERM', () => { + console.log('SIGTERM signal received'); + setTimeout(() => { + console.log('Exiting'); + process.exit(0); + }, 1000); +}); + +// Apply lobby config +let gameConfig = { + scoreIncr: 1 +}; +// if (process.env.RIVET_LOBBY_CONFIG) { +// let config = JSON.parse(process.env.RIVET_LOBBY_CONFIG); +// let scoreIncr = parseInt(config.scoreIncr); +// if (scoreIncr) gameConfig.scoreIncr = scoreIncr; +// } + +// Create game state +interface GameState { + lobbyConfig: any; + lobbyTags: any; + scores: { [id: number]: number }; +} + +const gameState: GameState = { + lobbyConfig: null, + lobbyTags: null, + // lobbyConfig: process.env.RIVET_LOBBY_CONFIG ? JSON.parse(process.env.RIVET_LOBBY_CONFIG) : null, + // lobbyTags: process.env.RIVET_LOBBY_TAGS ? JSON.parse(process.env.RIVET_LOBBY_TAGS) : null, + scores: {} +}; + +// Setup HTTP server +const app = express(); +app.get('/health', (_req, res) => { + res.send('ok'); +}); + +// Setup server +const server = http.createServer(app); +const wss = new WebSocketServer({ server }); + +const port = parseInt(process.env.PORT!) || 8080; +console.log(`Listening on port ${port}`); +server.listen(port); + +// Handle connections +let clients = new Map(); + +function broadcast(event: string, data: any) { + clients.forEach(client => { + client.send(JSON.stringify([event, data])); + }); +} + +let counter = 0; +wss.on('connection', async (ws, req) => { + let idx = counter++; + const playerId = idx; + + clients.set(idx, ws); + + logTimestamp(`player-connect-${idx}`); + + let url = new URL(req.url!, 'http://test.com'); + let playerToken = url.searchParams.get('token') as string; + + ws.on('close', async () => { + logTimestamp(`player-disconnect-${idx}`); + + // Remove client + clients.delete(idx); + + // Delete player + delete gameState.scores[playerId]; + broadcast('state', gameState); + + // Unregister player + try { + await retryDns(() => backend.lobbies.setPlayerDisconnected({ lobbyToken: LOBBY_TOKEN, playerTokens: [playerToken] })); + logTimestamp(`player-disconnect-complete-${idx}`); + } catch (err) { + console.error('failed to disconnect player', err); + } + }); + + try { + await retryDns(() => backend.lobbies.setPlayerConnected({ lobbyToken: LOBBY_TOKEN, playerTokens: [playerToken] })); + logTimestamp(`player-connect-complete-${idx}`); + } catch (err) { + console.error('failed to connect player', idx, err); + ws.close(); + } + + // Listen for messages once connected + ws.on('message', (rawData: string) => { + let [event, data] = JSON.parse(rawData.slice(0, 2 ** 13)); + switch (event) { + case 'ping': + ws.send(JSON.stringify(['pong', data])); + break; + case 'score': + gameState.scores[playerId] += gameConfig.scoreIncr; + broadcast('state', gameState); + break; + case 'log': + if (data.stdout) { + console.log(data.stdout); + } else if (data.stderr) { + console.error(data.stderr); + } + break; + case 'set-closed': + let isClosed = parseInt(data) == 1; + console.log('Setting closed: ', isClosed); + // TODO: + // RIVET.matchmaker.lobbies + // .setClosed({ isClosed }) + // .then(() => console.log('Set closed success')); + break; + case 'force-exit': + let code = parseInt(data); + console.log('forcing exit with code', code); + process.exit(code); + break; + + default: + console.warn('unknown event', event); + break; + } + }); + + ws.send( + JSON.stringify([ + 'init', + { + forwardedFor: req.headers['x-forwarded-for'] + } + ]) + ); + + gameState.scores[playerId] = 0; + broadcast('state', gameState); +}); + +setInterval(() => { + broadcastStats(); +}, 1000); + +function broadcastStats() { + broadcast('stats', { + memory: process.memoryUsage() + }); +} + +// TODO: Figure out the DNS issue +// When running on localhost, we occasionally get `getaddrinfo ENOTFOUND` errors when we shouldn't. +async function retryDns(cb: () => Promise): Promise { + while (true) { + try { + return await cb(); + } catch (err: any) { + if ((err + '').indexOf('getaddrinfo ENOTFOUND') != -1) { + console.error('getaddrinfo ENOTFOUND error, retrying'); + continue; + } else { + let text = err.text && (await err.text()); + console.error('request error', err.url, err.status, text, err); + throw err; + } + } + } +} + +function logTimestamp(label: string) { + let date = new Date(); + console.log(`${label}: ${date.toISOString()}`); +} diff --git a/tests/basic/server/tsconfig.json b/tests/basic/server/tsconfig.json new file mode 100644 index 00000000..d7f34d64 --- /dev/null +++ b/tests/basic/server/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "experimentalDecorators": true, + "target": "es2022", + "esModuleInterop": true, + "moduleResolution": "node", + "module": "commonjs", + "downlevelIteration": true, + "outDir": "dist/" + }, + "include": ["src/index.ts"] +} diff --git a/tests/basic/server/yarn.lock b/tests/basic/server/yarn.lock new file mode 100644 index 00000000..04bdd1f1 --- /dev/null +++ b/tests/basic/server/yarn.lock @@ -0,0 +1,518 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@types/node@^20.14.10": + version "20.14.10" + resolved "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz" + integrity sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ== + dependencies: + undici-types "~5.26.4" + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +body-parser@1.20.2: + version "1.20.2" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" + integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== + dependencies: + bytes "3.1.2" + content-type "~1.0.5" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.2" + type-is "~1.6.18" + unpipe "1.0.0" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4, content-type@~1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +dotenv@^16.0.0: + version "16.4.5" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz" + integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +express@^4.18.2: + version "4.19.2" + resolved "https://registry.npmjs.org/express/-/express-4.19.2.tgz" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.6.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + +has-proto@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +hasown@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +inherits@2.0.4: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +node-fetch@2: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +object-inspect@^1.13.1: + version "1.13.2" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz" + integrity sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +opengb-sdk@../sdk/: + version "1.0.0" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.2: + version "2.5.2" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz" + integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +safe-buffer@5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +send@0.18.0: + version "0.18.0" + resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +side-channel@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typescript@^5.5.3: + version "5.5.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz" + integrity sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ== + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +ws@^7.5.4: + version "7.5.10" + resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== diff --git a/tests/basic/test.sh b/tests/basic/test.sh index 46e52622..7b219567 100755 --- a/tests/basic/test.sh +++ b/tests/basic/test.sh @@ -1,6 +1,6 @@ #!/bin/sh -curl -X POST "http://localhost:8080/modules/auth/scripts/auth_email_passwordless/call" \ +curl -X POST "https://test-1-backe-1hv--staging.backend.nathan16.gameinc.io/modules/auth/scripts/send_email_verification/call" \ -H "Content-Type: application/json" \ -d '{ "email": "test@rivet.gg"