From ac843ff026ec572b63fd729429c372741ac69c47 Mon Sep 17 00:00:00 2001 From: Victor Algaze Date: Sun, 28 Jan 2024 18:29:16 -0800 Subject: [PATCH] Add various doc, typo, and alignment fixes --- .gitignore | 3 +- README.md | 7 +- docs/.vitepress/util/samples.ts | 507 +- docs/api-docs/README.md | 7 +- docs/api-docs/classes/SpeedyBot.md | 100 +- docs/api-docs/classes/SpeedyCard.md | 60 +- docs/api-docs/modules.md | 2 +- docs/examples/deno/README.md | 224 +- docs/examples/lambda/README.md | 67 +- docs/examples/llm-stream/README.md | 59 +- docs/examples/speedybot-starter/README.md | 19 + docs/examples/standard-server/README.md | 51 +- docs/examples/worker/README.md | 81 +- docs/garage.md | 2 +- docs/index.md | 6 +- docs/new.md | 36 +- docs/patterns.md | 110 +- docs/webhooks.md | 35 +- examples/deno/README.md | 6 + examples/deno/index.ts | 2 +- examples/lambda/README.md | 40 +- .../lambda/packages/functions/package.json | 2 +- .../lambda/packages/functions/src/lambda.ts | 29 +- .../packages/functions/src/settings/bot.ts | 21 +- examples/llm-stream/README.md | 52 +- examples/llm-stream/package-lock.json | 17746 ---------------- examples/llm-stream/package.json | 2 +- examples/speedybot-starter/bun.lockb | Bin 215398 -> 0 bytes examples/speedybot-starter/package.json | 2 +- examples/speedybot-starter/settings/bot.ts | 2 +- examples/standard-server/README.md | 18 +- examples/standard-server/bun.lockb | Bin 200999 -> 0 bytes examples/standard-server/package.json | 2 +- examples/standard-server/settings/bot.ts | 2 +- examples/standard-server/src/index.ts | 4 +- examples/worker/README.md | 54 +- examples/worker/package-lock.json | 1946 -- examples/worker/package.json | 3 + examples/worker/settings/bot.ts | 138 +- examples/worker/src/index.ts | 8 +- examples/worker/wrangler.toml | 2 +- 41 files changed, 1151 insertions(+), 20306 deletions(-) delete mode 100644 examples/llm-stream/package-lock.json delete mode 100755 examples/speedybot-starter/bun.lockb delete mode 100755 examples/standard-server/bun.lockb delete mode 100644 examples/worker/package-lock.json diff --git a/.gitignore b/.gitignore index ae0a0f8..b1ec694 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ abc.ts .vitepress/cache docs/.vitepress/cache/ coverage/ -todo.md \ No newline at end of file +todo.md +trickyoperation.ts \ No newline at end of file diff --git a/README.md b/README.md index 3dace45..0361a44 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,10 @@ # SpeedyBot 2.0

- + - - - - +

diff --git a/docs/.vitepress/util/samples.ts b/docs/.vitepress/util/samples.ts index 71bcfb7..3fba4df 100644 --- a/docs/.vitepress/util/samples.ts +++ b/docs/.vitepress/util/samples.ts @@ -1,332 +1,303 @@ export const cardRoster = [ - "survey", + "format-card", // + "table-card", // + "survey", // + "acai", // + "appcard", // + "appcard-rtl", // + "red-danger", // + "yellow-warning", // + "green-success", // + "banner-yellow", // + "confirm", // + "image", // "old-survey", - "acai", - "appcard", - "appcard-rtl", - "red-danger", - "green-success", - "yellow-warning", - "banner-yellow", - "confirm", - "image", - "chips", - "format", ]; + +/*** + +`const Bot = new SpeedyBot(); +const card = + + */ export const samples: { label: string; value: string; name: string }[] = [ { - name: "survey", - label: "Survey", + label: "Text Formatting 📄", + name: "format-card", value: `const Bot = new SpeedyBot(); -const card = Bot.card().survey([ - { - type: "text", - question: "What is the name of your company?", - id: "company_name", - }, - { - type: "text", - question: "Describe the service performed by the vendor.", - id: "service_type", - }, - { - type: "picker-date", - question: "When was the service provided?", - id: "service_date", - }, - { - type: "single-select", - question: "How would you rate the quality of service?", - choices: ["Excellent", "Good", "Average", "Poor", "Very poor"], - id: "service_quality", - }, - { - type: "multi-select", - question: "What were the highlights of the service?", - choices: [ - "Communication", - "Punctuality", - "Time to Resolution", - "Friendliness", - "Cost", - ], - id: "service_highlights", - }, - { - type: "single-select", - question: "Would you consider using our services again in the future?", - choices: [ - "Definitely", - "Probably", - "Not sure", - "Probably not", - "Definitely not", - ], - id: "future_use", - }, - { - type: "textarea", - question: - "Please provide any other comments or suggestions for improvement.", - id: "other_comments", - }, - { - type: "picker-time", - question: "What time of day is preferable for future contact?", - id: "preferred_contact_time", - }, - { - type: "picker-dropdown", - question: "Preferred method of communication for future updates?", - choices: ["Email", "Phone", "Text"], - id: "communication_method", - }, - ]);`, +const card = Bot.card() + .addHeader('🌟 Formatted Card 🌟') + .addTitle('SpeedyCards can fit a lot of text + visual formatting') + .addText('You do lots of fun things with text', { size: 'Large' }) + .addText('You can change colors', { size: 'Large', color: 'green' }) + .addText('...also mess with alignment + sizes', { + size: 'Stretch', + color: 'red', + align: 'Right', + }) + .addText('Change background colors', { + size: 'Medium', + color: 'red', + backgroundColor: 'blue', + }) + .addText('Change background + foreground', { + size: 'Medium', + align: 'Right', + color: 'green', + backgroundColor: 'yellow', + }) + .addText('Align in the middle', { + size: 'Medium', + align: 'Center', + backgroundColor: 'red', + }) + .addText('More fun like other colors + images', { + size: 'Large', + color: 'red', + backgroundColor: 'yellow', + }) + .addText( + 'By the way, text blocks support simple markdown like **bolding**, *italics*, and even **[links](https://speedybot.js.org/new)**' + ) + .addImage('https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/memes/logo4.jpeg', { align: 'Center' })`, }, { - name: "old-survey", - label: "(legacy)Survey", + label: "Tabular Data 🐸", + name: "table-card", value: `const Bot = new SpeedyBot(); -const departments = [ - "Sales", - "Marketing", - "Customer Support", - "Finance", - "Product Development", -]; - const card = Bot.card() - .addTitle("Business Improvement Survey 📈") - .addSubtitle("Help Us Enhance Our Business Operations!") - .addText( - "Your insights are crucial for our continuous improvement. Please take a moment to complete this survey." - ) - .addText("1. Company Name:") - .addTextInput("Enter Your Company's Name") - .addText("2. Your Position/Role:") - .addTextInput("Enter Your Position/Role") - .addText("3. Please select your department:") - .addPickerDropdown(["Select Department"].concat(departments)) - .addText( - "4. On a scale of 1-5, how satisfied are you with our products/services? (1 being very dissatisfied, 5 being very satisfied)" - ) - .addSingleSelect([ - "1 (Very Dissatisfied)", - "2", - "3", - "4", - "5 (Very Satisfied)", - ]) - .addText( - "5. What aspects of our products/services do you appreciate the most?" - ) - .addTextarea("Please share what you appreciate the most about our offerings.") - .addText("6. Are there any specific areas where you believe we can improve?") - .addTextarea( - "Please provide details on areas where we can enhance our products/services." - ) - .addText( - "7. How likely are you to recommend our company to others? (1 being highly unlikely, 5 being highly likely)" - ) - .addSingleSelect([ - "1 (Highly Unlikely)", - "2", - "3", - "4", - "5 (Highly Likely)", - ]) - .addText("8. Any additional comments or suggestions?") - .addTextarea( - "Feel free to share any additional comments or suggestions you may have." - ) - .setSubmitButtonTitle("Submit Survey");`, + .addTitle('Ribbit! Check out the hop-tastic details below from FrogBot industries') + .addTable([ + ['Frog Species', 'Population'], + ['Green Tree Frog', '2,500'], + ['Red-eyed Tree Frog', '1,800'], + ['Poison Dart Frog', '700'], + ['Fire-bellied Toad', '1,200'], + ]) + .addLinkButton('http://allaboutfrogs.org/froglnd.shtml', '🐸 Explore Frogs')`, + }, + { + label: "Survey 📝", + name: "survey", + value: `const Bot = new SpeedyBot(); +const card = Bot.card().survey([ + { + type: 'text', + question: 'What is the name of your company?', + id: 'company_name', + }, + { + type: 'text', + question: 'Describe the service performed by the vendor.', + id: 'service_type', + }, + { + type: 'picker-date', + question: 'When was the service provided?', + id: 'service_date', + }, + { + type: 'single-select', + question: 'How would you rate the quality of service?', + choices: ['Excellent', 'Good', 'Average', 'Poor', 'Very poor'], + id: 'service_quality', + }, + { + type: 'multi-select', + question: 'What were the highlights of the service?', + choices: ['Communication', 'Punctuality', 'Time to Resolution', 'Friendliness', 'Cost'], + id: 'service_highlights', + }, + { + type: 'single-select', + question: 'Would you consider using our services again in the future?', + choices: ['Definitely', 'Probably', 'Not sure', 'Probably not', 'Definitely not'], + id: 'future_use', + }, + { + type: 'textarea', + question: 'Please provide any other comments or suggestions for improvement.', + id: 'other_comments', + }, + { + type: 'picker-time', + question: 'What time of day is preferable for future contact?', + id: 'preferred_contact_time', + }, + { + type: 'picker-dropdown', + question: 'Preferred method of communication for future updates?', + choices: ['Email', 'Phone', 'Text'], + id: 'communication_method', + }, + ])`, }, { + label: "Acai 🍇", name: "acai", - label: "AcaiTruck", value: `const Bot = new SpeedyBot(); const card = Bot.card() - .addTitle("AcaiTruck 🍇🚚 - The Bowl-istic Adventure Catering") - .addSubtitle("Customize Your Acai Bowl Experience!") - .addText( - "Welcome to our Acai Bowl Food Truck catering service. Let's make your event delicious!" - ) - .addPickerDropdown(["Select Bowl Size", "Mini", "Midi", "Grande"]) - .addPickerDropdown(["Number of People", "1-10", "11-25", "26-50", "50+"]) - .addTextInput("Anything else we should know?") - .addText("Choose toppings for the bar:") - .addMultiSelect([ - "Granola", - "Peanut Butter", - "Coconut", - "Goji Berries", - "Chia Seeds", - "Almonds", - "Cashews", - "Honey", - "Cacao Nibs", - "Strawberries", - "Blueberries", - "Almond Butter", - ]) - .addText("Additional Catering Essentials:") + .addTitle('AcaiTruck 🍇🚚 - The Bowl-istic Adventure Catering') + .addSubtitle('Customize Your Acai Bowl Experience!') + .addText("Welcome to our Acai Bowl Food Truck catering service. Let's make your event delicious!") + .addPickerDropdown(['Select Bowl Size', 'Mini', 'Midi', 'Grande']) + .addPickerDropdown(['Number of People', '1-10', '11-25', '26-50', '50+']) + .addTextInput('Anything else we should know?') + .addText('Choose toppings for the bar:') .addMultiSelect([ - "Utensils", - "Napkins", - "To-Go Covers", - "Fruit Juice", - "Smoothie Bar", - "Event Staff", - "Custom Branding", + 'Granola', + 'Peanut Butter', + 'Coconut', + 'Goji Berries', + 'Chia Seeds', + 'Almonds', + 'Cashews', + 'Honey', + 'Cacao Nibs', + 'Strawberries', + 'Blueberries', + 'Almond Butter', ]) - .addText("Any special requests or dietary preferences?") - .addTextarea("Special Requests or Dietary Preferences") - .setSubmitButtonTitle("Book AcaiTruck 🚀"); - `, - }, - { - name: "table_card", - label: "Tabular Data 🐸", - value: `const Bot = new SpeedyBot(); - const card = Bot.card() - .addTitle( - "Ribbit! Check out the hop-tastic details below from FrogBot industries" - ) - .addTable([ - ["Frog Species", "Population"], - ["Green Tree Frog", "2,500"], - ["Red-eyed Tree Frog", "1,800"], - ["Poison Dart Frog", "700"], - ["Fire-bellied Toad", "1,200"], - ]) - .addLinkButton("http://allaboutfrogs.org/froglnd.shtml", "🐸 Explore Frogs"); - `, + .addText('Additional Catering Essentials:') + .addMultiSelect(['Utensils', 'Napkins', 'To-Go Covers', 'Fruit Juice', 'Smoothie Bar', 'Event Staff', 'Custom Branding']) + .addText('Any special requests or dietary preferences?') + .addTextarea('Special Requests or Dietary Preferences') + .setSubmitButtonTitle('Book AcaiTruck 🚀')`, }, { + label: "Appcard 💳", name: "appcard", - label: "AppCard", value: `const Bot = new SpeedyBot(); -const card = Bot.appCard( - "Design News", - "https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/figma_logo.png" -) - .addText( - "Tap the button to learn about new plugins + integration options", - { color: "red", backgroundColor: "blue" } - ) - .addLinkButton("https://www.figma.com/community/plugins", "🚀 Learn More") - `, +const card = Bot.appCard('Design News', 'https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/figma_logo.png') + .addText('Tap the button to learn about new plugins + integration options', { color: 'red', backgroundColor: 'blue' }) + .addLinkButton('https://www.figma.com/community/plugins', "🚀 Let's go")`, }, { + label: "Appcard RTL ⬅️", name: "appcard-rtl", - label: "AppCard RTL", value: `const Bot = new SpeedyBot(); const card = Bot.appCard( - "ڈیزائن پر اپ ڈیٹ", - "https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/figma_logo.png", - { rtl: true } -) - .addText( - "نئے پلگ ان + انضمام کے اختیارات کے بارے میں جاننے کے لیے بٹن کو تھپتھپائیں۔", - { color: "red", backgroundColor: "blue", align: "Right" } - ) - .addLinkButton("https://www.figma.com/community/plugins", "اورجانیے 🚀") -`, + 'ڈیزائن پر اپ ڈیٹ', + 'https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/figma_logo.png', + { rtl: true } + ) + .addText('نئے پلگ ان + انضمام کے اختیارات کے بارے میں جاننے کے لیے بٹن کو تھپتھپائیں۔', { + color: 'red', + backgroundColor: 'blue', + align: 'Right', + }) + .addLinkButton('https://www.figma.com/community/plugins', 'اورجانیے 🚀')`, }, { + label: "Red Danger 🔴", name: "red-danger", - label: "Red Danger Card", value: `const Bot = new SpeedyBot(); const card = Bot.card() - .addTitle("🚨 DANGER 🚨") - .addText("Attention, this is a very severe and important warning") - .setBackgroundImage("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAMbWlDQ1BJQ0MgUHJvZmlsZQAASImVVwdYU8kWnluSkJDQAghICb0jUgNICaEFkF4EGyEJJJQYE4KKvSwquHYRxYquiii2lWYBsSuLYu+LBRVlXdTFhsqbkICu+8r3zvfNvX/OnPlPuTO59wCg+YErkeShWgDkiwukCeHBjDFp6QzSU4AAIiADZ+DF5ckkrLi4aABl8P53eXcDWkO56qzg+uf8fxUdvkDGAwAZB3EmX8bLh7gZAHwDTyItAICo0FtOKZAo8ByIdaUwQIhXK3C2Eu9S4EwlPjpgk5TAhvgyAGpULleaDYDGPahnFPKyIY/GZ4hdxXyRGABNJ4gDeEIuH2JF7E75+ZMUuBxiO2gvgRjGA5iZ33Fm/40/c4ify80ewsq8BkQtRCST5HGn/Z+l+d+Snycf9GEDB1UojUhQ5A9reCt3UpQCUyHuFmfGxCpqDfEHEV9ZdwBQilAekay0R415MjasH9CH2JXPDYmC2BjiMHFeTLRKn5klCuNADHcLOlVUwEmC2ADiRQJZaKLKZot0UoLKF1qbJWWzVPpzXOmAX4WvB/LcZJaK/41QwFHxYxpFwqRUiCkQWxWKUmIg1oDYRZabGKWyGVUkZMcM2kjlCYr4rSBOEIjDg5X8WGGWNCxBZV+SLxvMF9siFHFiVPhggTApQlkf7BSPOxA/zAW7LBCzkgd5BLIx0YO58AUhocrcsecCcXKiiueDpCA4QbkWp0jy4lT2uIUgL1yht4DYQ1aYqFqLpxTAzankx7MkBXFJyjjxohxuZJwyHnw5iAZsEAIYQA5HJpgEcoCorbuuG/5SzoQBLpCCbCCAJ1SpGVyROjAjhtdEUAT+gEgAZEPrggdmBaAQ6r8MaZVXZ5A1MFs4sCIXPIU4H0SBPPhbPrBKPOQtBTyBGtE/vHPh4MF48+BQzP97/aD2m4YFNdEqjXzQI0Nz0JIYSgwhRhDDiPa4ER6A++HR8BoEhxvOxH0G8/hmT3hKaCc8IlwndBBuTxTNk/4Q5WjQAfnDVLXI/L4WuA3k9MSDcX/IDplxfdwIOOMe0A8LD4SePaGWrYpbURXGD9x/y+C7p6GyI7uSUfIwchDZ7seVGg4ankMsilp/Xx9lrJlD9WYPzfzon/1d9fnwHvWjJbYIO4SdxU5g57GjWB1gYE1YPdaKHVPgod31ZGB3DXpLGIgnF/KI/uGPq/KpqKTMtdq1y/Wzcq5AMLVAcfDYkyTTpKJsYQGDBd8OAgZHzHNxYri5urkBoHjXKP++3sYPvEMQ/dZvuvm/A+Df1N/ff+SbLrIJgAPe8Pg3fNPZMQHQVgfgXANPLi1U6nDFhQD/JTThSTMEpsAS2MF83IAX8ANBIBREgliQBNLABFhlIdznUjAFzABzQTEoBcvBGrAebAbbwC6wFxwEdeAoOAHOgIvgMrgO7sLd0wlegh7wDvQhCEJCaAgdMUTMEGvEEXFDmEgAEopEIwlIGpKBZCNiRI7MQOYjpchKZD2yFalCDiANyAnkPNKO3EYeIl3IG+QTiqFUVBc1QW3QESgTZaFRaBI6Hs1GJ6NF6AJ0KVqOVqJ70Fr0BHoRvY52oC/RXgxg6pg+Zo45Y0yMjcVi6VgWJsVmYSVYGVaJ1WCN8DlfxTqwbuwjTsTpOAN3hjs4Ak/GefhkfBa+BF+P78Jr8VP4Vfwh3oN/JdAIxgRHgi+BQxhDyCZMIRQTygg7CIcJp+FZ6iS8IxKJ+kRbojc8i2nEHOJ04hLiRuI+YjOxnfiY2EsikQxJjiR/UiyJSyogFZPWkfaQmkhXSJ2kD2rqamZqbmphaulqYrV5amVqu9WOq11Re6bWR9YiW5N9ybFkPnkaeRl5O7mRfIncSe6jaFNsKf6UJEoOZS6lnFJDOU25R3mrrq5uoe6jHq8uUp+jXq6+X/2c+kP1j1QdqgOVTR1HlVOXUndSm6m3qW9pNJoNLYiWTiugLaVV0U7SHtA+aNA1XDQ4GnyN2RoVGrUaVzReaZI1rTVZmhM0izTLNA9pXtLs1iJr2Wixtbhas7QqtBq0bmr1atO1R2rHaudrL9HerX1e+7kOScdGJ1SHr7NAZ5vOSZ3HdIxuSWfTefT59O300/ROXaKurS5HN0e3VHevbptuj56Onodeit5UvQq9Y3od+pi+jT5HP09/mf5B/Rv6n4aZDGMNEwxbPKxm2JVh7w2GGwQZCAxKDPYZXDf4ZMgwDDXMNVxhWGd43wg3cjCKN5pitMnotFH3cN3hfsN5w0uGHxx+xxg1djBOMJ5uvM241bjXxNQk3ERiss7kpEm3qb5pkGmO6WrT46ZdZnSzADOR2WqzJrMXDD0Gi5HHKGecYvSYG5tHmMvNt5q3mfdZ2FokW8yz2Gdx35JiybTMslxt2WLZY2VmNdpqhlW11R1rsjXTWmi91vqs9XsbW5tUm4U2dTbPbQ1sObZFttW29+xodoF2k+0q7a7ZE+2Z9rn2G+0vO6AOng5ChwqHS46oo5ejyHGjY7sTwcnHSexU6XTTmerMci50rnZ+6KLvEu0yz6XO5dUIqxHpI1aMODviq6una57rdte7I3VGRo6cN7Jx5Bs3BzeeW4XbNXeae5j7bPd699cejh4Cj00etzzpnqM9F3q2eH7x8vaSetV4dXlbeWd4b/C+ydRlxjGXMM/5EHyCfWb7HPX56OvlW+B70PdPP2e/XL/dfs9H2Y4SjNo+6rG/hT/Xf6t/RwAjICNgS0BHoHkgN7Ay8FGQZRA/aEfQM5Y9K4e1h/Uq2DVYGnw4+D3blz2T3RyChYSHlIS0heqEJoeuD30QZhGWHVYd1hPuGT49vDmCEBEVsSLiJseEw+NUcXoivSNnRp6KokYlRq2PehTtEC2NbhyNjo4cvWr0vRjrGHFMXSyI5cSuir0fZxs3Oe5IPDE+Lr4i/mnCyIQZCWcT6YkTE3cnvksKTlqWdDfZLlme3JKimTIupSrlfWpI6srUjjEjxswcczHNKE2UVp9OSk9J35HeOzZ07JqxneM8xxWPuzHedvzU8ecnGE3Im3BsouZE7sRDGYSM1IzdGZ+5sdxKbm8mJ3NDZg+PzVvLe8kP4q/mdwn8BSsFz7L8s1ZmPc/2z16V3SUMFJYJu0Vs0XrR65yInM0573Njc3fm9uel5u3LV8vPyG8Q64hzxacmmU6aOqld4igplnRM9p28ZnKPNEq6Q4bIxsvqC3ThR32r3E7+k/xhYUBhReGHKSlTDk3Vniqe2jrNYdriac+Kwop+mY5P501vmWE+Y+6MhzNZM7fOQmZlzmqZbTl7wezOOeFzds2lzM2d+9s813kr5/01P3V+4wKTBXMWPP4p/KfqYo1iafHNhX4LNy/CF4kWtS12X7xu8dcSfsmFUtfSstLPS3hLLvw88ufyn/uXZi1tW+a1bNNy4nLx8hsrAlfsWqm9smjl41WjV9WuZqwuWf3Xmolrzpd5lG1eS1krX9tRHl1ev85q3fJ1n9cL11+vCK7Yt8F4w+IN7zfyN17ZFLSpZrPJ5tLNn7aIttzaGr61ttKmsmwbcVvhtqfbU7af/YX5S9UOox2lO77sFO/s2JWw61SVd1XVbuPdy6rRanl1155xey7vDdlbX+Ncs3Wf/r7S/WC/fP+LAxkHbhyMOthyiHmo5lfrXzccph8uqUVqp9X21AnrOurT6tsbIhtaGv0aDx9xObLzqPnRimN6x5YdpxxfcLy/qaipt1nS3H0i+8Tjloktd0+OOXntVPypttNRp8+dCTtz8izrbNM5/3NHz/ueb7jAvFB30etibatn6+HfPH873ObVVnvJ+1L9ZZ/Lje2j2o9fCbxy4mrI1TPXONcuXo+53n4j+catm+Nudtzi33p+O+/26zuFd/ruzrlHuFdyX+t+2QPjB5W/2/++r8Or49jDkIetjxIf3X3Me/zyiezJ584FT2lPy56ZPat67vb8aFdY1+UXY190vpS87Osu/kP7jw2v7F79+mfQn609Y3o6X0tf979Z8tbw7c6/PP5q6Y3rffAu/13f+5IPhh92fWR+PPsp9dOzvimfSZ/Lv9h/afwa9fVef35/v4Qr5Q58CmBwoFlZALzZCQAtDQA67NsoY5W94IAgyv51AIH/hJX94oB4AVADv9/ju+HXzU0A9m+H7Rfk14S9ahwNgCQfgLq7Dw2VyLLc3ZRcVNinEB7097+FPRtpFQBflvf391X293/ZBoOFvWOzWNmDKoQIe4YtnC+Z+Zng34iyP/0uxx/vQBGBB/jx/i/zoZDc6xYYDgAAAIplWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAAAJAAAAABAAOShgAHAAAAEgAAAHigAgAEAAAAAQAAACagAwAEAAAAAQAAACYAAAAAQVNDSUkAAABTY3JlZW5zaG90YWJUtQAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAdRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+Mzg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+Mzg8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpVc2VyQ29tbWVudD5TY3JlZW5zaG90PC9leGlmOlVzZXJDb21tZW50PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K2WZ6jwAAABxpRE9UAAAAAgAAAAAAAAATAAAAKAAAABMAAAATAAADfL9ViN4AAANISURBVFgJbJYBYtswDAMjv23rE7p9vOlv7OIAUlLqKI1NkSAIUYrd8fz393psY9gej/NxPWInOIQ6jyGfDP4u2Tg1uB6y8XnYIevUF7+ydi58Q9hkJ6WvXX+0sJd0oqeSh5KxxVC3zpfrkhh5FbsXQMohv5U5h3xjD93lTiqZjii0yZdrPD/VMQx9CJI9IfJfEoiARIKiUQg2OQFnqWt1dy2Ky3E5Hu6wKLEGIbje1v/WVlZusVB8iaysl5gm/kTdquK8kS6lnq5awS7QzFRkVdHkRXsxVpL63spLju4KRQ3iAqli15ECunqYM67HQTwJuoLQlZoyc4MHPw7Z/Ml0Dn6H7/Ul7EPMAsziERMFvpYpBtEJSWl9tE+1p0T4sTCwp7LitDNhooWEASYru9UfX9pKk/WB6QNU6WZysiw4hEuXEvGi+6BEtQNwzs7JfwoTIYTlEA+7cYr0XX117A8oy4Df+kxtHRbirS4yhPRI50xrcsesSIi4fVu/TbmV7y55MTBBeK/vM2auxBtHhkdiCpZiupCajmz4mpO1mTmB/Dy12TwHqdOjahr+q/7aSsBCdCJdigLSXmrZ3V3YNCyRVdybJMJfNTUvj2pwNFLhtf54/tdW5pQt4pLCk12PsZUoQj84W3RXNH5dyOMtgADOVS9iLo96fuhBru+b+uPr80OiCYoYcLOQo3ykpMQqDNSngtWessjfhuPdBoeSYYjNnrMASX9T32dMVSJMeK92OqCqIKtqXD0peg3xr2IAG2ox2wWUjhpHTrDKafBW36+koecNyq3OoEb2PbqZrcGspbWodBcM6+B1xvuW7p7cgSG5z5YphHlT3x1rWtLY0mzh8pLfnDGMrK5kK70bUjP0SuJ8uSuBSdCGgUxjcspelTKh/nyJA0YRv0ZWmFQQOcgcYa/dBx9/EEw9DOW4g9oX0lwlQFPOJCjjVliEq37O2OQOsaeVgEjTmHCtDlL/YmUkLkCdhqKbrHPLhe3O+hUIgjo1uhbTF2GAOBu00jYAf5Mi03PuyGVGx7xtlVNuIDXSnZzG2GTy7VdpI3F2/RLWWsPeNZKAhHoakVWPFP8Tyfa6/fJ7i8kgWzJYHfj5A8GOpORYWvnu9X8AAAD//1UsdDEAAANFSURBVG2WC2KDMAxDgbNtO8K6k7e3gelJdkIpWZc4/ki2E2jX5+PrWJZ1WRYtjEMy21V7ZETPw6N22beN3SFP/mwBrowrNrA2SbvU1kto37ESKiOf5+O7M5pI2E2zSdrfCQGtiJl7lG3qFOVpSlLYFLRrx0oBKaKAcJQm3t4ksUO6VWUkVDWL4dgVal2nmEDX6eq1R8VkE0GNTYp4alSn1DIn6ZBYxnzHPzsmLHfA7kpOPT9WOtZQg9U6aDapDlx6aN/lObJDwhwvfESUNDtQ65X/+fhRTSDImQ5JNGg1YKPiuhiITr6ItLU/Su5W9cjJwQRuLH0WsDiHUybxu/Kvr79vTs0wZoGtx6nSATiEdqpVWfsKOD2VNmIJ0HBVvghs9E/BmuV6xz+PsrsgZzB6GAIMYQIyjxvo9KT7EkIiscwdG8NXPtNWCkIu/DOx4V0oPk8iNBTvbuDjogHEgWyVBFsPjvN0ewZm22uV/6ELuumCUlSFmoeiSFKJ8R5jKycp3PG4ipD9OUM7JlGJFOnWaHLXAOSedkKyuyD7sSGGQiSomiwYMb3zp2N4+BGzjydj9dbnB5gUfU3adloxhyaujTHXCWDfYdDuwj+OskGz9rM0WZNbrO1jejqwng6QNnK86aEB3E1rkjDKatog+ODnKGmvvi1cLa8MjpCBM7NpscNpXXyRUzTStZUUxx2aer+/KMRxiQThjt+vC9CpyrReSnYWkdUUeUghwdASK/8QVUhSr2SSQamIDYtvrfzpGg254x9HKbMHfiCdDicaAe1C4Yj8oXLOV4N5gxQmhhVanR/JpEu2McmXByDRQ2uh+Udib+FY+7sSWQi1DBT8Nz9yyWMYLNwcI3rh+CtMCSeU1JLKlX99/urXhWzpBY4nF+n5WiCBWOJFo2iOwTE4Sl2r1VyQS5Hj7kcB5yTSMW76Hf9LP3uMjb8lyAMkRYAuNvT8JTsoNLR1HJfR8TVz5KcEjQwPVdkzLAqRED5nwO8xXqzdlWJICKCy8ZYmCcIYxoxKr5902Hp7yM8kJAaaZhMqgEA+xLbe5k9+3bEfIctzkCcZiIxsAVEIgpOnJFa1oc4UCw8LA3lkVpgVisUjniCA5Mw++P8B6bYPNHxeUdYAAAAASUVORK5CYII=")`, + .addTitle('🚨 DANGER 🚨') + .addText('Attention, this is a very severe and important warning') + .setBackgroundImage( + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAMbWlDQ1BJQ0MgUHJvZmlsZQAASImVVwdYU8kWnluSkJDQAghICb0jUgNICaEFkF4EGyEJJJQYE4KKvSwquHYRxYquiii2lWYBsSuLYu+LBRVlXdTFhsqbkICu+8r3zvfNvX/OnPlPuTO59wCg+YErkeShWgDkiwukCeHBjDFp6QzSU4AAIiADZ+DF5ckkrLi4aABl8P53eXcDWkO56qzg+uf8fxUdvkDGAwAZB3EmX8bLh7gZAHwDTyItAICo0FtOKZAo8ByIdaUwQIhXK3C2Eu9S4EwlPjpgk5TAhvgyAGpULleaDYDGPahnFPKyIY/GZ4hdxXyRGABNJ4gDeEIuH2JF7E75+ZMUuBxiO2gvgRjGA5iZ33Fm/40/c4ify80ewsq8BkQtRCST5HGn/Z+l+d+Snycf9GEDB1UojUhQ5A9reCt3UpQCUyHuFmfGxCpqDfEHEV9ZdwBQilAekay0R415MjasH9CH2JXPDYmC2BjiMHFeTLRKn5klCuNADHcLOlVUwEmC2ADiRQJZaKLKZot0UoLKF1qbJWWzVPpzXOmAX4WvB/LcZJaK/41QwFHxYxpFwqRUiCkQWxWKUmIg1oDYRZabGKWyGVUkZMcM2kjlCYr4rSBOEIjDg5X8WGGWNCxBZV+SLxvMF9siFHFiVPhggTApQlkf7BSPOxA/zAW7LBCzkgd5BLIx0YO58AUhocrcsecCcXKiiueDpCA4QbkWp0jy4lT2uIUgL1yht4DYQ1aYqFqLpxTAzankx7MkBXFJyjjxohxuZJwyHnw5iAZsEAIYQA5HJpgEcoCorbuuG/5SzoQBLpCCbCCAJ1SpGVyROjAjhtdEUAT+gEgAZEPrggdmBaAQ6r8MaZVXZ5A1MFs4sCIXPIU4H0SBPPhbPrBKPOQtBTyBGtE/vHPh4MF48+BQzP97/aD2m4YFNdEqjXzQI0Nz0JIYSgwhRhDDiPa4ER6A++HR8BoEhxvOxH0G8/hmT3hKaCc8IlwndBBuTxTNk/4Q5WjQAfnDVLXI/L4WuA3k9MSDcX/IDplxfdwIOOMe0A8LD4SePaGWrYpbURXGD9x/y+C7p6GyI7uSUfIwchDZ7seVGg4ankMsilp/Xx9lrJlD9WYPzfzon/1d9fnwHvWjJbYIO4SdxU5g57GjWB1gYE1YPdaKHVPgod31ZGB3DXpLGIgnF/KI/uGPq/KpqKTMtdq1y/Wzcq5AMLVAcfDYkyTTpKJsYQGDBd8OAgZHzHNxYri5urkBoHjXKP++3sYPvEMQ/dZvuvm/A+Df1N/ff+SbLrIJgAPe8Pg3fNPZMQHQVgfgXANPLi1U6nDFhQD/JTThSTMEpsAS2MF83IAX8ANBIBREgliQBNLABFhlIdznUjAFzABzQTEoBcvBGrAebAbbwC6wFxwEdeAoOAHOgIvgMrgO7sLd0wlegh7wDvQhCEJCaAgdMUTMEGvEEXFDmEgAEopEIwlIGpKBZCNiRI7MQOYjpchKZD2yFalCDiANyAnkPNKO3EYeIl3IG+QTiqFUVBc1QW3QESgTZaFRaBI6Hs1GJ6NF6AJ0KVqOVqJ70Fr0BHoRvY52oC/RXgxg6pg+Zo45Y0yMjcVi6VgWJsVmYSVYGVaJ1WCN8DlfxTqwbuwjTsTpOAN3hjs4Ak/GefhkfBa+BF+P78Jr8VP4Vfwh3oN/JdAIxgRHgi+BQxhDyCZMIRQTygg7CIcJp+FZ6iS8IxKJ+kRbojc8i2nEHOJ04hLiRuI+YjOxnfiY2EsikQxJjiR/UiyJSyogFZPWkfaQmkhXSJ2kD2rqamZqbmphaulqYrV5amVqu9WOq11Re6bWR9YiW5N9ybFkPnkaeRl5O7mRfIncSe6jaFNsKf6UJEoOZS6lnFJDOU25R3mrrq5uoe6jHq8uUp+jXq6+X/2c+kP1j1QdqgOVTR1HlVOXUndSm6m3qW9pNJoNLYiWTiugLaVV0U7SHtA+aNA1XDQ4GnyN2RoVGrUaVzReaZI1rTVZmhM0izTLNA9pXtLs1iJr2Wixtbhas7QqtBq0bmr1atO1R2rHaudrL9HerX1e+7kOScdGJ1SHr7NAZ5vOSZ3HdIxuSWfTefT59O300/ROXaKurS5HN0e3VHevbptuj56Onodeit5UvQq9Y3od+pi+jT5HP09/mf5B/Rv6n4aZDGMNEwxbPKxm2JVh7w2GGwQZCAxKDPYZXDf4ZMgwDDXMNVxhWGd43wg3cjCKN5pitMnotFH3cN3hfsN5w0uGHxx+xxg1djBOMJ5uvM241bjXxNQk3ERiss7kpEm3qb5pkGmO6WrT46ZdZnSzADOR2WqzJrMXDD0Gi5HHKGecYvSYG5tHmMvNt5q3mfdZ2FokW8yz2Gdx35JiybTMslxt2WLZY2VmNdpqhlW11R1rsjXTWmi91vqs9XsbW5tUm4U2dTbPbQ1sObZFttW29+xodoF2k+0q7a7ZE+2Z9rn2G+0vO6AOng5ChwqHS46oo5ejyHGjY7sTwcnHSexU6XTTmerMci50rnZ+6KLvEu0yz6XO5dUIqxHpI1aMODviq6una57rdte7I3VGRo6cN7Jx5Bs3BzeeW4XbNXeae5j7bPd699cejh4Cj00etzzpnqM9F3q2eH7x8vaSetV4dXlbeWd4b/C+ydRlxjGXMM/5EHyCfWb7HPX56OvlW+B70PdPP2e/XL/dfs9H2Y4SjNo+6rG/hT/Xf6t/RwAjICNgS0BHoHkgN7Ay8FGQZRA/aEfQM5Y9K4e1h/Uq2DVYGnw4+D3blz2T3RyChYSHlIS0heqEJoeuD30QZhGWHVYd1hPuGT49vDmCEBEVsSLiJseEw+NUcXoivSNnRp6KokYlRq2PehTtEC2NbhyNjo4cvWr0vRjrGHFMXSyI5cSuir0fZxs3Oe5IPDE+Lr4i/mnCyIQZCWcT6YkTE3cnvksKTlqWdDfZLlme3JKimTIupSrlfWpI6srUjjEjxswcczHNKE2UVp9OSk9J35HeOzZ07JqxneM8xxWPuzHedvzU8ecnGE3Im3BsouZE7sRDGYSM1IzdGZ+5sdxKbm8mJ3NDZg+PzVvLe8kP4q/mdwn8BSsFz7L8s1ZmPc/2z16V3SUMFJYJu0Vs0XrR65yInM0573Njc3fm9uel5u3LV8vPyG8Q64hzxacmmU6aOqld4igplnRM9p28ZnKPNEq6Q4bIxsvqC3ThR32r3E7+k/xhYUBhReGHKSlTDk3Vniqe2jrNYdriac+Kwop+mY5P501vmWE+Y+6MhzNZM7fOQmZlzmqZbTl7wezOOeFzds2lzM2d+9s813kr5/01P3V+4wKTBXMWPP4p/KfqYo1iafHNhX4LNy/CF4kWtS12X7xu8dcSfsmFUtfSstLPS3hLLvw88ufyn/uXZi1tW+a1bNNy4nLx8hsrAlfsWqm9smjl41WjV9WuZqwuWf3Xmolrzpd5lG1eS1krX9tRHl1ev85q3fJ1n9cL11+vCK7Yt8F4w+IN7zfyN17ZFLSpZrPJ5tLNn7aIttzaGr61ttKmsmwbcVvhtqfbU7af/YX5S9UOox2lO77sFO/s2JWw61SVd1XVbuPdy6rRanl1155xey7vDdlbX+Ncs3Wf/r7S/WC/fP+LAxkHbhyMOthyiHmo5lfrXzccph8uqUVqp9X21AnrOurT6tsbIhtaGv0aDx9xObLzqPnRimN6x5YdpxxfcLy/qaipt1nS3H0i+8Tjloktd0+OOXntVPypttNRp8+dCTtz8izrbNM5/3NHz/ueb7jAvFB30etibatn6+HfPH873ObVVnvJ+1L9ZZ/Lje2j2o9fCbxy4mrI1TPXONcuXo+53n4j+catm+Nudtzi33p+O+/26zuFd/ruzrlHuFdyX+t+2QPjB5W/2/++r8Or49jDkIetjxIf3X3Me/zyiezJ584FT2lPy56ZPat67vb8aFdY1+UXY190vpS87Osu/kP7jw2v7F79+mfQn609Y3o6X0tf979Z8tbw7c6/PP5q6Y3rffAu/13f+5IPhh92fWR+PPsp9dOzvimfSZ/Lv9h/afwa9fVef35/v4Qr5Q58CmBwoFlZALzZCQAtDQA67NsoY5W94IAgyv51AIH/hJX94oB4AVADv9/ju+HXzU0A9m+H7Rfk14S9ahwNgCQfgLq7Dw2VyLLc3ZRcVNinEB7097+FPRtpFQBflvf391X293/ZBoOFvWOzWNmDKoQIe4YtnC+Z+Zng34iyP/0uxx/vQBGBB/jx/i/zoZDc6xYYDgAAAIplWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAACQAAAAAQAAAJAAAAABAAOShgAHAAAAEgAAAHigAgAEAAAAAQAAACagAwAEAAAAAQAAACYAAAAAQVNDSUkAAABTY3JlZW5zaG90YWJUtQAAAAlwSFlzAAAWJQAAFiUBSVIk8AAAAdRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDYuMC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+Mzg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+Mzg8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpVc2VyQ29tbWVudD5TY3JlZW5zaG90PC9leGlmOlVzZXJDb21tZW50PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4K2WZ6jwAAABxpRE9UAAAAAgAAAAAAAAATAAAAKAAAABMAAAATAAADfL9ViN4AAANISURBVFgJbJYBYtswDAMjv23rE7p9vOlv7OIAUlLqKI1NkSAIUYrd8fz393psY9gej/NxPWInOIQ6jyGfDP4u2Tg1uB6y8XnYIevUF7+ydi58Q9hkJ6WvXX+0sJd0oqeSh5KxxVC3zpfrkhh5FbsXQMohv5U5h3xjD93lTiqZjii0yZdrPD/VMQx9CJI9IfJfEoiARIKiUQg2OQFnqWt1dy2Ky3E5Hu6wKLEGIbje1v/WVlZusVB8iaysl5gm/kTdquK8kS6lnq5awS7QzFRkVdHkRXsxVpL63spLju4KRQ3iAqli15ECunqYM67HQTwJuoLQlZoyc4MHPw7Z/Ml0Dn6H7/Ul7EPMAsziERMFvpYpBtEJSWl9tE+1p0T4sTCwp7LitDNhooWEASYru9UfX9pKk/WB6QNU6WZysiw4hEuXEvGi+6BEtQNwzs7JfwoTIYTlEA+7cYr0XX117A8oy4Df+kxtHRbirS4yhPRI50xrcsesSIi4fVu/TbmV7y55MTBBeK/vM2auxBtHhkdiCpZiupCajmz4mpO1mTmB/Dy12TwHqdOjahr+q/7aSsBCdCJdigLSXmrZ3V3YNCyRVdybJMJfNTUvj2pwNFLhtf54/tdW5pQt4pLCk12PsZUoQj84W3RXNH5dyOMtgADOVS9iLo96fuhBru+b+uPr80OiCYoYcLOQo3ykpMQqDNSngtWessjfhuPdBoeSYYjNnrMASX9T32dMVSJMeK92OqCqIKtqXD0peg3xr2IAG2ox2wWUjhpHTrDKafBW36+koecNyq3OoEb2PbqZrcGspbWodBcM6+B1xvuW7p7cgSG5z5YphHlT3x1rWtLY0mzh8pLfnDGMrK5kK70bUjP0SuJ8uSuBSdCGgUxjcspelTKh/nyJA0YRv0ZWmFQQOcgcYa/dBx9/EEw9DOW4g9oX0lwlQFPOJCjjVliEq37O2OQOsaeVgEjTmHCtDlL/YmUkLkCdhqKbrHPLhe3O+hUIgjo1uhbTF2GAOBu00jYAf5Mi03PuyGVGx7xtlVNuIDXSnZzG2GTy7VdpI3F2/RLWWsPeNZKAhHoakVWPFP8Tyfa6/fJ7i8kgWzJYHfj5A8GOpORYWvnu9X8AAAD//1UsdDEAAANFSURBVG2WC2KDMAxDgbNtO8K6k7e3gelJdkIpWZc4/ki2E2jX5+PrWJZ1WRYtjEMy21V7ZETPw6N22beN3SFP/mwBrowrNrA2SbvU1kto37ESKiOf5+O7M5pI2E2zSdrfCQGtiJl7lG3qFOVpSlLYFLRrx0oBKaKAcJQm3t4ksUO6VWUkVDWL4dgVal2nmEDX6eq1R8VkE0GNTYp4alSn1DIn6ZBYxnzHPzsmLHfA7kpOPT9WOtZQg9U6aDapDlx6aN/lObJDwhwvfESUNDtQ65X/+fhRTSDImQ5JNGg1YKPiuhiITr6ItLU/Su5W9cjJwQRuLH0WsDiHUybxu/Kvr79vTs0wZoGtx6nSATiEdqpVWfsKOD2VNmIJ0HBVvghs9E/BmuV6xz+PsrsgZzB6GAIMYQIyjxvo9KT7EkIiscwdG8NXPtNWCkIu/DOx4V0oPk8iNBTvbuDjogHEgWyVBFsPjvN0ewZm22uV/6ELuumCUlSFmoeiSFKJ8R5jKycp3PG4ipD9OUM7JlGJFOnWaHLXAOSedkKyuyD7sSGGQiSomiwYMb3zp2N4+BGzjydj9dbnB5gUfU3adloxhyaujTHXCWDfYdDuwj+OskGz9rM0WZNbrO1jejqwng6QNnK86aEB3E1rkjDKatog+ODnKGmvvi1cLa8MjpCBM7NpscNpXXyRUzTStZUUxx2aer+/KMRxiQThjt+vC9CpyrReSnYWkdUUeUghwdASK/8QVUhSr2SSQamIDYtvrfzpGg254x9HKbMHfiCdDicaAe1C4Yj8oXLOV4N5gxQmhhVanR/JpEu2McmXByDRQ2uh+Udib+FY+7sSWQi1DBT8Nz9yyWMYLNwcI3rh+CtMCSeU1JLKlX99/urXhWzpBY4nF+n5WiCBWOJFo2iOwTE4Sl2r1VyQS5Hj7kcB5yTSMW76Hf9LP3uMjb8lyAMkRYAuNvT8JTsoNLR1HJfR8TVz5KcEjQwPVdkzLAqRED5nwO8xXqzdlWJICKCy8ZYmCcIYxoxKr5902Hp7yM8kJAaaZhMqgEA+xLbe5k9+3bEfIctzkCcZiIxsAVEIgpOnJFa1oc4UCw8LA3lkVpgVisUjniCA5Mw++P8B6bYPNHxeUdYAAAAASUVORK5CYII=' + )`, }, { - name: "green-success", - label: "Green Success Card", + label: "Yellow Warning ⚠️", + name: "yellow-warning", value: `const Bot = new SpeedyBot(); const card = Bot.card() - .addTitle("🏆 You did it! 🏆") - .addText("Whatever you did, good at job at doing it") - .setBackgroundImage("data:image/png;base64,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")`, +.addTitle("⚠️ You're about to do it! ⚠️") +.addText("Whatever you're about to do, give it a think") +.setBackgroundImage( + 'data:image/png;base64,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' +)`, }, { - name: "yellow-warning", - label: "Yellow Warning Card", + label: "Green Success ✅", + name: "green-success", value: `const Bot = new SpeedyBot(); const card = Bot.card() - .addTitle("⚠️ You're about to do it! ⚠️") - .addText("Whatever you're about to do, give it a think") - .setBackgroundImage("data:image/png;base64,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")`, + .addTitle('🏆 You did it! 🏆') + .addText('Whatever you did, good at job at doing it') + .setBackgroundImage( + 'data:image/png;base64,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' + )`, }, { + label: "Banner Yellow 🟡", name: "banner-yellow", - label: "Yellow Banner", value: `const Bot = new SpeedyBot(); const card = Bot.card() - .addTitle("${ - ["🤖", "⭐️", "🏝️", "🎉", "🚀"][Math.floor(Math.random() * 5)] - } SpeedyBot") - .setBackgroundImage("data:image/png;base64,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")`, + .addTitle('🏝️ SpeedyBot') + .setBackgroundImage( + 'data:image/png;base64,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' + )`, }, { + label: "Confirm ✔️", name: "confirm", - label: "Confirm", value: `const Bot = new SpeedyBot(); const card = Bot.card() - .addTitle("Do you want to proceed") - .addButton('❌ Cancel','shouldProceed', {data: false}) - .addButton('✅ OK','shouldProceed', {data: true})`, + .addTitle('Do you want to proceed') + .addButton('❌ Cancel', 'shouldProceed', { data: false }) + .addButton('✅ OK', 'shouldProceed', { data: true })`, }, { + label: "Image 🖼️", name: "image", - label: "Image Card", value: `const Bot = new SpeedyBot(); const card = Bot.card() - .addTitle("Images") - .addSubtitle("Cards can have images too") - .addText("Small") - .addImage("https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/speedybot_logo.png", { size: "Small" }) - .addText("Medium") - .addImage("https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/speedybot_logo.png", { size: "Medium" }) - .addText("Large") - .addImage("https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/speedybot_logo.png", { size: "Large" }) - .addText("ExtraLarge") - .addImage("https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/speedybot_logo.png", { size: "ExtraLarge" }) - .addText("Stretch") - .addImage("https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/speedybot_logo.png", { size: "Stretch" }) - .addText("**TIP:** Images can be links too") - .addImage("https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/speedybot_logo.png", { - targetURL: "https://speedybot.js.org", - size: "ExtraLarge", - });`, + .addTitle('Images') + .addSubtitle('Cards can have images too') + .addText('Small') + .addImage('https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/memes/logo4.jpeg', { size: 'Small' }) + .addText('Medium') + .addImage('https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/memes/logo4.jpeg', { size: 'Medium' }) + .addText('Large') + .addImage('https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/memes/logo4.jpeg', { size: 'Large' }) + .addText('ExtraLarge') + .addImage('https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/memes/logo4.jpeg', { size: 'ExtraLarge' }) + .addText('Stretch') + .addImage('https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/memes/logo4.jpeg', { size: 'Stretch' }) + .addText('TIP: Images can be links too', { color: 'Attention' }) + .addImage('https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/memes/logo4.jpeg', { + targetURL: 'https://speedybot.js.org', + size: 'ExtraLarge', + })`, }, { - name: "chips", - label: "Chips", - value: `const Bot = new SpeedyBot(); -const card = Bot.card() - .addTitle("Chip Card") - .addSubtitle("SpeedyCards have a special feature-- 'chips'") - .addText('Chips are pretty simple but very useful') - .addText('If you add a chip, when the user clicks it your bot will react as if the user uttered that phrase') - .addChips(['ping', 'pong', { title: "ping 🏓", value: "ping" }, { title: "🏓 pong", value: "pong" }]) -`, - }, - { - name: "format", - label: "Text Format Card", + label: "Old Survey", + name: "old-survey", value: `const Bot = new SpeedyBot(); const card = Bot.card() - .addTitle("Format Card") - .addSubtitle("SpeedyCards have a special feature-- 'chips'") - .addText('You can **bold text as needed**') - .addText('If you add a chip, when the user clicks it your bot will react as if the user uttered that phrase') -`, + .addTitle('Business Improvement Survey 📈') + .addSubtitle('Help Us Enhance Our Business Operations!') + .addText('Your insights are crucial for our continuous improvement. Please take a moment to complete this survey.') + .addText('1. Company Name:') + .addTextInput("Enter Your Company's Name") + .addText('2. Your Position/Role:') + .addTextInput('Enter Your Position/Role') + .addText('3. Please select your department:') + .addPickerDropdown(['Select Department'].concat(['Sales', 'Marketing', 'Customer Support', 'Finance', 'Product Development'])) + .addText('4. On a scale of 1-5, how satisfied are you with our products/services? (1 being very dissatisfied, 5 being very satisfied)') + .addSingleSelect(['1 (Very Dissatisfied)', '2', '3', '4', '5 (Very Satisfied)']) + .addText('5. What aspects of our products/services do you appreciate the most?') + .addTextarea('Please share what you appreciate the most about our offerings.') + .addText('6. Are there any specific areas where you believe we can improve?') + .addTextarea('Please provide details on areas where we can enhance our products/services.') + .addText('7. How likely are you to recommend our company to others? (1 being highly unlikely, 5 being highly likely)') + .addSingleSelect(['1 (Highly Unlikely)', '2', '3', '4', '5 (Highly Likely)']) + .addText('8. Any additional comments or suggestions?') + .addTextarea('Feel free to share any additional comments or suggestions you may have.') + .setSubmitButtonTitle('Submit Survey')`, }, ]; +/*** + +`const Bot = new SpeedyBot(); +const card = + + */ + export const footer = ` /* diff --git a/docs/api-docs/README.md b/docs/api-docs/README.md index afa21e3..02b06cc 100644 --- a/docs/api-docs/README.md +++ b/docs/api-docs/README.md @@ -3,13 +3,10 @@ speedybot / [Exports](modules.md) # SpeedyBot 2.0

- + - - - - +

diff --git a/docs/api-docs/classes/SpeedyBot.md b/docs/api-docs/classes/SpeedyBot.md index 2ebdf0d..b201f36 100644 --- a/docs/api-docs/classes/SpeedyBot.md +++ b/docs/api-docs/classes/SpeedyBot.md @@ -85,7 +85,7 @@ #### Defined in -[speedybot.ts:53](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L53) +[speedybot.ts:53](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L53) ## Methods @@ -106,7 +106,7 @@ #### Defined in -[speedybot.ts:904](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L904) +[speedybot.ts:904](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L904) ___ @@ -127,7 +127,7 @@ ___ #### Defined in -[speedybot.ts:67](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L67) +[speedybot.ts:67](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L67) ___ @@ -147,7 +147,7 @@ ___ #### Defined in -[speedybot.ts:71](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L71) +[speedybot.ts:71](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L71) ___ @@ -190,7 +190,7 @@ Bot.addStep(async ($) => { #### Defined in -[speedybot.ts:152](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L152) +[speedybot.ts:152](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L152) ___ @@ -216,7 +216,7 @@ ___ #### Defined in -[speedybot.ts:156](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L156) +[speedybot.ts:156](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L156) ___ @@ -238,7 +238,7 @@ ___ #### Defined in -[speedybot.ts:1416](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L1416) +[speedybot.ts:1416](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L1416) ___ @@ -258,7 +258,7 @@ ___ #### Defined in -[speedybot.ts:231](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L231) +[speedybot.ts:231](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L231) ___ @@ -306,7 +306,7 @@ CultureBot.contains(["hi", "hey"], #### Defined in -[speedybot.ts:696](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L696) +[speedybot.ts:696](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L696) ___ @@ -326,7 +326,7 @@ ___ #### Defined in -[speedybot.ts:996](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L996) +[speedybot.ts:996](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L996) ___ @@ -347,7 +347,7 @@ ___ #### Defined in -[speedybot.ts:207](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L207) +[speedybot.ts:207](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L207) ___ @@ -384,7 +384,7 @@ The converted object. #### Defined in -[speedybot.ts:1408](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L1408) +[speedybot.ts:1408](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L1408) ___ @@ -409,7 +409,7 @@ ___ #### Defined in -[speedybot.ts:980](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L980) +[speedybot.ts:980](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L980) ___ @@ -429,7 +429,7 @@ ___ #### Defined in -[speedybot.ts:843](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L843) +[speedybot.ts:843](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L843) ___ @@ -449,7 +449,7 @@ ___ #### Defined in -[speedybot.ts:856](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L856) +[speedybot.ts:856](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L856) ___ @@ -469,7 +469,7 @@ ___ #### Defined in -[speedybot.ts:828](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L828) +[speedybot.ts:828](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L828) ___ @@ -493,7 +493,7 @@ Edit a message #### Defined in -[speedybot.ts:778](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L778) +[speedybot.ts:778](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L778) ___ @@ -514,7 +514,7 @@ ___ #### Defined in -[speedybot.ts:761](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L761) +[speedybot.ts:761](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L761) ___ @@ -535,7 +535,7 @@ ___ #### Defined in -[speedybot.ts:196](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L196) +[speedybot.ts:196](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L196) ___ @@ -561,7 +561,7 @@ ___ #### Defined in -[speedybot.ts:1304](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L1304) +[speedybot.ts:1304](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L1304) ___ @@ -575,7 +575,7 @@ ___ #### Defined in -[speedybot.ts:883](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L883) +[speedybot.ts:883](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L883) ___ @@ -596,7 +596,7 @@ ___ #### Defined in -[speedybot.ts:1384](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L1384) +[speedybot.ts:1384](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L1384) ___ @@ -610,7 +610,7 @@ ___ #### Defined in -[speedybot.ts:1110](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L1110) +[speedybot.ts:1110](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L1110) ___ @@ -667,7 +667,7 @@ CultureBot.contains(["hi", "hey"], #### Defined in -[speedybot.ts:1250](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L1250) +[speedybot.ts:1250](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L1250) ___ @@ -687,7 +687,7 @@ ___ #### Defined in -[speedybot.ts:1047](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L1047) +[speedybot.ts:1047](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L1047) ___ @@ -707,7 +707,7 @@ ___ #### Defined in -[speedybot.ts:913](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L913) +[speedybot.ts:913](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L913) ___ @@ -727,7 +727,7 @@ ___ #### Defined in -[speedybot.ts:1061](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L1061) +[speedybot.ts:1061](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L1061) ___ @@ -747,7 +747,7 @@ ___ #### Defined in -[speedybot.ts:75](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L75) +[speedybot.ts:75](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L75) ___ @@ -767,7 +767,7 @@ ___ #### Defined in -[speedybot.ts:1002](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L1002) +[speedybot.ts:1002](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L1002) ___ @@ -781,7 +781,7 @@ ___ #### Defined in -[speedybot.ts:105](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L105) +[speedybot.ts:105](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L105) ___ @@ -795,7 +795,7 @@ ___ #### Defined in -[speedybot.ts:869](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L869) +[speedybot.ts:869](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L869) ___ @@ -815,7 +815,7 @@ ___ #### Defined in -[speedybot.ts:113](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L113) +[speedybot.ts:113](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L113) ___ @@ -840,7 +840,7 @@ For use w/ vision + text prompting systems #### Defined in -[speedybot.ts:183](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L183) +[speedybot.ts:183](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L183) ___ @@ -860,7 +860,7 @@ ___ #### Defined in -[speedybot.ts:225](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L225) +[speedybot.ts:225](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L225) ___ @@ -880,7 +880,7 @@ ___ #### Defined in -[speedybot.ts:1316](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L1316) +[speedybot.ts:1316](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L1316) ___ @@ -906,7 +906,7 @@ ___ #### Defined in -[speedybot.ts:120](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L120) +[speedybot.ts:120](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L120) ▸ **pickRandom**<`P`\>(`min`, `max`): `number` @@ -929,7 +929,7 @@ ___ #### Defined in -[speedybot.ts:121](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L121) +[speedybot.ts:121](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L121) ▸ **pickRandom**<`P`\>(`listOrMin`, `max?`): `number` \| `P` @@ -952,7 +952,7 @@ ___ #### Defined in -[speedybot.ts:122](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L122) +[speedybot.ts:122](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L122) ___ @@ -968,7 +968,7 @@ Generate a random string of 11 characters (letters + numbers) #### Defined in -[speedybot.ts:1117](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L1117) +[speedybot.ts:1117](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L1117) ___ @@ -989,7 +989,7 @@ ___ #### Defined in -[speedybot.ts:160](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L160) +[speedybot.ts:160](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L160) ___ @@ -1011,7 +1011,7 @@ ___ #### Defined in -[speedybot.ts:798](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L798) +[speedybot.ts:798](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L798) ___ @@ -1039,7 +1039,7 @@ import #### Defined in -[speedybot.ts:246](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L246) +[speedybot.ts:246](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L246) ___ @@ -1076,7 +1076,7 @@ $bot.sendFileTo('target@email.com', myData, 'json') #### Defined in -[speedybot.ts:1158](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L1158) +[speedybot.ts:1158](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L1158) ___ @@ -1111,7 +1111,7 @@ Bot.sendTo({toPersonId: 'xxxyyyzzz', '**here is a message**') #### Defined in -[speedybot.ts:610](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L610) +[speedybot.ts:610](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L610) ___ @@ -1131,7 +1131,7 @@ ___ #### Defined in -[speedybot.ts:109](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L109) +[speedybot.ts:109](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L109) ___ @@ -1153,7 +1153,7 @@ Sets the token to transact with APIs (needed to send messages, receive webhooks, #### Defined in -[speedybot.ts:100](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L100) +[speedybot.ts:100](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L100) ___ @@ -1176,7 +1176,7 @@ ___ #### Defined in -[speedybot.ts:750](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L750) +[speedybot.ts:750](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L750) ___ @@ -1197,7 +1197,7 @@ ___ #### Defined in -[speedybot.ts:768](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L768) +[speedybot.ts:768](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L768) ___ @@ -1217,7 +1217,7 @@ ___ #### Defined in -[speedybot.ts:653](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L653) +[speedybot.ts:653](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L653) ___ @@ -1231,4 +1231,4 @@ ___ #### Defined in -[speedybot.ts:1016](https://github.com/valgaze/speedybot/blob/ef3a39a/src/speedybot.ts#L1016) +[speedybot.ts:1016](https://github.com/valgaze/speedybot/blob/188daf0/src/speedybot.ts#L1016) diff --git a/docs/api-docs/classes/SpeedyCard.md b/docs/api-docs/classes/SpeedyCard.md index 94928ab..02c2312 100644 --- a/docs/api-docs/classes/SpeedyCard.md +++ b/docs/api-docs/classes/SpeedyCard.md @@ -59,7 +59,7 @@ You can add "pickers" for date, time, select (and multi-select) #### Defined in -[cards.ts:281](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L281) +[cards.ts:281](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L281) ## Properties @@ -75,7 +75,7 @@ You can add "pickers" for date, time, select (and multi-select) #### Defined in -[cards.ts:217](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L217) +[cards.ts:217](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L217) ## Methods @@ -95,7 +95,7 @@ You can add "pickers" for date, time, select (and multi-select) #### Defined in -[cards.ts:734](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L734) +[cards.ts:734](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L734) ___ @@ -119,7 +119,7 @@ ___ #### Defined in -[cards.ts:507](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L507) +[cards.ts:507](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L507) ___ @@ -141,7 +141,7 @@ ___ #### Defined in -[cards.ts:749](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L749) +[cards.ts:749](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L749) ___ @@ -162,7 +162,7 @@ ___ #### Defined in -[cards.ts:315](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L315) +[cards.ts:315](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L315) ___ @@ -183,7 +183,7 @@ ___ #### Defined in -[cards.ts:322](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L322) +[cards.ts:322](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L322) ___ @@ -203,7 +203,7 @@ ___ #### Defined in -[cards.ts:741](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L741) +[cards.ts:741](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L741) ___ @@ -224,7 +224,7 @@ ___ #### Defined in -[cards.ts:455](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L455) +[cards.ts:455](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L455) ___ @@ -248,7 +248,7 @@ ___ #### Defined in -[cards.ts:358](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L358) +[cards.ts:358](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L358) ___ @@ -269,7 +269,7 @@ ___ #### Defined in -[cards.ts:388](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L388) +[cards.ts:388](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L388) ___ @@ -290,7 +290,7 @@ ___ #### Defined in -[cards.ts:392](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L392) +[cards.ts:392](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L392) ___ @@ -311,7 +311,7 @@ ___ #### Defined in -[cards.ts:598](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L598) +[cards.ts:598](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L598) ___ @@ -332,7 +332,7 @@ ___ #### Defined in -[cards.ts:646](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L646) +[cards.ts:646](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L646) ___ @@ -353,7 +353,7 @@ ___ #### Defined in -[cards.ts:561](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L561) +[cards.ts:561](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L561) ___ @@ -374,7 +374,7 @@ ___ #### Defined in -[cards.ts:658](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L658) +[cards.ts:658](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L658) ___ @@ -395,7 +395,7 @@ ___ #### Defined in -[cards.ts:588](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L588) +[cards.ts:588](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L588) ___ @@ -416,7 +416,7 @@ ___ #### Defined in -[cards.ts:547](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L547) +[cards.ts:547](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L547) ___ @@ -436,7 +436,7 @@ ___ #### Defined in -[cards.ts:288](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L288) +[cards.ts:288](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L288) ___ @@ -457,7 +457,7 @@ ___ #### Defined in -[cards.ts:293](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L293) +[cards.ts:293](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L293) ___ @@ -484,7 +484,7 @@ ___ #### Defined in -[cards.ts:406](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L406) +[cards.ts:406](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L406) ___ @@ -505,7 +505,7 @@ ___ #### Defined in -[cards.ts:671](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L671) +[cards.ts:671](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L671) ___ @@ -526,7 +526,7 @@ ___ #### Defined in -[cards.ts:684](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L684) +[cards.ts:684](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L684) ___ @@ -546,7 +546,7 @@ ___ #### Defined in -[cards.ts:283](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L283) +[cards.ts:283](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L283) ___ @@ -566,7 +566,7 @@ ___ #### Defined in -[cards.ts:709](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L709) +[cards.ts:709](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L709) ___ @@ -580,7 +580,7 @@ ___ #### Defined in -[cards.ts:803](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L803) +[cards.ts:803](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L803) ___ @@ -594,7 +594,7 @@ ___ #### Defined in -[cards.ts:263](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L263) +[cards.ts:263](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L263) ___ @@ -614,7 +614,7 @@ ___ #### Defined in -[cards.ts:698](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L698) +[cards.ts:698](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L698) ___ @@ -634,7 +634,7 @@ ___ #### Defined in -[cards.ts:703](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L703) +[cards.ts:703](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L703) ___ @@ -655,4 +655,4 @@ ___ #### Defined in -[cards.ts:765](https://github.com/valgaze/speedybot/blob/ef3a39a/src/cards.ts#L765) +[cards.ts:765](https://github.com/valgaze/speedybot/blob/188daf0/src/cards.ts#L765) diff --git a/docs/api-docs/modules.md b/docs/api-docs/modules.md index eb3d440..406e3e4 100644 --- a/docs/api-docs/modules.md +++ b/docs/api-docs/modules.md @@ -27,4 +27,4 @@ #### Defined in -[types.ts:121](https://github.com/valgaze/speedybot/blob/ef3a39a/src/types.ts#L121) +[types.ts:121](https://github.com/valgaze/speedybot/blob/188daf0/src/types.ts#L121) diff --git a/docs/examples/deno/README.md b/docs/examples/deno/README.md index 2bc7058..c3b8652 100644 --- a/docs/examples/deno/README.md +++ b/docs/examples/deno/README.md @@ -18,7 +18,188 @@ Note: The steps below assume you have a **[working WebEx account](https://develo ![sb](./../../assets/deno/deno_playground.png) -Note: There are many (better) ways to setup Deno, but for now we can just use the Playground and copy/paste everything in **[index.ts](./index.ts)** +Note: There are many (better) ways to setup Deno, but for now we can just use the Playground and copy/paste everything in the panel below: + +## 2a) Copy the code below into the playground + +
💡 Tap here to open code (copy me) + +```ts +import { SpeedyBot, logoRoll } from "https://cdn.skypack.dev/speedybot@latest"; + +Deno.serve(async (req: Request) => { + if (req.method === "GET") { + return new Response(`Server is running ${new Date()} ${logoRoll()}`); + } + + const CONFIG = { + token: Deno.env.get("token"), + webhookSecret: Deno.env.get("webhookSecret"), + }; + + if (req.method === "POST") { + const signature = + req.headers.get("x-spark-signature") || + req.headers.get("X-Spark-Signature"); + const Bot = new SpeedyBot(CONFIG.token); + const json = await req.json(); + + if (signature) { + const validateWebhook = async ( + requestData: T, + secret: string, + signature: string + ): Promise => { + const stringyBody = + typeof requestData !== "string" + ? JSON.stringify(requestData) + : requestData; + const algo = { + name: "HMAC", + hash: "SHA-1", + }; + const enc = { + name: "UTF-8", + }; + const hmacKey = await crypto.subtle.importKey( + "raw", + new TextEncoder().encode(secret), + algo, + false, + ["sign"] + ); + const hmacData = await crypto.subtle.sign( + algo, + hmacKey, + new TextEncoder().encode(stringyBody) + ); + + const bufferToHex = (buffer: ArrayBufferLike) => { + return Array.prototype.map + .call(new Uint8Array(buffer), (x) => + ("00" + x.toString(16)).slice(-2) + ) + .join(""); + }; + const hmacDataHex = bufferToHex(hmacData); + return hmacDataHex === signature; + }; + const proceed = await validateWebhook( + json, + CONFIG.webhookSecret, + signature + ); + if (proceed === false) { + return new Response("Webhook Secret Rejected"); + } + } + + Bot.exact("$clear", async ($) => { + await $.clearScreen(); + return $.end; + }); + + Bot.addStep(async ($) => { + if ($.data && !$.data.showCard) { + const dataSnippet = $.buildDataSnippet($.data); + await $.send(`This data was submitted:`); + await $.send(dataSnippet); + return $.end; + } else { + return $.next; + } + }); + + Bot.addStep(async ($) => { + await $.send(`helllllooo, you said "${$.text}"`); + const card = $.card().survey([ + { + type: "text", + question: "What is the name of your company?", + id: "company_name", + }, + { + type: "text", + question: "Describe the service performed by the vendor.", + id: "service_type", + }, + { + type: "picker-date", + question: "When was the service provided?", + id: "service_date", + }, + { + type: "single-select", + question: "How would you rate the quality of service?", + choices: ["Excellent", "Good", "Average", "Poor", "Very poor"], + id: "service_quality", + }, + { + type: "multi-select", + question: "What were the highlights of the service?", + choices: [ + "Communication", + "Punctuality", + "Time to Resolution", + "Friendliness", + "Cost", + ], + id: "service_highlights", + }, + { + type: "single-select", + question: + "Would you consider using our services again in the future?", + choices: [ + "Definitely", + "Probably", + "Not sure", + "Probably not", + "Definitely not", + ], + id: "future_use", + }, + { + type: "textarea", + question: + "Please provide any other comments or suggestions for improvement.", + id: "other_comments", + }, + { + type: "picker-time", + question: "What time of day is preferable for future contact?", + id: "preferred_contact_time", + }, + { + type: "picker-dropdown", + question: "Preferred method of communication for future updates?", + choices: ["Email", "Phone", "Text"], + id: "communication_method", + }, + ]); + + await $.send(card); + + return $.next; + }); + + Bot.captureError(async (payload) => { + const { roomId } = payload; + if (roomId) { + await Bot.sendTo( + roomId, + `Whoops, there was a problem: ${payload.message}` + ); + } + }); + + await Bot.runMiddleware(json); + } + return new Response(`Request processed`); // webhooks should return **something** +}); +``` + +
![sb](./../../assets/deno/deno_addcode.png) @@ -38,10 +219,43 @@ Verify you hit save underneath each secret you add to the playground ## 4) Register your webhook -- Grab your playground's URL (it'll be a strange name like https://noisy-bongodrum-75.deno.dev) and register your webhook using SpeedyBot Garage +- Right now if you try to interact with your "deployed" agent nothing happens, nobody is "home" to answer the knock at the door + +- Grab your playground's URL (it'll likely be a strange/random name like https://noisy-bongodrum-75.deno.dev) and register your webhook using SpeedyBot Garage + +- Hop on over to the **[SpeedyBot Garage (https://speedybot.js.org/garage)](https://speedybot.js.org/garage)**, enter your access token, select the Webhooks tab, and then **Add New Webhook** and add your Worker's URL and (optionally but hopefully) a webhook secret + + + +## 5) Take it for a spin -- Visit https://speedybot.js.org/garage and select **webhooks** and add your URL and optional (though highly recommeneded) webhook secret +After connecting webhooks, send your bot a message to take it for a spin -- If all went well you should see this and your bot is up and running on Deno! + -![sb](./../../assets/deno/deno_webhook.png) + diff --git a/docs/examples/lambda/README.md b/docs/examples/lambda/README.md index 57f2c88..b92a842 100644 --- a/docs/examples/lambda/README.md +++ b/docs/examples/lambda/README.md @@ -1,8 +1,10 @@ -# SpeedyBot on AWS Lambda +# [QUICKSTART] λ Deploy your bot to a "serverless" AWS Lambda Function -Note: This example uses the **[Serverless Stack (SST)](https://serverless-stack.com/)** toolchain for provisioning, deployment of infrastructure. SST is built on top of a version **[AWS Cloud Development Kit (cdk)](https://aws.amazon.com/cdk/)** and makes it possible to express your infrastructure needs as spec/code. SST is definitely not required, but is the quickest route to a serverless deployment. +- This example uses the **[Serverless Stack (SST)](https://serverless-stack.com/)** toolchain for provisioning, deployment of infrastructure. -SpeedyBot has been built with serverless in mind from the beginning-- serverless infrastructure is "asleep" until you need it. Start-up times are fast enough to interact with the chat client withot timing out. +- SST is built on top of a version **[AWS Cloud Development Kit (cdk)](https://aws.amazon.com/cdk/)** and makes it possible to express your infrastructure needs as spec/code. SST is definitely not required, but is the quickest route to a serverless deployment. + +- SpeedyBot has been built with serverless in mind from the beginning-- serverless infrastructure is "asleep" until you need it. Start-up times are generally fast enough to interact with the chat client withot timing out. Check out the **[Worker sample](https://speedybot.js.org/examples/worker/README)** for a fast-loading V8 Isolate without the overhead of a container ## 1) Fetch repo & install dependencies @@ -13,6 +15,8 @@ cd examples/lambda npm install ``` +Note: The actual code of the agent located in **packages/functions/src/settings/bot.ts** and lamba code is available **packages/functions/src/lambda.ts** + ## 2) Set your bot access token - If you have an existing bot, get its token here: **[https://developer.webex.com/my-apps](https://developer.webex.com/my-apps)** @@ -38,7 +42,7 @@ Note: You'll need an AWS account that has authorization/billing to create lambda 3b. Setup AWS CLI: https://sst.dev/chapters/configure-the-aws-cli.html -## 4) Deploy your bot and get its public URL +## 4) Deploy your bot and obtain its public URL Run this command from the project directory: @@ -48,11 +52,62 @@ npm run deploy If deployment is successful, you should find that your url that looks something like this: https://abcd123456.execute-api.us-east-1.amazonaws.com -## 4) Register webhooks + + +## 5) Register your webhooks + +- Right now if you try to interact with your "deployed" agent nothing happens, nobody is "home" to answer the knock at the door -Hop on over to the **[Webhooks Section](./../../webhooks.md)** to register your webhooks and secret +- Make a note of the URL of the deployed function and append /speedybot on the end , ex https://abcd123456.execute-api.us-east-1.amazonaws.com/speedybot + +- Hop on over to the **[SpeedyBot Garage (https://speedybot.js.org/garage)](https://speedybot.js.org/garage)**, enter your access token, select the Webhooks tab, and then **Add New Webhook** and add your lambdas's URL + `/speedybot` and (optionally) a webhook secret + + Note: This uses SST but any deployment mechanism/structure you prefer works fine Note: This SST configuration is setup to capture incoming WebEx requests on the `/speedybot` route, you can change any/all the behavior in **[the stack config](./stacks/MyStack.ts)** + +## 6) Take it for a spin + +- After connecting webhooks, take it for a spin + + + +## 7) Local Dev + +SST has a cool feature where you can develop your lambda/bot code locally but reach real AWS services. + +Install dependencies in **packages/functions/src** and run `npm install` and you can run the following command for live-reload: + +``` +npm run dev +``` + + diff --git a/docs/examples/llm-stream/README.md b/docs/examples/llm-stream/README.md index 8ed9423..a1e4480 100644 --- a/docs/examples/llm-stream/README.md +++ b/docs/examples/llm-stream/README.md @@ -1,32 +1,38 @@ ## LLM-Stream -This was the major inspiration for SpeedyBot 2.0-- how to efficiently allocate the edits to "stream in" responses from an LLM eendpoint. +This UI pattern was a major inspiration for building SpeedyBot 2.0-- how to efficiently allocate the edits to "stream in" responses from an LLM service. -- You can make up to 10 edits on a WebEx message which can approximate the "stream-in" effect on some LLM applications (otherwise the latency involved with forcing a "just wait-it-out" for a generation is an awful experience) - -- With unknown chunk-length & an unknown number of chunks, we need a reasonable way to "smoothly" stream in edits so the user isn't left hanging but also not use up our precious 10 edits +- You can make up to 10 edits on a WebEx message which can approximate the "stream-in" effect on some LLM applications (otherwise the latency involved with forcing a user to "just wait-it-out" until the model completes is an awful experience) - Streaming is implemented using: https://github.com/axflow/axflow (from https://axflow.dev), although **[vercel](https://sdk.vercel.ai/docs/concepts/streaming)** and others have libraries that could work -- This is a bare-bones example which can be easily extended-- To see a reference (which depends a storage/state mechanism) which will manage conversational context + swap personas, handle file-uploads (.doc, xlsx files, and other) and inject into prompt, see here: https://github.com/valgaze/speedybot-gpt4 - Example Stream: - + -## Setup - -## 1) Clone repo & install dependencies +## 1) Fetch repo & install deps ``` git clone https://github.com/valgaze/speedybot -cd examples/llm-steam -npm install +cd speedybot/examples/worker +npm i ``` -## 2) Set your bot access token +## 2) Get + Set your bot access token + +- Create a bot from scratch here + copy the token: **[https://developer.webex.com/my-apps/new/bot](https://developer.webex.com/my-apps/new/bot)** -- Make a new bot and note its access token from here: **[https://developer.webex.com/my-apps/new/bot](https://developer.webex.com/my-apps/new/bot)** +- If you have an existing bot, get its token here (regenerate a new token): **[https://developer.webex.com/my-apps](https://developer.webex.com/my-apps)** You can set your `BOT_TOKEN` by running this script in the project directory: @@ -59,8 +65,29 @@ OPEN_AI_KEY=__REPLACE__ME__ BOT_TOKEN=__REPLACE__ME__ ``` -## Boot it up +## 7) Take it for a spin -Greet your agent and attempt a generation +Send a message to your agent and attempt a generation + + + +- This is a bare-bones example which can be easily extended-- To see a reference (which depends a storage/state mechanism) which will manage conversational context + swap personas, handle file-uploads (.doc, xlsx files, and other) and inject into prompt, see here: https://github.com/valgaze/speedybot-gpt4 Note: this example happens to use OpenAI, but you can swap-in HuggingFace, **[Anthropic](https://docs.axflow.dev/documentation/models/anthropic-completion.html)** or **[roll your own](https://docs.axflow.dev/guides/models/bring-your-own-models.html)** + + diff --git a/docs/examples/speedybot-starter/README.md b/docs/examples/speedybot-starter/README.md index a387ec1..b4ab9cb 100644 --- a/docs/examples/speedybot-starter/README.md +++ b/docs/examples/speedybot-starter/README.md @@ -35,6 +35,18 @@ Note: By default your agent will communicate using websockets, so you won't need npm run bot:dev ``` + + ## NPM Run Scripts All you'll probably need are `npm run bot:dev` + maybe `npm run bot:reset` @@ -74,3 +86,10 @@ However you set up your system, make sure to run `node -v` in your terminal to v If you see an error that reads somnething like `Forbidden: User has excessive device registrations` you can run `npm run bot:reset`, wait a few minutes and try again + + diff --git a/docs/examples/standard-server/README.md b/docs/examples/standard-server/README.md index 59a1a25..281ccce 100644 --- a/docs/examples/standard-server/README.md +++ b/docs/examples/standard-server/README.md @@ -1,4 +1,4 @@ -## Speedybot Starter +## Standard Server ## 1) Clone repo & install dependencies @@ -36,19 +36,49 @@ npm run bot:dev ## 4) Run a test -To test just the incoming webhook, edit the **[/incoming_webhook](./src/index.ts)** route & run this command to send a test paylaod +To test **only** the incoming webhook, edit the **[/incoming_webhook](./src/index.ts)** route & run this command to send a test paylaod ``` curl -X POST -H "Content-Type: application/json" -d '{"id": 1234567890987654321}' http://localhost:8000/incoming_webhook ``` -Unlike the **[websockets example](./../speedybot-starter/README.md)**, you will need to deploy this serve or use a secure mechanism to expose it to the internet and then register the webhooks +## 5) Register your webhooks -You can register webhooks with: +- Right now if you try to interact with your "deployed" agent through the WebEx client nothing happens, nobody is "home" to answer the knock at the door -```sh -npm init speedybot webhook create -``` +- For this situation (where the whole agent is on a standard server) you'll need to find a way to securely expose that server in a way that is publically reachable + +- Hop on over to the **[SpeedyBot Garage (https://speedybot.js.org/garage)](https://speedybot.js.org/garage)**, enter your access token, select the Webhooks tab, and then **Add New Webhook** and add the URL of your server and (optionally but hopefully) a webhook secret + + + +## 6) Supply your Webhook "secret" to your Worker + +Even though it's "optional", it's a really, really good idea to set a Webhook Secret too so you can make sure incoming requests are the real deal. For more detail, see **[https://speedybot.js.org/webhooks#securing-webhooks](https://speedybot.js.org/webhooks#securing-webhooks)** + +## 7) Take it for a spin + + ## NPM Run Scripts @@ -67,3 +97,10 @@ All you'll probably need are `npm run bot:dev` + maybe `npm run bot:reset` | `npm run bot:help` | Displays help information for the bot | | `npm run help` | Alias for npm run bot:help | | `npm run bot:addsecret` | Adds a secret to the bot's configuration | + + diff --git a/docs/examples/worker/README.md b/docs/examples/worker/README.md index 70068fe..b80b8dd 100644 --- a/docs/examples/worker/README.md +++ b/docs/examples/worker/README.md @@ -1,4 +1,4 @@ -# Add your bot on a Workers +# [QUICKSTART] 🔥 Deploy your bot to a Worker/V8 Isolate Note: The steps below assume you have a working WebEx account + a Cloudflare account with permission to create Workers @@ -12,33 +12,37 @@ npm i ## 2) Get + Set your bot access token -- Create a bot from scratch here + cpo the token: **[https://developer.webex.com/my-apps/new/bot](https://developer.webex.com/my-apps/new/bot)** +- Create a bot from scratch here + copy the token: **[https://developer.webex.com/my-apps/new/bot](https://developer.webex.com/my-apps/new/bot)** -- If you have an existing bot, get its token her (regenerate): **[https://developer.webex.com/my-apps](https://developer.webex.com/my-apps)** +- If you have an existing bot, get its token here (regenerate a new token): **[https://developer.webex.com/my-apps](https://developer.webex.com/my-apps)** -## 3) Get your bot URL +## 3) Get your bot's URL - If you don't have one already, get a **[cloudflare account](https://dash.cloudflare.com/sign-up)** - Authenticate your machine with `npx wrangler login` -- Create a new "worker" from the **[cloudflare dashboard](https://dash.cloudflare.com)** & note its URL (you can name it something like https://speedybot1234.username.workers.dev) +- Run the command to deploy the code in this repo to your Worker and get your bot URL -## 4) Add your bot token +``` +npm run deploy +``` -From the same directory as the repo run the following command to add a secret called `BOT_TOKEN` and enter your info using **[secrets manager](https://blog.cloudflare.com/workers-secrets-environment/#supporting-secrets)** +You'll be prompted to open your browser and you'll see an authorization screen like the following asking to enable **[wrangler (Worker's CLI tool)](https://developers.cloudflare.com/workers/wrangler/)** to take actions with your account, click **ALLOW** -```sh -npx wrangler secret put BOT_TOKEN -``` + + +The URL will look something like https://speedybot-worker-infra.your_username.workers.dev (you'll need it in a minute when we register webhooks) -To secure your webhooks with a secret set a secret: +## 4) Add your bot token + +From the same directory as the repo run the following command to add a secret called `BOT_TOKEN` and enter your info using **[secrets manager](https://developers.cloudflare.com/workers/configuration/secrets/#secrets-on-deployed-workers)** ```sh -npx wrangler secret put WEBHOOK_SECRET +npx wrangler secret put BOT_TOKEN ``` -![image](https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/various/worker_secret.gif) + ## 5) Deploy your agent @@ -48,24 +52,57 @@ From the same directory as the repo run this command to deploy your agent (now b npm run deploy ``` + + ## 6) Register your webhooks -- Make a note the URL of the deployed function (ie http://speedybot-mini.username.workers.dev) +- Right now if you try to interact with your "deployed" agent nothing happens, nobody is "home" to answer the knock at the door -Unlike the **[websockets example](https://speedybot.js.org/examples/speedybot-starter/README)**, you will need to deploy this serve or use a secure mechanism to expose it to the internet and then register the webhooks +- Make a note of the URL of the deployed function (ie https://speedybot-worker-infra.your_username.workers.dev) -Hop on over to the **[Webhooks Section](https://speedybot.js.org/webhooks)** to register your webhooks and secret +- Hop on over to the **[SpeedyBot Garage (https://speedybot.js.org/garage)](https://speedybot.js.org/garage)**, enter your access token, select the Webhooks tab, and then **Add New Webhook** and add your Worker's URL and (optionally) a webhook secret -## 7) Take it for a spin - -- After connecting webhooks, take it for a spin + - +## 6a) Supply your Webhook "secret" to your Worker -## Webhook secrets +Even though it's "optional", it's a really, really good idea to set a Webhook Secret too so you can make sure incoming requests are the real deal. For more detail, see **[https://speedybot.js.org/webhooks#securing-webhooks](https://speedybot.js.org/webhooks#securing-webhooks)** -- From the same directory as the repo run the following command to add a secret called `WEBHOOK_SECRET` and use the same secret value used when registering webhooks: +To supply your Worker with a webhook secret, set a secret called WEBHOOK_SECRET which you'll need to supply to your Worker like you did with your `BOT_TOKEN` value ```sh npx wrangler secret put WEBHOOK_SECRET ``` + +## 7) Take it for a spin + +- After connecting webhooks, take it for a spin + + + + diff --git a/docs/garage.md b/docs/garage.md index 1b94427..78e1cae 100644 --- a/docs/garage.md +++ b/docs/garage.md @@ -25,7 +25,7 @@ ref="selectRef" The editor above is "live" & has type hints so you can dive in and get started with SpeedyCard. If you need some inspiration, press the dice 🎲 button to cycle through some sample SpeedyCards. You can preview the output JSON, a rendering of what it will look like and if you have a token set you can even send the card to someone. -Note: Afer you send the card to someone, if you want to collect the data from Adaptive Cards or take action from it, you'll need a SpeedyBot server. You can set one up in about 15 seconds by +Note: Afer you send the card to someone, if you want to collect the data from Adaptive Cards or take action from it, you'll need a SpeedyBot server. You can set one up in seconds **[following the instructions here](./new.md)** diff --git a/docs/index.md b/docs/index.md index d2c71ca..ca9c649 100644 --- a/docs/index.md +++ b/docs/index.md @@ -18,17 +18,17 @@ hero: features: - title: Speedy AND Easy icon: 🏝 - details: "SpeedyBot offers lots of DX goodness-- live-reload on code-changes (without tunneling), zero external dependencies, built-in type hints to keep you building bots not scouring docs" + details: "Build bots effortlessly with SpeedyBot's live-reload on code changes, zero external dependencies, and built-in type hints. Spend more time building bots, less time scouring docs." link: /new - title: Portable AND Deployable icon: 🧳 - details: "SpeedyBot can run in serverless/edge functions, Bun/Deno/Vercel/friends, fixed server, CI/CD script, whatever ya wants" + details: "Run SpeedyBot anywhere you want – serverless, edge functions, Bun/Deno/Vercel, fixed server, CI/CD scripts. The choice is yours for seamless deployment." # details: "With SpeedyBot, effortlessly deploy your projects to a variety of infrastructures, be it serverless, CI/CD pipelines, script-hosted servers, global CDNs or aligning to your preferences." link: ./examples/ - title: Simple AND Secure icon: 🛠 - details: "SpeedyBot includes a 'garage', a visual tool that simplifies and secures the management of webhooks, enrichment of interactive SpeedyCards, with an added perk of searchable API docs and examples." + details: "SpeedyBot features a 'garage' for visual webhook management, interactive SpeedyCards enrichment, and searchable API docs. Keep it simple, keep it secure." link: /garage.md --- diff --git a/docs/new.md b/docs/new.md index 6797431..4a48e99 100644 --- a/docs/new.md +++ b/docs/new.md @@ -1,12 +1,12 @@ # "I'm new here" 🐣 -tl;dr: SpeedyBot helps you efficiently design, deploy, and secure rich conversation systems in enterprises and large teams +tl;dr: SpeedyBot helps you efficiently design, deploy, and secure rich conversation systems-- especially in enterprises and large teams with complex requirements -Follow the quick 3-step setup below to go from zero to a SpeedyBot running on your local machine (which you can later seamlessly deploy to any infrastructure you want if needed) +Follow the quick setup below to go from zero to a SpeedyBot running on your local machine (which you can later seamlessly **[deploy to any infrastructure you want](./examples.md)** if needed) ## Step I: Grab Your Access Token -- You'll need a WebEx account to build bots— if you don't have one one, sign up for a new account **[here](https://signup.webex.com/sign-up)** +- You'll need a WebEx account to build bots— if you don't have one one, sign up for a new account here: **[https://signup.webex.com/sign-up](https://signup.webex.com/sign-up)** - Once you have an account, create a new bot and copy its access token from here: **[https://developer.webex.com/my-apps/new/bot](https://developer.webex.com/my-apps/new/bot)** @@ -58,7 +58,7 @@ SpeedyBot does **NOT** log/persist or do anything (except what you tell it to do ## Step II: Send a Test Message with Your Access Token -- Let's test out your bot access token by sending a **[SpeedyCard](#im-new-here-🐣)** to you as a direct message (tap the 🎲 to shuffle through some examples) +- Let's test out your bot access token by sending a **[SpeedyCard](#im-new-here-🐣)** to you as a direct message (tap the 🎲 to shuffle through some examples as inspiration or write your own) @@ -88,18 +88,18 @@ SpeedyBot does **NOT** log/persist or do anything (except what you tell it to do - In fact, any user interaction with {{ store.state.userData?.emails[0] ?? 'your bot'}} right now— be it a message, SpeedyCard submission, or file upload, results in icy radio silence -- That's because there's nobody "home" to answer the request-- you can use SpeedyBot to "listen" so anytime someone interacts with your bot it will respond back automatically per your instructions +- That's because there's nobody "home" to answer the request-- SpeedyBot can "listen" for messages (or card data submissions or files) so anytime someone interacts with your bot it will respond back automatically per your instructions ## Run your bot from your computer -- Keeping things simple to start you'll run the bot from your machine (ie when your computer is off your bot is "off") but later if you need to, you can deploy it to virtually **[any standard server or scalable serverless cloud infrastructure you want](./examples/index)** +- Keeping things simple to start you'll run the bot from your machine (ie when your computer is off, your bot is "off") but later if you need to, you can deploy it to virtually **[any standard server or scalable serverless cloud infrastructure you want](./examples/index)** Copy the commands below to get up and running ::: code-group ```sh-vue [🥺 New (recommended)] -npm init speedybot setup {{ store.state.tokenValid ? `--token ${store.state.token}` : '' }} --project default +npm init speedybot setup {{ store.state.tokenValid ? `--token ${store.state.token}` : '' }}--project default ``` ```sh-vue [👹 Experienced] @@ -131,19 +131,27 @@ However you set up your system, make sure to run `node -v` in your terminal to v ::: -If all went well, you should see something like this in your terminal: +Now send a message to your bot and you'll see a welcome screen with buttons and cards: -Now send a message to your bot and you'll see a welcome screen with buttons and cards - - + -You can customize this however you want by editing the file **[settings/bot.ts](https://github.com/valgaze/speedybot-local-server/blob/deploy/settings/bot.ts)** +You can now customize this bot however you want by editing the file **[settings/bot.ts](https://github.com/valgaze/speedybot-local-server/blob/main/settings/bot.ts)** -Turn off your bot by tapping CTRL-C, to +You can turn off your bot by press **CTRL-C** -Whether you're just starting out on your conversation design journey or a seasoned pro, SpeedyBot has you covered for crafting bots that can do it all-- securely integrate w/ LLMs + content management systems, **[process file-uploads](./patterns.md#handle-file-uploads)**, **[segment content based on user data + behavior](./patterns.md#restrict-emails)**, create + manage **[SpeedyCards](./speedycard.md)**, ask for a user's location in a privacy-respecting way, and much more. +Whether you're just starting out on your conversation design journey or a seasoned pro, SpeedyBot has you covered for crafting bots that can do it all-- securely integrate w/ LLMs + content management systems, **[process file-uploads](./patterns.md#handle-file-uploads)**, **[segment content based on user data + behavior](./patterns.md#restrict-access-pattern)**, create + manage **[SpeedyCards](./speedycard.md)**, ask for a user's location in a privacy-respecting way, and much more. When you're ready to deploy it to a server, serverless function or virtually any infrastructure/device, **[check out the examples](./examples.md)** diff --git a/docs/patterns.md b/docs/patterns.md index c4d4257..f40a318 100644 --- a/docs/patterns.md +++ b/docs/patterns.md @@ -12,7 +12,6 @@ Below are some comon copy/paste'able step "snippets" or patterns which should co - NodeJS 18+ or equivalent runtime like Bun/Deno/Worker/friends w/ **[fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)** available/polyfill - Text editor -- Terminal for accessing speedybot-cli ``` npm install speedybot @@ -22,9 +21,74 @@ npm install speedybot See **[/new](./new.md)** for easy to follow instructions to go from zero to a bot you can extend and customize however you want. With SpeedyBot is all you need to focus on when building your bot is `bot.ts.` If you need to deploy it to a highly controlled server or a serverless function or any infra you want you just need to pop your `bot.ts` and you're good to go. -## Send a simple message from a simple script +## The basics -While SpeedyBot can take care of all the details of running a bot, you can also opportunistically "pluck" out just bits you need and put SpeedyBot to work your way. The pattern below is not a full interactive agent, but shows how you can use SpeedyBot in a script to send messages + cards: +SpeedyBot simplifies the process of creating interactive conversations and makes it easy to deploy and manage bots. Anytime your SpeedyBot receives an event from a user (a message, card, file upload, etc) it operates through a series of "steps." + +Each step is just a function which **must** return either $.next to proceed to the next step or $.end to terminate the chain. Each step can be synchronous or asynchronous depending on what you need to do. + +A step can do **whatever** you want (send the user a message or a **[SpeedyCard](./speedycard.md)** or send/fetch data from some external system, do nothing at all) Whatever you're up to in a step, however, try not to take too long to do it because you probably don't want to keep your user waiting. + +```ts +import { SpeedyBot } from "speedybot"; + +Bot.addStep(async ($) => { + await $.send("Step 1"); + if ($.text === "hi") { + await $.reply(`Hi there ${$.author.name}!`); + } + return $.next; +}); + +Bot.addStep(($) => { + $.ctx.scribbledData = "someData_" + Math.random(); + return $.next; +}); + +Bot.addStep(async ($) => { + await $.send("Step 2"); + const card = $.card() + .addTitle("My great card!") + .addText(`The random scribbled data is ${$.ctx.scribbledData}`) + .addTable([ + ["Label", "Data 1"], + ["Label 2", "Data 2"], + ["Label 3", "Data 3"], + ]); + await $.send(card); // send a card, not just text + return $.next; +}); + +Bot.addStep(async ($) => { + await $.send("Step 3"); + return $.end; // <--- Stops the train! +}); + +Bot.addStep(async ($) => { + await $.send("Step 4 (we never reach this!"); + return $.end; +}); +``` + + + +- The $ parameter provides a bunch of useful features, allowing you to reply to messages, send and check card data (see **[below for details on that](#simple-card-handler)**), and access information about the message and its author. + +- Important: Avoid excessive usage of steps. If you find yourself writing a lot of "handlers" or checks in your steps you might be making things harder than they need to be. For a natural language "conversation", for example, focus on capturing user utterances (`$.text`) in your steps and then all you need to do is transmit back and forth to an external service and keep your steps short and sweet and simple + +## Send a message from a script + +While SpeedyBot can take care of all the details of running a bot, you can also opportunistically "pluck" out just bits you need. The pattern below is not a full interactive agent (there's no steps), but shows how you can use SpeedyBot in a script to send messages + cards: ```ts import { SpeedyBot } from "speedybot"; @@ -102,7 +166,7 @@ const Bot = new SpeedyBot(); // Will make sure Bot.insertStepToFront(async ($) => { - const allowedDomains = ["joe.com"]; + const allowedDomains = ["allaboutfrogs.org", "geocities.com"]; if (!allowedDomains.includes($.author.domain) && !$.data) { await $.send("You are not allowed sorry :( "); await $.send( @@ -186,7 +250,17 @@ Bot.addStep(async ($) => { }); ``` - + ## Support Multiple Environments @@ -315,25 +389,6 @@ Bot.addStep(async ($) => { **Important:** Files are automatically scanned for viruses. If you call the `getData` method before the scan finishes, you might encounter a **[423 File Locked status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/423)**. This can happen with large files (but generally not a common issue). You can implement a retry mechanism using an adpative card w/ the uploaded url. -### Restrict emails - -```ts -import { SpeedyBot } from "speedybot"; - -const Bot = new SpeedyBot(); - -Bot.addStep(async ($) => { - const allowedDomains = ["allaboutfrogs.org", "geocities.com"]; - const proceed = allowedDomains.include($.author.domain); - if (!proceed) { - await $.send("sorry, your email is not part of this agent"); - return $.end; - } - - return $.next; -}); -``` - ## Send a message, card (static file) SpeedyBot can be as big or as small a part of your agent as you want it to be. If you just want to send a few cards and messages and don't need to deal with webhooks (or consume them by a way unique to your team or organization) you can just use SpeedyBot directly @@ -357,3 +412,10 @@ async function main(token) { main("__REPLACE__ME__"); ``` + + diff --git a/docs/webhooks.md b/docs/webhooks.md index 81f75ab..efc2a7f 100644 --- a/docs/webhooks.md +++ b/docs/webhooks.md @@ -5,35 +5,27 @@ outline: deep ## Webhooks -Webhooks are the "glue" that connect your agent to your users. Note that to use webhooks (rather than websockets), you will need a publically-accessible hostname in order to register a webhook. +- Webhooks are the "glue" that connect your agent to your users. Note that to use webhooks (rather than websockets), you will need a publically-accessible hostname to associate with your agent. -If you use a **[secret](https://developer.webex.com/blog/using-a-webhook-secret)** with your webhook (which you should), see **[Securing Webhooks](#securing-webhooks)** for information about how to validate the secret passed on payloads. +- If you use a **[secret](https://developer.webex.com/blog/using-a-webhook-secret)** with your webhook (which you should), see **[Securing Webhooks](#securing-webhooks)** for information about how to validate the secret passed on payloads. -Below you can create, inspect, and delete webhooks associated with your bot's access token. - - - - - - - - +- In the **[SpeedyBot Gargage](./garage.md)**, you can create, inspect, and delete webhooks associated with your bot's access token. ## Securing Webhooks -## Webhook secrets +### Webhook secrets -To help secure your agent, you can add a "secret" when creating webhooks. +To help secure your agent, you can (and **SHOULD!!**) add a "secret" when creating your webhooks. If you add a secret when creating a webhook on each incoming request will receive a hashed version of the request body under the header **X-Spark-Signature** **Bottom line:** DO THIS. With your webhook secret you can take the SHA-1 representation of the request body and if it matches the signature on the header proceed otherwise simply discard the request. -Note: All of the samples in the **[examples directory](./examples/index)** of the SpeedyBot repo have reference implementations of validating webhooks appropriate for each platform. +Note: All of the samples in the **[examples directory](./examples/index)** of the SpeedyBot repo have reference implementations of validating webhooks in the manner appropriate for each platform. ## Reference implementations -## NodeJS +## NodeJS (Lambda, standard server, etc) ::: code-group @@ -154,16 +146,3 @@ const res = validateWebhook( - https://developer.webex.com/blog/using-a-webhook-secret - https://community.cisco.com/t5/collaboration-blogs/using-a-webhook-secret/ba-p/3662176 - https://blogs.cisco.com/learning/chatops-how-to-secure-your-webex-bot - - diff --git a/examples/deno/README.md b/examples/deno/README.md index e2ea210..5e4b5eb 100644 --- a/examples/deno/README.md +++ b/examples/deno/README.md @@ -45,3 +45,9 @@ Verify you hit save underneath each secret you add to the playground - If all went well you should see this and your bot is up and running on Deno! ![sb](./../../docs/assets/deno/deno_webhook.png) + +## 5) Take it for a spin + +After connecting webhooks, send your bot a message to take it for a spin + + diff --git a/examples/deno/index.ts b/examples/deno/index.ts index 2e3b81e..321227a 100644 --- a/examples/deno/index.ts +++ b/examples/deno/index.ts @@ -17,7 +17,7 @@ Deno.serve(async (req: Request) => { const Bot = new SpeedyBot(CONFIG.token); const json = await req.json(); - if (CONFIG.webhookSecret && signature) { + if (signature) { const validateWebhook = async ( requestData: T, secret: string, diff --git a/examples/lambda/README.md b/examples/lambda/README.md index 4bb9c32..c1e054e 100644 --- a/examples/lambda/README.md +++ b/examples/lambda/README.md @@ -1,8 +1,10 @@ -# SpeedyBot on AWS Lambda +# [QUICKSTART] λ Deploy your bot to a "serverless" AWS Lambda Function -Note: This example uses the **[Serverless Stack (SST)](https://serverless-stack.com/)** toolchain for provisioning, deployment of infrastructure. SST is built on top of a version **[AWS Cloud Development Kit (cdk)](https://aws.amazon.com/cdk/)** and makes it possible to express your infrastructure needs as spec/code. SST is definitely not required, but is the quickest route to a serverless deployment. +- This example uses the **[Serverless Stack (SST)](https://serverless-stack.com/)** toolchain for provisioning, deployment of infrastructure. -SpeedyBot has been built with serverless in mind from the beginning-- serverless infrastructure is "asleep" until you need it. Start-up times are fast enough to interact with the chat client withot timing out. +- SST is built on top of a version **[AWS Cloud Development Kit (cdk)](https://aws.amazon.com/cdk/)** and makes it possible to express your infrastructure needs as spec/code. SST is definitely not required, but is the quickest route to a serverless deployment. + +- SpeedyBot has been built with serverless in mind from the beginning-- serverless infrastructure is "asleep" until you need it. Start-up times are generally fast enough to interact with the chat client withot timing out. Check out the **[Worker sample](https://speedybot.js.org/examples/worker/README)** for a fast-loading V8 Isolate without the overhead of a container ## 1) Fetch repo & install dependencies @@ -13,6 +15,8 @@ cd examples/lambda npm install ``` +Note: The actual code of the agent located in **packages/functions/src/settings/bot.ts** and lamba code is available **packages/functions/src/lambda.ts** + ## 2) Set your bot access token - If you have an existing bot, get its token here: **[https://developer.webex.com/my-apps](https://developer.webex.com/my-apps)** @@ -38,7 +42,7 @@ Note: You'll need an AWS account that has authorization/billing to create lambda 3b. Setup AWS CLI: https://sst.dev/chapters/configure-the-aws-cli.html -## 4) Deploy your bot and get its public URL +## 4) Deploy your bot and obtain its public URL Run this command from the project directory: @@ -48,11 +52,35 @@ npm run deploy If deployment is successful, you should find that your url that looks something like this: https://abcd123456.execute-api.us-east-1.amazonaws.com -## 4) Register webhooks + + +## 5) Register your webhooks + +- Right now if you try to interact with your "deployed" agent nothing happens, nobody is "home" to answer the knock at the door -Hop on over to the **[Webhooks Section](https://speedybot.js.org/webhooks)** to register your webhooks and secret +- Make a note of the URL of the deployed function and append /speedybot on the end , ex https://abcd123456.execute-api.us-east-1.amazonaws.com/speedybot + +- Hop on over to the **[SpeedyBot Garage (https://speedybot.js.org/garage)](https://speedybot.js.org/garage)**, enter your access token, select the Webhooks tab, and then **Add New Webhook** and add your lambdas's URL + `/speedybot` and (optionally) a webhook secret + + Note: This uses SST but any deployment mechanism/structure you prefer works fine Note: This SST configuration is setup to capture incoming WebEx requests on the `/speedybot` route, you can change any/all the behavior in **[the stack config](./stacks/MyStack.ts)** + +## 6) Take it for a spin + +- After connecting webhooks, take it for a spin + + + +## 7) Local Dev + +SST has a cool feature where you can develop your lambda/bot code locally but reach real AWS services. + +Install dependencies in **packages/functions/src** and run `npm install` and you can run the following command for live-reload: + +``` +npm run dev +``` diff --git a/examples/lambda/packages/functions/package.json b/examples/lambda/packages/functions/package.json index 1c4903a..6832363 100644 --- a/examples/lambda/packages/functions/package.json +++ b/examples/lambda/packages/functions/package.json @@ -14,6 +14,6 @@ }, "dependencies": { "cross-fetch": "^4.0.0", - "speedybot": "latest" + "speedybot": "^2.0.0" } } diff --git a/examples/lambda/packages/functions/src/lambda.ts b/examples/lambda/packages/functions/src/lambda.ts index 7cadfed..69f2858 100644 --- a/examples/lambda/packages/functions/src/lambda.ts +++ b/examples/lambda/packages/functions/src/lambda.ts @@ -24,28 +24,17 @@ export const handler: APIGatewayProxyHandlerV2 = async (event, context) => { const secret = CONFIG.secret; // webhook secret try { - // patch to run before starting middleware loop - // useful for validating secrets, see deets: https://github.com/valgaze/speedybot/blob/deploy/docs/webhooks.md#webhook-secrets + if (signature) { + const proceed = validateSignature( + signature as string, + secret as string, + data + ); - Bot.insertStepToFront(async ($) => { - // Webhook "secret" check - if (secret && signature) { - const proceed = validateSignature( - signature as string, - secret as string, - data - ); - if (!proceed) { - // Invalid webhook signature, discard - return $.end; - } - await $.send(`Just wanna let you know, we decided: ${$.next}`); - return $.next; - } else { - // no signature check - return $.next; + if (!proceed) { + throw new Error("Issue with webhook secret"); } - }); + } Bot.addSecrets(CONFIG); await Bot.runMiddleware(data as ENVELOPES); diff --git a/examples/lambda/packages/functions/src/settings/bot.ts b/examples/lambda/packages/functions/src/settings/bot.ts index ab007f4..aa3ea14 100644 --- a/examples/lambda/packages/functions/src/settings/bot.ts +++ b/examples/lambda/packages/functions/src/settings/bot.ts @@ -95,7 +95,7 @@ Bot.addStep(async ($) => { const card = cardHash[value].addSubcard( $.card() .addLink( - "https://speedybot.js.org/docs/speedycard?card=${value}", + `https://speedybot.js.org/speedycard?card=${value}`, "See the source for this card" ) .addText("Pick a new card") @@ -419,7 +419,11 @@ export const cardHash: { [key: string]: SpeedyCard } = { ) .addText( "نئے پلگ ان + انضمام کے اختیارات کے بارے میں جاننے کے لیے بٹن کو تھپتھپائیں۔", - { color: "red", backgroundColor: "blue", align: "Right" } + { + color: "red", + backgroundColor: "blue", + align: "Right", + } ) .addLinkButton("https://www.figma.com/community/plugins", "اورجانیے 🚀"), acai: Bot.card() @@ -703,3 +707,16 @@ Bot.exact("$survey", async ($) => { await $.send(surveyCard); return $.end; }); + +// "ping"/"pong" +Bot.addStep(async ($) => { + if ($.text) { + const lower = $.text.toLowerCase(); + if (lower === "pong") { + await $.send("ping"); + } else if (lower === "ping") { + await $.send("pong"); + } + } + return $.next; +}); diff --git a/examples/llm-stream/README.md b/examples/llm-stream/README.md index 8ed9423..5b0d26d 100644 --- a/examples/llm-stream/README.md +++ b/examples/llm-stream/README.md @@ -1,32 +1,38 @@ ## LLM-Stream -This was the major inspiration for SpeedyBot 2.0-- how to efficiently allocate the edits to "stream in" responses from an LLM eendpoint. +This UI pattern was a major inspiration for building SpeedyBot 2.0-- how to efficiently allocate the edits to "stream in" responses from an LLM service. -- You can make up to 10 edits on a WebEx message which can approximate the "stream-in" effect on some LLM applications (otherwise the latency involved with forcing a "just wait-it-out" for a generation is an awful experience) - -- With unknown chunk-length & an unknown number of chunks, we need a reasonable way to "smoothly" stream in edits so the user isn't left hanging but also not use up our precious 10 edits +- You can make up to 10 edits on a WebEx message which can approximate the "stream-in" effect on some LLM applications (otherwise the latency involved with forcing a user to "just wait-it-out" until the model completes is an awful experience) - Streaming is implemented using: https://github.com/axflow/axflow (from https://axflow.dev), although **[vercel](https://sdk.vercel.ai/docs/concepts/streaming)** and others have libraries that could work -- This is a bare-bones example which can be easily extended-- To see a reference (which depends a storage/state mechanism) which will manage conversational context + swap personas, handle file-uploads (.doc, xlsx files, and other) and inject into prompt, see here: https://github.com/valgaze/speedybot-gpt4 - Example Stream: - - -## Setup + -## 1) Clone repo & install dependencies +## 1) Fetch repo & install deps ``` git clone https://github.com/valgaze/speedybot -cd examples/llm-steam -npm install +cd speedybot/examples/llm-stream +npm i ``` -## 2) Set your bot access token +## 2) Get + Set your bot access token -- Make a new bot and note its access token from here: **[https://developer.webex.com/my-apps/new/bot](https://developer.webex.com/my-apps/new/bot)** +- Create a bot from scratch here + copy the token: **[https://developer.webex.com/my-apps/new/bot](https://developer.webex.com/my-apps/new/bot)** + +- If you have an existing bot, get its token here (regenerate a new token): **[https://developer.webex.com/my-apps](https://developer.webex.com/my-apps)** You can set your `BOT_TOKEN` by running this script in the project directory: @@ -59,8 +65,22 @@ OPEN_AI_KEY=__REPLACE__ME__ BOT_TOKEN=__REPLACE__ME__ ``` -## Boot it up +## 7) Take it for a spin + +Send a message to your agent and attempt a generation -Greet your agent and attempt a generation + + +- This is a bare-bones example which can be easily extended-- To see a reference (which depends a storage/state mechanism) which will manage conversational context + swap personas, handle file-uploads (.doc, xlsx files, and other) and inject into prompt, see here: https://github.com/valgaze/speedybot-gpt4 Note: this example happens to use OpenAI, but you can swap-in HuggingFace, **[Anthropic](https://docs.axflow.dev/documentation/models/anthropic-completion.html)** or **[roll your own](https://docs.axflow.dev/guides/models/bring-your-own-models.html)** diff --git a/examples/llm-stream/package-lock.json b/examples/llm-stream/package-lock.json deleted file mode 100644 index 66caacb..0000000 --- a/examples/llm-stream/package-lock.json +++ /dev/null @@ -1,17746 +0,0 @@ -{ - "name": "llm-stream", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "llm-stream", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "@axflow/models": "^0.0.25", - "speedybot": "^2.0.0-beta.72" - }, - "devDependencies": { - "@babel/runtime-corejs2": "^7.20.1", - "@types/express": "^4.17.21", - "@types/node": "^16.18.3", - "cross-fetch": "^3.1.5", - "dotenv": "^16.0.3", - "tsx": "^4.7.0", - "typescript": "^3.8.3", - "webex": "^2.31.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@axflow/models": { - "version": "0.0.25", - "resolved": "https://registry.npmjs.org/@axflow/models/-/models-0.0.25.tgz", - "integrity": "sha512-EYv+g7dtXBmrNmX4Ktz6ajwKok+D2N8u34G6j4AzAbnVuiVurNSbhhpv+ZDjyhj0quKA2e76jN4T1GS5hfEh2Q==", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "react": "^18.2.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - } - } - }, - "node_modules/@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.9.tgz", - "integrity": "sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.9", - "@babel/parser": "^7.23.9", - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/core/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/core/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/core/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@babel/core/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/core/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/core/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz", - "integrity": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.9.tgz", - "integrity": "sha512-B2L9neXTIyPQoXDm+NtovPvG6VOLWnaXu3BIeVDWwdKFgG30oNa6CqVGiJPDWQwIAK49t9gnQI9c6K6RzabiKw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz", - "integrity": "sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.9.tgz", - "integrity": "sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/template": "^7.23.9", - "@babel/traverse": "^7.23.9", - "@babel/types": "^7.23.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz", - "integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", - "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", - "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.9.tgz", - "integrity": "sha512-hJhBCb0+NnTWybvWq2WpbCYDOcflSbx0t+BYP65e5R9GVnukiDTi+on5bFkk4p7QGuv190H6KfNiV9Knf/3cZA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.23.9", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-decorators": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-default-from": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.23.3.tgz", - "integrity": "sha512-Q23MpLZfSGZL1kU7fWqV262q65svLSCIP5kZ/JCW/rKTCm/FrLjpvEd2kfUYMVeHh4QhV/xzyoRAHWrAZJrE3Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-default-from": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", - "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", - "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz", - "integrity": "sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-default-from": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.23.3.tgz", - "integrity": "sha512-KeENO5ck1IeZ/l2lFZNy+mpobV3D2Zy5C1YFnWm+YuY5mQiAWc4yAp13dqgguwsBsFVLh4LPCEqCa5qW13N+hw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-flow": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz", - "integrity": "sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz", - "integrity": "sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz", - "integrity": "sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz", - "integrity": "sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-flow": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", - "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.9.tgz", - "integrity": "sha512-KDlPRM6sLo4o1FkiSlXoAa8edLXFsKKIda779fbLrvmeuc3itnjCtaO6RrtoaANsIJANj+Vk1zqbZIMhkCAHVw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", - "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", - "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/types": "^7.23.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", - "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz", - "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz", - "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz", - "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.9.tgz", - "integrity": "sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", - "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/polyfill": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.12.1.tgz", - "integrity": "sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==", - "deprecated": "🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.", - "dev": true, - "dependencies": { - "core-js": "^2.6.5", - "regenerator-runtime": "^0.13.4" - } - }, - "node_modules/@babel/polyfill/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true - }, - "node_modules/@babel/preset-env": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.9.tgz", - "integrity": "sha512-3kBGTNBBk9DQiPoXYS0g0BYlwTQYUTifqgKTjxUwEUkduRT2QOa0FPGBJ+NROQhGyYO5BuTJwGvBnqKDykac6A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.9", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.4", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.4", - "@babel/plugin-transform-classes": "^7.23.8", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.4", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.4", - "@babel/plugin-transform-for-of": "^7.23.6", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.4", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.9", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", - "@babel/plugin-transform-numeric-separator": "^7.23.4", - "@babel/plugin-transform-object-rest-spread": "^7.23.4", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.4", - "@babel/plugin-transform-optional-chaining": "^7.23.4", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.4", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.8", - "babel-plugin-polyfill-corejs3": "^0.9.0", - "babel-plugin-polyfill-regenerator": "^0.5.5", - "core-js-compat": "^3.31.0", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-flow": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.23.3.tgz", - "integrity": "sha512-7yn6hl8RIv+KNk6iIrGZ+D06VhVY35wLVf23Cz/mMu1zOr7u4MMP4j0nZ9tLf8+4ZFpnib8cFYgB/oYg9hfswA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-transform-flow-strip-types": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz", - "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-transform-react-display-name": "^7.23.3", - "@babel/plugin-transform-react-jsx": "^7.22.15", - "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", - "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-typescript": "^7.23.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/register": { - "version": "7.23.7", - "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.23.7.tgz", - "integrity": "sha512-EjJeB6+kvpk+Y5DAkEAmbOBEFkh9OASx0huoEkqYTFxAZHzOAX2Oh5uwAUuL2rUddqfM0SA+KPXV2TbzoZ2kvQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "clone-deep": "^4.0.1", - "find-cache-dir": "^2.0.0", - "make-dir": "^2.1.0", - "pirates": "^4.0.6", - "source-map-support": "^0.5.16" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@babel/runtime": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.9.tgz", - "integrity": "sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs2": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.23.9.tgz", - "integrity": "sha512-lwwDy5QfMkO2rmSz9AvLj6j2kWt5a4ulMi1t21vWQEO0kNCFslHoszat8reU/uigIQSUDF31zraZG/qMkcqAlw==", - "dev": true, - "dependencies": { - "core-js": "^2.6.12", - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.23.9.tgz", - "integrity": "sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.23.9", - "@babel/types": "^7.23.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template/node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/template/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/template/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/template/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@babel/template/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/template/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/template/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.9.tgz", - "integrity": "sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.9", - "@babel/types": "^7.23.9", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/traverse/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/traverse/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/traverse/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@babel/traverse/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/traverse/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/traverse/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.23.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.9.tgz", - "integrity": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@ciscospark/test-users-legacy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ciscospark/test-users-legacy/-/test-users-legacy-1.2.0.tgz", - "integrity": "sha512-WEAe6ntEZOk3TPzk7BGyattgh9OZnKPYNb9idfZnI3Dkb9iO3zUB3AlCqrAMp1I6dQ5+RTkgTuSGdgWP4Toluw==", - "dev": true, - "optional": true, - "dependencies": { - "btoa": "^1.1.2", - "lodash": "^4.17.4", - "node-random-name": "^1.0.1", - "request": "^2.81.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@expo/bunyan": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@expo/bunyan/-/bunyan-4.0.0.tgz", - "integrity": "sha512-Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==", - "dev": true, - "engines": [ - "node >=0.10.0" - ], - "optional": true, - "peer": true, - "dependencies": { - "uuid": "^8.0.0" - }, - "optionalDependencies": { - "mv": "~2", - "safe-json-stringify": "~1" - } - }, - "node_modules/@expo/bunyan/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@expo/cli": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@expo/cli/-/cli-0.17.3.tgz", - "integrity": "sha512-lIK8igsEQxTh4WuDlcEhE0wAJcDrAyjWDF00phdmwuSCpE5SaEXNlddOXvGxEVKPhUxHZUFo9NbfoQC+JVmkfA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/runtime": "^7.20.0", - "@expo/code-signing-certificates": "0.0.5", - "@expo/config": "~8.5.0", - "@expo/config-plugins": "~7.8.0", - "@expo/devcert": "^1.0.0", - "@expo/env": "~0.2.0", - "@expo/image-utils": "^0.4.0", - "@expo/json-file": "^8.2.37", - "@expo/metro-config": "~0.17.0", - "@expo/osascript": "^2.0.31", - "@expo/package-manager": "^1.1.1", - "@expo/plist": "^0.1.0", - "@expo/prebuild-config": "6.7.4", - "@expo/rudder-sdk-node": "1.1.1", - "@expo/spawn-async": "1.5.0", - "@expo/xcpretty": "^4.3.0", - "@react-native/dev-middleware": "^0.73.6", - "@urql/core": "2.3.6", - "@urql/exchange-retry": "0.3.0", - "accepts": "^1.3.8", - "arg": "5.0.2", - "better-opn": "~3.0.2", - "bplist-parser": "^0.3.1", - "cacache": "^15.3.0", - "chalk": "^4.0.0", - "ci-info": "^3.3.0", - "connect": "^3.7.0", - "debug": "^4.3.4", - "env-editor": "^0.4.1", - "find-yarn-workspace-root": "~2.0.0", - "form-data": "^3.0.1", - "freeport-async": "2.0.0", - "fs-extra": "~8.1.0", - "getenv": "^1.0.0", - "glob": "^7.1.7", - "graphql": "15.8.0", - "graphql-tag": "^2.10.1", - "https-proxy-agent": "^5.0.1", - "internal-ip": "4.3.0", - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1", - "js-yaml": "^3.13.1", - "json-schema-deref-sync": "^0.13.0", - "lodash.debounce": "^4.0.8", - "md5hex": "^1.0.0", - "minimatch": "^3.0.4", - "minipass": "3.3.6", - "node-fetch": "^2.6.7", - "node-forge": "^1.3.1", - "npm-package-arg": "^7.0.0", - "open": "^8.3.0", - "ora": "3.4.0", - "picomatch": "^3.0.1", - "pretty-bytes": "5.6.0", - "progress": "2.0.3", - "prompts": "^2.3.2", - "qrcode-terminal": "0.11.0", - "require-from-string": "^2.0.2", - "requireg": "^0.2.2", - "resolve": "^1.22.2", - "resolve-from": "^5.0.0", - "resolve.exports": "^2.0.2", - "semver": "^7.5.3", - "send": "^0.18.0", - "slugify": "^1.3.4", - "source-map-support": "~0.5.21", - "structured-headers": "^0.4.1", - "tar": "^6.0.5", - "temp-dir": "^2.0.0", - "tempy": "^0.7.1", - "terminal-link": "^2.1.1", - "text-table": "^0.2.0", - "url-join": "4.0.0", - "wrap-ansi": "^7.0.0", - "ws": "^8.12.1" - }, - "bin": { - "expo-internal": "build/bin/cli" - } - }, - "node_modules/@expo/cli/node_modules/@expo/prebuild-config": { - "version": "6.7.4", - "resolved": "https://registry.npmjs.org/@expo/prebuild-config/-/prebuild-config-6.7.4.tgz", - "integrity": "sha512-x8EUdCa8DTMZ/dtEXjHAdlP+ljf6oSeSKNzhycXiHhpMSMG9jEhV28ocCwc6cKsjK5GziweEiHwvrj6+vsBlhA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@expo/config": "~8.5.0", - "@expo/config-plugins": "~7.8.0", - "@expo/config-types": "^50.0.0-alpha.1", - "@expo/image-utils": "^0.4.0", - "@expo/json-file": "^8.2.37", - "debug": "^4.3.1", - "fs-extra": "^9.0.0", - "resolve-from": "^5.0.0", - "semver": "7.5.3", - "xml2js": "0.6.0" - }, - "peerDependencies": { - "expo-modules-autolinking": ">=0.8.1" - } - }, - "node_modules/@expo/cli/node_modules/@expo/prebuild-config/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/cli/node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@expo/cli/node_modules/expo-modules-autolinking": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.10.2.tgz", - "integrity": "sha512-OEeoz0+zGx5EJwGtDm9pSywCr+gUCaisZV0mNkK7V3fuRl+EVPBSsI+957JwAc4ZxVps95jy28eLcRRtQ33yVg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@expo/config": "~8.5.0", - "chalk": "^4.1.0", - "commander": "^7.2.0", - "fast-glob": "^3.2.5", - "find-up": "^5.0.0", - "fs-extra": "^9.1.0" - }, - "bin": { - "expo-modules-autolinking": "bin/expo-modules-autolinking.js" - } - }, - "node_modules/@expo/cli/node_modules/expo-modules-autolinking/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/cli/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@expo/cli/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/cli/node_modules/picomatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", - "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/@expo/cli/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/cli/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@expo/cli/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@expo/code-signing-certificates": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@expo/code-signing-certificates/-/code-signing-certificates-0.0.5.tgz", - "integrity": "sha512-BNhXkY1bblxKZpltzAx98G2Egj9g1Q+JRcvR7E99DOj862FTCX+ZPsAUtPTr7aHxwtrL7+fL3r0JSmM9kBm+Bw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "node-forge": "^1.2.1", - "nullthrows": "^1.1.1" - } - }, - "node_modules/@expo/config": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@expo/config/-/config-8.5.4.tgz", - "integrity": "sha512-ggOLJPHGzJSJHVBC1LzwXwR6qUn8Mw7hkc5zEKRIdhFRuIQ6s2FE4eOvP87LrNfDF7eZGa6tJQYsiHSmZKG+8Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "~7.10.4", - "@expo/config-plugins": "~7.8.2", - "@expo/config-types": "^50.0.0", - "@expo/json-file": "^8.2.37", - "getenv": "^1.0.0", - "glob": "7.1.6", - "require-from-string": "^2.0.2", - "resolve-from": "^5.0.0", - "semver": "7.5.3", - "slugify": "^1.3.4", - "sucrase": "3.34.0" - } - }, - "node_modules/@expo/config-plugins": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-7.8.4.tgz", - "integrity": "sha512-hv03HYxb/5kX8Gxv/BTI8TLc9L06WzqAfHRRXdbar4zkLcP2oTzvsLEF4/L/TIpD3rsnYa0KU42d0gWRxzPCJg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@expo/config-types": "^50.0.0-alpha.1", - "@expo/fingerprint": "^0.6.0", - "@expo/json-file": "~8.3.0", - "@expo/plist": "^0.1.0", - "@expo/sdk-runtime-versions": "^1.0.0", - "@react-native/normalize-color": "^2.0.0", - "chalk": "^4.1.2", - "debug": "^4.3.1", - "find-up": "~5.0.0", - "getenv": "^1.0.0", - "glob": "7.1.6", - "resolve-from": "^5.0.0", - "semver": "^7.5.3", - "slash": "^3.0.0", - "slugify": "^1.6.6", - "xcode": "^3.0.1", - "xml2js": "0.6.0" - } - }, - "node_modules/@expo/config-plugins/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@expo/config-types": { - "version": "50.0.0", - "resolved": "https://registry.npmjs.org/@expo/config-types/-/config-types-50.0.0.tgz", - "integrity": "sha512-0kkhIwXRT6EdFDwn+zTg9R2MZIAEYGn1MVkyRohAd+C9cXOb5RA8WLQi7vuxKF9m1SMtNAUrf0pO+ENK0+/KSw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@expo/config/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@expo/config/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/config/node_modules/semver": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.3.tgz", - "integrity": "sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/config/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@expo/devcert": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@expo/devcert/-/devcert-1.1.0.tgz", - "integrity": "sha512-ghUVhNJQOCTdQckSGTHctNp/0jzvVoMMkVh+6SHn+TZj8sU15U/npXIDt8NtQp0HedlPaCgkVdMu8Sacne0aEA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "application-config-path": "^0.1.0", - "command-exists": "^1.2.4", - "debug": "^3.1.0", - "eol": "^0.9.1", - "get-port": "^3.2.0", - "glob": "^7.1.2", - "lodash": "^4.17.4", - "mkdirp": "^0.5.1", - "password-prompt": "^1.0.4", - "rimraf": "^2.6.2", - "sudo-prompt": "^8.2.0", - "tmp": "^0.0.33", - "tslib": "^2.4.0" - } - }, - "node_modules/@expo/devcert/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/@expo/devcert/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/@expo/env": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@expo/env/-/env-0.2.1.tgz", - "integrity": "sha512-deZmRS7Dvp18VM8s559dq/ZjPlV1D9vtLoLXwHmCK/JYOvtNptdKsfxcWjI7ewmo6ln2PqgNI9HRI74q6Wk2eA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "chalk": "^4.0.0", - "debug": "^4.3.4", - "dotenv": "~16.0.3", - "dotenv-expand": "~10.0.0", - "getenv": "^1.0.0" - } - }, - "node_modules/@expo/env/node_modules/dotenv": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", - "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@expo/fingerprint": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@expo/fingerprint/-/fingerprint-0.6.0.tgz", - "integrity": "sha512-KfpoVRTMwMNJ/Cf5o+Ou8M/Y0EGSTqK+rbi70M2Y0K2qgWNfMJ1gm6sYO9uc8lcTr7YSYM1Rme3dk7QXhpScNA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@expo/spawn-async": "^1.5.0", - "chalk": "^4.1.2", - "debug": "^4.3.4", - "find-up": "^5.0.0", - "minimatch": "^3.0.4", - "p-limit": "^3.1.0", - "resolve-from": "^5.0.0" - }, - "bin": { - "fingerprint": "bin/cli.js" - } - }, - "node_modules/@expo/image-utils": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.4.1.tgz", - "integrity": "sha512-EZb+VHSmw+a5s2hS9qksTcWylY0FDaIAVufcxoaRS9tHIXLjW5zcKW7Rhj9dSEbZbRVy9yXXdHKa3GQdUQIOFw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@expo/spawn-async": "1.5.0", - "chalk": "^4.0.0", - "fs-extra": "9.0.0", - "getenv": "^1.0.0", - "jimp-compact": "0.16.1", - "node-fetch": "^2.6.0", - "parse-png": "^2.1.0", - "resolve-from": "^5.0.0", - "semver": "7.3.2", - "tempy": "0.3.0" - } - }, - "node_modules/@expo/image-utils/node_modules/crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/image-utils/node_modules/fs-extra": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", - "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/image-utils/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@expo/image-utils/node_modules/jsonfile/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@expo/image-utils/node_modules/semver": { - "version": "7.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", - "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/image-utils/node_modules/temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/image-utils/node_modules/tempy": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", - "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "temp-dir": "^1.0.0", - "type-fest": "^0.3.1", - "unique-string": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@expo/image-utils/node_modules/type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@expo/image-utils/node_modules/unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "crypto-random-string": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/image-utils/node_modules/universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@expo/json-file": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/@expo/json-file/-/json-file-8.3.0.tgz", - "integrity": "sha512-yROUeXJXR5goagB8c3muFLCzLmdGOvoPpR5yDNaXrnTp4euNykr9yW0wWhJx4YVRTNOPtGBnEbbJBW+a9q+S6g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "~7.10.4", - "json5": "^2.2.2", - "write-file-atomic": "^2.3.0" - } - }, - "node_modules/@expo/metro-config": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.17.3.tgz", - "integrity": "sha512-YW8ixbaz6yL7/Mg1rJJejiAAVQQKjGY1wXvT2Dh487r/r9/j1yE1YRS/oRY1yItYzbnHvO0p0jMnEGfiFYL3Tg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.5", - "@babel/parser": "^7.20.0", - "@babel/types": "^7.20.0", - "@expo/config": "~8.5.0", - "@expo/env": "~0.2.0", - "@expo/json-file": "~8.3.0", - "@expo/spawn-async": "^1.7.2", - "babel-preset-fbjs": "^3.4.0", - "chalk": "^4.1.0", - "debug": "^4.3.2", - "find-yarn-workspace-root": "~2.0.0", - "fs-extra": "^9.1.0", - "getenv": "^1.0.0", - "glob": "^7.2.3", - "jsc-safe-url": "^0.2.4", - "lightningcss": "~1.19.0", - "postcss": "~8.4.32", - "resolve-from": "^5.0.0", - "sucrase": "3.34.0" - }, - "peerDependencies": { - "@react-native/babel-preset": "*" - } - }, - "node_modules/@expo/metro-config/node_modules/@expo/spawn-async": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.7.2.tgz", - "integrity": "sha512-QdWi16+CHB9JYP7gma19OVVg0BFkvU8zNj9GjWorYI8Iv8FUxjOCcYRuAmX4s/h91e4e7BPsskc8cSrZYho9Ew==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "cross-spawn": "^7.0.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@expo/metro-config/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@expo/metro-config/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@expo/metro-config/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/@expo/metro-config/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@expo/metro-config/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@expo/metro-config/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@expo/osascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@expo/osascript/-/osascript-2.1.0.tgz", - "integrity": "sha512-bOhuFnlRaS7CU33+rFFIWdcET/Vkyn1vsN8BYFwCDEF5P1fVVvYN7bFOsQLTMD3nvi35C1AGmtqUr/Wfv8Xaow==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@expo/spawn-async": "^1.5.0", - "exec-async": "^2.2.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@expo/package-manager": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@expo/package-manager/-/package-manager-1.4.2.tgz", - "integrity": "sha512-LKdo/6y4W7llZ6ghsg1kdx2CeH/qR/c6QI/JI8oPUvppsZoeIYjSkdflce978fAMfR8IXoi0wt0jA2w0kWpwbg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@expo/json-file": "^8.2.37", - "@expo/spawn-async": "^1.5.0", - "ansi-regex": "^5.0.0", - "chalk": "^4.0.0", - "find-up": "^5.0.0", - "find-yarn-workspace-root": "~2.0.0", - "js-yaml": "^3.13.1", - "micromatch": "^4.0.2", - "npm-package-arg": "^7.0.0", - "ora": "^3.4.0", - "split": "^1.0.1", - "sudo-prompt": "9.1.1" - } - }, - "node_modules/@expo/package-manager/node_modules/sudo-prompt": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.1.1.tgz", - "integrity": "sha512-es33J1g2HjMpyAhz8lOR+ICmXXAqTuKbuXuUWLhOLew20oN9oUCgCJx615U/v7aioZg7IX5lIh9x34vwneu4pA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@expo/plist": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@expo/plist/-/plist-0.1.0.tgz", - "integrity": "sha512-xWD+8vIFif0wKyuqe3fmnmnSouXYucciZXFzS0ZD5OV9eSAS1RGQI5FaGGJ6zxJ4mpdy/4QzbLdBjnYE5vxA0g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@xmldom/xmldom": "~0.7.7", - "base64-js": "^1.2.3", - "xmlbuilder": "^14.0.0" - } - }, - "node_modules/@expo/rudder-sdk-node": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@expo/rudder-sdk-node/-/rudder-sdk-node-1.1.1.tgz", - "integrity": "sha512-uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@expo/bunyan": "^4.0.0", - "@segment/loosely-validate-event": "^2.0.0", - "fetch-retry": "^4.1.1", - "md5": "^2.2.1", - "node-fetch": "^2.6.1", - "remove-trailing-slash": "^0.1.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@expo/rudder-sdk-node/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@expo/sdk-runtime-versions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@expo/sdk-runtime-versions/-/sdk-runtime-versions-1.0.0.tgz", - "integrity": "sha512-Doz2bfiPndXYFPMRwPyGa1k5QaKDVpY806UJj570epIiMzWaYyCtobasyfC++qfIXVb5Ocy7r3tP9d62hAQ7IQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@expo/spawn-async": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@expo/spawn-async/-/spawn-async-1.5.0.tgz", - "integrity": "sha512-LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "cross-spawn": "^6.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@expo/spawn-async/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/@expo/spawn-async/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@expo/spawn-async/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@expo/spawn-async/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@expo/vector-icons": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@expo/vector-icons/-/vector-icons-14.0.0.tgz", - "integrity": "sha512-5orm59pdnBQlovhU9k4DbjMUZBHNlku7IRgFY56f7pcaaCnXq9yaLJoOQl9sMwNdFzf4gnkTyHmR5uN10mI9rA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@expo/xcpretty": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-4.3.1.tgz", - "integrity": "sha512-sqXgo1SCv+j4VtYEwl/bukuOIBrVgx6euIoCat3Iyx5oeoXwEA2USCoeL0IPubflMxncA2INkqJ/Wr3NGrSgzw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "7.10.4", - "chalk": "^4.1.0", - "find-up": "^5.0.0", - "js-yaml": "^4.1.0" - }, - "bin": { - "excpretty": "build/cli.js" - } - }, - "node_modules/@expo/xcpretty/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@expo/xcpretty/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "dev": true, - "optional": true, - "peer": true, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@isaacs/ttlcache": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz", - "integrity": "sha512-RQgQ4uQ+pLbqXfOmieB91ejmLwvSgv9nLx6sT6sD83s7umBypgg+OIBOBbEUiJXrfpnp9j0mRhYYdzp9uqq3lA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@jest/create-cache-key-function": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/create-cache-key-function/-/create-cache-key-function-29.7.0.tgz", - "integrity": "sha512-4QqS3LY5PBmTRHj9sAg1HLoPzqAI0uOX6wI/TRqHIcOxlFidy6YEmCQJk6FSZjNLGCeubDMfmkWL+qaLKhSGQA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jest/types": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "optional": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "optional": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@peculiar/asn1-schema": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.8.tgz", - "integrity": "sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==", - "dev": true, - "dependencies": { - "asn1js": "^3.0.5", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2" - } - }, - "node_modules/@peculiar/asn1-schema/node_modules/asn1js": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", - "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", - "dev": true, - "dependencies": { - "pvtsutils": "^1.3.2", - "pvutils": "^1.1.3", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@peculiar/json-schema": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", - "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", - "dev": true, - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@peculiar/webcrypto": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.5.tgz", - "integrity": "sha512-oDk93QCDGdxFRM8382Zdminzs44dg3M2+E5Np+JWkpqLDyJC9DviMh8F8mEJkYuUcUOGA5jHO5AJJ10MFWdbZw==", - "dev": true, - "dependencies": { - "@peculiar/asn1-schema": "^2.3.8", - "@peculiar/json-schema": "^1.1.12", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2", - "webcrypto-core": "^1.7.8" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/@react-native-community/cli": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli/-/cli-12.3.0.tgz", - "integrity": "sha512-XeQohi2E+S2+MMSz97QcEZ/bWpi8sfKiQg35XuYeJkc32Til2g0b97jRpn0/+fV0BInHoG1CQYWwHA7opMsrHg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-clean": "12.3.0", - "@react-native-community/cli-config": "12.3.0", - "@react-native-community/cli-debugger-ui": "12.3.0", - "@react-native-community/cli-doctor": "12.3.0", - "@react-native-community/cli-hermes": "12.3.0", - "@react-native-community/cli-plugin-metro": "12.3.0", - "@react-native-community/cli-server-api": "12.3.0", - "@react-native-community/cli-tools": "12.3.0", - "@react-native-community/cli-types": "12.3.0", - "chalk": "^4.1.2", - "commander": "^9.4.1", - "deepmerge": "^4.3.0", - "execa": "^5.0.0", - "find-up": "^4.1.0", - "fs-extra": "^8.1.0", - "graceful-fs": "^4.1.3", - "prompts": "^2.4.2", - "semver": "^7.5.2" - }, - "bin": { - "react-native": "build/bin.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native-community/cli-clean": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-clean/-/cli-clean-12.3.0.tgz", - "integrity": "sha512-iAgLCOWYRGh9ukr+eVQnhkV/OqN3V2EGd/in33Ggn/Mj4uO6+oUncXFwB+yjlyaUNz6FfjudhIz09yYGSF+9sg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-tools": "12.3.0", - "chalk": "^4.1.2", - "execa": "^5.0.0" - } - }, - "node_modules/@react-native-community/cli-clean/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@react-native-community/cli-clean/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@react-native-community/cli-clean/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-clean/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-clean/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-native-community/cli-clean/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-clean/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-clean/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-clean/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@react-native-community/cli-config": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-config/-/cli-config-12.3.0.tgz", - "integrity": "sha512-BrTn5ndFD9uOxO8kxBQ32EpbtOvAsQExGPI7SokdI4Zlve70FziLtTq91LTlTUgMq1InVZn/jJb3VIDk6BTInQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-tools": "12.3.0", - "chalk": "^4.1.2", - "cosmiconfig": "^5.1.0", - "deepmerge": "^4.3.0", - "glob": "^7.1.3", - "joi": "^17.2.1" - } - }, - "node_modules/@react-native-community/cli-debugger-ui": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.0.tgz", - "integrity": "sha512-w3b0iwjQlk47GhZWHaeTG8kKH09NCMUJO729xSdMBXE8rlbm4kHpKbxQY9qKb6NlfWSJN4noGY+FkNZS2rRwnQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "serve-static": "^1.13.1" - } - }, - "node_modules/@react-native-community/cli-doctor": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-doctor/-/cli-doctor-12.3.0.tgz", - "integrity": "sha512-BPCwNNesoQMkKsxB08Ayy6URgGQ8Kndv6mMhIvJSNdST3J1+x3ehBHXzG9B9Vfi+DrTKRb8lmEl/b/7VkDlPkA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-config": "12.3.0", - "@react-native-community/cli-platform-android": "12.3.0", - "@react-native-community/cli-platform-ios": "12.3.0", - "@react-native-community/cli-tools": "12.3.0", - "chalk": "^4.1.2", - "command-exists": "^1.2.8", - "deepmerge": "^4.3.0", - "envinfo": "^7.10.0", - "execa": "^5.0.0", - "hermes-profile-transformer": "^0.0.6", - "ip": "^1.1.5", - "node-stream-zip": "^1.9.1", - "ora": "^5.4.1", - "semver": "^7.5.2", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1", - "yaml": "^2.2.1" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/ora/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-doctor/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@react-native-community/cli-hermes": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-hermes/-/cli-hermes-12.3.0.tgz", - "integrity": "sha512-G6FxpeZBO4AimKZwtWR3dpXRqTvsmEqlIkkxgwthdzn3LbVjDVIXKpVYU9PkR5cnT+KuAUxO0WwthrJ6Nmrrlg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-platform-android": "12.3.0", - "@react-native-community/cli-tools": "12.3.0", - "chalk": "^4.1.2", - "hermes-profile-transformer": "^0.0.6", - "ip": "^1.1.5" - } - }, - "node_modules/@react-native-community/cli-platform-android": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.0.tgz", - "integrity": "sha512-VU1NZw63+GLU2TnyQ919bEMThpHQ/oMFju9MCfrd3pyPJz4Sn+vc3NfnTDUVA5Z5yfLijFOkHIHr4vo/C9bjnw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-tools": "12.3.0", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "fast-xml-parser": "^4.2.4", - "glob": "^7.1.3", - "logkitty": "^0.7.1" - } - }, - "node_modules/@react-native-community/cli-platform-android/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@react-native-community/cli-platform-android/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@react-native-community/cli-platform-android/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-platform-android/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-platform-android/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-native-community/cli-platform-android/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-platform-android/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-platform-android/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-platform-android/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@react-native-community/cli-platform-ios": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.0.tgz", - "integrity": "sha512-H95Sgt3wT7L8V75V0syFJDtv4YgqK5zbu69ko4yrXGv8dv2EBi6qZP0VMmkqXDamoPm9/U7tDTdbcf26ctnLfg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-tools": "12.3.0", - "chalk": "^4.1.2", - "execa": "^5.0.0", - "fast-xml-parser": "^4.0.12", - "glob": "^7.1.3", - "ora": "^5.4.1" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-platform-ios/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@react-native-community/cli-plugin-metro": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.0.tgz", - "integrity": "sha512-tYNHIYnNmxrBcsqbE2dAnLMzlKI3Cp1p1xUgTrNaOMsGPDN1epzNfa34n6Nps3iwKElSL7Js91CzYNqgTalucA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@react-native-community/cli-server-api": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-server-api/-/cli-server-api-12.3.0.tgz", - "integrity": "sha512-Rode8NrdyByC+lBKHHn+/W8Zu0c+DajJvLmOWbe2WY/ECvnwcd9MHHbu92hlT2EQaJ9LbLhGrSbQE3cQy9EOCw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-debugger-ui": "12.3.0", - "@react-native-community/cli-tools": "12.3.0", - "compression": "^1.7.1", - "connect": "^3.6.5", - "errorhandler": "^1.5.1", - "nocache": "^3.0.1", - "pretty-format": "^26.6.2", - "serve-static": "^1.13.1", - "ws": "^7.5.1" - } - }, - "node_modules/@react-native-community/cli-server-api/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "optional": true, - "peer": true, - "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 - } - } - }, - "node_modules/@react-native-community/cli-tools": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-tools/-/cli-tools-12.3.0.tgz", - "integrity": "sha512-2GafnCr8D88VdClwnm9KZfkEb+lzVoFdr/7ybqhdeYM0Vnt/tr2N+fM1EQzwI1DpzXiBzTYemw8GjRq+Utcz2Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "appdirsjs": "^1.2.4", - "chalk": "^4.1.2", - "find-up": "^5.0.0", - "mime": "^2.4.1", - "node-fetch": "^2.6.0", - "open": "^6.2.0", - "ora": "^5.4.1", - "semver": "^7.5.2", - "shell-quote": "^1.7.3", - "sudo-prompt": "^9.0.0" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli-tools/node_modules/sudo-prompt": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-9.2.1.tgz", - "integrity": "sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@react-native-community/cli-types": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-12.3.0.tgz", - "integrity": "sha512-MgOkmrXH4zsGxhte4YqKL7d+N8ZNEd3w1wo56MZlhu5WabwCJh87wYpU5T8vyfujFLYOFuFK5jjlcbs8F4/WDw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "joi": "^17.2.1" - } - }, - "node_modules/@react-native-community/cli/node_modules/commander": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/@react-native-community/cli/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@react-native-community/cli/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@react-native-community/cli/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-native-community/cli/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native-community/cli/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native-community/cli/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@react-native/assets-registry": { - "version": "0.73.1", - "resolved": "https://registry.npmjs.org/@react-native/assets-registry/-/assets-registry-0.73.1.tgz", - "integrity": "sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/babel-plugin-codegen": { - "version": "0.73.3", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.3.tgz", - "integrity": "sha512-+zQrDDbz6lB48LyzFHxNCgXDCBHH+oTRdXAjikRcBUdeG9St9ABbYFLtb799zSxLOrCqFVyXqhJR2vlgLLEbcg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@react-native/codegen": "0.73.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/babel-preset": { - "version": "0.73.20", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.73.20.tgz", - "integrity": "sha512-fU9NqkusbfFq71l4BWQfqqD/lLcLC0MZ++UYgieA3j8lIEppJTLVauv2RwtD2yltBkjebgYEC5Rwvt1l0MUBXw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/core": "^7.20.0", - "@babel/plugin-proposal-async-generator-functions": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.18.0", - "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", - "@babel/plugin-proposal-numeric-separator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.20.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-default-from": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.18.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-syntax-optional-chaining": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.20.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.20.0", - "@babel/plugin-transform-flow-strip-types": "^7.20.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-sticky-regex": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.5.0", - "@babel/plugin-transform-unicode-regex": "^7.0.0", - "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.73.3", - "babel-plugin-transform-flow-enums": "^0.0.2", - "react-refresh": "^0.14.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, - "node_modules/@react-native/codegen": { - "version": "0.73.2", - "resolved": "https://registry.npmjs.org/@react-native/codegen/-/codegen-0.73.2.tgz", - "integrity": "sha512-lfy8S7umhE3QLQG5ViC4wg5N1Z+E6RnaeIw8w1voroQsXXGPB72IBozh8dAHR3+ceTxIU0KX3A8OpJI8e1+HpQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/parser": "^7.20.0", - "flow-parser": "^0.206.0", - "glob": "^7.1.1", - "invariant": "^2.2.4", - "jscodeshift": "^0.14.0", - "mkdirp": "^0.5.1", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/preset-env": "^7.1.6" - } - }, - "node_modules/@react-native/codegen/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/@react-native/community-cli-plugin": { - "version": "0.73.12", - "resolved": "https://registry.npmjs.org/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.12.tgz", - "integrity": "sha512-xWU06OkC1cX++Duh/cD/Wv+oZ0oSY3yqbtxAqQA2H3Q+MQltNNJM6MqIHt1VOZSabRf/LVlR1JL6U9TXJirkaw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@react-native-community/cli-server-api": "12.3.0", - "@react-native-community/cli-tools": "12.3.0", - "@react-native/dev-middleware": "0.73.7", - "@react-native/metro-babel-transformer": "0.73.13", - "chalk": "^4.0.0", - "execa": "^5.1.1", - "metro": "^0.80.3", - "metro-config": "^0.80.3", - "metro-core": "^0.80.3", - "node-fetch": "^2.2.0", - "readline": "^1.3.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@react-native/community-cli-plugin/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@react-native/debugger-frontend": { - "version": "0.73.3", - "resolved": "https://registry.npmjs.org/@react-native/debugger-frontend/-/debugger-frontend-0.73.3.tgz", - "integrity": "sha512-RgEKnWuoo54dh7gQhV7kvzKhXZEhpF9LlMdZolyhGxHsBqZ2gXdibfDlfcARFFifPIiaZ3lXuOVVa4ei+uPgTw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/dev-middleware": { - "version": "0.73.7", - "resolved": "https://registry.npmjs.org/@react-native/dev-middleware/-/dev-middleware-0.73.7.tgz", - "integrity": "sha512-BZXpn+qKp/dNdr4+TkZxXDttfx8YobDh8MFHsMk9usouLm22pKgFIPkGBV0X8Do4LBkFNPGtrnsKkWk/yuUXKg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@isaacs/ttlcache": "^1.4.1", - "@react-native/debugger-frontend": "0.73.3", - "chrome-launcher": "^0.15.2", - "chromium-edge-launcher": "^1.0.0", - "connect": "^3.6.5", - "debug": "^2.2.0", - "node-fetch": "^2.2.0", - "open": "^7.0.3", - "serve-static": "^1.13.1", - "temp-dir": "^2.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/dev-middleware/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/@react-native/dev-middleware/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@react-native/dev-middleware/node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@react-native/gradle-plugin": { - "version": "0.73.4", - "resolved": "https://registry.npmjs.org/@react-native/gradle-plugin/-/gradle-plugin-0.73.4.tgz", - "integrity": "sha512-PMDnbsZa+tD55Ug+W8CfqXiGoGneSSyrBZCMb5JfiB3AFST3Uj5e6lw8SgI/B6SKZF7lG0BhZ6YHZsRZ5MlXmg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/js-polyfills": { - "version": "0.73.1", - "resolved": "https://registry.npmjs.org/@react-native/js-polyfills/-/js-polyfills-0.73.1.tgz", - "integrity": "sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/metro-babel-transformer": { - "version": "0.73.13", - "resolved": "https://registry.npmjs.org/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.13.tgz", - "integrity": "sha512-k9AQifogQfgUXPlqQSoMtX2KUhniw4XvJl+nZ4hphCH7qiMDAwuP8OmkJbz5E/N+Ro9OFuLE7ax4GlwxaTsAWg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/core": "^7.20.0", - "@react-native/babel-preset": "0.73.19", - "hermes-parser": "0.15.0", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, - "node_modules/@react-native/metro-babel-transformer/node_modules/@react-native/babel-plugin-codegen": { - "version": "0.73.2", - "resolved": "https://registry.npmjs.org/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.2.tgz", - "integrity": "sha512-PadyFZWVaWXIBP7Q5dgEL7eAd7tnsgsLjoHJB1hIRZZuVUg1Zqe3nULwC7RFAqOtr5Qx7KXChkFFcKQ3WnZzGw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@react-native/codegen": "0.73.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@react-native/metro-babel-transformer/node_modules/@react-native/babel-preset": { - "version": "0.73.19", - "resolved": "https://registry.npmjs.org/@react-native/babel-preset/-/babel-preset-0.73.19.tgz", - "integrity": "sha512-ujon01uMOREZecIltQxPDmJ6xlVqAUFGI/JCSpeVYdxyXBoBH5dBb0ihj7h6LKH1q1jsnO9z4MxfddtypKkIbg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/core": "^7.20.0", - "@babel/plugin-proposal-async-generator-functions": "^7.0.0", - "@babel/plugin-proposal-class-properties": "^7.18.0", - "@babel/plugin-proposal-export-default-from": "^7.0.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.0", - "@babel/plugin-proposal-numeric-separator": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.20.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.0.0", - "@babel/plugin-proposal-optional-chaining": "^7.20.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-export-default-from": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.18.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.0.0", - "@babel/plugin-syntax-optional-chaining": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-async-to-generator": "^7.20.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.20.0", - "@babel/plugin-transform-flow-strip-types": "^7.20.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-react-jsx-self": "^7.0.0", - "@babel/plugin-transform-react-jsx-source": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-sticky-regex": "^7.0.0", - "@babel/plugin-transform-typescript": "^7.5.0", - "@babel/plugin-transform-unicode-regex": "^7.0.0", - "@babel/template": "^7.0.0", - "@react-native/babel-plugin-codegen": "0.73.2", - "babel-plugin-transform-flow-enums": "^0.0.2", - "react-refresh": "^0.14.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@babel/core": "*" - } - }, - "node_modules/@react-native/normalize-color": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@react-native/normalize-color/-/normalize-color-2.1.0.tgz", - "integrity": "sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@react-native/normalize-colors": { - "version": "0.73.2", - "resolved": "https://registry.npmjs.org/@react-native/normalize-colors/-/normalize-colors-0.73.2.tgz", - "integrity": "sha512-bRBcb2T+I88aG74LMVHaKms2p/T8aQd8+BZ7LuuzXlRfog1bMWWn/C5i0HVuvW4RPtXQYgIlGiXVDy9Ir1So/w==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@react-native/virtualized-lists": { - "version": "0.73.4", - "resolved": "https://registry.npmjs.org/@react-native/virtualized-lists/-/virtualized-lists-0.73.4.tgz", - "integrity": "sha512-HpmLg1FrEiDtrtAbXiwCgXFYyloK/dOIPIuWW3fsqukwJEWAiTzm1nXGJ7xPU5XTHiWZ4sKup5Ebaj8z7iyWog==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "invariant": "^2.2.4", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "react-native": "*" - } - }, - "node_modules/@segment/loosely-validate-event": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", - "integrity": "sha512-ZMCSfztDBqwotkl848ODgVcAmN4OItEWDCkshcKz0/W6gGSQayuuCtWV/MlodFivAZD793d6UgANd6wCXUfrIw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "component-type": "^1.2.1", - "join-component": "^1.1.0" - } - }, - "node_modules/@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", - "dev": true - }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.41", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", - "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "dev": true - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "dev": true - }, - "node_modules/@types/node": { - "version": "16.18.76", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.76.tgz", - "integrity": "sha512-/GsO2uv1Z6R42lBr59dtem56gVF/yHKQaScggwU+gLU6DXE25sDmOar4c4IfWb3h+X/7OYZznPOFk7oGF3jQSA==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.11", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", - "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "dev": true - }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", - "dev": true, - "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@unimodules/core": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/@unimodules/core/-/core-7.1.2.tgz", - "integrity": "sha512-lY+e2TAFuebD3vshHMIRqru3X4+k7Xkba4Wa7QsDBd+ex4c4N2dHAO61E2SrGD9+TRBD8w/o7mzK6ljbqRnbyg==", - "deprecated": "replaced by the 'expo' package, learn more: https://blog.expo.dev/whats-new-in-expo-modules-infrastructure-7a7cdda81ebc", - "dev": true, - "optional": true, - "dependencies": { - "compare-versions": "^3.4.0" - } - }, - "node_modules/@unimodules/react-native-adapter": { - "version": "6.3.9", - "resolved": "https://registry.npmjs.org/@unimodules/react-native-adapter/-/react-native-adapter-6.3.9.tgz", - "integrity": "sha512-i9/9Si4AQ8awls+YGAKkByFbeAsOPgUNeLoYeh2SQ3ddjxJ5ZJDtq/I74clDnpDcn8zS9pYlcDJ9fgVJa39Glw==", - "deprecated": "replaced by the 'expo' package, learn more: https://blog.expo.dev/whats-new-in-expo-modules-infrastructure-7a7cdda81ebc", - "dev": true, - "optional": true, - "dependencies": { - "expo-modules-autolinking": "^0.0.3", - "invariant": "^2.2.4" - } - }, - "node_modules/@urql/core": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/@urql/core/-/core-2.3.6.tgz", - "integrity": "sha512-PUxhtBh7/8167HJK6WqBv6Z0piuiaZHQGYbhwpNL9aIQmLROPEdaUYkY4wh45wPQXcTpnd11l0q3Pw+TI11pdw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.0", - "wonka": "^4.0.14" - }, - "peerDependencies": { - "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@urql/exchange-retry": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@urql/exchange-retry/-/exchange-retry-0.3.0.tgz", - "integrity": "sha512-hHqer2mcdVC0eYnVNbWyi28AlGOPb2vjH3lP3/Bc8Lc8BjhMsDwFMm7WhoP5C1+cfbr/QJ6Er3H/L08wznXxfg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@urql/core": ">=2.3.1", - "wonka": "^4.0.14" - }, - "peerDependencies": { - "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/@webex/common": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/common/-/common-2.60.0.tgz", - "integrity": "sha512-o6dbes91uqxLO9gjafIl46ycQVpzFmsENTldFh0uFb0LbT2ONX9DRO6599nS6Jd9xa4g+R2DoNHMJSwvj2Zjgw==", - "dev": true, - "dependencies": { - "backoff": "^2.5.0", - "bowser": "^2.11.0", - "core-decorators": "^0.20.0", - "global": "^4.4.0", - "lodash": "^4.17.21", - "safe-buffer": "^5.2.0", - "urlsafe-base64": "^1.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/common-timers": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/common-timers/-/common-timers-2.60.0.tgz", - "integrity": "sha512-DvxvEYGuqM80sH1y+YdB+u4Bl7dqle6FIP0FsE+N5k4bCWbred+yDy7ZmuLZ4a1SK/SSLxSBTo+VzIWk6Oithw==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/helper-html": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/helper-html/-/helper-html-2.60.0.tgz", - "integrity": "sha512-qyKsajx8gNZkZnp21LasfTiKoxqaIYzYgT9XvEL0QRmQOJZWxZIzYFQQVDOa2UgULC721xTLfdnCriSL5Qfn3w==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/helper-image": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/helper-image/-/helper-image-2.60.0.tgz", - "integrity": "sha512-2q0ZZyDegBeMv5DIW0VORf8WYmTNgAAv7MeRAzM+kvurBDE+yJabqoBXYj+nf5lSUjEOUnWwWtgFOELnN+YwbQ==", - "dev": true, - "dependencies": { - "@webex/http-core": "2.60.0", - "@webex/test-helper-chai": "2.60.0", - "@webex/test-helper-file": "2.60.0", - "@webex/test-helper-mocha": "2.60.0", - "exifr": "^5.0.3", - "gm": "^1.23.1", - "lodash": "^4.17.21", - "mime": "^2.4.4", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/http-core": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/http-core/-/http-core-2.60.0.tgz", - "integrity": "sha512-z+GHjx3d4Q0exVIfLex2iS1wYpkYscctIHiK1CPInivubpgtvt04E/qETtDV1iCo8wxhyzG2eAW/n0FcA7rdJQ==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/internal-plugin-device": "2.60.0", - "@webex/test-helper-test-users": "2.60.0", - "@webex/webex-core": "2.60.0", - "file-type": "^16.0.1", - "global": "^4.4.0", - "is-function": "^1.0.1", - "lodash": "^4.17.21", - "parse-headers": "^2.0.2", - "qs": "^6.7.3", - "request": "^2.88.0", - "safe-buffer": "^5.2.0", - "xtend": "^4.0.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/internal-media-core": { - "version": "0.0.7-beta", - "resolved": "https://registry.npmjs.org/@webex/internal-media-core/-/internal-media-core-0.0.7-beta.tgz", - "integrity": "sha512-GxSRFKDdvL/gzZ67aIO2378kbVWAeGUQk5/pUprPcdY0cC4T6aoXa7AiLV+HiFmJSChPzBYZbOlFY49oSndgww==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.18.9", - "@webex/ts-sdp": "^1.0.1", - "detectrtc": "^1.4.1", - "events": "^3.3.0", - "sdp-transform": "^2.14.1", - "typed-emitter": "^2.1.0", - "uuid": "^8.3.2", - "webrtc-adapter": "^8.1.1", - "xstate": "^4.30.6" - }, - "engines": { - "node": ">=14.x" - } - }, - "node_modules/@webex/internal-media-core/node_modules/sdp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/sdp/-/sdp-3.2.0.tgz", - "integrity": "sha512-d7wDPgDV3DDiqulJjKiV2865wKsJ34YI+NDREbm+FySq6WuKOikwyNQcm+doLAZ1O6ltdO0SeKle2xMpN3Brgw==", - "dev": true - }, - "node_modules/@webex/internal-media-core/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@webex/internal-media-core/node_modules/webrtc-adapter": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/webrtc-adapter/-/webrtc-adapter-8.2.3.tgz", - "integrity": "sha512-gnmRz++suzmvxtp3ehQts6s2JtAGPuDPjA1F3a9ckNpG1kYdYuHWYpazoAnL9FS5/B21tKlhkorbdCXat0+4xQ==", - "dev": true, - "dependencies": { - "sdp": "^3.2.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=3.10.0" - } - }, - "node_modules/@webex/internal-plugin-calendar": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/internal-plugin-calendar/-/internal-plugin-calendar-2.60.0.tgz", - "integrity": "sha512-xcT60Q2TKXvDJ6szQeXOAP5fygtZR6i2Ol5TOtqla3n9tpEGBSdUz8WTjVr/3A1TPkyLHRBcC1wxCKkWuuYDWQ==", - "dev": true, - "dependencies": { - "@webex/internal-plugin-conversation": "2.60.0", - "@webex/internal-plugin-device": "2.60.0", - "@webex/internal-plugin-encryption": "2.60.0", - "@webex/webex-core": "2.60.0", - "lodash": "^4.17.21", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/internal-plugin-conversation": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/internal-plugin-conversation/-/internal-plugin-conversation-2.60.0.tgz", - "integrity": "sha512-1VzUBMLcdw/dBC8BjARHsHr+guOuSgIRYksHVGa63nk0b3yQskP0jWTigYv0/G1TdBGzYB0UCrtpYgNYdd06ww==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/helper-html": "2.60.0", - "@webex/helper-image": "2.60.0", - "@webex/internal-plugin-encryption": "2.60.0", - "@webex/internal-plugin-user": "2.60.0", - "@webex/webex-core": "2.60.0", - "crypto-js": "^4.1.1", - "lodash": "^4.17.21", - "node-scr": "^0.3.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/internal-plugin-device": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/internal-plugin-device/-/internal-plugin-device-2.60.0.tgz", - "integrity": "sha512-FmrRARGLGvb276LQpTG5u8mKo8mGrrHG+UcXvzu2sU7+p/7Wgm+z/izshJJC55SFWF77gV8oR3sAcTYwZMnqKw==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/common-timers": "2.60.0", - "@webex/http-core": "2.60.0", - "@webex/internal-plugin-metrics": "2.60.0", - "@webex/webex-core": "2.60.0", - "ampersand-collection": "^2.0.2", - "ampersand-state": "^5.0.3", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/internal-plugin-encryption": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/internal-plugin-encryption/-/internal-plugin-encryption-2.60.0.tgz", - "integrity": "sha512-NvKJUvoRhV2b737nuYq/mWkvqD8ZOM3rCVqY+MhxXXqantHu3jqxfvZ86O3r++Mfyob201C8N0HtwzdupCM4yg==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/common-timers": "2.60.0", - "@webex/http-core": "2.60.0", - "@webex/internal-plugin-device": "2.60.0", - "@webex/internal-plugin-mercury": "2.60.0", - "@webex/test-helper-file": "2.60.0", - "@webex/webex-core": "2.60.0", - "asn1js": "^2.0.26", - "debug": "^4.3.4", - "isomorphic-webcrypto": "^2.3.8", - "lodash": "^4.17.21", - "node-jose": "^2.2.0", - "node-kms": "^0.4.0", - "node-scr": "^0.3.0", - "pkijs": "^2.1.84", - "safe-buffer": "^5.2.0", - "uuid": "^3.3.2", - "valid-url": "^1.0.9" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/internal-plugin-feature": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/internal-plugin-feature/-/internal-plugin-feature-2.60.0.tgz", - "integrity": "sha512-ble2sAAveXbGdee1QboU3ZCoDT71iWwaGNld/5WSdEpsNKO9sV5WC5Neo3oq8SmKiYSdLoEEYFC5J+9B26Bkdg==", - "dev": true, - "dependencies": { - "@webex/internal-plugin-device": "2.60.0", - "@webex/internal-plugin-mercury": "2.60.0", - "@webex/webex-core": "2.60.0", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/internal-plugin-locus": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/internal-plugin-locus/-/internal-plugin-locus-2.60.0.tgz", - "integrity": "sha512-r0LSnwk+9dDMp/pGflx+c+gX1CPDo06j4dMhRbkLkJTqqhC+uAnvHREVIQuITViwY9cf+Izm9On3xh6SDqHglw==", - "dev": true, - "dependencies": { - "@webex/internal-plugin-mercury": "2.60.0", - "@webex/test-helper-chai": "2.60.0", - "@webex/test-helper-mock-webex": "2.60.0", - "@webex/webex-core": "2.60.0", - "lodash": "^4.17.21", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/internal-plugin-lyra": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/internal-plugin-lyra/-/internal-plugin-lyra-2.60.0.tgz", - "integrity": "sha512-OSMl+sh2hvWMHw0kd+MdVeJa2coKCPlzk89+BLU51DYrgc+6DvBGOFegNNqRa+a1Z5iJtKB7Q5gI5Xq/baZmtg==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/internal-plugin-conversation": "2.60.0", - "@webex/internal-plugin-encryption": "2.60.0", - "@webex/internal-plugin-feature": "2.60.0", - "@webex/internal-plugin-locus": "2.60.0", - "@webex/internal-plugin-mercury": "2.60.0", - "@webex/webex-core": "2.60.0", - "bowser": "^2.11.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/internal-plugin-mercury": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/internal-plugin-mercury/-/internal-plugin-mercury-2.60.0.tgz", - "integrity": "sha512-TMKhtWsuC+glUDWEtiTRJTPF/1IS9MVV7zEAP1bqgVsdI9b6iV1k+p72il5Q2i+ynksdbuzg0Pd4cM28pO7hwA==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/common-timers": "2.60.0", - "@webex/internal-plugin-device": "2.60.0", - "@webex/internal-plugin-feature": "2.60.0", - "@webex/internal-plugin-metrics": "2.60.0", - "@webex/test-helper-chai": "2.60.0", - "@webex/test-helper-mocha": "2.60.0", - "@webex/test-helper-mock-web-socket": "2.60.0", - "@webex/test-helper-mock-webex": "2.60.0", - "@webex/test-helper-refresh-callback": "2.60.0", - "@webex/test-helper-test-users": "2.60.0", - "@webex/webex-core": "2.60.0", - "backoff": "^2.5.0", - "lodash": "^4.17.21", - "uuid": "^3.3.2", - "ws": "^8.2.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/internal-plugin-metrics": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/internal-plugin-metrics/-/internal-plugin-metrics-2.60.0.tgz", - "integrity": "sha512-AKTUnVoGtP2ib3ui5cY00f61TVRtsNwfg2QXJ0uIRHU9w1FbC0rY4M3eJ+ssOJAGtrSa1InmDO5KFdmHuvHP8g==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/common-timers": "2.60.0", - "@webex/test-helper-chai": "2.60.0", - "@webex/test-helper-mock-webex": "2.60.0", - "@webex/webex-core": "2.60.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/internal-plugin-presence": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/internal-plugin-presence/-/internal-plugin-presence-2.60.0.tgz", - "integrity": "sha512-3dd+JdGFvVUrPugDD2KhhhzjHGsg/lhXOsndPf7kZNPq9a1si0EX70R3ig4RyXostsmunRtNp9DaSlBKmg8J6g==", - "dev": true, - "dependencies": { - "@webex/internal-plugin-device": "2.60.0", - "@webex/internal-plugin-mercury": "2.60.0", - "@webex/test-helper-chai": "2.60.0", - "@webex/test-helper-mocha": "2.60.0", - "@webex/test-helper-mock-webex": "2.60.0", - "@webex/test-helper-test-users": "2.60.0", - "@webex/webex-core": "2.60.0", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/internal-plugin-search": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/internal-plugin-search/-/internal-plugin-search-2.60.0.tgz", - "integrity": "sha512-e4lXYHPdl1Qa+lA5ojjhWZWT1avakjGUK42OU5j9kQfi1IQ/sbdpyAlISwjTvm0qJ2G8ImcQJUwddxaGv991nA==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/internal-plugin-conversation": "2.60.0", - "@webex/internal-plugin-device": "2.60.0", - "@webex/internal-plugin-encryption": "2.60.0", - "@webex/webex-core": "2.60.0", - "lodash": "^4.17.21", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/internal-plugin-support": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/internal-plugin-support/-/internal-plugin-support-2.60.0.tgz", - "integrity": "sha512-eiiH8Pr/HaCvhdQy66mmIqES8/096xyBYWCLvxleWJ32PfJ/TFZcDJbaC+odSKb3dCQyqBcx4QsNa1JFLYRW+w==", - "dev": true, - "dependencies": { - "@webex/internal-plugin-device": "2.60.0", - "@webex/internal-plugin-search": "2.60.0", - "@webex/test-helper-chai": "2.60.0", - "@webex/test-helper-file": "2.60.0", - "@webex/test-helper-mock-webex": "2.60.0", - "@webex/test-helper-test-users": "2.60.0", - "@webex/webex-core": "2.60.0", - "lodash": "^4.17.21", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/internal-plugin-user": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/internal-plugin-user/-/internal-plugin-user-2.60.0.tgz", - "integrity": "sha512-kl6IP4NxQ3EJI8CCIF4lY5OJM6M+sTaUadFdvMlZqOaG1zNbXIH9BuClB3xXdJVlO9Cmkbew1iuRabASODFoKg==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/internal-plugin-device": "2.60.0", - "@webex/test-helper-chai": "2.60.0", - "@webex/test-helper-mock-webex": "2.60.0", - "@webex/test-helper-test-users": "2.60.0", - "@webex/webex-core": "2.60.0", - "lodash": "^4.17.21", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/plugin-attachment-actions": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/plugin-attachment-actions/-/plugin-attachment-actions-2.60.0.tgz", - "integrity": "sha512-qeR+B/RwXpCIVB967NmSEKBzqhvB6jN8FyYI5MySNZ76KG/nsH9Ys9zsWi4I7ilj8AsRVuxc7+YwY/B1wMXHIA==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/internal-plugin-conversation": "2.60.0", - "@webex/internal-plugin-mercury": "2.60.0", - "@webex/plugin-logger": "2.60.0", - "@webex/plugin-messages": "2.60.0", - "@webex/plugin-people": "2.60.0", - "@webex/test-helper-chai": "2.60.0", - "@webex/test-helper-test-users": "2.60.0", - "@webex/webex-core": "2.60.0", - "debug": "^4.3.4", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/plugin-authorization": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/plugin-authorization/-/plugin-authorization-2.60.0.tgz", - "integrity": "sha512-WqijIyG1Fy4LOOa31hcTtzzbK9xM2eFOG+2YBbPxPCsjJBGeS2PTyt/c3kvmaufTpFKbB8NGYF96PWL03NIgrQ==", - "dev": true, - "dependencies": { - "@webex/plugin-authorization-browser": "2.60.0", - "@webex/plugin-authorization-node": "2.60.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/plugin-authorization-browser": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/plugin-authorization-browser/-/plugin-authorization-browser-2.60.0.tgz", - "integrity": "sha512-OdG6o0w/kUiJPPGPZR0PYWmEAJxESN3YcgiLFCsT1/LU2iZjtwQ3Hk8SxtGw4ueG7zxlsIKI9uHYKLIDlflkAg==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/internal-plugin-device": "2.60.0", - "@webex/plugin-authorization-node": "2.60.0", - "@webex/storage-adapter-local-storage": "2.60.0", - "@webex/storage-adapter-spec": "2.60.0", - "@webex/webex-core": "2.60.0", - "jose": "^4.13.1", - "lodash": "^4.17.21", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/plugin-authorization-node": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/plugin-authorization-node/-/plugin-authorization-node-2.60.0.tgz", - "integrity": "sha512-Kd8EnG3eQ8fdogjr0S/wCGPsY8rY37nM2kFuPtzv6d8YjzUcNMaW/3yhLMr2BbOx3o9JKptQHUNx5q7dm1CnnA==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/internal-plugin-device": "2.60.0", - "@webex/webex-core": "2.60.0", - "jsonwebtoken": "^9.0.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/plugin-device-manager": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/plugin-device-manager/-/plugin-device-manager-2.60.0.tgz", - "integrity": "sha512-Q3GpsS9RLx5KUfU8I+9QXbD2OVY5aEdkXDRW80IYavFgm//vWynw5/yNtHF/Er1JyhHJY2jJepk2bsoMoyNoug==", - "dev": true, - "dependencies": { - "@webex/internal-plugin-calendar": "2.60.0", - "@webex/internal-plugin-device": "2.60.0", - "@webex/internal-plugin-lyra": "2.60.0", - "@webex/internal-plugin-search": "2.60.0", - "@webex/plugin-authorization": "2.60.0", - "@webex/plugin-logger": "2.60.0", - "@webex/test-helper-chai": "2.60.0", - "@webex/webex-core": "2.60.0", - "lodash": "^4.17.21", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/plugin-logger": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/plugin-logger/-/plugin-logger-2.60.0.tgz", - "integrity": "sha512-0FtUyW3T53tO7DBkSRZpKfugR2nSE1nklg4p1JWZIGRASAjCCBmShE0J0eedTO9zhiWtNuABdRUph5HfxxM32A==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/test-helper-chai": "2.60.0", - "@webex/test-helper-mocha": "2.60.0", - "@webex/test-helper-mock-webex": "2.60.0", - "@webex/webex-core": "2.60.0", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/plugin-meetings": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/plugin-meetings/-/plugin-meetings-2.60.0.tgz", - "integrity": "sha512-DjUNzL4wni1Q5UcyaO66gXOLnfF2e69zulwxGPAUuvfjUQ2kn08gWymKE0YNw0PwbvM5RjMF5matYQI7NvhlnA==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/internal-media-core": "0.0.7-beta", - "@webex/internal-plugin-device": "2.60.0", - "@webex/internal-plugin-metrics": "2.60.0", - "@webex/internal-plugin-support": "2.60.0", - "@webex/internal-plugin-user": "2.60.0", - "@webex/plugin-people": "2.60.0", - "@webex/ts-sdp": "1.0.1", - "@webex/webex-core": "2.60.0", - "bowser": "^2.11.0", - "btoa": "^1.2.1", - "dotenv": "^4.0.0", - "global": "^4.4.0", - "ip-anonymize": "^0.1.0", - "javascript-state-machine": "^3.1.0", - "lodash": "^4.17.21", - "sdp-transform": "^2.12.0", - "uuid": "^3.3.2", - "webrtc-adapter": "^7.7.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/plugin-meetings/node_modules/dotenv": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", - "integrity": "sha512-XcaMACOr3JMVcEv0Y/iUM2XaOsATRZ3U1In41/1jjK6vJZ2PZbQ1bzCG8uvaByfaBpl9gqc9QWJovpUGBXLLYQ==", - "dev": true, - "engines": { - "node": ">=4.6.0" - } - }, - "node_modules/@webex/plugin-memberships": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/plugin-memberships/-/plugin-memberships-2.60.0.tgz", - "integrity": "sha512-b0Vmxtx++wkSjg/BpmUYGFcTqs+5ULxgG3YVHf6ttB0Fsr4U1AGHGwXoVNDIgxnpqP9S23lcDPgAYL47EKdsNA==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/internal-plugin-conversation": "2.60.0", - "@webex/internal-plugin-mercury": "2.60.0", - "@webex/plugin-logger": "2.60.0", - "@webex/plugin-messages": "2.60.0", - "@webex/plugin-people": "2.60.0", - "@webex/plugin-rooms": "2.60.0", - "@webex/webex-core": "2.60.0", - "debug": "^4.3.4", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/plugin-messages": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/plugin-messages/-/plugin-messages-2.60.0.tgz", - "integrity": "sha512-iZI5edGSUc7CAheMtkUCZHnqRs5oB3DKKznkcRfob3dY6uemop1wEv6PsWYdrHAu3Aage74cJ5p7XcAkHHxLsw==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/internal-plugin-conversation": "2.60.0", - "@webex/internal-plugin-device": "2.60.0", - "@webex/internal-plugin-mercury": "2.60.0", - "@webex/plugin-logger": "2.60.0", - "@webex/plugin-people": "2.60.0", - "@webex/plugin-rooms": "2.60.0", - "@webex/webex-core": "2.60.0", - "debug": "^4.3.4", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/plugin-people": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/plugin-people/-/plugin-people-2.60.0.tgz", - "integrity": "sha512-nr+FuF4mnV8vfAQeqzJguu5c7rHjEd0G86f9dyS0EHdZoHr41ggNK1QDcxuguZHSB5fdkn7tLqC5vpKdj8fmMA==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/internal-plugin-mercury": "2.60.0", - "@webex/webex-core": "2.60.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/plugin-rooms": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/plugin-rooms/-/plugin-rooms-2.60.0.tgz", - "integrity": "sha512-nv5UAomq1NWpO8beoLP6YOd5l5Tj7CO2ShJ/F0d7t6StOIUmoJZtEV8KGytaEwmxB2mI/ppXrU6Sb0SrNGoY/g==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/internal-plugin-conversation": "2.60.0", - "@webex/internal-plugin-mercury": "2.60.0", - "@webex/plugin-logger": "2.60.0", - "@webex/plugin-memberships": "2.60.0", - "@webex/plugin-messages": "2.60.0", - "@webex/plugin-people": "2.60.0", - "@webex/webex-core": "2.60.0", - "debug": "^4.3.4", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/plugin-team-memberships": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/plugin-team-memberships/-/plugin-team-memberships-2.60.0.tgz", - "integrity": "sha512-XLfH7NZvuOOqsZ5ghNGAxoAlDaCRap1uOqCCpDhJkDdM57S9jAKmdYReXH6ucJun4KNdV05h0sDOM5NGvbxzqg==", - "dev": true, - "dependencies": { - "@webex/internal-plugin-device": "2.60.0", - "@webex/plugin-logger": "2.60.0", - "@webex/plugin-rooms": "2.60.0", - "@webex/plugin-teams": "2.60.0", - "@webex/webex-core": "2.60.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/plugin-teams": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/plugin-teams/-/plugin-teams-2.60.0.tgz", - "integrity": "sha512-tLQD56T393OROG2rLJAaaVZVmy0tZeMNJkJTQypwO3d8u/anMHeypgTqINrpD/B+QB7sO+F5IsP3HT+70MVbQg==", - "dev": true, - "dependencies": { - "@webex/internal-plugin-device": "2.60.0", - "@webex/plugin-logger": "2.60.0", - "@webex/plugin-memberships": "2.60.0", - "@webex/plugin-rooms": "2.60.0", - "@webex/test-helper-chai": "2.60.0", - "@webex/test-helper-test-users": "2.60.0", - "@webex/webex-core": "2.60.0", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/plugin-webhooks": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/plugin-webhooks/-/plugin-webhooks-2.60.0.tgz", - "integrity": "sha512-NCiiXPudHh6X+MkGnRAumFgqadMGQ5t6k8h+DE1lGME3ujVp7dO0L+ujbiA8K3ylywk8f6AN0vRim3wvN4wPDQ==", - "dev": true, - "dependencies": { - "@webex/internal-plugin-device": "2.60.0", - "@webex/plugin-logger": "2.60.0", - "@webex/plugin-rooms": "2.60.0", - "@webex/webex-core": "2.60.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/storage-adapter-local-storage": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/storage-adapter-local-storage/-/storage-adapter-local-storage-2.60.0.tgz", - "integrity": "sha512-1L48cIY0IyEzR2pqVhJAFwjBKP7ZiY/Dfs9xeFQ25l9d2Qa1n4uFBorA9v7JYSjpU61/APIIdUuciHfEWFvtOQ==", - "dev": true, - "dependencies": { - "@webex/storage-adapter-spec": "2.60.0", - "@webex/test-helper-mocha": "2.60.0", - "@webex/webex-core": "2.60.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/storage-adapter-spec": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/storage-adapter-spec/-/storage-adapter-spec-2.60.0.tgz", - "integrity": "sha512-ovd2YB85qEPnKWjoKj9OcZlefhdWBSlDCD6TSD31zM3kPJ8P85yIG8Cg9z7fSi5eB7zKHRIJii8Kh1M90Au72w==", - "dev": true, - "dependencies": { - "@webex/test-helper-chai": "2.60.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/test-helper-chai": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/test-helper-chai/-/test-helper-chai-2.60.0.tgz", - "integrity": "sha512-PM75a1rqP7O8IE/1IwosSL4UsND6bNClZzFNi8PGnW11BTCdzjlOz9zbUGiVtB5IO218CZ2KUAum6w2cWjHp0A==", - "dev": true, - "dependencies": { - "@webex/test-helper-file": "2.60.0", - "check-error": "^1.0.2", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/test-helper-file": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/test-helper-file/-/test-helper-file-2.60.0.tgz", - "integrity": "sha512-YVH+s3qqU0KWWDqu2kWsDbVX1cq11WB5j5H/x6+o8v19mbVO5ttqwiMaBEHBZ0t3xz0eo7EUfsL1QUlI/VcJJQ==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/test-helper-make-local-url": "2.60.0", - "es6-promise": "^4.2.8", - "file-type": "^16.0.1", - "xhr": "^2.5.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/test-helper-make-local-url": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/test-helper-make-local-url/-/test-helper-make-local-url-2.60.0.tgz", - "integrity": "sha512-uwk9tlrGaHqTi24F/Cpp4fUJKqAAH3+AiQ+onFbZ4+KbuRG7SamDrRdU0DK/3j7r80gLeuwqc1WKglmcZLfwnw==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/test-helper-mocha": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/test-helper-mocha/-/test-helper-mocha-2.60.0.tgz", - "integrity": "sha512-d8tq9LC9TRiY6I9+TAhSRUm5WMB+7rKqj2NYp80BGnUJ1IJUSji6r9ePUbhoLQsRtESFGc5Pkz0PmDQjMi5U5Q==", - "dev": true, - "dependencies": { - "bowser": "^2.11.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/test-helper-mock-web-socket": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/test-helper-mock-web-socket/-/test-helper-mock-web-socket-2.60.0.tgz", - "integrity": "sha512-J4MZmqq1ZMtb2Gb4nBMFrh+DmTXFVl8dsqUxiD2UqIxO1sfzNvhZK7EcWUsppsp/04k+wUmBQr0zaHWIAKvEQQ==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/test-helper-mock-webex": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/test-helper-mock-webex/-/test-helper-mock-webex-2.60.0.tgz", - "integrity": "sha512-syDORTuinBRPpiBIdl+fUuUWDqB1hdctRfoTX3T7hFSK+/LNPFKJSyjQ01D7jEdMPWoqELjkBPDyf9wVI03PbA==", - "dev": true, - "dependencies": { - "ampersand-state": "^5.0.3", - "es6-promise": "^4.2.8", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/test-helper-refresh-callback": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/test-helper-refresh-callback/-/test-helper-refresh-callback-2.60.0.tgz", - "integrity": "sha512-jNHdT2rME3/xFtgJwMux+W7HIo7GX8Q7W0O41Ua8tco0/hpSRkBL7jQ8EQxcj4E1UkQyn629LCqCpPO7RlqVXA==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/test-helper-retry": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/test-helper-retry/-/test-helper-retry-2.60.0.tgz", - "integrity": "sha512-e8+LJTuvEBkgXf3SxHPA1Tv+wD7StwGBX43BUdSwVjMOPEI7FLQ5d2uJZty/FqpYu7fcmv9iHSU2Tv0uFe0Jmw==", - "dev": true, - "dependencies": { - "es6-promise": "^4.2.8" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/test-helper-test-users": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/test-helper-test-users/-/test-helper-test-users-2.60.0.tgz", - "integrity": "sha512-Duv2AJz1Pi8PN/QCt7kALxLRV57uiKpPPJYtJklphdt/VSWbkRCuEWlu6bX4XAgVxQE46WTISJ1Zox303MyD+A==", - "dev": true, - "dependencies": { - "@webex/test-helper-retry": "2.60.0", - "@webex/test-users": "2.60.0", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=14" - }, - "optionalDependencies": { - "@ciscospark/test-users-legacy": "^1.0.2" - } - }, - "node_modules/@webex/test-users": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/test-users/-/test-users-2.60.0.tgz", - "integrity": "sha512-8lE97PC0uePV/QQ8L2D2mr+kIcNLB8H9TWgMhPZlCYAk9DaAJNQcVMYLQLkjYoD/e7kPcPpmuHIID/3q2Xjedg==", - "dev": true, - "dependencies": { - "@webex/http-core": "2.60.0", - "@webex/test-helper-mocha": "2.60.0", - "btoa": "^1.2.1", - "lodash": "^4.17.21", - "node-random-name": "^1.0.1", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@webex/ts-sdp": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@webex/ts-sdp/-/ts-sdp-1.0.1.tgz", - "integrity": "sha512-dRbsF/MIS2bnnnbUMQL92SUZT3v9dhLJw2ItzGxqs9xaiVfEKVbjM020Hbd4ACQZ8dJ49CZ2tDd4Se9xUR3anQ==", - "dev": true - }, - "node_modules/@webex/webex-core": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/@webex/webex-core/-/webex-core-2.60.0.tgz", - "integrity": "sha512-Tr18TdcsIsfD1TgJqF1O+BdshvNcDsFdNiHlCpVo5GhIrssOfxQr46sbLh0pCrGS9pDa4xx9YMgSEmqfFLY+6w==", - "dev": true, - "dependencies": { - "@webex/common": "2.60.0", - "@webex/common-timers": "2.60.0", - "@webex/http-core": "2.60.0", - "@webex/internal-plugin-device": "2.60.0", - "@webex/plugin-logger": "2.60.0", - "@webex/storage-adapter-spec": "2.60.0", - "ampersand-collection": "^2.0.2", - "ampersand-events": "^2.0.2", - "ampersand-state": "^5.0.3", - "core-decorators": "^0.20.0", - "crypto-js": "^4.1.1", - "jsonwebtoken": "^9.0.0", - "lodash": "^4.17.21", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@xmldom/xmldom": { - "version": "0.7.13", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.7.13.tgz", - "integrity": "sha512-lm2GW5PkosIzccsaZIz7tp8cPADSIlIHWDFTR1N0SzfinhhYgeIQjFMz4rYzanCScr3DqQLeomUDArp6MWKm+g==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "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==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/alea": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/alea/-/alea-0.0.9.tgz", - "integrity": "sha512-7GrAOnIHGlKtOmZm09dHL+n5tXlao4uBGeXUPRX+I5PAyZqa95CaSFC9bXpkFJpT6j5N3+UKoxDfPmmwBedg7A==", - "dev": true - }, - "node_modules/ampersand-class-extend": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ampersand-class-extend/-/ampersand-class-extend-2.0.0.tgz", - "integrity": "sha512-i8hQvA4vZz9UfQAi0A4oBASYOZzlYgjFVkw0K1xpeKNSvq+KYkFOqJKkNvHCbbuKUNJnFk3kECSKPDAJ6ocEOg==", - "dev": true, - "dependencies": { - "lodash": "^4.11.1" - } - }, - "node_modules/ampersand-collection": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ampersand-collection/-/ampersand-collection-2.0.2.tgz", - "integrity": "sha512-IjDa4HTL/tdQDDL0SGyWk4AHD02iNtUSLRWkAsJ2biPvapljW9HNgIEIdbPnnR+7Gb9BJkjesaLNjVZfAMzeuA==", - "dev": true, - "dependencies": { - "ampersand-class-extend": "^2.0.0", - "ampersand-events": "^2.0.1", - "ampersand-version": "^1.0.2", - "lodash": "^4.11.1" - } - }, - "node_modules/ampersand-events": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ampersand-events/-/ampersand-events-2.0.2.tgz", - "integrity": "sha512-pPnVEJviRxXi9YhZA9j3GwGGBTlDLi+YIoBvrpKXgce+CO1nMlZU2aOV8OJogNuR2YPbptAUHNz7SKX+MvLj8A==", - "dev": true, - "dependencies": { - "ampersand-version": "^1.0.2", - "lodash": "^4.6.1" - } - }, - "node_modules/ampersand-state": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/ampersand-state/-/ampersand-state-5.0.3.tgz", - "integrity": "sha512-sr904K5zvw6mkGjFHhTcfBIdpoJ6mn/HrFg7OleRmBpw3apLb3Z0gVrgRTb7kK1wOLI34vs4S+IXqNHUeqWCzw==", - "dev": true, - "dependencies": { - "ampersand-events": "^2.0.1", - "ampersand-version": "^1.0.0", - "array-next": "~0.0.1", - "key-tree-store": "^1.3.0", - "lodash": "^4.12.0" - } - }, - "node_modules/ampersand-version": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ampersand-version/-/ampersand-version-1.0.2.tgz", - "integrity": "sha512-FVVLY7Pghtgc8pQl0rF3A3+OS/CZ+/ILLMIYIaO1cA9v5SRkainqUMfSot3fu32svuThIsYK3q9iCsH9W5+mWQ==", - "dev": true, - "dependencies": { - "find-root": "^0.1.1", - "through2": "^0.6.3" - } - }, - "node_modules/anser": { - "version": "1.4.10", - "resolved": "https://registry.npmjs.org/anser/-/anser-1.4.10.tgz", - "integrity": "sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-fragments": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ansi-fragments/-/ansi-fragments-0.2.1.tgz", - "integrity": "sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "colorette": "^1.0.7", - "slice-ansi": "^2.0.0", - "strip-ansi": "^5.0.0" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/appdirsjs": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/appdirsjs/-/appdirsjs-1.2.7.tgz", - "integrity": "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/application-config-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.1.tgz", - "integrity": "sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-next": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-next/-/array-next-0.0.1.tgz", - "integrity": "sha512-sBOC/Iaz2hCcYi2XlyRfyZCRUxamlE5NJXEFjE9BTx23HALnWAFsPjGtfrAclt9o3G/38Het2yyeyOd3CEY7lg==", - "dev": true - }, - "node_modules/array-parallel": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/array-parallel/-/array-parallel-0.1.3.tgz", - "integrity": "sha512-TDPTwSWW5E4oiFiKmz6RGJ/a80Y91GuLgUYuLd49+XBS75tYo8PNgaT2K/OxuQYqkoI852MDGBorg9OcUSTQ8w==", - "dev": true - }, - "node_modules/array-series": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/array-series/-/array-series-0.1.5.tgz", - "integrity": "sha512-L0XlBwfx9QetHOsbLDrE/vh2t018w9462HM3iaFfxRiK83aJjAt/Ja3NMkOW7FICwWTlQBa3ZbL5FKhuQWkDrg==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/asmcrypto.js": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/asmcrypto.js/-/asmcrypto.js-0.22.0.tgz", - "integrity": "sha512-usgMoyXjMbx/ZPdzTSXExhMPur2FTdz/Vo5PVx2gIaBcdAAJNOFlsdgqveM8Cff7W0v+xrf9BwjOV26JSAF9qA==", - "dev": true - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1js": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-2.4.0.tgz", - "integrity": "sha512-PvZC0FMyMut8aOnR2jAEGSkmRtHIUYPe9amUEnGjr9TdnUmsfoOkjrvUkOEU9mzpYBR1HyO9bF+8U1cLTMMHhQ==", - "dev": true, - "dependencies": { - "pvutils": "^1.1.3" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/ast-types": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.15.2.tgz", - "integrity": "sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "dev": true - }, - "node_modules/b64-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/b64-lite/-/b64-lite-1.4.0.tgz", - "integrity": "sha512-aHe97M7DXt+dkpa8fHlCcm1CnskAHrJqEfMI0KN7dwqlzml/aUe1AGt6lk51HzrSfVD67xOso84sOpr+0wIe2w==", - "dev": true, - "dependencies": { - "base-64": "^0.1.0" - } - }, - "node_modules/b64u-lite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/b64u-lite/-/b64u-lite-1.1.0.tgz", - "integrity": "sha512-929qWGDVCRph7gQVTC6koHqQIpF4vtVaSbwLltFQo44B1bYUquALswZdBKFfrJCPEnsCOvWkJsPdQYZ/Ukhw8A==", - "dev": true, - "dependencies": { - "b64-lite": "^1.4.0" - } - }, - "node_modules/babel-core": { - "version": "7.0.0-bridge.0", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", - "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", - "dev": true, - "optional": true, - "peer": true, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz", - "integrity": "sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.5.0", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz", - "integrity": "sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0", - "core-js-compat": "^3.34.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz", - "integrity": "sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.5.0" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-react-native-web": { - "version": "0.18.12", - "resolved": "https://registry.npmjs.org/babel-plugin-react-native-web/-/babel-plugin-react-native-web-0.18.12.tgz", - "integrity": "sha512-4djr9G6fMdwQoD6LQ7hOKAm39+y12flWgovAqS1k5O8f42YQ3A1FFMyV5kKfetZuGhZO5BmNmOdRRZQ1TixtDw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/babel-plugin-syntax-trailing-function-commas": { - "version": "7.0.0-beta.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", - "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/babel-plugin-transform-flow-enums": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz", - "integrity": "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/plugin-syntax-flow": "^7.12.1" - } - }, - "node_modules/babel-preset-expo": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-expo/-/babel-preset-expo-10.0.1.tgz", - "integrity": "sha512-uWIGmLfbP3dS5+8nesxaW6mQs41d4iP7X82ZwRdisB/wAhKQmuJM9Y1jQe4006uNYkw6Phf2TT03ykLVro7KuQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/plugin-proposal-decorators": "^7.12.9", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.12.13", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/preset-env": "^7.20.0", - "@babel/preset-react": "^7.22.15", - "@react-native/babel-preset": "^0.73.18", - "babel-plugin-react-native-web": "~0.18.10", - "react-refresh": "0.14.0" - } - }, - "node_modules/babel-preset-fbjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", - "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/plugin-proposal-class-properties": "^7.0.0", - "@babel/plugin-proposal-object-rest-spread": "^7.0.0", - "@babel/plugin-syntax-class-properties": "^7.0.0", - "@babel/plugin-syntax-flow": "^7.0.0", - "@babel/plugin-syntax-jsx": "^7.0.0", - "@babel/plugin-syntax-object-rest-spread": "^7.0.0", - "@babel/plugin-transform-arrow-functions": "^7.0.0", - "@babel/plugin-transform-block-scoped-functions": "^7.0.0", - "@babel/plugin-transform-block-scoping": "^7.0.0", - "@babel/plugin-transform-classes": "^7.0.0", - "@babel/plugin-transform-computed-properties": "^7.0.0", - "@babel/plugin-transform-destructuring": "^7.0.0", - "@babel/plugin-transform-flow-strip-types": "^7.0.0", - "@babel/plugin-transform-for-of": "^7.0.0", - "@babel/plugin-transform-function-name": "^7.0.0", - "@babel/plugin-transform-literals": "^7.0.0", - "@babel/plugin-transform-member-expression-literals": "^7.0.0", - "@babel/plugin-transform-modules-commonjs": "^7.0.0", - "@babel/plugin-transform-object-super": "^7.0.0", - "@babel/plugin-transform-parameters": "^7.0.0", - "@babel/plugin-transform-property-literals": "^7.0.0", - "@babel/plugin-transform-react-display-name": "^7.0.0", - "@babel/plugin-transform-react-jsx": "^7.0.0", - "@babel/plugin-transform-shorthand-properties": "^7.0.0", - "@babel/plugin-transform-spread": "^7.0.0", - "@babel/plugin-transform-template-literals": "^7.0.0", - "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/backoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz", - "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==", - "dev": true, - "dependencies": { - "precond": "0.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/base-64": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz", - "integrity": "sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/base64url": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", - "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/better-opn": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", - "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "open": "^8.0.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/big-integer": { - "version": "1.6.52", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, - "peer": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/blueimp-md5": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.19.0.tgz", - "integrity": "sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/bowser": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", - "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==", - "dev": true - }, - "node_modules/bplist-creator": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz", - "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "stream-buffers": "2.2.x" - } - }, - "node_modules/bplist-parser": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", - "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "big-integer": "1.6.x" - }, - "engines": { - "node": ">= 5.10.0" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "optional": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.22.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz", - "integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "optional": true, - "peer": true, - "dependencies": { - "caniuse-lite": "^1.0.30001580", - "electron-to-chromium": "^1.4.648", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "dev": true, - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", - "dev": true - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/bytestreamjs": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-1.1.3.tgz", - "integrity": "sha512-JDGoiJ+yt+4Ui1e/vMWx5TRvmnErBBbsOkprXgbe1fRp2XZzI8MoknoiR/ZVCya9aWJbOhrJ5Heon1wrAdftkg==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cacache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "caller-callsite": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001580", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001580.tgz", - "integrity": "sha512-mtj5ur2FFPZcCEpXFy8ADXbDACuNFXg6mxVDqp7tqooX6l3zwm+d8EPoeOSIFRDvHs8qu7/SLFOGniULkcH2iA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "optional": true, - "peer": true - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "optional": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": "*" - } - }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chrome-launcher": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.2.tgz", - "integrity": "sha512-zdLEwNo3aUVzIhKhTtXfxhdvZhUghrnmkvcAq2NoDd+LeOHKf03H5jwZ8T/STsAlzyALkBVK552iaG1fGf1xVQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/node": "*", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0" - }, - "bin": { - "print-chrome-path": "bin/print-chrome-path.js" - }, - "engines": { - "node": ">=12.13.0" - } - }, - "node_modules/chromium-edge-launcher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/chromium-edge-launcher/-/chromium-edge-launcher-1.0.0.tgz", - "integrity": "sha512-pgtgjNKZ7i5U++1g1PWv75umkHvhVTDOQIZ+sjeUX9483S7Y6MUvO0lrd7ShGlQlFHMN4SwKTCq/X8hWrbv2KA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/node": "*", - "escape-string-regexp": "^4.0.0", - "is-wsl": "^2.2.0", - "lighthouse-logger": "^1.0.0", - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "node_modules/chromium-edge-launcher/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "node_modules/colorette": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/command-exists": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz", - "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", - "dev": true, - "optional": true - }, - "node_modules/component-type": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/component-type/-/component-type-1.2.2.tgz", - "integrity": "sha512-99VUHREHiN5cLeHm3YLq312p6v+HUEcwtLCAtelvUDI6+SH5g5Cr85oNR2S1o6ywzL0ykMbuwLzM2ANocjEOIA==", - "dev": true, - "optional": true, - "peer": true, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/core-decorators": { - "version": "0.20.0", - "resolved": "https://registry.npmjs.org/core-decorators/-/core-decorators-0.20.0.tgz", - "integrity": "sha512-7cp/Pz3AmQXjRwhAsFN+8ndRiBNyLxtZgC/fhKvrwQTf2ZlZma6LnimoJPrOqgxZ0tIeI9VvSs+QKe0OPJ0SuA==", - "dev": true - }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.1.tgz", - "integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "browserslist": "^4.22.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", - "dev": true, - "dependencies": { - "node-fetch": "^2.6.12" - } - }, - "node_modules/cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==", - "dev": true, - "dependencies": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": "*" - } - }, - "node_modules/crypto-js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", - "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", - "dev": true - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dag-map": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/dag-map/-/dag-map-1.0.2.tgz", - "integrity": "sha512-+LSAiGFwQ9dRnRdOeaj7g47ZFJcOUPukAP8J3A3fuZ1g9Y44BG+P1sgApjLXTQPOzC4+7S9Wr8kXsfpINM4jpw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/dayjs": { - "version": "1.11.10", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", - "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defaults/node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/del/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/denodeify": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", - "integrity": "sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==", - "dev": true, - "optional": true, - "peer": true - }, - "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==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/deprecated-react-native-prop-types": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-5.0.0.tgz", - "integrity": "sha512-cIK8KYiiGVOFsKdPMmm1L3tA/Gl+JopXL6F5+C7x39MyPsQYnP57Im/D6bNUzcborD7fcMwiwZqcBdBXXZucYQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@react-native/normalize-colors": "^0.73.0", - "invariant": "^2.2.4", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/detectrtc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/detectrtc/-/detectrtc-1.4.1.tgz", - "integrity": "sha512-lxvyNN6/dSnwoVj1VstVFHel7S0BTmkfv1+01IBEy42D20pue27eB/MfphUOQz78jJ7WcQJDo6ZybhgBlUDi0Q==", - "dev": true - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true - }, - "node_modules/dotenv": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" - } - }, - "node_modules/dotenv-expand": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-10.0.0.tgz", - "integrity": "sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "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==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.648", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.648.tgz", - "integrity": "sha512-EmFMarXeqJp9cUKu/QEciEApn0S/xRcpZWuAm32U7NgoZCimjsilKXHRO9saeEW55eHZagIDg6XTUOv32w9pjg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "optional": true, - "peer": true - }, - "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==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/env-editor": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/env-editor/-/env-editor-0.4.2.tgz", - "integrity": "sha512-ObFo8v4rQJAE59M69QzwloxPZtd33TpYEIjtKD1rrFDcM1Gd7IkDxEBU+HriziN6HSHQnBJi8Dmy+JWkav5HKA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eol": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", - "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/error-stack-parser": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", - "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "stackframe": "^1.3.4" - } - }, - "node_modules/errorhandler": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/errorhandler/-/errorhandler-1.5.1.tgz", - "integrity": "sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "accepts": "~1.3.7", - "escape-html": "~1.0.3" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "node_modules/esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "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==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/exec-async": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/exec-async/-/exec-async-2.2.0.tgz", - "integrity": "sha512-87OpwcEiMia/DeiKFzaQNBNFeN3XkkpYIh9FyOqq5mS2oKv3CBE67PXoEKcr6nodWdXNogTiQ0jE2NGuoffXPw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/execa/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/execa/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/execa/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/exifr": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/exifr/-/exifr-5.0.6.tgz", - "integrity": "sha512-iDB4IhKoKVF+uDDrHRlyNxWqGaTxYluVWqvBWVG54HkQZe8qkFYl9eQrjEP3d8Q4UMBZ9rWu3Pa+mfC+o4CZuw==", - "dev": true - }, - "node_modules/expo": { - "version": "50.0.4", - "resolved": "https://registry.npmjs.org/expo/-/expo-50.0.4.tgz", - "integrity": "sha512-8QWBvYZyKFd7pHxbtri8/ZITBR19QbrW2IkezAhs3ZOHR2kluSgNfyo9ojAe7GnOnE8hCB6Xe83Dbm0R3Ealhw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/runtime": "^7.20.0", - "@expo/cli": "0.17.3", - "@expo/config": "8.5.4", - "@expo/config-plugins": "7.8.4", - "@expo/metro-config": "0.17.3", - "@expo/vector-icons": "^14.0.0", - "babel-preset-expo": "~10.0.1", - "expo-asset": "~9.0.2", - "expo-file-system": "~16.0.5", - "expo-font": "~11.10.2", - "expo-keep-awake": "~12.8.2", - "expo-modules-autolinking": "1.10.2", - "expo-modules-core": "1.11.8", - "fbemitter": "^3.0.0", - "whatwg-url-without-unicode": "8.0.0-3" - }, - "bin": { - "expo": "bin/cli" - } - }, - "node_modules/expo-asset": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/expo-asset/-/expo-asset-9.0.2.tgz", - "integrity": "sha512-PzYKME1MgUOoUvwtdzhAyXkjXOXGiSYqGKG/MsXwWr0Ef5wlBaBm2DCO9V6KYbng5tBPFu6hTjoRNil1tBOSow==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@react-native/assets-registry": "~0.73.1", - "blueimp-md5": "^2.10.0", - "expo-constants": "~15.4.0", - "expo-file-system": "~16.0.0", - "invariant": "^2.2.4", - "md5-file": "^3.2.3" - } - }, - "node_modules/expo-constants": { - "version": "15.4.5", - "resolved": "https://registry.npmjs.org/expo-constants/-/expo-constants-15.4.5.tgz", - "integrity": "sha512-1pVVjwk733hbbIjtQcvUFCme540v4gFemdNlaxM2UXKbfRCOh2hzgKN5joHMOysoXQe736TTUrRj7UaZI5Yyhg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@expo/config": "~8.5.0" - }, - "peerDependencies": { - "expo": "*" - } - }, - "node_modules/expo-file-system": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/expo-file-system/-/expo-file-system-16.0.5.tgz", - "integrity": "sha512-JpKMbKfwTaMCbwUwq7MwcSbPR7r+IqZEL3RFam3ClPHDtKLnlEoywREeaDsWjSZb7dS25hG3WqXspfTuugCDvg==", - "dev": true, - "optional": true, - "peer": true, - "peerDependencies": { - "expo": "*" - } - }, - "node_modules/expo-font": { - "version": "11.10.2", - "resolved": "https://registry.npmjs.org/expo-font/-/expo-font-11.10.2.tgz", - "integrity": "sha512-AE0Q0LiWiVosQ/jlKUPoWoob7p3GwYM2xmLoUkuopO9RYh9NL1hZKHiMKcWBZyDG8Gww1GtBQwh7ZREST8+jjQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "fontfaceobserver": "^2.1.0" - }, - "peerDependencies": { - "expo": "*" - } - }, - "node_modules/expo-keep-awake": { - "version": "12.8.2", - "resolved": "https://registry.npmjs.org/expo-keep-awake/-/expo-keep-awake-12.8.2.tgz", - "integrity": "sha512-uiQdGbSX24Pt8nGbnmBtrKq6xL/Tm3+DuDRGBk/3ZE/HlizzNosGRIufIMJ/4B4FRw4dw8KU81h2RLuTjbay6g==", - "dev": true, - "optional": true, - "peer": true, - "peerDependencies": { - "expo": "*" - } - }, - "node_modules/expo-modules-autolinking": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-0.0.3.tgz", - "integrity": "sha512-azkCRYj/DxbK4udDuDxA9beYzQTwpJ5a9QA0bBgha2jHtWdFGF4ZZWSY+zNA5mtU3KqzYt8jWHfoqgSvKyu1Aw==", - "dev": true, - "optional": true, - "dependencies": { - "chalk": "^4.1.0", - "commander": "^7.2.0", - "fast-glob": "^3.2.5", - "find-up": "~5.0.0", - "fs-extra": "^9.1.0" - }, - "bin": { - "expo-modules-autolinking": "bin/expo-modules-autolinking.js" - } - }, - "node_modules/expo-modules-autolinking/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "optional": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/expo-modules-autolinking/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "optional": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/expo-modules-autolinking/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/expo-modules-core": { - "version": "1.11.8", - "resolved": "https://registry.npmjs.org/expo-modules-core/-/expo-modules-core-1.11.8.tgz", - "integrity": "sha512-rlctE3nCNLCGv3LosGQNaTuwGrr2SyQA+hOgci/0l+VRc0gFNtvl0gskph9C0tnN1jzBeb8rRZQYVj5ih1yxcA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "invariant": "^2.2.4" - } - }, - "node_modules/expo-random": { - "version": "13.6.0", - "resolved": "https://registry.npmjs.org/expo-random/-/expo-random-13.6.0.tgz", - "integrity": "sha512-c4Ikio+a2sUyJC0386K6JplqjVDelsyqQfjiy4yCx+0epEu44AP99ipF+HsmZVOvsWsWkd/lkpq5kGnJON5EfA==", - "dev": true, - "optional": true, - "dependencies": { - "base64-js": "^1.3.0" - }, - "peerDependencies": { - "expo": "*" - } - }, - "node_modules/expo/node_modules/expo-modules-autolinking": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/expo-modules-autolinking/-/expo-modules-autolinking-1.10.2.tgz", - "integrity": "sha512-OEeoz0+zGx5EJwGtDm9pSywCr+gUCaisZV0mNkK7V3fuRl+EVPBSsI+957JwAc4ZxVps95jy28eLcRRtQ33yVg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@expo/config": "~8.5.0", - "chalk": "^4.1.0", - "commander": "^7.2.0", - "fast-glob": "^3.2.5", - "find-up": "^5.0.0", - "fs-extra": "^9.1.0" - }, - "bin": { - "expo-modules-autolinking": "bin/expo-modules-autolinking.js" - } - }, - "node_modules/expo/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/expo/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/expo/node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "optional": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-xml-parser": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.3.tgz", - "integrity": "sha512-coV/D1MhrShMvU6D0I+VAK3umz6hUaxxhL0yp/9RjfiYUfAv14rDhGQL+PLForhMdr0wq3PiV07WtkkNjJjNHg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/NaturalIntelligence" - }, - { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - ], - "optional": true, - "peer": true, - "dependencies": { - "strnum": "^1.0.5" - }, - "bin": { - "fxparser": "src/cli/cli.js" - } - }, - "node_modules/fastq": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.0.tgz", - "integrity": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==", - "dev": true, - "optional": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fbemitter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", - "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "fbjs": "^3.0.0" - } - }, - "node_modules/fbjs": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz", - "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "cross-fetch": "^3.1.5", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^1.0.35" - } - }, - "node_modules/fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/fetch-retry": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/fetch-retry/-/fetch-retry-4.1.1.tgz", - "integrity": "sha512-e6eB7zN6UBSwGVwrbWVH+gdLnkW9WwHhmq2YDK1Sh30pzx1onRVGBvogTlUeWxwTa+L86NYdo4hFkh7O8ZjSnA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/file-type": { - "version": "16.5.4", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", - "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", - "dev": true, - "dependencies": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "optional": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-root": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-0.1.2.tgz", - "integrity": "sha512-GyDxVgA61TZcrgDJPqOqGBpi80Uf2yIstubgizi7AjC9yPdRrqBR+Y0MvK4kXnYlaoz3d+SGxDHMYVkwI/yd2w==", - "dev": true - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "optional": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-yarn-workspace-root": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", - "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "micromatch": "^4.0.2" - } - }, - "node_modules/flow-enums-runtime": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/flow-enums-runtime/-/flow-enums-runtime-0.0.6.tgz", - "integrity": "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/flow-parser": { - "version": "0.206.0", - "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.206.0.tgz", - "integrity": "sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/fontfaceobserver": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/fontfaceobserver/-/fontfaceobserver-2.3.0.tgz", - "integrity": "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/freeport-async": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/freeport-async/-/freeport-async-2.0.0.tgz", - "integrity": "sha512-K7od3Uw45AJg00XUmy15+Hae2hOcgKcmN3/EF6Y7i01O0gaqiRx8sUSpsb9+BRNL8RPBrhzPsVfy8q9ADlJuWQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "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==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-tsconfig": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", - "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", - "dev": true, - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/getenv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/getenv/-/getenv-1.0.0.tgz", - "integrity": "sha512-7yetJWqbS9sbn0vIfliPsFgoXMKn/YMF+Wuiog97x+urnSRRRZ7xB+uVkwGKzRgq9CDFfMQnE9ruL5DHv9c6Xg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "optional": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dev": true, - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gm": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/gm/-/gm-1.25.0.tgz", - "integrity": "sha512-4kKdWXTtgQ4biIo7hZA396HT062nDVVHPjQcurNZ3o/voYN+o5FUC5kOwuORbpExp3XbTJ3SU7iRipiIhQtovw==", - "dev": true, - "dependencies": { - "array-parallel": "~0.1.3", - "array-series": "~0.1.5", - "cross-spawn": "^4.0.0", - "debug": "^3.1.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/gm/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "optional": true - }, - "node_modules/graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "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==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hermes-estree": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.15.0.tgz", - "integrity": "sha512-lLYvAd+6BnOqWdnNbP/Q8xfl8LOGw4wVjfrNd9Gt8eoFzhNBRVD95n4l2ksfMVOoxuVyegs85g83KS9QOsxbVQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/hermes-parser": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.15.0.tgz", - "integrity": "sha512-Q1uks5rjZlE9RjMMjSUCkGrEIPI5pKJILeCtK1VmTj7U4pf3wVPoo+cxfu+s4cBAPy2JzikIIdCZgBoR6x7U1Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "hermes-estree": "0.15.0" - } - }, - "node_modules/hermes-profile-transformer": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz", - "integrity": "sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/hermes-profile-transformer/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/hosted-git-info": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", - "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - }, - "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==", - "dev": true, - "optional": true, - "peer": true, - "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/http-errors/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/image-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", - "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=16.x" - } - }, - "node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-fresh/node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "optional": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/ip-anonymize": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ip-anonymize/-/ip-anonymize-0.1.0.tgz", - "integrity": "sha512-cZJu+N5JKKFGMK0eEQWNaQMn2EhCysciVM6eotCJwfqotj16BTfVchKsJCH6mQAT9N0GC7oWRcsZ6Lb8dDiwTA==", - "dev": true - }, - "node_modules/ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "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==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "dev": true - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "optional": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-invalid-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", - "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-invalid-path/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-invalid-path/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-valid-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", - "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "is-invalid-path": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isomorphic-webcrypto": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/isomorphic-webcrypto/-/isomorphic-webcrypto-2.3.8.tgz", - "integrity": "sha512-XddQSI0WYlSCjxtm1AI8kWQOulf7hAN3k3DclF1sxDJZqOe0pcsOt675zvWW91cZH9hYs3nlA3Ev8QK5i80SxQ==", - "dev": true, - "dependencies": { - "@peculiar/webcrypto": "^1.0.22", - "asmcrypto.js": "^0.22.0", - "b64-lite": "^1.3.1", - "b64u-lite": "^1.0.1", - "msrcrypto": "^1.5.6", - "str2buf": "^1.3.0", - "webcrypto-shim": "^0.1.4" - }, - "optionalDependencies": { - "@unimodules/core": "*", - "@unimodules/react-native-adapter": "*", - "expo-random": "*", - "react-native-securerandom": "^0.1.1" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, - "node_modules/javascript-state-machine": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/javascript-state-machine/-/javascript-state-machine-3.1.0.tgz", - "integrity": "sha512-BwhYxQ1OPenBPXC735RgfB+ZUG8H3kjsx8hrYTgWnoy6TPipEy4fiicyhT2lxRKAXq9pG7CfFT8a2HLr6Hmwxg==", - "dev": true - }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/jest-message-util/node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jest-message-util/node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/jest-message-util/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jimp-compact": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/jimp-compact/-/jimp-compact-0.16.1.tgz", - "integrity": "sha512-dZ6Ra7u1G8c4Letq/B5EzAxj4tLFHL+cGtdpR+PVm4yzPDj+lCk+AbivWt1eOM+ikzkowtyV7qSqX6qr3t71Ww==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/joi": { - "version": "17.12.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.12.0.tgz", - "integrity": "sha512-HSLsmSmXz+PV9PYoi3p7cgIbj06WnEBNT28n+bbBNcPZXZFqCzzvGqpTBPujx/Z0nh1+KNQPDrNgdmQ8dq0qYw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@hapi/hoek": "^9.3.0", - "@hapi/topo": "^5.1.0", - "@sideway/address": "^4.1.4", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/join-component": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/join-component/-/join-component-1.1.0.tgz", - "integrity": "sha512-bF7vcQxbODoGK1imE2P9GS9aw4zD0Sd+Hni68IMZLj7zRnquH7dXUmMw9hDI5S/Jzt7q+IyTXN0rSg2GI0IKhQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/jose": { - "version": "4.15.4", - "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.4.tgz", - "integrity": "sha512-W+oqK4H+r5sITxfxpSU+MMdr/YSWGvgZMQDIsNoBDGGy4i7GBPTtvFKibQzW06n3U3TqHjhvBJsirShsEJ6eeQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/panva" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "optional": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, - "node_modules/jsc-android": { - "version": "250231.0.0", - "resolved": "https://registry.npmjs.org/jsc-android/-/jsc-android-250231.0.0.tgz", - "integrity": "sha512-rS46PvsjYmdmuz1OAWXY/1kCYG7pnf1TBqeTiOJr1iDz7s5DLxxC9n/ZMknLDxzYzNVfI7R95MH10emSSG1Wuw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/jsc-safe-url": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/jsc-safe-url/-/jsc-safe-url-0.2.4.tgz", - "integrity": "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/jscodeshift": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.14.0.tgz", - "integrity": "sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/core": "^7.13.16", - "@babel/parser": "^7.13.16", - "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", - "@babel/plugin-proposal-optional-chaining": "^7.13.12", - "@babel/plugin-transform-modules-commonjs": "^7.13.8", - "@babel/preset-flow": "^7.13.13", - "@babel/preset-typescript": "^7.13.0", - "@babel/register": "^7.13.16", - "babel-core": "^7.0.0-bridge.0", - "chalk": "^4.1.2", - "flow-parser": "0.*", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "neo-async": "^2.5.0", - "node-dir": "^0.1.17", - "recast": "^0.21.0", - "temp": "^0.8.4", - "write-file-atomic": "^2.3.0" - }, - "bin": { - "jscodeshift": "bin/jscodeshift.js" - }, - "peerDependencies": { - "@babel/preset-env": "^7.1.6" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "node_modules/json-schema-deref-sync": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/json-schema-deref-sync/-/json-schema-deref-sync-0.13.0.tgz", - "integrity": "sha512-YBOEogm5w9Op337yb6pAT6ZXDqlxAsQCanM3grid8lMWNxRJO/zWEJi3ZzqDL8boWfwhTFym5EFrNgWwpqcBRg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "clone": "^2.1.2", - "dag-map": "~1.0.0", - "is-valid-path": "^0.1.1", - "lodash": "^4.17.13", - "md5": "~2.2.0", - "memory-cache": "~0.2.0", - "traverse": "~0.6.6", - "valid-url": "~1.0.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/json-schema-deref-sync/node_modules/md5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", - "integrity": "sha512-PlGG4z5mBANDGCKsYQe0CaUYHdZYZt8ZPZLmEt+Urf0W4GlpTX4HescwHU+dc9+Z/G/vZKYZYFrwgm9VxK6QOQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "charenc": "~0.0.1", - "crypt": "~0.0.1", - "is-buffer": "~1.1.1" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optional": true, - "peer": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", - "dev": true, - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dev": true, - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dev": true, - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/key-tree-store": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/key-tree-store/-/key-tree-store-1.3.0.tgz", - "integrity": "sha512-qXk+lR+LXvGos3wqMxIMWweKDgCx8ZKWM6BEPm7iZkOKug5ggi66vUt+3vbtKJLBrAyOxQ4S8JRwK++Q4XZRmw==", - "dev": true - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/lighthouse-logger": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.4.2.tgz", - "integrity": "sha512-gPWxznF6TKmUHrOQjlVo2UbaL2EJ71mb2CCeRs/2qBpi4L/g4LUVc9+3lKQ6DTUZwJswfM7ainGrLO1+fOqa2g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "debug": "^2.6.9", - "marky": "^1.2.2" - } - }, - "node_modules/lighthouse-logger/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/lighthouse-logger/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/lightningcss": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.19.0.tgz", - "integrity": "sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "detect-libc": "^1.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-darwin-arm64": "1.19.0", - "lightningcss-darwin-x64": "1.19.0", - "lightningcss-linux-arm-gnueabihf": "1.19.0", - "lightningcss-linux-arm64-gnu": "1.19.0", - "lightningcss-linux-arm64-musl": "1.19.0", - "lightningcss-linux-x64-gnu": "1.19.0", - "lightningcss-linux-x64-musl": "1.19.0", - "lightningcss-win32-x64-msvc": "1.19.0" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.19.0.tgz", - "integrity": "sha512-wIJmFtYX0rXHsXHSr4+sC5clwblEMji7HHQ4Ub1/CznVRxtCFha6JIt5JZaNf8vQrfdZnBxLLC6R8pC818jXqg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.19.0.tgz", - "integrity": "sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.19.0.tgz", - "integrity": "sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.19.0.tgz", - "integrity": "sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.19.0.tgz", - "integrity": "sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.19.0.tgz", - "integrity": "sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.19.0.tgz", - "integrity": "sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.19.0.tgz", - "integrity": "sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "optional": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash._arraycopy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._arraycopy/-/lodash._arraycopy-3.0.0.tgz", - "integrity": "sha512-RHShTDnPKP7aWxlvXKiDT6IX2jCs6YZLCtNhOru/OX2Q/tzX295vVBK5oX1ECtN+2r86S0Ogy8ykP1sgCZAN0A==", - "dev": true - }, - "node_modules/lodash._arrayeach": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._arrayeach/-/lodash._arrayeach-3.0.0.tgz", - "integrity": "sha512-Mn7HidOVcl3mkQtbPsuKR0Fj0N6Q6DQB77CtYncZcJc0bx5qv2q4Gl6a0LC1AN+GSxpnBDNnK3CKEm9XNA4zqQ==", - "dev": true - }, - "node_modules/lodash._baseassign": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", - "integrity": "sha512-t3N26QR2IdSN+gqSy9Ds9pBu/J1EAFEshKlUHpJG3rvyJOYgcELIxcIeKKfZk7sjOz11cFfzJRsyFry/JyabJQ==", - "dev": true, - "dependencies": { - "lodash._basecopy": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "node_modules/lodash._baseclone": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-3.3.0.tgz", - "integrity": "sha512-1K0dntf2dFQ5my0WoGKkduewR6+pTNaqX03kvs45y7G5bzl4B3kTR4hDfJIc2aCQDeLyQHhS280tc814m1QC1Q==", - "dev": true, - "dependencies": { - "lodash._arraycopy": "^3.0.0", - "lodash._arrayeach": "^3.0.0", - "lodash._baseassign": "^3.0.0", - "lodash._basefor": "^3.0.0", - "lodash.isarray": "^3.0.0", - "lodash.keys": "^3.0.0" - } - }, - "node_modules/lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==", - "dev": true - }, - "node_modules/lodash._basefor": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash._basefor/-/lodash._basefor-3.0.3.tgz", - "integrity": "sha512-6bc3b8grkpMgDcVJv9JYZAk/mHgcqMljzm7OsbmcE2FGUMmmLQTPHlh/dFqR8LA0GQ7z4K67JSotVKu5058v1A==", - "dev": true - }, - "node_modules/lodash._bindcallback": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", - "integrity": "sha512-2wlI0JRAGX8WEf4Gm1p/mv/SZ+jLijpj0jyaE/AXeuQphzCgD8ZQW4oSpoN8JAopujOFGU3KMuq7qfHBWlGpjQ==", - "dev": true - }, - "node_modules/lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==", - "dev": true - }, - "node_modules/lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==", - "dev": true - }, - "node_modules/lodash.clone": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-3.0.3.tgz", - "integrity": "sha512-yVYPpFTdZDCLG2p07gVRTvcwN5X04oj2hu4gG6r0fer58JA08wAVxXzWM+CmmxO2bzOH8u8BkZTZqgX6juVF7A==", - "dev": true, - "dependencies": { - "lodash._baseclone": "^3.0.0", - "lodash._bindcallback": "^3.0.0", - "lodash._isiterateecall": "^3.0.0" - } - }, - "node_modules/lodash.clonedeep": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-3.0.2.tgz", - "integrity": "sha512-I8MpGh5z+6OixDAAb21teLSZDmqVPjlq02Q7ZFrbn2xnQHYYuJf6on/94SWpF/p0s3p/cEv/53ro4AhDOfCR0g==", - "dev": true, - "dependencies": { - "lodash._baseclone": "^3.0.0", - "lodash._bindcallback": "^3.0.0" - } - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", - "dev": true - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", - "dev": true - }, - "node_modules/lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==", - "dev": true - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", - "dev": true - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", - "dev": true - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", - "dev": true - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "dev": true - }, - "node_modules/lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==", - "dev": true, - "dependencies": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" - } - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "dev": true - }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/log-symbols/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/logkitty": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/logkitty/-/logkitty-0.7.1.tgz", - "integrity": "sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-fragments": "^0.2.1", - "dayjs": "^1.8.15", - "yargs": "^15.1.0" - }, - "bin": { - "logkitty": "bin/logkitty.js" - } - }, - "node_modules/logkitty/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/logkitty/node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "node_modules/logkitty/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/logkitty/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/logkitty/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/logkitty/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/logkitty/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/logkitty/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/logkitty/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/logkitty/node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/logkitty/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "optional": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/marky": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.5.tgz", - "integrity": "sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" - } - }, - "node_modules/md5-file": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-3.2.3.tgz", - "integrity": "sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "buffer-alloc": "^1.1.0" - }, - "bin": { - "md5-file": "cli.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/md5hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/md5hex/-/md5hex-1.0.0.tgz", - "integrity": "sha512-c2YOUbp33+6thdCUi34xIyOU/a7bvGKj/3DB1iaPMTuPHf/Q2d5s4sn1FaCOO43XkXggnb08y5W2PU8UNYNLKQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/memoize-one": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz", - "integrity": "sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/memory-cache": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz", - "integrity": "sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "optional": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/metro": { - "version": "0.80.5", - "resolved": "https://registry.npmjs.org/metro/-/metro-0.80.5.tgz", - "integrity": "sha512-OE/CGbOgbi8BlTN1QqJgKOBaC27dS0JBQw473JcivrpgVnqIsluROA7AavEaTVUrB9wPUZvoNVDROn5uiM2jfw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.0", - "@babel/parser": "^7.20.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "accepts": "^1.3.7", - "chalk": "^4.0.0", - "ci-info": "^2.0.0", - "connect": "^3.6.5", - "debug": "^2.2.0", - "denodeify": "^1.2.1", - "error-stack-parser": "^2.0.6", - "graceful-fs": "^4.2.4", - "hermes-parser": "0.18.2", - "image-size": "^1.0.2", - "invariant": "^2.2.4", - "jest-worker": "^29.6.3", - "jsc-safe-url": "^0.2.2", - "lodash.throttle": "^4.1.1", - "metro-babel-transformer": "0.80.5", - "metro-cache": "0.80.5", - "metro-cache-key": "0.80.5", - "metro-config": "0.80.5", - "metro-core": "0.80.5", - "metro-file-map": "0.80.5", - "metro-resolver": "0.80.5", - "metro-runtime": "0.80.5", - "metro-source-map": "0.80.5", - "metro-symbolicate": "0.80.5", - "metro-transform-plugins": "0.80.5", - "metro-transform-worker": "0.80.5", - "mime-types": "^2.1.27", - "node-fetch": "^2.2.0", - "nullthrows": "^1.1.1", - "rimraf": "^3.0.2", - "serialize-error": "^2.1.0", - "source-map": "^0.5.6", - "strip-ansi": "^6.0.0", - "throat": "^5.0.0", - "ws": "^7.5.1", - "yargs": "^17.6.2" - }, - "bin": { - "metro": "src/cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/metro-babel-transformer": { - "version": "0.80.5", - "resolved": "https://registry.npmjs.org/metro-babel-transformer/-/metro-babel-transformer-0.80.5.tgz", - "integrity": "sha512-sxH6hcWCorhTbk4kaShCWsadzu99WBL4Nvq4m/sDTbp32//iGuxtAnUK+ZV+6IEygr2u9Z0/4XoZ8Sbcl71MpA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/core": "^7.20.0", - "hermes-parser": "0.18.2", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/metro-babel-transformer/node_modules/hermes-estree": { - "version": "0.18.2", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.18.2.tgz", - "integrity": "sha512-KoLsoWXJ5o81nit1wSyEZnWUGy9cBna9iYMZBR7skKh7okYAYKqQ9/OczwpMHn/cH0hKDyblulGsJ7FknlfVxQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/metro-babel-transformer/node_modules/hermes-parser": { - "version": "0.18.2", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.18.2.tgz", - "integrity": "sha512-1eQfvib+VPpgBZ2zYKQhpuOjw1tH+Emuib6QmjkJWJMhyjM8xnXMvA+76o9LhF0zOAJDZgPfQhg43cyXEyl5Ew==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "hermes-estree": "0.18.2" - } - }, - "node_modules/metro-cache": { - "version": "0.80.5", - "resolved": "https://registry.npmjs.org/metro-cache/-/metro-cache-0.80.5.tgz", - "integrity": "sha512-2u+dQ4PZwmC7eZo9uMBNhQQMig9f+w4QWBZwXCdVy/RYOHM0eObgGdMEOwODo73uxie82T9lWzxr3aZOZ+Nqtw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "metro-core": "0.80.5", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/metro-cache-key": { - "version": "0.80.5", - "resolved": "https://registry.npmjs.org/metro-cache-key/-/metro-cache-key-0.80.5.tgz", - "integrity": "sha512-fr3QLZUarsB3tRbVcmr34kCBsTHk0Sh9JXGvBY/w3b2lbre+Lq5gtgLyFElHPecGF7o4z1eK9r3ubxtScHWcbA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/metro-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/metro-config": { - "version": "0.80.5", - "resolved": "https://registry.npmjs.org/metro-config/-/metro-config-0.80.5.tgz", - "integrity": "sha512-elqo/lwvF+VjZ1OPyvmW/9hSiGlmcqu+rQvDKw5F5WMX48ZC+ySTD1WcaD7e97pkgAlJHVYqZ98FCjRAYOAFRQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "connect": "^3.6.5", - "cosmiconfig": "^5.0.5", - "jest-validate": "^29.6.3", - "metro": "0.80.5", - "metro-cache": "0.80.5", - "metro-core": "0.80.5", - "metro-runtime": "0.80.5" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/metro-core": { - "version": "0.80.5", - "resolved": "https://registry.npmjs.org/metro-core/-/metro-core-0.80.5.tgz", - "integrity": "sha512-vkLuaBhnZxTVpaZO8ZJVEHzjaqSXpOdpAiztSZ+NDaYM6jEFgle3/XIbLW91jTSf2+T8Pj5yB1G7KuOX+BcVwg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "lodash.throttle": "^4.1.1", - "metro-resolver": "0.80.5" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/metro-file-map": { - "version": "0.80.5", - "resolved": "https://registry.npmjs.org/metro-file-map/-/metro-file-map-0.80.5.tgz", - "integrity": "sha512-bKCvJ05drjq6QhQxnDUt3I8x7bTcHo3IIKVobEr14BK++nmxFGn/BmFLRzVBlghM6an3gqwpNEYxS5qNc+VKcg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "anymatch": "^3.0.3", - "debug": "^2.2.0", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "invariant": "^2.2.4", - "jest-worker": "^29.6.3", - "micromatch": "^4.0.4", - "node-abort-controller": "^3.1.1", - "nullthrows": "^1.1.1", - "walker": "^1.0.7" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/metro-file-map/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/metro-file-map/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/metro-minify-terser": { - "version": "0.80.5", - "resolved": "https://registry.npmjs.org/metro-minify-terser/-/metro-minify-terser-0.80.5.tgz", - "integrity": "sha512-S7oZLLcab6YXUT6jYFX/ZDMN7Fq6xBGGAG8liMFU1UljX6cTcEC2u+UIafYgCLrdVexp/+ClxrIetVPZ5LtL/g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "terser": "^5.15.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/metro-resolver": { - "version": "0.80.5", - "resolved": "https://registry.npmjs.org/metro-resolver/-/metro-resolver-0.80.5.tgz", - "integrity": "sha512-haJ/Hveio3zv/Fr4eXVdKzjUeHHDogYok7OpRqPSXGhTXisNXB+sLN7CpcUrCddFRUDLnVaqQOYwhYsFndgUwA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/metro-runtime": { - "version": "0.80.5", - "resolved": "https://registry.npmjs.org/metro-runtime/-/metro-runtime-0.80.5.tgz", - "integrity": "sha512-L0syTWJUdWzfUmKgkScr6fSBVTh6QDr8eKEkRtn40OBd8LPagrJGySBboWSgbyn9eIb4ayW3Y347HxgXBSAjmg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/runtime": "^7.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/metro-source-map": { - "version": "0.80.5", - "resolved": "https://registry.npmjs.org/metro-source-map/-/metro-source-map-0.80.5.tgz", - "integrity": "sha512-DwSF4l03mKPNqCtyQ6K23I43qzU1BViAXnuH81eYWdHglP+sDlPpY+/7rUahXEo6qXEHXfAJgVoo1sirbXbmsQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/traverse": "^7.20.0", - "@babel/types": "^7.20.0", - "invariant": "^2.2.4", - "metro-symbolicate": "0.80.5", - "nullthrows": "^1.1.1", - "ob1": "0.80.5", - "source-map": "^0.5.6", - "vlq": "^1.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/metro-source-map/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-symbolicate": { - "version": "0.80.5", - "resolved": "https://registry.npmjs.org/metro-symbolicate/-/metro-symbolicate-0.80.5.tgz", - "integrity": "sha512-IsM4mTYvmo9JvIqwEkCZ5+YeDVPST78Q17ZgljfLdHLSpIivOHp9oVoiwQ/YGbLx0xRHRIS/tKiXueWBnj3UWA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "invariant": "^2.2.4", - "metro-source-map": "0.80.5", - "nullthrows": "^1.1.1", - "source-map": "^0.5.6", - "through2": "^2.0.1", - "vlq": "^1.0.0" - }, - "bin": { - "metro-symbolicate": "src/index.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/metro-symbolicate/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/metro-symbolicate/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/metro-symbolicate/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro-symbolicate/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/metro-symbolicate/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/metro-transform-plugins": { - "version": "0.80.5", - "resolved": "https://registry.npmjs.org/metro-transform-plugins/-/metro-transform-plugins-0.80.5.tgz", - "integrity": "sha512-7IdlTqK/k5+qE3RvIU5QdCJUPk4tHWEqgVuYZu8exeW+s6qOJ66hGIJjXY/P7ccucqF+D4nsbAAW5unkoUdS6g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.0", - "@babel/template": "^7.0.0", - "@babel/traverse": "^7.20.0", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/metro-transform-worker": { - "version": "0.80.5", - "resolved": "https://registry.npmjs.org/metro-transform-worker/-/metro-transform-worker-0.80.5.tgz", - "integrity": "sha512-Q1oM7hfP+RBgAtzRFBDjPhArELUJF8iRCZ8OidqCpYzQJVGuJZ7InSnIf3hn1JyqiUQwv2f1LXBO78i2rAjzyA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/core": "^7.20.0", - "@babel/generator": "^7.20.0", - "@babel/parser": "^7.20.0", - "@babel/types": "^7.20.0", - "metro": "0.80.5", - "metro-babel-transformer": "0.80.5", - "metro-cache": "0.80.5", - "metro-cache-key": "0.80.5", - "metro-minify-terser": "0.80.5", - "metro-source-map": "0.80.5", - "metro-transform-plugins": "0.80.5", - "nullthrows": "^1.1.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/metro/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/metro/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/metro/node_modules/hermes-estree": { - "version": "0.18.2", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.18.2.tgz", - "integrity": "sha512-KoLsoWXJ5o81nit1wSyEZnWUGy9cBna9iYMZBR7skKh7okYAYKqQ9/OczwpMHn/cH0hKDyblulGsJ7FknlfVxQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/metro/node_modules/hermes-parser": { - "version": "0.18.2", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.18.2.tgz", - "integrity": "sha512-1eQfvib+VPpgBZ2zYKQhpuOjw1tH+Emuib6QmjkJWJMhyjM8xnXMvA+76o9LhF0zOAJDZgPfQhg43cyXEyl5Ew==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "hermes-estree": "0.18.2" - } - }, - "node_modules/metro/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/metro/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/metro/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/metro/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/metro/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "optional": true, - "peer": true, - "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 - } - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "optional": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "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==", - "dev": true, - "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==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", - "dev": true, - "dependencies": { - "dom-walk": "^0.1.0" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "optional": true, - "peer": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/msrcrypto": { - "version": "1.5.8", - "resolved": "https://registry.npmjs.org/msrcrypto/-/msrcrypto-1.5.8.tgz", - "integrity": "sha512-ujZ0TRuozHKKm6eGbKHfXef7f+esIhEckmThVnz7RNyiOJd7a6MXj2JGBoL9cnPDW+JMG16MoTUh5X+XXjI66Q==", - "dev": true - }, - "node_modules/mv": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz", - "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "mkdirp": "~0.5.1", - "ncp": "~2.0.0", - "rimraf": "~2.4.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/mv/node_modules/glob": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", - "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "2 || 3", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mv/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mv/node_modules/rimraf": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz", - "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "glob": "^6.0.1" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "optional": true, - "peer": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/ncp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "ncp": "bin/ncp" - } - }, - "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==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/nested-error-stacks": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz", - "integrity": "sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/nocache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/nocache/-/nocache-3.0.4.tgz", - "integrity": "sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/node-abort-controller": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", - "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/node-dir": { - "version": "0.1.17", - "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.17.tgz", - "integrity": "sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minimatch": "^3.0.2" - }, - "engines": { - "node": ">= 0.10.5" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true, - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/node-jose": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/node-jose/-/node-jose-2.2.0.tgz", - "integrity": "sha512-XPCvJRr94SjLrSIm4pbYHKLEaOsDvJCpyFw/6V/KK/IXmyZ6SFBzAUDO9HQf4DB/nTEFcRGH87mNciOP23kFjw==", - "dev": true, - "dependencies": { - "base64url": "^3.0.1", - "buffer": "^6.0.3", - "es6-promise": "^4.2.8", - "lodash": "^4.17.21", - "long": "^5.2.0", - "node-forge": "^1.2.1", - "pako": "^2.0.4", - "process": "^0.11.10", - "uuid": "^9.0.0" - } - }, - "node_modules/node-jose/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/node-kms": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-kms/-/node-kms-0.4.0.tgz", - "integrity": "sha512-Tvhs7XTvBgWLZUrAeLKDqzvlomaZWwMoIXWImMc/IbvTijLoOrkovZo+PeW0ivf/8fBlg5EihPCwKg/dy9r+sA==", - "dev": true, - "dependencies": { - "es6-promise": "^2.0.1", - "lodash.clone": "^3.0.2", - "lodash.clonedeep": "^3.0.1", - "node-jose": "^2.0.0", - "uuid": "^2.0.1" - } - }, - "node_modules/node-kms/node_modules/es6-promise": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz", - "integrity": "sha512-oyOjMhyKMLEjOOtvkwg0G4pAzLQ9WdbbeX7WdqKzvYXu+UFgD0Zo/Brq5Q49zNmnGPPzV5rmYvrr0jz1zWx8Iw==", - "dev": true - }, - "node_modules/node-kms/node_modules/uuid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "integrity": "sha512-FULf7fayPdpASncVy4DLh3xydlXEJJpvIELjYjNeQWYUZ9pclcpvCZSr2gkmN2FrrGcI7G/cJsIEwk5/8vfXpg==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true - }, - "node_modules/node-random-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/node-random-name/-/node-random-name-1.0.1.tgz", - "integrity": "sha512-7+IpyBRtbHvTWXjdZxjxyaafdggIvA3IpNf2W3ZRe+ok3UyE32Qb8PCb4fKKPdZCCjoAk358yQZWywAimw8KCw==", - "dev": true, - "dependencies": { - "alea": "0.0.9" - } - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/node-scr": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/node-scr/-/node-scr-0.3.0.tgz", - "integrity": "sha512-Hb0ykojynSbt7ra6eml6NX39WAumFfU3G81XvLpp2H7y8KjQc29oEIf2TlgZQCfA+pyxbY5t4a1xBqPpyrbpvw==", - "dev": true, - "dependencies": { - "es6-promise": "^2.0.1", - "lodash.clone": "^3.0.2", - "node-jose": "^2.0.0" - } - }, - "node_modules/node-scr/node_modules/es6-promise": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-2.3.0.tgz", - "integrity": "sha512-oyOjMhyKMLEjOOtvkwg0G4pAzLQ9WdbbeX7WdqKzvYXu+UFgD0Zo/Brq5Q49zNmnGPPzV5rmYvrr0jz1zWx8Iw==", - "dev": true - }, - "node_modules/node-stream-zip": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/node-stream-zip/-/node-stream-zip-1.15.0.tgz", - "integrity": "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.12.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/antelle" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-package-arg": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz", - "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "hosted-git-info": "^3.0.2", - "osenv": "^0.1.5", - "semver": "^5.6.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "node_modules/npm-package-arg/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/nullthrows": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", - "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/ob1": { - "version": "0.80.5", - "resolved": "https://registry.npmjs.org/ob1/-/ob1-0.80.5.tgz", - "integrity": "sha512-zYDMnnNrFi/1Tqh0vo3PE4p97Tpl9/4MP2k2ECvkbLOZzQuAYZJLTUYVLZb7hJhbhjT+JJxAwBGS8iu5hCSd1w==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/ora/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ora/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ora/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "optional": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "optional": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", - "dev": true - }, - "node_modules/parse-headers": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", - "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==", - "dev": true - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse-png": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-2.1.0.tgz", - "integrity": "sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "pngjs": "^3.3.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/password-prompt": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.3.tgz", - "integrity": "sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-escapes": "^4.3.2", - "cross-spawn": "^7.0.3" - } - }, - "node_modules/password-prompt/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/password-prompt/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/password-prompt/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/peek-readable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", - "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pkijs": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-2.4.0.tgz", - "integrity": "sha512-cjJP/mYuGyMrjJ49jI04khId5Oufd3nFTUYBzQTIIVNI7/oAWdwXEfpwTF8HELFV/gz+WGYUBHCe3KHWD8rYvg==", - "dev": true, - "dependencies": { - "asn1js": "^3.0.3", - "bytestreamjs": "^1.0.29", - "pvutils": "^1.1.3" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/pkijs/node_modules/asn1js": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", - "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", - "dev": true, - "dependencies": { - "pvtsutils": "^1.3.2", - "pvutils": "^1.1.3", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/plist": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", - "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@xmldom/xmldom": "^0.8.8", - "base64-js": "^1.5.1", - "xmlbuilder": "^15.1.1" - }, - "engines": { - "node": ">=10.4.0" - } - }, - "node_modules/plist/node_modules/@xmldom/xmldom": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", - "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/plist/node_modules/xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "optional": true, - "peer": true, - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/precond": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz", - "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/pretty-format/node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/pretty-format/node_modules/@types/yargs": { - "version": "15.0.19", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.19.tgz", - "integrity": "sha512-2XUaGVmyQjgyAZldf0D0c14vvo/yv0MhQBSTJcejMMaitsn3nxCB6TmH4G0ZQf+uxROOa9mpanoSm8h6SG/1ZA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "asap": "~2.0.3" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", - "dev": true - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pvtsutils": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", - "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", - "dev": true, - "dependencies": { - "tslib": "^2.6.1" - } - }, - "node_modules/pvutils": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/qrcode-terminal": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz", - "integrity": "sha512-Uu7ii+FQy4Qf82G4xu7ShHhjhGahEpCWc3x8UavY3CTcWV+ufmmCtwkr7ZKsX42jdL0kr1B5FKUeqJvAn51jzQ==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "qrcode-terminal": "bin/qrcode-terminal.js" - } - }, - "node_modules/qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "inherits": "~2.0.3" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true - }, - "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==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "optional": true, - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-devtools-core": { - "version": "4.28.5", - "resolved": "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.28.5.tgz", - "integrity": "sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "shell-quote": "^1.6.1", - "ws": "^7" - } - }, - "node_modules/react-devtools-core/node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true, - "optional": true, - "peer": true, - "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 - } - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/react-native": { - "version": "0.73.2", - "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.73.2.tgz", - "integrity": "sha512-7zj9tcUYpJUBdOdXY6cM8RcXYWkyql4kMyGZflW99E5EuFPoC7Ti+ZQSl7LP9ZPzGD0vMfslwyDW0I4tPWUCFw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jest/create-cache-key-function": "^29.6.3", - "@react-native-community/cli": "12.3.0", - "@react-native-community/cli-platform-android": "12.3.0", - "@react-native-community/cli-platform-ios": "12.3.0", - "@react-native/assets-registry": "0.73.1", - "@react-native/codegen": "0.73.2", - "@react-native/community-cli-plugin": "0.73.12", - "@react-native/gradle-plugin": "0.73.4", - "@react-native/js-polyfills": "0.73.1", - "@react-native/normalize-colors": "0.73.2", - "@react-native/virtualized-lists": "0.73.4", - "abort-controller": "^3.0.0", - "anser": "^1.4.9", - "ansi-regex": "^5.0.0", - "base64-js": "^1.5.1", - "deprecated-react-native-prop-types": "^5.0.0", - "event-target-shim": "^5.0.1", - "flow-enums-runtime": "^0.0.6", - "invariant": "^2.2.4", - "jest-environment-node": "^29.6.3", - "jsc-android": "^250231.0.0", - "memoize-one": "^5.0.0", - "metro-runtime": "^0.80.3", - "metro-source-map": "^0.80.3", - "mkdirp": "^0.5.1", - "nullthrows": "^1.1.1", - "pretty-format": "^26.5.2", - "promise": "^8.3.0", - "react-devtools-core": "^4.27.7", - "react-refresh": "^0.14.0", - "react-shallow-renderer": "^16.15.0", - "regenerator-runtime": "^0.13.2", - "scheduler": "0.24.0-canary-efb381bbf-20230505", - "stacktrace-parser": "^0.1.10", - "whatwg-fetch": "^3.0.0", - "ws": "^6.2.2", - "yargs": "^17.6.2" - }, - "bin": { - "react-native": "cli.js" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "react": "18.2.0" - } - }, - "node_modules/react-native-securerandom": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/react-native-securerandom/-/react-native-securerandom-0.1.1.tgz", - "integrity": "sha512-CozcCx0lpBLevxiXEb86kwLRalBCHNjiGPlw3P7Fi27U6ZLdfjOCNRHD1LtBKcvPvI3TvkBXB3GOtLvqaYJLGw==", - "dev": true, - "optional": true, - "dependencies": { - "base64-js": "*" - }, - "peerDependencies": { - "react-native": "*" - } - }, - "node_modules/react-native/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/react-native/node_modules/promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "asap": "~2.0.6" - } - }, - "node_modules/react-native/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/react-native/node_modules/ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/react-refresh": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", - "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-shallow-renderer": { - "version": "16.15.0", - "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", - "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "object-assign": "^4.1.1", - "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "dev": true, - "dependencies": { - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/readline": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz", - "integrity": "sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/recast": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/recast/-/recast-0.21.5.tgz", - "integrity": "sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ast-types": "0.15.2", - "esprima": "~4.0.0", - "source-map": "~0.6.1", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@babel/regjsgen": "^0.8.0", - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/remove-trailing-slash": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/remove-trailing-slash/-/remove-trailing-slash-0.1.1.tgz", - "integrity": "sha512-o4S4Qh6L2jpnCy83ysZDau+VORNvnFw07CKSAymkd6ICNVEPisMyzlc00KlvvicsxKck94SEwhDnMNdICzO+tA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/requireg": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz", - "integrity": "sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "nested-error-stacks": "~2.0.1", - "rc": "~1.2.7", - "resolve": "~1.7.1" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/requireg/node_modules/resolve": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", - "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "path-parse": "^1.0.5" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "optional": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/rtcpeerconnection-shim": { - "version": "1.2.15", - "resolved": "https://registry.npmjs.org/rtcpeerconnection-shim/-/rtcpeerconnection-shim-1.2.15.tgz", - "integrity": "sha512-C6DxhXt7bssQ1nHb154lqeL0SXz5Dx4RczXZu2Aa/L1NJFnEVDxFwCBo3fqtuljhHIGceg5JKBV4XJ0gW5JKyw==", - "dev": true, - "dependencies": { - "sdp": "^2.6.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=3.10.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "optional": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "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==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-json-stringify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", - "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/scheduler": { - "version": "0.24.0-canary-efb381bbf-20230505", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz", - "integrity": "sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/sdp": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/sdp/-/sdp-2.12.0.tgz", - "integrity": "sha512-jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw==", - "dev": true - }, - "node_modules/sdp-transform": { - "version": "2.14.1", - "resolved": "https://registry.npmjs.org/sdp-transform/-/sdp-transform-2.14.1.tgz", - "integrity": "sha512-RjZyX3nVwJyCuTo5tGPx+PZWkDMCg7oOLpSlhjDdZfwUoNqG1mM8nyj31IGHyaPWXhjbP7cdK3qZ2bmkJ1GzRw==", - "dev": true, - "bin": { - "sdp-verify": "checker.js" - } - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "optional": true, - "peer": true, - "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/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/send/node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "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==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/send/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==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/send/node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serialize-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-2.1.0.tgz", - "integrity": "sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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==", - "dev": true, - "optional": true, - "peer": true, - "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-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/set-function-length": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.0.tgz", - "integrity": "sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.1", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.2", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true, - "optional": true, - "peer": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/simple-plist": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz", - "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "bplist-creator": "0.1.0", - "bplist-parser": "0.3.1", - "plist": "^3.0.5" - } - }, - "node_modules/simple-plist/node_modules/bplist-parser": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", - "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "big-integer": "1.6.x" - }, - "engines": { - "node": ">= 5.10.0" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/slugify": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", - "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/speedybot": { - "version": "2.0.0-beta.72", - "resolved": "https://registry.npmjs.org/speedybot/-/speedybot-2.0.0-beta.72.tgz", - "integrity": "sha512-7+AasY13X00mGtqOOjWOClAXGB8mUR2D601/zuYbuCke6Z8tRvfwKPBVSHkEdUSggRJ6DQcRsWG/LchXZEQUjA==", - "bin": { - "speedybot": "bin/cli.js" - }, - "engines": { - "node": ">=18.11.0" - } - }, - "node_modules/split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "through": "2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/sshpk": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", - "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/stackframe": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", - "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/stacktrace-parser": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz", - "integrity": "sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "type-fest": "^0.7.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/stacktrace-parser/node_modules/type-fest": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.7.1.tgz", - "integrity": "sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/str2buf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/str2buf/-/str2buf-1.3.0.tgz", - "integrity": "sha512-xIBmHIUHYZDP4HyoXGHYNVmxlXLXDrtFHYT0eV6IOdEj3VO9ccaF1Ejl9Oq8iFjITllpT8FhaXb4KsNmw+3EuA==", - "dev": true - }, - "node_modules/stream-buffers": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", - "integrity": "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strnum": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", - "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/strtok3": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", - "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", - "dev": true, - "dependencies": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/structured-headers": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/structured-headers/-/structured-headers-0.4.1.tgz", - "integrity": "sha512-0MP/Cxx5SzeeZ10p/bZI0S6MpgD+yxAhi1BOQ34jgnMXsCq3j1t6tQnZu+KdlL7dvJTLT3g9xN8tl10TqgFMcg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/sucrase": { - "version": "3.34.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", - "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "7.1.6", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sudo-prompt": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/sudo-prompt/-/sudo-prompt-8.2.5.tgz", - "integrity": "sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/temp": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.4.tgz", - "integrity": "sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "rimraf": "~2.6.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/temp/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/tempy": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.7.1.tgz", - "integrity": "sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "del": "^6.0.0", - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/tempy/node_modules/type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "5.27.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz", - "integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", - "dev": true, - "dependencies": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "node_modules/through2/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "optional": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "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==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/token-types": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", - "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", - "dev": true, - "dependencies": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/traverse": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.8.tgz", - "integrity": "sha512-aXJDbk6SnumuaZSANd21XAo15ucCDE38H4fkqiGsc3MhCK+wOlZvLP9cB/TvpHT0mOyWgC4Z8EwRlzqYSUzdsA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/tsx": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.7.0.tgz", - "integrity": "sha512-I+t79RYPlEYlHn9a+KzwrvEwhJg35h/1zHsLC2JXvhC2mdynMv6Zxzvhv5EMV6VF5qJlLlkSnMVvdZV3PSIGcg==", - "dev": true, - "dependencies": { - "esbuild": "~0.19.10", - "get-tsconfig": "^4.7.2" - }, - "bin": { - "tsx": "dist/cli.mjs" - }, - "engines": { - "node": ">=18.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", - "integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==", - "dev": true, - "optionalDependencies": { - "rxjs": "*" - } - }, - "node_modules/typescript": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ua-parser-js": { - "version": "1.0.37", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.37.tgz", - "integrity": "sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - } - ], - "optional": true, - "peer": true, - "engines": { - "node": "*" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "optional": true, - "peer": true, - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-join": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", - "integrity": "sha512-EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/urlsafe-base64": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/urlsafe-base64/-/urlsafe-base64-1.0.0.tgz", - "integrity": "sha512-RtuPeMy7c1UrHwproMZN9gN6kiZ0SvJwRaEzwZY0j9MypEkFqyBaKv176jvlPtg58Zh36bOkS0NFABXMHvvGCA==", - "dev": true - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "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==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/valid-url": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==", - "dev": true - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "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==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/vlq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", - "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webcrypto-core": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.8.tgz", - "integrity": "sha512-eBR98r9nQXTqXt/yDRtInszPMjTaSAMJAFDg2AHsgrnczawT1asx9YNBX6k5p+MekbPF4+s/UJJrr88zsTqkSg==", - "dev": true, - "dependencies": { - "@peculiar/asn1-schema": "^2.3.8", - "@peculiar/json-schema": "^1.1.12", - "asn1js": "^3.0.1", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2" - } - }, - "node_modules/webcrypto-core/node_modules/asn1js": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", - "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", - "dev": true, - "dependencies": { - "pvtsutils": "^1.3.2", - "pvutils": "^1.1.3", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/webcrypto-shim": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/webcrypto-shim/-/webcrypto-shim-0.1.7.tgz", - "integrity": "sha512-JAvAQR5mRNRxZW2jKigWMjCMkjSdmP5cColRP1U/pTg69VgHXEi1orv5vVpJ55Zc5MIaPc1aaurzd9pjv2bveg==", - "dev": true - }, - "node_modules/webex": { - "version": "2.60.0", - "resolved": "https://registry.npmjs.org/webex/-/webex-2.60.0.tgz", - "integrity": "sha512-lE/OTtxS9YG1jOVQFdFf8mcCRupyFfCHaLDMeJa32KdIi5oZAY5viYxiRnqpoQSpy3s66VbL8v1Dcv1TCiaDzg==", - "dev": true, - "dependencies": { - "@babel/polyfill": "^7.12.1", - "@babel/runtime-corejs2": "^7.14.8", - "@webex/common": "2.60.0", - "@webex/internal-plugin-calendar": "2.60.0", - "@webex/internal-plugin-device": "2.60.0", - "@webex/internal-plugin-presence": "2.60.0", - "@webex/internal-plugin-support": "2.60.0", - "@webex/plugin-attachment-actions": "2.60.0", - "@webex/plugin-authorization": "2.60.0", - "@webex/plugin-device-manager": "2.60.0", - "@webex/plugin-logger": "2.60.0", - "@webex/plugin-meetings": "2.60.0", - "@webex/plugin-memberships": "2.60.0", - "@webex/plugin-messages": "2.60.0", - "@webex/plugin-people": "2.60.0", - "@webex/plugin-rooms": "2.60.0", - "@webex/plugin-team-memberships": "2.60.0", - "@webex/plugin-teams": "2.60.0", - "@webex/plugin-webhooks": "2.60.0", - "@webex/storage-adapter-local-storage": "2.60.0", - "@webex/webex-core": "2.60.0", - "lodash": "^4.17.21" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/webrtc-adapter": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/webrtc-adapter/-/webrtc-adapter-7.7.1.tgz", - "integrity": "sha512-TbrbBmiQBL9n0/5bvDdORc6ZfRY/Z7JnEj+EYOD1ghseZdpJ+nF2yx14k3LgQKc7JZnG7HAcL+zHnY25So9d7A==", - "dev": true, - "dependencies": { - "rtcpeerconnection-shim": "^1.2.15", - "sdp": "^2.12.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=3.10.0" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.20", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", - "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/whatwg-url-without-unicode": { - "version": "8.0.0-3", - "resolved": "https://registry.npmjs.org/whatwg-url-without-unicode/-/whatwg-url-without-unicode-8.0.0-3.tgz", - "integrity": "sha512-HoKuzZrUlgpz35YO27XgD28uh/WJH4B0+3ttFqRo//lmq+9T/mIOJ6kqmINI9HpUpz1imRC/nR/lxKpJiv0uig==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "buffer": "^5.4.3", - "punycode": "^2.1.1", - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/whatwg-url-without-unicode/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, - "peer": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/whatwg-url-without-unicode/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/wonka": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.15.tgz", - "integrity": "sha512-U0IUQHKXXn6PFo9nqsHphVCE5m3IntqZNB9Jjn7EB1lrR7YTDY3YWgFvEvwniTzXSvOH/XMzAZaIfJF/LvHYXg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xcode": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", - "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "simple-plist": "^1.1.0", - "uuid": "^7.0.3" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/xcode/node_modules/uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "dev": true, - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xml2js": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.0.tgz", - "integrity": "sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xml2js/node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xmlbuilder": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-14.0.0.tgz", - "integrity": "sha512-ts+B2rSe4fIckR6iquDjsKbQFK2NlUk6iG5nf14mDEyldgoc2nEKZ3jZWMPTxGQwVgToSjt6VGIho1H8/fNFTg==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/xstate": { - "version": "4.38.3", - "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.38.3.tgz", - "integrity": "sha512-SH7nAaaPQx57dx6qvfcIgqKRXIh4L0A1iYEqim4s1u7c9VoCgzZc+63FY90AKU4ZzOC2cfJzTnpO4zK7fCUzzw==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/xstate" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", - "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/examples/llm-stream/package.json b/examples/llm-stream/package.json index b4f2689..e52ea4f 100644 --- a/examples/llm-stream/package.json +++ b/examples/llm-stream/package.json @@ -17,7 +17,7 @@ "license": "ISC", "dependencies": { "@axflow/models": "^0.0.25", - "speedybot": "latest" + "speedybot": "^2.0.0" }, "devDependencies": { "@types/express": "^4.17.21", diff --git a/examples/speedybot-starter/bun.lockb b/examples/speedybot-starter/bun.lockb deleted file mode 100755 index 4d9339519c239670a7c2ef4a957f26609ffb0431..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215398 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

pJ*kN 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

CF!p*4H3AC8W=9 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.0.0" diff --git a/examples/speedybot-starter/settings/bot.ts b/examples/speedybot-starter/settings/bot.ts index 30f5a7a..5d8d58d 100644 --- a/examples/speedybot-starter/settings/bot.ts +++ b/examples/speedybot-starter/settings/bot.ts @@ -95,7 +95,7 @@ Bot.addStep(async ($) => { const card = cardHash[value].addSubcard( $.card() .addLink( - "https://speedybot.js.org/docs/speedycard?card=${value}", + `https://speedybot.js.org/speedycard?card=${value}`, "See the source for this card" ) .addText("Pick a new card") diff --git a/examples/standard-server/README.md b/examples/standard-server/README.md index 044a396..5312690 100644 --- a/examples/standard-server/README.md +++ b/examples/standard-server/README.md @@ -36,19 +36,25 @@ npm run bot:dev ## 4) Run a test -To test just the incoming webhook, edit the **[/incoming_webhook](./src/index.ts)** route & run this command to send a test paylaod +To test **only** the incoming webhook, edit the **[/incoming_webhook](./src/index.ts)** route & run this command to send a test paylaod ``` curl -X POST -H "Content-Type: application/json" -d '{"id": 1234567890987654321}' http://localhost:8000/incoming_webhook ``` -Unlike the **[websockets example](https://speedybot.js.org/examples/speedybot-starter/README)**, you will need to deploy this serve or use a secure mechanism to expose it to the internet and then register the webhooks +## 5) Register your webhooks -You can register webhooks with: +- Right now if you try to interact with your "deployed" agent through the WebEx client nothing happens, nobody is "home" to answer the knock at the door -```sh -npm init speedybot webhook create -``` +- For this situation (where the whole agent is on a standard server) you'll need to find a way to securely expose that server in a way that is publically reachable + +- Hop on over to the **[SpeedyBot Garage (https://speedybot.js.org/garage)](https://speedybot.js.org/garage)**, enter your access token, select the Webhooks tab, and then **Add New Webhook** and add the URL of your server and (optionally but hopefully) a webhook secret + + + +## 6) Supply your Webhook "secret" to your Worker + +Even though it's "optional", it's a really, really good idea to set a Webhook Secret too so you can make sure incoming requests are the real deal. For more detail, see **[https://speedybot.js.org/webhooks#securing-webhooks](https://speedybot.js.org/webhooks#securing-webhooks)** ## NPM Run Scripts diff --git a/examples/standard-server/bun.lockb b/examples/standard-server/bun.lockb deleted file mode 100755 index 85432bd1a9429cb276eae2246302447e99eb519f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 200999 zcmeFac|2A7_xOLxQAnmFqDZ46Lr5Y+WC$rkiIm}(GS3=GAyG6*sWeL^iY5&-3z0O3 z(x8C~&Esz^XTRR4bzZ}Bt@T>3VZZi1bcYU6jR*@>b@vTaI%R3z{QBK8wdnOgS{a zBy4V2VukyJ21R)LusC7Cp}qlbtXW`i7_?UhDGqW0KZ_*_G6W>*n*&l3 zq<@g7TbK`v72J#4j?$wM9nJ~#1pN-Zxm-VRSp?eiQ*uAZK9FyPdeq|^=)(#14G-%9 zdDK4$^oxO<4SJvqx_)GDfrldA>2K_n!635p&D7eF~49H_Y$AdrEzO_G>_vLUnd5e|^KiGRG}o4&>49G>|wy!oqxl=Yziaa$I}v zAklx0hX)L^d!Qp#j-S!4Hzz#U4dPn?PGfvjOyaPZ3DuNVzfP&jbZ-J2$^bRKto0^~Gt%x&!4H*E1k-9^`?<{zgF?^m7F8m`_*a z_Qx$OCeUNPZ@3nvmqRTK54SLmKTHg_s4z`HS%aV+c`=wz7!UWLs4$$z?rt9QgS@<8 z9&tQ^U`2(%qQp4$fOcr7a5y)g3lifkORbL|uv0+SVqby8c;BIqYAlEjZ|qq*_mMEiPyJ1m@+=%;r8{$#O8d_HM#?MC_ddiX%O zZx|;U8-|YK`XA%w@9zuiVi=4bj@xT!kNv0vDFX5Y*pUFa6(p{wMIeWORMzJ9k8eDS zr2zR1kjUQ$iM+NBH@_6}FePHW!c<_&gu2a`z^(TS3kt*=h#BNDuDT%mVmseJPnC#Z z)+SwUc`7A?@s{Hj&H?Eg;2X|Loye{KLfM(9#~rUYkm!eds2l88EY@eLe3Cx5KWQMb zK7bSI&4E6uK|R{{4O79bjrhf;Ps*3tZcFtUEOn{)lY0P7Uz ze=bP$e?3SkkV`0e$dWrR)`7(RCps(~Mwi8MgM3FnJ%hn2>{rzNY0Fe@yh5Wp++i(* zb{IcSBquN&99#?a*q;?tyC{&T$2~mA4fO;;dyL25^}n&<`sGLYYXeda+L_sM_YGx` zIPb?oxdKQrkhmYU_F%E(K^9SRGe~SFX2;!M-p$~)Uj^m3uE~8~9`YUY5B8NHxQ~Rn zh55st7;NUiZI=ZS{rqLmjiZ_)cYb(s0^tS*`zWj%?2o%Y{``F|`TKdqH_R?lE+(+VParO0pJjO2;bYOWD$d36C?Hh#Secp*{-!0M&ax7MiTc|gdA9v>Z z7o)Dz;l}|gKNh4A=&5nx%B3I&Kt3E~ACQ}&9__3GiSgisdARwzd2&4beItB9?_O7~ zeI2UZq`6#f93{g!0l_MszM)|e!JN==x8T3q)0)TC+Y{Wye)xr{#JC0cv%u|Ox6m-o zMJPxAUe4zBdnnjJzmna#^EAxA>m*d?y{`lbb|c} zp6{&!H#DyX$m4wDb^i)h32?)iUh2j5UkdIvbiaaCI%YWQ8I+?R0h|CdkNdr^hl*FA zBW&szPY4bNZ%l9)_ka^9iy!>P{(gl1Vm<6{9VdsokVn69vvZGOu}Hsty#wI{3il1) z(2k98#C)zjFJJG7P}oSfLmt;N2R7euPH2oLhdTk`kR9pBy*=@tqWU>+{! z#wk1|n4{tw#u~JQo5$@uB8(F@7wXX;JCGQcFz(|N%Z$noqj(NHO2X<6C+8ResysTD z%fSg9dd*^afpt8`aKha>&SkBOxb|LvME^bEkRKWp^S|>CIUjbc--u9ua=zCG{n#(z zcrM3BNmVFEe*-w-K0%>bUNkarh4U(f^3RVBcVv*>@q|F)l$c4v?>)>Q92ic{d7t z#Q78I7Nz1I&ga2PYVAU}SdC1L(-LQD$#v{i+8r_f9*bgLGjN7*ZgsUTJIm)%_8EmSZ8s+h=r8tOTlVxwe~V|1 zeb)|qvb*r&t)e??%!5?gSH3R&a6>6GUrAM`$HeR#r-E;Y1g>5n^W0#Zpxo>OeOE0@ zd^}UthyUAl?UxY;irVwvtuK~plijzYY5S+~l8z&iUyWYjRu?!xRqxA*589CiYZpxV zV#}6&V`Wi2d~kWK$I?|yg?}6?^7$aH!5I)8?-j7My|S;==h^R49xXPFG2UEUYTCE?u>KCoB8O4t z2CD>DT0W}Yl6h@lNWh6cy|dCQhQ>eNIY{ou()8S>G6UDP$gh*PAAEN_DJ@grna)m; zO(!E#iw%DmOfNg(laYB#uH>Oz;loWDYF<7eGW}`BhpfY~%N-(q&X70xY~Qrq z!R<&+bE9pU!03{V_P3_SzGu}xI~o;dx2yk_^gankGV-M8_1BB2zYt(AVLuu6Ez&fphW>cXGHgnJ&j z8|u6_zsyEJvE-VVbl-iSUqAjVWBjGBVo`s?>~|AlWR5?&zV&kSvn3Z>ejVRFLa}jo z$zJ{Cp+#=KHNAWu#4QlCniY}jDK^=?>cGIQ1$&!~wfk1NAJS|L%jJ*!%sH00|Nmlg0vnP^fY?VE;2}_?c}8bpH)Ye&Xjv0BYMrcSwB?BuHm-X zLJ6CTx)$ESS}vng<}G!Xh%uRe|Dw!I|>Ufss~HP&u?q~-5krRQEa zz+JLDq?kYbh?49o`%`2cR4K_mcwxTzdBOUX)oOzmD&4r_8@%5k z=kNZuiZg@;1Wd9qu5xIxbkMWAB`kOQ`-AZ_i_8v2J0F)o-DW@#l@F8`NsY%qtvGKW~$lDDmT0hUT^j?+y&TTCZ)J_G8LOub~Nd zT14Y|=GYWA{k;2KiNwctiT~+`1xF871g!qFYg*fs9Oaq!?Id2^d3SMfaMqoQn{65S zw+Aj7(v}qQ>RjCtV^^>CzTf3vqV=$JI*%gjbu6#F(bzIDdi3}Qy$XAOn=A6%S7cz( z^f0qU{dTy!KHldzz1+r4tnkX6p?bYn#3Uwsm}8srBkbB})qRsnp099UtZuM-_@a36 zfv*EDZkg3Iz1(45^RKUIZXZh|@Af)%p-Eo9y`e$?qP)55g0+@YS9z{4IDNmY;kL+xK#BfSEvlZx zsaZ+6+%>)6;ZZrVJ#^hepHqEjJ-BA0dVZ(OwF{E&A;a_y`-tk?n3Y>?@qYWW`vV;h zy?=Rjcut12WLsRo=q!VteGBuvzh4eJSJI}oF?-sQnMr9S)8mXaRkjLFO4`L~T^jR< z_5R$rK64!VX*H}n9+_q^VO@=F(tg*aUj4rfc{b?e@t14PHmyDXBeKCHcILI1tsfs= zk=j3HdtL6%0mYx4r4%1tPO4S&s~OhQe$D>Ok5GHMrQuQ69!&BdI&QJj z?N1-1-0N3t6o?gFt(X|Od8G)^J7BTku(&{F^$p7X_>GgiPTwpsKNNkkPMg9OsT6AevSC4vAJIC*{QMVc57~&Q+v4o z+-q{556v1f*!abA%UiwWo(k-5jQiNk;qUj(TOz1vckN!Q#t$db{Y$5Ny|m0VI6l?w z{>WB`pFX2}T`uNqvsohd&B>=;UZP~e*z*_5E{(RXth%R^NbYZcKacdQUwrPS#{`KJ zFFx<{+qd0fx98l&JFSB3I6n^P4w|s^!z`P&FP^T#KP=@7K2=8lI7Rk-o%|nZSIRO! z$tv<~pPsGx%%9Is__$E}vo)_9bH~TN`KIq(?YSt?ZtWvmw<`LbmHO^~ z;fJ+z^jztY%iU_THEbPjHV<16B<9q2_&Gh38>*bMGkh=f{CP7?RaC%TKKSUwv2dnF3f~^lstav(yB&o0cq(PB-f_g?$70x)w+c!saZ<1E@Ec!r<;#L!&7a-t z=JpfN6d75a)3`KfMYf#rz{MP?)|2_?HY+3q56slRV4$|PRqXWrawV1CyVqGH_g^i% z>>P{N{cGI#QMtLt)OPdVnc5?Kr&g@M%E`SOcJ0(Bei{8*cOaYnQ7)&Uy{YxYJN1+y zJ5~=Gef7fOIVMB4JKl5haXmFX%=F7d}uCd(5Pr>P0 zn54h+#96t*^ZG0a^bA_-Ts^Z%CT;cIc}oWc{;DPYel_EA*y!7e zxOqsJ^1xU#1-bi0f>9xR>sXN^Wqfi*RSKV)PsJOI8HbwL2pcB@z zq(9f6o(bNx`a{F+DV*fosNx2dkNI~(3Z-V8pTGQQewBjstpV|le&ar#C+F+G-v>WE z*xwd^X_BOe;MXbA9~WBQdiABGF}>7eLB7#)8@(M4(W4*9E-JYgSk+o=|IzMAzaJNs z=O`YXE-z+yIcl*@q0p0cdDahBeBmotGVj)_H;Gr9!$&Qcuxhw9Stn#YI9=AB@yhZ` zv(a1wGxmWkZ^?Qg_lGOP-Jc~)o9mz3UnM>u@XmE3zCPdmn)5_5lPkY|DI0I&U6MRU z)Lp2~jOs$zNBG-PbhV6jIJJZsBRk{lnu(L6L|?1r$p-v_0APBLUM>~!ZF z;4HQ#CNX7Biw`-+SZAIc|3oMyuP)_sdLQB5Dw?bFjZf?N2Y)M(NW3&JXlt>zj7NEo zlcUQF?pK^m+EQ4U)3`u%eBS%jf$7&T#yrs?=O1!D3>7$9p#JXk zrUTFH0*_=$E_{D`!qNl5v-(7OFTK_9bIj8l;%Rx>b6afgM}7?qK0DgaS#|cAo9tn$ zonB`~k5bvP<@A{2lVS>V*WKLxRNbzHUv^%5`f_I}+q%g{59_9X-LHJ@R`a3iex}iy zE=yvM4_{Vxc+x3Pdp(7mt6CSWPdyJUF`|w!hF)KLk5Bmkxx#> zek|v+ly}s*Yd!fw*4gE=w7tZy*1M*w&Q2Xsq(7nj@~My3hKG$V3%5V{Dtm6R@6`GI zRoAYJeGwg5n`*UkVB3}Zg4(mJRfR7p-kF{;U9q=*--hJfdTO&4etOn#>7mn0)*P*n z7a6E%+Ngi&bk>toGWtS2wR^`1#k3aPePD2U$ro|X{GXbYne!|>`Y5h+xIcPxUfS*j z{tGvX#Tt#9lV|$0`P9G?g&#MT|0>${O}c*|**`|9@2Qe~5%KAJ$@nkjoavtN`JAfJ z6Q-Tq*z|Z!wcSxGD?Ks53S)VXG;ZFgtP1#4=y!t-~3?q;BF){Ul*tY}FkFwvL{+|Kf6X3hse-4fRyAOZ0_}3h=mPoro;LU0FNqJ{1){%DKfw!me zU2&wI@V4-B8|OdfyR-jn2HpmEn1=YC{eONDJO3t${cpfe10LJKdvwN$@RsoMemvzr zu0Qy0gi#`V9Poy~!!+txyS&by@n8_|KRACe21GA>>@<;f^MO~U{72hN*AU?|fXDTN z^A>qt{l5kL6pBZOdF5r{%OhNWWZmExFiFJ!`M{%n(r+TW(n0tF;BoyB`$RJ3zfe4} zOC(d?2qrCwA5#`}6aN!|A4~Ng%Sbs>`$ZIw<3{E{S1i^OJ7S{T^+(1XmII?i__@Hl zfd7OivMVKozXUuvKQbLV)J^ygz#D^o%y(!1nkDv|N4>a?nIvL=Gw`_nNWV#WS2{?$ zyTIfAfqm~z|E1y3L(U&KcCei?O2ob`@J3)C^Z1=E(?s}mnthA`Dep=TX;%ik3fRYe z1N|rEO!=PhWv(IcB>qfeNbGn4Z%Xm774W?O9RS{#;!!8j%hZ1n2s(~GQ;z5*?Tvvq zrtEho{>y=<&tIl{7_omIcs&1*_!CL|{5MJX?|7l6m- zU*b2B^tS)>neejkz=8W0;fVYvhF(VasleOP#*bHi3-I{-58Ft`-o@+u{|-DkKcG*% z+P9SAK7S$C9X=L#eefS}#%CXFOX7EivXA=*)45CM@z81v_Azcu`%dSLfp-O-*d~5q zo6Ztxmkm5Q|6m_Td1oxvk#^649}o615A*nc<=CdPMEDcZES4eg*cRc2Z^m@W40dGR_q>SF~-#(MJL*=;dFVS~63NTKDj{@G1=07R# zN)c&y9C+OSu{}HrFkXX%Zv*~M;y)S=-G*Qv^>t_b{D8;%C*U1Cuk&X!@c90Z@c0bQ zB$57C15ZEyFk!I`;Y9|sSQEfL`i=4D)qgYKN&itN(><8jj{+Xgk7$<-7b%C2ohH(* z1b8iqXZq}biV5EX{`f$TW}nyo>jQ5{@pQfTxwAy^s>9u}x=*@RJp|@gw=p73U!923O@>79F`^0yAkH{nu z``dvxq47*uY(w}bz?1#EJM&+5D0lv%PMkxeADHhf5&Lt1$N59zM#?*5v5vG$2OjrN zEW`QBG!gz9@ak0jy2F11UYD}Z^xlC!68l=iey?A+mGC@&mI9CaFY06Z?u~B05O}=* zAH0*}vMn8(Jh}gL zXZ>l7`F;Oo8hacY(sm8-cz!0&&b+SQa}%yK7=+pOT>OGz%T?I_L;J%m+<+(Wp0%aflCwo9=9H}Gx35q9qQs0#%?Oy?p`#0_z=mQx?ro0N=e8}?)@A=bPW+dhrq)h?q8Vi&ie5Ne%2rG=YaS81Ktn@ z&z9n`@4TKrhQgN*`2GjiF7mwIf3tzd@yGb##fFPXBJqC?ydm&7_DosSPj~}3{F3>P zt;RPfvJx0xCMrzt{(+iP(1q-Vk__XR3p=-$vQT@ng!OkA%MsyaCw9 z*kf5AtYnY~-yec+3_LHkQ9a>j0+0I-(|wD$M)+O8)Aw&u-<2f%V~XeH-i5jeFArb- z;P`jf|CzvJ|8d^&5<_Bt6Y$u7^r<`iZQvmU9rn=&q8IgbmPk8Oc=*ESFS2%-#)0t3 z0Hb}(^AZEXUj!a*0UiFMzofh~-|6jo>T~@k=LV)RBzCNTHv#*k-@Njfz+?Z3{jU5b z^~C;7;IaQ`7sr5C`@LcE;QT@VktKTJW2cFlX>)iiNBT*z7lvt zTL1sr>fdvOmjf8jKO}yobYYHll_CQE2Fe}!jA&uxPH)gTzkCkf9^CMbudlDeiraJ|B+=gg`pkc zYk|l9BibGNLa=!nQM?o?VVH>hslbB^|MQ>e7!bai#^c!YI{uQd`QrN*)Q9t*=$Y$@ru1I0u*{!p8znKR@xx7XnY_FODCt@p}cl1r>kfg_$@HZHWKl%znTBLfgE~ z|AoMl_;+Xio&?^I=0C6f{{lS5AN$iC`zo+`lJN%>JU_pC1CQ$$+3wgs3_N-NhdOxe ze*^IFU$@WiBVqF3`&*3Ppl;X?0p9)(_)Eb5$@kCw!1+JnF9AP`ieGp3&p}gv-~Vv@ zdgBjB?(h#QqSV?RxOde0T6o3u*F@G|4)FN<6F7H9z{TtM*8y(=ya2GMlUIHSe0cz0 z;dIO&;uEOpGLg2^fXDfZ_R%&e?@9q_w-k6|;4$Bw_?J@lG4ALCQys)Uzcq_BnX)g^ z4c;7hvi~!UJ(&4loE8C3_8*)By!w9(cz6ZTasOp{@1fgo1s>1O7{38DzpzbbiNsGA z79Wm3`pwH265bDZL*UUC)4pR{!sh~y^B?`ki>VI6v!`)?{}A)Sa4}7U9|ybxt^Z7) zfeD`k{GaT3xw`?n|TOfG-GmjI9ZXLs#OPlvto5BLSZyZ!-x7x;O9!0XKT zGkz2Be-giOc7OK!FI#~BllcDt-Vox4YY*2Cuj@}A4i7MeVgbc}$Cu~#=c&Ns^EWRn z+QRvYsSJ2Lf8*YbeZW1KNg})`EPg!yk$yA12N2#7csRm$*hjm(@;Sg8Que#E|Gxkp z&yVOoUU&~>l8FDhj=$f3AlHit3~dM>2|V6E(Kh-|;@FiM!sh}{?mx)#YX3g)%3vS$ z;l-={UNe7x|A}MAYy7N$$NLxBB^P|`GLinL0gv}@5<61fl>*Z4I`G<*{jL~#J>l7~ zd1+Dc!}|}f>t_P+c>g1Fm)H2G0*~vTj63m*?(08&Chf|AH>P;>UGSe8|3ew!`#5p^ z=Vk0r9pN2-$MYZ4xDi(fzXo`G|BmI-q>_Ood=2pM2-Y$G@a)3t{xcR1A7d&1k>!=2 z<;?Y899Z0ciC^%s(?r@`0Nx1f_lMTJi~-@|L)ii2Oi&lk^b`<|HHuJ`p3D?OCtWi1Rmo@_776tl`hiGVlH?5$oMn$ zgYbzIkM^+d#1E$SF9DD7C;GbLNIhx)gW`$*yvE;T9(Vm=znQY=1F;`V@#Ox)R0rWt z1CR5U#GO~ZkK6CRpT#pUue?3*e=}Y8L@(j3fS&~RNuG=&Y4>lEwBH6iKEIIszqS8+Icfg}c-%jj_M7M-yn@GH z*DtB>N)p}=ctfz?-T37KPv5`DI5M^W6nL`!nX;&x_%G-A`~KY>eh%=sfAWD&USdG( z?*ktFXS(l^xDdVtcoX2eyZ+TV-19rmTkHeVMC^M5kMp0GzM~Do@1c0~pOi82fwX-B zJjRddx+A&?FYCqae|O_Q9eC_NFLMWdAokY)kLwrX$4d+eUk&^e;EDfC{UH1hZ?6By zlQQ(Lt3=w)1s?Y=UVKO0gg*>CK0gwkSO4DtkNXGmOj)}9Q9j(~5Axhb{K7V!CDM)q z{GY7ft-#~>p)K^E=^7;Vp8)?S&)+h>e~mx-!6Xs;(}2hOFPVQ#SZqW1RlsBa$@ufi z-vFNM|EQDb?Me@6C+PRr=ZCI1Qcrk0;PL$ho}Id5KM8nT|J{w>Dd6$_7sik2+`&E& z|K9+Q@gpqLHAHyT`G5BQ!54U(zoh@X+CK_B?mxV&9eV%y{D1%beIKk~m`MNifXDY2 zy?{d>c=bOXcpN_xf1Q6JHX^<5>>)*5&mKeFzKWXh-iq5Uf0@&1GJmdt^!Y-2s~Uo_-*|GUFm18)QN zQ74W8Qys+q0pQJnCmbn9eVrxJuATCqoFACZ1H$9~L*5GPlYD13>2;+2S>SR1!u=P0 z;MIN`@VI|5UAM#sVqZDzulG+<-<2f1JH?ZEOU8jIzYBN+Dt`UCf@t-`ek1Vo@#oe4 z=x}cQkRyGdnfcd`#J(r+c>W-HraDOb&6IuQnEH-R5x$P*|Gzr>4;6$T5b^u(xBsEp zzZMbR19(H|Kht?j6cWA=cuQLRn8twcKPmg&jh}fW*MD4lXq)IIe*T*z?KT3B&+md1 zOUnO^Bju!BE$}A5V>u}!Z90>rt#lOk{6O}v&KP=T~0F4*eqh2jJC!7l5+v^ndumzxt25nIvL=4)D5QAJ>0(>}LRv^Pg$l zh;PJxIq(=iVw;qccK;?xyC1;g^ApC87as_3yome#Kk|46CguNTmz0xs5x|cJ`xrlo zZt&5Ie?R|X42WK0=iel0mjgWg{V|E-zj36T@Xvuq|B=J>k9}a02tR5G*FG}ciN6={ zxc-PfUj5$&Jnlcd#14HW_8NgVqIglPV3-I$bSd}WPehDq?6582?SVI>`Ojw1ml>b=IYy2+8a{VXz zPzRGl+P{zG?qA5@J%E&BzOzKyjfndlKVI$ugm(lU<45|hb+z?re`o>OB;A)uut+#Y}4(#15f5Z#*WwcZ3bQi?4$2Y z-~G|;UjZKPU&McW55Odm_Wk33j~~X4jAK_i2tSSDu{|m4ilw(*2|Vt-@P0Jl_AAj{D#3{{$Z2ACdCG z&%dM}zgzzEC&It~8_#qe5?*8V@BIrcF+BqkJ_LBW|2T)4B*GsCekQ~Z8QlAMjlcYw z-}i6qJFoV)18+x-KgOQvGc@tP4S0P2+uik}m-hSoi#my3_}FP8?IMA*}&uYpQbCrxNwS+U;m>0}}JLl$-$)6J26_ zTslhs-$=CQ3Kzz~4KDQC9WG3CiLnjrDE+HMKA0*;iF^o^M~V4RxKMutT$oT|yx?n- zj(Yg|pdcC?QJiTajNG9Dz>Cs1-FNc0DeQyqyeu{@P3M~Qmiw$s7G@@L_5 z+a9>Ed@o$sJ_jyLOeAvqJ6d-x(cgn`;XEyZ3%O%(VM2*^PhbWTU1GbF9i?1}`BQMA zEQSl?c@8ere;zJOok_HFv7;4NB7YSw)K^B8|C2=h6;!)Qs$F*^&f_~2j}q$;9Ar%UwX5nL#rQ1UrQ+(X{Lh5FvYg$X6j-*0eXzkk5h3obrrgnsk|iTQpYv7J0f z)T;;*$7u{mOiU!|SE1U|CF)b7%IOmAYC}2JPoU~Mlc;|p)vhy%ahOcCqe~oTGbqO@ zbNGS!EUEldEQEv-%dM$=XA=Fkg?88vN09wM`hx5OG8`o8i3AD%v7#s$jTuNNaeNnp zM8D#wa+Ju$Q+c|?@)cA$O8l5W$wW#fVId@xs6Q1Xa%-q^l=v}?lIfIOi-nNr5{uSR z_3Np6l&EhbRh~hWqr~z|s(dq5{!bFyWl`<6QteRU$8D6{PL-p?kJ(fnCGtBdxtl8g zCy7;i;0MaRR6DxF_#A+8l=)OWO8i&=KX7~tsdAL~v4|=^LCIn)goF}5o~H6BQEw@g zM~Qx40Ey#$1tiYXDv)>&zYS6h+Ws<^Lpc-428Lz97}9 zb|}#g4JuEUI6ucz<=v5}SBK*163Zt*Ir=-1s%Ii`|1+lAcP3H)WN3%y%xNI8-*zCe z+@9j;68&(b%IOk$cZ&C->QQ2OC{-Rwm3Jn^p?xCN?*9*o{YnD;*pFn&&Ob@4Poe7R z68Tgp$Eq}{o-VOIohqkGEME)dxb89G_~3=}24jTh3Vc6+3FUw92|9nDfaCMudxHPo z6X1Sz6)s#~|MY$UiaW}2Nmjsx?Yi@R0I&}3zxM>(_XfC+X+tnEuARLfz_?*OuGh}q z4`4g2$8!Sx{Q#C@9>@8=_XOPen+EZK|5*RMC*a;c@%;cMl=$(#_XONH{P&)KyFdN+ zo`5?a{(Dc*u}yTmFTnc|{rv#eU>@&3|Gg)`X#Dkk0q(2+y(j1h%U|9b{P&*VzxM?6 z_X9XXFpuly&)*aL6#a>c{vW3vEUsRtB37ny+)Ivd_z9tK%M>G+Wzr{M76zdmAJBOtiO;A0lAc zH&rykBD-m<$3>gN%Rv#*i_aP)v7cRDnAyZv_gqdxA@NC{>3SmWk{e^HC1&;gG;HYl z>3alr7hc_DUG_fY{7ui-5B+8LE^LXqnOJ@Oq3if@Gv3dCy&V)0y|{)+Vvk(#LcmQ+ zL{8`BiVtVZYRwb&rK_$DF-^Lp(m3<7pnZ?k6vwO4LY-= z(7&YWOM#DQ+S`O6pRog0>|1wYz9;{Ui*W->W;X8i^1WGcX7(QCG^0?}jX7?sS>GP^ zeKNz5rWfBwk;IOkzhZz$?Vj6bWq%CTCQom4D zS*KXlhUEudm$Dn~WjbZ%t=guPGwkd2Tw$l0n!!VF1zA?5DYb~`ZI!^^nIL-cJ7|*F zqk3MrIz?g6n)HnczmiX^Kc=-HDt+{q)Wx+T^B!BS>Z#iEs>hGtcJ0TJO}pC85%P zchB>YfkWT=WqLT@sEmyhh&bA`RlZo}oY4sL`huO6sg84574>v~@!dB`>~p?+;%^pi zXzF*$F<$YBoq@`Y@}xe}+cIlg-u81E6BlWncX5)k{pCR}4yl)_j=GkwIOZVJWH{p2 z0B`4@HR(Z?posV@LX?7J_jj1;ar9BbUAeaP!)pqn_?E7o`Y!WZTOZ}~(nEF?1&anf z8|LY!^vd>1&Ca@p;>8EgK7FisS*ZT7yHM#5=k0r)XnN_tC&`{-d`@79M1)3~XO!2d z*qy00$@#+^24A<#Kek{uD|XY|57HmR5>{TZh)5M5pmNc2;gtDL!f)TRIve)EwaI+= zHT)eR;xB#&OcGmpujFlo0mCB{dc^#gF5OuCL@IIkfWhSr`%Y$^TzMv9xX_qs=U3ma zEwNP>tvt7B_?E)rUMVvMMp+3QNsPW;Sc31jiC+9n5?f)-l^cN~E~)1dH8boF)_YG& zi+L8Penq}mdypfiqCQE%IB>j}nUwYQ4Lh>s0&ZC5h8~D(&Dl~Kx%A-`*K++Upor*| zAWA{9#om26;GA*Q#bWp9@~n|sSuwBb`8L1MHri1lkd(U4S0T2=cI7SO$?7>hD^?EB zz9hX!e~!=LUn=Ti?b1ns1ubDTz4*HnB(W1rX0}>8rlik#SIjrkKkXO)#!I>0EV8Wq=BhTeseEM>Twv>;@x9^LBK{5_Npe)cI8SBbZkNJ z&RqR8JuiFumsH`?dBa>Ihx?^`ih7!GQN6;=Np0x&tq*8=rRjQif4L>LrO~W^lVWU8-r9_~D`y2-yfqx{@9o;~uF)sP`V*e_-&R*Q^cvo}r1dgd;0$=k(_D;?BjP1p1>YTY=Z z>22b+*N&TZJqWm=QZbUh$Gd4qe(-sF#NW!9bbGkT#adr0kr%=)_ctq8;ND2$i}z-d z*c~E&ANa3=4M~_Q}b-w-VVH=B)oMuYwP+b zy|EKh3OxoU{Y*%?cR?5bOnrk$zO%qReofMd!uz5h`kQetGOjGzj zHm`4YTe@@pe!;2ZH_7FF&c2xb&DbVx|qU%*Uli$be zZGm@no}k_!8;)? zGhTBBb5gVq9ir(SOxNqG*MG6(snl`G`&Vg7l&^eLP%vjsbfxeXt@=Lq&q$sr@;0Aq zxU^#7zIEgLw}&gH{Q97wbLX?2(D$YRUwl?7H?`CB;&-hiv4iEBwu)M&Y+nC5KjvP) zp0CqV{Ei%ZZ7n4g`7|UafA*o)@}F)#GdM@2NAA^CRiCkB(5KHI8hS}AmTk{Jxm#1K z1{9I_DiEb0*)N>JP8ODX29(`9TxqW`JlfpjdY;ea9&J9u^~+Yg4K7yQ;g~q$aC1}t ztFJ%YF*p#`A|JwfZMJpjxuS)pb)I(XX?lmy^;(?OYuSBW=-iw`{8QW3s!!B%^KIYd z*I{DLDQ>9*L$;P z$WrkS=lPBgJod(*$!Ms5?Cf1X^>atA~;DaW*z?({kMAh z$EVvKrs*9{*DEZiBJL3xvZMOb=ewWeKi3BkAQI z8b33kP&`rhZB^aMLqqfKoH(YfW-pa#OVc}ouDACjuTxpaEF7x_nHYV#WEdv8dGKIW zQ&)4nyXGo}2PbNJ6--z=+4YIytDN1v_Z9gKPM8`Z)8P73>Z2&M7s`aRChmr(!Rc3NltQ&Es$SL{S z4yCK(cE53~s+%TM?|hS{7tfX?vFF7&2@Kw&K7li9;tah-zc}H|t1cGSyk^fl@Zp&5 z>B46+RU#MmDBO04z9Vw{R7_p)&y46#>*9Au&a${CZgaU1_Zs4_5>X10ovV1~m$Zr4 zjPp51=U#<6)}`<}x!Dv2T5_a1%iJvQ&_)fVj%A&mhW&xaniSvqyL zA_r0E?^*Sj@mc%9T3{|8^w1qTmH4tP=HR9+seEdTNB!>?BxoEqO-%GDbf ztu+@vm9xBOO?=O-+oq27h?&sij_>nXdIhulhtTwnq3f+2XrH7v=$DKxOLvVL`*PbS zefzIZLv3!}JeqXHeB^3(!>pK_4q>*k3meXO1g=~=?EG8HgZm6`D_SnOa&xA*F8qDL z|Kgxb*E?7<-b^Ih)5bzWK&~*@CDn2F&8lSaSu+$B+NHvOOufBrnct#kst-&bIar?+ zvvN$=-eU1_>L#DN-u^d4(vNKUPSdMG*Xw*~O2zoraYJsk57BthY_oVqg4mS%j==)9 zD;`yiJvO0k(U!py!z$|@o?vi5Y^};J<98apMB9aJ6%OBS(DE{$F-dz&-)+NIE=n^$ zp?`w?(%Q-I?Uj<%U+D8el_&+t&JejUW9vYtNQKV|#^W0;(@Qlcd(JM)tT`KLlp&xl zCpjdy-q-V1=ws<(`5SvPV+Iu;sXZn;Zrsxshn>&eS8&+_I*7k&biL<)mG_LRGqEm> zQ9s%gV(8~HWqsS@jpag5wjA8#X16@)gzNs&%^GQU4xBZ)UDYzbF-~gorK!TzTOWmp zgs!~2ioPz?>3TzMY+L$i{;b&=;rbT&6>s|g(zV0*)x;+?fhu)WXZf~#TF^ztJQ{7^V82IxEGVe{@`EKJLdS(ye)cP);}L$_((Ha zZ_w&RS_Ypzk6&di93nKX-$K7Rdx9Q}+qKNGSj}kdlwUEQmp#{g{dnx;0gCWA@L8h&Z-jkMi#Nsk0{4+UOjUIyhmb zSD%!DW)ds(UFX(M_weoeJZRU@!}RkR&SjF=h2zYt0yg(ni@#XxApds5*75C^XV#BN z+mf5)Ynf}YOy4p7lUTqQYd-zTQ`rZfe^|0t&3{Zv^zH_;4YL*=x-6aqiip2jL@7x2 zfelsH?ynGAmYC-4u9kfFj>TaW*(T$`+P@y>^qTHicV?AKf%X*%U(cCdpHc=_OXbWA z4<0!rH$F?E*PZCuhv_MNHYR!$tb>7gfU z&1)~|_}9TJnv=Im&O0|(=l1IL*(yK!T#ESQuWp`bq}BR!{R*01_?w&mC3X!vr_pz5 zjlm+181H39COaG26BM@1zI<2FammSb8{#$ERQ9O76}DG>dEV;BfDvu;YWd%+UvFM# z?EY@PtVr`5Jo6HNb^fOn;&8??K*|24!X}q6jkrL;nlG|0C*ymxzv^4jcI^9ts1^I$ z-(~LaG2Ux)&qo$}w>pRq6A9XOUm&qG_1+Y#UFNYD@L7fEoj}*y5>k0_$*Z{!r#yF8 zyKEkqsjL3|ytvkdY?0HB`Q?$jg+A7~y?k-)#`^k8{6l<&HvimVS2*CT&PsFfcHc7f z)??;0y?7QTiJcL8{)B5v?6_bnjolG(%af&s9^X7&zd+$hZp%jBnn@0_%jPXoZX7de z_eRs{ot6nkEH>y1AK7%6S??j>$B>T;dNlCv}e>uVbq0FS|*(kQl z#n+j8dJXreuUVF7XIuS3ZHuAD9)m|?mhVxCttiWX{518ZpvFGEkA>N##ly76B+&Hg z(e?I;slL?ebkW`+dvmW*JN3%LL?lup-`7r(Vr#Z3Z~I)PQ*ql#=5E7Ln=KByKZPat z@a3i5n=YqeelEmt&Et{yPmli3Uwyh>$AsL}e2dY;55=dX2WQ*95qX#8TRt;PFT41b zGvDsJpJsXNy4e4P`0YgU&wBnzM0d?#yk+S3mXkb~v=|fL8wU zMJFB%Fgv53lXB}o|GBrGz7l!)ZkoriF!jN{&F7W0-AX_g@z;>9w_kBWy57@uGsAl; z)>~Z9%(pLoFFfySz_cIE3hotV%f@8Y-H;(Ne*RwuBBcPP!ojYGBjHcI^uJ=`w(Szj^8;baTC^V1iarM1zxXQA#UN{K8@}c=_Lf5PN`O>#Z5vmJRtD9r(%mS}p9(%e)OK(YQV}1Nc`RtQ9 z^K636)=JEgEgog`v_`ThwXUg2e$*E4ghd%{W1V|iKcwk3rR!b1#W~@@)%UCQE@~br zZD`)<;TLE0?CzPYBlj`{Ms2SdW3#k=S4_YnHOV6fi&Ix#7IU2Xa-xjPF{?MLhn2lA zI*DgfG9RYU^?Ih3Z|7Hi9+nUweBndoPT{~qI|t;=88PkIYY92&7ke*Vd3;yvLoeX~>gq+dvY%$YsQ`RB;1e>H1WJxkMTM%NqtDf#6UE%EcKBqU6azZ>jdvP$)F zws}tAHKBXo-R~=HWXGIWP%zy7c*^>d*`Z1E!$PgZALs1*;8L4dZ+EMC7Cvhee{pXk ziT&|y^EQP89>HIn95a2>bkee&0t9uF(Syfw0f5@~wzT_s6u^|H#9 zb2zP1gFVWPVl4xAR4=>jUK>%E`gueT)suqx>&&yBe4n9qpK5d?~7e6 zReA2&yF%iLY?yV;sd4{ffR^R@EkM5nN z%FBzV>V7gTe#@7y+PL1?#6GI`H{q=zqpkY|uoe&9dh%yVy7=tnXH7kdKJ2h*QgSpc z`g$7QZ4rO1>3aKp^pCLVJ+|s=Td#4ko=-JKN?9GP>+#J(rOkAG5&X@;l=Lyyc4rQH zX?}gFRMFRN`vfn8c|wY!M?&V`O*|VdM}L22L)Uwt|5b^>N&?vOaV#<`>}+%fs2$kvH#?=OFP@L>hb-)VHc z&4#@*6t4{3wm~e>vZ*+K(2Z+DvU>$aRITc(;dJbP(Yj=x+#uT|sT!?x`xBdwg-x0h zGvoZ_eG1~g64g^iytLXy(~HlZB(WDayV*{kX2n@lmak$Sw`FFINcx!XGisfMWlF9V zsy*hrww8~Rzc}t{>mhZ^t+OqaU&f|y656mzK;~eEL8e$c2NaR`PA5u1vOTpY`F}ZC zsd?#3vhhKF{j5Whv9X)<^~H+xtvPN%ja6r@?#abDuB#C_`*={^(DWUI2zE?SztKiJXrdMeF((QDJ0{fFln>D{ZlT2}Yg zLUHKiSA&*mud9?@U4OkLd!(sS#fu=H!irG~hfNzcd-1|+@1$0khMe7zKYhPH?ztom z_H@1Ov)WrewdtQK-+l7Y!E&eOJApI!gH|2v^+96s5Hk(I`o(Ud5w-6u_V$aPe)+n? zsZC1<6rF!A|NY1!{R1gxeT09~^g7V>hAB*VrH~>g5F_~T$*_bIen}Q(Pm0`5_gNL{ z(y(rXsm=bKr}$IiGApg#?Dk35d+}(nsNL8%<1d{GcD0GDYgZpd(~I|flGp;hnhx&{ zdo)5U?U-cI(3zL`YUO=|T7NV;H9Kr9tB5v8SnVu!W1+^a3mIQMq9Py8+UXhkz;@?E zExj3Xx)TK-ii08&hnYkvNcR1$$-~#z>=(V-@c7OXH>G*ck7Y!CmniIHs*PUh21Yg@08vpLo`bo_U9q6gN z{6mV*RHP5KmJ1TfGKTN#Ko=P|7rNf*4*HQJUfs>$ca{|8+qo=vlFbv2&8A-CEBWQc z4%%1e+Q}^Hn?363+?hpnk1NlKwi+n4yxO37Xsg>Xt#w+O8AoV(@w*I?*f+jEd7ovY z(ze9K{jpg^ef`VI>b=HsS&9}4?RO6M7ni=)>bof2erssU?jsq|M^jXK918uJduxgU z>xTDm$MV8$posYEN|b_RYqdq&sTqg#SS4aV`b|iy{Oh24tIQhl>Ks?2i8~h-*0>sE z_}q4ycKC`@yZVc*pACyAU+HmknB|(&yR6jX?>S*iiQc(%y{Y2vt%jF(<^0@n+g)PQ z{mP9SbEfQR5PjfR>R}kpE_HSqHt*%7f)DD?hZnQfwk|k%-o0#R>@$r%xBO0ST;!qC zNYguyu6LFErHfzQtLfDLe^lLNR8(!W0AP@zyBlfg?iQp|y1ToirMtTu1nF*&Mmi*< zQ|hA|DKFf$=B{)1pFO{xwcV%Qcb~x-&fWe;2aBiUhwd9Syl^2Ur6}kUB+wlRE3TL{ znQU}#|KVsa$w%lEGs=+N^b>tTYo7#$bvg%y>@b>muWjn-dn*;KmkK=JJvR^sh~Byi54RHLS#47S$1A=ERRyZ~|d@q7QI4J&~A z_N)U3$ZN`j-E)@g5hO&9ZgpFH?>Of3WuFF5ZT*JVt7ui$eV5ESdmtrW_sh07<6?Dc zOkLUH?m?4!D9HABJNCaW&?^M4*Bp$#X3%dHy{QI=2b&&5&FjRu<&$&5UzeA7W-pb! z6VSoT5fDQvAJ0!UbsOW6%Nn*imgev78x$`;H1XgcM|5A;+uj0P3!s~8daEdH7SpNs zG3~fy2|$+b4j!{XtEN;1=RYtL7@hhTP(P*Fp6>UOUyg&3NpTf z)s+o^`?l8r2Z*oCeyVZ{-;ZbnCrR|PoG>bf9l08zt)HX%lj*%GXAcB^*V3 zVAi_FT}Al^ExyK^Z8~e8)JM`5oZVLl+=sVbg98-jKF@?WTa?pb?UO#76e=I6LwK~G z1H+6d-Ii%ZG|%=U4~@1&B#I^Q+A5dWUQLuMATbpGM-nTKnOreU5Gn9_dt0l419V!S zJjQq@rki~?sx-$!&9sX9TT%Rk?Y*{IlhLw(ww`g6YA(r#+^~;7eeR-`u5jrquN!`5 z(@hyv(nnGMU4war!1daI(bo(bZ0>uXCTgUha^3<8B`i30_BsD@s^e8j;l?q(Cr*3& ziFi~!{EP4hqCZCtAFGG5UQEb|5smMlP#-6GKi##wJ%honEznKH_3JT+O4@)m5AJJL zv$6Cx2uoRvWTUWFTTSX9P+rN*A-!Z6w;;hvLu0dkkM@{3;Dag~m|14p$C7eIc>W&X z+5ufZulUbZd z_*O{dq{!c^)F-$hIefMNu07CQP#%RfVOlGQn@7F%ps1U<()skWLvNL`1*)PQ_rJ0= zdeW3yZvU-&`K`+9Z%9=8(j;?DIr1B$^ZE|$_q}9P0M`NNVncbb;+|4%ZJhMzfcnJs zF%nT~n&TnpVYCup?wGL@KEi%pqV-nB0tJOEx!kd*_v85_b6fl{LGk|A=CllQ1GtVr z*Mc(W`1kXCVebr)>}Ej)jiW|d9dUzFPr9UTfqJdJbN>nHR`DWZYao{;Jn2dGv}}yY zz;(v&b`Q0gQWj5cR)FgSba@ZDczhWpi1Etghla2pZ)SzFpbfj4rL8EmB^0yj@hN7Q zbbZ`Ojmqdf@Q&WYROyyn-ABTG3B0KMUa~m6FavO%fo_~=l;OSk5qG9bgv)xMdr`IZ z570Zu$E+wiM)Ris&eoh0GsrFG1xRe` z5cdspy(liwj{sOj((n@CI@J}7zGl$&0`%yIW$cSg=kQp2HvPZ|(_Si`K`043O|0+* zY!#g8723_-3de72 zGH@T>&JA#YW=Dt!$`<`@sbhnU{9a#clV8AaG7>e7>G_>~e)^hbyf|*Rx?taw+wP1l zA$7!^c;DLHYl0Lp{Y;1OU!!$P`YQx>-NEQ<2Ib718n+%X^HN)k?cg}?$v${DLms{8 z>B~SACw1Z6UK=~{kD*gk!YXFd?b@#W3TvX-+Pbqk({5(4@RqnC9ssx=K=+*n0VQ5{ zNqGb)SU_c#=-ZU>IYM3D6h`8U-XogEtU`cERwuV-D1%!Y6M~gZ{XgO-(w6^N_MWtmp_jxC^Od=1_MAt|#Z$;%1Jo_XJDhq8qMNi){ zc|v9A-b~+Se~cW_OhT>1U3f&iwg*0sy@0L=HOy6TJ|S7d_q?;@F;-7^zmj+VDAvgb zXT?W}725|(RR^o5V_=OLBbX@CvefG@T0)_nK#gtSc&r(?{HD0 ze~)03KO}z(<&{Y7Ds$;5Ucla)$`LoqRxAx&L8?vn?EN4AuFxXyMY{W8L$R!wI0W`M z$>R{*s|7x8K0vp=+jXLOOxtTDh!)n`?mf zra0GQe3c_lJ@@t_kL)(?_nA4bZ-G+)_bbpX^At*XAEkfsy}^f$9Ro=RHWCG*?jkXj zJ^z!C{kFMSWIKvsAX9sntnd2m2~A>eB~t7l3dVV|BmG(YmfPnnfa?o%YcT_#LK~LR zvW*$j(kKl^;uBPGN|F`ishpsr6+bExw-CMC*MzhcVy*J6B}(0}Ty?lRcduGu$Q|By zhm+t>1-O1dH(WPz(88poRttWy;3Gs7Oy_m4XhpZTj6GTl2ezg~+LV?Xh(gdYXn$Or z7!^LSdNZmDy(QowDSd4ZMy(3^?c4(Q*B|KK4CGgZDHZ>g%TfO>=UJh>Im)8FUFC9x z>#p)C@;{hwp<%f0mom@t*D+g7OrA=kOLf)?n90dQxuyYu;v@ubdp5B9HVXy^2*Lsm zapHkud9|e3_D_SdQ)0)Op^}1e2#sX0G38I@<+Vrl^XsJM;dc&xL+yW{z6CTKrx1wu zRc(eGZ>Y!w@4Z4`HxP`zX3+S*Mv0AY=M4}SYscM&(FoHI<*H`8iqV}qFGfm)UIL-B z%vW=K9~hWb$C!n(9|)-Sx@+nmex=bv21y>}WW4Qxz-|!G6~qo9`IEf1c_NZ@mc77F zHA2#&dEJs!&DZN9@O11Y@^>l2r%ZB?^n$zr`aklE1^myG0e&5Xk9{1A`e8^02>>@3 z=+;`H{@gWTTk<~`ygl{j!9xGUpp;<|+^Sz1%IjEjG^X;vb@xMYW~4AxSZtP_sw%xP zdZs(`%cp^^4o(4yuoZwC0(5DfEL5M2?$qG*Fh6KIKW=`c zi^|#w{D#*=epnKLvtU7cPXpbAYfpAEN;5@QgaPbtDA4T@k(htf*ybipeloGTwS@Vmg+xsBUizw!R|`cI1C9kHvM0)#KStH*0d54)-MeEwO(`sZGf2uX zMa@_c75qdKg1Gbp$&4_s)a5WRG7C=$rFfQ%)!|f<=Qd0-AY`d*VYYKEf{}@nG+eB9 z6W~SyUEf`-Ag^DJ$unWLi>00lQ4AP?V<>#SIx9)a{vK)ONtZ@VM7;eAC)-=`jw3GA zw~on_HUbG>dmg8K&LX|zt^n@aj1C+i;x4wt@XH+PlhfvQFDoz3ug{u@CD=FIgcBN_ z?N*Dvm*?N7T^uaY!fq8b@kKuLJY?6|#oBFEIl&Yijy4~5ze3>tMuXAU4AMQXp(1$R zq8Y0qr`}FoBq|)RJc8L=-&k^XTKUL)PqvEQld+7Z+erg zTB5tc^k`fuY|7ne=Qdp=WOd_lTWSIB+qnS_Q2&0lFZCDgZB7516^*OO)#+&TiHiza zQyQPci%zSB-PW?=n2*vd>GcCHo(OeMPpK(iaC=YIwr;3EQL9FS1FBy>qtTd{P$`^S>QMuY+@*R^cUp`*sfk2Z$(s=x3Vt;5PH%v{R>D zw!`jG+XYPkj>spSl54#adBas=!lsYsL|?_*Z*E2 zaJ`9O^fiO9c>;@9?fR&-h$M8J8i$?I2gH@%<*k;##1AI$e%(K39T&8)#AW1eMmZYY zX1_<2;^MDc9(Q0SD>#QTJ}Tz{xJf`4qFmef^Zw;JhFU`yB6HUMc4XkS$Bz!E%iFW6 z)_CeHexLl=L|&*GrlKgBIck>1B(4dM%kwFM&L}#|9qn9AfSU|-BfC_Ey4I3l>s0FW zG)4oU8^pw=UY>{%n*aD|YS*qg4~ z1h^?ccSIevSar>mC5q76^%VNE!W|2D%Jp{mZRjZ}Vfppf|NfrGb6i1S5Be;yZlfa)Qj!cb*PNJ10OWsY6Ks*G%)&_K`Zc5)5#+E zemLkaFj?Aung4!S9E?TsnfwyS#5~9K`a>JWl8-v1q!Woz668aPK-#E9|#fXz{Tbv<@2<&En(bo(@*tE4yFmc|S#2dL&6>i>i z@fXJAznyu}_+CTV)khqDQdLRN$|k9-_|NEAkmQcfdwB(+37tTZ{owq^h4II?wI0~b z1iBxfvJe`i+XRtwI&z(@EB^2>wh~yi(hs37IYn!WOu^4L&3s2jc8Nr7(;4CYSCE}2 zg}<@(K*U0Yzt$Pmfr1Zk-`0TO06F8ea=4k9mx%oyYK%1enUi#cys4uwFMn({-nW(W z$Wfd%Q_A&ls3oruxZZ3q`kFx!_0JlZAYsyR zqW!O}>SwHHxcezLM|UvniKIN=(J@r<+m|)278Cz_qB;t*m)Ge=WL;Y}rjdlwNC_ioibT`T zRXgFlmIEKaY?yH>L@xq*hfNBx|GyG!7up5QR9k=kPWA^`vY|raQ=`7Mqe|iQq@a6 zqm_6wa^7U<2bc1P)5}Oj;`19-S8}Jl#@mu`m@SR&rR0u;zp;DzD$B8I%humG!hYc< z;iq=_4*ZAr_T2<fLj1`Ke-mj@lMgaEbHJq=zb4UEW}-A zsXPpoMVK|>>*(hF8vnBTdu8206{D@->nDU+-{o#TS+V@F@nT^eQuuh}X@FY@bc-m8 z*oY!o>L_@Q9FpKT2qQ(t8wIr%Ry=(d+zK1ILQemFG(?rKd?NU77e#PQpy>=%dB%+y{7+dbDnvs#kA+WSsvf^3Ui1)cXzSex~@t zx`nx+J;_F0QHv=>oESxbIO=kF6dTr)jjz!B`>!>JLpi0$1tLjK3r)e8%;9=cLrJ-r zqsU*kKXi-6q5${p+5-n@TQo<@^&|j=Fg%h!B%b@OV0N~u6j@DDh=ZuTL2EtktRTp@ zC_xo51Ep^#!9Ibt^vjA|&M%eLgvj*p5JXGhI;s?mzGe`d=9Q5@`4*2s1mgB&os!q} ztgg2O!nZu{&M)uqKy?FGhpA(B4~U-{P6IgDU>3dnhCYd_VT>3JqP{G2M12A7TfPI` zVd$%uc+N&)m}ca}yIxAaN0PprG3T7ceC3EuPue{aXGW`0HI}(wauhUq$Vk*gU)eT> zt=JW48Cnh&Mw4&e*3#hX;_X}p2k1S9o{@DED;t_^&VIinU48F?+&tG&{kKZ~Pz$y6 zG_+q$vNFn;nbekFeml&X8(j=ao>CY6mOAWc6v%84OC)=Rz-~Dhea)}m(U4=xGs`X* zBF5jmfi(I=L1+kzUEB8fOlVBxFXkPeL_!h{yvWk`BN(y426|U z10@OY{H*}Gb>?QaVz+#~6A519X$k2`_oGQ&NH89JpB3;Z9zu~rH~mTog#(x~3o+~* zzf)7nG@R(jBuJ`*SUYpPajlGj`=Lspn=^1ltUvK%06!tD3E6(tmThk)(uKrae6M?Z z_<1P@Q7$~MERLrVfdZN0PthY5^j^xAl#ep3caVLL%0%4i;;RMjLlw|96YAVCWJ91@=v#@CfLGX0tz2P6PKXZ);$?%|G6ZQ(r~mEZv6{%HMXCkh!Bdv*CBPWF)7J@L+Z1fb-h6C&Uz{zu zpEZ6z#YN$uNeeACc-vcLj29H?me#l!_gWE20xn;>F?y6*+4|tu})FQGZaxg zMOQJ_kD_OHaNq18MvJ&e@6d`D2k9IsS;zTiby*La{ z)A*B$Oa849vE2C8yzyVRsZ@?^UwxsaZTuwO){x--Hi6OC3@X7e_^4!WnZ#RFR7TB_ zmq_{mliG(FWc%-OSzo^vKS~ukjyuP+UHqS&zFqExdgPJlrs=Z9HwXiZY$8W;e96_{tp#rbbDW{RY2sX zC4B;PUYx6a1Hoa7M`mOBv&ljnPaogRH2slXWY0!*wYf16{b-oPTq4;cRa+2k`mu_G|_RXm|0$7n6#J;F8^u zMav{3Yvl=~qH{ydjRWqK=%NMZc4>F-D%e*|qdg&)in;HSTkmkEn&yt(d|IX=0hh zEulkR($p%_Jo(n&k5>AX2It^*y&B+p-#&u_^iXqhEX_P8vbd}t`lULGiRxzi^{Y{O zjapR)U;j||Txi+u&|GsKF*X!omt?1kk7|FAvW|3w*qcVF#A!66czdRS-5+4|HG|Hk zrt}0Ilk58f1o|6ZzcIS#G9~*P^?3iWldV{?^{Xo@f`xh6MJ3ubYbI%;NX&Ay+SmCe z<@zhT%4B1mvZ1%NG}wJxOMnApt*A7X%pVhas{>0imSFV*IWiws*fd;Lsv!}^)O-}` zm=GRYeeJzj61^?$GS(19NSXZA}*Cq^b`+%-|P-gbTIU$rpU6PxV>Y@O``A#ltj>q3}vyk~Z z8puf@C&h!bx|FbXVz2wdITcB_t<}{MIY$lqK?Mz$iU@Il+YfZBv>1MjOu+y0D@4ye z!b9z+@bSV892$;dAE|3qJb5um`JPrQw9}MHekkWkE&&>aYpG)nB7soT4qV|UG0|EA zxNq-@zyT`wTG0xr)cbF;TA2FGcX7AW2^p%90mA#4NiGj9M{as;J2#+#9J~IXv}g~e z9Y^_j!Ax-{9C4GG(n8hXMic)l1n%$KJsun&r12l5Xj=_b795>lkjZOSzWBEAGX(zCvJk2#mgF5S9Fi zhwDVF5tk}i$mE^?x=$anF6cXP=EWmiH%wxqhlpkZiQ1awJjBy972n^qPkOFVcJxfl z?@Z!J)yuH3Q~~Z!pzAPJa^LlNd}0Ba;VjfXpF+_2D_3tz31&(!!n;T6@6=kjD11{@ z?J1hiak{~Rc6aX+UXrnBP5W<>MtskDmx24CVW9i{KSA7mIc39U#-V%YCWq`oC%OB+ ztUsT>osyz#RZNOLri+_BFD}ZQ#C}1Jv-!%!9Z8o!BN+Lk$g(M7=~K!#K)oYC_bBNx zN+@lgjDCKcDDaxquAb#Yn%n=l%{9!0 zsWe1x3Atv^bB}~m-D8S{!buo(n2W8+{qFYp!o%G-@tJ8$z2}-O;-ZCJfA-yV1v>@r zr)&Cn+j}c!t+zcUxDOLRckoczhV17?i6LgQdZ=c{H@o}bg^9HOqVB|$Oi{6IG(A*r zqYLgox3>hf4MG`TV$IP_1JW*n8%t|IHd}|vG5~iH=t|dTK`bF3$8~(RLZbn&{x&2?Nf#6@cTCSqDLG;LKW{x;fS2%R!d9b*Q9wIzwP0{^}fA3 z1P3VJ&{qZDP-_@15sBv90z?Q~Qow4rs*G||vTTc=NeDfhkCAb2dig8q<|=ia0A(zd z#*dTimxftSgOV0WAZTWN1&F3o@%h##( zc(N~PigUusH1+i1ag%RjJZk4wCJz_r+T6Me}vspH&9NwNF zf-c|w?O^v8(EU->3R88Nl`tS`7ehmLH{y66GkK=aiy4BppO_Owzx<`WaOR%%wAx{U zmyd(S{-@y=ey>a!bHVY^5+)Yhhh=~}3v~DNu}6}94x0Uv1+?TzioSP4V96&=2gtHK zw?nobGb%w1xEsOVap23sJ~BRkJ}+Eby*fWsYW-VknG~JRIt>E2b3m7CFGjjLFS+QEF&+;- zwyi>R_-xK`(+bMdPkm9F|BzXJ%X9wv zj4_!f0^z}j?JiTJp_f5ho61739;i9P?w_%h=z<*jx-<)?g5qjwlXnLVBhKRoy9ch8}p~%cW94-6*$Xq0?%fI9 z%Dc;M|BW9T98c`~%bBq-eR?Q#q`IbG?~l$UUmi^PP?7tn2i&5iL_PVf~1 zyKmE{ z?|%?7yNi?4yaFx45Uy{UjDhhAf!!4_`kF!F=nMND0* zs^x5!B;UdR#!VV+6Q%MP!2Foyl<<|;t-t8!#^xEDdhSO*$voMy;DSiriU6mR1wlR# zj6MW|$g2gecMa&K#N{rrK)3DnuRoFz^`Vz{v>3z{pLi15gk+u|LP2lj{tV;cwvdE4 zZNfCIz!UbBM-#h3Jvg-;{ZDhH41eYAnFe;(fv!&e`^9L^DgS`eY9^I%hojgWotgMn zOd;d=M&+A#TBJ|?YZ%mgzU^%GdId<0(7jD`p+5bmSi2TG|3XsA^MKd!2GF%Q*Kt3Q zvls3B7gb!J4zV6Y<$OZ77TnkI@3F#GvY+v9=#G~r{r$5X7msaV_#X<$CXN*Wy8p%@ z{%T^UCyQbN>fHpo2+^yE#8kx?>)m*1=-qrt?`Eu(M2Qx+@%}olz6?g$&mAVN`LYLc zqW8~re54(l>WrEFA)*266x-PGpH-kNA;8@Nx|E1LA4$wV%{iIb717b)u(3oZa^$4H z=psaX7FHAf#>01`39BpBRM_#iOIvzBRrgOHf#8I;^?z6H%O>6CXI=nz8|V)Bn-hh= z8pTg-`h3?lTIAHKOL6{<(jiV9eC??p&O1Y~rqbm!6f!5Zd;MQ$xaP2emX%_!k(Jv$ zUB7w%$-vv*6@1)wfNndNt32WNap%aa(ooxi4ZZzGzx_&bbfQGlEp?yAPpgGIY2G$P zxN*i3FoDm`F8w;&a)kQP1)OBNerft_e1`z{5751Hu+}u3hbJ&P1!2oE73X`!lP7rm znAeu>L`ZiJzvH_prtV++80x1i<#-NocY&^@d)M(~ zzy3x}Vrr+4r>L`?XzmCENxe1t72I@@w>!eONh?1q$tDOJuT+IE@A-axReCtXtSp*j z;LCiOeMj)Xs1 z>>dDJ^@a59Q5pGJPbN0kZQ5@4`vd)>F*{hpu~ZLaCl3~NBe5OKs)H4dk@uzqUtlIC z_xA?NoehUA6x)*Dr(P1g9V@W=b_~G*I@a6{aIuAcpv4ewL)I$|UN(rBsA;z`iG|wp zU@P9qeqqVRr77JKAi4S7zcJZXu+10CO8J05{1|=?n;(%6oTvT=Mqe`sLW1@E+76z| z{&Q8KDiY3Blf6;|`kb074ap-n6!fX13W~^4mGIA!jp0gi*N-0RE3LC2?)ST?{Qbqo zW$Y}#eb(D74ICgy!j<2lkk?Di`b?!TRayq6BJ3Y+slAIIziKPzVpa`(a{WdnQ&ir7 zA*pmJ#v%V-c%*NH*Z|odFRHVX0R5}lR|wpPw|BGP0AXvLRTesyY{&{*iLe>anUAA$ z+0Aa(i1KV?4QZGzGf=L6w(5X$TGZIiqp6DG469RTvx=+#lie>V)5ogsEdL6D-4ihS znnA^*7Em$?uG;QPUAEMEjyy?Drj1-qjjRs}RnaS2=X4J0nAT|5hLN{!n!6<3=1A7u z*{;5;O=A6>lAWh+6%hdU6zDpKyl)R8AtmX(x{~vf(?(_6vWh61c9R#7T9j}wEFfUI zkdQ+3xm}oGV4lXwXW&6|;6Fr)U6-JDsZ!@K_z0X6oB>^>+AsPAqd(OGR325Z{DoRU z_7eVT7LoFT zaDbfI6kp7l2r1~Ja|NSgcoH#){~YDHdk)G=Ku&;$$yB7y9w4+eOD4 zUNp_IK#sYq1q-O7i*K_RaDOkr=xYX1vVITGt8Y2Qiqh!r9IV^raL9C`2jLv^$=K+_ ztj}LtExEZ+^wT7IkxSmHAyRi)8SC&7jQnx`o~KI>`THah;9deiM;cSkslNLyI^jn)?X_#MvM=H3 zKZVIUW+T}S_}XZ?GKBrxDAp-LywITKzOD|=bU7q+2Txekoex>M7wC9190Eg?%)7Dm3@0A zZNikgsa6$~u~8V|cqHObh@7iwALrH7?$4#D^8Il?;ec05VH8Qw)VPiW`heh>fwCXh zpgORfdPxYppZx`+uNhlf*D>@=NRmLj7lXbEH#2@z;Da@`l7aNA0q(;C&<)O!(Y4|kk>bCxQH8@}sT{Lc zSV`c$eqZ_-zowU%$qR zur?1{m|)TQ=)kk~Z3YE)pMWkQRsvT3T4(p>L~e&=Q1eDNrJb6;hZ$N@-l1~ll+yx- zBNOIfIj&7DIio>XxK@M|jp8^CzU`s7Nt~sOyW!i659~ezT`Avv$dWiQ5^r~s@~%6$ zz`_LGa1Uk?&WHfINPC8b)72a8cR^gbk5z*vYY?;w_~V<+PM0nUUJ5&G9X?d-!2R(H z&<*rVm^!QM;H?>2cK5wUWyg9GH=2_*zEzsj;*ekdLNJ!NIGt)~KhBNXm_dIr7i z2QFp#p-m(oEz9s6QP#dC1I!oxGCS83439GX6--)gN1LEm2<*Oo_`d+%FEA{@M(Z$# zYN`Zhty<(2^r7TXoj{14TKSAOQGYmd7fTYKUM9k5J5S)nRaG%I@Y^V6%KXX<71F&q z)#wder$PeVpvwlkz^wQ2&7FSr%U+vPXD#{|!FPn(OC++`60@V8s=t3aRstY$lSyqz=Q)-HKHy4<|R24lIO&-Ru zQ;l6QKpLSbqpUh#|IiT(G2VAd?SZUs%qV{>$i<%RmU<}~2cBn8Kv#mx*}!wYCp)l> zkGIj};{H}Wp8Z`=I|@_sw@{WfvnQ1b8#G5tjF)|D@&PE#yT%SWJjtfg)@S_x%4 z59@p_@B0H#nX>loDgLLN9(2IL2OD&{%FbK0 zCTDl#fTSqcdR03rQ`qf$AP&>URNlFL2Pd~NVvi)} zO_5T5s*IsyMp-9tUd+6qn z>Lkj%&8WfkA_LuUVHqp_G84|h{@v#W^q|Me&E(%RKXwq49DLu|U~4vI_5P$}cV4HX z&&BsxrW*LxGg=n6T4b}>NrA(^! z8Xasyd`vETB~$9@3$3s&ik@*h_IiSi)v4{WnUJn)MD#!fpNsnwG z<EihUb!?^@R1P7KYd}M1x@e z=9blaPe32gfG(Ru`TNB}+6ofBd&+=a;+O2vIY znzO$bF=<|KUpQsG&9}-w@+|5y3KIcbbf6ovu|ID!-u=22x>;svzRQ(a3S|xH&wNLfjdSpzgpa9@#bMNE7C_P7 zMNB557FuWY7;M2mn*h`oDPdWaztZQ0CdS{g40)dq)fDF)^#WS=NT5zeSS`;y|{=!loabRi3y?4&H89^2djg`co~=G z3gdP{I;G|z=f@QgktXx!rgnJMvTpe@gtO11e~f6_y`Xhd7SIQ5psSYQ?^^)xwDO6) zg~BQ88H?MS6HPG$!7(UR8euFKtN*jaZ-)y}jt|~1$F+-z?i!NT1e~}FFmV`}F&aCP zi&g*^2k0uKVsr<7#)U0Fed$HDz=jey zjH$j(s^^4zTvyc`XvIhME<|PKMiY#R-qT&U!mXr=sy-1)fQtuo4P=aG^z#Q=+mqF; z2rOc3qAyw?sSzf*A_t?mxU`Vu@vf*00#7g(H(}FQbiPDb+c_-i=^TK(MC8PT0{x5L z_EzBg13u7Ah!HWA$r_0fV zEPzV{bf1QV1;hxGOsh?@FdTOrLqv`>ti4Y%{y03e`UoWiU%$qT5k-kcG;Z=ihHA0>P`v6+K{y-0N-fyEqs9Eg<_MuwLfzA>SNQYEeY0XmYYmAG6Fc>ajzQeum~C2@B&dMH6RXGIpM#tI~g)QG>5zN}zk01EH*d%fkcb z4J!O)04m`ZLf2Xdub#+f1L4cV1}nT+Pz#_cBbl@lcVv97R2vHFlKq_+dVw&NdDyy( zb>a$eseo?YbwTd=_QB^BJB_o*b|LNXZCw7BhJI8QN8JgHxUVu|l$|t;f@CdP9wrc? z_RO@Di0f#Q7V$oDBkcdOI1JvtQv$A+8tCG$C7WW1C3tEcn~w}Wg0B9a(TRgpKDS&< z*oLpi3zu{W3d^NC`Ve^8I?+Z`(LtX#gja7cxj&&chhH`Xw7>1O!R`m3tJ+FNW+HbW zIz1VC)n`FEy_BRu6=}>r>@meX%IDgPHk%=R#9saM6=s!&fG^K50!@!$GNAh(z2RTB zZ#GjRi~yGg=>Dngk~%h#o(RLOm|SG2mSZ>Wl(d{OW*$zIi2L@0ltY61;dopgEnLz! z!ZV;t>`v21Ir{Uz&M1g!G1r-4`nMSrxL#VI>#6|}n>>w!fXL3$tN|^Ac%CKOk-#ji zo`p87U|n*|+<_~WlPOertDl*Y#s?w#JG5=neyn4$H1Ji2jJ2HUGXGG&Jppm z9gKfN{Xty>naH>9A2RT>jZywkTVO=JQ>Cc!7#i;M-7KTrA4EA8jCX^S5}{*mqt8I6 zT|Y!`*8{lpK$lW%HlnEN=9#CUI)+b@$I`Df995g=i&_ z>PaRt9Evsu*Tq8Hu_pst=jgTPXW+h&0qANVJ%5IQW!-6;7f}2(DMB_>6raGSli`S# z``r!2CG>R7jzyp_>QN^?BXpVnq)bhLY(7%AzDr7t6Y~t=E6>vK_=&_Y$PYxd z6a55bZ$GBDBg?UKxEi_0{dbwl^#^314-sN8XKrWP^FE5h+q(tudBy^CuchdoH$I;Q zuvS@<5&xH*a%_U!icjTh0;N{InV(cPaZdIifmZ!Iq1#$XXz7!uNfT|m`Ly++$I#AR zF&T#B2;i~;-IKY72`r&|@=}htKb2*R;`$>rMRU5nWJfwQmd^RN)(aR!gWBj815XlZ zr(KSM3LRB_zg<)XX!poQ&%V<~16?+t+oWwvW#8|{o&Ao?%GUpjw^tn*BIsZl)g^CT zetE^#zcoyBzRuF3plb8MF3ed;s-5+!0mnl%MdaR$$;Dv|7Emuc(EXJ*IB`INY%EFX zPc7G|xF`S{GvnFNdT_ha&@{*T4g(o}<=3O<5b1K9yF5e*L4@QpVlb4dY|YCFY1Z8k ziVwi$0J=Su@!|+3A7tT5tAeYj^$3Q?scZ;JGts$dBtuU_k5d%>Ee^weWAnOvY4VOO zZ`-^SUL7c27%^k%qCASEb^-2>If1T;AGRRbYWYVSgaiw*l~ZZY^7f;@1ul`r7Dg|-cb5fh74(Oq#2Hn3R;f~9v+CDWjNvZy*q+e-SXzm$w` z8T^z#dkJVD;%$!-QWT{Oy++ z>qi9O_u{#M?i6jw{?U(GdJG-X=kE)-F?#(t_oB2TGHwiumMKg`sNA1gS59543EcJI zoN9jI3(>~*vcTJFZMS|t;6v9>69x2_2k5fWEKUr@@F0`)Kpswsv3?71=tHTGW0WWK zvGa;-IEuwah?^0DKl*(U+H#P+POdV63hHoOW7o&9fuC143VwT+2fi-AzkB=E3y_cP zCyMUcS_h}@xPo> z@$P*8f~Dv>3g2eQV3!YAFDjYhDyHySz^uq-GV>D$Z^FzkZ5a>ii^AWqTB9-OOS{bl zj(QqfXjp<<+cX>g??p2?Dy_)3#=|2XHD|xO;Q(Cl@9+L^y-AW4%g~gJ|4?SxBEsR! z6L?2b_=h=c9!DW21Y5%E{AQ_HBTT&uu8ETeI|wkOzhT75`4aq^w3JH4GNUj`%LBLq zzDW8Do{|}Rwo&41C(C#f`!AWsFTvPn z9u}%Km6E55YM8|Le2+!|R}knLeGZSaB1msc`iT-#mwo_?`>Su{dgP~my#-I{AFlaH z7ooi`B?d8m*m?txdL(~iRR8elQNwIPGmdTyM%CT`?`J|l_qbBKP4Z*L2lZTQZ9Gk( zk|Yxv11664%k$2Ln2LC$T?NhyS&s72E~q+-8+*Ahj2AeP=OFEnm(QfZIP%mLsepQg zfo`AUt*PR-zZ88h|6%;PS;zc!^C-t;IU1Sr^b9dbv(aZe+!&xmrb|rxxtgh&F^zNi z@@N6(E>?fL7tXLRo)914iU3_|vvG?`rcU0da3|`t)#Ayb_B2SHf@c`QKuSmRV9x0T zB;IIs&&$(E$=YyO_~!CinB8@Db=*`-|jKQfDFR(&atE^244p zxODeNo%xoXJ{t#{|Mi|8x&3sGZ*(Nu^l|^tKviIapyl&~JJ|ybKZ9HPT=HZ!pk7g+ z+o5hnik8`vG5Pq3M5vdXPkPda(t4H*eTbAOM38)2vr*GUm8#|1>*lw#OEw(HgMBy} zCA3H{qO#fHKmG}+27oIDbR(;C)s*?RUD4!m=oTwJ1zEVYDU4xgs(e6%-HIM2&LSJq z#Lt{MC!561=fF&M817Q02Ng6P&@JWW&~>+(Isx2IKsPT*U_Wit!L-t+j~q)IyAnc@ zk{PYh2m9w?nCA1eqf7vCcy6wc9x)At1EJ`Q5x!oOM{m!=WFshoAnUw;-squA!D_M#5bI3doLBB&cxSTq6SgL4OZD_7Pp)MeQ* z-$Z{X+9+8SP;~?9l>oXM!QRBYLo?3sj##C;9%Alo6Ij=}dcj(iXm0$LYjhqM+ zXmpc<-_1gq-45B#ye*BG2V^Q0e~4^6>EW^g+_&G?1_!864EA{U_lIVB?%Cpv>$Ga` z)(AgmKE>ueue5F2#APr0E-t9dxM}oEy50;tOaDLXoDQHrlcZ9hkiyAPN9DJ7gy8#` z6wob7wj8UFCk&2yQYnUm@{;7)ww6#{NtQL#US(U6E^E;{$F9gm%_9`@4qsPvP$=s} zuSrWsn`hV05y@s*a3 zX5=Yp9!A2Ig`<#pR{6l=!A7!&=;;EnD+`mka%Og{&`OCGMRgK6$N?7=fhR=(s8<%~ z>TBV2T~Z(7S8C5n|2!&hEc|uxUx))X=}h*RehG(D0o$$qR`u=^d3sPTKce*mWMF=v zWS2^rNhj;K#gJ`xaeylabd|GL8K@3Y#Iw0hC7V=Wjpj$95q4?~L}!XD%J(!)qEerA z8Z#N%j6-Vd^zQ$-Rjc1YD0_Ww$3${2Ud7wvdV5C*K5p_rH)xJCq%>>HH&&Y7(IMgl z&M4Hff_dXac9)rU=Hc9Uzr^LSyPKs=f`@6D}F9BQy zpv%{+ZD2z9P%m2S_kfUG-m)sLp5*&T%&G6<7I9{H@Zz_D`;7q}S4#=%+v*Le<3AdW z0Ru8V4RMaSKiobmvUC&+pnz$w1k0x=n zmL*4wv+3+{6>5SPvBpgIb=AEu=R2oBzAcQl)wBS(NN8*;J_Fr& zZ|@|w1KIhHW;YDs-_LeDEABKh|H|`Xk{4qvmz`eeyvNT}-=gDgy6_OUAZTDT++-!F z9Y~?+I;bA-KXHKr)T<11RsTIMrlpmYanVsU#J;Qgc=&hB8K1aHv zBItdUs}1hqxX4CG*i>l?C6lhxlCr)2hrRcJs$z-uyom~kpooA72nqs{gGi2|poo%@ zBsu4(X`jt$FiKFMhYG z_pbVP_3rAb>ORMNc-#ZW#%B7MHIy6}kALJ~&%VmPw1*s{tBuuN7|e-{V0d35``-2^ z`Ix|OGa=b{il5y2Yx@f%I4{_&uElGtZT_wo8-`yfD+}D!)HW#^cevjFf%VZ_X7kFi z=rh=@{;Px4W%Rcgnfsp3qLp~=gxv_aNRc%^`;N7Ez9ILsq}h%>^LJEgMW@Ydi*sBj z$5@?eX(vSVI&*Rk)&^<6@RKAZ3&H5>Vs#s>9dk~nFvmTzjMgtB9^DL5eEyM?TJoZo z$Gg^{Nt#*yPKU>DQ&(R8w&O1CU=G!~z8-mArhDu~sYS=dxTh777+pQA?g??HAR_f= z$4Jv(<;@xzIX$mA_$5NXzct~-NK!Px>5s1qr1f|g498ks4wG#5QVQrTf457}BJ#iU zQmNE1q*w@}tB=(U{c0Zn%_X}!@LhSrg^u8wB2tE9Ye&29?;C2fTjgbH;3bK>z#}MI z_q1r-OmV$dR$-X>oGiP(=IL-%^TIpT*zc{J$Lc;=o1M#>x@@vJP8j+r;YJzl>U@n} zgZb)Wm0pittLVHa(M?|E)S!^-T52~f3TIb(j`a7T7N}kPVc~UmzNPEC+ok<89s}ZIK7-+OMVmXy z<15R{C<@0F3E42ZhFIONwS68-t%eSX&u=e!O#ar|cANi0hi<^5_{PiCsYhqIVhnkv zO_TL>WNGak2zFT>kc~3EV_&0Q!K+Zs@$}gHHyB+btgf~}HiOXAv+mBh@{IBUm5GoF z>ISltoPjTR#;s>>%8sTL*pJrpoowNpxX`Xxr@;F;K~kBfe6%<6uq?xc_8V-P5tQ>vL0UuU>?}0n zDwXc-lp9CHHayJNvG0vcu)2J)Yev6q+sEIJ<;;A4To$!o)57_6x`C`|nrYwT$7H-mae0H>$aNQcYRD#4bwTpkf?qG_QGa14-RWtDl)v^TqT=x~xvxW{;V$aQng z%Rll0dtV#PW@r8Gm{p6bz{J-Kt7|`@^jvynU+Q^J|L@y+_k7h5>1C6vX(D)55C1#j z&u+h4Tedg01{~CxHg_TqJ{lr-Ia_OJiq=Zj`UlOua!H>(7+rI$F1^D=)7W)mQbLx| zVDT*B&)S7@7j9VGweA-+TQx0EbL>==?bojonl)-TpLY7dQe$C~#PP?JDcgI`HaNr% zd7HlC_=x&6+|?@~Npb;3wFF}jvmUB??svmRV>w_11?m9JB6Jf*q0H}k1; z7!RY7wV0e@>ervcrPGhP4UKeK4a8O^y1o*e--tI4=vnMIEjw}hh2R)Q*9xoqgn7}Q z@_gZ$;I5DTf=Q=;j;yuCnkn<%T2$_Kh+JdnOs5=E;3&Mtc6dH%p5|-ebk_9imQlsG zg+Cv5YhS;5w;rQwjn%C(qa>NCFw&Furnr+s*~#I5hUM_EXVTt2$|Kw-Dp$`$lVn~# zce|y$uZ*}@E_UwMpy=1R&*i$#)~Ef$=%u zb#-W~j-2SqOz)x!jdeDZzp5>v`1myy`_p~?`g^@THR*p}xqFl0RcPhJns8TjFI&d2 zf&WCq8M_L*d&Nv-A=FbCT|2BU>*SFKJ@1&U-^a8`P<`l7Qekrb7E22=BV9vV=vXVA zi_)~pdU`-xs1)Pb%X49#d;4k#Yce}~CmuTJhF;U<$LQK)bvrq-#;vRmXYHCLvlcN8 z((~Q7Z{Mx*yn#oaK5A!d0wdk=xVf13(g_0NB&E^Bv(}u^lhjo;So+;yW@d^&xAM(_wo4#)Kx&rxej}a9uqhQ`f zRt>>V*9qib@ykLyWT131ysm99uwQ@wzj$>bH*WJ1=ZM<2dn!QI~YNT{^ zf0P?g}#p;%;sy55Z zJ>?VE`5{YQXzQKHwO|l(%_H4KyzbEB+(Qw+d-onnmg5(e@^dRU?#vx%J=AgUU5YZ1$9JX$YNFD7hpNmP2X@fL zNHmR;CEG9+C)(X$B;Nk?sG4#9^gz{k_DivO_s+ey>2k;W8^yUtrayCxqwm6R-NznS z-P${Z5v3R86t&rN8ed#+XL5bBQTd5_&kyT;--+ZUH)+>Gu6!_aH@BM)v5|PI`)R@| zanDZ`Ca3hPpIdwkipZ{GbUm@U92w+783YU(XXUJq7^n0&cBpOJA=Gu2jK7;hFkPx9g}hl02`B{MNrCGWj_>vA)@vL0NuX^6DA=heK=LzeK1_Pn^g(y~a*~ zzDv9n2XCw{q3+^{qPO3h*}2$0I|2F3lOO!F-YuuLm59z~_`ExKi2LSarDX97>~paR z{n_7B&uR*nc#Py2>YJa2dkU>COSCbfl|tD`F%{TijilC6YPAn+q}=y zXz#I#r`#*gZ+q%y|JnG?AIv@9qT1iq*}M{wN^|KC;{4dtwyVwu+s`gyb<@I2ev3N# z#;iYi9Nu93SbdUn&PVO)kHL-302389wG*#bOU|A)(!QJZ`OESysW_qgO$rk=-14hN zCq0Q8=6kU3jV@tzIqQ5!Y0ZhGkBSNjw&>Ky25xLW$RlAxK z-iqf(A^9E>8TdbJxdm2?C_Uy$EhQz6!mf9GvAR(_2~0w!iA3@MQ%o{PI^n-#|wukCe?DLNmF_W(^QVG)Mwv1X23!k;}&8#XK*2 zObiKj5Gw>mohXvCow@vdzf50+{47bJgZifvCm-ZK(0zNv%dN$_nYPs`K1XV|+dJcI z!Ac)nPs5>WG=-%YU4N|ZX!y-@3wwl2>cdCmGw#px#9c2@U%0|H zZ%aP?!j*P+N0jc@hw5%9_WLk_ zSY7c2?gMtGW-8dMU777at2`9yIaI2hx-1p<)aL2&-4Cg_o)}jqb*QTrE-(lt$%W+H z-Wlg;_eSdVZyv*oKbPXDG3^b)>aN#xm)er3(GgBEl3cVhad>9^$opGnZ|rjo8N>Kx zKhB;R5+X~pGY(U|ZtsuR2>N!HZUmRA5ZRr+RK?w?CWn1~3&!e>UwP$o#=h32w=nX+ z(eemS9m_ZQxAT}u=C2PO&+@$yaFm56LaB#L?2e|-%*YqV*^}%AcV1dkQVS(3`aVkH zF~zhu1gpFIWsCJ^g17TgJon}{9ov3US!C4b_a9Zbp|*SXj;8KTg~RgUPIQm(AI zrtg*;P2s5Q2*ui*G+ym?C0~LSlx-Yp{w3Wd)_A!Jk6zIY!jEyIe){}cZF$6 z!cwB@$WflXS``TvM+esr?MaZnOrYUqKF8W>Lvvn;ejB4F+3#KbnD&NYb@z_463}gQ zGzF)Z@-KZjP|Z_v>d4O&Ci|evVH@8)U1dr=LY}{>xh-;8OFV%mEdtIOng zH)ry#7Hiz>b8Wv|@=%|PG?A4AS5|}uW~FAfUAc5Veb>r*>!pHCp7qv?2Dhs#8)sfd zGsP>A$dNo`Flc{{(T&9Ft}pMoLe{30B@jyljscCUMYtPT;g;WgO#D zQ2r)nL1X57Ki_n6d^g9+jojB!!G^{T7nCKB(OU(bhD7}TpHY+AD=wHMCagdF6f>1^XvDOr|*8mvi1&ttnVJz zj3PMiz1Nh6)%yJTte9sQ-59K{Wqb1|qb#?tDCx4{d^(@fHNv`|eG!B5WP=omLr1n* z3yxGhu}$l_6u~vy*Ka55w0|i-@{wge!zpEIlg~GDu=8dtR`+$~wcQ-PvYUBB8efVS zeW(wVsK{}!{_?NY@4d5&_TkT=s%=bbeRUSr3(<-nd=j#6R$P(^Dk>ppp8vS8U?=E` zX>S}>_wbc0PIaOTuFu{6uRh@lyjag55nO38 z<`rvZ5Ez-M0dh+c^e*DX*Wigp5()RkMs&wmsBP3zLd^bUppsR zkv_w$?o*jIdYhic_bWX*E7>X}2F}H%hd$L`dF1!g=)t&+rC(v6Ek`a>+v(pcKfI@8 zn`1F?NWkjuq~)P5CVwtK>dYoyHQkcy*>IWTq0XaAHJq*uPqN2^p9#Ddn6E#T*HEhVKv?W#ArK9r6Q%idU^; z)U8a~&s1S_uVHl)4Vg+ViHjfcT{`UPtwO@BU$@zQYwQdKsbxo5K*IVPmh+;OJn_06 z(gw*RCMQfKY+lp;zQ0a=SND`vfXX%@?D{tet6P_o%5(e&w|rMH?M=q&s>Kp} z_Z81g&B?w^$~5Fn?-)O3NDz6jNNpj%&XcbA)f+a$=1ddaOez}v=*2VoP{!PW|K4WC2Fg3}(c<&t_T{Y1o zI*l_GOdm9hdn=z!+{zX@`&+>3jK127F$zx$4?a`&6_$d0t5BC!zjEnQDUpQ%o7np} z4Xazxdepg<>U(2Ab45*!y1a;kJnN&H5Vt6vpC9(x>{V2Vw;8?ZZJ_^yYA9jHN_^~d zYToJnT89N6m=!$VzovQyyM9Q=>Nc%}Tsykpn_qM&+g7I8()DMMwWEMw%dN5aBj+w3 zRVh?#ln)@^Af8y{ciTtCO%<4N(J5@bIZmg_ZER0}v2fH-|2<8u zVM1}N>cp9l^A`ujBa6J9BsX7oVstaHx`%r9n5EqKdNG}uR(#V(;~ zsECPh<*IX^rlmThGwnS~c6uAE@V`E{sh@s~!Qtb*vPj0y2WRy$x;L=8v;qa8ysu?` z-0V|jD>;6nY5#qxpUR(Jn0LCY_^J zYM~0mD)*C>QetyH&{pt^*ll!uXIZpu!sy<_>N<|DFB4u+2)Yxyv-iu9w)2cd z6xcPzr^b_P#?NkhM)#rG>8bNwGPd}sl^+gGYGfA=yTpd`ONjgsJoUN`qnnM@9Xk|% zT`Pc`mAz}2^Eg+uQngs?ZEJ&x0|FkO&!iD(iK{!^pAYQlD(v&PK)F8ZBhekC^HrKi zyCdZbmC!xsV?G$&9IS5L?-}zt>*zPdZOgluddj$uybl$*`Sp9G*(33q_hKOfqy2nK z2aVL%l=aG9yiu^Qi9Yt*ky58f;D*A)xyq*9M=-j%SY6RL<&Wtu?>$QuyVwaoU5PdL zJ;wCtu%0@t=$n{N5|cU3s~JP7KFovaDN&cwgMC(CiwvHA{DPf9L9j?Sq4y>Be#^t^ zE{yt{G+9el9GaQ&T~Lup_gUX{pZ+fCTlRgzZM!#e)iCd$e|9!}IDS1kLp6fqdy4SaCa+II+f`DO(lQ5) zJ!>?z$w(fFGi7+46V_=IG8+EQDE=x`&XUhzpL(uj5>A%{(tND$M@Hg+plpGM?+7K{ zg<2&P+;wU`(EH_npbzbuP2Bj&A5s+~LYmy^Vupjq&vw3T-=}``-WO+;fSJ>m^hiWT zr?2;)xPZ|u#_Gl$AOfhgnUqh0judA4Ek;ghaCS|oc^-!?P9 z&AlQ+oO;nj>A{qfY!=gWwkX-P<(OSu7~K-AE?29`-czgFV*{x_gj^H#;f}eJ+v#nb zUnO-@+m)p-gqV4_aCpy5>RF!GdX<~q&yG6|zMd)Cr#WXC3QCcsedtn8nQSeI@HXs#UJpzx<}!%QW+FzFCruZ**SI?Uwt6`X+)} z1jgT_EpnR_hcLQjSY2wuTSr}NuLp)d*;uvn6Vt_UV2YE4bRZAAekjN4rdgaxP#^tT)N^we+hbA(GPzIB zO%D!mJ};a-Mw5Q!jgVF)3opHFG27w+)f-n|7+6|SyPa;+oZe|c#&BfZpQ{hk-U_U) z?VkPAI!g}xKXnhY^pO1M&8IrLwo$HzVnM-dZ7vXA-VpT6#EcY9X6BPoMx?@1>g z;VKz3ftTM}6jfQD&R{=hxQ*4Vt`#7D;Ue!cP<*B^PGXz9FBR*M8q09`DWAgI_S^h! zEqjV|Dc^SvEzcjPN?A93v-{`6v<2p+k|*C9nHo1#9Wd>^gVlA2%=y4&_t~zj_UcQz z0=2X~8nm{JFsgmd^j8sDezhzuo1d0@eCm9%G2wMlor?myNQ~;l7SzwOM<<)V8E?b( zhf1vOUj7Nao3$btUMJ5|nv_cC4pXWzi|w#F(#7njtk1uycH8uvJxA82Rf6ALf}eZm z_txtOQ|cXkE~QOXDR@>vI3LsAyI9?<7X;5FgI;Rx;8k|ajC}E=vQl`+C0tQ#&XZ4j zmB~46(8kZPk7nM|qGV5zh?suX{J{WWqsZllY1c9jj6^VC*Jt;zx*u2O1&S}r47}XX zjC*}L&sUeV(N#MqZRK@=pw`ecoA-WUJd0kWPj}Ifu$7zaTi?dkIZ7zvPNL>yuV22i zKCT4Q-YTpvNpGh9!;#)8YP%XsV`b|;n1NT1cZgrgTQyi8E^b-0Cw!pVE>IhAHtGd& zRXS0XdEst?@ZuBn=kEAK*{lp;-=9@ub@SV_9!2kYJ(fi4&>~sNEYacCOPYU;tnSP^ z#$|#>0ZYL|hYALyaX$|k2 zZ_Jm_kcL$4a5}bwx`@g?LF`PyP5-YiA2DZ(^AlW|rlIlCoFAK3J3Q%yX>Scych9w! z3-`;4x=+QJ7)E6Nn3X#uG5zVtZB=1w%2Co2o@T#W4bGnTqO5#3B`#QYElzFs2lI7r zmF7toi-;FZVdO;^-CC@!kwYTo+W}3k`Ev~dX(fHs4+S;$SJ9AhI8H~@Cdq_d65Q#L zs&kCJPk1HncN_KOyBF3&xvBggUDnq&Bmd0W zs`GBi%PW1X*6BJbgUoc>GiO^H_k@*EhWR~AAR?TnVfK;S(P82*N5Q@Jv*F5p=W32y z7~RKM-Dk=+%bhB}c0~7ozV?}X$c{`}j^Uzc@6ddHl$aUakwdK$G*=1@-(Lxezh-?n zgMoUk|`WClII?_@2XBden&H$gy=ch9gJ=>R<|pwP$BH-@?BENk0yE{*CK?Xl&TH8 zs6M^8FLUT?Q=#)@DY0-f`Mu;W`U7;T*OhI}Ro{IbDbexLlXZjv}9dDDSX9b_GW!1jW zxjW^yKm7=W7LzPSw-u`^#(ultCYA3*<()em43YOTfAX>=k>|eNCc&EVTf68iJ&*5+ zFQqliTKiPRJI&+sGIRyWE9~2w)g zlRIxw_`3h%4pSNE_SE7MpZ=}>#G6n-XPjEQ#fZycyC6ol9jmK;-S_22)VZs#YGxa! zvYEU)L=Jx%YcA?mKec#>>=zpiP2nZ-EZJ-AH>t^fwh4z=>=-bPD7nO~$xyu`;4`o1 zBu2Lbt4qOqQ);)??^O3=8Pz?n#x79NkkR;_<`U_bw0cExD|J^ZgX!6RyLk;Qu;x$QW7GS;)oB0!(r2_6Rq~OgMN)dc^)Se*(WgVeU8;l)#eqfPTr~X z>O<5>#o6w$x`LaW@2f>NY$&EP(zsO0V~_kg-*zLVFQCy;?#26;@`Tyr>?hA_-HWRz zr5KocON7zw!s@=vlbcgtx<#9m6WA6vq8xDedF~lm=l=KZQoB?wIU;|Y?^N@qIXT<{%-hTl3>-(xzx`7)u%J* z!cV(gK0|!VO-SQKi!GH0;ivDE*PV^Jy2d4XhUHfqPKim#iH*jceUpy8FS@b1lR}nt zF$Il=>GI|7%h3^}@6Recv)!ZK+30YpQ+UGErc3dHqy9n)Rfe6(bK z(PTDYpQ}cSEG6~XuT=wV0-kk7wwl3_LweMq7gG76L7b9dYaa(qpx40{_*xvE3+>|pK7I8Yz~u^1(`0j*bQK=TQ633 zdTLlhZy|-4G|RN1^vnEXNk%+{;_X} zCx(~*%Hc|{9ItJOWZ3z*535@!{lFb{pW}M*347i8 zvASkiZCc!$x7rVIW!R(yj(=gS2|H9L!IR6deBIW8mw~x7_$W;u@%VkIPaW4@J$$); z=4DO9cNs4egWIQve~%Yp=b_hF-7N9hfG5f{M^1UU-kAt~sn0p>`ruUN3oB1!ZlV~i z#v@Pn=?P&6t z4xWGXeopj>z)v$@x>P4A)71B7AC_b$CF7bTavj_=j_C&LQ!~*)-UkFfXvuVO4-q2)6c|ChM4xg#p;&kDO9Vagz)W4U&HLiS_iOtlv*bt}*1%bGl(fiCd-x=oqJYLCZ~T47 zQ(1*_a^)D^cUaxu1HaDlzIvAbu!Bb3aeVKWQQteyc!oaQS|q6T9urhqZ<42Axsbgx z$3Il7<#(6ePGcU6GhB5+B6akq6ujE@(_nOmu)5M5@`_z_z7BO7!;X|1dYhm2UW$n! ziu9rO+M79Iae%TY^g|`lH|od(oMKwCKi(y}-VS}nsBQOSIy~}J)WuBf^V=|1S0 zzjmh5fn4^>WV8ULy(3uNAIiMN7SAhtZfzb@j7Xo)3iJw#m}An4y0HBtxmH^Wxg1PG z_9rRs%_~Y&YSicSWxnHXS*g3HlgaUxO}=~oHjM5lR+shn(+^Z~%3~KDsm(L^AKkxd zV8N=Z!Y008tikw!XZz^E4w0xmB-YvucQ=DMf0cx*Uz_8)X{IReZx~HVSY*P6(H+C; zUcX?cJbrt)`~Fos`&@|!b(U%B+FCW1OT7=@Cd@^h%S-QQsukdzMs8F zLW_zVr`8vqnE2=Q5{?+%ajfo&P-$mctC(O^v8}1GB+*ii_nikkq(Q;*+uLP(x>C=E zRIjd7&%HW*=8Uq-cN&&z&gq(EL;unzRWa3)slh4Of1fph)om$if2tvOKx>k>h)A}{ zo(pE6YTD+#(k0u(gg<5&J6>}AX8gpkgr6v8^yh->9sg~wPFlYt9j}z@G`{}%?Cu#% zd*5SqpA++hb3Xgj{j=kj{^R-=_V-#XCX-EG3uyJM+LTz8d+y!N?9Iq#Io(=8|CHJP z>~fHV3@b&wR3eF!C~w<2l@*Nc2dr*G%5>M-^B=0A6LLQ)&TG9B(GfDu`~8{tAp5Nm zh4KCgiK_=QlcKXLd?dXxc=<`x*2S!j`0`igt~*t~d!d|&eZMn_)qPLkpH(3h@NuuM zQq;_Talh&{(aFi!#KQvB{oa%FGxZO55B7C*ENI{4@#|o=;HiPPiTTI44v{{tB9SG(n^#|JQC}8#SXI8i zY0)>L!tO2KczBBD)93Ay4<`nUo?zlIjn$p+Kg{x=kv+88NBc+t@6^gnv~thB12Uhf zTp08;%U7dL_0ArTmX@{+;c;GCmrkfNuFGu?7aqIv;Kpgr1!a$TjP6IQ?$fz83HocM z7E)n9X-RMN6d&pRT}W_i!n5!G(71*Jspk9RBi7FFMcX-T{AMy3#8R zYHr@QLd|z$bU$Hr#a_GL)tY?9xJYY7+iJ}gIPag-$Su#@Q4*||Tzx*IH@QTlw&`qt zyD#_j&DE$AZQ(4llO=i99HJKP1&6C|?7`^HV0En&5)4^fxK{%AyDT58Gg9fBJgD6I z*l4G1BJ;!ocR}ErK>>QAlSZ3?6Cz>BqE`d%R&WoPQay555(rh4`+3Pl;rV8EhUnN+3b_R3v$VJM65o-p4yLNi3tw=9jm-b#E86d1|{$X_}xiV}IXt$yZy^ z7K*|l6|u_I`XHC)G~r)1N$xI)<0qIw=Y=TkF5>zl9zk^y%*xBPmNvR zWVjO_eR0g1sA;h)AiMtct|OWcOoHysac}eCb?<({UPD`@P^k5D%-d~cRP*9^7?#(cFE-Z_ z%j$l((qun$W?P z<Z*g|$@i_?7-G|62nD6Gmz&JgY%EC_3hpE(-tQ9G zV~>f$3RX96h(X6ldwIk3gBwqL#kZ6^VrHLWv8Ce$0pG=MGtcg`xOK55oK-23#WFTH%BC1@3e0=T^DfGsE1guJ{xZ!|-`8Q7_I}0c4$~JrEHn0K z>j~ar=x*aAnqgjHuqXY*Pd{6t?_nR42|wDjmuiuos$*Qm_^O0Dwk(wyUgt4TS9xhsA=V?*y`pD6rY+LU$S}^ zCY>X6S5RM7!}`MNGj9GqgG#|cmqk15`?K#@U9ZFYBJWO+Nhuz2-es@6+G^lZ8Tee3uBO8N-}zU1qB_xX`D z=8CL zd~$Q`lb>&01P9BP$_cvCz)^^A?k77hdUDd$pMc|9HTVIrXgBkn6?`vC}n68Rn z{=S{XG*)3q~W7>)Z5n zv|q6dUHw@|_KxG3cvn!EQFri1g=V^P!a&zw=d;u6vL`Q4+XTd(_Q)@3n~6R;*A<2R zp5q2qH*bV4%d;VHyJc`Bi_GUlrop57)Uww zmzm8e^oQ2NE9clNug`wgifnsSrakl3SEw$B!ry*>Hygq4Doh**(90g&MiTDZe&w5E z;H&aS`9*`G`e_v_jr&>mC_e79rpyVQK{^^_NPXeJ}o>nXLGkucp-eF zTt`BW^<5}Wkl8o4Pt!4OWrgr>3vV~pb3b8vd0XFlMjLmX{!b^U$yUzZcGi~&2>gi& z2q*{$g8!vslHiP6>AzG4Z~M<10n`sXtem{9+zANyU=jaM{op_E8UEWXM=|j7va>`b z>#6^1#^B$M621gJ0{{L9pm_s<-XG#Od<5_jz(?SJCIZ+wIh2QhVCO%qPyc7M@MZq* zivYU5PIgXKsAU$8cKr4p|9fpjdOo&x7PgT3i4YL%_%GOBPz>H3BOrifeDJ>(Q&cVp z$}vE>OYp(;f&YTBf)L<0d<5_jz(?T!x(J~0dFy?|zjy6}>Mp7M^$z0~F8z-_L39jr zPZu+!E1>>gbFTf5jwxR6|D6b+`@_up&+S35-++K%4}N|1pZ4OSYiaMncgf7jk>CVe zQY!ql{7-u=@eTja83A+;y4yLqn_0uU!_N7C`(43*&M5r9(Q0%pw?1#Y3!gdS-|PLq zab59e@vleV&zjJ}#oZZ-Nx+xL$^Q$kBTx+fBj5S{>k-F$@e%lsivaoz8@?MufYPlE z<>7hY|7Y9s{hv(HanZj^g7^IR?SCNxXdHSE|4JQ=!T;LlB>%J0NN;O>$}jNO3iXf8 z%EQIc+lt_F;{X0TvOi;|gQcB2{14xzul@VJqlEek3xK{0`M5A5@X>)^B8N?W2Q`q5`nJ#+4z4JR$rC z`QG4c==VA3kps2?oDJ36{>MT<@D^;S{5Al7*Z$A;4p$D9aR4VOKZLWP-}!Jv6<`|% z8Z0RM;%wBAkHqOsfemGM0kM!l$NC61)V|$-Ca&Bpt}gnG8!fP*W6j}g@LQ?``vJ7g z<7~8$XGI3s7I3z`kU#jxLO}2tXQP9CE}ZQP&PEUW{csG__C>IvCNKckAcNYzjI-^7 zd=k#KimS^Awq#TRwy$7A=YiUG6>R7nf8fe7L0%hd=p29IY|M~X!PQ;E+0bvaaN%sf zaJBwvZmNRiAz;05GSe2@XT4*~N4iVq>q#t!*o z0NRMa27d$`Kq_R=IikA-*$x9~INLTzksc>-7CB+tjPO$k67EzTwa`OAMS5JQ|z6!r^ob?I=nqhKq=+30aL zF|c{!Z0P#I-=DZE<7|w$a^he=0XEd8{WzNhCbkSg=koFQ0mW9#uUl~_H;!pd~y@bX^G_Ij>=NcH2fMg&ANCm6` z8^9K@1MC3@zzJ{xbOAj;A2<&f0EU1OU<{Z57XVYh4A?}?gp>#%0Z0KdfE=Izb^w$B z6+jK_255jiz+Qk3K;t+Aun%Aam;hz~jnimcMB^|TchT4v1NK;88IHRGtO8$wZ@_op z2k;X}gfj8K6(9kK1H1tr;39Ad@CEz;e;^PD0U`i*zyt6EynthX2p|S%0YZQ{zycfq zbN~rJ65s_4;rK>?F<=5*089aMzyh!YtN?4k2CxO}0DAz?)gvM<&{-W^~%^_%N(Y09k+^5CFIUZh!|M0j+Joc7O~Z2hjY<3_e=m&k7Jy zw0;@^MuBkvt##1+iPkM>JV)aq8eh@4hvuI|u)l*qzOJPKpW5jbOAj;A2<)BLzz^d9NL-%=|SKS zzz!S+H~}tz6?hEP1GRu1U=KI|j(`*347dQUfE(ZrcmQaQRR9Lyc#41$kO*7@l7JK- z6-Wm%fa^dea09prWCMA?Edb5Kkw6sS3ZV6y5u_QAR=_#jgp>#11^57dKmfQ4Q~`xR z5rF3D0w5be^RpMA1RMv@+}sSBEkFrS3X}nbKoJlN!~rJ21watW3jxA_2p|d^1ug;p zfH$BDv_jdZKpXH3cmy;6kAZUFHgE^H3)};$fNDSj>WTr!fJ`6&2m*ouAK)}_3b+9{ z!~IAIr~!O{1H{A!pah-IKqKT^fu}${a0`e9kWUNJe&8CA1Y7|U0JOH%22dFWNYVOo z9`YK%YuJASY?V!fdks$7e-I8#=BqAOwg2M*(Tz7$62n08)S?AdcHdHsqH9fF589p#2MgF<=N70p|g9FY4p+$cB8VEMhBf z4S6fT9A~$L)B>;rYyl_05pV$P0n`RJ0G$_Vw=1w8@B>ggQD5)@E&-@-T?EkeLf6O_ z*y>|}kPiU1`VQ)gs0`Bjr+f_fB5?k#j;py8mtgs4cMo zDxU|W0C7Mva1BTVkj7OY0k{GP0r5Z*pai4?X+SEF3*-Pdfh^!UkOABPGI9IaI2$@| zq+JN`0R;fMhWP+$&mG`4Pz)3StUwu10+a$3Ksm6bgX*9>Htzp@EVg2d&JmqAiuEdh z;;;fN1B*ZvfZBqtFVctrP#e)PJ^>$rDPR)#0K5k#fN@|97y+t*8sI+g0C)%t0B?X+ z;4x4OGyso)dY}#m+J6Ex0!=_O&;q;$dVntAIq(#C2DAa~KnKtXya2j^KHw$L3!u8M zfPUZ|@D>;ZhJayU6hPM$^~e+@^QddV5>iET}#w&QQXmf3=jceuQ9qt|C)cxhw7lZNP~j#ufE3%c|m|2_R(=J z0>qFf1AasP7l7(-hy85;DL?|CGK2t{m^UC<2Q~pB*hlBg1W-bL2ac_C*$H;+`JleF zbuPQ0EH!}IwAE%*9{Eun)NXVyZ~4%x!+0sWE*jR1Z(eY3_w(6l{ zZnf*bw{0B{)kQJd^3y{eJ%?=VZ`I#AU+g(;`L^P~3|jl3?jZm@H?RR{t%mMDCP{yQaCx-eL+6Tc16%+NU~3Iu34XN3zXRL`&>F7{C{3)leGfH}Yl-JCs+26s>2^0vdo8pbO{#`hXsA9>6}An!rBNy#Sa2 zmVgCd1t6O)kI1nvXXKo#%+K=;R%KGHzt zw~pHe`7Iwh_SSJ9L!K4tq2r?CAl(K4wG~~Xtz$ib{dV9e*j_-|1t9G$&8>E$`h5Uu z?>k6Q46toL=Q;?W^61>&0_Z$Y9aMhHkM<2g1D(?d&i8L=jYGMA(z*pcVj>vd0YYFM z_J0FEfgivp-~)i}(+NmF0@J`0FbS*zE5I_a1S|q~flA;D@EKSD=7Bk27C>5Pn}Iyi z{0e*rz5&00HNXo%4}zPJZUEx2y9+>?TY9LCNDpb);+{j_q8FyHQAisKiy3=~!)KOa z|KGcHp}#+~^z`6!cCoY~2-g?0-rYWGLPlsJ&Mzd$FZAbWV+Y(|!+Tst%p_edfk&8M zkRK*f7NiTFY>r@Fo(L;*@QCn>^NalTREFyCcD|mkc)3TJh|olcUq}KfS-N;yIeWvs zd)Me%kl*Xi$Rh@FA_P_!UEQrbJP7zswJE#tyRd*qlwar=v;YLr+!icStXj9oH9JH^ z3jVkGB~*IRZywd&-9tD^q{fL2Wa;Xy@Vq9`VZctIs+zzJo`QUsx1eXf{G> z2^lACm-m+n{HgQje1gHV8$72D-2MLI;(8r;pw&n%5j+gw3Ev@7w)#-Tau?wdu%OM- z%G}Ea(ko#Eq7#grZGY56_(lI(HNfZ+tgpWO)6#@;9Xw+EqWltnJ&U8`_s68*D6!pTbXpM@WSK7>a?FxfNOg?R@={ z)uQ-aJQ3j^F$lDet(7x6ubryA(&g($m;b08POfv%UmlTy4SE{O*0e zPzUZ{bpKd+xVqapnGv)k)mE4(kc|ED{JG~mZQWhGY-|a{u279cOznqW6)4RA=l=QU z7W{Lo|G5SKtoF~*A%sOP>hZDng7la^?W2ZPqx%%@l3n0I_jdQ^-PzRVg)u#z89ckd zLt+wGQB!pH4AeoRr7%2I;yjW1F3lgQ7Aw1Wpq!`_j4P>+cr0fd`ET zf{yW(>~+^6)_<-KsQq(9eW4DD!8ZE?zP?`BtxyNf23@*;j{EQI_-*@GheKOQl3<#eD9I-lnYr1}bn8^wqS6~Th;!iz95q01opHevMJs}meV zgqGkz*V4|}*2>+^(_{DbS$c-CejD8RfZ7t2Kv&_p)Cs9Hzk;(k51c6}*`N28!S#L9 z=EWY>a0maHOQ3CgaGpGoH|p61Kac(K{2BdAz=LK@wjlu%P7}6|a4#I?hu-t=j*b|L z!9U0CpYMf#zNQu~?pA#E9t2Nw8d!OjUrGHrQ#g(=!6#S(p!iXizI-W3a>Eupa5iYB zwfFHr-I`#3QSQg=@5gAt1HBqu(;kH68;LfPz77!;y=Yu>Dw}aq;YQZjiE75aJUwd&LXq(etr$dlm-TM0eK!OT* zVERLKJgl6&t=!=WRdq^t=QZ{Z;5o_<%Nlr2^fCJr1Kq4jvS1XLyUpQ`P{ACywIX-&)1cEq`xxK{zOMy9D?vKw%|{{J_eT>-NBUGi}OrG+iFmB&}vYK zzzr8``io)KPFX82z$5l&=|W)R=wfc>2yZ3sDeM~zbUOeZQHUtSS{~HUl_SR40`(dyc zHy!{U)N1J0iZp*kN6uu~drc|39Or>Lr@@2HXa0^%F716CE}REitq&gPB*Ds;6tCAe zDewH_K?`q!1zerXj7~;3r7B#M|oiHe9gGdsIG>?CGpcUeS4ML`q=6C$XnhzN?HU_h^A6h$zgcmWdzyb7q8 zKn4D{s{5pwb54(Y?{lB;``0k1Po1i+uCA`Gu1+`3T(oDCqz0|30%aqKR-HR@bE{jv zd0av|VtnCG#mnF+Uex=J>bGC=`MZFSL_PCy=fJT%8MCW>-A!^0 z$SgppZGU+3>Rm&Yub*#1+^H4D6Wr4t?mcMJ%SE$h%kqHQVvr&a|M5BxzEU#%)jks9 zCTq50j`?(;Ud9o^<*5h%K3?)4W4s1O@hVFTEnE&~OdjWxcrJ4(eLZPmm zJNYILD>*W_`2`07fqr=7{0wTOi634%=@;LpU%w#p0k!O&7F@GUbnj0q(rY$DwUPD? zIeJBv^J@POYHnhCVJZA&DM$h_uZ2_hc0BcL@&Y(S2dJ$D2UYK`bILef<9Y&iI`F1J2A4-o2^(0)1thh$K1{j*!w z9iD}e9ys7WID4!)k-S^r^p!ZbO_}rHz2C$i1rGc=(w)lzp%y%^^UP=?vIbdr! zO5*%;$H1a5>z{cGL%7X_Q_zHvKdLR+8yJ1liT5%G+_uL6huTlm*K7CO_shh!oDX*< zHvmGT_jZ-;optTo{$Bv$-mJTCiiEs4Y((Rqd)EC2Q)3%46A+S4>vLY{Ryyn&K+x(T zAH?-i+|Bt+dp)rWJXMs`(fTuQ^FWQf+X(~q#vZ78Xcuz;4;xW32|2md&s*kq7%qGY z)*W|W*)bn3X(EO00)HRO9})cJ#J$vSqb0P>>*h<8#L9yRdz{%TaC_G}$BvTaK`V)d zqah8W>UA6D|8#iclQHUPJ98~;MpLAgb$ZL)^H(qEIhm<(EsWt&4qDgwfvt;AdUzQ_ z*ixiYMTuf?@Oa|exgBa9OfiH8;y!;WhTIUh9AEvit4bE-v#g;bh@83RLoovSFS)`W ze*d_lolK3jw=k4W_|gB2`+DN~eMet{R#E>$EqFKv!6fTLwOg(@q0hV@0U>*h`Wcf7 zz>Xu*T;AlR&$m2`5i+!w>ofoyYFV2GR%^NXt$HU42z9lgU=Yq=AXfXSgWrE~ut{Hu zgM5l*KD8=8|8a8Uf~CwGODCHe@dmfgg9AsdnKyUoxI?n3vBskovT>-<1K?YX!8Wy$ zPP;Y7SEtXeOU{F=$s>nEySETr zcO14dyls7l8)R*RgC&4a3vTk}%<7-qx>WertRepZ1hb@*CimXf^pbbq>~G?12ZVas ze@;F9NUxDos{=wsMQxWP!!#)Hol$$z#%s==M$w{9!ozoIS>V8*Dvt$=!|5&0hVq`! zUY{nZ0g`QdSvs)2*|v)94n`j{TMBF0aNNYEr_TF)E;La})ZM!si|_?m*gDOc9C&5J zGO{ib$I*tctSjOX2mHa}ctL^h>T7!ZIq!*dW8{+un~0LSkE#RlvJ{OZmftk#A9tR= ztOn!2gKY2N_quzkh^PkR7}dr*f8M+Dc{_h59VMNrz(^ciFFH+V)kpoWuRn18Ify~R zQm}OEQ&T=D>y4R0;G{U{4|2L^kJcCy&P1^Rr=ba;gtv$>r z&SQXZoNr(CM;7n{C@oRTkXODx)2_U_4uLbvb@Aa)kNf)f@we+-t z4ZF>f&X$mxO-3~sbWW>bCgeXW1NU|+0~o%l$6S2F%Xjs78+zSM*f;n1o4beNF43=0 zQffc%c5XOy#I9eeHmuaECxsgGdF0xwl4|?$lDjWMFyYK*P7kzKXUj$HDG$JK=2M^9^6NymPg;$5ITEyl8krEdU|^ z?fSZRoLsnjB&-;Z(P0$Z0772$u`{1Pv*{f}X;zVN(4WR7q|t5fwt1}Pi%&=#Pz#h4 z6p$CN;o=MKY(0L>-GES745I=E4#?x`<`(ZI>mR`kA@%w1Z4Zxo!awI}P?K@xap0f^ zcw2Vg?eDh#pX<*AgnUbIknk7B31{n>O?Q5K(L>(=LR@1!?H=QDkTph)RML0a2pL>C zc&_ir4}ZMH`E;aw++z;YG%+L4RQqn^Uy&g%8vrWi{fRK(xTd#Yx zd6VW_OvoNU$cvt~v)V-iZhCN>3Hc3>I)Dt@cge6GLq4R~pyc3~c0zXs*JvE=HL&ki z6EXmh_<;g;CNEtZo^&e9w`O|B|{xmFjLSX;e)(1+8w|zOU|0mBAaLRist!o_As?&`3dZ67=Q%0Sjx|ROZ_xQOL{3?vXs0hr zNa&{<%Rl%1f)N-XnAPK`dmegdU*AsJ!_|9DrG8tEcGmz(*8lQ}S5BR=dJtBqfCJ3; zp&tc=)`x6Nty+Dc{R8uk5fJ3_Eg)of=Ju{!d-;;WzmBN{XNLcN281m6j+2Hz`^&#x zKh1qt)`HH=0ecR!03qEO+Tq@1AMJQk zXb8_0>;Q!1R(bo_Nwdz&qaKj73ihoFbb)ZbT{x}oM;{%Rs9foEydj=~MVQP2ms`KQ zsr_Y*uK5@^a;?XY66d2j-DCAnxb$K`;DivhLlV-V_x#f)+;aR$fY5v}Y;Qq0mamm0 ze09DF*Ewm$AjC%z4QCDtQW^s9N&l!D7Ihvmu@-p&-G%Kv2U=enoSfBl=W)xc{y7>D z$#s7~NTS^?d24^(oRg?`CLakLj7h~~bbQC9>lS|4?eo%40TI)UzQMpD8T_^VlFI#t zZkY-QwIATPLo)M0ostYtYtzpW91I`y_CSBVtV}WbGc#3)Bd=eTC z7s0x=?X7xLy|sMGZGcD_01}Rd)4pFvU2*5()LUl(LS6v+tLf*8eA+$LYxOs`1}M%) z`i6Y!^$_)RNB(`wUfZ#WA~IAS;IxpCRc+?%ICt2ImjFWj5BjV2fRNlCx$V{S7ap#& z01%p!08TWNEDYiImj(6bR=%fT2IGJStWyRKd63^n*U!0X&mbBhQ?Ch)4{beS5MKh zj=3st=sU+P+5iYi2ap+n5Vf<~UG&$%kqyZv5)OC^r!<-@_LWU8_@?dUCDay(H{e{~ zOK@G|;V*VfuKHz1KxDs78?nf`yi;qywyRhC0MCH{P*GojKb0Pf-_qTee9(U2bebzb zT~j{EP)UjwKGi+7-_YLow;_L&G!Zh$t_7+DqP7P4kiJc+dgdboo_L=00Dc2m^4fib zZ+UL>i>@7i&n1^Kgl7?IpC{^PV7s-CH+gGaLqKGkI}s4FJN?!LgYTU2a}p4&%_H70 zPpcI~{Dt@KDq30ls-5I{ORwg0;86Psj6JnypPF^aPbB6bopybNbl$sa(YqJ_^61xS zjl>(uvkZ`Wz*#u!#D)iMiV95xJy#DO5UlHrqrg~Ze{QqakDPzlTsxUPD$p(8m11QdgkAAY~ z@y4$nWNOewtd#~1)xull5C697jYdy1PFGrqSrHB#dUR?(sGq;d8%xKLYo4QYrA;FT+h6ETyYZK% z+TQli`&1z!RM3tRAd}n z5pUhy?{)XZ-1GUr8QK2dT%L;5g8L}P-6waiIsYZXzWv%L@ae4&RHHQ|ux@1e+(&v2 zdM(E??(4YX$cOsINW<1YEK46vBOhtW-F4J`-t2l%qkgWzzTu-+zy8C^poT6TjmsBE z$NkhXz5mn`%kE3>`T-Cb{kj)8G#9#UXQd6NmA!=-_NjP7zR|PzJrTdZ|9JTuFNR)x z2sknp;9fsvmkPNxI?}S=s^>nSRfy=FyP>nc6%gWWz{#i2Zan=NeI^n%{vJT6|9Q8~ zBiB#4bU5`ga@}C46dM8HSAAA>LEnCre|(fVfPH~i<5*IfsGTG8X?#QVQ*Vm3=>QyZ zYk=cWKiI*+78cZ~H?!0>c7#y>GY)6rr9<$^BCR^!aOOw9gBr$wv`8kEpCEzy>fY6I zO6fzl*J0jB)V}069)$YtZ`0t|Y3+MFY>rqQZ9MblzOr=xKoRHL{CLMde{1^iBILt0 z*V%~!S=$c0bM4;KR-`;X4i?d` zhd!wrkgK;vSu24*8)NHWpyV z^}vZI|2d+FVs_FKIyzL0vljJ!=~DlWGiY2-aSB8k9cPm`l9lqOB3Kob_-$|K*aklq z)CraM3S4>Z&(IG~=;gmm_^q2b@e0syG4}#t6 zbF7BTlf5^IaZu814iIf+&n|oYH8@~M_O2!74P3iWLq4}$C8QHNy!f1E-EV|MAsGJ4 zw*Ck%DIkA)-5~V9ecj;N5khyGwyg5#pn07T<3i10HEJiHABs(?_|M<(&R;q2E7GcN z80Da(*IX^ibINNC_gwx>Z>#|4)j%kzLu3xI71AoyPGKpieN_FJPhY$BPWV;Ghjj-K z-Ywa^tp1wDQ=h&M5Yji`6d)h+{lBl(qDjr0PlFZHV|Kv+tt-W;31{3~V?p0_=P(DH zk3&3O#z%ui@#1j4KUuhX+Nh?z+tK<1+8+$v2^N*aim@MJ_Oy5YIJBwjKtN>7AsE)e zv4Xhoyec*S8nbta@Z&i`8wYRoz}un|v|FOF?OT9D<$-i=1mt)?-Z(Ar^=+4rjsPM@ zZ8HF&_OmzLdVKdgP8+}+FxPV>!zp!*`ixUB%l0tzt0MY=E`4@(!Eh>AJV%{{P2HvvujYcellOGZ$>6B+4 z8N2rt9AnIDXbC5Tkb63mEMK^0-bYss?|wB?<0h%x*MCtj#A_YJFck#eGJ}6I`Ml(zI)}KCKN%JBd~t~LSw*}v?@>5-Ma1o zAXFa60P$;HNqp6!TG!Q_7{l6d;BX}PH{jF-PKyz5r5Z*?((W~hbL>c=qg58Y5y+cd zGzJhU(WpNi#6CvfktJ8Z_t`arsH74n8j6xq`R+XBvAdd`_2xQ2Xx#>)Y%cTL(4BaXy(ptk#qHXU+wL+5+r#TPe|IEx%~Bx_Zl3 z%zRQMiBK}_Pi))Rd(nngYiOp6s6htlP&A?Chm#vtU01Wi+22w0n5dynyMY?%LG9C4 z^|;`@b|FBd?v$g6rXaVwzu>!kgE0)n0YwAuG!;81N}F(7@y%3!?dU;GpAZA%k{xs|A|ReBnFfL)H=&sh5PjJ~+It@{te7QjiQVi{Nf4#-y}z ze>CE|>z{YjJ@mvgw5|rVO{TB&bwYQ>_FPfxUx|Bq$?`xt4!p_s;~-Hf>&l3iQJY&+ z|J+|kUv>}8_JM2a7@)ife=-%STzCJ6!`FVg5fJJZz_t6{|Mj3oHFxjurz&0aWTn@n z?*h9s4HGO40lDk3=Z77>Ve2qZlkMl)pzKQy20j_xpjszDq!r`rwP;Q;hAC(r?aV-JYDP6*m#CYMm!5cSy99lpX8*vUUyxj%UMys= zWY?>EPf4|*{zpRGxqcKlq`hMoeBvuTqlt*>LVun80}?_9U*=i@&WE{npT!;n*M(}k z>7AX9G<$hKQ{a$)fP6{-A?4W1VzutAJ z=rI__K{`ZDmIvLBui(n*`%fA%upjcFwg5fYBY8V^&;4Cu4=$+%h^%cmmbfUTD1E|{ zZPtFj`(5^tKn?YiJ<0*Y{C5D3 z_!BtwfV1K4?^aA4ec4!(gR-PQk${)Be(pcFoH3ykJuS>3|NR6ByKO9GUY^X-DzSosEcMcrdwv@F) z+m<%bp>4}LJ!Y)XkS$;RBk|x}zkUX;rPuj4Tb5X#=-jfP2Y;(&$@0trZ&W|pZ%en2 zUEXN0lqdw(At`Em>rbx^{cXsX4FI9qMn0jGn2{cL*5^$ptX?1E^6)tL9Emf2>3Nd} z_IQkX44M%D&iQ~)J|BK}X!Y)yYslLWP0n@Jszc{!erK&HG|ufCsF+8ZT-t|IQbOhj%@)U)CI`WpjYGz_!a`q zvi~^;j25H<%TL?>AV7* z29W3{=byLhlR2*KPoIJA86`T+A7K|er0gHX_2lKz`Fl67c z0tW^4eGHs>z?t*f*)R1fUv`ez0ow(T?9n?-+;wM&IM1QeT}%7E)-8g5L7GJ0x1dHn z#`1-`$Jgz;zT1&NnP<5`4STD`znTbDlT> zP?l%R$aYu%*r7b^R$Du8Th`%7bit)ou{^44D0T*Dq__xy0nH z0U*bNgMm9r|A-}CM?TUZ!H%Yj;`u4xSMMD^V@a3Mn4d%au*RP%sdeiYdOT32@kpY^ zt_yZ*!0j$cMw0bby>#HvH8U6o{w>yV0f#icW@+J#AAWY^Y~qbOGha_Y$R0%3KQXcQ zrymaj4hatZT=qVG1hUxn_6H8t>2cqlvUxy_TFW>e*52$0AURwR8_vbyBb9tz-ud>N zr*$sN}k=*AJo9kr{1GS<|$0Nh*~3qUqXS zCKp%wNl29PNtY)=S~%rPjsC0IjDu6pW8T1cH(wOgsJ4fHvA@%^7q-3Mly#{;iPjCB z`+R5qwoP|VWgM1uvxx#HFyg73mVR@0H{u$N4&P?S6WNC3b*hlQx!0V#+$z!*@^LIr zGG6YxD>ie>`tmP3n-cxcwvvjph3p+6a#5v2?1{`Z)Y|9X7Tk5zU3WqutstCCrR&{Y zKIP6)`-)f-S$p$CZq~)YQ$_P3%U2QY9XCm|tWWOTIJ0K0s+y^z+3`2szPXX;daVBpu61(l;eC*)W*U$JFg$G@|$SoO44!g=$ZbrEz8~d*SJlN z7oO|2GJj}~7F0h7ra^h!<>qdclm0R-5YI0k*Xf#xlU_RQX0nMCGxV~F*%Flwq|aS$ z6)BHl$T0cilp<+Fwj_O^m8qkh8U`T!#$Fbn=+i|7areAiu9?b)_J;0$_ z2wz%!Lc4ozrl*fn`&R^fS^0xtfo`cs(y$k@p zWA7BTaNp?0y#u>y_oMS1NPRoEuOlJ1Ui0R4H(gfayLtwsF(5UO&&+mLPd|M{&+euk zWNS#To_SOWzT@r|yUNOcTJiDD-mgt0J?O|IqbMMaLG8MWgEd>;K5U2N8t&6%K$-$_ z==f0akxuW>J}_QS(cZUihTvfG(G`#UdEyBe?dmnR1rUsj3|rx`V=JD&s69FV_OcRloW zXi&b%f%|!bE+;sGH+K!Gh#t6Eimo1d;9hgB=@Lu)O`RZq?bl3;C{x>hC|fe-j|@pC z!?D6%EjpM-w|6s-Zf81}WubAPZ*$*XEC1|2a`lf@M9Y11+Vg*{yJFA+-!VewU#4#k z*UP_nXAPvu8a!D%@{WT3=bgMADnWH}$Hc38-`ncRH z!zYvX&1e`1$J)`mx}QGLV}G-;E7K_)dxV3tMt#uYrojc59_#>nN&dj(Zk;z*8dv8C zc;(iipF%$#aN>9A;-CDDV%L0;PKl9bFMsuFclQ{wH5+a}-~Rq-g5LcvHe1?g%F@&3 z$#nTEFSZ`E`NxkJBTbRufqk#sl3d&U?v)bWt$O#zA79+B?FI>7`bk-X^Dbz*X&cfc zuSm-ojV7)setb95)UV8%viiw4mvz|k3(}2{UiAL{N1h#h*6JFtDkmVl`Cp%{y}t0? zx0)kOc6(^S&}(W;UcR<9(#?>*an3p0zg;_EL1v$m$-fH!-{tRRsi$|>gJR(i_uJtv zfeubr2{1gB2!-;?1M#$08V?6U1(7&ZfU5x0K&9lZ;OLETB2B)l#;Th%P>Ry&MCzP& z?UJEFcmT=rwy{KXOsZ`>S=i3_rk!R!Yh=Z{oNy3Ot|7_eOf;OFF|J(m7h?T>DK3i# zoAIPq_Be{4vciu>$M$!l0(yNkT5qJ~|7bf-fI^B^u@ETKrmlW7Un zc}l1K!6LfvK=TKQuaq4wGQ={I7-Xq)C2>*VS?{8uP#X3#gGv7YrLa}IVrL4AONi0ogQPQh1sXWO* z3aSI95${MgsdyJaL^FdoHy9VSdn6-XduE9*HP15q698`9gPK-5STK-HiP+ZG9N8wn=M z6X`fkW8`(Y`8fA4N%qA{))`--BpGisIOjC5@D{$2GZE0aK(*26!W+}693bNK8j__j z7U)@^Sk1-91CVtxL;@!w1)JefhhmL3G7=A@`gBZE&dkajY@Et>=!ztpytD)cBJIJ5 zeoX-=>5mXOotukt(ue`xd`GQAiyqX$wb$Cyq?12@ZcUu_+p8x}l(p!=ZC7jWkrO+~ z$cBHpNwF+FFf#H2ZpIt*Nze@~85F&YJQhle;kbryuvnwjY+w_1cQh$ueke&(x9I%o zOiFAY^T^u%A#%3AFlFpP!=5#0*k6DKu@5n)`~@LRoVVpg&ismKnJJB@IuxqoBpZ-% zdd+&SQbj%d3>x|)<8@N-Vdx|fjb~^a4NY@xslsA`fZ5{2E3<`q$k9X!S{kp7niaq_ zRaV4iTBU^qMVrM0pZvjO~ zHqjKsLharATMIuxvZSbgz&|-*^Fi#ec_sz@4IAB@saV8jC1rWd^t$BAm8cafDe;Dl zc#e_@r(|7Q$;emCjmrEO3LtgJN=Lr>Tl`4Xw2+Z+z>T!-9{PmaX@H6UBTrZdg(Pv0 z3xDlL&q4YCZ4jM?hHFp!5n8aEUs*yB6b2hcjsu9l)BLf|3|} zwj3S6axAQ7_jG4%-+{g@jXWr>?=3n@rogwPSU4&b5eFIoQ9M8irC2bRq278BpE*1%HdsX{cai{>yJ4(1!JiJjZJC1LWHH03gb*w zY(6jL5q)N&FJ-3|mA^pn%~PQ?Mf(`!=( z9uhUoFNhe=8m{ERvOY2*#t;zhqlRdMIQNpTp5b5xn{F>{w|s>xEGbw^a?+4TAATDi zA4&?i2fOm{U{I1zD5Rv~ft8to!3eMNQrJrPuHdgDaO4xLpY$~l@h;YM33=pi`woO` zX~=vU{cK#|(Uw5YbF4Mezny=$0uJk9-{*WAhU%8*YPRG+fL? z-cc+MV>DR!5XHzSD|ky7OD08#yvU!_Y+-Un!3w}6IS1q;AS8{g&oq1?e0bg1Ppi?` zoG%EkT${He9s ztRoOG6OgHzTeGHtYbH3~jw*MLzt0conE3$+i0*h&l-fbzK*HfIhN$Y$wSILMNa&9_ zIbXImz{r+1fr6;xwxnuin*s^@3$~>!3q)DbPtt5qiZ8OF!A>cU+38v%)K| zpBSsFqCHsD1DKXnPFkp6W(HLK5qPwBRhez91Lqg(05&P`=15g)YZkz^CV?;K z9z2-06p=+ieJ2+fGE|S^O=dGWSI1jy{W;KWX_!hnT$^eT-M-++qZH;xl8`I|8E=*O z#;s{U!vAU9D%FP0_J!*o!l?!n&Ecdp==yw%a4#(4({L&^G$7?Ulfn0+AvLW~&@KCiAZdTW6qPzA@3;fDer!!n?aSr>3u%}RF(^P|6%s)U#cU{0 z#Y0XGzkVAku=GddMMq>RGNTJtsfhT2SaL%Uj=#VX&&Z3m)_d2qZIXu=<%x7Ci9W4^ z9Z=LiYIF>Amrfq_D^3ap3GqOBuJ%#o6=8%WF7*Ri4j#L>eh*kQ>4}T@P*hTD@1ojE z0%ZG(+!WB54(HVeAY#tE@f-F{nG+sF@w9Dms2oNO`(bFEgqK;fe+c6C7vNCc9hlh? zb2N}+9v~sL&n%TeF8RSAm{-t%PR1LHdUz;=of<9Rv98uJsb)edN}c>G$tbTDst6rk zd1TVzq=k+w5>3v~`cY#c7yNcwKH{;~3(HG_CCPFRaq-RxWX-?m(J1=wtA=2t3_jQig zTdJ=nEDA*s%Fv3^QGLCnd=rjh*`0@&^qYXdt^Np;Ce2|e)rF$Y*w+%0bD=@p%@*Ph z$HYB7N#h%xFnv#D7Coov_0Uo9cW@&LL-|-c%Zu{<#!MasTvQ$g-3$jN=m+_$yH1lM zopol9I|)@@baNfB=m#B^y6dzE7-*IhhnH0gXhjPKqMRkAkRErDLb_O6=TY&-H-yhV z2);)lX<*}R9*w#)Fj0@}xT!F$N(5wUlJS{&`F1pA!|GGdYo`=YptA44rqWZapZULY`L6 zAp^;jnTLGAqEvO^mV(I)?R4ZzW?ALRXO+ezHQFd4DA7Gn-YrL`MD+pbTj}b~tY$U=8Ja~cc5T?1~IF=-16?~c30%W@jO?st@v0CVY8A}Qsn+*Czk|kOY znjsh5^EHzma$`7X@o!F@F<(y!4E{yss6%ZAOTaRo!LbbWC2(#D7M%DK9&E}Jl0ZN{ zvCp9zMHrNUXFQ{j>iDR&GJ$MO!jIEql*!XEhz|6-D&FgfKtZt*jTe99=XbsWCa@C7YcV!R$F;Ih{al1 zg;U}cy0Cl&B9;_)T1xTjdJkNq4S)r?PofWLGcHbq!ndUWv^8CZt7NIgkVl0jvN%8% zF%mkh+@rMSN661iaQ*N+VghSLRYZ($NND=^+-Io#ad7}4(8L3K-t3g1=|reM@C*`} zACa&O3~Vcr?Gv>{n?lAZDcL^+HTw%z94-r%i-;Bf9x^q)0UhI+nNn3gg0Q$B7HHyu z4ZKQ(mKq15B?YF{3s}J)p$JYHnYt7<#QpWu@>f9E3%;W5X6nJ@#YeIwsZ1;Tg&e?GEG- z>yJ5gU>1IXYDocGj_jFzUiyWlVIIY>eMgd^V(WNZ8{FE&Yix}6>Y&Vz3_^rK?L|2U zW%a0O(F{|-o;ffUV1d0#F?Ik6OG?Am1odJZ z+X%oqCIK;5829BYa_c7^g|&}^K-&I->8YX@Se=`Pm^zT<6RJ!dAu@(yz%!nK*;#oK zhB2B0rt!>bqOz*`_0j^7M})vr*9FBJarrc%iKm==ChG_ksMaL#^VIgnVN?q`W(^VR zY%I+W=^AFaz{-4SSzMGTO^ZXeO)Au0a?%jluCLo9QTb?3#ou)hA1! zuirC59UfJcC=T;>Vg7}frDF3zfV=|VbAW9944GS#If)}v@J9X~92-F*WN17iH(DI- zUCli2Sj=k=^hY!*Sz;NN=lL*Nt>(djb*Ce>NR{)ENg9l2zA}dk9{I}nom?p*j-LT7 zTN+iUuYby!lI0{Clbq#c#b}DNbgTr$n~G5r=k-{ri8mH%Ffz$>P(J`CoY4HSIL?d5 zz9C%nOKUS@DNG4PaZVkUmuUfiA3jV%rzIG)#WtXrW*c_N92p z)C~nZyMa*a>M)8slb~z_ZB5pp(t7!*J=hNolEiTE7G#niN@K?)WX4-(GXicHe^EV!goY)4pT6};!x5%*hrrnN-9fhq=^gl0(j#j4tf5DF_G;dEJF#9 zrSS}Ns?N=(OC&Z{Dxj)|s&=I$$(4vRt;}OIC~8ZW#Ci*jz5qJ?AY-a3Z)LPv1>jke zIr(RH-30~v3sgQ0AHV}z6?X9@u^uTVPGjOp1CM$zRUD;I`+3gvNs^8k3*o4I8d;;V zLlFn3fut>MF}NP3u~V`i&t_7zzqe49=!SLEIVewN*=z~I@{6Qrc+iEUzynK}c?p1p zCv|BvNkqV|17&*sx9G|u;?xLqLe@j@Oi5L4S+BE`RI6h!)XXUt8$fn}F?9MV`p_CJ4V-&+_8} z+1`MPT)W^Q5wY)GKVc6<>@S#WRVl@`nUVr*ttA4yiH1`-PQ>t%7hvk^2}yZXakeN{ zPQ<7d#e=X;s>utM11+G|PtgT_);n{`3+j#Ym?$3SAwcsZ5Hk}zQ>$8K#D2Ga#4pfo zX;A2-j8SBrQVc3t@3<0G0;RDoA8P^%#&d4L{&C?r4QKrH3#*wYLnH+_S~Ok;1BR(9 zIJI5@@yt(|2Rk+uLLMl9TERN}IJ^+7lZk}e;%sNH3MwV93IlYWdtm#;w*_c4-$sj+ zX~l917nU1KtgvDw6{Iuj_)c6+ocn`}Fy6w6QW)OTX_S~E42F`4G|lgzb@LQI+>wIt zI5_c$3FP~6Pz09w(1diPTq}v;P^0_^WWjeJYJqZW7cKCYL~yV$3`$x*fCA^@(1CX{ zQ_Mul<^CX@PM70$T6sr>7A(t0r~&6>ax{@zEk!U=;j$!(gA0jp3>J=W#gthe6rIPY zB0%9GDZW4&vf^J2N1Dp>@vx>A3j?uIG0AjwyD6#_9f2?zT3I+hT_kY19)V{~LN8=U0o~e|u$VZ9jpm*v94$%WU(D1N(bfVuk65SV5ss4;S48Ol>Jy!SnsACWM`IT~W;lX|Me)^`HkmS&r&s!K~BO4*w| zDk~%V>trWT6SB)-1MW55tKjYsB9B7lA-t-xBf>$05c&a!vMq< z#-0l=cQNZ*P|JD;L8_zHiDJ4sBu1+i^heX5j>P@>&~kW=*-Ia^k(QW4B`uQ^q{Wz{M(O@6cRl5<%Hr7v8ijP*6FIj()Bm8$}c*RaxHM5Q#A zrK-TRq}Z0JuoIZ=qwa`*Asc;m-Xircppg{&Udhw&#dOg_9$br!9d9rt;ngvbJ=#axH@+l`x zJL<)1me1|_ws z&|=>}Inc!e#c$QwbB_!h(KF{_XasX6mlV)YHAf7y^_9x{BlqK?0g+WE$In9}*>cl2 z$k%wzsdjM@CH5&%A1t33i!(+&VP^;rjO83p$Sb()^f`&afeJKTEfg6vqZ-p6sa>fn z8hZ$Uga5-@m!m!~!D2x~MSrA|qVv6ED((XXCGo%&qS97UEnv_OdTkkUz`Ab)awEh5 z&fUi05ZJZA+<+B7;>M8@&znv%KL!2FSHd4xv?RJj0l4&o?_~hbL#JpQn;_|n2hKxP zexrOqGoB$ixqg;6LSV$2pb?el^*b3~f?UQMu!DbCPXie3qfq(iqaj%e&0!5UEV4)0 z%#T3XOhCWn<_Zs7dv?T`E&rV46pj@{!i7cDVd{^Jr@yziim3n7yf6t|9NAo-5z6`nxQa*7r z5C%0;62jG(8UP;k9x%TG5lf16Qhh3OX3c>{<||ek=E#E$Llr>4cm`$;4u)964!n?f z;)+%o0z(IZXFQu`khD`9j{}=LST?=^3FA2@3!Xg_1rpgWxhhp^W1Zn*D&~ZjX_L_m zv0xE5*2L++ieShqtdjLDQ_a9<8LR5lIuS=iEc0@vq*D>xD5?s~OXI+EJfLJv!mLQQ zgmzNnGFX3%Kl7+K%ghLfSyC8%s>c%cY>0p@Ul?EYB0saxR2oA9xemdc=DR=$otqQH zR09v0aBy7gTLUFa3bsqV!a;Q96uXwwp`elVj@*9b7%Fpimk4D{_~v9!fCQI}PA`*B z&^Wa<3l^2cipet&54mZ15iS&oh@WKrq1PQ_&BdAgNUOSR8?69L2_B7mv)D z((>yoB7kVDjzD8q=Lla9i`PjK{E$=i;?u%Xfl^q?O;9z8G}mqr8l1uyFXVtsWT%db z6z@G+0^=F@5T`Wu9w-=?A{0VxM?R5E^y^6Y04Hpe#YJuKQ*mf27IYw(kceY#37mKR z6$N3$jUnc>351Xz!XY*?zDlR{z&Z9u#Cj2)!xSO0RFpQ!TQ3;m*@GC4iVx-Us9)c^ zpO8zO^7FwMP7yg=+oWBMKiYb^CN0L|1J>kl9>Tu|XI!Jl@g-6|5^#q94By+6t$}Fk~bV~{{Q%@t~ z$moJ_6330Ab;(C6C;ssc09#LDBkfQbHxhtsOvuWT;+kdbbR3aC>@LA_SufqPeg;z3 zBsf(Z! z;)zR2WZ(u>#nu6Ei;o2{VDh)A|r^!R5!{<&x_z9_Wro8u)l4St=NqmXxS& zmBjR#1+MWTDTtb_&?Gl3d|rR2s#hm3)k_j)<(UgbSY*potUU^6`3eQ(_67TdVNe&99+dO0f*2ccl@2>`jO?6Vvu3O4nX&*CGr>k({Upg0Vcjo>hg2O#rXB#56{rjHqTbfK=g7eBq+`>)QR;QV z8Q6I`b{=Dkl>(mXWLJ3|y*;C=1|FWR38b={7)+KNuk{&|4CDTCns;o6<}W&s1kU00 z;?@lZdD&(zlQV%xu zU{ujnM~mg`i+ErbRQ8e=Sdq7ao`lww;SqSUPCSHbcUpmMf59e0CAw_a0@h3}!1etv G{ri6bJN;+? diff --git a/examples/standard-server/package.json b/examples/standard-server/package.json index 89ff6a4..488cc14 100644 --- a/examples/standard-server/package.json +++ b/examples/standard-server/package.json @@ -35,7 +35,7 @@ "body-parser": "^1.19.0", "dotenv": "^16.0.3", "express": "^4.17.1", - "speedybot": "latest" + "speedybot": "^2.0.0" }, "engines": { "node": ">=18.0.0" diff --git a/examples/standard-server/settings/bot.ts b/examples/standard-server/settings/bot.ts index d23c0e7..ced7753 100644 --- a/examples/standard-server/settings/bot.ts +++ b/examples/standard-server/settings/bot.ts @@ -42,7 +42,7 @@ Bot.addStep(async ($) => { const card = cardHash[value].addSubcard( $.card() .addLink( - "https://speedybot.js.org/docs/speedybot?card=${value}", + `https://speedybot.js.org/speedycard?card=${value}`, "See the source for this card" ) .addText("Pick a new card") diff --git a/examples/standard-server/src/index.ts b/examples/standard-server/src/index.ts index e97ce33..21971f0 100644 --- a/examples/standard-server/src/index.ts +++ b/examples/standard-server/src/index.ts @@ -30,10 +30,10 @@ app.post("/speedybot", async (req, res) => { // For more info see: https://github.com/valgaze/speedybot-mini/blob/deploy/docs/webhooks.md#secrets const signature = req.header("x-spark-signature"); - const webhookSecret = process.env.WEBHOOK_SECRET; + const webhookSecret = process.env.WEBHOOK_SECRET || ""; // Validate webhook & other checks you might need - if (webhookSecret && signature) { + if (signature) { const proceed = validateWebhook(json, webhookSecret, signature); if (proceed === false) { return res.send("Webhook Secret Rejected"); diff --git a/examples/worker/README.md b/examples/worker/README.md index 70068fe..637a749 100644 --- a/examples/worker/README.md +++ b/examples/worker/README.md @@ -1,4 +1,4 @@ -# Add your bot on a Workers +# [QUICKSTART] 🔥 Deploy your bot to a Worker/V8 Isolate Note: The steps below assume you have a working WebEx account + a Cloudflare account with permission to create Workers @@ -12,33 +12,37 @@ npm i ## 2) Get + Set your bot access token -- Create a bot from scratch here + cpo the token: **[https://developer.webex.com/my-apps/new/bot](https://developer.webex.com/my-apps/new/bot)** +- Create a bot from scratch here + copy the token: **[https://developer.webex.com/my-apps/new/bot](https://developer.webex.com/my-apps/new/bot)** -- If you have an existing bot, get its token her (regenerate): **[https://developer.webex.com/my-apps](https://developer.webex.com/my-apps)** +- If you have an existing bot, get its token here (regenerate a new token): **[https://developer.webex.com/my-apps](https://developer.webex.com/my-apps)** -## 3) Get your bot URL +## 3) Get your bot's URL - If you don't have one already, get a **[cloudflare account](https://dash.cloudflare.com/sign-up)** - Authenticate your machine with `npx wrangler login` -- Create a new "worker" from the **[cloudflare dashboard](https://dash.cloudflare.com)** & note its URL (you can name it something like https://speedybot1234.username.workers.dev) +- Run the command to deploy the code in this repo to your Worker and get your bot URL -## 4) Add your bot token +``` +npm run deploy +``` -From the same directory as the repo run the following command to add a secret called `BOT_TOKEN` and enter your info using **[secrets manager](https://blog.cloudflare.com/workers-secrets-environment/#supporting-secrets)** +You'll be prompted to open your browser and you'll see an authorization screen like the following asking to enable **[wrangler (Worker's CLI tool)](https://developers.cloudflare.com/workers/wrangler/)** to take actions with your account, click **ALLOW** -```sh -npx wrangler secret put BOT_TOKEN -``` + + +The URL will look something like https://speedybot-worker-infra.your_username.workers.dev (you'll need it in a minute when we register webhooks) + +## 4) Add your bot token -To secure your webhooks with a secret set a secret: +From the same directory as the repo run the following command to add a secret called `BOT_TOKEN` and enter your info using **[secrets manager](https://developers.cloudflare.com/workers/configuration/secrets/#secrets-on-deployed-workers)** ```sh -npx wrangler secret put WEBHOOK_SECRET +npx wrangler secret put BOT_TOKEN ``` -![image](https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/various/worker_secret.gif) + ## 5) Deploy your agent @@ -48,24 +52,30 @@ From the same directory as the repo run this command to deploy your agent (now b npm run deploy ``` -## 6) Register your webhooks + -- Make a note the URL of the deployed function (ie http://speedybot-mini.username.workers.dev) +## 6) Register your webhooks -Unlike the **[websockets example](https://speedybot.js.org/examples/speedybot-starter/README)**, you will need to deploy this serve or use a secure mechanism to expose it to the internet and then register the webhooks +- Right now if you try to interact with your "deployed" agent nothing happens, nobody is "home" to answer the knock at the door -Hop on over to the **[Webhooks Section](https://speedybot.js.org/webhooks)** to register your webhooks and secret +- Make a note of the URL of the deployed function (ie https://speedybot-worker-infra.your_username.workers.dev) -## 7) Take it for a spin +- Hop on over to the **[SpeedyBot Garage (https://speedybot.js.org/garage)](https://speedybot.js.org/garage)**, enter your access token, select the Webhooks tab, and then **Add New Webhook** and add your Worker's URL and (optionally) a webhook secret -- After connecting webhooks, take it for a spin + - +## 6a) Supply your Webhook "secret" to your Worker -## Webhook secrets +Even though it's "optional", it's a really, really good idea to set a Webhook Secret too so you can make sure incoming requests are the real deal. For more detail, see **[https://speedybot.js.org/webhooks#securing-webhooks](https://speedybot.js.org/webhooks#securing-webhooks)** -- From the same directory as the repo run the following command to add a secret called `WEBHOOK_SECRET` and use the same secret value used when registering webhooks: +To supply your Worker with a webhook secret, set a secret called WEBHOOK_SECRET which you'll need to supply to your Worker like you did with your `BOT_TOKEN` value ```sh npx wrangler secret put WEBHOOK_SECRET ``` + +## 7) Take it for a spin + +- After connecting webhooks, take it for a spin + + diff --git a/examples/worker/package-lock.json b/examples/worker/package-lock.json deleted file mode 100644 index afe47df..0000000 --- a/examples/worker/package-lock.json +++ /dev/null @@ -1,1946 +0,0 @@ -{ - "name": "worker-testbed", - "version": "0.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "worker-testbed", - "version": "0.0.0", - "devDependencies": { - "@cloudflare/workers-types": "^4.20230419.0", - "typescript": "^5.0.4", - "wrangler": "^3.0.0" - } - }, - "node_modules/@cloudflare/kv-asset-handler": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz", - "integrity": "sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==", - "dev": true, - "dependencies": { - "mime": "^3.0.0" - } - }, - "node_modules/@cloudflare/workerd-darwin-64": { - "version": "1.20231025.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20231025.0.tgz", - "integrity": "sha512-MYRYTbSl+tjGg6su7savlLIb8cOcKJfdGpA+WdtgqT2OF7O+89Lag0l1SA/iyVlUkT31Jc6OLHqvzsXgmg+niQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=16" - } - }, - "node_modules/@cloudflare/workerd-darwin-arm64": { - "version": "1.20231025.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20231025.0.tgz", - "integrity": "sha512-BszjtBDR84TVa6oWe74dePJSAukWlTmLw9zR4KeWuwZLJGV7RMm6AmwGStetjnwZrecZaaOFELfBCAHtsebV0Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=16" - } - }, - "node_modules/@cloudflare/workerd-linux-64": { - "version": "1.20231025.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20231025.0.tgz", - "integrity": "sha512-AT9dxgKXOa9xZxZ3k2a432axPJJ58KpoNWnPiPYGpuAuLoWnfcYwwh6mr9sZVcTdAdTAK9Xu9c81tp0YABanUw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16" - } - }, - "node_modules/@cloudflare/workerd-linux-arm64": { - "version": "1.20231025.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20231025.0.tgz", - "integrity": "sha512-EIjex5o2k80YZWPix1btGybL/vNZ3o6vqKX9ptS0JcFkHV5aFX5/kcMwSBRjiIC+w04zVjmGQx3N1Vh3njuncg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=16" - } - }, - "node_modules/@cloudflare/workerd-windows-64": { - "version": "1.20231025.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20231025.0.tgz", - "integrity": "sha512-7vtq0mO22A2v0OOsKXa760r9a84Gg8CK0gDu5uNWlj6hojmt011iz7jJt76I7oo/XrVwVlVfu69GnA3ljx6U8w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=16" - } - }, - "node_modules/@cloudflare/workers-types": { - "version": "4.20231025.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20231025.0.tgz", - "integrity": "sha512-TkcZkntUTOcvJ4vgmwpNfLTclpMbmbClZCe62B25/VTukmyv91joRa4eKzSjzCZUXTbFHNmVdOpmGaaJU2U3+A==", - "dev": true - }, - "node_modules/@esbuild-plugins/node-globals-polyfill": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz", - "integrity": "sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==", - "dev": true, - "peerDependencies": { - "esbuild": "*" - } - }, - "node_modules/@esbuild-plugins/node-modules-polyfill": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.2.2.tgz", - "integrity": "sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^4.0.0", - "rollup-plugin-node-polyfills": "^0.2.1" - }, - "peerDependencies": { - "esbuild": "*" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", - "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", - "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", - "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", - "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", - "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", - "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", - "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", - "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", - "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", - "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", - "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", - "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", - "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", - "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", - "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", - "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", - "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", - "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", - "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", - "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", - "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@fastify/busboy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz", - "integrity": "sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@types/node": { - "version": "20.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", - "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/node-forge": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.9.tgz", - "integrity": "sha512-meK88cx/sTalPSLSoCzkiUB4VPIFHmxtXm5FaaqRDqBX2i/Sy8bJ4odsan0b20RBjPh06dAQ+OTTdnyQyhJZyQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/as-table": { - "version": "1.0.55", - "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", - "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", - "dev": true, - "dependencies": { - "printable-characters": "^1.0.42" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/blake3-wasm": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", - "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", - "dev": true - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/capnp-ts": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/capnp-ts/-/capnp-ts-0.7.0.tgz", - "integrity": "sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==", - "dev": true, - "dependencies": { - "debug": "^4.3.1", - "tslib": "^2.2.0" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "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" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", - "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/esbuild": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", - "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - }, - "node_modules/exit-hook": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", - "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/get-source": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", - "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", - "dev": true, - "dependencies": { - "data-uri-to-buffer": "^2.0.0", - "source-map": "^0.6.1" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/miniflare": { - "version": "3.20231025.0", - "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-3.20231025.0.tgz", - "integrity": "sha512-pFcr2BRaGIQ26UfdDo8BMJ6kkd/Jo/FkQ/4K7UG/eORlDepsLrR/sTJddcSSIGl07MA+MGjhzopFTPpFskkS+g==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-walk": "^8.2.0", - "capnp-ts": "^0.7.0", - "exit-hook": "^2.2.1", - "glob-to-regexp": "^0.4.1", - "source-map-support": "0.5.21", - "stoppable": "^1.1.0", - "undici": "^5.22.1", - "workerd": "1.20231025.0", - "ws": "^8.11.0", - "youch": "^3.2.2", - "zod": "^3.20.6" - }, - "engines": { - "node": ">=16.13" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "dev": true, - "bin": { - "mustache": "bin/mustache" - } - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true, - "engines": { - "node": ">= 6.13.0" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-to-regexp": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", - "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/printable-characters": { - "version": "1.0.42", - "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", - "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", - "dev": true - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/rollup-plugin-inject": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", - "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", - "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.", - "dev": true, - "dependencies": { - "estree-walker": "^0.6.1", - "magic-string": "^0.25.3", - "rollup-pluginutils": "^2.8.1" - } - }, - "node_modules/rollup-plugin-node-polyfills": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", - "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", - "dev": true, - "dependencies": { - "rollup-plugin-inject": "^3.0.0" - } - }, - "node_modules/rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "dependencies": { - "estree-walker": "^0.6.1" - } - }, - "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", - "dev": true, - "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "deprecated": "Please use @jridgewell/sourcemap-codec instead", - "dev": true - }, - "node_modules/stacktracey": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", - "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", - "dev": true, - "dependencies": { - "as-table": "^1.0.36", - "get-source": "^2.0.12" - } - }, - "node_modules/stoppable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", - "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", - "dev": true, - "engines": { - "node": ">=4", - "npm": ">=6" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici": { - "version": "5.27.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.27.2.tgz", - "integrity": "sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==", - "dev": true, - "dependencies": { - "@fastify/busboy": "^2.0.0" - }, - "engines": { - "node": ">=14.0" - } - }, - "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 - }, - "node_modules/workerd": { - "version": "1.20231025.0", - "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20231025.0.tgz", - "integrity": "sha512-W1PFtpMFfvmm+ozBf+u70TE3Pviv7WA4qzDeejHDC4z+PFDq4+3KJCkgffaGBO86h+akWO0hSsc0uXL2zAqofQ==", - "dev": true, - "hasInstallScript": true, - "bin": { - "workerd": "bin/workerd" - }, - "engines": { - "node": ">=16" - }, - "optionalDependencies": { - "@cloudflare/workerd-darwin-64": "1.20231025.0", - "@cloudflare/workerd-darwin-arm64": "1.20231025.0", - "@cloudflare/workerd-linux-64": "1.20231025.0", - "@cloudflare/workerd-linux-arm64": "1.20231025.0", - "@cloudflare/workerd-windows-64": "1.20231025.0" - } - }, - "node_modules/wrangler": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-3.15.0.tgz", - "integrity": "sha512-kxzK62rD+LRrDeZZzw8cP6FBub71vJCbfAAb594XobXajgXYh3pFjv18Vm8YLxHzoGMhmAOJPA5b4DHq4HEUCw==", - "dev": true, - "dependencies": { - "@cloudflare/kv-asset-handler": "^0.2.0", - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", - "@esbuild-plugins/node-modules-polyfill": "^0.2.2", - "blake3-wasm": "^2.1.5", - "chokidar": "^3.5.3", - "esbuild": "0.17.19", - "miniflare": "3.20231025.0", - "nanoid": "^3.3.3", - "path-to-regexp": "^6.2.0", - "resolve.exports": "^2.0.2", - "selfsigned": "^2.0.1", - "source-map": "0.6.1", - "source-map-support": "0.5.21", - "xxhash-wasm": "^1.0.1" - }, - "bin": { - "wrangler": "bin/wrangler.js", - "wrangler2": "bin/wrangler.js" - }, - "engines": { - "node": ">=16.17.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xxhash-wasm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", - "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==", - "dev": true - }, - "node_modules/youch": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.3.tgz", - "integrity": "sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==", - "dev": true, - "dependencies": { - "cookie": "^0.5.0", - "mustache": "^4.2.0", - "stacktracey": "^2.1.8" - } - }, - "node_modules/zod": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", - "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - } - }, - "dependencies": { - "@cloudflare/kv-asset-handler": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@cloudflare/kv-asset-handler/-/kv-asset-handler-0.2.0.tgz", - "integrity": "sha512-MVbXLbTcAotOPUj0pAMhVtJ+3/kFkwJqc5qNOleOZTv6QkZZABDMS21dSrSlVswEHwrpWC03e4fWytjqKvuE2A==", - "dev": true, - "requires": { - "mime": "^3.0.0" - } - }, - "@cloudflare/workerd-darwin-64": { - "version": "1.20231025.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-64/-/workerd-darwin-64-1.20231025.0.tgz", - "integrity": "sha512-MYRYTbSl+tjGg6su7savlLIb8cOcKJfdGpA+WdtgqT2OF7O+89Lag0l1SA/iyVlUkT31Jc6OLHqvzsXgmg+niQ==", - "dev": true, - "optional": true - }, - "@cloudflare/workerd-darwin-arm64": { - "version": "1.20231025.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-darwin-arm64/-/workerd-darwin-arm64-1.20231025.0.tgz", - "integrity": "sha512-BszjtBDR84TVa6oWe74dePJSAukWlTmLw9zR4KeWuwZLJGV7RMm6AmwGStetjnwZrecZaaOFELfBCAHtsebV0Q==", - "dev": true, - "optional": true - }, - "@cloudflare/workerd-linux-64": { - "version": "1.20231025.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-64/-/workerd-linux-64-1.20231025.0.tgz", - "integrity": "sha512-AT9dxgKXOa9xZxZ3k2a432axPJJ58KpoNWnPiPYGpuAuLoWnfcYwwh6mr9sZVcTdAdTAK9Xu9c81tp0YABanUw==", - "dev": true, - "optional": true - }, - "@cloudflare/workerd-linux-arm64": { - "version": "1.20231025.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-linux-arm64/-/workerd-linux-arm64-1.20231025.0.tgz", - "integrity": "sha512-EIjex5o2k80YZWPix1btGybL/vNZ3o6vqKX9ptS0JcFkHV5aFX5/kcMwSBRjiIC+w04zVjmGQx3N1Vh3njuncg==", - "dev": true, - "optional": true - }, - "@cloudflare/workerd-windows-64": { - "version": "1.20231025.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workerd-windows-64/-/workerd-windows-64-1.20231025.0.tgz", - "integrity": "sha512-7vtq0mO22A2v0OOsKXa760r9a84Gg8CK0gDu5uNWlj6hojmt011iz7jJt76I7oo/XrVwVlVfu69GnA3ljx6U8w==", - "dev": true, - "optional": true - }, - "@cloudflare/workers-types": { - "version": "4.20231025.0", - "resolved": "https://registry.npmjs.org/@cloudflare/workers-types/-/workers-types-4.20231025.0.tgz", - "integrity": "sha512-TkcZkntUTOcvJ4vgmwpNfLTclpMbmbClZCe62B25/VTukmyv91joRa4eKzSjzCZUXTbFHNmVdOpmGaaJU2U3+A==", - "dev": true - }, - "@esbuild-plugins/node-globals-polyfill": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz", - "integrity": "sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==", - "dev": true, - "requires": {} - }, - "@esbuild-plugins/node-modules-polyfill": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-modules-polyfill/-/node-modules-polyfill-0.2.2.tgz", - "integrity": "sha512-LXV7QsWJxRuMYvKbiznh+U1ilIop3g2TeKRzUxOG5X3YITc8JyyTa90BmLwqqv0YnX4v32CSlG+vsziZp9dMvA==", - "dev": true, - "requires": { - "escape-string-regexp": "^4.0.0", - "rollup-plugin-node-polyfills": "^0.2.1" - } - }, - "@esbuild/android-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", - "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", - "dev": true, - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", - "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", - "dev": true, - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", - "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", - "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", - "dev": true, - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", - "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", - "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", - "dev": true, - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", - "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", - "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", - "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", - "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", - "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", - "dev": true, - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", - "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", - "dev": true, - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", - "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", - "dev": true, - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", - "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", - "dev": true, - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", - "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", - "dev": true, - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", - "dev": true, - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", - "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", - "dev": true, - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", - "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", - "dev": true, - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", - "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", - "dev": true, - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", - "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", - "dev": true, - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", - "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", - "dev": true, - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", - "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", - "dev": true, - "optional": true - }, - "@fastify/busboy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz", - "integrity": "sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==", - "dev": true - }, - "@types/node": { - "version": "20.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", - "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", - "dev": true, - "requires": { - "undici-types": "~5.26.4" - } - }, - "@types/node-forge": { - "version": "1.3.9", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.9.tgz", - "integrity": "sha512-meK88cx/sTalPSLSoCzkiUB4VPIFHmxtXm5FaaqRDqBX2i/Sy8bJ4odsan0b20RBjPh06dAQ+OTTdnyQyhJZyQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", - "dev": true - }, - "acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", - "dev": true - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "as-table": { - "version": "1.0.55", - "resolved": "https://registry.npmjs.org/as-table/-/as-table-1.0.55.tgz", - "integrity": "sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==", - "dev": true, - "requires": { - "printable-characters": "^1.0.42" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "blake3-wasm": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/blake3-wasm/-/blake3-wasm-2.1.5.tgz", - "integrity": "sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==", - "dev": true - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "capnp-ts": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/capnp-ts/-/capnp-ts-0.7.0.tgz", - "integrity": "sha512-XKxXAC3HVPv7r674zP0VC3RTXz+/JKhfyw94ljvF80yynK6VkTnqE3jMuN8b3dUVmmc43TjyxjW4KTsmB3c86g==", - "dev": true, - "requires": { - "debug": "^4.3.1", - "tslib": "^2.2.0" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.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" - } - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true - }, - "data-uri-to-buffer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-2.0.2.tgz", - "integrity": "sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "esbuild": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", - "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", - "dev": true, - "requires": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" - } - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "dev": true - }, - "exit-hook": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", - "integrity": "sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==", - "dev": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "optional": true - }, - "get-source": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/get-source/-/get-source-2.0.12.tgz", - "integrity": "sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==", - "dev": true, - "requires": { - "data-uri-to-buffer": "^2.0.0", - "source-map": "^0.6.1" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dev": true, - "requires": { - "sourcemap-codec": "^1.4.8" - } - }, - "mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true - }, - "miniflare": { - "version": "3.20231025.0", - "resolved": "https://registry.npmjs.org/miniflare/-/miniflare-3.20231025.0.tgz", - "integrity": "sha512-pFcr2BRaGIQ26UfdDo8BMJ6kkd/Jo/FkQ/4K7UG/eORlDepsLrR/sTJddcSSIGl07MA+MGjhzopFTPpFskkS+g==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-walk": "^8.2.0", - "capnp-ts": "^0.7.0", - "exit-hook": "^2.2.1", - "glob-to-regexp": "^0.4.1", - "source-map-support": "0.5.21", - "stoppable": "^1.1.0", - "undici": "^5.22.1", - "workerd": "1.20231025.0", - "ws": "^8.11.0", - "youch": "^3.2.2", - "zod": "^3.20.6" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "dev": true - }, - "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true - }, - "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "path-to-regexp": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", - "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "printable-characters": { - "version": "1.0.42", - "resolved": "https://registry.npmjs.org/printable-characters/-/printable-characters-1.0.42.tgz", - "integrity": "sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==", - "dev": true - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true - }, - "rollup-plugin-inject": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", - "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", - "dev": true, - "requires": { - "estree-walker": "^0.6.1", - "magic-string": "^0.25.3", - "rollup-pluginutils": "^2.8.1" - } - }, - "rollup-plugin-node-polyfills": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", - "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", - "dev": true, - "requires": { - "rollup-plugin-inject": "^3.0.0" - } - }, - "rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "dev": true, - "requires": { - "estree-walker": "^0.6.1" - } - }, - "selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", - "dev": true, - "requires": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "stacktracey": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/stacktracey/-/stacktracey-2.1.8.tgz", - "integrity": "sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==", - "dev": true, - "requires": { - "as-table": "^1.0.36", - "get-source": "^2.0.12" - } - }, - "stoppable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", - "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - }, - "typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "dev": true - }, - "undici": { - "version": "5.27.2", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.27.2.tgz", - "integrity": "sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==", - "dev": true, - "requires": { - "@fastify/busboy": "^2.0.0" - } - }, - "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 - }, - "workerd": { - "version": "1.20231025.0", - "resolved": "https://registry.npmjs.org/workerd/-/workerd-1.20231025.0.tgz", - "integrity": "sha512-W1PFtpMFfvmm+ozBf+u70TE3Pviv7WA4qzDeejHDC4z+PFDq4+3KJCkgffaGBO86h+akWO0hSsc0uXL2zAqofQ==", - "dev": true, - "requires": { - "@cloudflare/workerd-darwin-64": "1.20231025.0", - "@cloudflare/workerd-darwin-arm64": "1.20231025.0", - "@cloudflare/workerd-linux-64": "1.20231025.0", - "@cloudflare/workerd-linux-arm64": "1.20231025.0", - "@cloudflare/workerd-windows-64": "1.20231025.0" - } - }, - "wrangler": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/wrangler/-/wrangler-3.15.0.tgz", - "integrity": "sha512-kxzK62rD+LRrDeZZzw8cP6FBub71vJCbfAAb594XobXajgXYh3pFjv18Vm8YLxHzoGMhmAOJPA5b4DHq4HEUCw==", - "dev": true, - "requires": { - "@cloudflare/kv-asset-handler": "^0.2.0", - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", - "@esbuild-plugins/node-modules-polyfill": "^0.2.2", - "blake3-wasm": "^2.1.5", - "chokidar": "^3.5.3", - "esbuild": "0.17.19", - "fsevents": "~2.3.2", - "miniflare": "3.20231025.0", - "nanoid": "^3.3.3", - "path-to-regexp": "^6.2.0", - "resolve.exports": "^2.0.2", - "selfsigned": "^2.0.1", - "source-map": "0.6.1", - "source-map-support": "0.5.21", - "xxhash-wasm": "^1.0.1" - } - }, - "ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", - "dev": true, - "requires": {} - }, - "xxhash-wasm": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.0.2.tgz", - "integrity": "sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==", - "dev": true - }, - "youch": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/youch/-/youch-3.3.3.tgz", - "integrity": "sha512-qSFXUk3UZBLfggAW3dJKg0BMblG5biqSF8M34E06o5CSsZtH92u9Hqmj2RzGiHDi64fhe83+4tENFP2DB6t6ZA==", - "dev": true, - "requires": { - "cookie": "^0.5.0", - "mustache": "^4.2.0", - "stacktracey": "^2.1.8" - } - }, - "zod": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", - "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", - "dev": true - } - } -} diff --git a/examples/worker/package.json b/examples/worker/package.json index 5c9e4be..aedf5df 100644 --- a/examples/worker/package.json +++ b/examples/worker/package.json @@ -11,5 +11,8 @@ "@cloudflare/workers-types": "^4.20230419.0", "typescript": "^5.0.4", "wrangler": "^3.0.0" + }, + "dependencies": { + "speedybot": "^2.0.0" } } diff --git a/examples/worker/settings/bot.ts b/examples/worker/settings/bot.ts index 7e25df5..8176156 100644 --- a/examples/worker/settings/bot.ts +++ b/examples/worker/settings/bot.ts @@ -1,7 +1,55 @@ -import { SpeedyBot, SpeedyCard, SurveyQuestion } from '../../../src'; +import { SpeedyBot, SpeedyCard, SurveyQuestion } from 'speedybot'; const Bot = new SpeedyBot(); +Bot.addStep(async ($) => { + // handle text + if ($.text) { + if ($.text.toLowerCase() === 'showcard') { + const card = $.card() + .addTitle('Capture data') + .addTextarea('Submit data') + .addPickerDropdown(['option 1', 'option 2', 'option 3', 'option 4']); + await $.send(card); + } + } + + // file handler + if ($.file) { + const { name, extension, contentType } = $.file; + await $.send(`You uploaded "${name}", a *.${extension} file [${contentType}]`); + // Fetch raw bytes (which you can pass onto other systems) + // const TheData = await $.file.getData(); // do something w/ the contents/bytes + } + + // adaptive card/form submissions + if ($.data && !$.data.showCard && !$.data.randomSpeedyBot) { + const dataSnippet = $.buildDataSnippet($.data); + await $.send(`This data was submitted:`); + await $.send(dataSnippet); + } + + return $.next; +}); + +Bot.addStep(async ($) => { + if ($.data && $.data.randomSpeedyBot) { + const randomImage = `https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/memes/logo${$.pickRandom(1, 33)}.jpeg`; + + await $.send( + $.card() + .addHeader('\u{1F916} SpeedyBot') + .addImage(randomImage, { + targetURL: 'https://speedybot.js.org', + size: 'ExtraLarge', + }) + .addButton('🤖 Show another SpeedyBot', 'randomSpeedyBot') + ); + return $.end; + } + return $.next; +}); + // ## File upload handler Bot.addStep(async ($) => { if ($.file) { @@ -37,7 +85,7 @@ Bot.addStep(async ($) => { const { value } = Bot.pickRandom(cardChoices); const card = cardHash[value].addSubcard( $.card() - .addLink('https://speedybot.js.org/docs/speedybot?card=${value}', 'See the source for this card') + .addLink(`https://speedybot.js.org/speedycard?card=${value}`, 'See the source for this card') .addText('Pick a new card') .addPickerDropdown(cardChoices, 'showCard'), 'Learn more' @@ -68,6 +116,7 @@ Bot.addStep(async ($) => { // ## "kitchensink", show everything Bot.addStep(async ($) => { + $.author; if ($.text && ['kitchen', 'kitchensink'].includes($.text)) { await $.clearScreen(); await $.send(`## Kitchen Sink`); @@ -92,6 +141,10 @@ Bot.addStep(async ($) => { 'thread item 5', ]); + await $.send(`-----------`); + await $.send($.buildDMLink('speedybot@webex.bot', '🤖 Talk to SpeedyBot')); + await $.send(`-----------`); + await $.send(`## Files`); // Send data as a *.json file @@ -112,17 +165,8 @@ Bot.addStep(async ($) => { name: $.author.name, }; await $.send($.fillTemplate(utterances, template)); - const randomImage = `https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/memes/${Bot.pickRandom([ - 'logo.jpeg', - 'logo2.jpeg', - 'logo3.jpeg', - 'logo4.jpeg', - 'logo5.jpeg', - 'logo6.jpeg', - 'logo7.jpeg', - 'logo8.jpeg', - 'logo9.jpeg', - ])}`; + + const randomImage = `https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/memes/logo${$.pickRandom(1, 33)}.jpeg`; const introCard = $.card() .addHeader('🤖 SpeedyBot') @@ -137,6 +181,7 @@ Bot.addStep(async ($) => { { title: '🗂 files', value: 'files' }, { title: '🗂 Everything (warning: fast)', value: 'kitchensink' }, ]) + .addButton('🤖 random', 'randomSpeedyBot') .addSubcard( $.card() .addTitle('SpeedyCards') @@ -155,14 +200,6 @@ Bot.addStep(async ($) => { // ## Card utilities // SpeedyCard form submissions, check for $.data, can add generics for type assurance -Bot.addStep(async ($) => { - if ($.data && !$.data.showCard) { - const dataSnippet = $.buildDataSnippet($.data); - await $.send(`This data was submitted:`); - await $.send(dataSnippet); - } - return $.next; -}); // handle card picks from dropdown, attach preview, this can happen from multiple cards + locations Bot.addStep>(async ($) => { @@ -172,36 +209,30 @@ Bot.addStep>(async ($) => { }; if ($.data && isCardKey($.data.showCard)) { - cardHash[$.data.showCard].addSubcard( + const card = cardHash[$.data.showCard].addSubcard( $.card() - .addLink( - $.ctx.isDev - ? `http://localhost:5173/vitepresspublish/docs/speedycard?card=${$.data.showCard}` - : `https://speedybot.js.org/docs/speedybot?card=${$.data.showCard}`, - 'See the source for this card' - ) + .addLink(`https://speedybot.js.org/speedycard?card=${$.data.showCard}`, 'See the source for this card') .addText('Pick a new card') .addPickerDropdown(cardChoices, 'showCard'), 'Learn more' ); - - const card = cardHash[$.data.showCard] as SpeedyCard; await $.send(card); } + return $.next; }); // ## ex. pass data/flags between steps during runs Bot.addStep(($) => { - $.ctx.isDev = false; // set to true on debug mode to trace incoming messages + $.ctx.isDev = true; // set to true on debug mode to trace incoming messages return $.next; }); // ## read flags Bot.addStep(async ($) => { - if ($.ctx.isDev) { - await $.send($.buildDataSnippet($.debug())); - } + // if ($.ctx.isDev) { + // await $.send($.buildDataSnippet($.debug())); + // } return $.next; }); @@ -222,6 +253,7 @@ export default Bot; // Bunch of cards export const cardChoices = [ { title: 'Text Formatting 📄', value: 'format-card' }, + { title: 'Tabular Data 🐸', value: 'table-card' }, { title: 'Survey 📝', value: 'survey' }, { title: 'Acai 🍇', value: 'acai' }, { title: 'Appcard 💳', value: 'appcard' }, @@ -232,7 +264,6 @@ export const cardChoices = [ { title: 'Banner Yellow 🟡', value: 'banner-yellow' }, { title: 'Confirm ✔️', value: 'confirm' }, { title: 'Image 🖼️', value: 'image' }, - { title: 'Chips 🍟', value: 'chips' }, { title: 'Old Survey', value: 'old-survey' }, ]; @@ -322,7 +353,7 @@ export const cardHash: { [key: string]: SpeedyCard } = { .addText( 'By the way, text blocks support simple markdown like **bolding**, *italics*, and even **[links](https://speedybot.js.org/new)**' ) - .addImage('https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/memes/logo4.jpeg', { align: 'Center' }), + .addImage('https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/memes/logo4.jpeg', { align: 'Center' }), appcard: Bot.appCard('Design News', 'https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/figma_logo.png') .addText('Tap the button to learn about new plugins + integration options', { color: 'red', backgroundColor: 'blue' }) .addLinkButton('https://www.figma.com/community/plugins', "🚀 Let's go"), @@ -391,21 +422,31 @@ export const cardHash: { [key: string]: SpeedyCard } = { .addTitle('Do you want to proceed') .addButton('❌ Cancel', 'shouldProceed', { data: false }) .addButton('✅ OK', 'shouldProceed', { data: true }), + 'table-card': Bot.card() + .addTitle('Ribbit! Check out the hop-tastic details below from FrogBot industries') + .addTable([ + ['Frog Species', 'Population'], + ['Green Tree Frog', '2,500'], + ['Red-eyed Tree Frog', '1,800'], + ['Poison Dart Frog', '700'], + ['Fire-bellied Toad', '1,200'], + ]) + .addLinkButton('http://allaboutfrogs.org/froglnd.shtml', '🐸 Explore Frogs'), image: Bot.card() .addTitle('Images') .addSubtitle('Cards can have images too') .addText('Small') - .addImage('https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/speedybot_logo.png', { size: 'Small' }) + .addImage('https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/memes/logo4.jpeg', { size: 'Small' }) .addText('Medium') - .addImage('https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/speedybot_logo.png', { size: 'Medium' }) + .addImage('https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/memes/logo4.jpeg', { size: 'Medium' }) .addText('Large') - .addImage('https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/speedybot_logo.png', { size: 'Large' }) + .addImage('https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/memes/logo4.jpeg', { size: 'Large' }) .addText('ExtraLarge') - .addImage('https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/speedybot_logo.png', { size: 'ExtraLarge' }) + .addImage('https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/memes/logo4.jpeg', { size: 'ExtraLarge' }) .addText('Stretch') - .addImage('https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/speedybot_logo.png', { size: 'Stretch' }) + .addImage('https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/memes/logo4.jpeg', { size: 'Stretch' }) .addText('TIP: Images can be links too', { color: 'Attention' }) - .addImage('https://raw.githubusercontent.com/valgaze/speedybot-mini/deploy/docs/assets/speedybot_logo.png', { + .addImage('https://raw.githubusercontent.com/valgaze/speedybot-utils/main/assets/memes/logo4.jpeg', { targetURL: 'https://speedybot.js.org', size: 'ExtraLarge', }), @@ -524,5 +565,18 @@ Bot.exact('$survey', async ($) => { ]); await $.send(surveyCard); + return $.end; +}); + +// "ping"/"pong" +Bot.addStep(async ($) => { + if ($.text) { + const lower = $.text.toLowerCase(); + if (lower === 'pong') { + await $.send('ping'); + } else if (lower === 'ping') { + await $.send('pong'); + } + } return $.next; }); diff --git a/examples/worker/src/index.ts b/examples/worker/src/index.ts index 629269a..80778f5 100644 --- a/examples/worker/src/index.ts +++ b/examples/worker/src/index.ts @@ -27,15 +27,15 @@ ${new Date()}`); const json = await request.json(); const signature = request.headers.get('x-spark-signature'); const secret = env.WEBHOOK_SECRET; - + console.log('fire?', { signature, secret, abc: 'yay' }); // Validate webhook - if (secret && signature) { + if (signature) { const proceed = await validateWebhook(json, secret, signature); if (proceed === false) { - return new Response('Webhook Secret Rejected'); + return new Response('Webhook Rejected'); } } - + console.log('#', env.BOT_TOKEN); ctx.waitUntil( new Promise(async (resolve, reject) => { try { diff --git a/examples/worker/wrangler.toml b/examples/worker/wrangler.toml index 059a72a..e856544 100644 --- a/examples/worker/wrangler.toml +++ b/examples/worker/wrangler.toml @@ -1,3 +1,3 @@ -name = "speedybot-workerv2" +name = "speedybot-worker-infra" main = "src/index.ts" compatibility_date = "2023-10-30" \ No newline at end of file