diff --git a/.all-contributorsrc b/.all-contributorsrc deleted file mode 100644 index 28605239..00000000 --- a/.all-contributorsrc +++ /dev/null @@ -1,399 +0,0 @@ -{ - "projectName": "geeksblabla.com", - "projectOwner": "geeksblabla", - "repoType": "github", - "repoHost": "https://github.com", - "files": [ - "README.md" - ], - "imageSize": 180, - "commit": false, - "commitConvention": "none", - "contributors": [ - { - "login": "yjose", - "name": "Youssouf EL AZIZI", - "avatar_url": "https://avatars0.githubusercontent.com/u/11137944?v=4", - "profile": "https://elazizi.com", - "contributions": [ - "code", - "doc", - "content", - "review" - ] - }, - { - "login": "Amine-H", - "name": "Amine Hakkou", - "avatar_url": "https://avatars1.githubusercontent.com/u/6276978?v=4", - "profile": "https://hakkou.me", - "contributions": [ - "code", - "content" - ] - }, - { - "login": "souffanda", - "name": "Soufian El ", - "avatar_url": "https://avatars2.githubusercontent.com/u/24813026?v=4", - "profile": "https://github.com/souffanda", - "contributions": [ - "code", - "doc", - "content", - "ideas" - ] - }, - { - "login": "aboullaite", - "name": "Aboullaite Mohammed", - "avatar_url": "https://avatars0.githubusercontent.com/u/2836850?v=4", - "profile": "http://aboullaite.me", - "contributions": [ - "content", - "ideas" - ] - }, - { - "login": "ismailElazizi", - "name": "Ismail El Azizi", - "avatar_url": "https://avatars1.githubusercontent.com/u/22155037?v=4", - "profile": "https://github.com/ismailElazizi", - "contributions": [ - "design", - "content" - ] - }, - { - "login": "HyadOussama", - "name": "Oussama Hyad", - "avatar_url": "https://avatars0.githubusercontent.com/u/26727605?v=4", - "profile": "https://github.com/HyadOussama", - "contributions": [ - "design" - ] - }, - { - "login": "AbderrahimSoubaiElidrissi", - "name": "soubai", - "avatar_url": "https://avatars0.githubusercontent.com/u/11523791?v=4", - "profile": "https://packagist.org/packages/soubai", - "contributions": [ - "content" - ] - }, - { - "login": "midrissi", - "name": "IDRISSI Mohamed", - "avatar_url": "https://avatars0.githubusercontent.com/u/3237344?v=4", - "profile": "https://www.github.com/midrissi", - "contributions": [ - "content" - ] - }, - { - "login": "Iduoad", - "name": "Iduoad", - "avatar_url": "https://avatars0.githubusercontent.com/u/25715906?v=4", - "profile": "https://github.com/Iduoad", - "contributions": [ - "content" - ] - }, - { - "login": "Ismailtlem", - "name": "Ismail Tlemรงani", - "avatar_url": "https://avatars1.githubusercontent.com/u/34961373?v=4", - "profile": "https://github.com/Ismailtlem", - "contributions": [ - "content" - ] - }, - { - "login": "mohouyizme", - "name": "Mohamed Ouyizme", - "avatar_url": "https://avatars1.githubusercontent.com/u/23297439?v=4", - "profile": "https://mouyiz.me", - "contributions": [ - "content" - ] - }, - { - "login": "melbarch", - "name": "Mohamed ELBARCHANY", - "avatar_url": "https://avatars0.githubusercontent.com/u/12951727?v=4", - "profile": "https://melbarch.com", - "contributions": [ - "content" - ] - }, - { - "login": "kelmag", - "name": "Khalil El Maghraoui", - "avatar_url": "https://avatars0.githubusercontent.com/u/29312717?v=4", - "profile": "https://github.com/kelmag", - "contributions": [ - "content" - ] - }, - { - "login": "azihassan", - "name": "Azi Hassan", - "avatar_url": "https://avatars2.githubusercontent.com/u/1638227?v=4", - "profile": "https://pingfrommorocco.blogspot.com", - "contributions": [ - "content" - ] - }, - { - "login": "ijja", - "name": "ijja", - "avatar_url": "https://avatars3.githubusercontent.com/u/13198653?v=4", - "profile": "https://github.com/ijja", - "contributions": [ - "code" - ] - }, - { - "login": "bondif", - "name": "Mohamed BOUKHLIF", - "avatar_url": "https://avatars2.githubusercontent.com/u/24433897?v=4", - "profile": "https://github.com/bondif", - "contributions": [ - "content", - "code" - ] - }, - { - "login": "boredabdel", - "name": "Abdel SGHIOUAR", - "avatar_url": "https://avatars1.githubusercontent.com/u/1208914?v=4", - "profile": "https://github.com/boredabdel", - "contributions": [ - "content" - ] - }, - { - "login": "mouradaouinat", - "name": "Mourad Aouinat", - "avatar_url": "https://avatars1.githubusercontent.com/u/34982954?v=4", - "profile": "http://mouradaouinat.me", - "contributions": [ - "content", - "code" - ] - }, - { - "login": "iMeriem", - "name": "Meriem Zaid", - "avatar_url": "https://avatars1.githubusercontent.com/u/11720929?v=4", - "profile": "https://github.com/iMeriem", - "contributions": [ - "content" - ] - }, - { - "login": "ylizma", - "name": "Youssef Amzil", - "avatar_url": "https://avatars2.githubusercontent.com/u/47286539?v=4", - "profile": "https://github.com/ylizma", - "contributions": [ - "content" - ] - }, - { - "login": "aymaneMx", - "name": "aymaneMx", - "avatar_url": "https://avatars1.githubusercontent.com/u/30264095?v=4", - "profile": "https://aymanemx.github.io/", - "contributions": [ - "content" - ] - }, - { - "login": "Kafiil", - "name": "Kafil", - "avatar_url": "https://avatars1.githubusercontent.com/u/15774583?v=4", - "profile": "http://kafil.xyz", - "contributions": [ - "content", - "code" - ] - }, - { - "login": "zakariaelas", - "name": "Zakaria El Asri", - "avatar_url": "https://avatars1.githubusercontent.com/u/33696020?v=4", - "profile": "https://github.com/zakariaelas", - "contributions": [ - "content", - "code" - ] - }, - { - "login": "nfaihi", - "name": "Ahmed NFAIHI", - "avatar_url": "https://avatars2.githubusercontent.com/u/36778362?v=4", - "profile": "https://github.com/nfaihi", - "contributions": [ - "content" - ] - }, - { - "login": "arsokay90", - "name": "arsokay90", - "avatar_url": "https://avatars3.githubusercontent.com/u/12202186?v=4", - "profile": "https://github.com/arsokay90", - "contributions": [ - "content" - ] - }, - { - "login": "melbahja", - "name": "Mohamed El Bahja", - "avatar_url": "https://avatars2.githubusercontent.com/u/8259014?v=4", - "profile": "https://mohamedelbahja.com", - "contributions": [ - "code" - ] - }, - { - "login": "mohamedaitbouaaza", - "name": "Mohamed Ait Bouaaza", - "avatar_url": "https://avatars0.githubusercontent.com/u/33040162?v=4", - "profile": "https://www.linkedin.com/in/mohamedaitbouaaza/", - "contributions": [ - "content" - ] - }, - { - "login": "Temo27anas", - "name": "Anas Temouden", - "avatar_url": "https://avatars1.githubusercontent.com/u/47893532?v=4", - "profile": "https://www.linkedin.com/in/anas-temouden-232888188/", - "contributions": [ - "content" - ] - }, - { - "login": "makraz", - "name": "Hamza Makraz", - "avatar_url": "https://avatars1.githubusercontent.com/u/19323431?v=4", - "profile": "https://www.makraz.com", - "contributions": [ - "content" - ] - }, - { - "login": "moussaidOualid", - "name": "Oualid MOUSSAID", - "avatar_url": "https://avatars2.githubusercontent.com/u/52301484?v=4", - "profile": "https://github.com/moussaidOualid", - "contributions": [ - "content" - ] - }, - { - "login": "errafaiy", - "name": "Abdelhakim Er-rafaiy", - "avatar_url": "https://avatars0.githubusercontent.com/u/11611370?v=4", - "profile": "https://about.me/er-rafaiy", - "contributions": [ - "content" - ] - }, - { - "login": "moghwan", - "name": "Marwane Chaoui", - "avatar_url": "https://avatars2.githubusercontent.com/u/2495180?v=4", - "profile": "http://moghwan.me", - "contributions": [ - "code" - ] - }, - { - "login": "nainiayoub", - "name": "Ayoub NAINIA", - "avatar_url": "https://avatars2.githubusercontent.com/u/50157142?v=4", - "profile": "https://github.com/nainiayoub", - "contributions": [ - "content" - ] - }, - { - "login": "outama-othmane", - "name": "Outama Othmane", - "avatar_url": "https://avatars2.githubusercontent.com/u/42810975?v=4", - "profile": "https://github.com/outama-othmane", - "contributions": [ - "content" - ] - }, - { - "login": "sroui", - "name": "Soufiane Roui", - "avatar_url": "https://avatars.githubusercontent.com/u/26446917?v=4", - "profile": "https://github.com/sroui", - "contributions": [ - "content" - ] - }, - { - "login": "otmos", - "name": "otmos", - "avatar_url": "https://avatars.githubusercontent.com/u/43470049?v=4", - "profile": "https://github.com/otmos", - "contributions": [ - "content" - ] - }, - { - "login": "faissaloux", - "name": "Faissal Wahabali", - "avatar_url": "https://avatars.githubusercontent.com/u/60013703?v=4", - "profile": "https://github.com/faissaloux", - "contributions": [ - "code" - ] - }, - { - "login": "zakarialaoui10", - "name": "ZAKARIA ELALAOUI", - "avatar_url": "https://avatars.githubusercontent.com/u/63521765?v=4", - "profile": "https://www.instagram.com/zakarialaoui10/", - "contributions": [ - "content" - ] - }, - { - "login": "deleusec", - "name": "Corentin Deleuse", - "avatar_url": "https://avatars.githubusercontent.com/u/59571508?v=4", - "profile": "https://github.com/deleusec", - "contributions": [ - "code" - ] - }, - { - "login": "kaizendae", - "name": "Elasri Abdelati", - "avatar_url": "https://avatars.githubusercontent.com/u/17480866?v=4", - "profile": "https://stackoverflow.com/users/6242698/elasri", - "contributions": [ - "content" - ] - }, - { - "login": "britel-chaimaa20", - "name": "Britel Chaimaa", - "avatar_url": "https://avatars.githubusercontent.com/u/52888345?v=4", - "profile": "https://github.com/britel-chaimaa20", - "contributions": [ - "content" - ] - } - ], - "contributorsPerLine": 5, - "skipCi": true, - "commitType": "docs" -} diff --git a/.cursorrules b/.cursorrules new file mode 100644 index 00000000..9fcdf40f --- /dev/null +++ b/.cursorrules @@ -0,0 +1,58 @@ +You are an expert in JavaScript, TypeScript, and Astro framework for scalable web development. + +Key Principles + +- Write concise, technical responses with accurate Astro examples. +- Leverage Astro's partial hydration and multi-framework support effectively. +- Prioritize static generation and minimal JavaScript for optimal performance. +- Use descriptive variable names and follow Astro's naming conventions. +- Organize files using Astro's file-based routing system. + +Astro Project Structure + +- Use the recommended Astro project structure: + - src/ + - components/ + - content/ + - pages/ + - lib/ + - public/ + - astro.config.mjs + +Component Development + +- Create .astro files for Astro components. +- Use React components when necessary. +- Implement proper component composition and reusability. +- Use Astro's component props for data passing. +- Leverage Astro's built-in components like when appropriate. + +Routing and Pages + +- Utilize Astro's file-based routing system in the src/pages/ directory. +- Implement dynamic routes using [...slug].astro syntax. +- Use getStaticPaths() for generating static pages with dynamic routes. +- Implement proper 404 handling with a 404.astro page. + +Content Management + +Styling + +- Use Tailwind CSS for styling. +- Make sur to use the config for text sizing and color palette in tailwind.config.cjs + +Accessibility + +- Ensure proper semantic HTML structure in Astro components. +- Implement ARIA attributes where necessary. +- Ensure keyboard navigation support for interactive elements. + +Key Conventions + +1. Follow Astro's Style Guide for consistent code formatting. +2. Use TypeScript for enhanced type safety and developer experience. +3. Implement proper error handling and logging. +4. Use Astro's Image component for optimized image delivery. +5. all files should be named in kebab-case. + +Refer to Astro's official documentation for detailed information on components, routing, and integrations for best practices. diff --git a/.env.example b/.env.example index 0eb404a7..af59ebf5 100644 --- a/.env.example +++ b/.env.example @@ -1,12 +1,16 @@ -GATSBY_ALGOLIA_APP_ID= -GATSBY_ALGOLIA_SEARCH_KEY= -ALGOLIA_ADMIN_KEY= +# Environment Variables +# --------------------- +# These API keys are optional for local development as mock data is provided +# Only required when working with: +# - Gallery management +# - Episode planning +# - Adding new episodes through the website +# - If you want to test with real data +# -------------------- - - - -YOUTUBE_ACCESS_TOKEN= -YOUTUBE_REFRESH_TOKEN= -YOUTUBE_CLIENT_ID= -YOUTUBE_CLIENT_SECRET= -YOUTUBE_REDIRECT_URL= \ No newline at end of file +NOTION_API_KEY= +GEEKSBLABLA_NOTION_DATABASE_ID= +YOUTUBE_API_KEY= +CLOUDINARY_API_SECRET= +PUBLIC_CLOUDINARY_API_KEY= +PUBLIC_CLOUDINARY_CLOUD_NAME= diff --git a/.github/actions/setup-node-pnpm-install/action.yml b/.github/actions/setup-node-pnpm-install/action.yml new file mode 100644 index 00000000..06abb01e --- /dev/null +++ b/.github/actions/setup-node-pnpm-install/action.yml @@ -0,0 +1,26 @@ +# โœ๏ธ Description: +# This is a composite action, which means it can be used in other actions. +# It is used in almost all workflows to set up the environment and install dependencies. +# Updating the package manager or Node version here will be reflected in all workflows. + +# ๐Ÿ‘€ Example usage: +# - name : ๐Ÿ“ฆ Setup Node + PNPM + install deps +# uses: ./.github/actions/setup-node-pnpm-install + +name: 'Setup Node + PNPM + Install Dependencies' +description: 'Setup Node + PNPM + Install Dependencies' +runs: + using: 'composite' + steps: + - uses: pnpm/action-setup@v4 + with: + version: 9 + run_install: false + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: 'pnpm' + + - name: ๐Ÿ“ฆ Install Project Dependencies + run: pnpm install --frozen-lockfile + shell: bash \ No newline at end of file diff --git a/.github/scripts/generate-youtube-description.js b/.github/scripts/generate-youtube-description.js new file mode 100644 index 00000000..bc0537c9 --- /dev/null +++ b/.github/scripts/generate-youtube-description.js @@ -0,0 +1,87 @@ +// @ts-check +import { readFileSync } from "fs"; +import { join } from "path"; +import matter from "gray-matter"; + +/** + * Renders a title with a hash symbol + * @param {string} title - The title to render + * @returns {string} The rendered title for youtube description + */ +const renderTitle = title => { + return `\n\n ${title}\n ---------------------`; +}; + +/** + * Generates a YouTube description from an episode markdown file + * @param {string} input - Either episode number or full file path + * @returns {{youtube: string, description: string}} The formatted YouTube description + */ +export function generateYoutubeDescription(input) { + try { + // Determine if input is episode number or path + const filePath = input.includes(".md") + ? input + : join( + process.cwd(), + "episodes", + `episode-${String(input).padStart(4, "0")}.md` + ); + + // Read and parse the markdown file + const fileContent = readFileSync(filePath, "utf8"); + const { data: frontmatter, content } = matter(fileContent); + + // Build description + let description = ``; + + // Replace section headers with icons, add extra space, and convert markdown links + let formattedContent = content + .replace(/## Notes/g, renderTitle("โฑ๏ธ Timeline")) + .replace(/## Links/g, renderTitle("๐Ÿ”— Links")) + .replace(/## Guests/g, renderTitle("๐Ÿ‘ฅ Guests")) + .replace(/## Prepared and Presented by/g, renderTitle("๐ŸŽค Hosts")) + .replace(/\[(.*?)\]\((.*?)\)/g, "$1: $2"); + + description += formattedContent; + + // Add standard footer with social links + description += renderTitle("๐Ÿ”— Follow us"); + description += `\nSpotify: https://open.spotify.com/show/0UlTBXh7iH6x0HO6FgYzAD\n`; + description += `LinkedIn: https://www.linkedin.com/company/geeksblabla-community\n`; + description += `Facebook: https://www.facebook.com/geeksblabla\n`; + description += `Twitter: https://twitter.com/geeksblabla\n`; + description += `Instagram: https://www.instagram.com/geeksblabla\n`; + description += `GitHub: https://github.com/geeksblabla\n\n`; + description += `Visit our website: https://geeksblabla.io\n`; + + // Add a detailed description of the podcast in Moroccan Darija + description += `\n\n๐ŸŽ™๏ธ ุฌูŠูƒุณ ุจู„ุงุจู„ุง ู‡ูˆ ุจูˆุฏูƒุงุณุช ุฏูŠุงู„ ุงู„ูƒูˆู…ูŠูˆู†ูŠุชูŠ ููŠู† ูƒู†ุฏูŠุฑูˆ ู†ู‚ุงุดุงุช ุดูŠู‚ุฉ ูˆ ู…ู…ุชุนุฉ ุนู„ู‰ ู…ูˆุงุถูŠุน ู…ุฎุชู„ูุฉ ููŠ ุนุงู„ู… ุงู„ุชูƒู†ูˆู„ูˆุฌูŠุง ู…ุน ู†ุงุณ ู…ู…ูŠุฒูŠู† ู…ู† ุงู„ูƒูˆู…ูŠูˆู†ูŠุชูŠ ุฏูŠุงู„ู†ุง.\n`; + description += `ูƒู†ู„ุชู‚ุงูˆ ูƒู„ ู†ู‡ุงุฑ ุงู„ุฃุญุฏ ุนู„ู‰ 8 ุฏูŠุงู„ ุงู„ู„ูŠู„ุŒ ูˆุฌู‡ุฏ ุฑุงุณูƒ ุจุงุด ุชุชุนู„ู… ูˆ ุชุณุชุงูุฏ ู…ุนุงู†ุง ูู‡ุงุฏ ุงู„ู†ู‚ุงุดุงุช ุญูˆู„ ุฃุญุฏุซ ุงู„ู…ูˆุงุถูŠุน ุงู„ุชู‚ู†ูŠุฉ ุจุงู„ุฏุงุฑุฌุฉ ุงู„ู…ุบุฑุจูŠุฉ. ๐Ÿš€\n\n`; + description += `#GeeksBlabla #darija #ุชูƒู†ูˆู„ูˆุฌูŠุง #ุงู„ู…ุบุฑุจ #ุจุฑู…ุฌุฉ #ู…ุจุฑู…ุฌูŠู†_ู…ุบุงุฑุจุฉ #ุชู‚ู†ูŠุฉ #ุจูˆุฏูƒุงุณุช_ู…ุบุฑุจูŠ #ุชุนู„ู…_ุงู„ุจุฑู…ุฌุฉ #ู…ุทูˆุฑูŠู† #ุชูƒู†ูˆู„ูˆุฌูŠุง_ุงู„ู…ุนู„ูˆู…ุงุช #ู…ุฌุชู…ุน_ุงู„ุจุฑู…ุฌุฉ #ุชุทูˆูŠุฑ_ุงู„ูˆูŠุจ #ุฏุฑูˆุณ_ุจุฑู…ุฌุฉ #ุชู‚ู†ูŠุฉ_ุงู„ู…ุนู„ูˆู…ุงุช`; + + // Return object with frontmatter and description + return { + youtube: frontmatter.youtube, + description, + }; + } catch (error) { + console.error("Error generating description:", error); + process.exit(1); + } +} + +// Main execution +const main = () => { + const input = process.argv[2]; + + if (!input) { + console.error("Please provide an episode number or file path"); + process.exit(1); + } + + const result = generateYoutubeDescription(input); + console.log(JSON.stringify(result, null, 2)); +}; + +main(); diff --git a/.github/scripts/update-youtube-description.js b/.github/scripts/update-youtube-description.js new file mode 100644 index 00000000..48b7e154 --- /dev/null +++ b/.github/scripts/update-youtube-description.js @@ -0,0 +1,62 @@ +// @ts-check +import { generateYoutubeDescription } from "./generate-youtube-description.js"; +import fetch from "node-fetch"; + +const WEBHOOK_URL = process.env.YOUTUBE_WEBHOOK_URL; + +/** + * Sends the YouTube description to a webhook + * @param {string} input - Either episode number or full file path + */ +async function updateYoutubeDescription(input) { + try { + // Get webhook URL from environment variable + const webhookUrl = process.env.WEBHOOK_URL ?? WEBHOOK_URL; + if (!webhookUrl) { + throw new Error("WEBHOOK_URL environment variable is not set"); + } + + // Generate the description + const { youtube, description } = generateYoutubeDescription(input); + const youtubeId = youtube.split("v=")[1]; + // Send to webhook + const formData = new URLSearchParams(); + formData.append("youtube_id", youtubeId); + formData.append("content", description); + + const response = await fetch(webhookUrl, { + method: "POST", + headers: { + "Content-Type": "application/x-www-form-urlencoded", + }, + body: formData.toString(), + }); + + if (!response.ok) { + let errorMessage = `Webhook request failed with status ${response.status}`; + try { + const body = await response.text(); + errorMessage += `: ${body}`; + } catch (e) { + console.error(e); + } + throw new Error(errorMessage); + } + + console.log( + `Successfully sent description for episode ${input} to webhook` + ); + } catch (error) { + console.error("Error updating YouTube description:", error); + process.exit(1); + } +} + +// Get episode number from command line argument +const input = process.argv[2]; +if (!input) { + console.error("Please provide an episode number"); + process.exit(1); +} + +updateYoutubeDescription(input); diff --git a/.github/scripts/validate-episode-markdown.js b/.github/scripts/validate-episode-markdown.js new file mode 100644 index 00000000..d399b691 --- /dev/null +++ b/.github/scripts/validate-episode-markdown.js @@ -0,0 +1,341 @@ +// @ts-check +import { readdirSync, readFileSync } from "fs"; +import { join } from "path"; +import matter from "gray-matter"; + +const markdownLinkRegex = /^(?:[-*]\s*)?\[.+\]\(.+\)$/; + +/** + * @typedef {Object} ValidationError + * @property {number} line - The line number where the error occurred + * @property {string} message - The error message + */ + +/** + * @typedef {Object} ValidationResult + * @property {string} episodePath - The episode file path + * @property {boolean} isValid - Whether the episode is valid + * @property {ValidationError[]} errors - The array of errors + */ + +/** + * Validate the frontmatter of an episode + * @param {Object} frontMatter - The frontmatter object + * @returns {ValidationError[]} errors - The array of errors + */ +const validateFrontMatter = frontMatter => { + const errors = []; + // Enhanced frontmatter validation based on schema.ts + const requiredFrontMatter = [ + "date", + "duration", + "title", + "tags", + "category", + "youtube", + "published", + ]; + + // Validate required fields + requiredFrontMatter.forEach(field => { + if (!frontMatter[field]) { + errors.push({ + line: 1, + message: `Missing required frontmatter field: ${field}`, + }); + } + }); + + // Validate specific fields according to schema + if (frontMatter.title && /["\u0600-\u06FF]/.test(frontMatter.title)) { + errors.push({ + line: 1, + message: "Title cannot contain quotation marks or Arabic characters", + }); + } + + if (frontMatter.youtube && !frontMatter.youtube.startsWith("http")) { + errors.push({ + line: 1, + message: "YouTube field must be a valid URL", + }); + } + + const validCategories = ["dev", "career", "ama", "mss", "book", "ai"]; + if (frontMatter.category && !validCategories.includes(frontMatter.category)) { + errors.push({ + line: 1, + message: `Invalid category. Must be one of: ${validCategories.join(", ")}`, + }); + } + + if ( + frontMatter.duration && + !/^(?:[0-9]|[0-1][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$/.test( + frontMatter.duration + ) + ) { + errors.push({ + line: 1, + message: "Duration must be in HH:MM:SS format (e.g. 12:34:56)", + }); + } + + if (frontMatter.tags && !Array.isArray(frontMatter.tags)) { + errors.push({ + line: 1, + message: "Tags must be an array", + }); + } + + if ( + frontMatter.published !== undefined && + typeof frontMatter.published !== "boolean" + ) { + errors.push({ + line: 1, + message: "Published must be a boolean value", + }); + } + + if ( + frontMatter.featured !== undefined && + typeof frontMatter.featured !== "boolean" + ) { + errors.push({ + line: 1, + message: "Featured must be a boolean value", + }); + } + + return errors; +}; + +/** + * Validate the markdown file for an episode + * @param {string} input - Either episode number or full file path + * @returns {ValidationResult} - An object containing the validation results + */ +function validateEpisodeMarkdown(input) { + const errors = []; + // Determine if input is episode number or path + const filePath = input.includes(".md") + ? input + : join( + process.cwd(), + "episodes", + `episode-${String(input).padStart(4, "0")}.md` + ); + try { + const fileContent = readFileSync(filePath, "utf-8"); + const lines = fileContent.split("\n"); + + // Parse frontmatter and content + const { data: frontMatter } = matter(fileContent); + + const frontMatterErrors = validateFrontMatter(frontMatter); + if (frontMatterErrors.length > 0) { + errors.push(...frontMatterErrors); + } + + // Find line numbers for each section + const sectionLines = { + "## Guests": -1, + "## Notes": -1, + "## Links": -1, + "## Prepared and Presented by": -1, + }; + + lines.forEach((line, index) => { + // Make the check more flexible by trimming and comparing + const trimmedLine = line.trim(); + Object.keys(sectionLines).forEach(section => { + if (trimmedLine === section) { + sectionLines[section] = index + 1; + } + }); + }); + + // Validate main sections if they are present + Object.entries(sectionLines).forEach(([section, lineNum]) => { + if (lineNum === -1) { + errors.push({ + line: -1, + message: `Missing required section: ${section}`, + }); + } + }); + + // Validate Guests format and if every line represents a valid guest format + if (sectionLines["## Guests"] !== -1) { + let currentLine = sectionLines["## Guests"] + 1; + while ( + currentLine < lines.length && + !lines[currentLine].startsWith("##") + ) { + const line = lines[currentLine].trim(); + if (line && !line.match(markdownLinkRegex)) { + errors.push({ + line: currentLine + 1, + message: `Invalid guest format: "${line}". Expected format: "- [Name](link)"`, + }); + } + currentLine++; + } + } + + // Validate Notes format and make sure every line represents a valid note format + if (sectionLines["## Notes"] !== -1) { + let currentLine = sectionLines["## Notes"] + 1; + while ( + currentLine < lines.length && + !lines[currentLine].startsWith("##") + ) { + const line = lines[currentLine].trim(); + if (line && !line.match(/^[0-9]?[0-9]:[0-9]{2}:[0-9]{2} - .+/)) { + errors.push({ + line: currentLine + 1, + message: `Invalid note format: "${line}". Expected format: "HH:MM:SS - Description"`, + }); + } + currentLine++; + } + } + + // Validate Links format and make sure every line represents a valid link format + if (sectionLines["## Links"] !== -1) { + let currentLine = sectionLines["## Links"] + 1; + while ( + currentLine < lines.length && + !lines[currentLine].startsWith("##") + ) { + const line = lines[currentLine].trim(); + if (line && !line.match(markdownLinkRegex)) { + errors.push({ + line: currentLine + 1, + message: `Invalid link format: "${line}". Expected format: "[Title](url)"`, + }); + } + currentLine++; + } + } + + // Update host format validation and make sure every line represents a valid presenter format + if (sectionLines["## Prepared and Presented by"] !== -1) { + let currentLine = sectionLines["## Prepared and Presented by"] + 1; + while ( + currentLine < lines.length && + !lines[currentLine].startsWith("##") + ) { + const line = lines[currentLine].trim(); + if (line && !line.match(markdownLinkRegex)) { + errors.push({ + line: currentLine + 1, + message: `Invalid presenter format: "${line}". Expected format: "[Name](link)" or "- [Name](link)"`, + }); + } + currentLine++; + } + } + + return { + episodePath: filePath, + isValid: errors.length === 0, + errors, + }; + } catch (error) { + errors.push({ + line: 0, + message: `Failed to read or parse episode file: ${error.message}`, + }); + return { + episodePath: filePath, + isValid: false, + errors, + }; + } +} + +/** + * Validate all episodes + * @returns {ValidationResult[]} errors - The array of errors + */ +function validateAllEpisodes() { + const results = []; + const episodesDir = join(process.cwd(), "episodes"); + let episodeCount = 0; + try { + const files = readdirSync(episodesDir); + episodeCount = files.filter( + file => file.startsWith("episode-") && file.endsWith(".md") + ).length; + } catch (error) { + console.error("Failed to read episodes directory:", error.message); + process.exit(1); + } + + if (episodeCount === 0) { + console.error("No episodes found in episodes directory"); + process.exit(1); + } + + for (let i = 1; i <= episodeCount; i++) { + const paddedNumber = String(i).padStart(4, "0"); + const result = validateEpisodeMarkdown(paddedNumber); + results.push(result); + } + + return results; +} + +const main = async () => { + let hasErrors = false; + let totalErrors = 0; + const input = process.argv[2]; + + if (!input) { + console.info("No input provided, validating all episodes"); + const results = validateAllEpisodes(); + const invalidEpisodes = results.filter(result => !result.isValid); + if (invalidEpisodes.length > 0) { + hasErrors = true; + console.error("๐Ÿšจ Validation failed for some episodes. Errors:"); + invalidEpisodes.forEach(result => { + totalErrors++; + console.error(`\nโŒ ${result.episodePath.split("/").pop()}:`); + result.errors.forEach(error => { + console.error(`Line ${error.line}: ${error.message}`); + }); + console.error(""); + }); + } + if (invalidEpisodes.length === 0) { + console.log("โœ… Good Job! All episodes are valid"); + } + } + + // If it's a path, validate single file + if (input) { + const { isValid, errors } = validateEpisodeMarkdown(input); + if (!isValid) { + hasErrors = true; + console.error(`\nValidation failed for ${input}. Errors:`); + errors.forEach(error => { + totalErrors++; + console.error(`Line ${error.line}: ${error.message}`); + }); + } else { + console.log(`โœ… Good Job! ${input} is valid`); + } + } + + if (totalErrors > 0) { + console.log(`Total errors: ${totalErrors}`); + } + + if (hasErrors) { + process.exit(1); + } +}; + +main(); diff --git a/.github/scripts/validate-episode-markdown.sh b/.github/scripts/validate-episode-markdown.sh new file mode 100755 index 00000000..1b831918 --- /dev/null +++ b/.github/scripts/validate-episode-markdown.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# Run expo-doctor and capture output and exit code +output=$(node .github/scripts/validate-episode-markdown.js 2>&1) +exit_code=$? + +# Output file location +output_file=".astro/episode-validation.md" +# Create .astro directory if it doesn't exist +mkdir -p ".astro" + +{ + # Add summary based on exit code + if [ $exit_code -eq 0 ]; then + echo "โœ… **Good news!** We ran Validate Episode Markdown for this PR and everything looks good, Great job!" > "$output_file" + else + echo "โŒ **Action Required:** We ran Validate Episode Markdown for this PR and found some issues that need to be addressed. Please review the complete report below ๐Ÿ‘‡" > "$output_file" + echo >> "$output_file" # Add blank line + echo "\`\`\`shell" >> "$output_file" + echo "$output" >> "$output_file" + echo "\`\`\`" >> "$output_file" + fi +} + +# Show original output in terminal +echo "$output" + +# Return the original exit code +exit $exit_code \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..d563dbbc --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,32 @@ +name: CI Checks + +on: + pull_request: + types: + - opened + - edited + - synchronize + - reopened + workflow_call: + +jobs: + build: + name: Code standards & build + runs-on: ubuntu-latest + timeout-minutes: 3 + + steps: + - name: "โ˜๏ธ Checkout repository" + uses: actions/checkout@v4 + + - name: ๐Ÿ“ฆ Setup Node + PNPM + install deps + uses: ./.github/actions/setup-node-pnpm-install + + - name: "๐Ÿ”Ž Lint code" + run: pnpm run lint + + - name: "๐Ÿงช Run Astro checks" + run: pnpm run astro check + + - name: "๐Ÿš€ Build the project" + run: pnpm run build diff --git a/.github/workflows/compress-images.yml b/.github/workflows/compress-images.yml new file mode 100644 index 00000000..b1de57de --- /dev/null +++ b/.github/workflows/compress-images.yml @@ -0,0 +1,38 @@ +name: Compress images +on: + push: + branches: + - master + - main + - next-astro + paths: + - "**.jpg" + - "**.jpeg" + - "**.png" + - "**.webp" + workflow_dispatch: + +jobs: + build: + name: calibreapp/image-actions + runs-on: ubuntu-latest + steps: + - name: Checkout Branch + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Compress Images + id: calibre + uses: calibreapp/image-actions@main + with: + githubToken: ${{ secrets.GITHUB_TOKEN }} + compressOnly: true + + - name: Create Pull Request + if: steps.calibre.outputs.markdown != '' + uses: peter-evans/create-pull-request@v3 + with: + title: Auto Compress Images + branch-suffix: timestamp + commit-message: Compress Images + body: ${{ steps.calibre.outputs.markdown }} diff --git a/.github/workflows/upload_description.yaml b/.github/workflows/upload_description.yaml deleted file mode 100644 index 72cb14e1..00000000 --- a/.github/workflows/upload_description.yaml +++ /dev/null @@ -1,50 +0,0 @@ -name: Sync Episode Notes with Youtube Description - -on: - workflow_dispatch: - # push: - # branches: [master] - # paths: - # - "blablas/**" - -jobs: - detect_changes: - runs-on: ubuntu-18.04 - steps: - - uses: jitterbit/get-changed-files@v1 - continue-on-error: true - id: files - outputs: - added_modified: ${{ steps.files.outputs.added_modified }} - - upload_description: - runs-on: ubuntu-18.04 - needs: detect_changes - steps: - - uses: actions/checkout@v2 - - - uses: actions/setup-node@v2 - name: Install node - with: - node-version: "14" - cache: "yarn" - - - name: Install Deps - run: yarn install - - - name: Extract descriptions and URLs - id: extract_descriptions_and_urls - env: - YOUTUBE_CLIENT_ID: ${{ secrets.YOUTUBE_CLIENT_ID }} - YOUTUBE_CLIENT_SECRET: ${{ secrets.YOUTUBE_CLIENT_SECRET }} - YOUTUBE_REDIRECT_URL: ${{ secrets.YOUTUBE_REDIRECT_URL }} - YOUTUBE_ACCESS_TOKEN: ${{ secrets.YOUTUBE_ACCESS_TOKEN }} - YOUTUBE_REFRESH_TOKEN: ${{ secrets.YOUTUBE_REFRESH_TOKEN }} - run: | - echo "Changed files" - echo ${{ needs.detect_changes.outputs.added_modified }} - for changed_file in ${{ needs.detect_changes.outputs.added_modified }}; do - if echo $changed_file | grep -q "blablas"; then - yarn upload-description-to-youtube $changed_file - fi - done diff --git a/.github/workflows/upload_episode.yaml b/.github/workflows/upload_episode.yaml deleted file mode 100644 index b3395864..00000000 --- a/.github/workflows/upload_episode.yaml +++ /dev/null @@ -1,52 +0,0 @@ -name: Upload Episode To Anchor Fm - -on: - workflow_dispatch: - push: - branches: [master] - paths: - - "blablas/**" - - "scripts/**" - -jobs: - upload_episode: - timeout-minutes: 12 - runs-on: ubuntu-latest - defaults: - run: - working-directory: scripts - steps: - - name: ๐Ÿ“ฆ Checkout project repo - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: "14" - cache: "yarn" - - name: ๐Ÿ“ฆ Get yarn cache directory path - id: yarn-cache-dir-path - run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - - - name: ๐Ÿ“ฆ Restore Project Dependencies (node_modules) - uses: actions/cache@v3 - id: yarn-cache - with: - path: ${{ steps.yarn-cache-dir-path.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/scripts/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - # Install And Configure youtube-dl - - name: Install And Configure youtube-dl - run: | - sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux -O /usr/local/bin/yt-dlp_linux - sudo chmod a+rx /usr/local/bin/yt-dlp_linux - sudo ln -s /usr/local/bin/yt-dlp_linux /usr/local/bin/yt-dlp - - - name: Install Deps - run: yarn install --immutable - - - name: Generate Podcast Files and Upload Episode To Anchor Using Puppeteer - env: # Or as an environment variable - ANCHOR_EMAIL: ${{ secrets.ANCHOR_EMAIL }} - ANCHOR_PASSWORD: ${{ secrets.ANCHOR_PASSWORD }} - run: yarn upload-to-anchor diff --git a/.github/workflows/validate-episode.yml b/.github/workflows/validate-episode.yml new file mode 100644 index 00000000..34f73cc3 --- /dev/null +++ b/.github/workflows/validate-episode.yml @@ -0,0 +1,37 @@ +name: Validate Episode Files + +on: + pull_request: + paths: + - "episodes/**" + push: + branches: + - master + - main + paths: + - "episodes/**" + +jobs: + validate: + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + + steps: + - uses: actions/checkout@v4 + + - name: ๐Ÿ“ฆ Setup Node + PNPM + install deps + uses: ./.github/actions/setup-node-pnpm-install + + - name: ๐Ÿš‘ Run Validate Episode Markdown + run: | + chmod +x .github/scripts/validate-episode-markdown.sh + .github/scripts/validate-episode-markdown.sh + + - name: Add doctor report as comment on PR + if: github.event_name == 'pull_request' && always() + uses: marocchino/sticky-pull-request-comment@v2 + with: + header: episode-validation + path: .astro/episode-validation.md diff --git a/.gitignore b/.gitignore index 311a4cdb..3c70cda5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,73 +1,34 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript +# build output +dist/ +.output/ -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directories +# dependencies node_modules/ -jspm_packages/ - -# Typescript v1 declaration files -typings/ - -# Optional npm cache directory -.npm -# Optional eslint cache -.eslintcache - -# Optional REPL history -.node_repl_history +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* -# Output of 'npm pack' -*.tgz -# dotenv environment variables file +# environment variables .env +.env.production -# gatsby files -.cache/ -public - -# Mac files +# macOS-specific files .DS_Store -# Yarn -yarn-error.log -.pnp/ -.pnp.js -# Yarn Integrity file -.yarn-integrity - -podcast/episode.m4a -youtube/tokens/** -.idea \ No newline at end of file +# ignore .astro directory +.astro + +# yarn +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions +.pnp.* +.netlify/ +.wrangler/ diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 00000000..a580667a --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,23 @@ +#!/bin/sh + +echo "===\n>> Checking branch name..." + +# Check if branch protection is enabled +if [[ -z $SKIP_BRANCH_PROTECTION ]]; then + BRANCH=$(git rev-parse --abbrev-ref HEAD) + PROTECTED_BRANCHES="^(main|master)" + + if [[ $BRANCH =~ $PROTECTED_BRANCHES ]]; then + echo ">> Direct commits to the $BRANCH branch are not allowed. Please choose a new branch name." + exit 1 + fi +else + echo ">> Skipping branch protection." +fi + +echo ">> Finish checking branch name" +echo ">> Linting your files and fixing them if needed..." + +pnpm lint-staged +pnpm run check + diff --git a/.netlify/state.json b/.netlify/state.json deleted file mode 100644 index ab71b53f..00000000 --- a/.netlify/state.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "siteId": "cc43d13e-36c2-415e-b19a-4a980b31e6bb" -} \ No newline at end of file diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..ef83021a --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +# Expose Astro dependencies for `pnpm` users +shamefully-hoist=true diff --git a/.prettierrc b/.prettierrc index 48e90e8d..5d921d97 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,7 +1,20 @@ { - "endOfLine": "lf", - "semi": false, - "singleQuote": false, + "arrowParens": "avoid", + "semi": true, "tabWidth": 2, - "trailingComma": "es5" + "printWidth": 80, + "singleQuote": false, + "jsxSingleQuote": false, + "trailingComma": "es5", + "bracketSpacing": true, + "endOfLine": "lf", + "plugins": ["prettier-plugin-astro", "prettier-plugin-tailwindcss"], + "overrides": [ + { + "files": "*.astro", + "options": { + "parser": "astro" + } + } + ] } diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..22a15055 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,4 @@ +{ + "recommendations": ["astro-build.astro-vscode"], + "unwantedRecommendations": [] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..d6422097 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "command": "./node_modules/.bin/astro dev", + "name": "Development server", + "request": "launch", + "type": "node-terminal" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..eb9ab528 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "tailwindCSS.experimental.classRegex": [ + ["cva\\(([^)]*)\\)", "[\"'`]([^\"'`]*).*?[\"'`]"], + ["cx\\(([^)]*)\\)", "(?:'|\"|`)([^']*)(?:'|\"|`)"] + ], + "typescript.tsdk": "node_modules/typescript/lib" +} diff --git a/CNAME b/CNAME deleted file mode 100644 index 3a3fedf5..00000000 --- a/CNAME +++ /dev/null @@ -1 +0,0 @@ -geeksblabla.com \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 5169a5e4..00000000 --- a/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 gatsbyjs - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/README.md b/README.md index 9bf424c3..2d75efef 100644 --- a/README.md +++ b/README.md @@ -1,269 +1,165 @@ - - -[![All Contributors](https://img.shields.io/badge/all_contributors-41-orange.svg?style=flat-square)](#contributors-) - -

- - Gatsby - -

-

- GeeksBlabla Website -

+# GeeksBlabla Website -Geeksblabla is a webinar where we meet to share and learn about awesome topics from the best. +> This website is built with [Astro](https://astro.build/) -We Invite knowledgable and interesting people who are not always known to the public so that they can share their experiences. +## Getting Started -We talk about the hottest new topics and explain it to the community in a way that is simple and approachable. +1. Fork and clone the repository -The website is built using [Gatsbyjs](http://gatsbyjs.org) - -## ๐Ÿš€ Quick start - -1. **Fork and clone the project** - - ```sh - git clone git@github.com:your-username/geeksblabla.com.git - ``` +```bash +git clone https://github.com/your-username/geeksblabla.com.git +``` -1. **Start developing.** +2. Install dependencies - Navigate into your new siteโ€™s directory and start it up. +```bash +pnpm install +``` - ```sh - cd geeksblabla.com/ - npm install - gatsby develop - ``` +3. Start the development server -1. **Open the source code and start editing!** +```bash +pnpm run dev +``` - Your site is now running at `http://localhost:8000` +To simplify project management, we added mock data to ensure the website functions in development mode without requiring any external API keys. However, if you want to work with real data for the gallery, episode planning, or adding new episodes through the website, you will need the following API keys: - _Note: You'll also see a second link: _`http://localhost:8000/___graphql`_. This is a tool you can use to experiment with querying your data. Learn more about using this tool in the [Gatsby tutorial](https://www.gatsbyjs.org/tutorial/part-five/#introducing-graphiql)._ +```sh +NOTION_API_KEY= +GEEKSBLABLA_NOTION_DATABASE_ID= +YOUTUBE_API_KEY= +CLOUDINARY_API_SECRET= +PUBLIC_CLOUDINARY_API_KEY= +PUBLIC_CLOUDINARY_CLOUD_NAME= +``` -## ๐Ÿง Want to contribute ? +## ๐Ÿš€ Project Structure + +Inside of your Astro project, you'll see the following folders and files: + +```text +โ”œโ”€โ”€ public/ +โ”œโ”€โ”€ articles/ +โ”œโ”€โ”€ authors/ +โ”œโ”€โ”€ episodes/ +โ”œโ”€โ”€ src/ +โ”‚ โ”œโ”€โ”€ actions/ # astro actions, Api for to connect with notion +โ”‚ โ”œโ”€โ”€ assets/ # images, videos, etc. +โ”‚ โ”œโ”€โ”€ components/ # reusable components +โ”‚ โ”œโ”€โ”€ content/ # content for the blog config, articles, authors, episodes +โ”‚ โ”œโ”€โ”€ lib/ # utils functions +โ”‚ โ””โ”€โ”€ pages/ +โ”œโ”€โ”€ astro.config.mjs +โ”œโ”€โ”€ README.md +โ”œโ”€โ”€ package.json +โ””โ”€โ”€ tsconfig.json +``` -If you want to contribute check out the [help wanted](https://github.com/devC-Casa/geeksblabla.com/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22+sort%3Aupdated-desc) issues for things that need fixing, or suggest some new features by opening new issues. +## ๐Ÿงž Commands -## Add New Episode ? +All commands are run from the root of the project, from a terminal: -1. **Follow the Quick start ๐Ÿ‘†** -2. **Create a new episode folder** +| Command | Action | +| :------------------------- | :----------------------------------------------- | +| `pnpm install` | Installs dependencies | +| `pnpm run dev` | Starts local dev server at `localhost:4321` | +| `pnpm run build` | Build your production site to `./dist/` | +| `pnpm run preview` | Preview your build locally, before deploying | +| `pnpm run astro ...` | Run CLI commands like `astro add`, `astro check` | +| `pnpm run lint` | Run lint | +| `pnpm run check` | Run check | +| `pnpm run check-all` | Run lint, check and build | +| `pnpm run astro -- --help` | Get help using the Astro CLI | - - Duplicate an existing episode folder and rename it with the correct episode number `epX` +## Add a new Episode - - open `index.md` and Make sure to update the following info : +Adding a new episode is as simple as adding a new markdown file to the episodes folder with the following format: - - Episode date, time, duration - - Episode Title : Facebook live stream episode title. - - Tags : At least 1. You should stick to the following approach: - - For abbrevations: all lowercase i.e: "dev" - - For acronyms: all uppercase i.e: "MSS", "UX", "UI", "JS". - - For single and composite words: all lowercase i.e: "software engineering", "mobile dev", "career". - - category: one of the following: "MSS", "AMA", "career", "dev". - - isNext : always `false`. `true` means the episode is the next one and should appear on the footer. - - video : Facebook video id - - featured : default `false`, `true` will show the episode in the TOP EPISODE home page Section +> โš ๏ธ `category` attribute should be one of the following: `dev`, `mss`, `ai`, `career`,`ama` -``` -date: 2019-03-28 -time: 20h -duration: "01:09:00" -title: "Open Source with Yassine Elouafi" -tags: ["open source", "dev"] -category: "dev" -isNext: false -video: "2254365704624093" -youtube: https://www.youtube.com/watch?v=kzYammaow-M +```md +--- +date: 2020-02-16 +duration: "01:40:00" +title: "Side Projects & Indie Hacking" +tags: ["dev", "indie", "career"] +category: "career" +youtube: https://www.youtube.com/watch?v=bDrUAza36ec published: true -featured: false -audio: +--- -``` +Episode description -3 . **Add Episode Notes && Links** +## Guests -Episode Notes should contain three sections: +[Guest 1](https://example.com) -#### Description : +[Guest 2](https://example.com) -A simple description of the episode like the following: +## Notes -``` -In this episode of GeeksBlabla, Geeksblabla team (and guest name in case ) talk about the Web fundamental, new js Frameworks and some best practices you need to follow as a web developer. -``` +00:00:00 - Introduction: Welcoming, guests intro. -### Guests +00:05:00 - Topic 1 -``` -- [guest name 1](https://example.com) -- [guest name 1](https://example2.com) -- .... -``` +00:16:00 - Topic 2 -#### Notes : +00:24:00 - Topic 3 -In the Notes section, you need to collect the most important part of the episode and try to find the right title for it using this format : `h:min - title` +00:32:00 - Topic 4 -``` -0:00:00 - Intro +## Links -0:03:00 - The history of web and W3C? +[Link 1](https://www.example.com) - ... +[Link 2](https://www.example.com) -1:57:00 - when you can find trending web technologies? +## Prepared and Presented by +[Host 1](https://example.com) ``` -> make sure to add a line break between titles +## Add a new Article -#### Links : +To add a new article, follow these steps: -``` -- [W3C](https://www.w3.org/) -- [Reactjs](https://reactjs.org) --.... -``` +1. If this is your first time, you will need to create your author json file in the `authors/` directory. -#### Prepared and Presented by - -``` -- [name](https://example1.com) -- [name 2](https://example2.com) +```json +// authors/author-name.json +{ + "name": "Author Name", + "url": "https://example.dev", + "bio": "Guest bio", + "avatar": "/avatars/avatar.jpg", + "is_core_team": false +} ``` -In the end, the episode markdown file should look like : ๐Ÿ‘‡ +2. Create a new markdown file in the `articles/` directory. +3. Use the following format: -``` +```md --- -date: 2019-03-21 -time: 20h -duration: "1:09" -title: "Introduction to Open Source" -tags: ["open source", "dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=kzYammaow-M -published: true -video: "2244351238958873" -url: -audio: +title: "Article Title" +tags: ["tag1", "tag2", "tag3"] +keywords: ["keyword1", "keyword2", "keyword3"] +pubDatetime: 2024-12-01 +authors: ["author-name"] # the name of the author file +slug: article-slug +description: "Article description" +ogImage: "/og-image.jpg" --- -In this episode of GeeksBlabla, Geeksblabla team (and guest name in case ) talk about the Web fundamental, new js Frameworks and some best practices you need to follow as a web developer. - -## Guests -- [guest name 1](https://example.com) -- [guest name 1](https://example2.com) - -## Notes -h:min - title -0:00:00 - Intro - -0:03:00 - The history of web and W3C? - - ... - -1:57:00 - when you can find trending web technologies? - -## Links - -- [W3C](https://www.w3.org/) -- [Reactjs](https://reactjs.org) --.... - -## Prepared and Presented by -- [name](https://example1.com) -- [name 2](https://example2.com) - - +Article content ``` -4.**Open the source code and start editing!** - -Navigate to `http://localhost:8000/blablas` and Make sure the episode page works as expected - ## Licensing The code in this project is licensed under MIT license. -## Contributors โœจ - -Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Youssouf EL AZIZI
Youssouf EL AZIZI

๐Ÿ’ป ๐Ÿ“– ๐Ÿ–‹ ๐Ÿ‘€
Amine Hakkou
Amine Hakkou

๐Ÿ’ป ๐Ÿ–‹
Soufian El
Soufian El

๐Ÿ’ป ๐Ÿ“– ๐Ÿ–‹ ๐Ÿค”
Aboullaite Mohammed
Aboullaite Mohammed

๐Ÿ–‹ ๐Ÿค”
Ismail El Azizi
Ismail El Azizi

๐ŸŽจ ๐Ÿ–‹
Oussama Hyad
Oussama Hyad

๐ŸŽจ
soubai
soubai

๐Ÿ–‹
IDRISSI Mohamed
IDRISSI Mohamed

๐Ÿ–‹
Iduoad
Iduoad

๐Ÿ–‹
Ismail Tlemรงani
Ismail Tlemรงani

๐Ÿ–‹
Mohamed Ouyizme
Mohamed Ouyizme

๐Ÿ–‹
Mohamed ELBARCHANY
Mohamed ELBARCHANY

๐Ÿ–‹
Khalil El Maghraoui
Khalil El Maghraoui

๐Ÿ–‹
Azi Hassan
Azi Hassan

๐Ÿ–‹
ijja
ijja

๐Ÿ’ป
Mohamed BOUKHLIF
Mohamed BOUKHLIF

๐Ÿ–‹ ๐Ÿ’ป
Abdel SGHIOUAR
Abdel SGHIOUAR

๐Ÿ–‹
Mourad Aouinat
Mourad Aouinat

๐Ÿ–‹ ๐Ÿ’ป
Meriem Zaid
Meriem Zaid

๐Ÿ–‹
Youssef Amzil
Youssef Amzil

๐Ÿ–‹
aymaneMx
aymaneMx

๐Ÿ–‹
Kafil
Kafil

๐Ÿ–‹ ๐Ÿ’ป
Zakaria El Asri
Zakaria El Asri

๐Ÿ–‹ ๐Ÿ’ป
Ahmed NFAIHI
Ahmed NFAIHI

๐Ÿ–‹
arsokay90
arsokay90

๐Ÿ–‹
Mohamed El Bahja
Mohamed El Bahja

๐Ÿ’ป
Mohamed Ait Bouaaza
Mohamed Ait Bouaaza

๐Ÿ–‹
Anas Temouden
Anas Temouden

๐Ÿ–‹
Hamza Makraz
Hamza Makraz

๐Ÿ–‹
Oualid MOUSSAID
Oualid MOUSSAID

๐Ÿ–‹
Abdelhakim Er-rafaiy
Abdelhakim Er-rafaiy

๐Ÿ–‹
Marwane Chaoui
Marwane Chaoui

๐Ÿ’ป
Ayoub NAINIA
Ayoub NAINIA

๐Ÿ–‹
Outama Othmane
Outama Othmane

๐Ÿ–‹
Soufiane Roui
Soufiane Roui

๐Ÿ–‹
otmos
otmos

๐Ÿ–‹
Faissal Wahabali
Faissal Wahabali

๐Ÿ’ป
ZAKARIA ELALAOUI
ZAKARIA ELALAOUI

๐Ÿ–‹
Corentin Deleuse
Corentin Deleuse

๐Ÿ’ป
Elasri Abdelati
Elasri Abdelati

๐Ÿ–‹
Britel Chaimaa
Britel Chaimaa

๐Ÿ–‹
- - - - - - -This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! +## Contributors + +Big thanks to all the code contributors who made this project possible! + +![GeeksBlabla contributors](https://contributors.aika.dev/geeksblabla/geeksblabla.com/contributors.svg?max=44) diff --git a/__mocks__/file-mock.js b/__mocks__/file-mock.js deleted file mode 100644 index ebf20155..00000000 --- a/__mocks__/file-mock.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = "test-file-stub" diff --git a/__mocks__/gatsby.js b/__mocks__/gatsby.js deleted file mode 100644 index f9083d78..00000000 --- a/__mocks__/gatsby.js +++ /dev/null @@ -1,27 +0,0 @@ -const React = require("react") -const gatsby = jest.requireActual("gatsby") - -module.exports = { - ...gatsby, - graphql: jest.fn(), - Link: jest.fn().mockImplementation( - // these props are invalid for an `a` tag - ({ - activeClassName, - activeStyle, - getProps, - innerRef, - partiallyActive, - ref, - replace, - to, - ...rest - }) => - React.createElement("a", { - ...rest, - href: to, - }) - ), - StaticQuery: jest.fn(), - useStaticQuery: jest.fn(), -} diff --git a/articles/10-ways-to-contribute-to-geeksblabla/images/10-ways.png b/articles/10-ways-to-contribute-to-geeksblabla/images/10-ways.png new file mode 100644 index 00000000..a9979f8a Binary files /dev/null and b/articles/10-ways-to-contribute-to-geeksblabla/images/10-ways.png differ diff --git a/articles/10-ways-to-contribute-to-geeksblabla/index.md b/articles/10-ways-to-contribute-to-geeksblabla/index.md new file mode 100644 index 00000000..2dd4e9f2 --- /dev/null +++ b/articles/10-ways-to-contribute-to-geeksblabla/index.md @@ -0,0 +1,129 @@ +--- +title: "10 Ways to Contribute to GeeksBlabla and Make a Lasting Impact" +tags: ["community", "GeeksBlabla", "contributions", "tech"] +keywords: ["GeeksBlabla", "contribute", "Moroccan tech community"] +pubDatetime: 2024-12-01 +authors: ["abdelati"] +slug: contribute-to-geeksblabla +description: "Explore how you can contribute to GeeksBlabla, from sharing feedback to joining the core team, and make a meaningful impact in the Moroccan tech community." +ogImage: "./images/10-ways.png" +--- + +**"How can I contribute to the GeeksBlabla community?"** This is one of the most common questions we receive, and this blog post is here to answer it. + +Contributing to GeeksBlabla goes beyond being a core memberโ€”itโ€™s about making an impact in ways that resonate with you, whether itโ€™s by sharing feedback, suggesting topics, or being a guest on an episode. Some contributions, like giving a talk at BlablaConf, create a ripple effect that continues to inspire others long after. + +Whether you're a student exploring the tech world or a seasoned professional looking to give back, this guide will show you how you can make a difference while growing alongside the community. Letโ€™s get started! + +## 1. Provide Feedback + +Constructive feedback helps us improve. Whether itโ€™s about the shared content, events, or initiatives, Taking a few minutes to share your thoughts and suggestions for new concepts and ideas can spark new initiatives and collaborations, driving the community forward. your input is invaluable in shaping the future the community and by proxy the tech landscape in Morocco. Your feedback helps us understand what resonates with you, what youโ€™d like to see more of, and how we can better serve the community. + +- **Impact:** โญโญโญโญ +- **Difficulty:** โญ +- **Time Investment:** โญ + + + +๐Ÿ“ **Action Item:** [Share your feedback and suggest new concepts](/feedback) + +## 2. Spread the Word + +Help us grow the community by sharing GeeksBlabla content and initiatives with your network. By sharing, you help us discover talented individuals who might become future podcast guests or BlablaConf speakers, enriching our community with valuable knowledge and diverse perspectives. The larger our reach, the more opportunities we create for knowledge sharing and the greater our collective impact on Morocco's tech ecosystem. Tag us when you share, and invite others to join the conversation! + +- **Impact:** โญโญโญโญ +- **Difficulty:** โญ +- **Time Investment:** โญ + +๐Ÿ“ **Action Item:** Repost geeksblabla on social media and share information about the community with your friends. + +## 3. Participate in Online Discussions + +Whether itโ€™s in the comments section of our live episodes or tweets by other community members on X or LinkedIn, sharing feedback on ideas and projects can create a ripple effect. Engaging in live episodes brings your perspective to light and enriches discussions. Similarly, your feedback amplifies the impact of othersโ€™ work. When youโ€™re the one building, creating, or writing, the feedback you receive will push you forward. Cultivating the habit of providing and receiving feedback helps everyone grow together. + +- **Impact:** โญโญโญ +- **Difficulty:** โญ +- **Time Investment:** โญ + +๐Ÿ“ **Action Item:** [Join the conversation on Twitter](https://twitter.com/geeksblabla) + +## 4. Suggest Guests and Topics for Episodes + +One of the best ways to contribute to the GeeksBlabla podcast is by suggesting topics and guests. This helps with one of our most challenging tasks, since we rely on a broad network of connections to find great guests. You might know ideal guests or niche topics that the core team hasn't discovered yet, helping us fill blind spots we wouldn't otherwise see. Plus, you'll benefit from other members' suggestions, discovering new topics and voices. Check our [planning here](/) to suggest an episode or a guest for an episode. + +- **Impact:** โญโญโญโญ +- **Difficulty:** โญ +- **Time Investment:** โญ + +๐Ÿ“ **Action Item:** [Suggest a topic or guest for an episode](/podcast/planning) + +## 5. Be a Guest on an Episode + +Furthermore that #4, if you have expertise in your field, consider being a guest on an episode. Share your knowledge, experiences, and insights to inspire and guide others in the community. You cover an angle that no one else can, and your unique perspective is invaluable to other members. even if you are not an expert, you can share your journey and inspire others. we often learn best from those who are closest to us than we do from experts. + +- **Impact:** โญโญโญโญโญ +- **Difficulty:** โญโญโญ +- **Time Investment:** โญโญ + +๐Ÿ“ **Action Item:** +Suggest a topic youโ€™re passionate about or credible onโ€”itโ€™s an opportunity to showcase your expertise, mentor newcomers, and connect with an engaged audience. Check our [planning here](/podcast/planning) to suggest an episode or a guest for an episode. + +## 6. Create Valuable Content + +Even if you don't have the time or inclination to be a guest or participate in discussions, you can still contribute in the ripple effects by creating content and Geeksblabla can help distribute. +Creating content allows you to help others by writing blog posts or sharing tips on social media about recent discoveries. Don't worry about the size or complexity of your contentโ€”many people can benefit from even the smallest insights. This not only helps others but also reinforces your own learning and contributes to the community's knowledge base. + +- **Impact:** โญโญโญโญโญ +- **Difficulty:** โญโญโญ +- **Time Investment:** โญโญโญ + + + +๐Ÿ“ **Action Item:** [Write a blog post about a recent discovery](/) + +## 7. Organize Meetups / Attend Meetups + +If you're a student or part of a university/school, it's the perfect time to organize or attend meetups. Hosting meetups brings like-minded people together, creates opportunities to network, and fosters collaboration. Invite speakers, host discussions, or simply connect with others to share knowledge and build a stronger local tech network. Need help getting the word out? GeeksBlabla can help promote your meetup through our social media channels and community network, ensuring your event reaches the right audience and attracts engaged participants. + +- **Impact:** โญโญโญโญโญ +- **Difficulty:** โญโญโญ +- **Time Investment:** โญโญโญ + + + +๐Ÿ“ **Action Item:** [Organize a meetup in your University or Area](/) + +## 8. Contribute to Open Source + +Open source contributions are a fantastic way to help the community while building your skills and portfolio. By contributing to GeeksBlablaโ€™s website, projects listed on [Awesome Morocco](https://awesome-morocco.dev/), or even initiatives from other Moroccan tech enthusiasts, you gain real-world experience in coding, problem-solving, and collaborating with others. Beyond improving your technical skills, open source contributions expand your network, showcase your work to potential collaborators or employers, and give you the satisfaction of making a tangible impact on the community. + +- **Impact:** โญโญโญโญโญ +- **Difficulty:** โญโญโญโญ +- **Time Investment:** โญโญโญ + +๐Ÿ“ **Action Item:** [Explore open source projects on Awesome Morocco](https://awesome-morocco.dev/) + +## 9. Share Your Knowledge at BlablaConf + +BlablaConf, our annual conference, is the perfect platform to showcase your expertise and contribute to the Moroccan tech community. Whether you're an experienced professional or a rising talent, your talk can inspire, educate, and spark meaningful conversations. Submit your talk idea during our call for speakers, where youโ€™ll have the chance to present your insights, share unique experiences, and leave a lasting impact on a diverse audience of tech enthusiasts. + +- **Impact:** โญโญโญโญโญ +- **Difficulty:** โญโญโญโญ +- **Time Investment:** โญโญโญโญ + +๐Ÿ“ **Action Item:** [Submit your talk idea for BlablaConf](https://blablaconf.com/) + +## 10. Join the Core Team + +The ultimate form of contribution is joining the core team. Core team members are dedicated volunteers who help drive GeeksBlabla's mission forward through consistent, long-term commitment. As a core team member, you'll help shape the community's direction, organize events, manage initiatives, and mentor others. This role requires significant dedication but offers unparalleled opportunities to develop leadership skills and make a lasting impact. Core team members typically start as active contributors who demonstrate exceptional commitment, initiative, and alignment with GeeksBlabla's values. + +- **Impact:** โญโญโญโญโญ +- **Difficulty:** โญโญโญโญโญ +- **Time Investment:** โญโญโญโญโญ +- **Commitment:** โญโญโญโญโญโญโญโญโญโญโญโญโญ + + + +๐Ÿ“ **Action Item:** [Apply to join the core team](https://tally.so/r/meqj6E) + +> As Plato wisely noted, "The whole is greater than the sum of its parts." This ancient wisdom perfectly captures how individual contributions create ripple effects throughout our tech community. When members share knowledge, organize events, or participate in discussions, they're not just helping GeeksBlabla - they're strengthening the entire Moroccan tech ecosystem. Each action, no matter how small, creates waves of positive change that benefit everyone. Whether it's a student finding inspiration in a podcast episode, a professional expanding their network at BlablaConf, or a developer growing through open-source contributions, these individual efforts combine to foster an environment of collective growth, learning, and innovation. diff --git a/articles/9-tips-for-student/images/10-ways.png b/articles/9-tips-for-student/images/10-ways.png new file mode 100644 index 00000000..a9979f8a Binary files /dev/null and b/articles/9-tips-for-student/images/10-ways.png differ diff --git a/articles/9-tips-for-student/index.md b/articles/9-tips-for-student/index.md new file mode 100644 index 00000000..90c41080 --- /dev/null +++ b/articles/9-tips-for-student/index.md @@ -0,0 +1,183 @@ +--- +title: "9 tips I wish I knew when I was a student" +tags: ["community", "school", "orientation", "tech", "GeeksBlaBla"] +keywords: ["GeeksBlabla", "school", "orientation"] +pubDatetime: 2024-12-01 +authors: ["iduoad"] +slug: tips-for-students +description: "Discover simple and practical advice to help students navigate school life, from learning effectively to standing out, and make the most of your time as a tech student." +ogImage: "./images/10-ways.png" +--- + +Thereโ€™s a saying I used to like: "School is like a free trial for work/life." This is somewhat true because school is the phase in life where we can make mistakes and learn the most. + +On the other hand, school can sometimes be overwhelming, especially for tech students. This can be due to peer pressure, constant comparisons, limited mentoring, scarce resources, and the lack of guidance on what to do, and what not to do. + +Since itโ€™s PFE (end-of-study project) internship season, I thought of sharing some school tips and tricks that worked for me, as well as lessons I learned either during my student years or later on after I graduated. + +## 1. Learn as much as you can + +With all the GPTs and Claudes out there, reading a book or attending a class might feel like a thing of the past. If an AI chatbot can answer all your final exam questions, why even bother learning, right? + +Hereโ€™s the thing: in this age of easily accessible information, and Gen AI, learning is no longer just about acquiring knowledge. Itโ€™s about the cognitive exercise. + +When you consistently learn (even if the topics are irrelevant) your brain gets used to absorbing and processing information. You become a better learner in the process. This means that when youโ€™re faced with something new, youโ€™ll pick it up faster and more efficiently. + +Remember the free trial analogy? Once that trial ends (aka you graduate), the expectations get higher, and the time to meet them gets shorter. If youโ€™ve built the habit of being a good learner, youโ€™ll have a better chance at navigating your career with ease. + +All in all, keep your brain active and working. The best way to do that? Learn. + +> ๐Ÿ’ก Tip: Mix slow learning experiences, like reading books or taking courses, with faster ones, like watching YouTube tutorials or reading blog posts. This will train your brain to adapt to different modes of learning and help you create your own style. + +#### Useful resources + +- ๐Ÿ”— [Awesome Moroccan podcasts](https://awesome-morocco.dev/podcasts): List of Moroccan tech podcasts. +- ๐Ÿ”— [The Missing Semester](https://www.missingsemester.io/): Courses about useful topics often not thaught in school. +- ๐Ÿ”— [MIT Courseware](https://ocw.mit.edu/): MIT course about various tech fields. +- ๐Ÿ”— [Roadmap.sh](https://roadmap.sh/): Roadmap for Software Engineers with resources and projects. + +## 2. Keep Moving + +If thereโ€™s one thing I want you to take away from this post, itโ€™s this: Move. Join school events, participate in communities (online and offline), enter programming competitions, attend hackathons, engage in conversations (Discord servers, Facebook groups, real-life clubs), organize trips... + +Do whatever you want, as long as you move. When you move, you meet new people, expose yourself to new ideas, gain experiences, and unlock opportunities. + +In my fourth year of school, I started saying โ€œyesโ€ to everything. That year was packed with events and connections, many of which helped me find internships and my first job. + +Iโ€™m not saying you have to say yes to everything (it maybe be not the healthiest approach) but as long as youโ€™re putting yourself out there, youโ€™re increasing your chances of landing opportunities. + +Opportunities follow the laws of physics: either you move toward them, or they move toward you. The bigger the opportunity, the harder it is for it to come to you ๐Ÿ˜‰. + +#### Useful resources + +- ๐Ÿ”— [Geeksblabla](https://www.linkedin.com/company/geeksblabla-community/): Follow us on social media. We often share Moroccan tech events. +- ๐Ÿ”— [Morocco Valley](https://moroccovalley.ai/): Morocco Valley are doing a great job curating Moroccan tech and AI events. +- ๐Ÿ”— [Developers Conferences Agenda](https://github.com/scraly/developers-conferences-agenda): CFP agenda for tech events all over the world. +- ๐Ÿ”— [Devpost](https://devpost.com/): A listing and a community around hackathon world-wide. +- ๐Ÿ”— [Hackathon.com](https://www.hackathon.com/): Same as Devpost but is more general. + +> ๐Ÿ’ก Tip: If you can't find the community or event that matches your interests, take the initiative and create it ๐Ÿ˜‰. + +## 3. Donโ€™t fear unfinished projects + +If youโ€™re a tech student or a tech person in general, thereโ€™s a high chance youโ€™ve got at least one unfinished project lying around. + +When I was in school, I always felt the need to finish all my projects. This perfectionism held me back from starting new ones and kept me stuck maintaining old projects I didnโ€™t care about anymore. + +It took me a lot of time and frustration to accept the fact that itโ€™s okay to have unfinished projects. And from then, I started focusing on learning and value instead of maintaining dead projects. + +> ๐Ÿ’ก Tip: Before starting a project, define its Definition of Done (DoD) and involve others (contributors, peers, clients, etc.) in the process. This helps with continuity and keeps you motivated to finish or at least make progress on the project. + +#### Useful resources + +- ๐Ÿ”— [ALTs Morocco](https://x.com/altsmorocco): A community of young Moroccan builders. +- ๐Ÿ”— [Product Hunt](https://www.producthunt.com/): Get inspired and Build your project in Public. + +## 4. Take a step back, be different + +A few years ago, I took the initiative of reviewing resumes from final-year students at my school. + +To my surprise, almost all of them looked the same. This shouldnโ€™t be shocking since everyone studies the same courses and works on the same school projects. + +Later, I spoke to some recruiter friends who confirmed they see the same pattern every year from PFE candidates. + +Now that Iโ€™m saying it, it seems obvious. But as a student, itโ€™s not. Itโ€™s a trap most students (myself included) fall into. + +Take a step back and always look for ways to differentiate yourself from your peers. This is where moving and working on unfinished projects come in handy. ๐Ÿ˜„ + +#### Useful resources + +- ๐Ÿ”— [Making out the most out of your PFE internship](https://www.youtube.com/watch?v=uhLeoSeZxz8): Geeksblala's podcast episode about PFE interships. +- ๐Ÿ”— [Computer Science Morocco Community](https://www.youtube.com/@cs-morocco): Moroccan community for people interested in competetive programming and software engineering in general. +- ๐Ÿ”— [Build your own X](https://github.com/codecrafters-io/build-your-own-x): Collection of resources on how to build common software from scratch. + +## 5. Use school projects to your advantage + +School projects are a fantastic opportunity to learn. Even better if theyโ€™re fun and interesting. + +My advice is always to try to make your school projects work for you. + +First, if possible, negotiate the topic to align with your interests. + +Then focus on what is offers you the most value and delegate the less interesting parts to your teammates, open-source code, or even no-code tools. + +Finally, publish the project and make it available for everyone to check. This will help your brand and help you connect to link-minded people from the community. + +All of this not only helps you stay engaged but also differentiates your work, even if itโ€™s technically the same project as everyone elseโ€™s. + +#### Useful resources + +- ๐Ÿ”— [SaaS Lifecycle in Morocco](https://www.youtube.com/watch?v=0R7eUTy51UQ): Geeksblabla's episode about SaaS. +- ๐Ÿ”— [No Code tools directory](https://www.nocode.tech/tools): List of no-code tools +- ๐Ÿ”— [10 Tips To Host Your Web Apps For Free](https://blog.patricktriest.com/host-webapps-free/): Good article about hosting web apps for free. + +## 6. Contribute to open source + +This is one of the most overrated yet invaluable pieces of advice I got as a student. + +Back then, I thought: How can someone who doesnโ€™t even know if HTML is a programming language contribute to open source? + +To be honnest, that was on me. I didnโ€™t understand what โ€œcontributing to open sourceโ€ really meant. Contributing to OSS isnโ€™t always about writing code. + +Start by using open-source tools. This alone is a form of contribution. Then, engage with the community: read the code, ask questions, open issues, suggest ideas, or join discussions on forums and Discord. + +Even without contributing a single line of code, this process will teach you how software works, help you build a name for yourself in the community, and prepare you to contribute code when youโ€™re ready. + +> ๐Ÿ’ก Tip: Building your own open-source project also counts as OSS contribution. ๐Ÿ˜‰ + +#### Useful resources + +- ๐Ÿ”— [Open Source & Hacktoberfest 21](https://www.youtube.com/watch?v=T0ebJvUiDG4): A Geeksblabla episode about Open Source. +- ๐Ÿ”— [Moroccan Open Source projects](https://awesome-morocco.dev/open-source): List of Moroccan Open Source projects. +- ๐Ÿ”— [Open Source Guide](https://opensource.guide/): Various guides on how to contribute to open source. +- ๐Ÿ”— [Up for grabs](https://up-for-grabs.net/#/): A curation of new contributor friendly issues on various OSS projects. +- ๐Ÿ”— [JAM stack](https://jamstack.org/): Everything you need to start a Blog. + +## 7. Customize your work environment + +A good dev/work environment is one of the most underrated aspects of our industry. + +Having a well-optimized setup can make you significantly more productive. It can even become a differentiator in your career. + +Setting up a good environment takes time, so start experimenting while youโ€™re still in school. Try different OSes, IDEs, terminalsโ€”whatever helps you find your flow. + +The earlier you start, the better. And the process of building your setup will teach you skills thatโ€™ll make you a better software engineer. + +#### Useful resources + +- ๐Ÿ”— [Unix Customization community](https://www.reddit.com/r/unixporn/) +- ๐Ÿ”— [Awesome dotfiles](https://github.com/webpro/awesome-dotfiles) +- ๐Ÿ”— [Terminals are sexy](https://github.com/k4m4/terminals-are-sexy) + +## 8. Use your student privileges + +One of the trickiest parts of being a student is having limited financial resources. This makes it hard to pay for learning materials. + +When I was a student, Iโ€™d often bargain using the classic โ€œHna ghir talabaโ€ line. Surprisingly, many students underutilize their status when it comes to accessing resources. + +Beyond free resources like free-for-dev, students can access programs like the GitHub Student Pack, which includes free or discounted plans for cloud providers, industry-grade IDEs, and learning platforms. + +All you need is a university email or a student certificate. + +> ๐Ÿ’ก Tip: If a product you like isnโ€™t on these lists, email the founders or support team for a student discount. It sometimes works. + +#### Useful resources + +- ๐Ÿ”— [GitHub Student Developer Pack](https://education.github.com/pack): Best pack for tech students. It contains many goodies. +- ๐Ÿ”— [Azure for Students](https://azure.microsoft.com/en-us/free/students/): Free Azure cloud credits. +- ๐Ÿ”— [Awesome Students](https://github.com/atilatech/awesome-students): A List of resources free for students. +- ๐Ÿ”— [Free For Dev](https://free-for.dev/#/): List of free resources for developers and builders. +- ๐Ÿ”— [Free Stuff](https://freestuff.dev/): Similar to free for dev. + +## 9. Have fun + +Travel whenever you can, read books, join local communities, learn an instrument, or pick up a sport. + +School is great and all, but on its own, itโ€™s often not enough to make you a well-rounded software engineer and a good human being. + +#### Useful resources + +- ๐Ÿ”— [Instructables](https://www.instructables.com/): A huge DIY community. +- ๐Ÿ”— [Meetup](https://www.meetup.com): Explore meetups an events near you. +- ๐Ÿ”— [Mrrakc Maps](https://maps.mrrakc.com/): A curation of maps for various regions of Morocco. +- ๐Ÿ”— [Project Gutenberg](https://www.gutenberg.org/): A huge collection of free books. diff --git a/articles/geeksblabla-campus/images/geeksblabla-campus-logo.png b/articles/geeksblabla-campus/images/geeksblabla-campus-logo.png new file mode 100644 index 00000000..a9979f8a Binary files /dev/null and b/articles/geeksblabla-campus/images/geeksblabla-campus-logo.png differ diff --git a/articles/geeksblabla-campus/index.md b/articles/geeksblabla-campus/index.md new file mode 100644 index 00000000..9f9d32a5 --- /dev/null +++ b/articles/geeksblabla-campus/index.md @@ -0,0 +1,39 @@ +--- +title: "Geeksblabla on Campus: Bridging Communities and Tech Enthusiasts Across Morocco" +tags: ["community", "GeeksBlabla"] +keywords: ["GeeksBlabla", "Morocco", "Universities", "Events"] +pubDatetime: 2025-01-21 +authors: ["makraz"] # the name of the author file +description: "Discover how Geeksblabla Campus is empowering students, fostering collaboration, and growing Morocco's tech ecosystem through university partnerships." +ogImage: "./images/geeksblabla-campus-logo.png" +--- + +Before COVID-19, we had a successful initiative called "DevC Tours" where we visited universities across Morocco to host workshops and connect with students. People from the community's earlier days might remember the React Workshops and the Docker Tour we hosted all over Morocco. + +As we all know, the pandemic hit, and we had to pivot. But today, we have good news. + +## Geeksblabla on Campus? + +In the last two years, our team members received numerous invitations from university clubs to speak at their events, and they happily participated whenever possible. Today, we're excited to announce that you can now officially invite GeeksBlaBla to your school through our structured program! + +Geeksblabla on Campus is our way to bring Geeksblabla to schools again. We will be working with clubs from Moroccan universities to organize events that focus on technology, and community building. + +## Key Objectives + +**Knowledge Sharing:** As we typically do through our initiatives, we will share knowledge about technology and how to create things. + +**Community Building:** We believe students are the future of our community, and we want to help them build their networks and learn from one another. + +**Networking Opportunities:** Provide a platform for students to connect with industry experts and potential mentors. + +## How Does It Work? + +In a simple words, we will collaborate with university clubs to organize technology-focused events. Students will handle the organization, and we will ensure that the right speakers are invited to share their knowledge. + +## Get Involved! + +Are you a part of a university club interested in collaborating with Geeksblabla on Campus? Do you want to organize an event in your university? Fill the form below and we will get back to you as soon as possible. + +๐Ÿ‘‰ [Geeksblabla on Campus Form](https://forms.gle/234567890) + +As always, this is a new initiative and we are open to any suggestions and feedback, make sure to drop a comment below. diff --git a/articles/geeksblabla-story/images/devc-casablanca.jpg b/articles/geeksblabla-story/images/devc-casablanca.jpg new file mode 100644 index 00000000..96832e54 Binary files /dev/null and b/articles/geeksblabla-story/images/devc-casablanca.jpg differ diff --git a/articles/geeksblabla-story/images/geeksblabla-devc-logo.jpg b/articles/geeksblabla-story/images/geeksblabla-devc-logo.jpg new file mode 100644 index 00000000..fa8cf417 Binary files /dev/null and b/articles/geeksblabla-story/images/geeksblabla-devc-logo.jpg differ diff --git a/articles/geeksblabla-story/images/geeksblabla-timeline.png b/articles/geeksblabla-story/images/geeksblabla-timeline.png new file mode 100644 index 00000000..326aa550 Binary files /dev/null and b/articles/geeksblabla-story/images/geeksblabla-timeline.png differ diff --git a/articles/geeksblabla-story/index.md b/articles/geeksblabla-story/index.md new file mode 100644 index 00000000..1aa68351 --- /dev/null +++ b/articles/geeksblabla-story/index.md @@ -0,0 +1,80 @@ +--- +title: "When Passion Meets Purpose: The GeeksBlaBla Story" +tags: ["community", "GeeksBlabla"] +keywords: ["GeeksBlabla", "Moroccan tech community"] +pubDatetime: 2024-12-01 +authors: ["aboullaite"] # the name of the author file +description: "Discover the inspiring journey of GeeksBlaBla, from its humble beginnings as a Ramadan discussion series to becoming a thriving Moroccan tech community built on knowledge sharing, diversity, and social impact." +ogImage: "./images/geeksblabla-timeline.png" +--- + +It is still surreal to me how Geeksblabla grew from this small community of enthusiasts, just talking about anything and everything, to a community as big as it is today, with everything that comes with it (Drama included\!). + +But that hasn't always been the case, and probably wasn't in our bingo card for most of the (older) team members. Our goal was just to share some of our passion with the Moroccan community, in Moroccan Darija, since believe it or not, this wasn't the case in 2016 onwards. + +## The Very Beginning + +You may have heard about it before, or maybe not. But Geeksblabla today owes some of its success to its ancestor community Developer Circles Casablanca. A hybrid community that was built on a Facebook group with support from Facebook (now Meta) back in 2016\. +![Geeksblabla beginning](./images/devc-casablanca.jpg) + +At some point, DevC Casa was the most active DevC community online in terms of engagement, which lead our efforts towards more online content creation given that it was easier to host and scale (if the internet allows it for sure). + +However, I was, and still am, a strong believer in offline meetups and face-to-face gatherings. DevC hosted at least monthly events where many known faces in the community gave their first sessions, including myself. It was tough, exhausting for most of us, but enjoyable nevertheless and that is what kept us going. + +At its core, DevC Casa is what helped us meet and build a core team. This team later on embarked on a journey to build Geeksblabla as it is today. +I owe a lot to Meryem Zaid, one of the earliest members who has been with me for most of the journey\! + +## GeeksBlaBla is Born + +Geeksblabla came out from a very unexpected, very simple idea, in a relatively weird timing\! We wanted to build upon the online success that we had in the online group and host a small, Ramadan-exclusive series of very informal tech discussions during Ramadan nights. In total, we were planning 4 episodes, 1 hour-ish each and moving on. That's really it\! No big plans, no defined structure โ€ฆ just having fun. +![Geeksblabla is born](./images/geeksblabla-devc-logo.jpg) + +On our 1st night, what was intended to be an hour-long discussion, ended up being 3-hour-long fun and informal discussions on the DevC Facebook group. We certainly liked the vibes and the fruits of that session, and everyone was certain that we needed to keep this lively session alive. + +As everything in Geeksblabla, and what defined our first strategy and guiding principle is "**experiment, reiterate, grow**"\! It is one thing to host a one-off successful initiative, and another thing to build on that success and be consistent with it. + +We try as much as possible to not kill initiatives and plan thoroughly for them. It doesn't need to be perfect, it doesn't need to be unique, it just needs to be consistent. What we figured out soon after, and become our second principle "**KISS**": Keep it simple, stupid. And the reason is pretty obvious. Geeksblabla is community-based, run by volunteers who have their own lives and careers. Plans might change, and someone else needs to quickly jump in and host an episode or run an initiative by keeping the onboarding cost very low. + +Combining these two principles, we started with a 1-month cadence afterwards, then bi-weekly and settled on a weekly cadence. Both Soufiane El Foukahi and Youssouf El Azizi played a fundamental role in pushing the limit and turning Geeksblabla into what it has become now. + +**So What ?** + +If you've made it this far, first, thank you for bearing with my writing. You might be more curious about Geeksblabla now, eager to understand what makes us tick, rather than just dwelling on our past. Let me show you what we're all about. + +## Our North Star: Mission and Values + +In the vast landscape of technology, communities are more than just groupsโ€”they're catalysts of change, learning, and collective growth. GeeksBlaBla might not be the largest or most famous community in Morocco, but we have something unique: a genuine passion for bringing people together, breaking down barriers, and helping each tech enthusiast find their path. + +## Our Mission + +> **To Empower Moroccan ๐Ÿ‡ฒ๐Ÿ‡ฆ IT enthusiasts and beyond to thrive through continuous learning, exchange, collaboration, and innovation.** + +This isn't merely a statement, although it is technically one\! We think of it as our commitment to breaking down barriers, democratizing knowledge, and creating meaningful opportunities for tech enthusiasts across Morocco. We are all Moroccan tech enthusiasts, with a deep love for our country and great passion for IT. + +Our journey hasn't just been about growthโ€”it's been a transformation. Since our beginnings, we've evolved from a small group of tech enthusiasts to a vibrant community, but our core spirit remains the same (at least we hope so). It wasn't smooth, it wasn't simple, but it was real. Through intense conversations and shared passion, we defined out three fundamental pillars that would become our north star: + +- **Knowledge Exchange**: We aim to create a supportive environment that bridges the gap between novice learners and seasoned professionals. Every member has something to learn and something to teach. +- **Inclusive Diversity**: We embrace different perspectives and backgrounds, understanding that true innovation comes from varied experiences and inclusive thinking. +- **Tech for Social Impact:** We believe in harnessing the collective power of our community to drive positive change, using technology as a tool for social good. + +## Our Guiding Values + +Every community needs a structure, a rhythm, and a base that shows what its actions are all about. A set of values acts as a compass, guiding us honestly and giving us something to hold onto when we're not sure what to do. We have found six core values that, even though they don't cover everything, show who we are the most. We want to keep these values and live by them all the time. + +- **Consistency**: โ€œTalk is cheap, show the codeโ€ is something we bring now and then in the developer discussion. The same applies to Geeksblabla. We don't just talk; we show up. Week after week, initiative after initiative, we deliver. Knowing we'll be present, engaged, and reliable, our community can count on us. +- **Simplicity**: In a world of complex technologies, fast pace, and rapid innovation, we believe in making knowledge accessible. We break down intricate concepts, lower or even remove barriers to entry, and ensure that technology isn't a mysterious realm but an open playground for learning. +- **Transparency**: The core team of dedicated and talented colenteers, guides our efforts with transparency in mind. We believe that transparency is not a destination but an ongoing journey. We actively share our processes, challenges, and successes, fostering open communication and building genuine trust within our community. No hidden agendas or closed doors hinder our commitment to transparency. +- **Inclusiveness**: Technology knows no boundaries. We create a welcoming space that transcends experience level, background, ordomain. +- **Empathy**: Behind every line of code is a human story. We understand that each learning journey is unique. We listen, support, and create an environment where mistakes are learning opportunities and every achievement is celebrated. +- **Accountability**: We take ownershipโ€”of our learning, our contributions, and the impact we create. When we commit, we follow through, individually and collectively. + +## Closing Thoughts + +I hope this article helps you understand what Geeksblabla is all about. We're more than just a tech community \- we're a family of learners, dreamers, and innovators. + +A heartfelt thank you to everyone who has been part of our journey. To our past core team members who laid the foundation of Geeksblabla, your vision and dedication have been the cornerstone of our growth. Our incredible podcast guests who continue to generously share their knowledge and inspiring stories \- you've been the voice that has educated and motivated our community. To all BlaBlaConf speakers, thank you for bringing your expertise and insight to our special event and connecting our community across digital spaces. + +We extend our gratitude to every community member, from the long-time contributors to the newest participants. Each of you has played a crucial role in creating this vibrant, supportive ecosystem of tech enthusiasts and lifelong learners. + +Our story is still being written, and we can't wait to see what chapters come next. If you're passionate about technology, curious about learning, or just want to be part of something amazing, Geeksblabla is waiting for you. +The best is yet to come. diff --git a/articles/organizing-tech-hackathon-at-15/images/image1.jpg b/articles/organizing-tech-hackathon-at-15/images/image1.jpg new file mode 100644 index 00000000..ca8314ca Binary files /dev/null and b/articles/organizing-tech-hackathon-at-15/images/image1.jpg differ diff --git a/articles/organizing-tech-hackathon-at-15/images/image10.jpg b/articles/organizing-tech-hackathon-at-15/images/image10.jpg new file mode 100644 index 00000000..5324e908 Binary files /dev/null and b/articles/organizing-tech-hackathon-at-15/images/image10.jpg differ diff --git a/articles/organizing-tech-hackathon-at-15/images/image11.png b/articles/organizing-tech-hackathon-at-15/images/image11.png new file mode 100644 index 00000000..b1c154bb Binary files /dev/null and b/articles/organizing-tech-hackathon-at-15/images/image11.png differ diff --git a/articles/organizing-tech-hackathon-at-15/images/image2.jpg b/articles/organizing-tech-hackathon-at-15/images/image2.jpg new file mode 100644 index 00000000..b4fa2e2f Binary files /dev/null and b/articles/organizing-tech-hackathon-at-15/images/image2.jpg differ diff --git a/articles/organizing-tech-hackathon-at-15/images/image3.png b/articles/organizing-tech-hackathon-at-15/images/image3.png new file mode 100644 index 00000000..4b9d5c3d Binary files /dev/null and b/articles/organizing-tech-hackathon-at-15/images/image3.png differ diff --git a/articles/organizing-tech-hackathon-at-15/images/image4.png b/articles/organizing-tech-hackathon-at-15/images/image4.png new file mode 100644 index 00000000..ff3d25ac Binary files /dev/null and b/articles/organizing-tech-hackathon-at-15/images/image4.png differ diff --git a/articles/organizing-tech-hackathon-at-15/images/image5.jpg b/articles/organizing-tech-hackathon-at-15/images/image5.jpg new file mode 100644 index 00000000..eb5182e6 Binary files /dev/null and b/articles/organizing-tech-hackathon-at-15/images/image5.jpg differ diff --git a/articles/organizing-tech-hackathon-at-15/images/image6.png b/articles/organizing-tech-hackathon-at-15/images/image6.png new file mode 100644 index 00000000..a43e53a4 Binary files /dev/null and b/articles/organizing-tech-hackathon-at-15/images/image6.png differ diff --git a/articles/organizing-tech-hackathon-at-15/images/image7.png b/articles/organizing-tech-hackathon-at-15/images/image7.png new file mode 100644 index 00000000..16e74080 Binary files /dev/null and b/articles/organizing-tech-hackathon-at-15/images/image7.png differ diff --git a/articles/organizing-tech-hackathon-at-15/images/image8.png b/articles/organizing-tech-hackathon-at-15/images/image8.png new file mode 100644 index 00000000..3f69df56 Binary files /dev/null and b/articles/organizing-tech-hackathon-at-15/images/image8.png differ diff --git a/articles/organizing-tech-hackathon-at-15/images/image9.png b/articles/organizing-tech-hackathon-at-15/images/image9.png new file mode 100644 index 00000000..52f332c5 Binary files /dev/null and b/articles/organizing-tech-hackathon-at-15/images/image9.png differ diff --git a/articles/organizing-tech-hackathon-at-15/index.md b/articles/organizing-tech-hackathon-at-15/index.md new file mode 100644 index 00000000..e0d67115 --- /dev/null +++ b/articles/organizing-tech-hackathon-at-15/index.md @@ -0,0 +1,266 @@ +--- +title: "How I Organized a Tech Hackathon as a 15-Year-Old" +tags: + [ + "hackathons", + "teens in tech", + "game development", + "morocco tech community", + "game jam", + "coding events", + ] +keywords: + [ + "How to organize a hackathon", + "High school hackathon story", + "Tech event for teenagers", + "Student-led hackathon", + "Tech events in Morocco", + "Coding for teens", + ] +pubDatetime: 2025-01-02 +authors: ["elidrissi"] +slug: organizing-tech-hackathon-at-15 +ogImage: ./images/image1.jpg +description: "Organizing a tech event as a teenager might sound overwhelming, but itโ€™s exactly what I did when I brought Counterspell Casablanca, the cityโ€™s first teenage-led game jam, to life. From planning and challenges to the joy of seeing it all come together, this journey is about turning an ambitious idea into reality. Whether you're curious about hackathons, event planning, or just want to see whatโ€™s possible with a little determination, I hope this story inspires yours." +--- + +Have you ever tried doing something youโ€™ve never done before and werenโ€™t sure if you could pull it off? + +Hey there\! Iโ€™m Hafsa, a homeschooled high schooler from Casablanca, Morocco, and a member of [Hack Club](https://hackclub.com/), the largest global community of technical teenagers. In mid-November 2024, I took on the challenge of organizing [Counterspell Casablanca](https://counterspell.hackclub.com/casablanca)โ€”my cityโ€™s first-ever teenage-led game-jam hackathon and part of a global event happening in over 60 cities. + +This article is about how I went from wondering if I could organize a hackathon to making it a reality, and everything I learned along the way. + +## ๐Ÿ’ก Getting the inspiration + +Letโ€™s start at the very beginning: how I discovered this event and convinced myself to organize it. + +In the summer of 2024, I joined one of Hack Clubโ€™s programs called [Arcade](https://hackclub.com/arcade/). This program encouraged teens to build projects, and based on the time they spent working on them, they earned tickets. These tickets could then be exchanged for prizes like Raspberry Pis, keyboards, MacBooks, GitHub swag, and so much more. + +I managed to get a few prizes, and each time, they came with a card explaining what Hack Club is. On my last order of the program, at the end of the summer, something was different. The card didnโ€™t just talk about Hack Club; it introduced some of the other programs they offer. Thatโ€™s when one program, in particular, caught my eye. + +![Card describing Hack Club's fall programs](./images/image5.jpg) + +It was Counterspell. At first, I thought it would be really cool to finally join a hackathon since I had never been to one before. I headed to the website to check it out and started reading about it. It seemed so fun, and I was already getting excited, thinking about the kind of game I could make and the new things I could learn. + +Then I got to the signup form. There were two options: one to register as a participant and another to apply as an organizer. I went straight for the participant form, filled out all my details, and reached the part where I had to select my event. Thatโ€™s when I realized that there wasnโ€™t a single Counterspell event in the whole Maghreb region. I was pretty upset at first, but after a little while, I just moved on. + +Fast-forward a few days, and the organizer form crossed my mind again, so I decided to take another look. Before applying, there was a message from Hack Clubโ€™s events lead (below), and it really stuck with me. + +![Deven describing his experience on organizing hackathons](./images/image11.png) + +The idea of bringing Hack Clubโ€™s magic to my city sounded awesome. Iโ€™d seen how they ran these super cool hackathons like [Apocalypse](https://www.youtube.com/watch?v=QvCoISXfcE8&t) and [Wonderland](https://www.youtube.com/watch?v=X1EVT0vUxAg), and I thought, why not do something like that here? It felt like a chance to introduce local teens to Hack Club and give them the chance to be part of something bigger. +But then, I started overthinking. I mean, I had never even attended a hackathon before, so how could I possibly organize one? What if no one showed up? What if people just werenโ€™t interested? Those questions made me hesitate, so I decided to wait for the kickoff call for organizers, which was open to everyone, before making my decision. + +When the day of the kickoff call came around, I joined, hoping it would help me figure out if this was something I could actually pull off. As I listened, I heard stories from other teens who were just as excited (and just as nervous) about organizing their own events. It was honestly so inspiring. The Hack Club team shared tips and advice, but what stuck with me most was when they said that anyone, no matter their experience, could make it happen with the right mindset and support. Thatโ€™s when it clicked for me: everyone has to start somewhere, so why not me? + +After the call, I felt a mix of excitement and nerves, but Hack Clubโ€™s promise to guide us every step of the way made me believe I could actually do this. It felt like a chance I couldnโ€™t let slip by, so I took a deep breath, opened the organizer form, and decided to go for it. + +A few days later, I got an email saying I was officially accepted as an organizer. Thatโ€™s when it hit me: I had just committed to organizing a teenage hackathon in Casablanca, a city where events like these arenโ€™t very common. This thought was equally exciting and terrifying. But I knew that Iโ€™d never know what I was capable of unless I gave it a shot. So, I made a promise to myselfโ€”Iโ€™d take it one step at a time, trust the process, and figure it out as I went. And whenever a problem came up, Iโ€™d somehow find a solution. + +## ๐Ÿš€ Starting out + +The first thing I did was start looking for venues because, after all, we needed a space to host the hackathon. To keep everything organized, I created a Google Sheet where I listed all the potential venues, along with the name of the person in charge and their email address. This allowed me to track my outreach efforts and stay on top of who I had contacted. + +I also started pitching the idea to potential teenage co-organizers who could help. I knew it would be a lot of work, and I wanted a team whoโ€™d share my excitement and passion for this event (and also make this a less daunting task). By the end, we were a team of four, and together, we all started sending out emails to potential venues. + +At the same time, I realized something important: I had never attended an in-person hackathon before. How could I organize something Iโ€™d never experienced myself? I needed to see what it looked likeโ€”not just from the perspective of a participant but also from the perspective of an organizer. + +I searched for in-person hackathons in Casablanca, but there werenโ€™t any, only virtual ones. The closest option was the NASA Space Apps Hackathon in Tangier. Luckily, I knew one of the organizers, [Laila Berchane](https://ma.linkedin.com/in/lailaberchane) (who also lived in Casablanca), so I decided to travel there with her. Not only would I get to see the event from behind the scenes, but Iโ€™d also have the chance to experience it as a participant and pitch my hackathon idea to her. She ended up liking the idea and offered to support us by sharing her insights and even sponsoring us\! + +The experience was worth every moment. (Hereโ€™s a group photo below\!) I walked away with a much clearer picture of what an in-person hackathon should feel like. I also learned some important details. For instance, not everyone who signs up will actually attend; out of 60 people registered, only about 21 showed up. Another tip was to have participants form teams at the event rather than beforehandโ€”it makes things smoother for those who come solo and prevents anyone from feeling left out. + +![NASA Space Apps in Tangier group photo](./images/image2.jpg) + +Anyways, back to the venue search. After we compiled a list of potential venues, the next step was to figure out who to contact. We were mainly looking for people at the C-suite level, as theyโ€™re the ones who can make the decision, but also project managers or anyone who might have the authority to help us out. Honestly, this part was tough. Finding the right person to reach out to was way harder than I expected. Writing the email and figuring out the venue was easy compared to finding the right contact. + +If youโ€™re in the same situation, my advice is to check the venueโ€™s website first to see if they have contact details. If not, tools like RocketReach.co or Apollo.io are helpful, but for me, LinkedIn worked best. I found that connecting with people there and sending a direct message was the most effective approach. + +So, after sending out tons of emails to different venues and people, we were met with complete silence, which was incredibly discouraging for me and my team. It felt like we were hitting a dead end, so we decided to ask around and see if anyone knew a place that might be willing to host the hackathon. We got a few contacts and reached out, and eventually, we got an okay from a school (Subrini Val Fleuri). Initially, we had our hopes set on finding a sleek, modern venue, like something in Technopark Casablanca, but we were still incredibly grateful to have a space secured. + +We visited the school to make sure it would be suitable for the event, and after that, we signed a Memorandum of Understanding (MoU) to officially secure the venue. At that point, we thought we had everything in place for our originally planned 12-hour hackathon. + +Then, for some reason, a few days before signing the MoU with the school, I decided to follow up on an email I had sent to one of the venues we really wanted: ALX Morocco in Technopark Casablanca. And guess what? They responded positively the very next dayโ€”just after we had already signed the MoU with the school\! Our team and I were overjoyed, but there was a problem: we had already signed the contract with the school. We couldnโ€™t just back out of that and move everything to ALX Morocco. + +But I really wanted Technopark. So, after a very long debate with my teammates, we decided to make the hackathon a two-day event: Day 1 at the school and Day 2 at ALX Morocco. Some of us were still conflicted about this decision, especially with concerns that everyone would show up on Day 1, but very few would attend on Day 2\. We went with it anyway, and looking back, it was definitely the right call\! + +Looking back, this whole process taught me a lot. Here are some key lessons I took away from this stage: + +- **Follow up is crucial**: Sometimes, a simple follow-up email can make all the difference. I almost missed out on a great opportunity with ALX Morocco because I didnโ€™t follow up earlier. +- **Be flexible**: Plans will change, and thatโ€™s okay. Be open to adapting as you go. We had to shift from a one-day to a two-day hackathon, and it ended up being a great decision. +- **Ask for help**: When we were struggling with our venue search, reaching out to people we knew for recommendations made a difference. +- **Don't settle, but also don't wait too long**: We were aiming for a cool venue like Technopark, but we had to accept what we could get. However, that didnโ€™t stop us from exploring other options and making the best of what we had. +- **Clear communication with the team**: It was important to get everyone on the same page when things were shifting, especially when deciding to split the event across two locations. + +So, with the venues finally secured, it was time for the next thing... + +## ๐Ÿ’ธ Sponsorships + +Finding sponsorships was one of the hardest parts, if not the hardest, of organizing Counterspell. Just finding the right person to contact was already a struggle, but getting a response was even harder. Most of the companies we reached out to just ghosted us. Some replied with a quick โ€œWeโ€™ll get back to you soon,โ€ and then disappeared, while others even responded positively at first but stopped replying when we followed up or gave them more details. + +I honestly couldnโ€™t tell if the problem was that our emails werenโ€™t convincing, if they didnโ€™t like the idea, or if it was the fact that we were just a group of teens asking for money while having no prior experience organizing an event like this. Whatever the reason, we knew we needed funding to make this hackathon happen, so we kept sending out more cold emails. + +One of the organizations we reached out to was GOMYCODE. After sending multiple messages (some to emails we weren't even sure were correct) and reaching out on LinkedIn with no response, we decided to try something different. Instead of waiting for a reply that might never come, we showed up at their office. + +At first, we thought weโ€™d just talk with someone at the reception. Instead, we hit the jackpotโ€”we ended up meeting their CEO, the hackerspace manager, and their social media manager all at once. When we pitched our hackathon to them, they showed interest in supporting us but also hinted that they wouldnโ€™t be able to help financially, which made senseโ€”giving money to someone you just met isnโ€™t exactly ideal. However, they offered to host a workshop and provide a prize for the tombola: a free coding boot camp on a subject of the winnerโ€™s choice. While it wasnโ€™t the financial support we were hoping for, it was still a meaningful contribution that added value to our event. Here are some pictures of them at the hackathon\! + +![GOMYCODE Morocco at Counterspell Casablanca](./images/image7.png) + +After that encounter, we started rethinking our approach. Cold emails and LinkedIn messages werenโ€™t getting us very far, and while showing up in person worked once, it wasnโ€™t always an option. Thatโ€™s when we decided to reach out to people we already knew. One of our co-organizers had a contact at Coca-Cola, and thanks to that, we managed to secure an in-kind sponsorship (water \+ sodas), which was a big relief. Another teammate had a connection at a local company called Pesage Promotion, and they also agreed to financially sponsor us. + +We were also part of a robotics center called Robots & More Academy, where we currently participate in a robotics competition called FTC (First Tech Challenge). One of the organizers of the NASA Space Apps Hackathon in Tangier (whoโ€™s also the CEO of this center), where I had first pitched the hackathon idea and who had been supportive of it, offered to sponsor us. This support gave us the encouragement we needed and kept us going. + +Then, Hack Club sponsored 50% of our budget, which helped us finally complete our financial plan and move forward with the event. + +Looking back, securing sponsorships was by far one of the hardest parts of this whole journey. Reaching out to people you donโ€™t know for financial support is ridiculously difficult, especially when youโ€™ve never organized an event before and especially as a teen. While cold emailing worked for some Counterspell events, it didnโ€™t work as well for us, primarily because we were working with limited time. If we had reached out to more organizations or had more time to follow up, I think we could have secured additional sponsorships. + +Hack Club shared [this video](https://www.youtube.com/watch?v=tOmXzA4reTY) with us, which offers valuable tips on how to convince sponsors for your event. Iโ€™d recommend giving it a watchโ€”the advice on crafting a compelling pitch and staying persistent is incredibly useful and could make a big difference if you have the time to implement it. + +For anyone in a similar position, Iโ€™d recommend reaching out to companies that your friends or their parents know, or even companies you have personal connections withโ€”especially if itโ€™s your first time organizing an event. The second time around is probably going to be easier, as you can show that you've already successfully organized an event. If you're a teen who wants to manage your project's finances in a credible way, I'd highly recommend Hack Club Bank ([HCB](https://hackclub.com/fiscal-sponsorship/)). We used it for Counterspell, and it made everything so much easier. Plus, it offers transparent finances, and you can see all of our transactions here: [hcb.hackclub.com/counterspell-casablanca/](http://hcb.hackclub.com/counterspell-casablanca/) + +With a venue secured and the budget finally in place, the next step was finding participants to bring this event to life\! + +## ๐Ÿ“ข Outreach + +The first thing we tried for sign-ups was social media. We knew from the start that social media alone wouldnโ€™t bring in everyone we needed, but having some kind of online presence seemed essential. So, we started filling up our Instagram account with posts introducing Hack Club, then followed that up with the official announcement of Counterspell Casablanca. But since we knew this wouldnโ€™t be enough, we decided to contact organizations that could help spread the word. + +The first organization we reached out to was [eSTEM Morocco](http://estem-morocco.org/), which focuses on empowering Moroccan girls to get into STEM. They loved the idea of the hackathon and not only promoted it on their social media but also mentored us through the process. Their support really made a difference, bringing in sign-ups and helping us figure things out along the way. + +I was also in touch with Youssouf El Azizi from Geeksblabla on LinkedIn. As I shared updates about our progress, he kindly offered to promote the hackathon on their social platforms, which had a huge impact in reaching more people in the Moroccan tech community. + +Partnering with GOMYCODE Morocco also gave us a boost. They promoted the event on their platforms, which brought even more visibility. + +On top of that, we reached out to schools by email, pitching the hackathon to teachers (and sometimes the school principal if we couldnโ€™t find a teacherโ€™s contact). This turned out to be one of the most effective methods for getting sign-ups. Honestly, this is where we should have started\! A lot of tech teachers are eager to find opportunities for their students, and when they see that itโ€™s another student organizing the event, theyโ€™re usually pretty supportive. Hereโ€™s an example of the email I sent to one school director: + +![](./images/image10.jpg) + +We also tried inviting people we already knew, but that didnโ€™t work as wellโ€”we only got around five participants that way. We reached out to a few coding clubs, but only one responded. + +Robots & More Academy was another big help. Not only did they sponsor us, but they also promoted the event on their social media, mentored us, and shared tips from their own experiences hosting events. Their advice was incredibly helpful throughout the process. + +Since we learned through the NASA Space Apps Hackathon that participant drop-offs are common (50% of those registered didnโ€™t show up) we planned to overbook slightly. By the end, we had 76 participants registered (we were aiming for 30 participants), making sure that weโ€™d hit our target even with a few no-shows. + +So with the venue, funding, and participants sorted, we turned our attention to planning the event itself. + +## ๐Ÿ“ Planning + +With the hackathon just weeks away, there was still plenty to figure out. One of the first priorities was building a team of volunteers. While weโ€™d already reached out to a few people earlier, this was when we really put our focus on it. We contacted people we thought would be a great fit, explained the hackathon, shared our vision, and outlined what was expected of them. By the end, we had 10 amazing volunteers ready to help\! + +Next on the list was confirming our venues. We didnโ€™t want any last-minute surprises, so we double-checked with both locations to make sure everything was still on track. Thankfully, they were ready to host us, with everything set up as promised. + +We also began finalizing the workshops and mentors for the event. We already had a mentor from GOMYCODE on board, but he could only join us on Sunday. I reached out to a data scientist I had met before, and he was happy to conduct a workshop as well. Geeksblabla contributed with a very insightful talk, which added a lot of value to the event. Some of our volunteers even stepped up to lead their own workshops, so we were all set on that front\! Finalizing the schedule was another big step. It took a lot of back and forth to get everything to fit, but seeing it come together was a huge relief. + +Food was another big thing on our list. After all, we didnโ€™t want our participants starving halfway through. We started looking into local caterers and small businesses, but most were either pricey or unavailable for an event like ours. Even when we found decent options, getting them to respond was a whole other challenge. Luckily, Robots & More came through with recommendations from their past events and connected us with a caterer. + +We also started making something called a โ€œrun of show,โ€ which is essentially a detailed outline of what each person should be doing during the event. Hereโ€™s a small portion of it as an example: + +![Portion of the Day 1 run of show](./images/image8.png) + +This turned out to be incredibly useful on the day of the event. Under all the stress, itโ€™s easy to forget something important, but having this as a guide kept things running smoothly. At first, we tried using a Google Sheet for this, but it was painful to make and manage. So we decided to use [always.sh](http://always.sh), itโ€™s a new tool that works surprisingly well for creating a run of show. Highly recommended\! + +Communication with participants was also a priority. We decided to create a WhatsApp group for the event since itโ€™s the go-to app for most people here. It made it easy to send updates, reminders, and answer any last-minute questions leading up to the hackathon. + +And so, with all the planning behind us and everything set, the countdown was overโ€”it was the day before the event. + +## ๐Ÿ—“๏ธ Day Before the Event + +And so, with all the planning behind us and everything set, the countdown was overโ€”it was the day before the event. + +There was still plenty to wrap up that day. First, we sent out a final announcement to the WhatsApp group and by email, making sure participants had all the details: what to bring, the schedule, and a few last-minute reminders. + +Then came the checks. We confirmed with the caterer, and thankfully, everything was on track. But the questions started flooding in during the afternoonโ€”so many questions\! It felt like everyone had something they needed to know. It took three of us working together to keep up with all the replies. + +On top of that, we prepared the money weโ€™d need for the event, double-checked with both the school and ALX to make sure everything was good to go on their end, and got the t-shirts ready for the volunteers and participants (hereโ€™s a picture of them below if you havenโ€™t seen them). + +![Counterspell Casablanca t-shirts](./images/image4.png) + +By the end of the day, weโ€™d done everything we could to get ready. All that was left was to wait and hope for the best. + +Iโ€™ll be honestโ€”this was when the nerves really hit. That day was a mix of excitement and anxiety. On one hand, I was excited that everything weโ€™d been working on was finally about to happen. On the other hand, I couldnโ€™t stop worrying. What if no one showed up? What if too many people showed up? What if the volunteers handling registration came late? These questions just kept running through my mind, bringing back all the doubts I had when I first started planning the hackathon. + +But whenever those feelings got too overwhelming, I reminded myself of something a previous hackathon organizer had shared with us: + +> During Assemble, we had a grumpy security guard threaten to call 911 on an attendee for riding on a chair. During Epoch, the venue owner video-called me at 11:30 PM, demanding I shut down our midnight disco on New Yearโ€™s Eve. During the Boreal Express, a whole part of western Canada burned down, and we had to turn the train around. When I share these stories with attendees, none of them ever remember the chaos. All they remember is the amazing time they had with other Hack Clubbers, the projects they built, and the memories they made. Organizing hackathons is always a walk on a tightrope, and things will always go wrong. Instead of trying to perfect every logistic, focus on connecting with people, getting to know them, and supporting them throughout the event. + +That really helped calm me down, even if just a little. It reminded me that even if something went wrong, weโ€™d find a way to fix it. + +## ๐Ÿ”ฅ The big day + +And so, it was the morning of Day 1\. I arrived at the school at around 7:30 a.m., feeling a bit anxious while looking forward to the day ahead. It was reassuring to see the entire team already there, on time, and following the run of show. Those handling the opening ceremony got ready, while the volunteers in charge of registration set up their stations. We even brought breakfast for everyone, which gave us a chance to sit together, enjoy some food, and pump each other up before things officially kicked off. We played some music to set the mood and then waited for participants to arrive. + +To our surprise, the first participant arrived at 8:25 a.m., even though weโ€™d said registration wouldnโ€™t start until 9\. It caught us a bit off guard, but we just rolled with it. By 9am, though, only a handful of people had shown upโ€”just three or four. I couldnโ€™t help but worry a bit. What if this was it? But then, slowly but surely, more and more participants started arriving. By the end of registration, we had 42 participants, which was more than the 30 weโ€™d planned for\! It was such a pleasant surprise, even though it meant we ran out of shirts ๐Ÿ˜…. + +After registration, it was time to get everyone into the biggest classroom for the opening ceremony. It took longer than weโ€™d expected to gather everyoneโ€”turns out organizing 42 teenagers isnโ€™t easyโ€”but eventually, we got started. We thanked them for coming, gave a quick overview of the event, explained the schedule and rules, revealed the theme, and talked about how judging would work (it was peer-voted, so no complicated rubrics). Finally, we wrapped up by talking about the prizes, which really got everyone excited. Overall, things went pretty well, though we did have a few moments where the Wi-Fi acted up. + +![Opening ceremony photos](./images/image9.png) + +Next came team formation. Weโ€™d planned for this to take about 10 minutes, but it ended up being even quickerโ€”just 6 minutesโ€”since most teams had already been formed in the WhatsApp group the day before. And with that, the hackathon officially kicked off. + +Of course, it didnโ€™t take long for the first issue to pop up. The classroom had very few wall outlets, and almost everyone needed to charge their laptops. On top of that, the Wi-Fi couldnโ€™t handle 42 devices at once, which caused it to slow down and wouldโ€™ve been a nightmare for the participants. We decided to split the teams into different classrooms, and after that, everything worked fine. + +Then came the first workshop, and, of course, another problem. The TV in the classroom didnโ€™t support HDMI or USB inputs, only DVI, and the person conducting the workshop didnโ€™t have a DVI adapter. Thankfully, one of the co-organizers happened to have the right port, so the issue was resolved quickly. + +After that, the rest of the day went surprisingly well. The food arrived on time (a rare miracle, honestly), distribution was smooth, and participants seemed happy. Some teams even had a working prototype of their games by the end of the day. + +At 5:15 p.m., we wrapped up Day 1 with a brief closing ceremony. We reminded participants of the location for Day 2, motivated them to return by mentioning the tombola from Gomycode, and waited until everyone had left before calling it a day ourselves. + +Then came Day 2. Walking into Technopark that morning felt pretty coolโ€”for some of us, it was our first time there, and stepping into ALX added to the excitement. It was a fresh start, and we wanted everything to go smoothly. We all went over the run of show again, double-checking every detail to make sure we didnโ€™t miss anything. + +Some volunteers headed to a nearby store to grab breakfast, others waited by the Technopark entrance to register participants, and a few stayed inside ALX to greet them as they arrived. We expected all 42 participants to show up, but after a while, it became clear that three wouldnโ€™t be making it. We decided to start without them. + +We kicked off by presenting the dayโ€™s schedule and reminding everyone of the ground rules. And just like that, Day 2 was underway! + +Later in the morning, we greeted the Gomycode representative and mentor, who had a workshop scheduled at 11 a.m. On my way to show them the way to ALX Morocco, I ran into Youssouf El Azizi from Geeksblabla. He arrived super early, even though his talk wasnโ€™t until 4 p.m.โ€”which was a really nice gesture. + +The workshop with the Gomycode mentor went pretty well. The participants seemed to enjoy it, and everything felt like it was running smoothly. The only problem that we encountered up to that point was that the caterer arrived about 30 minutes later than expected. It wasnโ€™t a huge deal, thoughโ€”it just meant lunch started a bit later. Once the participants had finished eating, our team grabbed some food too. + +Just as we were settling down for lunch, the security team informed us that some participants were wandering around the building, which wasnโ€™t allowed. To address this, we quickly made an announcement explaining the rule: participants couldnโ€™t explore the building on their own, and if they needed to leave ALX, they had to inform a volunteer. We also set up a rotation system, making sure there was always someone stationed near the exit. + +By 2:15 p.m., it was time for the next workshop, led by data scientist Othmane Rhaouti. This session also went smoothly, and it was clear that the participants found it engaging and insightful. + +![Python workshop photos](./images/image6.png) + +Then, at 4 p.m., it was time for Youssouf El Aziziโ€™s talk. He shared some really interesting insights and experiences, and the participants seemed to enjoy it. They asked a few questions, and it felt like a nice way to keep the energy going as the day started to wind down. + +![Geeksblabla talk](./images/image3.png) + +After this, we explained how to submit their projects, and soon they got to work. At 5 p.m., the plan was for participants to have supper while we started the game demos. But that didnโ€™t exactly go as plannedโ€”everyone rushed for the snacks first, which delayed the demos by like an hour. It threw us off schedule a bit, but once things got back on track, the demos went pretty well. + +The voting process followed, and then came the moment everyone was waiting forโ€”announcing the winners and their prizes. We didnโ€™t hand out the prizes on the spot; instead, they would be shipped directly to the winnersโ€™ addresses. After that, we gathered everyone for a group photo, shared our farewells, and just like that, Counterspell Casablanca came to an end. + +## ๐ŸŽฏ Final thoughts + +I was honestly relieved to see how well the hackathon turned out. All the things I had been worrying about for weeksโ€”the chaos, the worst-case scenariosโ€”never really happened. Watching everyone having fun, collaborating, and working with people theyโ€™d just met for the first time made all the stress and late nights feel worth it. + +Of course, this wouldnโ€™t have been possible without the amazing team of co-organizers and volunteers who stood by me every step of the way. From brainstorming sessions to late-night calls, from managing logistics to solving unexpected challenges on the spot, your efforts made all the difference. To our mentors, speakers, and sponsorsโ€”thank you for your time, energy, and trust in this vision. And to everyone who showed up, you made this hackathon more special than I could have ever imagined. + +So, what would I say to someone thinking about organizing an event like this for the first time? Just go for it. Yes, itโ€™ll be hard at times. There will be moments when youโ€™ll question everythingโ€”whether people will show up, whether things will fall apart, whether youโ€™ve made the right choices. But hereโ€™s the thing: itโ€™s okay for things to not be perfect. + +What matters is the connections people make, the learning that happens, and the memories youโ€™ll help create. Thereโ€™s something incredibly rewarding about seeing an idea that started on paper come to life. Itโ€™s not about being flawless; itโ€™s about being present, adapting, and making the experience as meaningful as you can. + +Trust me, the joy of seeing people come together, create something new, and leave feeling inspired? That makes every single challenge along the way absolutely worth it. + +## ๐Ÿค” What is next + +After organizing Counterspell Casablanca, Iโ€™ve realized just how much potential so many young people in Morocco have. Seeing teens come together, create amazing projects, and try new things made me think: what if more people had access to opportunities like this? I truly believe that if we reach more youth and give them the tools to learn tech skills, we could help spark something incredible in Moroccoโ€™s journey toward digital innovation. + +Thatโ€™s why weโ€™re now working on starting [Hack Clubs](https://hackclub.com/clubs/)\! These are student-led clubs where teens can learn to code, work on projects, and support each other while having fun. The way it works is pretty simple: every week, the club leader introduces a new topic or idea, and the members dive in. They work on projects related to that topic, learn by doing, and share what theyโ€™ve made with the world (check out what that looks like here: [hackclub.com/ship](https://hackclub.com/ship/)). + +Most [Hack Clubs](https://hackclub.com/clubs/) are based in schools (which is where weโ€™re focusing for now), but they can also be set up in libraries, fab labs, or any place where teens can meet and learn together. Weโ€™re especially excited about bringing Hack Clubs to rural areas where coding isnโ€™t as well-knownโ€”because everyone deserves the chance to discover what they can do with technology. + +If youโ€™re a teen who wants to start a Hack Club in your school, weโ€™d love to hear from you\! By starting one, youโ€™ll join a global community of Hack Clubs and get access to some amazing resources, like: + +- Ready-to-go workshops ([jams](https://jams.hackclub.com/)) to help your club get started +- Free tools like Figma Pro, GitHub Education, and Zoom Pro +- Fun programs like [Arcade](https://hackclub.com/arcade/), [High Seas](https://highseas.hackclub.com/), and [Boba Drops](https://boba.hackclub.com/) to keep things exciting +- Support from Hack Club through the [Slack community](https://hackclub.com/slack) every step of the way + +Want to see what a Hack Club meeting looks like? Check out this video: [youtube.com/watch?v=xXIxwV7bQTw](http://youtube.com/watch?v=xXIxwV7bQTw) + +If youโ€™d like to start a Hack Club or support us in any way, feel free to reach out\! You can email us at [hackclubcasablanca@gmail.com](mailto:hackclubcasablanca@gmail.com) or message us on Instagram: [Hack Club Casablanca](https://www.instagram.com/hackclubcasablanca/). + +Weโ€™re also planning our next teenage hackathon, [Scrapyard Casablanca](https://scrapyard.hackclub.com/), on the weekend of March 15th\! Itโ€™s going to be a lot like Counterspell Casablanca, but with a fresh twistโ€”the theme is all about being โ€œscrappy.โ€ + +The idea is to get creative and build something fun, whether itโ€™s a game, an app, or even a quirky hardware project. This theme is all about experimenting and letting your imagination run wild, without worrying about making it perfect. By the end of the event, the goal is just to have something cool and complete that youโ€™re proud of. If you want to stay updated about Scrapyard or any of our other events, you can follow [Hack Club Casablanca](https://www.instagram.com/hackclubcasablanca/) or connect with me on [LinkedIn](https://ma.linkedin.com/in/hafsa-elidrissi). + +This is just the beginning. Weโ€™re excited about all the possibilities ahead and the chance to keep building a community where young people can learn, create, and support each other. Thereโ€™s so much more to come, and I hope youโ€™ll be a part of it. diff --git a/astro.config.mjs b/astro.config.mjs new file mode 100644 index 00000000..221b66f2 --- /dev/null +++ b/astro.config.mjs @@ -0,0 +1,63 @@ +import { defineConfig } from "astro/config"; +import tailwind from "@astrojs/tailwind"; +import react from "@astrojs/react"; +import remarkToc from "remark-toc"; +import icon from "astro-icon"; +import remarkCollapse from "remark-collapse"; +import sitemap from "@astrojs/sitemap"; +import { SITE } from "./src/config"; + +import mdx from "@astrojs/mdx"; +import pagefind from "astro-pagefind"; +import netlify from "@astrojs/netlify"; +import { getAstroRedirects } from "./src/redirects"; + +const redirects = getAstroRedirects(); +// https://astro.build/config +export default defineConfig({ + site: SITE.website, + output: "hybrid", + adapter: netlify(), + prefetch: { + prefetchAll: true, + }, + experimental: { contentLayer: true, serverIslands: true }, + build: { + format: "file", + }, + redirects, + + integrations: [ + tailwind({ + applyBaseStyles: false, + }), + react(), + sitemap(), + icon(), + mdx(), + pagefind(), + ], + + markdown: { + remarkPlugins: [ + remarkToc, + [ + remarkCollapse, + { + test: "Table of contents", + }, + ], + ], + shikiConfig: { + themes: { light: "min-light", dark: "night-owl" }, + wrap: true, + }, + }, + vite: { + assetsInclude: ["**/*.riv"], + optimizeDeps: { + exclude: ["@resvg/resvg-js"], + }, + }, + scopedStyleStrategy: "where", +}); diff --git a/authors/abdelati.json b/authors/abdelati.json new file mode 100644 index 00000000..8857326e --- /dev/null +++ b/authors/abdelati.json @@ -0,0 +1,7 @@ +{ + "name": "Elasri Abdelati", + "url": "https://kaizendae.com", + "bio": "Devops Engineer", + "avatar": "/avatars/daoudi.jpg", + "is_core_team": true +} diff --git a/authors/aboullaite.json b/authors/aboullaite.json new file mode 100644 index 00000000..6cbaf354 --- /dev/null +++ b/authors/aboullaite.json @@ -0,0 +1,7 @@ +{ + "name": "Aboullaite Mohammed", + "url": "https://aboullaite.me/", + "bio": "Software Engineer", + "avatar": "/avatars/daoudi.jpg", + "is_core_team": true +} diff --git a/authors/avatars/daoudi.jpg b/authors/avatars/daoudi.jpg new file mode 100644 index 00000000..a6b90f45 Binary files /dev/null and b/authors/avatars/daoudi.jpg differ diff --git a/authors/avatars/default-avatar.svg b/authors/avatars/default-avatar.svg new file mode 100644 index 00000000..d0a988d4 --- /dev/null +++ b/authors/avatars/default-avatar.svg @@ -0,0 +1,13 @@ + + + + + + + + + + \ No newline at end of file diff --git a/authors/avatars/hafsa_elidrissi.jpeg b/authors/avatars/hafsa_elidrissi.jpeg new file mode 100644 index 00000000..65799aec Binary files /dev/null and b/authors/avatars/hafsa_elidrissi.jpeg differ diff --git a/authors/avatars/makraz.jpeg b/authors/avatars/makraz.jpeg new file mode 100755 index 00000000..0e384afe Binary files /dev/null and b/authors/avatars/makraz.jpeg differ diff --git a/authors/elidrissi.json b/authors/elidrissi.json new file mode 100644 index 00000000..a641c2fd --- /dev/null +++ b/authors/elidrissi.json @@ -0,0 +1,7 @@ +{ + "name": "Hafsa El Idrissi", + "url": "https://www.linkedin.com/in/hafsa-elidrissi/", + "bio": "Highschool sophomore", + "avatar": "/avatars/hafsa_elidrissi.jpeg", + "is_core_team": false +} \ No newline at end of file diff --git a/authors/iduoad.json b/authors/iduoad.json new file mode 100644 index 00000000..eb0439b9 --- /dev/null +++ b/authors/iduoad.json @@ -0,0 +1,7 @@ +{ + "name": "Mohammed Daoudi", + "url": "https://www.iduoad.com", + "bio": "Devops Engineer", + "avatar": "/avatars/daoudi.jpg", + "is_core_team": true +} diff --git a/authors/makraz.json b/authors/makraz.json new file mode 100644 index 00000000..3edc8c10 --- /dev/null +++ b/authors/makraz.json @@ -0,0 +1,7 @@ +{ + "name": "Makraz Hamza", + "url": "https://makraz.com/", + "bio": "Software Engineer", + "avatar": "/avatars/makraz.jpg", + "is_core_team": true +} diff --git a/blablas/draft/index.md b/blablas/draft/index.md deleted file mode 100644 index e0c5a16a..00000000 --- a/blablas/draft/index.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -date: 2017-03-28 -time: "20h" -duration: "1:30" -title: "web frameworks" -tags: ["react", "dev"] -category: "dev" -guest: "elazizi youssef" -isNext: true -published: false -url: https//fb.com/video###### // or event in case isnext is true -audio: ---- - -## description - -lorem diff --git a/blablas/ep1/index.md b/blablas/ep1/index.md deleted file mode 100644 index e04ec836..00000000 --- a/blablas/ep1/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -date: 2019-03-21 -time: 20h -duration: "1:09:42" -title: "Introduction to Open Source" -tags: ["open source", "dev"] -category: "dev" -video: "2244351238958873" -url: -audio: https://anchor.fm/s/88e3048/podcast/play/8871912/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fproduction%2F2019-11-8%2F37063879-48000-2-b323ed7dbb0f6.m4a -isNext: false -youtube: https://www.youtube.com/watch?v=_tizAkqvivM -published: true ---- - -On this episode of Geeksblabla : The team Soufian (Host) , Abdelkader , El Hussein , Youssouf talks about Open source : Definitions , brief history , Licence types and how can we start contribute on open source projects ..etc. - -## Notes - -00:00:00 - Introduction and welcoming guests - -00:01:00 - What is Open source ? - -00:07:00 - Why using licence and what's is the types of open source licences ? - -00:10:00 - Why big companies are interested by open source ? - -00:14:00 - Why contributing to open source projects ? - -00:15:00 - The contribution to open source projects can help me to improve my skills ? - -00:24:00 - How can I contribute to an open source project ? - -00:27:00 - How can I found / choose my first project to contribute onto ? - -00:29:00 - What is a PR ? - -00:37:00 - How can I start my own open source project (code,test,documentation.. etc) ? - -00:42:00 - What is the golden advices for a beginner contributor in open source projects ? - -00:49:00 - Is the code written inside company during 9-5 work belong to the developer or the company ? - -## Links - -- [Choose a license #1](https://ufal.github.io/public-license-selector/) -- [Choose a license #2](https://choosealicense.com/) -- [Code Triage](https://www.codetriage.com/) -- [First Contributions](https://github.com/firstcontributions/first-contributions) diff --git a/blablas/ep10/index.md b/blablas/ep10/index.md deleted file mode 100644 index 7f042aa9..00000000 --- a/blablas/ep10/index.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -date: 2018-06-02 -time: 20h -duration: "1:46:09" -title: "AR, VR and Game Dev " -tags: ["game dev", "AR", "VR"] -category: "dev" -isNext: false -video: "2147536065478747" -youtube: https://www.youtube.com/watch?v=R6173SwSg8w -published: true -audio: ---- - -In this episode of GeeksBlabla, we discuss AR , VR & Game Dev . - -## Guests - -[Omar Guendeli](https://guendeliomar.com) - -[Amine Hakkou](https://www.hakkou.me/) - -## Notes - -00:00:00 - Introduction - -00:07:00 - What is VR ? - -00:11:00 - History of Gaming ? - -00:20:00 - Begin your career as a Game Developper ? - -00:27:00 - Difference between VR & AR ?(open computer vision framework) - -00:33:00 - Game dev Tools ? - -00:36:00 - Game dev Process ? - -00:46:00 - Java & Game dev ? - -00:51:00 - Game Design Patterns ? - -00:55:00 - Game Art ? - -01:03:00 - Ai in Game dev ? - -01:09:00 - Graphics in Game dev ? - -01:15:00 - Managing Audio in Game dev ? - -01:19:00 - Advices for beginners ? - -01:40:00 - Conclusion - -## Links - -- [GAMASUTRA](https://www.gamasutra.com/) -- [GAME DEV](https://gamedev.net/) -- [GD CONF](https://gdconf.com/) - -## Prepared and Presented by : - -[Soufian El Foukahi](https://twitter.com/soufianelf/) - -[Mohammed Aboullaite](http://aboullaite.me/) diff --git a/blablas/ep100/index.md b/blablas/ep100/index.md deleted file mode 100644 index 038b2ed8..00000000 --- a/blablas/ep100/index.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -date: 2021-12-26 -time: 20h:00min -duration: "02:30:00" -title: "The 100th Episode" -tags: ["100", "geeksblabla"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=1Ds--L9ERf0 -published: true -featured: true ---- - -In this episode of GeeksBlabla, we celebrate the 100th episode, we discussed how the podcast started, how we work as a team behind the scene and some statistics about the podcast. - -## Guests - -- [Mohammed Aboullaite](https://aboullaite.me) - -- [Soubai Abderahim](https://soubai.me) - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Otmane Fettal](https://twitter.com/ofettal) - -## Notes - -0:00:00 - Introduction - -0:04:00 - How the podcast started? - -0:23:00 - The secret behind podcast consistency. - -0:43:00 - Audience reviews - -0:59:00 - Episodes preparation and tools we use - -1:10:00 - Statistics quiz - -1:19:00 - Geeksblabla funny moments - -1:38:00 - Wrap up & Goodbye - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep101/index.md b/blablas/ep101/index.md deleted file mode 100644 index 254c2f80..00000000 --- a/blablas/ep101/index.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -date: 2022-01-02 -time: 20h:00min -duration: "02:08:27" -title: "Microsoft Azure Ecosystem" -tags: ["101", "Microsoft", "Azure"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=U2Kem64cZ_0 -published: true -featured: true ---- - -In this Episode of GeeksBlabla , we discussed The Microsoft Azure Ecosystem , first we started with an overview about the cloud and what did it enable the world of tech to do , then we dived deeper on what sets Microsoft Azure apart and what we can do with the tools and capabilities it offers. - -## Guests - -- [Adil Touati](https://www.linkedin.com/in/adiltouati) - -- [Abdelmajid ANEDDAME](https://www.linkedin.com/in/abdelmajidaneddame) - -- [Otmane Fettal](https://twitter.com/ofettal) - -## Notes - -0:00:00 - Introduction - -0:06:00 - Cloud computing Introduction - -0:36:00 - Microsoft Azure Capabilities - -1:18:00 - Advanced Microsoft Azure services and capabilities - -## Prepared and Presented by - -- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/blablas/ep102/index.md b/blablas/ep102/index.md deleted file mode 100644 index 9a446461..00000000 --- a/blablas/ep102/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -date: 2022-01-09 -time: 20h:00min -duration: "01:57:17" -title: "Developing iOS Apps" -tags: ["102", "Apple", "iOS", "Swift", "ObjectiveC", "UiKit", "SwiftUI"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=RfTHsACWTlo -published: true -featured: true ---- - -In this Episode of GeeksBlabla , we discussed how to make Apps for the Apple Ecosystem using both Native and Hybrid solutions , we did a deep dive on the differences between Swift , ObjectiveC , SwiftUI , UiKit and when to use each of them , plus what to keep in mind when submiting your apps to the Appstore. - -## Guests - -- [Abdelali Jamhamed](https://www.linkedin.com/in/abdalaliii) - -- [Badre Belghiti Daha](https://www.linkedin.com/in/bbd-29674219) - -## Notes - -0:00:00 - Introduction - -0:03:00 - The Apple Ecosystem - -0:09:45 - Apple vs Android developement - -0:27:00 - How to Develop Apps for iOS - -0:40:00 - Objective C vs Swift - -0:55:00 - SwiftUI C vs UIkit - -1:21:00 - Hybrid iOS Developement - -1:27:00 - Web Developement vs Mobile Developement - -1:33:20 - Getting your App published into the Appstore - -1:48:00 - Conclusion - -## Links - -- [Mobile Development Episode](https://geeksblabla.io/blablas/mobile-development) - -- [App Store Review Guidelines](https://developer.apple.com/app-store/review/guidelines/) - -## Prepared and Presented by - -- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/blablas/ep103/index.md b/blablas/ep103/index.md deleted file mode 100644 index 85ac7d04..00000000 --- a/blablas/ep103/index.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -date: 2022-01-16 -time: 20h:00min -duration: "02:35:49" -title: "NFT & Web3.0" -tags: ["web3", "nft", "crypto", "blockchain", "DeFi", "Ethereum"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=j4rUZvjR8ZQ -published: true -featured: true ---- - -In this episode, weโ€™re going to break down an easy-to-understand explanation of NFT, and all the ways Web3 could change the way the world works. Then, our guests will respond to these subjects related questions. - -## Guests - -- [Badr Bellaj](https://www.linkedin.com/in/bellajbadr/) - -- [Alae Zorkane](https://www.alaazorkane.me/) - -- [Ismail Ghalou](https://twitter.com/smakosh) - -- [Abderrahim Soubai Idrissi](https://www.soubai.me/) - -## Notes - -0:00:00 - Introduction & Guests presentation. - -0:04:00 - Short Web history. - -0:06:00 - Web1.0 Web2.0 and now Web3.0, what is the real difference? - -0:11:00 - Thoughts about when you first heard about web3. - -0:18:00 - How do you think it can revolutionize the future of the web in certain domains? - -0:24:00 - Web3.0 and DApp transparency. - -0:27:00 - Smart contract definition - -0:28:00 - ERC-20 smart contracts. - -0:34:00 - Metaverse and Web3.0 - -1:00:00 - Roadmap to start in smart contracts and Blockchain. - -1:04:00 - What is NFT anyway? - -1:06:00 - How does the NFT work? - -1:24:00 - NFT Derivatives. - -1:34:00 - What is Ethereum, and how does it relate to NFT? - -1:39:00 - Limitations of NFT. - -1:46:00 - Smart contractsERC-721 / ERC-1155. - -1:50:00 - Metadata (on-chain/off-chain). - -1:54:00 - Layer 2 (L2 solutions). - -2:00:00 - Now, anything/nothing can be sold as NFT. Do you think that it's now mainstream? - -2:09:00 - What if DeFi? - -2:12:00 - What are the existing Defi apps? - -2:15:00 - Uniswap/sushi swap. - -## Links - -- [Solidity by example](https://solidity-by-example.org/) - -- [QuestBook](https://www.questbook.app/) - -- [Ethereum Improvement Proposals](https://eips.ethereum.org/) - -- [How to make an NFT](https://smakosh.com/how-to-make-an-nft) - -- [Most NFTs will be 404 Errors](https://markets.businessinsider.com/news/currencies/nfts-404-pages-geoffrey-huntley-right-clicke) - -- [ENS Domains](https://ens.domains/) - -- [Login.xyz](https://login.xyz/) - -## Prepared and Presented by - -- [Meriem zaid](https://twitter.com/iMeriem_) diff --git a/blablas/ep104/index.md b/blablas/ep104/index.md deleted file mode 100644 index 272a06e0..00000000 --- a/blablas/ep104/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -date: 2022-01-23 -time: 20h:01min -duration: "1:30:52" -title: "MSS with Mehdi Daoudi" -tags: ["MSS"] -category: "MSS" -isNext: false -youtube: https://www.youtube.com/watch?v=dUQHPOPaVd8 -published: true -video: "1051278222083870" -url: -podcastUrl: https://web.facebook.com/geeksblabla/videos/1051278222083870 -audio: ---- - -In this episode of GeeksBlabla, we invited Mehdi Daoudi, CEO and Co-Founder - Catchpoint Systems, Inc. - -## Guests - -- [Mehdi Daoudi](https://www.linkedin.com/in/mdaoudi) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:00 - Who is Mehdi Daoudi? - -0:11:00 - How was the switch from marketing to the IT field? And what is your advice to people who want to switch their careers? - -0:14:00 - When Google acquired DoubleCLicks, What was the special thing that push google to purchase it and how was the switch from a small company to Google word? - -0:19:00 - What are the products/services DoubleCLicks offer? - -0:21:00 - When does it make sense for someone to say I will sell my company and when isn't? - -0:27:00 - What is Catchpoint? How was the experience, and how did you get the idea? - -0:34:00 - How was the experience moving to the cloud and not creating a SAAS product? - -0:42:00 - How bad was the Covid 19 for Catchpoint? - -0:51:00 - Catchpoint is hiring everywhere, so what profiles does Catchpoint need? - -0:56:00 - Would you share with us some of your failure stories? - -1:00:00 - In your opinion, what are the main qualities and skills of a good leader? - -1:05:00 - Why did working in a big company like Google push you to leave it? - -1:09:00 - Any advice about how to close deals with clients? - -1:13:00 - Do you follow news about the startups' ecosystem in Morocco, what do you think about it, and what does miss it? - -1:13:00 - Do you follow news about the startups' ecosystem in Morocco, what do you think about it, and what does miss it? - -1:19:00 - What do you think about companies that do the offshoring? - -1:22:00 - After ten years of pushing startups, why can't we see some of them succeed now? - -1:26:00 - What is the advice you can give to someone who is trying to build a startup? - -1:28:00 - What would you advise your 20-year-old self? - -1:29:00 - Wrap up and goodbye - -## Links - -- [weathering the storm leading your organisation through a pandemic](https://ndupress.ndu.edu/Publications/Article/1227816/dtp-038-weathering-the-storm-leading-your-organization-through-a-pandemic/) -- [The Advantage: Why Organizational Health Trumps Everything Else In Business](https://www.goodreads.com/book/show/12975375-the-advantage?from_search=true&from_srp=true&qid=bvRT94AaN1&rank=1) - -## Prepared and Presented by - -- [Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/blablas/ep105/index.md b/blablas/ep105/index.md deleted file mode 100644 index 0a271672..00000000 --- a/blablas/ep105/index.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -date: 2022-01-30 -time: 20h:00min -duration: "1:59:44" -title: "Tech News & AMA #15" -tags: ["AMA", "geeksblabla"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=4_h-lxi3GlU -published: true -featured: true ---- - -Tech News & AMA #15 with our community members Abdelfettah, Kawtar and Youssef. During this episode, we discuss the latest Tech News, and we answer audience questions about programming, community, new technologies, and much more. - -## Guests - -- [Kawtar Choubari](https://www.linkedin.com/in/choubari/) - -- [Youssef Benadda](https://twitter.com/_yudax) - -- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) - -## Notes - -0:00:00 - Introduction - -0:04:00 - Kawtar experience and learning process during last year. - -0:10:32 - Time management advice for beginners. - -0:21:00 - Youssef experience with Notion apps and doing profitable projects. - -0:33:00 - Career advice about PFE internship on salesforce and its future for a developer. - -0:38:00 - Can a developer combine between Dev and DevOps? - -0:41:00 - K8s certifications: More valuable ones for a career (CNCK, CKAD, CKA, or CKS). - -0:44:00 - Does the school and diploma in IT matter? - -0:55:00 - Do developers need to learn about marketing in addition to programming? - -1:01:00 - MoroccoTech - -1:08:00 - First GDE in Morocco. - -1:13:00 - faker.js story - -1:32:00 - Giveaway. - -1:33:00 - Tips on obtaining many certificates. - -1:36:00 - Best practices to measure code quality as a junior developer? - -1:51:10 - GeeksBlabla Picks. - -1:59:00 - Wrap up & Goodbye - -## Picks - -- [Atomic Habit](https://jamesclear.com/atomic-habits) - -- [How to Get Rich](https://www.youtube.com/watch?v=1-TZqOsVCNM) - -- [Storytel](https://www.storytel.com/eg/ar/) - -- [The Ministry for the Future](https://www.amazon.com/Ministry-Future-Kim-Stanley-Robinson/dp/0316300136) - -- [Save to Notion](https://twitter.com/savetonotion) - -## Links - -- [The Dark side of open source, What really happened to faker.js](https://www.youtube.com/watch?v=R6S-b_k-ZKY) - -- [MoroccoTech With Zouheir Lakhdissi](https://anchor.fm/biztech-morocco/episodes/BizTech-Talks---Episode-1---MoroccoTech-With-Zouheir-Lakhdissi-e1dgg7h) - -- [Google Developer Expert](https://developers.google.com/community/experts) - -- [GDE program application form](https://drive.google.com/file/d/10BX6nebskPv8Pc3gscSV1A35LwoFOP_y/view) - -- [Moroccoโ€™s Chari valued at \$100M](https://techcrunch.com/2022/01/20/moroccos-chari-valued-at-100m-in-bridge-round-as-it-looks-to-pilot-bnpl-services/) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep106/index.md b/blablas/ep106/index.md deleted file mode 100644 index 613b3784..00000000 --- a/blablas/ep106/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -date: 2022-02-13 -time: 20h:00min -duration: "1:50:11" -title: "Amazon WEB Services" -tags: ["AWS", "geeksblabla", "Cloud", "Amazon", "Databases", "AI", "Serverless"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=oy5q4QXmNaU -published: true -featured: true ---- - -On the 106th Episode of Geeksblabla we're having a discussion around Amazon Web Services, how it was launched, its strenghts and capabilities, as well as discussions around Serverless, Databases and AI/ML services in AWS. - -## Guests - -- [Ilyas Bakouch](https://twitter.com/isbkch) - -- [Abderrahim Soubai Elidrissi](https://twitter.com/soub4i) - - -## Notes - -0:00:00 - Introduction - -0:04:00 - The start of AWS - -0:14:45 - Overlapping AWS Services - -0:20:00 - Strenghts of AWS - -0:31:31 - Containers in AWS - -0:35:35 - Serverless in AWS - -0:57:15 - Databases in AWS - -1:27:39 - AI/ML in AWS - -1:34:56 - Q/A - -1:41:00 - Giveaway. - -1:46:12 - Closing - - - -## Links - -- [Ilyas Youtube Channel](https://twitter.com/isbkch) - -- [S7aba Podcast](https://s7aba.ma/) - - -## Prepared and Presented by - -- [Otmane FETTAL](https://twitter.com/OFettal) diff --git a/blablas/ep107/index.md b/blablas/ep107/index.md deleted file mode 100644 index d24f8b78..00000000 --- a/blablas/ep107/index.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -date: 2022-02-20 -time: 20h:00min -duration: "1:42:10" -title: "Fail gloriously!" -tags: ["career", "failure"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=SkIAxJqo4IQ -published: true -featured: true ---- - -In this special episode, our guests share with us some failures stories, How those failures impact them, and lessons they learned from them. The main of this episode is basically to say itโ€™s okay to fail; itโ€™s a learning opportunity. - -## Guests - -- [Omaima Khalil](https://twitter.com/BadQuinn3) - -- [Diaa Alhak El Fallous](https://www.linkedin.com/in/elfallous/) - -- [Djalal](https://twitter.com/enlamp) - -- [Mohamed AHDIDOU](https://www.linkedin.com/in/mohamedahdidou/) - -- [Oussama Zaki](https://www.linkedin.com/in/zakioussama/) - -## Notes - -0:00:00 - Introduction and welcoming guests - -0:05:18 - Guests failures stories - -0:18:24 - Impact of failure in personal and professional life - -0:30:29 - Come back from failure ๐Ÿš€ - -0:42:02 - Learnings from failure stories - -0:57:17 - Challenging the term failure. - -0:59:00 - How does society and the education system impact how we see failure? - -1:09:14 - How can we learn from other people's failure stories? - -1:12:14 - How to quit? - -1:25:10 - Impact of Social Media - -1:35:50 - Wrap up & Goodbye - -## Links - -- [Tribe of Mentors](https://www.goodreads.com/book/show/36200111-tribe-of-mentorsY) - -- [Kepner Tregoe Method](https://www.toolshero.com/problem-solving/kepner-tregoe-method/) - -- [Troubleshooting Simulation](https://kepner-tregoe.com/training/troubleshooting-simulation/) - -- [Secrets of the Millionaire Mind](https://www.amazon.com/Secrets-Millionaire-Mind-Mastering-Wealth/dp/0060763280) - -- [The Richest Man In Babylon](https://www.amazon.com/Richest-Man-Babylon-Magic-Story/dp/1939438632) - -## Prepared and Presented by - -[Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/blablas/ep108/index.md b/blablas/ep108/index.md deleted file mode 100644 index c8fcdb54..00000000 --- a/blablas/ep108/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -date: 2022-02-27 -time: 20h:00min -duration: "1:23:44" -title: "Tech News & AMA #16" -tags: ["AMA", "geeksblabla"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=kXAM8NSL88Q -published: true -featured: false ---- - -Tech News & AMA #16 with our community members Abderahim, Hamza, and Khalil. During this episode, we discuss Khalil's experience as a security researcher, the latest Tech News, and we answer audience questions about programming, community, new technologies, and much more. - -## Guests - -- [Khalil Zahani](https://twitter.com/Khalil_Zhani) - -- [Soubai Abderahim](https://soubai.me) - -- [Hamza Makraz](https://web.facebook.com/MakrazHamza) - -## Notes - -0:00:00 - Introduction - -0:03:50 - Khalil's story as a security researcher. - -0:19:10 - A day in the life of a security researcher. - -0:26:40 - Tooling and Programming languages you need to master to start as a security researcher - -0:35:00 - Khalil studies and helped him master this field as a self-thought security researcher. - -0:38:00 - Can a developer combine between Dev and DevOps? - -0:43:00 - Is mastering C important for security researchers? - -0:47:03 - Is mastering Networking important for security researchers? - -0:55:00 - Menara program - -0:58:00 - State of JS results - -1:09:00 - GeeksBlabla Picks. - -1:18:50 - Wrap up & Goodbye - -## Picks - -- [Geek Flare](โ€‹https://geekflare.com/) - -- [The Compound Effect](https://www.amazon.com/Compound-Effect-Darren-Hardy/dp/159315724X) - -- [Design Modo](โ€‹https://designmodo.com/) - -- [Chromium Issues](https://bugs.chromium.org/p/chromium/issues/list?q=label%3ASecurity_Severity-High&can=1) - -- [Ray Cast](https://www.raycast.com/) - -## Links - -- [Menara GeeksBlaBla episode](https://www.youtube.com/watch?v=lrUgCaZyUBc) - -- [Menara](https://manara.tech/our-program) - -- [stateofjs](https://stateofjs.com/) - -- [Chromium Issues](https://bugs.chromium.org/p/chromium/issues/list?q=label%3ASecurity_Severity-High&can=1) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep109/index.md b/blablas/ep109/index.md deleted file mode 100644 index 28761903..00000000 --- a/blablas/ep109/index.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -date: 2022-03-06 -time: 20h:00min -duration: "2:30:40" -title: "UX/UI for the rest of us" -tags: ["career", "UX/UI", "design"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=d-oyZE33X3s -published: true -featured: true ---- - -In this special episode, We invite our UX/UI designer community friends to Talk about designer careers, How to get started, Jobs in Morocco and outside, as well as discussions around the best practice and resources. - -## Guests - -- [Khaoula Ettaleb](https://www.linkedin.com/in/khaoula-ettaleb/) - -- [Brahim Baif](https://www.linkedin.com/in/thebrahimbaif/) - -- [Oussama Zaki](https://www.linkedin.com/in/zakioussama/) - -- [EL Azizi Ismail ](https://www.linkedin.com/in/ismail-el-azizi) - -- [Abdul Benbrahim](https://www.linkedin.com/in/abdulbenbrahim/) - -## Notes - -0:00:00 - Introduction and welcoming guests - -0:05:15 - What is UX/UI? - -0:16:24 - Why UX/UI is important? - -0:27:45 - How do our guests start their careers? - -0:39:50 - Should I have an artiste talent to be successful as UX/UI designer - -0:50:00 - UX/UI Jobs - -0:59:00 - Job for UX/UI designers In morocco and outside. - -1:06:14 - Self-taught vs. schools to learn UX/UI - -1:11:14 - How to bridge the gap between front-end developers and designers? - -1:39:10 - Tips and tools and recourse for people who want to start a UI/UX career - -1:55:05 - Blank board challenge - -1:59:50 - UX/UI community - -2:01:30 - What makes the difference between a good and a bad one? - -2:09:52 - Picks - -2:24:40 - Wrap up & Goodbye - -## Picks - -- [UX/UI Toolkit by Khaoula ](https://khettaleb.notion.site/UX-UI-Toolkit-by-Khaoula-Geeksblabla-8407f594d31844088e890caa58a5a7a8) - -- [Law of UX](https://lawsofux.com/) - -- [The Elements of User Experience](https://www.amazon.com/Elements-User-Experience-User-Centered-Design/dp/0735712026) - -- [Dark Patterns](https://www.darkpatterns.org/) - -- [Asshole Design](https://www.reddit.com/r/assholedesign/) - -- [The Design of Everyday Things](https://www.amazon.com/Design-Everyday-Things-Revised-Expanded/dp/0465050654) - -- [UX/UI design: How to get started](https://ismailelazizi.com/blog/ux-ui-design-how-to-get-started) - -- [Ismail Instagram ](https://www.instagram.com/ismail_elazizi/) - -- [Abderahman Instagram ](https://www.instagram.com/abdulbenbrahim/) - -- [Don't Make Me Think ](https://www.amazon.com/Dont-Make-Me-Think-Usability/dp/0321344758) - -- [Mobbin](https://mobbin.design/browse/ios/apps) - -- [Design for Developers](https://frontendmasters.com/courses/design-for-developers/) - -## Links - -- [Interaction Design](https://www.interaction-design.org/) - -- [Google UX Design Professional Certificate](https://www.coursera.org/professional-certificates/google-ux-design) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep11/index.md b/blablas/ep11/index.md deleted file mode 100644 index ecacae5f..00000000 --- a/blablas/ep11/index.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -date: 2018-05-26 -time: 20h -duration: "2:46:10" -title: "Web Dev JS frameworks, Best practices" -tags: ["web", "JS", "backend", "frontend"] -category: "dev" -isNext: false -video: "2144076882491332" -youtube: https://www.youtube.com/watch?v=y8mbKtOmNrg -published: true -audio: ---- - -In this episode of GeeksBlabla, Geeksblablas team with the amzing Abdelkader Boudih talk about the Web fundamental, new js Frameworks and some best practices you need to follow as a web developer. - -## Notes - -0:00:00 - Intro && new DevC events - -0:03:00 - About Abdelkader Boudih - -0:06:00 - History of the web, web2 and web3 - -0:10:00 - HTML && CSS - -0:16:00 - How to start learning Web fundamentals ? - -0:33:00 - Web designer vs front-end developer - -0:30:00 - CSS Tools - -0:40:00 - Browsers engines - -0:46:00 - How to start on server side projects? - -0:58:00 - Compiled and interpreted Languages - -1:04:00 - Databases && ORMs - -1:11:00 - Javascript Ecosystem - - - Why javascript is so famous - - Js framework - - Reactjs - - Angular - - Vuejs - -2:16:00 - Exiting web dev stuff in 2018 you need to know - - - GraphQl - - PWA - - WebAssemply - - Service Worker - -
- -## Links - -- [W3C](https://www.w3.org/) -- [SCSS](https://sass-lang.com/) -- [purifycss](https://purifycss.online/) -- [Autoprefixer](https://autoprefixer.github.io/) -- [Can I use](https://caniuse.com/) -- [Reactjs](https://reactjs.org/) -- [Angular](https://angular.io/) -- [VueJs](https://vuejs.org/) -- [graphQl](https://graphql.org/) -- [PWA](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps) -- [Service Worker](https://developers.google.com/web/ilt/pwa/introduction-to-service-worker) -- [WebAssembly](https://webassembly.org/) diff --git a/blablas/ep110/index.md b/blablas/ep110/index.md deleted file mode 100644 index 3731b3c3..00000000 --- a/blablas/ep110/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -date: 2022-03-13 -time: 20h:00min -duration: "1:07:44" -title: "Service mesh demystified" -tags: ["dev", "Service mesh ", "architecture"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=LGPUjmNieNI -published: true -featured: false ---- - -In this special episode, We discuss with our community members what service mesh is? How to get started and decide if service mesh is the best pattern for your next project? - -## Guests - -- [Mohammed Aboullaite](https://aboullaite.me) - -- [Soubai Abderahim](https://soubai.me) - -- [Djalal](https://twitter.com/enlamp) - -## Notes - -0:00:00 - Introduction and welcoming guests - -0:03:00 - What is a service mesh? - -0:12:37 - The benefits of using a service mesh pattern - -0:21:42 - Service mesh implementation - -0:31:00 - Service mesh challenges - -0:37:00 - Service mesh use cases - -0:57:30 - CI/CD for service mesh - -1:06:00 - Wrap up & Goodbye - -## Links - -- [Landscape](https://landscape.cncf.io/card-mode?category=service-mesh&grouping=category) - -- [Keel](https://keel.sh) - -- [service-mesh](https://github.com/aboullaite/service-mesh) - -## Prepared and Presented by - -- [Mohammed Aboullaite](https://aboullaite.me) diff --git a/blablas/ep111/index.md b/blablas/ep111/index.md deleted file mode 100644 index 91a2aad3..00000000 --- a/blablas/ep111/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -date: 2022-03-20 -time: 20h:00min -duration: "1:29:52" -title: "DigiGirlz x WIT 22" -tags: ["dev", "WIT", "DigiGirlz"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=G7SIYlXHx7Y -published: true ---- - -In this special episode, we honor the internation women's month. Our guest from Digigirlz will talk about their experience in such IT programs, and answer all of your questions. - -## Guests - -- [Chaimae Drissi Ismaili](https://www.linkedin.com/in/chaimae-drissi-smaili-b8993a105/) - -- [Afaf Ouardi](https://www.linkedin.com/in/afaf-ouardi-788903212/) - -- [Nada Skalli Senhaji](https://www.linkedin.com/in/nada-skali-senhaji-555146119) - -## Notes - -0:00:00 - Introduction and welcoming guests - -0:05:00 - What is the DigiGirlz initiative about? - -0:09:32 - How can our girls know about it and participate in it? - -0:13:00 - What are the technical and general benefits (impact) of this program? - -0:24:00 - How did you start your DigiGirlz journey and how was it? - -0:30:00 - Are there any other similar initiatives? - -0:36:30 - Initiatives created by our guests in Morocco. - -0:39:00 - Is the DigiGirlz initiative the best one? And why? - -0:44:00 - Is the low presence of women in tech a problem? if so, why ? - -1:07:00 - What do you think about the latest result of stateofdev? - -1:18:00 - Geeksblabla Picks. - -1:28:00 - Wrap up & Goodbye - -## Links - -- [DigiGirlz Morocco](https://www.facebook.com/DigiGirlz.ma/) - -- [Kid code](https://web.facebook.com/KidCodeMorocco) - -- [We STEM](https://www.instagram.com/westem.gi/) - -- [We STEM application](https://docs.google.com/forms/d/e/1FAIpQLScmef39izLi60B1ErD9KntojqHeq-yxLyqNQDlbTalz9xq2Zg/viewform?vc=0&c=0&w=1) - -- [Yale Young Global Scholars](https://globalscholars.yale.edu/) - -- [Orange Digital Center ML workshop](https://www.facebook.com/253109491766621/posts/1312010889209804/?d=w) - -- [Youth Zone](https://open.spotify.com/show/10Gu0UmnGmkyC2gq04fh6c?si=5ec9c006a5fc4121) - -## Prepared and Presented by - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) diff --git a/blablas/ep112/index.md b/blablas/ep112/index.md deleted file mode 100644 index 99cc706d..00000000 --- a/blablas/ep112/index.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -date: 2022-03-27 -time: 20h:00min -duration: "1:06:12" -title: "MSS with Amine Chouki" -tags: ["MSS"] -category: "MSS" -isNext: false -youtube: https://www.youtube.com/watch?v=nPec-1y4YHg -published: true - ---- - -In this episode of GeeksBlabla, we invited Amine Chouki, Staff Engineer - Docker, Inc. - -## Guests - -- [Amine Chouki](https://www.linkedin.com/in/aminechouki) - -## Notes - -0:00:00 - Introduction and welcoming - -0:01:39 - Education and getting into Technology? - -0:05:25 - Co-Founding elbotola.com - -0:07:35 - Managing Load and building custom solutions - -0:22:05 - Monolith migration to microservices - -0:27:10 - Building apps with high throughput - -0:32:00 - Experience in Invision - -0:39:00 - Experience in Docker - -0:45:00 - Aspiring Software Engineers tips - -0:52:00 - Tips to future entrepreneurs - -0:59:52 - Conclusion - -## Links - -- [Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321) -- [The Almanack of Naval Ravikant: A Guide to Wealth and Happiness](https://www.amazon.com/Almanack-Naval-Ravikant-Wealth-Happiness-ebook/dp/B08FF8MTM6) - -## Prepared and Presented by - -- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/blablas/ep113/index.md b/blablas/ep113/index.md deleted file mode 100644 index 75a56a2f..00000000 --- a/blablas/ep113/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -date: 2022-04-03 -time: 22h:00min -duration: "1:33:11" -title: "Preparing for a Tech Talk" -tags: ["Tech talk"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=qAGmL2GGATo -published: true -featured: false ---- - -In this episode of GeeksBlabla, we talk about tech talks; why you should care? How to choose a good topic? How to prepare and the right place to start. - - -## Guests - -- [Djalal](https://twitter.com/enlamp) - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Mohammed Daoudi](https://twitter.com/MIduoad) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:10 - Tech talks, why you should care? - -0:14:25 - Do i need to be an expert to start speaking in confs? - -0:25:20 - How to choose a good topic? - -0:39:00 - When i can find open CFPs and places for my first talks? - -0:53:00 - Tips to get accepted in a CFP - -1:04:00 - Preparing for a tech talk - -1:27:00 - Conclusion - - -## Links - -- [Antoine de Saint-Exupรฉry](https://www.goodreads.com/quotes/19905-perfection-is-achieved-not-when-there-is-nothing-more-to) -- [Djalal Talk Preparation](https://twitter.com/enlamp/status/1439321602173378565?s=20&t=FZFxClHednRbp_-3efvE7g) -- [Preparing for a Teck talk](https://overreacted.io/preparing-for-tech-talk-part-1-motivation/) -- [Julia Evans](https://jvns.ca/talks/) -- [Developers Conferences Agenda/List](https://github.com/scraly/developers-conferences-agenda) - - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep114/index.md b/blablas/ep114/index.md deleted file mode 100644 index 35257836..00000000 --- a/blablas/ep114/index.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -date: 2022-04-10 -time: 22h:00min -duration: "1:44:42" -title: "Switching Careers into IT" -tags: ["Switching Careers"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=tZxHxZGRaTE -published: true -featured: false ---- - -In this episode of GeeksBlabla, our community friends, Zakaria and Hamza, share their journey switching their careers to IT with us; we answer Why and How and some advice for people who want to switch their careers to IT. - -## Guests - -- [Hamza Hanafi](https://www.linkedin.com/in/hamza-hanfi-9ba77b137/) - -- [Zackaria S](https://twitter.com/gitignorer) - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:29 - Our Guests' stories and how they end up switching to IT. - -0:11:47 - The problem of school orientation and how to make a good choice? - -0:22:10 - Why career switch to IT and career growth in IT compared to other fields? - -0:28:10 - How to switch your career to IT and how to make sure it's the right decision? - -0:37:40 - Do you consider your past career experience wasting time? - -0:42:20 - How to start learning the IT field? - -0:56:20 - QA - -1:16:10 - Advice to find the first job for people who switch their career - -1:24:10 - QA - -1:37:24 - Benefits of switching career to IT - -1:40:00 - Conclusion - -## Links - -- [Freecodecamp](https://www.freecodecamp.org/) -- [Coding Bootcamp in Morocco](https://geeksblabla.io/blablas/coding-bootcamp-in-morocco) -- [Stateofdev.ma](https://stateofdev.ma/) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep115/index.md b/blablas/ep115/index.md deleted file mode 100644 index 16063ff3..00000000 --- a/blablas/ep115/index.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -date: 2022-04-17 -time: 22h:00min -duration: "1:48:48" -title: "Clean Code" -tags: ["book", "clean code"] -category: "book" -isNext: false -youtube: https://www.youtube.com/watch?v=oeuMCO4CYyg -published: true -featured: true ---- - -In this episode, we review one of the most famous books in IT; we discuss the "Clean code" book. We highlight the main ideas, our experience with the book, and discussions around the clean code tricks and resources to write clean code. - -## Guests - -- [Abderrahim Soubai Idrissi](https://www.soubai.me/) - -- [Slimane Akalie](https://www.linkedin.com/in/slimaneakalie/) - -- [Djalal](https://twitter.com/enlamp) - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:51 - The importance of reading - -0:08:00 - Reading culture in Morocco - -0:12:10 - How to find books in Morocco and the best tools to read books - -0:17:30 - Books vs. other resources to learn IT(stateofdev.ma stats) - -0:30:13 - Why clean code is so famous, and guests experience with this book - -0:45:30 - What is a Clean code? - -0:53:30 - Naming variables - -1:06:40 - Comments - -1:14:00 - Functions - -1:23:30 - Clean code vs. deadlines - -1:31:50 - Practicing Clean code - -1:37:20 - Picks - -1:44:33 - Conclusion - -## Links - -- [Better world books](https://www.betterworldbooks.com/) -- [Book repository](https://www.bookdepository.com/) -- [Stateofdev.ma](https://stateofdev.ma/) -- [Tech Radar](https://www.techradar.com/) -- [Thought Works](https://www.thoughtworks.com/) -- [Warp](https://www.warp.dev/) -- [Dev Rel](https://www.devrelbook.com/) -- [Beautiful Code](https://www.oreilly.com/library/view/beautiful-code/9780596510046/) -- [Slimane Youtube Channel](https://www.youtube.com/channel/UCAKherxCCvXWHyGaeQKy-Jw) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep116/index.md b/blablas/ep116/index.md deleted file mode 100644 index d71c9086..00000000 --- a/blablas/ep116/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -date: 2022-04-24 -time: 22h:00min -duration: "1:42:15" -title: "Clean Code (part 2)" -tags: ["book", "clean code"] -category: "book" -isNext: false -youtube: https://www.youtube.com/watch?v=H9ltgucbk5A -published: true -featured: false ---- - -In this episode, we continue our review of the most famous books in IT; we discuss the "Clean code" book. We highlight the main ideas, our experience with the book, and discussions around the clean code tricks and resources to write clean code. - -## Guests - -- [Slimane Akalie](https://www.linkedin.com/in/slimaneakalie/) - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:50 - Mehdi point of view about Clean Code book - -0:10:00 - Formatting - -0:16:10 - Objects and Data Structure - -0:24:00 - Tests - -0:43:50 - Refactoring and legacy code - -0:59:00 - Concurrence - -1:12:00 - Tasks estimation - -1:20:00 - Other recourses and tools to learn Clean Code - -1:30:00 - Geeksblabla Picks - -1:37:00 - Conclusion - -## Links - -- [Clean code (part1)](https://geeksblabla.io/blablas/clean-code) -- [Robert C. Martin - Effective Estimation (or: How not to Lie)](https://www.youtube.com/watch?v=eisuQefYw_o) -- [Clean Code Typescript](https://github.com/labs42io/clean-code-typescript) -- [ReadWise](https://readwise.io/) -- [Ego is the Enemy](https://www.amazon.com/Ego-Enemy-Ryan-Holiday/dp/1591847818) -- [The Psychology of Money](https://www.amazon.com/Psychology-Money-Timeless-lessons-happiness/dp/0857197681) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep117/index.md b/blablas/ep117/index.md deleted file mode 100644 index 56f6fa01..00000000 --- a/blablas/ep117/index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -date: 2022-05-08 -time: 20h:00min -duration: "1:31:38" -title: "Software Project Management" -tags: ["Software", "Project", "Project Management", "Agile", "Scrum", "Delivery", "Collaboration"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=PTrk2tUhbdY -published: true -featured: false ---- - -In this Episode , we will walkthrough the path of managing a software project from start to finish. - -## Guests - -- [Adil BAAJ](https://www.linkedin.com/in/adil-baaj/) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:02:20 - Engineering Manager Roles - -0:05:30 - What's a Software Project ? - -0:06:55 - What do we need to know before we start a Software Project ? - -0:18:00 - Tools and processes necessary to implement a Software Project ? - -0:25:00 - Software Project Management Methodologies - -0:30:00 - Planification management - -0:35:00 - Rituals to make high quality Software Projects - -0:45:45 - Managing Communication between stakeholders - -1:00:15 - Software Project Lifecycle - -1:10:00 - Q/A - -1:27:00 - Geeksblabla Picks - -## Links - -- [Nine Lies About Work: A Freethinking Leaderโ€™s Guide to the Real World](https://www.amazon.com/Nine-Lies-about-Work-Freethinking-ebook/dp/B07C3ZT28C) - -## Prepared and Presented by - -- [Otmane FETTAL](https://twitter.com/ofettal/) diff --git a/blablas/ep118/index.md b/blablas/ep118/index.md deleted file mode 100644 index 8b777a80..00000000 --- a/blablas/ep118/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -date: 2022-05-22 -time: 20h:00min -duration: "1:21:51" -title: "Making Great Tech Products" -tags: ["Software", "Project", "Project Management", "Agile", "Scrum", "Delivery", "Collaboration" , "Product", "Product Management"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=7Nl-7Zri1Hg -published: true -featured: false ---- - -In this Episode , we will discuss what do we need to know to build great tech products. - -## Guests - -- [Hassan BelHabib Filali](https://www.linkedin.com/in/hassan-belhabib-filali-0404b418/) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:01:30 - Guest Introduction - -0:07:00 - Product Manager Roles - -0:17:30 - Product Manager vs Project Manager - -0:25:00 - How can we get Ideas to build new Products ? - -0:33:32 - Copycats - -0:36:20 - Ingrediants to build better products - -0:38:00 - Challenging Ideas and making them into reality - -0:49:25 - What comes next ? - -0:52:54 - Skills to develop to be a better Product Manager ? - -1:03:35 - Q/A - -1:09:00 - Geeksblabla Picks - -1:15:00 - Conclusion - -## Links - -- [Product Management Tips - Shreyas Doshi](https://twitter.com/shreyas) -- [Product School](https://www.productschool.com/) -- [Fireship](https://www.youtube.com/c/Fireship) - -## Prepared and Presented by - -- [Otmane FETTAL](https://twitter.com/ofettal/) diff --git a/blablas/ep119/index.md b/blablas/ep119/index.md deleted file mode 100644 index 378aae15..00000000 --- a/blablas/ep119/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -date: 2022-05-29 -time: 20h:00min -duration: "1:44:51" -title: "Tech News & AMA #17" -tags: ["AMA", "geeksblabla"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=00Z7mP3IhTI -published: true -featured: false ---- - -Tech News & AMA #17 with our community members Mohamed, and Abdullah. During this episode, we discuss Oracle labs in morocco, new Abdullah experience joining Microsoft and we answer audience questions. - -## Guests - -- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) - -- [Abdullah Iraamane](https://www.linkedin.com/in/aairaamane/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:01:30 - Guest Introduction - -0:03:00 - Oracle Labs in Morocco - -0:26:00 - Abdullah experience joining Microsoft - -0:54:00 - Big company Recruitment Freezing? - -1:01:00 - Resume Writing advices. - -1:04:00 - Is a french an obstacle on acquiring jobs in morocco? - -1:10:00 - Finding the first job remotely. - -1:13:10 - How to deal when you feel you are not learning new things in your job? - -1:21:20 - Freelance vs working in companies. - -1:23:30 - PhD programs offered by Oracle labs. - -1:28:00 - QA - -1:41:30 - Conclusion - -## Links - -- [Oracle Labs](https://labs.oracle.com/pls/apex/labs/r/labs/intro) -- [StateOfDev.ma](https://stateofdev.ma/) -- [Self-taught developers episode](https://geeksblabla.io/blablas/self-taught-developers) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep12/index.md b/blablas/ep12/index.md deleted file mode 100644 index 68025c0f..00000000 --- a/blablas/ep12/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -date: 2018-05-19 -time: 20h -duration: "2:00:13" -title: "Devops" -tags: ["devops"] -category: "dev" -isNext: false -video: "2140582549507432" -youtube: https://www.youtube.com/watch?v=_tizAkqvivM -published: true -audio: ---- - -On this episode of Geeksblabla : Soufian (Host) , Mohammed Aboullaite , Mohammed Ezzarghili , Youssouf and Amine talks about DevOps : Definitions , brief history , Work flow , Tools and best practices ..etc. - -## Notes - -00:00:00 - Introduction : Mohammed / Soufian announcing upcoming community events - -00:09:00 - Welcoming to the new season - -00:10:00 - What is the definition of DevOps ? - -00:17:00 - Can we use DevOps on any industry context ? - -00:22:00 - Good resource for understanding DevOps ( Book : Effective DevOps) - -00:28:00 - What is the principal DevOps process/Workflow/toolchain used in software engineering ? - -00:37:00 - Code (Toolchain) - -00:47:00 - IDE (Toolchain) - -00:52:00 - How automatically deploy angular app ? - -00:59:00 - Build (Toolchain) - -01:03:00 - Test (Toolchain) - -01:19:00 - Packaging (Toolchain) - -01:25:00 - Releasing (Toolchain) - -01:29:00 - Configuration (Toolchain) - -01:37:00 - Monitoring (Toolchain) - -01:45:00 - Questions - -## Links - -- [Effective DevOps](http://shop.oreilly.com/product/0636920039846.do) - -... diff --git a/blablas/ep120/index.md b/blablas/ep120/index.md deleted file mode 100644 index 3cfe3876..00000000 --- a/blablas/ep120/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -date: 2022-06-05 -time: 20h:00min -duration: "1:23:28" -title: "Quantum computing" -tags: ["Quantum Computing"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=flTK46tRlOc -published: true -featured: false ---- - -In this Episode , we will discover what quantum computers are and how they work. - -## Guests - -- [Yassine Moumen](https://www.linkedin.com/in/yassine-moumen/) - -- [Badr Bellaj](https://www.linkedin.com/in/bellajbadr/) - -- [Hinde Adnani](https://www.linkedin.com/in/hinde-adnani-426a0254/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:01:34 - Guest Introduction - -0:02:52 - What is a quantum computer? - -0:12:04 - Brief definition of quantum physics - -0:22:13 - How do quantum computers work? - -0:26:23 - Quantum supremacy and the cost of making quantum computers. - -0:30:04 - What are Qubits and how they differ from normal bits? - -0:32:50 - Can quantum computers replace ordinary computers? - -0:42:11 - In which fields are(/will) quantum computers mostly used? - -0:56:07 - Q/A - -1:06:04 - Can anyone use quantum computers and how? - -1:10:50 - How do we program quantum computer (algorithms and programming languages)? - -1:14:37 - Other recourses and tools to learn Quantum Computing - -1:20:00 - Conclusion - -## Links - -- [QMorocco](https://qworld.net/qmorocco/) -- [IBM quantum lab](https://quantum-computing.ibm.com/lab) -- [qiskit](https://qiskit.org/textbook/ch-labs/) -- [Dancing with Qubits: How quantum computing works and how it can change the world](https://www.amazon.com/Dancing-Qubits-quantum-computing-change/dp/1838827366) -- [Computing with Quantum Cats: From Colossus to Qubits](https://www.amazon.com/Computing-Quantum-Cats-Colossus-Qubits/dp/1616149213) -- [Quantum Computing: A Gentle Introduction](https://www.amazon.com/Quantum-Computing-Introduction-Engineering-Computation/dp/0262526670) -- [The Outer Limits of Reason: What Science, Mathematics, and Logic Cannot Tell Us](https://www.amazon.com/Outer-Limits-Reason-Science-Mathematics/dp/026252984X) -- [Quantum computers without beating about the bush](https://yassinemoumen.com/?p=76) - -## Prepared and Presented by - -- [Mohammed Daoudi](https://twitter.com/MIduoad/) diff --git a/blablas/ep121/index.md b/blablas/ep121/index.md deleted file mode 100644 index 582b80e2..00000000 --- a/blablas/ep121/index.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -date: 2022-06-26 -time: 20h:00min -duration: "1:46:22" -title: "Cal Newport books" -tags: ["book", "cal newport"] -category: "book" -isNext: false -youtube: https://www.youtube.com/watch?v=4Bjzbdc2ApY -published: true -featured: false ---- - -In this episode, we review a series of Cal Newport's books and discuss each of these books topics with the guests, and people who already read the book(s). - -## Guests - -- [Slimane Akalie](https://www.linkedin.com/in/slimaneakalie/) - -- [Diaa Alhak El Fallous](https://www.linkedin.com/in/elfallous/) - -- [Mohammed Daoudi](https://twitter.com/MIduoad) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:50 - Intro about the author: Call Newport and Books - -0:07:00 - So good they can't ignore you - -0:29:15 - Deep Work - -0:54:51 - Digital minimalism - -1:19:30 - A world Without Emails - -1:33:00 - Geeksblabla Picks - -1:45:00 - Conclusion - -## Links - -- [Cal Newport: Deep Work, Focus, Productivity, Email, and Social Media)](https://www.youtube.com/watch?v=y3Umo_jd5AA&ab_channel=LexFridman) -- [So Good They Canโ€™t Ignore You](https://www.calnewport.com/books/so-good/) -- [Highlights from A world without email](https://www.slimane.io/highlights/a-world-without-email) -- [Highlights from Digital minimalism](https://www.slimane.io/highlights/digital-minimalism) -- [The Outer Limits of Reason](https://www.amazon.com/Outer-Limits-Reason-Science-Mathematics/dp/026252984X) -- [Never Split the Difference: Negotiating As If Your Life Depended On It](https://www.goodreads.com/book/show/26156469-never-split-the-difference) -- [Logseq](https://logseq.com/) - -- [TickTick](https://ticktick.com/) - -## Prepared and Presented by - -- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/blablas/ep122/index.md b/blablas/ep122/index.md deleted file mode 100644 index d2131df0..00000000 --- a/blablas/ep122/index.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -date: 2022-07-03 -time: 20h:00min -duration: "1:51:51" -title: "Tech News & AMA #18" -tags: ["AMA", "geeksblabla"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=M_Fndyna8VI -published: true -featured: false ---- - -Tech News & AMA #18 with our community members Ilyas, and Abderrahim. During this episode, we discuss DenoJS's new framework, State of cloud 2022 and AWS EKS. - -## Guests - -- [Abderrahim soubai](https://www.soubai.me/) - -- [Ilyas Bakouch](https://www.linkedin.com/in/ilyasbakouch/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:01:30 - Guest Introduction - -0:03:00 - Fresh Framework release - -0:35:00 - java and other programming languages can be obsolete within the next few years? - -0:42:00 - What about .NET ? - -0:47:00 - PHP, JS, and Python - -0:49:00 - AWS EKS everywhere. - -1:14:00 - Future of VueJS - -1:26:10 - Geeksblabla Giveaway. - -1:30:20 - Thoughts on the state of cloud 2022. - -1:38:00 - QA - -1:48:30 - Conclusion - -## Links - -- [State of Cloud 2022](https://www.thecloudcast.net/2022/06/state-of-cloud-2022.html) -- [StateOfDev.ma](https://stateofdev.ma/) -- [AWS Graviton Processor](https://aws.amazon.com/ec2/graviton/) -- [AWS Outposts Family](https://aws.amazon.com/outposts/) -- [AWS Inferentia](https://aws.amazon.com/machine-learning/inferentia/) -- [VueJS core](https://github.com/vuejs/core) -- [Node.js in Action](https://www.manning.com/books/node-js-in-action) - -## Prepared and Presented by - -- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/blablas/ep123/index.md b/blablas/ep123/index.md deleted file mode 100644 index 4b1f79f0..00000000 --- a/blablas/ep123/index.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -date: 2022-07-17 -time: 20h:00min -duration: "1:29:18" -title: "Create Great Documentation" -tags: ["Dev", "geeksblabla"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=R52Rt-iFPgs&t=1106s -published: true -featured: false ---- - -In today's episode we dive into documentation, its rules, ethics, best practices and some tools that help to get started. -## Guests - -- [Omaima Khalil](https://twitter.com/BadQuinn3) - -- [Mohammed Aboullaite](https://twitter.com/laytoun) - -## Notes - -0:00:00 - Introduction and welcoming - -0:01:30 - Guests Introduction - -0:02:50 - What is Documentation? Why we need it? - -0:05:51 - What are the types of Documentation you know? - -0:10:01 - Who do we write documentation for? - -0:15:35 - What makes good documentation? - -0:20:34 - Ethics of documentation and rules to respect - -0:24:31 - How do we structure our documentation? - -0:53:07 - What types of documentation should focus on writing? - -1:02:20 - Some tools you use to write or share documentation. - -1:10:00 - Tips from guests. - -1:14:00 - GeeksBlabla Giveaway. - -1:17:45 - Geeksblabla Picks - -1:29:18 - Conclusion - -## Links - -- [Technical Writing One introduction](https://developers.google.com/tech-writing/one) -- [Bookstack](https://www.bookstackapp.com/) -- [Docusaurus](https://docusaurus.io/) - - -## Prepared and Presented by - -- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/blablas/ep124/index.md b/blablas/ep124/index.md deleted file mode 100644 index bad6b7fa..00000000 --- a/blablas/ep124/index.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -date: 2022-09-05 -time: 20h:00min -duration: "2:06:51" -title: "Tech News & AMA #19" -tags: ["AMA", "geeksblabla"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=5sAt9Q7aysA -published: true -featured: false ---- - -Tech News & AMA #19 with our community members Mehdi,Meriem, Youssouf, Yasser and Abderrahim. During this episode, we discuss Bunjs new javascript runtime, Heroku move to kill the free tier and much more. - -## Guests - -- [Abderrahim soubai](https://www.soubai.me/) - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -- [Yasser Tahiri](https://www.yezz.me/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:00 - Guest's learning during the last period. - -0:19:29 - HeroKu free tier is dead. - -0:28:00 - Is Github Copilot worth it? - -0:35:30 - BunJs new javascript runtime. - -0:46:00 QA ? - -1:23:30 - Python updates. - -1:31:40 - Favorite programming languages for our guests. - -1:53:10 - Geeksblbla Picks. - -1:48:30 - Conclusion - -## Links - -- [Bun Js](https://bun.sh/) -- [Marketing Yourself as a Developer](https://geeksblabla.io/blablas/marketing-yourself-as-a-developer) -- [Pydantic](https://github.com/pydantic/pydantic) -- [Ormdantic](https://github.com/yezz123/ormdantic) -- [ms-kubernetes-tools](https://marketplace.visualstudio.com/items?itemName=ms-kubernetes-tools.vscode-kubernetes-tools) -- [The Log-Structured Merge-Tree (LSM-Tree)](https://www.cs.umb.edu/~poneil/lsmtree.pdf) -- [Nleveldb](https://github.com/google/leveldb) -- [rocksdb](https://github.com/facebook/rocksdb) -- [pebble](https://github.com/cockroachdb/pebble) - -## Prepared and Presented by - -- [Meriem Zaid](https://twitter.com/_iMeriem) - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep125/index.md b/blablas/ep125/index.md deleted file mode 100644 index db3696d9..00000000 --- a/blablas/ep125/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -date: 2022-09-11 -time: 20h:00min -duration: "1:30:27" -title: "DevoxxMa Special" -tags: ["Dev"] -category: "dev" -isNext: false -youtube: https://youtu.be/UaulAxzEvdk -published: true -featured: false ---- - -In this episode we dicuss DevoxxMA's return this year, news and other details with Badr Elhouari. - -## Guests - -- [Badr Elhouari](https://twitter.com/badrelhouari) - - -## Notes - -0:00:00 - Introduction and welcoming. - -0:01:57 - This year's theme. - -0:06:53 - From developers to developers. - -0:11:28 - What are the subjects most focused on? - -0:16:20 - Bringing back in person events. - -0:26:30 - Smart training and workshops yet to be presented by experts - -0:29:28 - Talks selections and criterias. - -0:40:25 - Conferences culture in Morocco. - -0:52:11 - Will there be a recording of sessions this year? - -1:15:54 - DevoxxMa culture and other conferences. - -1:27:26 - Geeksblabla Giveaway - -1:29:00 - Wrap up and Goodbye! - -## Links - -- [DevoxxMA 2022](https://devoxx.ma/) - -## Prepared and Presented by - -- [Meriem Zaid](https://twitter.com/_iMeriem) - -- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/blablas/ep126/index.md b/blablas/ep126/index.md deleted file mode 100644 index ab19d16f..00000000 --- a/blablas/ep126/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -date: 2022-09-18 -time: 20h:05min -duration: "2:00:45" -title: "All about Agile" -tags: ["Dev","Agile","Project","Management"] -category: "dev" -isNext: false -youtube: https://youtu.be/UcaHNJR7s-0 -published: true -featured: false ---- -In this episode we discuss Agile from Business , Project and Developement/Operation Perspectives. - -## Guests - -- [Amine Maarouf](https://twitter.com/a_maaarouf) -- [Djalal EL Baz](https://twitter.com/enlamp) -- [Nassima Labzagui](https://www.linkedin.com/in/nassima-labzagui-m-eng-40b22615a) - -## Notes - -0:00:00 - Introduction and welcoming. - -0:01:28 - Omaima's Introduction to Geeksblaba Team - -0:02:52 - Guests Introduction - -0:08:29 - What's Agile ? - -0:24:44 - Agile from the Business Perspective - -0:41:47 - Agile from Project Management Perspective - -0:58:28 - Agile from the Developer Perspective - -1:10:25 - Agile Challenges - -1:29:30 - Q/A - -1:47:20 - Geeksblabla Picks - -2:00:00 - Wrap up and Goodbye! - -## Links - -- [Bubble](https://bubble.io) -- [Scrum](https://โ€‹scrum.org) -- [Agile Lab](https://agilelab.de/blog) - -## Prepared and Presented by - -- [Omaima Khalil](https://twitter.com/BadQuinn3) - -- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/blablas/ep127/index.md b/blablas/ep127/index.md deleted file mode 100644 index c9338324..00000000 --- a/blablas/ep127/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -date: 2022-09-25 -time: 20h:05min -duration: "2:04:32" -title: "Software Architecture Fundamentals" -tags: ["Dev","Architecture","101","fundementals","Software"] -category: "dev" -isNext: false -youtube: https://youtu.be/ObWFqaTm3Hk -published: true -featured: false ---- -In this episode we discuss the fundemental concepts for building resilient and evolving Software. - -## Guests - -- [Mohammed Aboullaite](https://twitter.com/laytoun) -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -## Notes - -0:00:00 - Introduction and welcoming. - -0:02:00 - Why do we need to have architectures for our Software ? - -0:10:28 - "Picking the right architecture is picking the right battles and managing tradeoffs" - -0:13:10 - Functional and non Functional Requirements - -0:29:10 - Fundemental Concepts in Software Architecture - -1:10:00 - Lessons from Implementing Successful Software Architectures. - -1:21:12 - Q/A - -1:49:33 - Ressources to learn Systems Design - -2:02:00 - Wrap up and Goodbye! - -## Links - -- [Systems Design Interview](https://www.amazon.com/System-Design-Interview-insiders-Second/dp/B08CMF2CQF) -- [Systems Design Cheat Sheet](https://gist.github.com/vasanthk/485d1c25737e8e72759f) -- [Hussain Nasser Software Engineering](https://www.youtube.com/c/HusseinNasser-software-engineering) -- [Architecting for Scale](https://www.amazon.com/Architecting-Scale-Lee-Atchison/dp/1491943394) -- [Building Secure and Reliable Systems](https://www.amazon.com/Building-Secure-Reliable-Systems-Implementing/dp/1492083127) -- [Designing Data-Intensive Applications](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable) -- [Building Evolutionary Architectures](https://www.amazon.com/Building-Evolutionary-Architectures-Support-Constant) - - -## Prepared and Presented by - -- [Abderrahim SOUBAI-ELIDRISI](https://twitter.com/soub4i) - -- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/blablas/ep128/index.md b/blablas/ep128/index.md deleted file mode 100644 index 38a97f46..00000000 --- a/blablas/ep128/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -date: 2022-10-16 -time: 20h:15min -duration: "1:37:36" -title: "Letโ€™s talk about Operating Systems" -tags: ["Dev","Architecture","101","fundementals","Software","Operating Systems"] -category: "dev" -isNext: false -youtube: https://youtu.be/qDMl9Zx2Mjg -published: true -featured: false ---- -In this episode we discuss the fundemental concepts of Operating Systems - -## Guests - -- [Mohammed Daoudi](https://twitter.com/MIduoad) - -## Notes - -0:00:00 - Introduction and welcoming. - -0:01:50 - What's an Operating System ? - -0:13:08 - Computer Start-up Process - -0:18:11 - What's an Operating System Kernel ? - -0:27:00 - What's an Operating System Shell ? - -0:29:20 - What's a Process ? - -0:33:50 - OS Process Management - -0:41:11 - OS Memory Management - -0:50:20 - OS Hardware Management - -0:59:25 - OS Graphical User Interfaces - -1:06:00 - Linux Distributions - -1:13:51 - Q/A - -1:36:00 - Wrap up and Goodbye! - -## Links - -- [Microsoft Linux Distro](https://github.com/microsoft/CBL-Mariner) - - - -## Prepared and Presented by - -- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/blablas/ep129/index.md b/blablas/ep129/index.md deleted file mode 100644 index 0e3fca21..00000000 --- a/blablas/ep129/index.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -date: 2022-10-23 -time: 20h:00min -duration: "1:57:21" -title: "AMA & Tech News #20" -tags: ["AMA", "geeksblabla"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=FrhrvdQwmSo -published: true -featured: false ---- - -Tech News & AMA #20 with our community members Mehdi, Youssouf, Abderrahim and Manal. During this episode, we discuss 2023 IT trends predictions, BlablaConf updates, Hacktoberfest, and much more. - -## Guests - -- [Manal Benchrif](https://www.linkedin.com/in/manalbenchrif/) - -- [Abderrahim soubai](https://www.soubai.me/) - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:30 - Guests learning during last months - -0:06:00 - Hacktoberfest - -0:13:45 - Blablaconf update and call for speakers - -0:26:00 - Moroccan national programming contest 2022 - -0:58:00 - State of Java report - -1:01:00 - React new async rendering - -1:10:00 - react query, qraphql, fetch, axios - -1:15:00 - QA - -1:23:40 - 2023 IT predictions - -1:48:50 - GeeksBlabla Picks - -1:44:00 - warming up and goodbye - -## Links - -- [cfp.blablaconf](https://cfp.blablaconf.com/) -- [hacktoberfest-open-source-2021](https://geeksblabla.io/.../hacktoberfest-open-source-2021) -- [hacktoberfest](https://hacktoberfest.com/?fbclid=IwAR3W6o4ImjsK40Min99_hTt6tWrNT-atkdeso9xUjQDBiNbbwLoxOGZlo-M) -- [Build Your First Sentiment Analysis Web App with Streamlit with Manal Benchrif |BlaBlaConf 2021](https://www.youtube.com/watch?v=5plMb36qvLM) -- [MNPC 2022 Editorial](https://www.youtube.com/watch?v=QQLSbj1shHs&fbclid=IwAR3MRJ6eFhTJJH8JFswcZXV5t4M4M1WjsWts6ytZ0QnM99Md5ln7U_evAko) -- [2022 State of the Java Ecosystem Report](https://newrelic.com/resources/report/2022-state-of-java-ecosystem?fbclid=IwAR02xExRGP71qS94gNiX765jJ2MBBILdmvLi6vecgOe8yLSEuek9KQRnLKk) -- [stackblitz](https://stackblitz.com/codeflow?fbclid=IwAR0egKhHTfHSOEHDSKG1jD783L3fQ3Y5NNQzb5xyeKJ_JOVN89-YdBtwWi8) -- [Top 5 Biggest Technology Trends In 2023 (Aikyo)](https://medium.com/@aikyo.io/top-5-biggest-technology-trends-in-2023-7242256b1834) -- [rytr](https://rytr.me/?fbclid=IwAR36x8L6w4OZ9XQygrDN5I7qD-Xvj9ASnIsTrDu-h8Ag7l3FUrN-p_Cb13g) -- [stateofdev](https://stateofdev.ma/) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep13/index.md b/blablas/ep13/index.md deleted file mode 100644 index 4dc565bc..00000000 --- a/blablas/ep13/index.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -date: 2019-05-11 -time: 22h -duration: "1:05:23" -title: "Open source licenses & standards" -tags: ["open source"] -category: "dev" -isNext: false -video: "2323086011085395" -youtube: https://www.youtube.com/watch?v=PHqAbG-Wgkg -published: true -audio: ---- - -In this episode, Geeksblabla team talks about the Open source licenses & standards, starting from the definition of software licensing to the commonly known Open source software licenses such as MIT, GPL ..etc. - -## Notes - -00:00:00 - Introduction : Welcoming to the new season - -00:01:00 - What is Software licensing ? - -00:02:00 - Does writing code with no license gives the right to others to use it ? - -00:05:00 - What's the history of Open Source Licensing ? - -00:09:00 - Difference between Open Source Software, Free Software & Freeware (Gratis software) ? - -00:14:00 - Families of Open source Licenses - -00:16:00 - Copyright and copyleft, what's the difference ? - -00:19:00 - GPL, AGPL and LGPL ? - -00:23:00 - Are licenses related to territories ? (International and national licenses) - -00:25:00 - Does GPL gives freedom to commercial companies ? - -00:26:00 - Is using multiple licenses in one project possible ? - -00:32:00 - How to make sure other people are following my license ? - -00:40:00 - How open source licenses problems are solved legally in Morocco ? - -00:45:00 - How to chose the license that fits the most my project ? - -00:53:00 - Why should I mark my projects with Open Source License ? - -## Links - -- [GNU - Richard Stallman](https://en.wikipedia.org/wiki/GNU_Project) -- [Free Software Foundation](https://www.fsf.org/) -- [Mozilla Foundation](https://foundation.mozilla.org/fr/) -- [Apache Foundation](https://www.apache.org/) -- [GENERAL PUBLIC LICENSE (GPL)](https://www.gnu.org/licenses/gpl-3.0.en.html) -- [AFFERO GENERAL PUBLIC LICENSE (AGPL)](https://www.gnu.org/licenses/agpl-3.0.en.html) -- [LESSER GENERAL PUBLIC LICENSE (GPL)](https://www.gnu.org/licenses/lgpl-3.0.en.html) -- [Copyleft](https://www.copyleft.org/) -- [MIT](https://en.wikipedia.org/wiki/Free_Software_Foundation) -- [Choose a license #1](https://ufal.github.io/public-license-selector/) -- [Choose a license #2](https://choosealicense.com/) -- [Adding a license on github](https://help.github.com/en/articles/adding-a-license-to-a-repository) diff --git a/blablas/ep130/index.md b/blablas/ep130/index.md deleted file mode 100644 index d370d930..00000000 --- a/blablas/ep130/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -date: 2022-10-30 -time: 20h:00min -duration: "2:19:18" -title: "React JS Revisited" -tags: ["Dev", "geeksblabla", "react"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=6lXH3vhfEHI -published: true -featured: false ---- - -In this episode of GeeksBlabla, we discuss React JS and its ecosystem and everything around it such us Next JS, Gatsby JS, Tailwind CSS, TypeScript, Server component and much more. - -## Guests - -- [Adel Dafrallah ](https://www.linkedin.com/in/bigfanjs/) - -- [Mohamed El Ayadi](https://www.linkedin.com/in/mohamed-el-ayadi-2a34749a/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:30 - Learning React js, and the importance of learning basic first. - -0:18:10 - How to choose a framework for your next react project, and the pros and cons of each framework. - -0:33:00 - Typescript, and the benefits of using it in your react project. - -0:38:00 - Routing in react. - -0:43:30 - Styling a react project. - -0:55:33 - State management and API calls in react. - -1:12:00 - Forms in react. - -1:14:00 - QA - -1:22:40 - Testing in react. - -1:28:00 - QA - -1:40:00 - The new updates in react and Next 13. - -1:53:00 - Next Js Conf 2022. - -2:02:00 - Guests least favorite features in react. - -2:05:50 - Future of react. - -2:10:00 - Geeksblabla Picks - -2:17:00 - Goodbye and See you next week. - -## Links - -- [Frontend Masters](https://frontendmasters.com/) -- [The Beginner's Guide to React](https://egghead.io/courses/the-beginner-s-guide-to-react?fbclid=IwAR203siAUBKktmC610k6cWjVidvmXxxujwM5rsBXelgxq3pxeQGvBbaoxmA) -- [How to learn typescript for react developers](https://elazizi.com/how-to-learn-type-script-for-react-developers) -- [You Dont Know JS](https://github.com/getify/You-Dont-Know-JS?fbclid=IwAR01y6xrO3WZJ9czBi9-TFDAkgpJmgLR50lCU3n9QHcvOvMasx9p-qdVc44) -- [Figma to Code (HTML, Tailwind, Flutter, SwiftUI)](https://www.figma.com/community/plugin/842128343887142055/Figma-to-Code-HTML%2C-Tailwind%2C-Flutter%2C-SwiftUI) -- [Formik](https://formik.org/) -- [Ant design](https://ant.design/) -- [Headless UI](https://headlessui.com/) -- [Cypress](https://www.cypress.io/) -- [React fiber architecture](https://github.com/acdlite/react-fiber-architecture) -- [Vite vs. Next + turbopack HMR Benchmark](https://github.com/yyx990803/vite-vs-next-turbo-hmr) -- [Functional Light JS](https://github.com/getify/Functional-Light-JS) -- [overreacted](https://overreacted.io/) -- [How Javascript Works](https://www.howjavascriptworks.com/) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep131/index.md b/blablas/ep131/index.md deleted file mode 100644 index 4a32fc90..00000000 --- a/blablas/ep131/index.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -date: 2022-11-06 -time: 20h:05min -duration: "1:38:02" -title: "MSS with Adil TOUATI" -tags: ["MSS", "geeksblabla", "Cloud", "DevOPS", "Microsoft"] -category: "MSS" -isNext: false -youtube: https://www.youtube.com/watch?v=nDb3hLIMrP0 -published: true -featured: false ---- - -In this Episode of Geeksblabla , We're joined by the amazing Adil Touati who shared with us precious insights from his amazing career in the Software Industry. - -## Guests - -- [Adil TOUATI](https://www.linkedin.com/in/adiltouati/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:02:00 - Adil's Journey to Microsoft - -0:23:00 - How was Adil able to follow tech trends ? - -0:34:30 - Adil's relationship with Technology - -0:37:00 - The work of a Cloud Solution Architect - -0:45:00 - What are the necessary skills to become a Solutions Architect ? - -0:53:33 - Where do you see the Cloud going ? - -1:14:00 - Adil's Advice for the newer generation of Software Engineers - -1:26:00 - QA - Geeksblabla Picks - -1:35:00 - Conclusion - -## Links - -## Prepared and Presented by - -- [Otmane FETTAL](https://twitter.com/OFettal) diff --git a/blablas/ep132/index.md b/blablas/ep132/index.md deleted file mode 100644 index 3631175c..00000000 --- a/blablas/ep132/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -date: 2022-11-13 -time: 20h:05min -duration: "1:27:02" -title: "Coding for Kids" -tags: ["kids", "learning"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=EpV5GA-kPos -published: true -featured: false ---- - -In this episode of GeeksBlabla, we discuss the importance for coding for kids, how to teach them to code and how to make them love coding. - -## Guests - -- [Anas Elalaoui ](https://www.linkedin.com/in/adiltouati/) - -- [Diaa Alhak El fallous](https://www.linkedin.com/in/elfallous/) - -- [Driss Boumlik](https://www.linkedin.com/in/drissboumlik/) - -- [Ibrahim Drissi](https://www.linkedin.com/in/ibrahim-drissi-424838244/) - -- [Ayman Riad Solh]() - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:20 - Importance of coding for kids - -0:28:00 - Experience of learning to code with Ibrahim and Ayman - -0:44:30 - Teaching kids to code in morocco - -1:19:10 - Wrap up and goodbye - -## Links - -- [ActiveLabs](https://www.activelabs.ma/) -- [Code.org](https://code.org/) -- [Mindstorms ev3](https://education.lego.com/en-us/downloads/mindstorms-ev3/software#downloads) -- [Scratch](https://scratch.mit.edu/) - -## Prepared and Presented by - -- [Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep133/index.md b/blablas/ep133/index.md deleted file mode 100644 index d007ba49..00000000 --- a/blablas/ep133/index.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -date: 2022-11-20 -time: 20h:00min -duration: "2:00:56" -title: "SaaS for developers" -tags: ["saas", "entrepreneurship", "making"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=ELbXxyV2_KM -published: true -featured: false ---- - -In this episode of GeeksBlaBla, we discuss the Software As A Service business model going from how to build a SaaS product to how to launch it in the market. - -## Guests -- [Djalal](https://twitter.com/enlamp) - -- [Moustaid Ayoub](https://twitter.com/mstdayoub) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:02 - What is SaaS (Software As A Service)? - -0:09:55 - What are the benefits of Saas ? - -0:17:56 - When not to use SaaS (as an end-user / as a maker)? - -0:35:20 - The future of SaaS in Morocco ? - -0:52:45 - Ideation and market validation in SaaS. - -1:02:00 - How to make the technical decision for a SaaS product? - -1:14:07 - Security and compliance for SaaS companies ? - -1:21:14 - Pre mature optimization and Over Engineering in SaaS - -1:28:30 - Saas Pricing Models - -1:37:00 - SaaS Marketing and Branding - -1:46:25 - How to manage Payment and invoicing without having a company - -1:49:30 - Is SaaS subscription fatigue a thing ? - -1:53:24 - 1:06:00 - Wrap up & Goodbye - -## Links -- [40 SaaS Starter Kits & Boilerplates Based On Your Favourite Programming Language / Framework](https://www.indiehackers.com/post/40-saas-starter-kits-boilerplates-based-on-your-favourite-programming-language-framework-35387161e0) -- [#77 - No code / Low code GeeksBlaBla Episode](https://www.youtube.com/watch?v=I-km6iydoiw) -- [SaaS Pricing Calculator](https://indiebrands.io/saas-pricing-calculator) -- [How to get the first users for my SaaS, micro-SaaS, App?](https://twitter.com/mstdayoub/status/1593368786777915392) -- [Compare FastSpring and Paddle](https://www.g2.com/compare/fastspring-vs-paddle) - - -## Prepared and Presented by -[Mohammed Daoudi](https://www.iduoad.com) diff --git a/blablas/ep134/index.md b/blablas/ep134/index.md deleted file mode 100644 index 57292170..00000000 --- a/blablas/ep134/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -date: 2022-11-28 -time: 20h:00min -duration: "1:53:21" -title: "AMA & Tech News #21" -tags: ["AMA", "geeksblabla"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=3Q2dAMGYPXg -published: true -featured: false ---- - -Tech News & AMA #20 with our community members Yousssouf, Badr, Mohammed, Mehdi and Abderrahim. During this episode, we discuss new AI tools for developers, FTX story and Crypto in Morocco, Big companies layoffs and the future of work, and much more. - -## Guests - -- [Abderrahim soubai](https://www.soubai.me/) - -- [Mohammed Daoudi](https://twitter.com/MIduoad/) - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -- [Badr Bellaj](https://www.linkedin.com/in/bellajbadr/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:30 - Guests learning during last months - -0:18:00 - Reading search papers - -0:28:00 - Writing skills for developers - -0:36:00 - New AI tools for developers - -0:56:00 - FTX story and Crypto in Morocco - -1:20:00 - Big companies layoffs and the future of work - -1:41:00 - The importance of learning economics - -1:49:00 - warming up and goodbye - -## Links - -- [Github Copilot](https://github.com/features/copilot) -- [Github Student Pack](https://education.github.com/pack) -- [QuillBot](https://quillbot.com/) -- [LogSeq](https://logseq.com/) -- [Ivan Velichko Blog](https://iximiuz.com/en/) -- [Obytes Starter](https://starter.obytes.com/) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep135/index.md b/blablas/ep135/index.md deleted file mode 100644 index f058c513..00000000 --- a/blablas/ep135/index.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -date: 2023-01-22 -time: 20h:00min -duration: "2:27:47" -title: "AI-Powered Tools & The Future Of Software" -tags: ["ChatGPT", "geeksblabla"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=C3ScZBa3sIs -published: true -featured: true ---- - -In this episode of GeeksBlabla, we discuss new AI-powered tools such us ChatGPT, Github Copilot, QuillBot, and Midjourney. We discuss with our guests how those tools can transform the way we write code and build software. - -We also talk about how adapting to those new tools can help us write better code and save time as well as the challenges those tools can bring to the software industry. - -## Guests - -- [Abderrahim soubai](https://www.soubai.me/) - -- [Ismail EL Azizi](https://ismailelazizi.com/) - -- [Ilyas Bakouch](https://www.linkedin.com/in/ilyasbakouch/) - -- [Abdelati ](https://twitter.com/kaizendae) - -- [Badr Bellaj](https://www.linkedin.com/in/bellajbadr/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:24 - Are we in the AI age finally & is AI going to replace developers? - -0:43:20 - New AI tools tour for developers and designers - -0:54:37 - Adopting new ai tools for moroccan developers, benefits and challenges - -1:13:00 - Using AI tools for beginners in learning programming - -1:30:00 - Using AI tools and the challenges for universities and schools in teaching programming - -1:42:00 - How to survive in the AI age as a developer - -1:56:00 - AI trends and building new products - -2:07:00 - QA - -2:12:50 - Abdelati's devinstyle podacast. - -2:15:00 - Faking expertise with AI tools - -2:17:00 - Guests predictions for the future of AI in the upcoming years - -2:26:00 - warming up and goodbye - -## Links - -- [Github Copilot](https://github.com/features/copilot) -- [Github Student Pack](https://education.github.com/pack) -- [Devsinstyle](https://anchor.fm/devsinstyle) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep136/index.md b/blablas/ep136/index.md deleted file mode 100644 index 444e6c24..00000000 --- a/blablas/ep136/index.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -date: 2023-01-29 -time: 20h:00min -duration: "1:45:21" -title: "AMA & Tech News #22" -tags: ["AMA", "geeksblabla"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=Rx0k9xZdTuE -published: true -featured: false ---- - -Tech News & AMA #22 with our community members Yousssouf, Safione, Abdellah and Anas. During this episode, we discuss Anas and Safione experience in the last months, State for JS and open source, and much more. - -## Guests - -- [Safoine El khabich ](https://www.linkedin.com/in/safoinme/) - -- [Anas Temouden](https://www.linkedin.com/in/anastemouden/) - -- [Abdullah Iraamane](https://www.linkedin.com/in/aairaamane/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:30 - Guests learning during last months - -0:23:00 - Tiny machine learning - -0:33:20 - How to be so good at what you are doing ? - -0:44:20 - MLOps and ML in production - -0:46:00 - Safoine experience with open source and finding a new internship - -1:02:00 - State of open source by Github - -1:23:33 - State of JS results - -1:29:30 - GeeksBabla Picks - -1:49:00 - warming up and goodbye - -## Links - -- [Four kinds for luck](https://www.wealest.com/articles/four-kinds-of-luck) -- [Github Student Pack](https://education.github.com/pack) -- [State of JS](https://2022.stateofjs.com/en-US/opinions/) -- [State of open source](https://octoverse.github.com/) -- [ivao.aero](https://ivao.aero/) -- [Pulumi](https://www.pulumi.com/) -- [A Farewell Letter, Gabriel Garcia Marquez](https://english-online.rs/materials/12249) -- [Writing a resume](https://www.linkedin.com/learning/writing-a-resume/entertainment-resumes-2?autoplay=true&resume=false) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep137/index.md b/blablas/ep137/index.md deleted file mode 100644 index 6c1d79a7..00000000 --- a/blablas/ep137/index.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -date: 2023-02-12 -time: 20h:00min -duration: "1:49:44" -title: "State of Dev in Morocco 2022" -tags: ["stateofdev", "geeksblabla"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=bRi8IT5coHs -published: true -featured: false ---- - -In this episode, we discuss the state of dev in Morocco results. We talked about the results of the survey,jobs satisfaction, salaries, and community contribution, how they learn and level up, which tools theyโ€™re using, and what they want to learn next. - -## Guests - -- [Soubai Abderahim](https://soubai.me) - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Otmane Fettal](https://twitter.com/ofettal) - -- [Omaima Khalil](https://twitter.com/BadQuinn3) - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:30 - State overview - -0:14:50 - Profile - -0:48:00 - Learning and education in Morocco - -1:00:20 - Work and jobs satisfaction - -1:20:00 - Technology and tools - -1:37:40 - Community and contributions - -1:43:33 - warming up and goodbye - -## Links - -- [stateofdev.ma](https://stateofdev.ma/) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep138/index.md b/blablas/ep138/index.md deleted file mode 100644 index 1e54cbd5..00000000 --- a/blablas/ep138/index.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -date: 2023-02-19 -time: 20h:07min -duration: "2:00:41" -title: "Developer Seniority" -tags: ["dev", "senior", "growth", "career"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=rfArf1AnH0Y -published: true -featured: false ---- - -In this Episode , a roundtable discussion around the topic of Seniority in IT was discussed with Senior IT Guests from different Backgrounds. - -## Guests - -- [Djalal El Baz](https://twitter.com/enlamp) - -- [Adil Touati](https://twitter.com/adiltouati) - -- [Mohamed Ahdidou](https://www.linkedin.com/in/mohamedahdidou/) - -- [Oussama Zaki](https://twitter.com/OussaZaki) - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:18 - Seniority Definition - -0:20:35 - Traits of Senior IT - -1:03:42 - How to evolve from Junior to Senior - -1:31:15 - Q/A - -1:51:00 - Geeksblabla Picks - -1:57:00 - Wraping up and Goodbye - -## Links - -- [Thinking Architecturally - Nate Schutta](https://www.youtube.com/watch?v=EfKT1dgsLFA) -- [The Queen's Gambit](https://www.netflix.com/ma-en/title/80234304) -- [Staff Engineer: Leadership beyond the management track](https://staffeng.com/book) -- [Sources of Power: How People Make Decisions](https://www.amazon.com/Sources-Power-People-Make-Decisions/dp/0262611465) -- [The Making of a Manager](https://www.amazon.com/Making-Manager-What-Everyone-Looks/dp/0735219567) -- [Modern Software Engineering: Doing What Works to Build Better Software Faster](https://www.amazon.com/Modern-Software-Engineering-Discipline-Development/dp/0137314914) -- [D'Kover - Darja Darja](https://open.spotify.com/track/6AqTrSMEkIN0jiRYWLnBlx) - -## Prepared and Presented by - -- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/blablas/ep139/index.md b/blablas/ep139/index.md deleted file mode 100644 index c970933a..00000000 --- a/blablas/ep139/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -date: 2023-02-26 -time: 20h:07min -duration: "1:46:34" -title: "Range: Why Generalists Triumph in a Specialized World" -tags: ["Book", "growth", "career"] -category: "book" -isNext: false -youtube: https://www.youtube.com/watch?v=E2ipt93liok -published: true -featured: false ---- - -In this Episode , a roundtable discussion around Davis Epstein's book, Range: Why generalists triumph in a Specialized world. - -## Guests - -- [Mohammed Aboullaite](http://aboullaite.me/) - -- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) - -- [Oussama Zaki](https://twitter.com/OussaZaki) - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:58 - General idea of the book and the author - -0:09:00 - Author starts with stories of 2 sports superstars โ€”Tiger Woods and Roger Federerโ€”who represent specialization vs range - -0:14:32 - Snapshot of Woods and Federer carrers start - -0:15:41 - Is Specialization Really Better? - -0:28:34 - Fast vs Slow learning - -0:49:48 - Q&A and Giveaway - -1:08:01 - Did the author explicitly state his message for each story, or linked them back to the central theme ? - -1:19:32 - Epsteinโ€™s advice: Donโ€™t feel behind and different figures of success - -1:46:30 - WrapUp & Goodbye - -## Links - -- [David Epstein TED talk: Why specializing early doesn't always mean career success](https://www.youtube.com/watch?v=B6lBtiQZSho) -- [Plan, Act, Impact](https://www.amazon.com/Plan-Act-Impact-Playbook-Perspective/dp/1544518897) -- [Peak: Secrets from the new science of expertise](https://www.amazon.com/Peak-Secrets-New-Science-Expertise/dp/1531864880) -- [The Pragmatic Programmer](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X) - - - -## Prepared and Presented by - -- [Meriem zaid](https://twitter.com/iMeriem_) diff --git a/blablas/ep14/index.md b/blablas/ep14/index.md deleted file mode 100644 index e8a8671e..00000000 --- a/blablas/ep14/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -date: 2019-05-18 -time: 15h08 -duration: "1:27:53" -title: "Software security" -tags: ["security", "backend", "frontend", "software engineering"] -category: "dev" -isNext: false -video: "2392159647683053" -youtube: https://www.youtube.com/watch?v=Fvv0ZglfYng -published: true -audio: ---- - -In this episode of GeeksBlabla, team talks about the Software security, definition, techniques and tools. - -## Guests - -[Soubai Abderahim](https://soubai.me) - -[Mohammed Aboullaite](https://www.facebook.com/aboullaite) - -[Mohamed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) - -## Notes - -00:00:00 - Introduction - -00:05:00 - What is software security? - -00:11:00 - Cybersecurity's history - -00:17:00 - What is OWASP? - -00:23:00 - OWASP Top 10 of 2019 - -00:23:00 - What is SQL injection attack and how to prevent it? - -00:35:00 - Difference between XSS and CSRF - -00:37:00 - What is XSS and how to prevent it? - -00:46:00 - What is CSRF and how to prevent it? - -00:53:00 - What are static analysis tools? - -01:01:00 - What are vulnerability scanning tools and what attacks protect from? - -01:08:00 - What are dynamic security testing tools? - -01:14:00 - What is the solution if a project's dependency has a security vulnerability? - -01:19:00 - GraalVM Security - -01:24:00 - Conclusion - -01:27:00 - Goodbye! - -## Prepared and Presented by : - -[Mohammed Aboullaite](https://www.facebook.com/aboullaite) - -[Mohamed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) diff --git a/blablas/ep140/index.md b/blablas/ep140/index.md deleted file mode 100644 index befbf6b6..00000000 --- a/blablas/ep140/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -date: 2023-03-05 -time: 20h:07min -duration: "2:18:52" -title: "Tech Education in Morocco" -tags: ["education", "morocco"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=3r7lXiS5Mqc -published: true -featured: false ---- - -In this Episode we discuss the current state of tech education in Morocco, Options available for students, challenges and opportunities in the field. - -## Guests - -- [Driss ALLAKI ](https://www.linkedin.com/in/driss-allaki-90801592) - -- [Hatim Mzah](https://www.linkedin.com/in/hatimmzah/) - -- [Hamza DEBBARH](https://www.linkedin.com/in/hamza-debbarh/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:08:00 - What the current state of tech education in Morocco, are we able to produce enough developers to meet the demand? - -0:18:20 - What is bootcamp ? and Bootcamps in Morocco. - -0:32:32 - 1337 and Youcode schools & their impact on the market and challenges they face. - -1:02:00 - Universities education in Morocco and the challenges they are facing. - -1:10:00 - English vs French in tech education and market. - -1:26:00 - Is "Prepa" years a waste of time for students who want to study computer science? - -1:34:01 - Students orientation and our role as developers to help them. - -1:51:32 - State of Dev results and the future of tech education in Morocco. - -2:08:00 - WrapUp & Goodbye - -## Links - -- [State Of Dev in Morocco](https://stateofdev.ma/#learning--education) - -## Prepared and Presented by - -- [Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep141/index.md b/blablas/ep141/index.md deleted file mode 100644 index 8ca5f95e..00000000 --- a/blablas/ep141/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -date: 2023-03-12 -time: 20h:07min -duration: "2:18:52" -title: "Mastering code review" -tags: ["code", "review"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=Y9SVoU2RBNw -published: true -featured: false ---- - -In this Episode we discuss what is code review, why it is important, how to do it and how to master it and best practices to follow as author or reviewer. - -## Guests - -- [Mohammed Aboullaite](https://aboullaite.me) - -- [Soubai Abderahim](https://soubai.me) - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:20 - What is code review and types of code review? - -0:17:00 - Why code review is important? - -0:28:20 - How documentation and automation tools can help you make the code review process easier? - -0:47:40 - Best practices for code review as author. - -1:07:00 - Best practices for code review as reviewer. - -1:35:00 - QA - -1:39:00 - WrapUp & Goodbye - -## Links - -- [Code review guidelines for humans](https://phauer.com/2018/code-review-guidelines/) - -## Prepared and Presented by - -- [Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep142/index.md b/blablas/ep142/index.md deleted file mode 100644 index e3c53cbc..00000000 --- a/blablas/ep142/index.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -date: 2023-03-19 -time: 19h:00min -duration: "2:28:43" -title: "Mental Health for developers" -tags: [ "career"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=urFGhkMFgTg -published: true -featured: false ---- - -In this Episode we discuss chelleges we face as IT workers in terms of Mental health, how to overcome the issues and solve them. - -## Guests - -- [Youssouf EL Azizi](https://elazizi.com/) - -- [Anas Ait Baha](http://linkedin.com/in/aitbahaa/) - -- [Achraf Aamri](http://linkedin.com/in/achrafaamri/) - -- [Mohammed Daoudi](https://twitter.com/MIduoad) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:20 - First assumptions about mental Health. - -0:21:00 - Are developers provided with adequate resources to manage workload and stress, such as time management tools, stress reduction techniques, and support from colleagues or supervisors? - -0:42:20 - Are managers trained in recognizing signs of mental health issues and equipped to provide support and resources for those who may be struggling? - -0:56:10 - How to avoid negativity between your team members? - -1:03:00 - Is it good to build personal relationship with team members or stay professional? - -1:10:26 - Is there a way to split the job's way of thinking with normal life? - -1:20:20 - Exeripment new things, hobbies, and how to create a balance. - -1:26:00 - QA & Giveaway - -1:48:30 - The input of professional help. - -2:15:00 - Best practices. - -2:28:00 - WrapUp & Goodbye. - -## Links - -- [The Second Mountain: The Quest for a Moral Life By David Brooks](https://www.amazon.com/Second-Mountain-David-Brooks/dp/0812993268) - -- [The Mountain Is You: Transforming Self-Sabotage Into Self-Mastery](https://www.amazon.com/Mountain-You-Transforming-Self-Sabotage-Self-Mastery/dp/1949759229) - -- [Digital Minimalism](https://www.amazon.com/Digital-Minimalism-Choosing-Focused-Noisy/dp/0525536515) - -- [Why Has Nobody Told Me This Before?](https://www.amazon.com/Why-Nobody-Told-This-Before/dp/0063227932) - -- [So Good They Can't Ignore You](https://www.amazon.com/Good-They-Cant-Ignore-You/dp/1455509124) - -- [Mountains of the Mind](https://www.amazon.com/Mountains-Mind-Adventures-Reaching-Summit/dp/0375714065) - -- [ูˆููŠ ุฃู†ูุณูƒู…](https://www.youtube.com/playlist?list=PLsRtYZTCYnEdOlfBZP9RRtFzSzfjpI4nV) - - -## Prepared and Presented by - -- [Meriem zaid](https://twitter.com/iMeriem_) diff --git a/blablas/ep143/index.md b/blablas/ep143/index.md deleted file mode 100644 index a03f6faf..00000000 --- a/blablas/ep143/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -date: 2023-03-26 -time: 22h:00min -duration: "2:30:14" -title: "Tech News & AMA #23" -tags: ["ama", "ai", "chat-gpt"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=0x1a-7JK_co -published: true -featured: false ---- - -Tech News & AMA #22 with our community members Yousssouf, Kawtar, Abderahim, Otmane and Mohammed. During this episode, we discuss last tech news related to AI, GPT-3, and much more. - -## Guests - -- [Kawtar Choubari](https://www.linkedin.com/in/choubari/) - -- [Mohammed Daoudi](https://twitter.com/MIduoad) - -- [Soubai Abderahim](https://soubai.me) - -- [Otmane Fettal](https://twitter.com/ofettal) - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:00 - Guests learning during the last period and Productivity in Ramadan. - -0:42:50 - ChatGpt Plugins, how is will be used in the future? and the launch of Bard Google assistant. - -1:11:00 - How nervous vs excited our guests about AI revolution we are living in? - -1:27:00 - Spark of AGI with GPT-4. - -1:47:00 - QA - -2:10:00 - Future of education with AI revolution. - -2:23:00 - WrapUp & Goodbye. - -## Links - -- [T3](https://create.t3.gg/) - -- [FuturePedia](https://www.futurepedia.io/) - -- [Sam Altman: OpenAI CEO on GPT-4, ChatGPT, and the Future of AI | Lex Fridman Podcast](https://www.youtube.com/watch?v=L_Guz73e6fw&ab_channel=LexFridman) - -- [Bard](https://bard.google.com/) - -- [Authjs](https://authjs.dev/) - -- ['Sparks of AGI' - Bombshell GPT-4 Paper: Fully Read w/ 15 Revelations](https://www.youtube.com/watch?v=Mqg3aTGNxZ0&ab_channel=AIExplained) - -- [Menara Programme](https://manara.tech/our-program) - -- [Google Summer code](https://summerofcode.withgoogle.com/) - -- [Udacity scholarships](https://www.udacity.com/scholarships/suse-cloud-native-foundations-scholarship) - -- [Google Developer Student Clubs](https://developers.google.com/community/dsc) - -- [markprompt](https://markprompt.com) - -- [Embeddings open ai docs](https://platform.openai.com/docs/guides/embeddings) - -- [Humata](https://www.humata.ai/pricing) - -## Prepared and Presented by - -- [Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep144/index.md b/blablas/ep144/index.md deleted file mode 100644 index 8c1cb746..00000000 --- a/blablas/ep144/index.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -date: 2023-04-02 -time: 22h:00min -duration: "1:11:47" -title: "Networking Demystified ๐Ÿ‡ฒ๐Ÿ‡ฆ" -tags: ["dev", "networking"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=qF8fouovKro -published: true -featured: false ---- - -In this episode we discuss the fundamental concepts of computer networking and how learning them can make you a better software engineer. - -## Guests - -- [Yassine Moumen](https://www.linkedin.com/in/yassine-moumen) -- [Soubai Abderahim](https://soubai.me) -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) -- [Mohammed Daoudi](https://twitter.com/MIduoad) - -## Notes -0:00:00 - Introduction and welcoming - -0:02:40 - What is networking? - -0:05:25 - Where to start when learning networking? - -0:17:51 - What is TCP/IP and how does it works? - -0:31:52 - Network Security - -0:36:45 - What should a software engineer know about networking? - -0:48:00 - What are the tools and techinques used in networking? - -0:57:00 - Learning resources about networking - -1:08:45 - Geeksblabla picks - -## Links -- [Beej's Guide to Network Programming](https://beej.us/guide/bgnet/) - -## Prepared and Presented by -- [Mohammed Daoudi](https://twitter.com/MIduoad) diff --git a/blablas/ep145/index.md b/blablas/ep145/index.md deleted file mode 100644 index 40802912..00000000 --- a/blablas/ep145/index.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -date: 2023-05-07 -time: 22h:00min -duration: "0:58:46" -title: "Developer Circles Morocco: A farewell" -tags: ["dev", "career"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=YhAc4go0qTI -published: true -featured: false ---- - -In this episode we discuss the end of DevC program initiated by Meta, the impact it had on community growth in Morocco and still, leads and the many advantages of it. - -## Guests - -- [Mohammed Aboullaite](https://aboullaite.me) -- [Hamza Makraz](https://web.facebook.com/MakrazHamza) - -## Notes -0:00:00 - Introduction and welcoming - -0:02:40 - A bit of DevC pogram History - -0:10:01 - The many meetups held by devC Morocco - -0:20:50 - Community of DevC - -0:40:48 - In person meetups and organisation - -0:45:30 - Connexions made through DevC - -0:48:00 - Mentorship within DevC in offline meetups - -0:54:40 - Giveaway - -0:58:46 - Wrap up & Good bye - - - -## Prepared and Presented by -- [Meriem zaid](https://twitter.com/iMeriem_) diff --git a/blablas/ep146/index.md b/blablas/ep146/index.md deleted file mode 100644 index 5424ad54..00000000 --- a/blablas/ep146/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -date: 2023-05-15 -time: 20h:10min -duration: "2:06:31" -title: "Scaling Back: Amazon's Prime Video and the Return of the Monolith" -tags: ["architecture", "microservices", "monolith", "functions", "lambda", "deployement"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=GqUFdwXbVog -published: true -featured: false ---- - -In this episode of GeeksBlaBla, We discuss Amazon Prime Video's decision to revert a system from being deployed as functions and revert back to a "Monotlith" , this decision sparked countless discussions and controversies. - -## Guests - -- [Abdelfattah Sghiouar](https://twitter.com/boredabdel) - -- [Abderrahim Soubai Idrissi](https://twitter.com/soub4i) - -- [Djalal El Baz](https://twitter.com/enlamp) - -- [Mohammed Aboullaite](https://twitter.com/laytoun) - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:00 - Definitions - -0:18:30 - Monoliths vs Microservices - -0:47:00 - Discussing the Implemented Solution of Amazon Prime Video - -1:10:00 - Discussing from Personal experiences the challenges of all 3 approaches - -1:37:00 - Geeksblabla Picks - -1:47:00 - Q/A ? - -1:59:50 - Wrap up & Goodbye - -## Links -- [The Good State: On the Principles of Democracy](https://www.amazon.com/Good-State-Principles-Democracy/dp/1786077183) -- [Service Weaver](https://serviceweaver.dev/) -- [So many Bad Takes - Opinion about Prime Video Blog](https://adrianco.medium.com/so-many-bad-takes-what-is-there-to-learn-from-the-prime-video-microservices-to-monolith-story-4bd0970423d4) -- [101 Essays That Will Change The Way You Think](https://www.amazon.com/Essays-That-Will-Change-Think/dp/1945796065) -- [Factfulness: Ten Reasons We're Wrong About the World--and Why Things Are Better Than You Think](https://www.amazon.com/Factfulness-Reasons-World-Things-Better/dp/1250107814) -- [21 Lessons for the 21st Century](https://www.amazon.com/Lessons-21st-Century-Yuval-Harari/dp/0525512179) - - -## Prepared and Presented by -[Otmane FETTAL](https://twitter.com/ofettal) diff --git a/blablas/ep147/index.md b/blablas/ep147/index.md deleted file mode 100644 index 1ee310e0..00000000 --- a/blablas/ep147/index.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -date: 2023-05-21 -time: 20h:10min -duration: "2:47:16" -title: "State of linux" -tags: ["linux", "containers", "docker"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=fHqwAE8qFSM -published: true -featured: false ---- - -In this episode of GeeksBlaBla, We discuss the state of Linux, why Linux is important and how it does work. - -## Guests - -- [Oussama Jamal](https://ma.linkedin.com/in/jamaloussama/en) - -- [Abderrahim Soubai Idrissi](https://twitter.com/soub4i) - -- [Otmane Fettal](https://twitter.com/OFettal) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:10 - What is a Linux ? - -0:10:40 - Linux History - -0:29:00 - How linux works ? - -0:34:10 - Difference between Linux and other operating systems - -0:43:10 - Difference between Linux distributions - -1:16:00 - Why is Linux is used in the Server side (Data Centers, Cloud...) - -1:25:30 - Linux Virtualization - -1:41:00 - Linux Containers - -1:52:27 - Linux Security - -2:09:35 - Giveaway - -2:10:45 - As a developer should I use Linux? and why? - -2:32:10 - How to learn Linux? - -2:42:50 - GeeksBlaBla picks - -## Links -- [LPIC](https://www.lpi.org/our-certifications/lpic-1-overview) -- [Linux Foundation Certification](https://training.linuxfoundation.org/training/introduction-to-linux/) -- [The Linux programming interface](https://man7.org/tlpi/) - -## Prepared and Presented by -- [Meriem Zaid](https://twitter.com/_imeriem) -- [Mohammed Daoudi](https://www.linkedin.com/in/iduoad/) diff --git a/blablas/ep148/index.md b/blablas/ep148/index.md deleted file mode 100644 index fe594a3a..00000000 --- a/blablas/ep148/index.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -date: 2023-05-28 -time: 22h:00min -duration: "2:30:14" -title: "Tech News & AMA #24" -tags: ["ama", "google-io", "microsft-build", "angular"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=CvsVn2mulwk -published: true -featured: false ---- - -Our community members Siham, Chihab, Otmane, and Youssouf joined us for Tech News & AMA #24 episode. We discussed the latest tech news, including Google I/O, AI, and Microsoft Build. - -## Guests - -[Chihab Otmani](https://chihab.dev) - -[Siham Ben Diaa](https://www.mindhunter.dev/) - -- [Otmane Fettal](https://twitter.com/ofettal) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:00 - Guests learning during the last period. - -0:32:00 - What is new in Angular 16? - -0:47:00 - Dropping out of school and self-learning. - -1:04:00 - Google I/O Updates. - -1:26:00 - Microsoft Build Updates. - -1:48:00 - DevoxxMa CFP. - -1:52:00 - QA - -2:26:00 - WrapUp & Goodbye. - -## Links - -- [AppJs Conf](https://www.youtube.com/@SoftwareMansion) - -- [Google I/O](https://events.google.com/io/) - -- [Microsoft Build](https://mybuild.microsoft.com/) - -- [State of GPT](https://www.youtube.com/watch?v=bZQun8Y4L2A) - -- [DevoxxMa CFP](https://dvma23.cfp.dev/) - -- [iLyas in the cloud](https://www.youtube.com/@iLyasInTheCloud) - -- [7 Blogs I enjoy reading as a React Native developer.](https://www.mindhunter.dev/posts/react-native-blogs) - -## Prepared and Presented by - -- [Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep149/index.md b/blablas/ep149/index.md deleted file mode 100644 index 61a682a8..00000000 --- a/blablas/ep149/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -date: 2023-06-04 -time: 20h:00min -duration: "1:51:43" -title: "Building Smart Apps with LLMs" -tags: ["LLMs", "ChatGPT", "langChain"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=u5-GEYiKUAg -published: true -featured: false ---- - -In this episode, we discuss Large Language Models (LLMs): how everything started, how do they work, and how to use frameworks such as LangChain to develop intelligent applications. - -## Guests - -[Taha Bouhsine](https://twitter.com/Tahabsn) - -[Sifeddine Nahhas](https://www.linkedin.com/in/sifeddine-nahhas/) - -[Nouamane Tazi](https://www.linkedin.com/in/nouamanetazi/) - -## Notes - -0:00:00 - Introduction and Welcome Notes - -0:05:33 - History of LLMs - -0:12:00 - The role of transformers in LLMs - -0:21:00 - How LLMs differ from other AI methods. - -0:26:00 - Emergent Abilities of Large Language Models - -0:42:00 - HuggingFace and the role or open-source in LLMs development - -0:47:00 - Open source LLMs. - -1:04:00 - Using LLMs to build Smart Apps. - -1:39:00 - Advice for Software Engineers with no AI background to get started with LLMs. - -1:46:00 - Conclusion and Goodbye. - -## Links - -- [The Illustrated Transformer](http://jalammar.github.io/illustrated-transformer/) - -- [Transformers](https://docs.google.com/presentation/d/1ZXFIhYczos679r70Yu8vV9uO6B1J0ztzeDxbnBxD1S0/mobilepresent?slide=id.g31364026ad_3_2) - -- [The Annotated Transformer](https://nlp.seas.harvard.edu/2018/04/03/attention.html) - -- [State of GPT](https://www.youtube.com/watch?v=bZQun8Y4L2A) - -- [Sparks of AGI](https://www.youtube.com/watch?v=Mqg3aTGNxZ0) - -- [MiniGPT-4](https://github.com/Vision-CAIR/MiniGPT-4) - -- [H2O LLM Studio](https://github.com/h2oai/h2o-llmstudio) - -- [HuggingFace](https://huggingface.co/) - -- [GPT4All](https://github.com/nomic-ai/gpt4all) - -- [llama](https://github.com/facebookresearch/llama/pull/73) - -- [LangChain](https://python.langchain.com/en/latest/) - -- [Embracing AI-Powered Applications: A Developerโ€™s Journey with LangChain](https://www.obytes.com/blog/langchain-guide) - -- [OpenAI cookbook](https://github.com/openai/openai-cookbook) - -- [Jailbreak Chat](https://www.jailbreakchat.com/) - -- [MathsMaroc](https://twitter.com/MathsMaroc/status/1657805724766830594) - -- [Prompt Engineering](https://github.com/brexhq/prompt-engineering) - -- [Emergent Abilities of Large Language Models](https://www.assemblyai.com/blog/emergent-abilities-of-large-language-models/) - -## Prepared and Presented by - -- [Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep15/index.md b/blablas/ep15/index.md deleted file mode 100644 index b387573d..00000000 --- a/blablas/ep15/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -date: 2019-05-25 -time: 22h -duration: "1:19:23" -title: "The twelve-factor App" -tags: ["backend", "software engineering", "dev"] -category: "dev" -isNext: false -video: "2348668091860520" -youtube: https://www.youtube.com/watch?v=_0xISo0SFJ4 -published: true -url: -audio: ---- - -On this episode of Geeksblabla, Soufian El Foukahi, Mohammed Aboullaite and Amine Hakkoue explore the 12 factor app methodology which is is a set of best practices that enable applications to be resilient, scalable and portable. - -## Notes - -00:00:00 - Introduction - -00:07:00 - Codebase - -00:13:00 - Dependencies - -00:20:00 - Config - -00:24:00 - Backing Services - -00:30:00 - Build, release, run - -00:34:00 - Processes - -00:39:00 - Port Binding - -00:44:00 - Concurrency - -00:55:00 - Disposability - -00:58:00 - Dev/prod parity - -01:03:00 - Logs - -01:10:00 - Admin processes - -## Links - -- [12 factors app website](https://12factor.net/) -- [12 factors app website source code](https://github.com/heroku/12factor) diff --git a/blablas/ep150/index.md b/blablas/ep150/index.md deleted file mode 100644 index 04045e9b..00000000 --- a/blablas/ep150/index.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -date: 2023-06-18 -time: 20h:00min -duration: "1:57:44" -title: "The Art of Cybersecurity" -tags: ["career", "cybersecurity"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=XNrNHn15BTk -published: true -featured: false ---- - -In this episode, we discuss the state of Cybersecurity in Morocco, the challenges and opportunities that this field faces, how to get started and most important resources that help to learn it. - -## Guests - -[Ahmed Lekssays](https://www.twitter.com/Lekssays) - -[Othmane Menouar](https://www.linkedin.com/in/othmane-menouar-a11903128/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:10:28 - The current state of cybersecurity in Morocco? Are there any unique challenges or opportunities specific to the country - -0:27:07 - Examples or case studies of cyber attacks or breaches that have occurred in Morocco, What were the lessons learned from those incidents? - -0:37:56 - Laws and regulations, fines for data exposure - -0:47:31 - What can Morocco do to improve in terms of preventing attacks and breaches in other systems - -1:03:00 - Is Cybersecurity in Morocco or/and Africa promising ? why ? - -1:06:04 - from software to cybesecurity, what to learn ? - -1:15:10 - Is Maths mandatory in cybersecurity field ? - -1:19:42 - Books recommandations from guests - -1:24:09 - Latest news on cybersecurity and cryptography - -1:32:00 - Giveaway! - -1:37:06 - The future of cybersecurity in Morocco, Are there any exciting developments or initiatives on the horizon? - -1:47:00 - Certifications Vs Diplomas in cybersecurity - -1:52:00 - Advices from guests - -1:57:44 - Conclusion and goodbye. - -## Links - -- [Awesome Security repo](https://github.com/sbilly/awesome-security) - -- [sANS roadmap](https://www.sans.org/cyber-security-skills-roadmap/) - -- [Google career certificate - Cybersecurity](https://grow.google/intl/europe/google-career-certificates/cybersecurity) - -- [Hack The Box](https://www.hackthebox.com/) - -- [CS50](https://pll.harvard.edu/course/cs50-introduction-computer-science) - -- [Ethereum Book](https://github.com/ethereumbook/ethereumbook) - -- [Capture The Flag (CTF)](https://ctftime.org/) - -- [Try Hack Me](https://tryhackme.com/) - -- [Direction gรฉnรฉrale de la sรฉcuritรฉ des systรจmes d'information](https://www.dgssi.gov.ma/fr) - -- [The ACM Conference on Computer and Communications Security](https://www.sigsac.org/ccs/CCS2023/) - -- [The Advanced Computing Systems Association](https://www.usenix.org/) - -- [Network and Distributed System Security](https://www.ndss-symposium.org/) - -- [Symposium on Security and Privacy](https://sp2023.ieee-security.org/) - -- [Practical Malware Analysis](https://www.amazon.com/Practical-Malware-Analysis-Hands-Dissecting/dp/1593272901) - -## Prepared and Presented by - -- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/blablas/ep151/index.md b/blablas/ep151/index.md deleted file mode 100644 index 7f47c0e3..00000000 --- a/blablas/ep151/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -date: 2023-06-25 -time: 20h:00min -duration: "1:56:07" -title: "Tech New & AMA #25" -tags: [ "AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=s7hn-CtjSj0 -published: true -featured: false ---- - -Tech News & AMA #25 with our community members Mehdi, Zak and Abderrahim. During this episode, we discuss last tech news related ConFig2023 event by Figma, Apple keynote, Mehdi's initiative and much more. - -## Guests - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -- [Zak Elfassi](https://twitter.com/zakelfassi) - -- [Soubai Abderahim](https://soubai.me) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:21 - Config 2023, what's new and what developers benefit from the updates - -0:18:07 - Mehdi's initiative : The Missing Semester - -0:35:04 - Are people ready to pay for information ? - -0:50:31 - Information economy in Morocco - -1:00:50 - Apple keynote: future of AR/VR - -1:24:06 - Stackoverflow survey 2023 - -1:32:00 - Giveaway! and guests special giveaways - -1:56:04 - Conclusion and goodbye. - -## Links - -- [ConFig 2023](https://config.figma.com/) - -- [The Missing Semester of your CS Education](https://missingsemester.io/) - -- [StackOverflow Survey 2023](https://survey.stackoverflow.co/2023/) - -## Prepared and Presented by - -- [Meriem Zaid](https://twitter.com/_iMeriem) - -- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/blablas/ep152/index.md b/blablas/ep152/index.md deleted file mode 100644 index 709af112..00000000 --- a/blablas/ep152/index.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -date: 2023-07-09 -time: 20h:00min -duration: "02:01:08" -title: "The State of AR and VR" -tags: ["AR", "VR", "XR"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=Ey8itgwTQVs -published: true -featured: false ---- - -In this episode, we discuss the state of AR and VR, the challenges and opportunities that this field faces, how to get started and most important resources that help to learn it. - -## Guests - -[Omar Guendeli](https://www.linkedin.com/in/omar-guendeli-70a57862) - -[Abdellah ALAOUI MDARHRI](https://www.linkedin.com/in/abdellah-alaoui-mdarhri-45456734/) - -[Houssam Eddine REHHALI](https://www.linkedin.com/in/houssam-eddine-rehhali/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:00 - The state of AR and VR โ€” is it a promising field or just hype? - -0:15:10 - why meta is investing heavily in AR and VR ? - -0:23:00 - Apple's vision of AR and VR with the new headset - -0:37:00 - AR and VR hardware and software challenges - -0:45:00 - B to B use cases of AR and VR - -1:10:00 - Start learning AR and VR and how having a background in video games helps - -1:23:04 - Resources to learn AR and VR - -1:31:10 - Jobs opportunities in AR and VR in Morocco and outside - -1:41:20 - The future of AR and VR - -1:51:00 - GeeksBlabla Picks - -1:58:10 - Conclusion and goodbye. - -## Links - -- [Realite Augmentee 3d](https://simplon.co/formation/developpeur-euse-realite-virtuelle-realite-augmentee-3d-temps-reel/990) - -- [Unity learn](https://learn.unity.com/) - -- [Learn how to learn](https://geeksblabla.io/blablas/learning-how-to-learn) - -- [Unreal engine](https://ue4resources.com/) - -- [XR bazaar](https://xrbazaar.co/) - -- [How Two Guys Created an Empire and Transformed Pop Culture](https://www.amazon.com/Masters-Doom-Created-Transformed-Culture/dp/0812972155) - -- [Moroccan Gamedev Community [DAGA]](https://www.facebook.com/groups/670735856666271/?_rdc=2&_rdr) - -## Prepared and Presented by - -- [Youssouf EL AZIZI](https://elazizi.com) diff --git a/blablas/ep153/index.md b/blablas/ep153/index.md deleted file mode 100644 index b8a81a6a..00000000 --- a/blablas/ep153/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -date: 2023-07-23 -time: 20h:00min -duration: "01:38:49" -title: "Google Cloud Platform" -tags: ["Google Cloud", "Cloud", "GCP"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=EzMHiEcZj7M -published: true -featured: false ---- - -In this episode, we will discuss the Google Cloud Platform, its various services, how it compares to other cloud providers, and how to get started. - -## Guests - -- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) - -- [EL Mehdi khayati](https://www.linkedin.com/in/elmehdielkhayati/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:02:30 - What is Cloud and Google Cloud Platform? - -0:05:00 - How google cloud is different from other cloud providers? - -0:11:40 - Google Cloud Platform strengths - -0:16:00 - How to get started with Google Cloud Platform? - -0:19:00 - Google Cloud Platform compute services - -0:44:00 - Google Kubernetes Engine (GKE) - -0:50:00 - Google Cloud Platform database and storage services - -1:07:00 - Google Cloud Platform security and how the services help to secure your infrastructure ? - -1:14:00 - Q/A - -1:22:30 - Good resources to learn Google Cloud Platform - -1:28:00 - Google Cloud Platform with DATA - -1:30:30 - Google Cloud in Morocco - -1:38:10 - Conclusion and goodbye. - -## Links - -- [Google Cloud Platform](https://cloud.google.com/) - -## Prepared and Presented by - -- [Mohammed Daoudi](https://twitter.com/MIduoad) diff --git a/blablas/ep154/index.md b/blablas/ep154/index.md deleted file mode 100644 index 42571f13..00000000 --- a/blablas/ep154/index.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -date: 2023-07-30 -time: 20h:00min -duration: "2:28:48" -title: "Tech New & AMA #26" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=2FCwniKc2J4 -published: true -featured: false ---- - -Tech News & AMA #26 with our community members Mehdi, Abdul, Abderahim, and Youssouf. During this episode, we discuss the whodesign.ma initiative, and we answer audience questions about learning, switching technologies, frameworks, and much more. - -## Guests - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -- [Abdul Benbrahim](https://www.linkedin.com/in/abdulbenbrahim/) - -- [Soubai Abderahim](https://soubai.me) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:40 - Our guests were learning during the last period and facing challenges in learning new things. - -0:11:07 - What technology expert means? - -0:16:04 - Whodesign.ma initiative and what's the goal? - -0:21:00 - Mentoring and coaching students' initiative, experiences, and challenges. - -0:37:00 - Perfection vs delivery and how to balance between them. - -1:06:06 - QA - -1:23:00 - Missing semester program - -1:35:04 - Switching technologies and frameworks. - -1:45:00 - QAs - -1:27:00 - Conclusion and goodbye. - -## Links - -- [Whodesign.ma](https://Whodesign.ma) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elaazizi.com/) diff --git a/blablas/ep155/index.md b/blablas/ep155/index.md deleted file mode 100644 index bc2343d6..00000000 --- a/blablas/ep155/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -date: 2023-09-03 -time: 20h:00min -duration: "1:29:19" -title: "Back to School" -tags: ["career", "learning", "student life"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=Q688u-Y44tU -published: true -featured: false ---- - -In This episode, we discuss the Moroccan IT student's life, How to make the most of your academic years, and how to prepare for the job market. - -## Guests - -- [Kawtar Choubari](https://www.linkedin.com/in/choubari/) - -- [Mahmoud Fettal](https://twitter.com/mahmoudfettal) - -- [Pr. Driss ALLAKI](https://www.linkedin.com/in/driss-allaki-90801592/) - -- [Soubai Abderahim](https://soubai.me) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:04 - What is your ultimate goal for an academic year as an IT student? - -0:13:00 - How to deal with stress, and how to approach the generalist nature of your curriculum? - -0:38:50 - How does participating in events and watching content online affect you as a student? - -0:53:30 - How to prepare for internships in your first year! - -0:37:00 - Perfection vs delivery and how to balance between them. - -1:09:06 - Question: How to choose a technology to learn? - -1:14:06 - How to deal with imposter syndrome as a student? - -1:19:36 - Conclusion and goodbye. - -## Links - -- [Software Architecture Recommended by Pr. Driss](https://www.developertoarchitect.com/) -- [IT internship in France by Kawtar](https://twitter.com/choubari_/status/1698426197141598283?s=20) -- [Mohammed ElYoussoufi's Channel Recommended by Mahmoud](https://www.youtube.com/@mohamedYoussfi) - -## Prepared and Presented by - -- [Abdelati El ASRI](https://twitter.com/kaizendae) diff --git a/blablas/ep156/index.md b/blablas/ep156/index.md deleted file mode 100644 index fe297caf..00000000 --- a/blablas/ep156/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -date: 2023-09-24 -time: 20h:00min -duration: "2:52:38" -title: "How to be a -10x developer " -tags: ["career", "learning", "productivity"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=GFqhbHDGoX0 -published: true -featured: false ---- - -In this episode, we discuss a famous article titled "How to Be a 10x Developer" and share our thoughts and experiences on the topic. - -## Guests - -- [Mahmoud Fettal](https://twitter.com/mahmoudfettal) - -- [Soubai Abderahim](https://soubai.me) - -- [Badr Bellaj](https://www.linkedin.com/in/bellajbadr/) - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -- [Abdelati El ASRI](https://twitter.com/kaizendae) - -## Notes - -00:00:00 - Introduction and welcome. - -00:05:00 - What is an average developer? - -00:22:00 - Definition of a 10x developer and how to identify them. - -00:41:00 - Guest's skill level ranging from -10x to 10x. - -00:55:30 - Neutralize the productivity of a 10x developer. - -01:08:00 - Create 400 hours of busy work. - -01:14:06 - Create 400 hours of burnout/takeover. - -01:17:06 - Waste 10 weeks' wages on cloud costs. - -01:32:36 - Add 400 hours of compilation/build time. - -01:40:20 - Write unnecessary tests. - -01:47:40 - Lose 10 weeks' wages due to dissatisfied customers. - -01:56:30 - Hire 10 0x developers. - -02:10:00 - How AI tools can assist you in becoming a 10x developer. - -02:17:00 - How to optimize your communication with your laptop. - -02:33:00 - Q&A. - -02:47:20 - Conclusion and farewell. - -## Links - -- [How to be a -10x Engineer](https://taylor.town/-10x) -- [Yes, you can measure software developer productivity](https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/yes-you-can-measure-software-developer-productivity) -- [Measuring developer productivity? A response to McKinsey, Part 2](https://newsletter.pragmaticengineer.com/p/measuring-developer-productivity-part-2) - -- [Clean Code](https://geeksblabla.io/blablas/clean-code) - -- [Raycast](https://www.raycast.com/) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com) diff --git a/blablas/ep157/index.md b/blablas/ep157/index.md deleted file mode 100644 index eff7b676..00000000 --- a/blablas/ep157/index.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -date: 2023-10-01 -time: 20h:00min -duration: "2:10:40" -title: "Tech New & AMA #27" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=WKDrPojAehE -published: true -featured: false ---- - -Tech News & AMA #26 with our community members Ilias, Nouamane, Faisal, and Youssouf. During this episode, we discuss the next Devoxx Morocco conference, Hacktoberfest, AI, bun and much more. - -## Guests - -- [Faissal Boutaounte](https://twitter.com/bfaissal) - -- [Ilias Yahia](https://twitter.com/ilias_yahia) - -- [Nouamane Tazi](https://www.linkedin.com/in/nouamanetazi/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:00 - Quick introduction about DevoxxMA - -0:21:30 - DevoxxMa theme for this year and community programme - -0:46:00 - AI news, Amazon Alexa AI, one year after GPT-3, Mistral and more - -1:45:00 - Hacktoberfest and how to contribute to open source - -1:56:00 - Bun as new JS runtime - -1:06:06 - QA - -1:23:00 - Missing semester program - -1:35:04 - Switching technologies and frameworks. - -1:45:00 - QAs - -1:27:00 - Conclusion and goodbye. - -## Links - -- [Devoxx.ma](https://devoxx.ma) -- [Hacktoberfest](https://hacktoberfest.com/) -- [Gandalf reveal](https://gandalf.lakera.ai/) -- [State of GPT](https://www.youtube.com/watch?v=bZQun8Y4L2A) -- [GPT Riddle](https://gptriddle.com/welcome) -- [Attacking LLM - Prompt Injection](https://www.youtube.com/watch?v=Sv5OLj2nVAQ) -- [Mistral 7B](https://mistral.ai/news/announcing-mistral-7b/) -- [AI Playground](https://sdk.vercel.ai/) -- [Arena Chat](https://chat.lmsys.org/?arena) -- [HacktoberFest & Open source Geeksblabla Episode](https://geeksblabla.io/blablas/hacktoberfest-open-source) -- [State of CSS](https://stateofcss.com/en-US) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elaazizi.com/) diff --git a/blablas/ep158/index.md b/blablas/ep158/index.md deleted file mode 100644 index ae510f18..00000000 --- a/blablas/ep158/index.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -date: 2023-10-22 -time: 20h:00min -duration: "2:00:39" -title: "L3arbi ChatBot: A Technical deep dive" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=hTV90OlKlOg -published: true -featured: false ---- - -In this episode we discuss more of L3arbi, that was resented by the DevoxxMA team at the vent, from a technical point of view with Nouamane and Faissal. - -## Guests - -- [Faissal Boutaounte](https://twitter.com/bfaissal) - -- [Nouamane Tazi](https://www.linkedin.com/in/nouamanetazi/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:01:21 - Who/what is l3arbi? - -0:16:24 - Is there possibilities that L3arbi will learn other arabic dialects other than darija? - -0:26:35 - Challenges of audio transcription - -0:27:31 - Live demo of L3arbi - -0:32:56 - Data training and Whisper and how many hours of darija data is used ? - -0:34:30 - Format of data that is used for training, and architecture of web application presented in DevoxxMA - -0:39:37 - The use case of DevoxxMA - -0:44:30 - Fine-tuning of an LLM, models and details - -0:56:20 - Evaluation set for different dialects per regions in morocco - -1:03:31 - Did you use manual transcription for the audio sets ? - -1:12:09 - The future plans of data sources for L3arbi solution. - -1:15:12 - Plans to open-source? Are there APIs available for developers to extend its functionality? - -1:25:00 - QA & Giveaway - -1:59:40 - Conclusion and goodbye. - -## Links - -- [Huggingface](https://huggingface.co/spaces/coqui/xtts) -- [Translation demo for/from any language](https://huggingface.co/spaces/Geonmo/nllb-translation-demo) -- [Common Voice](https://commonvoice.mozilla.org/) -- [Whisper API](https://whisperapi.com/) - - -## Prepared and Presented by - -- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/blablas/ep159/index.md b/blablas/ep159/index.md deleted file mode 100644 index 8c0f0974..00000000 --- a/blablas/ep159/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -date: 2023-10-28 -time: 20h:00min -duration: "2:05:41" -title: "It Depends: The Art of decision-making" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=2fBzXrAECRU -published: true -featured: false ---- - -In this episode of GeeksBlabla, we discuss with our guests the art of decision-making, how to make better decisions, and how to deal with the consequences of our decisions. - - -## Guests - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) -- [Soubai Abderahim](https://soubai.me) -- [Otmane Fettal](https://twitter.com/ofettal) -- [Djalal](https://twitter.com/enlamp) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:50 - Why is "it depends" such a common response in the IT industry? - -0:16:24 - Anecdotes and examples of "it depends" in the IT industry - -0:41:17 - The importance of transparency in the process of decision making - -0:55:40 - What are the risks associated with one-size-fits-all answers in IT? - -1:03:20 - Experimentation budgets are essential to better decisions - -1:12:30 - What are some of your strategies to make better decisions? - -1:42:30 - Why it's hard to decide on paying technical debt? - -1:59:56 - Book recommendations, Closing and Goodbye - -## Books -- Algorithms to live by. -- Thinking, Fast and Slow. -- Build: An Unorthodox Guide to Making Things Worth Making -- The Decision Book: Fifty Models for Strategic Thinking -- Linux System Programming: Talking Directly to the Kernel and C Library - - -## Prepared and Presented by - -- [Abdelati El ASRI](https://twitter.com/kaizendae) diff --git a/blablas/ep16/index.md b/blablas/ep16/index.md deleted file mode 100644 index 4eacf320..00000000 --- a/blablas/ep16/index.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -date: 2018-10-13 -time: 22h -duration: "1:25:54" -title: "MSS with Amine Raghib" -tags: ["MSS"] -category: "MSS" -isNext: false -video: "2254586411440378" -youtube: https://www.youtube.com/watch?v=DlE3drGZgpo -published: true -url: -audio: ---- - -In this episode of GeeksBlabla, our guest Amine Raghib - a writer and founder of the Professional Blog , and he is also known for his episodes on a YouTube channel of the same name that has achieved great success attracting millions of viewers - will share his story. - -## Guests - -[Amine Raghib](https://www.facebook.com/raghiblog/) - -## Notes - -0:00:00 - Introduction and welcoming. - -0:01:00 - Who is Amine Raghib? - -0:03:00 - How your dream began? - -0:06:00 - When you started as a web developer more than 10 years ago? How was the web experience back then? - -0:08:00 - Has anyone helped you get started? - -0:12:00 - How did you get the idea of โ€‹โ€‹creating content the first time? - -0:14:00 - What is the difference between white hat hackers and black hat hackers? - -0:17:00 - What can you advise who wants to start creating IT content in Arabic? - -0:22:00 - Did you see that the Arab technical content will be improved? - -0:31:00 - The free content and the donations. - -0:33:00 - Have you thought about helping young people, so Arabic content will be rich? - -0:36:00 - The problem is that people who provide good content do not support others. - -0:39:00 - the problem of criticizing content creators. - -0:44:00 - what are the difficulties that you affront when you want to create content to different cultures and countries? - -0:47:00 - Do you think that the technical competitions do not let us know the true Moroccan level of technology. - -0:54:00 - Does the problem lie in finding ideas for applying ideas? - -0:59:00 - Moroccan mentality, and tech events . - -1:03:00 - What mistakes have you made in your career?. - -1:10:00 - Is the transition from providing deep technical content to simple content, a good decision for you?. - -1:12:00 - What is the funniest thing, your follower asked for? - -1:15:00 - how the sponsors came to you? , and how you choose the sponsors? - -1:18:00 - What is the last advice you give to anyone who wants to blog and create content in Arabic? - -1:23:00 - How do you see the presence of Moroccans in technology? and have ever seen someone who marked you? - -2:15:00 - Wrap up & bye bye - -## Links - -[Almohtarif Channel](https://www.youtube.com/channel/UCO58fldVogtwlz7c2PTeWrg) - -## Prepared and Presented by : - -[Mohammed Aboullaite](https://twitter.com/laytoun) - -[El Foukahi Soufian](https://twitter.com/soufianelf/) - -[Amine Maarouf](https://web.facebook.com/amiiiinema) diff --git a/blablas/ep160/index.md b/blablas/ep160/index.md deleted file mode 100644 index cfde4943..00000000 --- a/blablas/ep160/index.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -date: 2023-11-05 -time: 20h:00min -duration: "2:19:34" -title: "Java in 2023" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=VkJtIaTGRsk -published: true -featured: false ---- - -In this episode we discuss the Java updates and features in 2023, with Aicha Laafia, Hamza Belmellouki, Ossama Ismaili, Adnane Belmadiaf, Marouane gazayni, and Mohammed Aboullaite. - -## Guests - -- [Aicha Laafia](https://twitter.com/AichaLaafia) - -- [Hamza Belmellouki](https://www.linkedin.com/in/hamzabelmellouki/) - -- [Ossama Ismaili](https://x.com/ossamaismaili) - -- [Adnane Belmadiaf](https://www.facebook.com/AdnaneBelmadiaf) - -- [Marouane gazayni](https://twitter.com/mgazanayi) - -- [Ibrahim Mestadi](https://x.com/ibrahimmestadi) - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:00 - What is 6 month realse? and the favorite feature on latest java version (java 11 to 21) - -0:15:45 - Is Java Still Relevant In 2023? - -0:25:00 - What's/Why the Pattern Matching - -0:32:00 - Record and how it helps the developers? - -0:45:00 - The project Loom and the Virtual Threads - -0:58:00 - The project Valhala - -1:08:00 - The project Panama - -1:10:00 - The project Leyden - -1:14:35 - What are the limitations of Java in the serverless? - -1:16:00 - Java benchmark and comparison with other languages - -1:18:00 - Giveaway - -1:20:00 - Answer the questions from the comments - -1:33:00 - Is Java slow and/or Verbose? - -1:35:00 - Migration from old to new Java versions tips, feedback and recommendations - -1:47:00 - Answer the questions from the comments - -2:12:00 - Recommendations for new Java devs - -2:18:00 - Conclusion and goodbye. - -## Links - -- [Languages comparison](https://thenewstack.io/which-programming-languages-use-the-least-electricity/) - -- [Picocli](https://picocli.info/) - -## Prepared and Presented by - -- [Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/blablas/ep161/index.md b/blablas/ep161/index.md deleted file mode 100644 index 363c3f13..00000000 --- a/blablas/ep161/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -date: 2023-11-12 -time: 20h:00min -duration: "3:20:22" -title: "JavaScript in 2023" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=BI9C_uH2Y2E -published: true -featured: false ---- - -In this episode, we discuss the JavaScript updates and features in 2023, with Abderrahim Soubai Idrissi, Ayoub Alouane, Wassim CHEGHAM, Mouad Sidqi, Niima Chigr, and Youssouf El Azizi. - -## Guests - -- [Abderrahim Soubai Idrissi](https://www.soubai.me/) - -- [Ayoub Alouane](https://twitter.com/alouane_med) - -- [Wassim CHEGHAM](https://twitter.com/manekinekko) - -- [Mouad Sidqi](https://twitter.com/vmod__) - -- [Niima Chigr](https://www.linkedin.com/in/niima-chigr) - -## Notes - -0:00:00 - Introduction and welcoming - -0:06:00 - Is Typescript the new Javascript? - -0:10:00 - Which is better for starting a new project in 2023-2024: JavaScript or TypeScript? - -0:19:00 - Are we making the front-end development too complex with too many concepts? - -0:32:00 - Walking through some of the most important concepts in frontend: Hydration, islands, resumability. - -1:16:00 - Are compilers the new frameworks? - -1:26:00 - What are signals? - -1:33:00 - Answer the questions from the comments - -1:56:00 - What do you think about Micro-frontend? - -2:03:00 - Answer the questions from the comments - -2:14:00 - How do you stay updated with Javascript trends? - -2:23:00 - Frameworks updates: Angualar, React, Qwik, Next ... - -2:49:00 - Bun - -2:55:00 - JavaScript future - -3:10:00 - Geeksblabla Picks - -3:17:00 - Conclusion and goodbye. - - -## Links - -- [State Of Dev](https://stateofdev.ma/) - -- [Frontend Masters](https://frontendmasters.com/) - -- [Hackernoon](https://hackernoon.com/) - -- [Hackertab](https://hackertab.dev/) - -- [This week in react](https://thisweekinreact.com/) - -- [Bytecode alliance](https://github.com/bytecodealliance) - -- [JCO](https://github.com/bytecodealliance/jco) - -- [Crazy startup](https://crazystartup.studio/) - -- [Overreacted](https://overreacted.io/) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep162/index.md b/blablas/ep162/index.md deleted file mode 100644 index e4c60be2..00000000 --- a/blablas/ep162/index.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -date: 2023-11-19 -time: 20h:00min -duration: "3:54:50" -title: "PHP in 2023" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=T2caZNK6jhE -published: true -featured: false ---- - -In this episode, we discuss the latest PHP features in 2023, frameworks, and much more with our community friends. - -## Guests - -- [Imad Zairig](https://twitter.com/zairigimad) - -- [Mouhcine MAHFOUD](https://twitter.com/MouhcineMahfoud) - -- [Issam Khadiri](https://www.linkedin.com/in/issam-khadiri-30a31659/) - -- [Achraf Aamri](linkedin.com/in/achrafaamri/) - -- [Mohamed Boukhlif](https://twitter.com/b0ndif) - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:00 - Is PHP Dead? - -0:11:45 - Is PHP only for building MVPs? - -0:16:00 - PHP before 5.6 and after it - -0:24:00 - Is the PHP problem that PHP isn't supported by a big company, like many other languages? - -0:32:00 - The PHP missing version 6 - -0:35:00 - PHP 7: feature(s) you liked in this update - -0:45:00 - Do the PHP offers always have low salaries? - -0:55:00 - PHP 8: JIT and feature(s) you liked in this update - -1:04:00 - The PHP FIG - -1:14:00 - PHP RCFs - -1:23:42 - Launch of ุชุฌุฑุจุฉ.gzip - -1:24:25 - The PHP Foundation - -1:31:00 - PHP Frameworks - -2:21:00 - WordPress - -2:35:00 - Security - -3:10:00 - Answer the questions from the comments - -3:40:00 - Giveaway - -3:41:00 - Answer the questions from the comments - -3:44:00 - Geeksblabla Picks - -3:52:00 - Conclusion and goodbye. - -## Links - -- [Laracasts](https://laracasts.com/) - -- [Grafikart](https://www.youtube.com/c/grafikart) - -- [Symfonycasts](https://symfonycasts.com/) - -- [Matthias Noback](https://matthiasnoback.nl/) - -- [PHP the right way](https://phptherightway.com/) - - -## Prepared and Presented by - -- [Hamza Makraz](https://twitter.com/makraz_hamza) diff --git a/blablas/ep163/index.md b/blablas/ep163/index.md deleted file mode 100644 index d41a857f..00000000 --- a/blablas/ep163/index.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -date: 2023-11-26 -time: 20h:00min -duration: "2:02:42" -title: "Python in 2023" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=Zgdg4Hx_g7M -published: true -featured: false ---- - -In this episode, we discuss the latest Python features and fileds of usage in 2023, frameworks, and much more with our community friends. - -## Guests - -- [Ismail Tlemcani](https://www.linkedin.com/in/ismailtlemcani) - -- [Yasser Tahiri](https://www.yezz.me/) - -- [Mahmoud Fettal](https://twitter.com/mahmoudfettal) - -- [Hamza Haddaa](https://twitter.com/HamzaHaddaa) - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:00 - Jetbrains survey highlighting Python part - -0:08:40 - Emerging trends or technologies in the Python ecosystem that are particularly noteworthy this year - -0:21:00 - How do you anticipate Python's role evolving in the domain of Data Science and ML - -0:35:00 - Major updates or changes in Python frameworks or libraries that developers should be aware of - -0:41:00 - Python is addressing challenges related to scalability and performance, especially in the context of modern applications - -0:58:44 - When not to use Python? - -1:07:00 - How is Python positioned to play a role in DevOps this year - -1:16:05 - How is Python adapting to address security concerns, and what should developers be mindful of - -1:20:00 - Q&A - -1:56:00 - Geeksblabla Picks - -2:02:00 - Conclusion and goodbye. - -## Links - -- [JetBrains Survey](https://www.jetbrains.com/lp/devecosystem-2022/python/) - -- [Python Deep Dive Episode](https://geeksblabla.io/blablas/python-deep-dive) - -- [Understanding the Python Global Interpreter](https://elmkarami.com/blog/understanding_the_gil/) - -- [OWASP Top Ten](https://owasp.org/www-project-top-ten/) - -- [OWASP Web Security Testing Guide](https://owasp.org/www-project-web-security-testing-guide) - -- [Book recommandation from Hamza](noor-book.com/hok5sf) - -## Prepared and Presented by - -- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/blablas/ep164/index.md b/blablas/ep164/index.md deleted file mode 100644 index 84d782e3..00000000 --- a/blablas/ep164/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -date: 2023-12-03 -time: 20h:00min -duration: "2:25:31" -title: "Rust in 2023" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=J7Z1mxrrlKo -published: true -featured: false ---- - -In this episode, we explore the newest Rust features in 2023, practical use cases, advanced topics and much more with our community friends. - -## Guests - -- [M'bark Erras](https://github.com/mathematikoi/) - -- [Ismail Ait Bella](https://twitter.com/ABELLAISMAIL4) - -- [Abderrahim Soubai Idrissi](https://www.soubai.me/) - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:15 - What is Rust? - -0:09:15 - Why Rust? And why is it the most admired language among developers? - -0:20:09 - Advocating Rust over C/C++ pain - -0:23:52 - Is C/C++ necessary for learning Rust? - -0:28:55 - Programming in Rust: the good, the bad - -0:41:41 - Rust traits - -0:47:21 - Threads in Rust - -0:50:55 - How the Rust compiler works - -0:58:11 - Cargo - -1:07:00 - Procedural macros - -1:13:36 - Rust vs Golang binaries - -1:20:40 - Where Rust shines - -1:29:46 - Is Rust suitable for web development - -1:40:22 - Building games with Rust - -1:46:02 - Rust and blockchain - -1:51:10 - Rewriting things in Rust - -2:00:04 - why is Rust frequently compared with Go - -2:01:17 - Future of Rust - -2:18:43 - Geeksblabla Picks - -2:24:44 - Conclusion and goodbye - -## Links - -- [Rust Atomics and Locks](https://marabos.nl/atomics/) - -- [The Rustonomicon](https://doc.rust-lang.org/stable/nomicon/) - -- [Rust Compiler Development Guide](https://rustc-dev-guide.rust-lang.org/) - -- [Rust for Rustaceans](https://rust-for-rustaceans.com/) - - -## Prepared and Presented by - -- [Adnan M'RAKCHI](https://twitter.com/_admerra) \ No newline at end of file diff --git a/blablas/ep165/index.md b/blablas/ep165/index.md deleted file mode 100644 index 83402368..00000000 --- a/blablas/ep165/index.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -date: 2023-12-10 -time: 20h:00min -duration: "2:30:41" -title: "DevOps in 2023" -tags: ["career"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=jgLmsiLsC5U -published: true -featured: false ---- - -In this episode, we discuss the state of DevOps in 2023 and highlight key changes/improvements, new rising roles, and the most recent emerging practices. - - -## Guests - -- [Djalal](https://twitter.com/enlamp) - -- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) - -- [Yasser Chihab](https://twitter.com/YasserChihab7) - -- [Mourad Mtouaa](https://twitter.com/mouradxmt) - -- [Youssef Roudanil](https://www.linkedin.com/in/youssef-roudani-810900107/l) - -- [Otmane Fettal](https://twitter.com/ofettal) - -- [Abdelati El Asri](https://twitter.com/kaizendae) - - -## Notes - -00:00:00 - Introduction and welcoming - -00:05:55 - State of DevOps in 2023: Key changes, notable shifts and improvements. - -00:08:35 - Definition of DevOps and highlights on some DevOps misconceptions - -00:34:17 - DevOps โ€œengineersโ€/practitioners vs SREs - -00:49:02 - How was SRE implemented by Google ? - -00:59:02 - Hierarchy challenges in Tech companies - -01:10:02 - The rise of Low-Code/No-Code platforms and whether they threaten DevOps jobs or there will be a new role created - -01:38:52 - What is Platform Engineering? - -01:54:50 - Should a DevOps/Platform/SRE engineer be a developer beforehand? - -02:10:59 - What advice to give for juniors to get started and build a successful DevOps career? - -02:22:30 - The role of a Cloud Architect in DevOps - -02:23:27 - The effects of AI in DevOps - -02:24:44 - Conclusion and goodbye - -## Links - -- [DORA Report 2023](https://services.google.com/fh/files/misc/2023_final_report_sodr.pdf) - -- [The Goal: A Process of Ongoing Improvement](https://www.amazon.com/Goal-Process-Ongoing-Improvement/dp/0884271951) - -- [SRE by Google Cloud](https://sre.google/) - -- [Tech World With NANA](https://www.youtube.com/@TechWorldwithNana/featured) - -- [โ€‹The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win Hardcover](https://www.amazon.com/Phoenix-Project-DevOps-Helping-Business/dp/0988262592) - -- [The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations](https://www.amazon.com/DevOps-Handbook-Second-World-Class-Organizations/dp/B09L56CT6N/ref=sr_1_1?adgrpid=89975599908&hvadid=585479289782&hvdev=c&hvlocphy=1009974&hvnetw=g&hvqmt=e&hvrand=10267686391480424409&hvtargid=kwd-298080548321&hydadcr=27991_14525483&keywords=the+devops+handbook&qid=1702429208&sr=8-1) - -- [DevsInStyle](https://open.spotify.com/show/5G7yZTN1k0ylfouanYBMYI) - - - -## Prepared and Presented by - -- [Chaimaa BRITEL](https://twitter.com/ChaimaaBritel) - -- [Abdelati EL ASRI](https://twitter.com/kaizendae) - - diff --git a/blablas/ep166/index.md b/blablas/ep166/index.md deleted file mode 100644 index 0e2ac349..00000000 --- a/blablas/ep166/index.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -date: 2023-12-17 -time: 20h:00min -duration: "1:52:59" -title: "The State of .NET in 2023" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=3D_CLzQ_9jU -published: true -featured: false ---- - -In this episode, we discuss the state of .net Ecosystem in 2023 and highlight key changes/improvements and capabilities. - -## Guests - -- [Othman Kinane](https://www.linkedin.com/in/othmanekinane/) - -- [Othman Teffahi](https://www.linkedin.com/in/othmane-teffahi-322b071a3/) - -- [Amine Jadid](https://www.linkedin.com/in/jadid-amine/) - -- [Youssef Bensadik](https://www.linkedin.com/in/youssefbensadik/) - - - -## Notes - -00:00:00 - Introduction and welcoming - -00:04:20 - What is dotnet ? and Presentation of the dotnet Ecosystem - -00:15:52 - What Can we build with Dotnet ? - -00:25:30 - What's Special about dotnet ? - -00:35:00 - Building Web Applications with Dotnet - -00:50:00 - Building Desktop applications with Dotnet - -00:58:00 - Dotnet Aspire - -01:07:32 - What our guests love about dotnet ? - -01:16:00 - Tips and Tricks and best Practices - -01:50:00 - Conclusion and goodbye - -## Links - -- [Learn C#](https://www.freecodecamp.org/learn/foundational-c-sharp-with-microsoft) - -- [Microsoft Student Embassadors](https://mvp.microsoft.com/studentambassadorsopens) - -- [Awesome Selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted) - -- [bflat](https://github.com/bflattened/bflat) - -- [uefimaze](https://github.com/MichalStrehovsky/uefimaze) - - -## Prepared and Presented by - -- [Otmane FETTAL](https://twitter.com/OFettal) - - - diff --git a/blablas/ep167/index.md b/blablas/ep167/index.md deleted file mode 100644 index 34b77504..00000000 --- a/blablas/ep167/index.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -date: 2023-12-24 -time: 20h:00min -duration: "2:48:40" -title: "Year in Review 2023" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=4Cs8O3VchnE -published: true -featured: false ---- - -In this episode, we discuss the events of 2023, tech news, and the future of the tech industry. We'll also explore how to set our goals for 2024. - -## Guests - -- [Mohammed Aboullaite](https://aboullaite.me) - -- [Soubai Abderahim](https://soubai.me) - -- [Meriem Zaid](https://twitter.com/_iMeriem) - -- [Otmane FETTAL](https://twitter.com/ofettal) - -- [Abdelati El Asri](https://twitter.com/kaizendae) - -## Notes - -0:00:00 - Introduction and welcoming - -0:06:00 - Goals and New Year's resolutions - -0:36:30 - Why don't we speak 100% in Darija on the podcast? - -0:48:00 - Why do audiences feel like they are seeing the same guests? - -0:57:00 - Why doesn't Geeksblabla have a Discord server? - -1:03:00 - BlablaConf and state of dev survey 2023. - -1:29:00 - Crypto and NFTs in 2023. - -1:39:30 - AI updates and how it will affect our jobs. - -2:08:04 - Layoffs in the tech industry. - -2:16:20 - Figma and Adobe deal. - -2:20:00 - QAs - -2:46:00 - Conclusion and goodbye. - -## Links - -- [stateofdev.ma](https://stateofdev.ma) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elaazizi.com/) diff --git a/blablas/ep168/index.md b/blablas/ep168/index.md deleted file mode 100644 index 631f9eb8..00000000 --- a/blablas/ep168/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -date: 2024-01-07 -time: 20h:00min -duration: "2:18:30" -title: "7 Pillars to be comfortable in your Professional Life" -tags: ["career"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=UKXczSzD2mA -published: true -featured: false ---- - -In this episode, We discuss 7 Pillars that can helps us lead a more comfortable Work life. - -## Guests - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -- [Djalal](https://twitter.com/enlamp) - -- [Marouane Gazanayi](https://www.linkedin.com/in/marouanegazanayi/) - -- [Abdelati El Asri](https://twitter.com/kaizendae) - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:36 - You don't need to know a lot of Programing languages. - -0:25:48 - Work is not only about coding. - -0:46:50 - You won't use the latest tech in work. - -1:09:40 - You can't know everything. - -1:29:10 - Coding Bootcamps is a great start towards a path of learning. - -1:43:55 - You can't avoid Office politics , and don't forget to live. - -2:06:30 - Conclusion and Goodbye - - -## Links - -- [Range Book Review](https://www.youtube.com/watch?v=E2ipt93liok) - -## Prepared and Presented by - -- [Adnan M'RAKCHI](https://twitter.com/_admerra) -- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/blablas/ep169/index.md b/blablas/ep169/index.md deleted file mode 100644 index 66a77945..00000000 --- a/blablas/ep169/index.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -date: 2024-01-14 -time: 20h:00min -duration: "1:41:51" -title: "WebAssembly in 2024" -tags: ["dev", "wasm"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=M3IBIFHwLBE -published: true -featured: false ---- - -In this episode, We discuss The state of webassembly in 2024 - -## Guests - -- [Abderrahim](https://twitter.com/soub4i) - -- [Abdellfetah](https://twitter.com/boredabdel) - -- [Wassim](https://www.linkedin.com/in/manekinekko) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:53 - What is WebAssembly. - -0:10:56 - State of WebAssembly in 2024. - -0:21:29 - Containeres vs WASM. - -0:38:35 - WASM and eBPF. - -0:44:56 - Frameworks and dev toolchain. - -1:02:07 - is it worth it to learn WASM. - -1:20:55 - Resource to learn WASM. - -1:36:18 - Prediction and WASM future - -1:40:29 - Conclusion and Goodbye - -## Links - -- [Awesome WASM](โ€‹https://github.com/mbasso/awesome-wasm) -- [Awesome WASM](https://events.linuxfoundation.org/wasmcon) -- [WASM.io](โ€‹https://twitter.com/wasm_io) - -## Prepared and Presented by - -- [Abderrahim](https://twitter.com/soub4i) diff --git a/blablas/ep17/index.md b/blablas/ep17/index.md deleted file mode 100644 index 9bd63472..00000000 --- a/blablas/ep17/index.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -date: 2019-06-02 -time: 22h -duration: "1:09:27" -title: "Serverless" -tags: ["serverless", "dev", "software engineering"] -category: "dev" -isNext: false -video: "2402382573327427" -youtube: https://www.youtube.com/watch?v=EHkP_ycfdUk -published: true -url: -audio: ---- - -On this episode of Geeksblabla, Abderahim ,Mohammed , Amine and Youssouf Talk about Serverless && Faas, A complete introduction, Pros and Cons And why you should start working with Faas. - -## Notes - -0:00:00 - Introduction - -0:05:00 - what is Serverless ? - -0:09:00 - Pay as you consume ๐Ÿค”? - -0:15:00 - Serverless limitation - -0:20:00 - Pros and Cons - -0:30:00 - Can we use serverless for any project ? - -0:40:00 - Programing languages and serverless - -0:55:00 - Serverless best practices - -1:04:00 - Should I use serverless in my next Project ? - -## Link - -- [Serverless Tools](https://serverless.css-tricks.com) -- [Netlify](https://www.netlify.com/) -- [AWS lambda](https://aws.amazon.com/lambda/) diff --git a/blablas/ep170/index.md b/blablas/ep170/index.md deleted file mode 100644 index 2f35f4dc..00000000 --- a/blablas/ep170/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -date: 2024-01-21 -time: 20h:00min -duration: "1:55:07" -title: "Let's Discover Salesforce" -tags: ["career"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=hZUk7EAuyQQ -published: true -featured: false ---- - -In this episode, We have a discussion around Salesforce - -## Guests - -- [Mustapha EL HASSAK](https://www.linkedin.com/in/elhassak/) - -- [Houssam SAOUDY](https://www.linkedin.com/in/houssamsaoudy/) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:50 - What's a CRM - -0:13:20 - Overview of Salesforce - -0:29:00 - Exploring Salesforce Capabilities - -0:41:15 - Developing on Salesforce - -0:59:45 - Learning Salesforce - -1:10:30 - Salesforce Community in Morocco - -1:13:10 - Building a Successful Career with Salesforce - -1:47:30 - Conclusion and Goodbye - - -## Links - -- [Trailhead Platform](https://trailhead.salesforce.com/) -- [Casablanca Salesforce Developers Group](https://trailblazercommunitygroups.com/salesforce-developer-group-casablanca-morocco/) -- [Salesforce Governance Limits](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_gov_limits.htm) -- [North Africa Dreaming](https://northafricadreamin.com/) -- [Pluralsight Ressources](https://www.pluralsight.com/browse?&q=salesforce&%20engineering&type=all&sort=default) -- [Salesforce Certifications](https://trailhead.salesforce.com/fr/credentials/administratoroverview/) - -## Prepared and Presented by - -- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/blablas/ep171/index.md b/blablas/ep171/index.md deleted file mode 100644 index 792c2cf9..00000000 --- a/blablas/ep171/index.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -date: 2024-01-28 -time: 20h:00min -duration: "2:18:48" -title: "From Code Passion to First Dollar" -tags: ["career"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=6wsSnklIzNU -published: true -featured: false ---- - -In this episode, we discuss how to turn code passion into profit. We'll cover concrete strategies to get started and more, with our talented guests. - -## Guests - -- [Moustaid Ayoub](https://x.com/mstdayoub) - -- [Hamza Moustaid](https://x.com/hamzaamoustaid) - -- [Reda Boubkraoui](https://x.com/reda_boubkraoui) - -- [Younes Rahim](https://x.com/switcode) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:50 - Is the solopreneur or indie maker field suitable for all software engineers? - -0:07:18 - What types of software engineers can be indie makers? - -0:15:08 - The transition from being an employee to a solopreneur and following your passion. - -0:22:00 - Upsides and downsides of the solopreneur journey. - -0:25:45 - Tips to find ideas to make your first product. - -0:35:30 - Tips to gather the first budget to get started and the minimum budget needed. - -0:50:58 - Tips for Time Allocation as a Solopreneur - -0:57:01 - Idea generation and validation. - -1:01:10 - Tips to generate your first dollar with your current skill, with or without experience. - -1:13:13 - Tips to Find the Right Audience - -1:24:00 - Is indie hacking similar to dropshipping? - -1:38:06 - Deadly trap: Think globally and generate more income. - -1:45:10 - Deadly trap: procrastinating growth and developing ideas. - -1:54:00 - Geeksblabla picks & QA - -2:18:30 - Conclusion and Goodbye - - -## Links - -- [Indiehackers](www.indiehackers.com) -- [Gumroad](gumroad.com) -- [NameCheap](namecheap.com) -- [Acquire](acquire.com) -- [Blogpost by Ayoub Moustaid](https://blog.acquire.com/startup-acquisition-episode-76/) -- [WebFlow apps](https://webflow.com/apps) -- [carrd.co](carrd.co) -- [Mental Health for developers - Episode](https://geeksblabla.io/blablas/mental-health-for-developers) -- [Failory](www.failory.com) -- [StateOfDEv survey](stateofdev.ma) -- [Can't Hurt Me - Book](https://www.amazon.com/Cant-Hurt-Me-Master-Your/dp/1544512287) -- [Unsexy Business - Book](https://www.amazon.com/Unsexy-Business-Entrepreneurs-businesses-extraordinary/dp/0857197134) - -## Prepared and Presented by - -- [Djalal](https://twitter.com/enlamp) - -- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/blablas/ep172/index.md b/blablas/ep172/index.md deleted file mode 100644 index fb315e7c..00000000 --- a/blablas/ep172/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -date: 2024-02-11 -time: 20h:00min -duration: "2:32:08" -title: "AMA & Tech News #29" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=Z8_k-PnLaEo -published: true -featured: false ---- - -In this episode, we discuss how to prepare for talks, taking 3 months long vacations and the future of the tech industry in 2024. - -## Guests - -- [Djalal](https://twitter.com/enlamp) - -- [Ahmed El Azzabi](https://mylink.fyi/elazzabi) - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:00 - Taking 3 months long vacations with Ahmed El Azzabi - -0:27:30 - Writing ebooks, and articles, and improving your writing skills. - -0:56:00 - QAs - -1:13:00 - New financial lows in Morocco. - -1:20:00 - How to prepare for talks. - -1:39:00 - Apple Vision Pro thoughts - -1:42:30 - QAs - -2:21:04 - GeeksBlaBla Picks - -2:30:00 - Conclusion and goodbye. - -## Links - -- [https://remote.ma/](https://remote.ma/) - -- [https://remote.ma/legal/](https://remote.ma/legal/) - -- [Building Microservices, 2nd Edition](https://samnewman.io/books/building_microservices_2nd_edition/) - -- [James Clear Newsletter](https://jamesclear.com/3-2-1) - -- [TickTick](https://www.ticktick.com/) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elaazizi.com/) diff --git a/blablas/ep173/index.md b/blablas/ep173/index.md deleted file mode 100644 index a750f75c..00000000 --- a/blablas/ep173/index.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -date: 2024-03-10 -time: 21h:00min -duration: "1:29:29" -title: "Blanat Coding Challenge" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=gOnapDngTuk -published: true -featured: false ---- - -In this episode, we discuss the new challenge Blanat, we hosted participants and organizers to talk about it. - -## Guests - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -- [Mohammed Aboullaite](https://twitter.com/laytoun) - -- [Zakaria Moumen](https://www.linkedin.com/in/zakaria-moumen/) - -- [Youssfi Saad](https://www.linkedin.com/in/yousfisaad/) - -- [Mehdi Essalhi]() - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:22 - Read Blanat challenge statement. - -0:07:20 - Blanat challenge in numbers. - -0:09:30 - The winner's words. - -0:18:18 - Other participant's words. - -0:56:00 - RAFFLE. - -1:04:05 - Challenge runner application. - -1:09:00 - The idea of how the challenge came up from. - -1:12:45 - How we manage PRs. - -1:14:50 - Things to improve. - -## Links - -- [challenge shared by Saad](https://codecup.nl/http://espoir-comp...) - -- [The runner that Mehdi is describing](https://github.com/geeksblabla/blarun) - -- [Challenge link](https://github.com/geeksblabla/blanat) - -## Prepared and Presented by - -- [Adnan MERRAKCHI](https://twitter.com/_admerra) diff --git a/blablas/ep174/index.md b/blablas/ep174/index.md deleted file mode 100644 index ae9238ec..00000000 --- a/blablas/ep174/index.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -date: 2024-03-17 -time: 20h:00min -duration: "2:52:59" -title: "State of Dev in Morocco 2023" -tags: ["stateofdev", "geeksblabla"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=htXPDy4Esuo -published: true -featured: true ---- - -In this episode, we discuss the state of development in Morocco. We talk about the results of the survey, job satisfaction, salaries, AI adoption, and community contribution. We explore how they learn and level up, the tools they are using, and what they want to learn next. - -## Guests - -- [Meriem zaid](https://twitter.com/iMeriem_) - -- [Omaima Khalil](https://twitter.com/BadQuinn3) - -- [Mohammed Aboullaite](https://aboullaite.me) - -- [Nouamane Tazi](https://www.linkedin.com/in/nouamanetazi/) - -- [Adnan MERRAKCHI](https://twitter.com/_admerra) - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:56 - State overview - -0:11:30 - Profile: Female participation, age, and experience - -0:55:03 - Learning and education in Morocco - -1:17:30 - Work and job satisfaction - -1:37:30 - Technology and tools, frameworks, cloud, CSS, and more. - -1:52:45 - AI adoption for Moroccan developers: tools, learning, companies using AI. - -2:19:45 - How Moroccan developers feel about the impact of AI on their jobs. - -2:43:00 - Social media usage among Moroccan developers - -1:47:43 - Warming up and goodbye - -## Links - -- [stateofdev.ma](https://stateofdev.ma/) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep175/index.md b/blablas/ep175/index.md deleted file mode 100644 index 39ad95d8..00000000 --- a/blablas/ep175/index.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -date: 2024-03-24 -time: 22h:00min -duration: "2:13:58" -title: "Ten Principles for Growth as an Engineer" -tags: ["career", "dev", "tips", "programming", "success"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=X7pMqC-0bNw -published: true -featured: false ---- - -In this episode, we discuss 10 tips for success in the IT world, and how to become an effective programmer. especially for the Moroccan context. -we based our discussion on the following article [Ten Principles for Growth as an Engineer](https://medium.com/@daniel.heller/ten-principles-for-growth-69015e08c35b) - -## Guests - -- [Marouane gazayni](https://twitter.com/mgazanayi) - -- [Youssouf El Azizi](https://elazizi.com/) - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:30 - Principle 1: Think about business value - -0:25:44 - Principle 2: Unblock yourself - -0:40:16 - Principle 3: Take initiative - -0:52:00 - Principle 4: Improve your written communication - -1:00:25 - Principle 5: Own your project management - -1:10:51 - Principle 6: Learn to learn - -1:20:00 - Principle 7: Master your tools - -1:37:00 - Principle 8: Communicate Proactively - -1:46:20 - Principle 9: Collaborate with other teams - -1:52:50 - Principle 10: Be reliable - -2:02:42 - Discussing Comments and Questions - -2:11:30 - Goodbyes - -## Links - -- [Medium Article: Ten Principles for Growth as an Engineer](https://medium.com/@daniel.heller/ten-principles-for-growth-69015e08c35b) - -## Prepared and Presented by - -- [Abdelati EL ASRI](https://twitter.com/kaizendae) diff --git a/blablas/ep176/index.md b/blablas/ep176/index.md deleted file mode 100644 index ea231dba..00000000 --- a/blablas/ep176/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -date: 2024-03-31 -time: 22h:00min -duration: "1:27:32" -title: "MSS with Mohamed Adnane Abouchadi" -tags: ["career", "dev", "mss", "success", "disability"] -category: "MSS" -isNext: false -youtube: https://www.youtube.com/watch?v=HRGLTomaEXE -published: true -featured: false ---- - -In this Geeksblabla episode, Mohammed Adnane Abouchadi talks about how he became a software engineer despite his disability, and shares with us some inspiring lessons he learned along the journey. - -## Guests - -- [Mohamed Adnane Abouchadi](https://abouchadi.com/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:02:55 - Why Mohamed Adnane is special - -0:05:45 - Adnane's childhood, school time and the start of his passion about computers - -0:12:30 - Importance of family and environment - -0:16:05 - Orientation between passion and abilities - -0:24:15 - Adnane's university journey - -0:38:00 - Finding the first job - -0:57:30 - Adnane's Entrepreneurial journey - -1:06:00 - A day in Adnane's life - -1:11:00 - Lessons and Advice to people with disabilities - -1:22:00 - A message to companies and recruiters - -1:27:00 - Closing and Goodbyes - -## Links - -## Prepared and Presented by -[Mohammed Daoudi](https://twitter.com/MIduoad) diff --git a/blablas/ep177/index.md b/blablas/ep177/index.md deleted file mode 100644 index 9979f788..00000000 --- a/blablas/ep177/index.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -date: 2024-04-21 -time: 20h:00min -duration: "3:15:53" -title: "DevRel and tech talks" -tags: ["devrel","tech-talks"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=8uKEwWbgRBc -published: true -featured: false ---- - -We're back with Part Two of "Preparing for a Tech Talk" expanding on our previous discussion from two years ago. Plus, we're diving into DevRel (Developer Relations) and its impact on the tech industry. Whether you're curious about DevRel or considering a career in it, we've got you covered with essential insights and tips. Tune in for an engaging conversation! - -## Guests - -- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) - -- [Djalal](https://twitter.com/enlamp) - -- [Kawtar Choubari](https://www.linkedin.com/in/choubari/) - -- [Zineb Bendhiba](https://twitter.com/ZinebBendhiba) - -- [Ayoub Alouane](https://twitter.com/alouane_med) - -- [Mohammed Abboulait](https://twitter.com/laytoun) - - -## Notes - -0:00:00 - Introduction and welcoming. - -0:11:52 - Why did you start tech talks? - -0:36:41 - How to write a good CFP? - -0:53:20 - As reviewer, What makes a talk valid for you? - -1:13:36 - How do you know your audience? - -1:27:25 - What about imposter syndrome? - -1:29:18 - Audience in middle east. - -1:40:45 - What is DevRel? - -2:05:20 - Is technical writer considered as a DevRel? - -2:10:10 - What makes DevRel different from classic technical marketing? - -2:17:05 - What are the essential qualities that a DevRel guy must have? - -2:29:45 - What are the drawbacks of being in DevRel? - -2:48:15 - What are the positive aspects of being in DevRel? - -3:01:20 - Last word. - - -## Links - -## Prepared and Presented by -[Adnan MERRAKCHI](https://twitter.com/_admerra) diff --git a/blablas/ep178/index.md b/blablas/ep178/index.md deleted file mode 100644 index 68a2787b..00000000 --- a/blablas/ep178/index.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -date: 2024-04-28 -time: 20h:00min -duration: "2:37:14" -title: "Legacy Code & Technical debts" -tags: ["legacy", "technical debts"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=mIPFRUCODN4 -published: true -featured: false ---- - -In this episode, we look at the challenges of dealing with legacy code and technical debts. We will discuss the importance of technical debt, the impact of legacy code on the development process, and the strategies for managing and mitigating technical debt. - -## Guests - -- [Marouane Gazanayi](https://www.linkedin.com/in/marouanegazanayi/) - -- [Badr-eddin Zioun](https://www.linkedin.com/in/zinounbadr/) -- [Mohammed Lamzira](https://www.linkedin.com/in/mohammed-lamzira-98599250/) - -## Notes - -0:00:00 - Introduction and welcoming. - -0:05:30 - What is legacy code? perspectives and examples. - -0:36:00 - Legacy code and junior developers. - -0:43:00 - What are technical debts? and how to collect them ? - -1:24:00 - How to prevent technical debts and legacy code? - -1:56:00 - How to deal with legacy code? - -2:22:00 - Picks and last words. - -## Links - -- [Refactoring](https://martinfowler.com/books/refactoring.html) - -- [Working effectively with legacy code](https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052) - -- [Emily Bache](https://twitter.com/emilybache) - -- [Legacy Code: Evolve or Rewrite?](https://www.slideshare.net/cyriux/legacy-code-evolve-or-rewrite) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep179/index.md b/blablas/ep179/index.md deleted file mode 100644 index 22b542d2..00000000 --- a/blablas/ep179/index.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -date: 2024-05-05 -time: 20h:00min -duration: "2:16:19" -title: "AMA & Tech News #30" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=HVdjS6NaEz8&pp=ygULZ2Vla3NibGFibGE%3D -published: true -featured: false ---- - -In this episode, we discuss What's new in the AI universe and the XZ Backdoor - -## Guests - -- [Sara El-Ateif](https://www.linkedin.com/in/sara-el-ateif) - -- [Abderrahim Soubai Idriss](https://twitter.com/soub4i) - -- [Taha Bouhsine](https://www.linkedin.com/in/tahabsn) - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:00 - What did we learn in the last month - -0:27:30 - Ai Models , Training , Strategies , Fake AI - -1:41:00 - XZ Backdoor - -2:00:00 - Conclusion and goodbye. - -## Links - -- [Risk V Emulator](https://github.com/mit-pdos/xv6-riscv) - -- [Moroccan AI Influencer](https://www.instagram.com/kenza.layli/?hl=en) - -- [Early expressive language of severely visually impaired children](https://pubmed.ncbi.nlm.nih.gov/8138072/#:~:text=It%20is%20concluded%20that%20severely,discerned%20in%20their%20early%20words.) - -- [MultiMAE: Multi-modal Multi-task Masked Autoencoders](https://multimae.epfl.ch/) - -- [First AI Worm](https://arxiv.org/abs/2403.02817) - -- [Attention in transformers, visually explained](https://www.youtube.com/watch?v=eMlx5fFNoYc&t=369s) - -- [AI Sorting Algorithms](https://deepmind.google/discover/blog/alphadev-discovers-faster-sorting-algorithms/) - -- [AlphaTensor](https://deepmind.google/discover/blog/discovering-novel-algorithms-with-alphatensor/) - -- [Reducing LLM Costs](https://www.linkedin.com/posts/joannastoffregen_rag-6-techniques-to-reduce-llm-costs-activity-7182980552193396737-mmBc?utm_source=share&utm_medium=member_desktop) - -- [RAG to Reduce LLM costs](https://www.linkedin.com/posts/joannastoffregen_rag-5-costs-of-a-rag-app-activity-7181168556728840192-NFaJ?utm_source=share&utm_medium=member_desktop) - -- [AI Marketplace](https://aimarketplace.co/) - -- [To Repeat or Not To Repeat: Insights from Scaling LLM under Token-Crisis ](https://arxiv.org/pdf/2305.13230) - -- [Knowledge Distilation](https://arxiv.org/pdf/2210.17332) - -- [Open Interpreter](https://www.openinterpreter.com/) - -## Prepared and Presented by - -- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/blablas/ep18/index.md b/blablas/ep18/index.md deleted file mode 100644 index 92ddf2d7..00000000 --- a/blablas/ep18/index.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -date: 2019-07-04 -time: 21h -duration: "1:46:29" -title: "GeeksBlabla MSS With Google Engineer Sghiouar Abdelfettah" -tags: ["MSS", "career"] -category: "MSS" -isNext: false -video: "2417671194960209" -youtube: https://www.youtube.com/watch?v=tu29LZacZSA -published: true -url: -audio: ---- - -In this episode of GeeksBlabla MSS, we welcome Sghiouar Abdelfettah: Google Engineer at Google, to talk about his journey in IT field - -## Guests - -[Abdelfettah Sghiouar](https://twitter.com/boredabdel) - -## Notes - -00:00:00 - Welcoming guests and what is MSS? - -00:01:00 - Who is Abdelfettah Sghiouar? - -00:03:00 - Your first contact with IT/Technical field - -00:09:00 - What was your branch in Baccalaureate diploma - -00:12:00 - Why did you choose "ISTA" after your Baccalaureate diploma? - -00:17:00 - Why did you choose to do two diplomas in "ISTA"? one in "IT Development" and the other in "Corporate Microelectronics and Telecommunications" - -00:23:00 - Why did you refuse a technician position in the "The Ministry of Awqaf and Islamic Affairs"? - -00:27:00 - What push you to be engaged in the IT community? - -00:28:00 - When did you decide to start sharing your knowledge? - -00:30:00 - Working life before Google - -00:34:00 - I have a Bac+2/Bac+3 diploma, should I start a career or complete my studies? - -00:36:00 - Did you need your diploma (especially master's degree) at any time in your life? - -00:37:00 - Where did you work before Google? - -00:41:00 - How do you manage to be polyvalent in your job? - -00:46:00 - How was your first contact with Google? - -00:52:00 - What's important in an interview with Google? and how can we apply to the same job? - -00:57:00 - Does Google requires a high level of English? - -00:59:00 - A job at Google, is it something impossible, or it only needs some hard work? - -01:03:00 - Why did you choose a startup (the company before Google) with a low salary and high challenges, against a multinational company with all the benefits that it offers? - -01:08:00 - For a software engineer role, is having a deep knowledge about a programming language is a must? since most companies in morocco focus on knowing a lot of technologies & tools instead of concepts and theoretical stuff. - -01:11:00 - Why joining Google in the USA is harder than joining Google in Europe? - -01:16:00 - Do we need a background in Mathematics in order to learn Algorithms and Data structures? - -01:20:00 - How can I improve my skills to become apt for a job like a software engineer? - -01:25:00 - How do you spend your day as an Engineer at Google - -01:29:00 - What are your objectives? - -01:32:00 - Why did Youtube suddenly release a new policy that bans hacking education videos from being posted on the platform? - -01:33:00 - If you're able to go back to the past, what would you change? - -01:36:00 - Any pieces of advice for people who want to follow the same path? - -01:37:00 - Does robotics exist inside of Google? - -01:39:00 - GoLang VS Rust - -01:40:00 - How is Knative doing in the market? - -01:41:00 - What is Devoxx? - -01:45:00 - Wrap up and goodbye! - -## Links - -[Career At Google](https://careers.google.com/jobs) - -[Glassdoor](https://www.glassdoor.com) - -[Cracking the coding interview Book](http://www.crackingthecodinginterview.com) - -[HashCode Contest by Google](https://codingcompetitions.withgoogle.com/hashcode) - -[LeetCode](https://leetcode.com) - -[MCPC Contest](https://www.facebook.com/MoroccanCPC) - -[Google Blog](https://blog.google) - -## Prepared and Presented by - -[Mohammed Aboullaite](https://www.facebook.com/aboullaite) - -[Soufian El Foukahi](https://twitter.com/soufianelf) diff --git a/blablas/ep180/index.md b/blablas/ep180/index.md deleted file mode 100644 index 873f2a2a..00000000 --- a/blablas/ep180/index.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -date: 2024-05-12 -time: 20h:00min -duration: "1:45:17" -title: "Data engineer 101" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/live/mxV9Bx1ZsZg?si=5QnDE6RCcNOBuW1T -published: true -featured: false ---- - -Data engineering is a critical field in data science that involves preparing the "big data" infrastructure to be analyzed by data scientists. In this episode we are discussing the differences and how important each is with our guests. - -## Guests - -- [Mahmoud Fettal](https://twitter.com/mahmoudfettal) - -- [Salim Jannah](https://www.linkedin.com/in/salim-janah) - -- [Omaima Khalil](https://twitter.com/BadQuinn3) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:02:50 - What is data engineering? - -0:08: 43 - What are the key skills required for a data engineer? - -0:16:40 - How does data engineering differ from data science? - -0:20:00 - Data analyst vs data engineer vs data scientist - -0:22:41 - What are the common tools used in data engineering? - -0:28:57 - What are data pipelines? - -0:34:54 - What challenges do data engineers face? - -0:42:12 - Q&A - -0:53:42 - How important is real -time data processing in data engineering? - -1:02:35 - What is a data lake, and how does it differ from a data warehouse? - -1:12:52 - How do data engineers use machine learning? - -1:18:01 - Types of projects really involved with Data engineering - -1:32:17 - What future trends should data engineers be aware of? - -1:41:00 - Geeksblabla Picks - -2:18:30 - Conclusion and Goodbye - - -## Links - -- [Apache Airflow vs Mage.ai](https://www.cidrdb.org/cidr2021/papers/cidr2021_paper17.pdf) - -- [Lakehouse paper](https://medium.com/odicis-data-engineering/apache-airflow-vs-mage-ai-in-data-engineering-745c040a05e8) - -- [Open Source Agent for Data Analysis](https://pandas-ai.com/) - -- [Simplifying Data Engineering and Analytics with Delta](https://www.packtpub.com/product/simplifying-data-engineering-and-analytics-with-delta/9781801814867) - - -## Prepared and Presented by - - - [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/blablas/ep181/index.md b/blablas/ep181/index.md deleted file mode 100644 index cc5ac0d5..00000000 --- a/blablas/ep181/index.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -date: 2024-06-02 -time: 20h:00min -duration: "1:17:05" -title: "Tech News & AMA #31" -tags: ["ama"] -category: "ama" -isNext: false -youtube: https://www.youtube.com/watch?v=R19JBanjhnQ -published: true -featured: false ---- - -In this Episode , weโ€™re going over the news that was impactful during the previous month. - -## Guests - -- [Jihane majdoul](https://twitter.com/jihanemajdoul) - -- [Ilias Haddad](https://iliashaddad.com/) - -- [Oumayma Essarhi](https://www.linkedin.com/in/oumayma-essarhi/) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:57 - 5 minutes max , each one of us talks about something he/she learned this month and wants to share it with the community. - -0:10:23 - Oumaymaโ€™s Experience with first big talk in JS Meetup. - -0:14:52 - Jihaneโ€™s experience with the talk at Jedida GDG - -0:18:17 - Iliasโ€™s experience with the podcast. - -0:26:09 - Google IO and Open AI spring Update (GPT-4o) - -0:37:39 - New AI Gadgets like Humane and Rabbit R1 - -0:42:08 - How does your Environment look (Underrated gadgets, tools, โ€ฆ) - -0:49:06 - Cloud Providers entering Morocco - -0:54:14 - Neuralink second trial - -0:58:25 - leaked Google search engine algorithm - -1:04:42 - Q&A - -1:17:00 - Conclusion and Goodbye - - -## Links - -- [Google confirms the leaked Search documents are real](https://www.theverge.com/2024/5/29/24167407/google-search-algorithm-documents-leak-confirmation) - -- [Lunch & Learn: Let's Build An AI Assistant With GPT-4o (w/ Joe & Winston of @Posit)](https://www.youtube.com/live/OLTgI6DAQ_A) - -- [Yalla Let's Code](https://www.yallaletscode.com/) - -- [AtlasIA](https://huggingface.co/atlasia) - -- [Think AI Morocco](https://thinkai.ma/) - -- [The Forage](https://www.theforage.com/signup) - -- [Internship To Enrich Your Career And Mind](https://letsgrowmore.in/vip/) - -## Prepared and Presented by - - - [Mohammed Daoudi](https://twitter.com/MIduoad) diff --git a/blablas/ep182/index.md b/blablas/ep182/index.md deleted file mode 100644 index 8a11c85c..00000000 --- a/blablas/ep182/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -date: 2024-06-09 -time: 20h:00min -duration: "2:03:14" -title: "Kubernetes ุนุดุฑ ุณู†ูˆุงุช ู…ุน" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=eI1r6hS8gF0 -published: true -featured: false ---- - -In this Episode , we celebrate 10 years of Kubernetes, its beginning and the transition frol open source to a full solution to manage containers. All with our speacial guests, who will share their expertise and achievements working with the solution. - -## Guests - -- [Mohammed Aboullaite](http://aboullaite.me/) - -- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) - -- [Amine Rachyd](https://x.com/RachydAmine) - -- [Abderrahim Soubai Idrissi](https://www.soubai.me/) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:39 - What is Kubernetes ? - -0:08:09 - How long have you been working with Kubernetes ? How was your personal experience? - -0:23:56 - How do use Kubernetes at your daily job/projects? - -0:38:03 - Do you use any plugins in your daily work with Kubernetes ? - -0:44:31 - Tips for managing clusters - -0:48:59 - Best practices of using & working with Kubernetes - -1:01:26 - Usage of cluster API in the industry today - -1:09:06 - Q&A - -1:22:29 - Book recommandation to quick start with Kubernetes - -1:28:18 - Kubernetes ingress / API - -1:32:35 - Did kubernetes made it easy for the CN apps to use ? - -1:39:04 - Does K8 has an added value for people who want to make their own solutions - -1:50:02 - The future of Kubernetes - -2:03:10 - Conclusion and Goodbye - - -## Links - -- [Kubernetes Partners](https://kubernetes.io/partners/#iframe-landscape-kcsp) - -- [Krew plugin manager](https://krew.sigs.k8s.io/) - -- [Yzsh-kubectl-prompt](https://github.com/superbrothers/zsh-kubectl-prompt) - -- [Starship cross-shell prompt](https://starship.rs/) - -- [History of containerd, with Phil Estes](https://kubernetespodcast.com/episode/208-containerd/) - -- [Kubernetes the hard way](https://github.com/kelseyhightower/kubernetes-the-hard-way) - -- [Kubernetes Cluster API](https://cluster-api.sigs.k8s.io/) - -- [KKubernetes: Up and Running: Dive into the Future of Infrastructure](https://books.google.co.ma/books?id=-5izDwAAQBAJ&printsec=copyright&redir_esc=y#v=onepage&q&f=false) - -- [Kubernetes for Developers](https://www.manning.com/books/kubernetes-for-developers) - -- [CNCF Landscape](https://landscape.cncf.io/) - -## Prepared and Presented by - -- [Abdelati El ASRI](https://twitter.com/kaizendae) diff --git a/blablas/ep183/index.md b/blablas/ep183/index.md deleted file mode 100644 index 3ae02c06..00000000 --- a/blablas/ep183/index.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -date: 2024-06-23 -time: 20h:00min -duration: "1:28:14" -title: "State of AI" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=3a_spEXK02o&t=162s -published: true -featured: false ---- - -Special episode about AI and the latests announcements made by Apple, Microsoft and Google. We discuss the news and answer your questions with our guests. - -## Guests - -- [Sara El-Ateif](https://www.linkedin.com/in/sara-el-ateif) - -- [Taha Bouhsine](https://www.linkedin.com/in/tahabsn) - - - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:39 - Microsoft vs Google vs Apple announcements - -0:24:37 - Google I/O updates - -0:30:32 - Microsoft updates, and privacy concerns - -0:39:50 - Practical AI use case from Apple - -0:50:40 - OpenAI / Chatgpt-4o - -0:55:20 - Chatgpt-4o / Claude - -1:19:51 - Current state of small models that run locally - -1:25:06 - Q&A - -1:28:10 - Conclusion and Goodbye - - -## Links - -- [Search Generative AI of Google](https://blog.google/products/search/generative-ai-search/) - -- [Copilot Workspace](https://github.blog/2024-04-29-github-copilot-workspace/) - -- [Full details and model benchmarks](https://machinelearning.apple.com/research/introducing-apple-foundation-models) - -- [Architecture of Apple Intelligence](https://interconnected.org/more/2024/06/Apple-Intelligence-architecture.jpg) - -- [in-depth explanation about AI intelligence](https://www.youtube.com/watch?v=cOyoy-pslqE) - -- [Gemini Flash](https://deepmind.google/technologies/gemini/flash/) - -- [Transformers Optimization: Part 1 - KV Cache](https://r4j4n.github.io/blogs/posts/kv/) - - -## Prepared and Presented by - -- [Meriem zaid](https://twitter.com/iMeriem_) diff --git a/blablas/ep184/index.md b/blablas/ep184/index.md deleted file mode 100644 index 66918c73..00000000 --- a/blablas/ep184/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -date: 2024-06-30 -time: 20h:00min -duration: "2:06:08" -title: "Why aren't people ready to buy digital information?" -tags: ["career"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=cFo1Djq_zOg&ab_ -published: true -featured: false ---- - -In this episode we adress the concern of information economy or "why people don't buy digital informations" from different point of views ad based on our guests experience. - -## Guests - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -- [Zak Elfassi](https://twitter.com/zakelfassi) - -- [Mohammed Aboullaite](https://aboullaite.me) - -- [Ayoub Alouane](https://twitter.com/alouane_med) - - - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:39 - Definition of "information economy" in the context of Morocco? - -0:17:02 - How has morocco's digital landscape evolved in recent years - -0:37:08 - Comparison to neighboring countries - -0:47:31 - How educational system prepare students for the information economy - -1:02:40 - Working on infrastructure and mindset / Behavior - -1:19:16 - What initiatives could boost digital information consumption - -1:24:48 - Q&A / Giveaway - -2:06:05 - Conclusion and Goodbye - - -## Links - - - -## Prepared and Presented by - -- [Meriem zaid](https://twitter.com/iMeriem_) diff --git a/blablas/ep185/index.md b/blablas/ep185/index.md deleted file mode 100644 index 4279cde3..00000000 --- a/blablas/ep185/index.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -date: 2024-07-07 -time: 20h:00min -duration: "2:16:19" -title: "AMA & Tech News #32" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=QZhKeIXcsKA -published: true -featured: false ---- - -In this episode, we discuss What's new in the AI , Windows and Nvidia - -## Guests - -- [Abderrahim Soubai Idriss](https://x.com/soub4i) -- [Merouane Zouaid](https://x.com/merouanezouaid) -- [Marwane Chaoui](https://x.com/moghwan) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:30 - What did we learn in the last month - -0:20:00 - Bouyaad App Showcase - -0:26:00 - Buildspace Showacase - -0:34:30 - Tech News - Apple Intelligence - -1:01:30 - Tech News - Nvidia's soaring to all time highs - -1:20:30 - Tech News - Windows on ARM - -1:30:00 - Q/A - -1:43:00 - Conclusion - -## Links - -- [Bouyad App](โ€‹โ€‹https://web.bouayad.app/) - -- [Bouyad App - Repo](https://github.com/moghwan/web.bouayad.app) - -- [Buildspace](https://buildspace.so/) - -- [Stocks for the Long Run](https://www.amazon.com/Stocks-Long-Run-Definitive-Investment/dp/0071800514) - - -## Prepared and Presented by - -- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/blablas/ep186/index.md b/blablas/ep186/index.md deleted file mode 100644 index 4daccbee..00000000 --- a/blablas/ep186/index.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -date: 2024-07-14 -time: 20h:00min -duration: "1:45:22" -title: "The Journey of Continuous Learning in Tech" -tags: ["career"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=Wp_8hDXaZB4&ab -published: true -featured: false ---- - -In this episode, we will have a roundtable discussion to benefit from the guests' experience in the field of IT training and how we can continue learning and keep up with new developments in the world of technology. - -## Guests - -- [Djalal](https://twitter.com/enlamp) -- [Karim Benzidane](https://www.linkedin.com/in/benzidanekarim) -- [Adil TOUATI](https://www.linkedin.com/in/adiltouati/) -- [Abdelmajid ANEDDAME](https://www.linkedin.com/in/abdelmajidaneddame) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:08:47 - What is the definition of training in the context of the tech industry? - -0:17:21 - How do tech trainings differ from traditional education? - -0:41:15 - When should a professional consider enrolling in tech training , are there signs ? - -0:49:56 - What are some best practices to follow during tech training sessions and to make the most out of a training Program ? - -1:05:16 - What are some common mistakes people make during tech training? - -1:19:30 - Can you share a personal experience where tech training significantly impacted your career? - -1:28:56 - Q/A - -1:45:00 - Conclusion - -## Links - - -## Prepared and Presented by - -- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/blablas/ep187/index.md b/blablas/ep187/index.md deleted file mode 100644 index 0f0e3727..00000000 --- a/blablas/ep187/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -date: 2024-07-21 -time: 20h:00min -duration: "2:27:01" -title: "Back to basics ูˆุงุด ุงู„ุงุณุงุณูŠุงุช ู…ุงุฒุงู„ ุถุฑูˆุฑูŠุฉ ๐Ÿค”ุŸ" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/live/k9jMvSybyYY?si=CvmioZTh7UiuqxH2 -published: true -featured: false ---- - -In this episode, we will discuss the fundamental skills every developer needs to master. These essentials will help you become a stronger and more proficient developer. - -## Guests - - -- [Marouane Gazanayi](https://www.linkedin.com/in/marouanegazanayi/) -- [Abdelziz eroui](https://www.linkedin.com/in/aeroui/) -- [Slimane Akalie](https://www.linkedin.com/in/slimaneakalie/) -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - - - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:52 - What are the fundamental skills every software engineer needs to master? - -0:29:05 - How deeply should I delve into the fundamentals? - -0:50:30 - The fundamentals that a back-end developer needs? - -1:25:00 - How can I effectively manage the difficulty of learning the fundamentals? - -2:03:30 - is the main purpose of school to teach findamentls? - -2:16:25 - picks of guests. - -## Links - - -## Prepared and Presented by - -- [Adnan MERRAKCHI](https://twitter.com/_admerra) diff --git a/blablas/ep188/index.md b/blablas/ep188/index.md deleted file mode 100644 index 0283dbd2..00000000 --- a/blablas/ep188/index.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -date: 2024-07-28 -time: 20h:00min -duration: "1:33:36" -title: "Why it is important to test? Crowdstrike meltdown" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/live/JT0k1sYv7-c?si=BxN8n3wN6TpaswFT -published: true -featured: false ---- - -In this episode, we discussed the famous issue between CrowdStrike and Microsoft, and we also highlighted the importance of testing. - -## Guests - - -- [Abdelfattah Sghiouar](https://twitter.com/boredabdel) - -- [Abderahman Instagram ](https://www.instagram.com/abdulbenbrahim/) - -- [Hammadi Agharass](https://twitter.com/hagharass) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:30 - We all witnessed the problem of Microsoft and CrowdStrike. What happened exactly? - -0:16:25 - Do you think this problem will make people lose trust in systems in general? - -0:26:40 - explainning some concepts like kerenel, vm, etc? - -0:32:05 - Is it good to use more than one OS to avoid a single point of failure issue? - -0:39:15 - After what happened, do you think in the coming days we will see a new solution for testing to avoid this problem? - -0:46:05 - Could we use AI to test these solutions? - -0:51:05 - Is this the first time we've had something similar? - -1:02:15 - After what happened, do you thing business and finance departments will give more importance to IT? - -1:18:16 - What did we learn from what happened? - - - - -## Links - - -## Prepared and Presented by - -- [Mourad Mtouaa](https://twitter.com/mouradxmt) diff --git a/blablas/ep189/index.md b/blablas/ep189/index.md deleted file mode 100644 index 5e94a9a9..00000000 --- a/blablas/ep189/index.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -date: 2024-09-01 -time: 20h:00min -duration: "2:29:25" -title: "A gentle introduction to LLMs." -tags: ["AI"] -category: "AI" -isNext: false -youtube: https://www.youtube.com/watch?v=0Bg83WRvtO8&ab_channel=GeeksBlaBla -published: true -featured: false ---- - -In this episode, we discussed the technology of Large Language Models (LLMs) and its and significant development in recent years, we discuss what these models are and how they work with our experts. - -## Guests - -- [Faissal Boutaounte](https://twitter.com/bfaissal) - -- [Oumayma Essarhi](https://www.linkedin.com/in/oumayma-essarhi/) - -- [Taha Bouhsine](https://twitter.com/Tahabsn) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:07:55 - expalin what is LLMS. - -0:18:00 - short presentation by taha about NLP and LLMs concepts. - -0:34:20 - Faissal talks about attention. - -0:45:00 - how LLMs keeps the context. - -1:31:00 - what is prompt engineering ? why is it important for LLMs ? - -1:34:00 - how we can deploy a LLMs ? - -1:41:00 - what is steps to integrate LLM in your app ? - - - - - - - -## Links - - -## Prepared and Presented by - -- [Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/blablas/ep19/index.md b/blablas/ep19/index.md deleted file mode 100644 index 05dd9a0f..00000000 --- a/blablas/ep19/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -date: 2019-07-31 -time: 21h -duration: "1:28:48" -title: "Competitive programming, how to become good at!" -tags: ["competitive programming"] -category: "dev" -isNext: false -video: "2465296773530984" -youtube: https://www.youtube.com/watch?v=jU12lUQMfSQ -published: true -url: -audio: ---- - -In this episode of GeeksBlabla, Geeksblabla team with the amazing Diaa and Adnan talk about what is Competitive Programing, How to become good at and why you need to be a part of the next competition. - -## Notes - -00:00:00 - Introduction: Welcoming and presenting guests. - -00:05:00 - What is Competitive programming and why it's important? - -00:16:00 - Types of Competitive programming. - -00:24:00 - who can participate and How? - -00:40:00 - History behind Competitive programming. - -00:50:00 - Competitive programming in Morocco: best scores - -01:01:00 - How we can improve our scores - -01:10:00 - Q/A - -## Link - -[MCPC chair](https://www.youtube.com/watch?v=aPOJ0w9Cc0w) - -[ACPC](https://www.youtube.com/watch?v=NyI2nYOPjiU&t=4s) - -[MCPC](https://www.youtube.com/watch?v=aPOJ0w9Cc0w) - -[Competitive Programing Book](https://cpbook.net/) - -[SolverToBe](https://www.youtube.com/channel/UC2xOPGjIhLKsgUZEiunlzWQ) - -[Arabic Competitive Programming](https://www.youtube.com/user/nobody123497) diff --git a/blablas/ep190/index.md b/blablas/ep190/index.md deleted file mode 100644 index a70dfd4a..00000000 --- a/blablas/ep190/index.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -date: 2024-09-15 -time: 20h:00min -duration: "2:04:55" -title: "Prompt Engineering" -tags: ["AI"] -category: "AI" -isNext: false -youtube: https://www.youtube.com/watch?v=2UGde_wf4ZM -published: true -featured: false ---- - -In this episode, we discuss what Prompt Engineering is and how it influences the outputs of AI systems. We'll also explore real-world use cases, some best practices for crafting effective prompts, and answer live questions from the audience. - -## Guests - -- [Sara El-Ateif](https://x.com/el_ateifSara) - -- [Houda Mouttalib](https://www.linkedin.com/in/houdam/) - -- [Oumayma Essarhi](https://twitter.com/oumayma_es_) - -- [Soufiane Lamchoudi](https://www.linkedin.com/in/soufiane-lamchoudi/) - -- [Taha Elghabi](https://www.linkedin.com/in/taha-elghabi/) - -## Notes - -00:00:00 - Introduction and welcoming - -00:02:45 - Guests Introduction - -00:05:48 - What is it? Why is it important in AI/ML? Can anyone do it? - -00:12:00 - Brief history or evolution of Prompt Engineering - -00:18:56 - The basics you need to learn Prompt Engineering - -00:32:21 - Learning Prompt Engineering in Morocco from a Higher education standpoint - -00:36:35 - Key principles to achieve well-crafted Prompts - -00:51:36 - Why developers still refuse to use AI? - -00:55:56 - Real-World Applications and Use Cases of Prompt Engineering - -01:07:01 - Examples of failed Prompt Engineering to avoid in the future - -01:13:24 - Definition of Hallucinations and why do they happen? - -01:25:17 - Q&A Section - -02:00:22 - Conclusion and goodbye - -## Links - -- [Professor Mohamed Youssfi's Youtube Channel](https://www.youtube.com/@mohamedYoussfi) - -## Prepared and Presented by - -- [Chaimaa BRITEL](https://www.linkedin.com/in/chaimaa-britel-a509b116b/) - -- [Meriem Zaid](https://www.linkedin.com/in/meriem-zaid-652852187/) diff --git a/blablas/ep192/index.md b/blablas/ep192/index.md deleted file mode 100644 index 1e183125..00000000 --- a/blablas/ep192/index.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -date: 2024-09-29 -time: 20h:00min -duration: "1:27:53" -title: "Vector Databases" -tags: ["AI"] -category: "AI" -isNext: false -youtube: https://www.youtube.com/watch?v=7LNKYIIO-0M -published: true -featured: false ---- - -In this episode, we will explore Vector databases, a cutting-edge technology revolutionizing data storage and retrieval. We'll examine how these systems efficiently handle high-dimensional data, enabling advanced search capabilities and powering modern AI applications across various industries. - -## Guests - -- [Oumayma Essarhi](https://twitter.com/oumayma_es_) -- [Taha Bouhsine](https://twitter.com/Tahabsn) -- [Merouane Zouaid](https://x.com/merouanezouaid) - - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:47 - What is a Vector database? - -0:13:47 - Why using a Vector Database, and what are the differences with classic Databases? - -0:19:15 - Techniques used to speed search with Vector Databases - -0:31:58 - Vector databases and AI - -0:46:30 - Dealing with "curse of dimensionality" in Vector Databases - -0:55:02 - Privacy concerns while using Vector databases - -1:03:56 - Scalability of Vector Databases - -1:12:54 - Q&A and Giveaay - -1:27:00 - Conclusion - -## Links - -- [Extracting Training Data from Large Language Models](https://arxiv.org/pdf/2012.07805) -- [30 days of ML](https://30daysofml.framer.ai/) -- [Strategy of pickinga Vector database](https://www.reddit.com/r/LangChain/comments/170jigz/my_strategy_for_picking_a_vector_database_a/ ) -- [PGrounding AI in reality with a little help from Data Commons](https://research.google/blog/grounding-ai-in-reality-with-a-little-help-from-data-commons/?linkId=10989162) -- [DataGemma](https://ai.google.dev/gemma/docs/datagemma) -- [Masked Image Modeling with Vector-Quantized Visual Tokenizers](https://arxiv.org/pdf/2208.06366) -- [An Any-to-Any Vision Model for Tens of Tasks and Modalities](https://arxiv.org/abs/2406.09406) - - - -## Prepared and Presented by - -- [Meriem Zaid](https://www.linkedin.com/in/meriem-zaid-652852187/) diff --git a/blablas/ep193/index.md b/blablas/ep193/index.md index 210f3357..c10f2ea2 100644 --- a/blablas/ep193/index.md +++ b/blablas/ep193/index.md @@ -3,7 +3,7 @@ date: 2024-10-13 time: 20h:00min duration: "2:45:14" title: "Digital Morocco 2030" -tags: ["Morocco","Digital"] +tags: ["Morocco", "Digital"] category: "Career" isNext: false youtube: https://www.youtube.com/watch?v=XhF8cDBdtmM @@ -20,7 +20,6 @@ In this episode, we discuss the Digital Morocco 2030 strategy, its key component - [Maryem Nairi](https://www.linkedin.com/in/nairi-meryem/) - [Ali Khyatti](https://www.linkedin.com/in/khyatti-ali/) - ## Notes 0:00:00 - Introduction and Welcome @@ -53,8 +52,6 @@ In this episode, we discuss the Digital Morocco 2030 strategy, its key component - [Morocco AI recommendations](https://morocco.ai/wp-content/uploads/2020/03/MoroccoAI-Recommendations-Towards-a-National-AI-Strategy-For-Morocco.pdf) - [Tech education in Morocco](https://www.youtube.com/watch?v=3r7lXiS5Mqc&t=0s) - - ## Prepared and Presented by - [Youssouf EL Azizi](https://elazizi.com) diff --git a/blablas/ep195/index.md b/blablas/ep195/index.md index 2429b549..9e045ed5 100644 --- a/blablas/ep195/index.md +++ b/blablas/ep195/index.md @@ -35,11 +35,11 @@ In this monthly AMA episode, we discuss our guests' latest stories and learning 01:47:40 - New React Native version with the new architecture enabled by default -01:58:40 - Hacktoberfest +01:58:40 - Hacktoberfest 02:05:40 - QAs from comments -02:27:00 - Conclusion and warp up +02:27:00 - Conclusion and warp up ## Links diff --git a/blablas/ep196/index.md b/blablas/ep196/index.md index 4be2ac59..7ed33da0 100644 --- a/blablas/ep196/index.md +++ b/blablas/ep196/index.md @@ -24,7 +24,7 @@ This episode focuses on the modern obsession with productivity and its associate 00:10:10 - Personal Experiences and The problem of self-indentification -00:25:45 - Adnane on Work life balance and Discipline +00:25:45 - Adnane on Work life balance and Discipline 00:28:39 - Office vs Remote and effortlessness vs Will-power @@ -54,8 +54,6 @@ This episode focuses on the modern obsession with productivity and its associate ## Links - - ## Prepared and Presented by - [Abdelati](https://twitter.com/kaizendae) diff --git a/blablas/ep198/index.md b/blablas/ep198/index.md index e4b1cc0c..6b381521 100644 --- a/blablas/ep198/index.md +++ b/blablas/ep198/index.md @@ -21,7 +21,7 @@ This episode discusses how we forget what's important amid tech hype. We see AI 00:00:00 - Intro and welcoming guests -00:02:26 - How would you define "AI for Good" and why is it important today? Can you share your journey or experience with AI and social good projects? +00:02:26 - How would you define "AI for Good" and why is it important today? Can you share your journey or experience with AI and social good projects? 00:15:02 - What are some notable examples of AI addressing global challenges, such as healthcare, climate change, or education, and have you worked on any projects where AI made a tangible positive impact? diff --git a/blablas/ep199/index.md b/blablas/ep199/index.md index dc878f71..028174cb 100644 --- a/blablas/ep199/index.md +++ b/blablas/ep199/index.md @@ -29,15 +29,15 @@ In this Episode , weโ€™re going over the news that was impactful during the prev 00:19:08 - The benefits of the new regulations in other domains -01:01:08 - ALTS expansion to other cities and next sessions kickoff +01:01:08 - ALTS expansion to other cities and next sessions kickoff 01:05:51 - ChatGpt takes in google search , with a twist -01:24:26 - GitHub universe and latest releases +01:24:26 - GitHub universe and latest releases 01:30:34 - FBI encourages Critical Software Must Drop C/C++ by 2026 -01:57:27 - Giveaway & wrap Up +01:57:27 - Giveaway & wrap Up ## Links diff --git a/blablas/ep2/index.md b/blablas/ep2/index.md deleted file mode 100644 index 4988df50..00000000 --- a/blablas/ep2/index.md +++ /dev/null @@ -1,117 +0,0 @@ ---- -date: 2019-03-28 -time: 20h -duration: "1:48:05" -title: "Open Source with Yassine Elouafi" -tags: ["open source", "dev", "react", "web", "frontend"] -category: "dev" -isNext: false -video: "2254365704624093" -youtube: https://www.youtube.com/watch?v=i75VSwgRD1k -published: true -audio: https://d3ctxlq1ktw2nl.cloudfront.net/production/2019-11-8/37064067-48000-2-7061c427555f3.m4a ---- - -In this episode of GeeksBlabla, We discuss with Yassin El ouafi, creator of redux-sagas library about his success story working as an open source contributors and maintainer of one of the biggest library on React ecosystem. - -## Guests - -[Yassin El ouafi](https://twitter.com/yassineelouafi2/) - -## Notes - -00:00:00 Introduction and welcoming guests - -00:02:00 How he started programming ? - -00:08:00 How he started his open-source projects ? - -00:13:00 How to grow and progress in software programming ? - -00:18:00 follow the trends in programming. - -00:24:00 What are your favorites patterns and paradigms? - -00:37:00 Functional programming. - -00:42:00 How do you find time for the opensource ? - -00:44:00 Books or tutorials ? - -00:48:00 What is the "Thought leaders". - -00:52:00 Why should i work in the open source. - -00:56:00 Pieces of Advice for a junior developer to start the open-source. - -01:01:00 How did you start the Redux-saga? - -01:10:00 What is the difference between Redux-saga and CQRS ? - -01:15:00 Talk about Hooks, Pure components and React fiber. - -01:32:00 Future projects in the open-source ? - -01:35:00 Open-source in morocco & Pieces of Advice for Moroccan programmers. - -## Links : - -[W3C](https://www.w3.org/) - -[SCSS](https://sass-lang.com/) - -[Purifycss](https://purifycss.online/) - -[Autoprefixer](https://autoprefixer.github.io/) - -[Can I use](https://caniuse.com/) - -[Reactjs](https://reactjs.org/) - -[Angular](https://angular.io/) - -[VueJs](https://vuejs.org/) - -[GraphQl](https://graphql.org/) - -[PWA](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps) - -[Service Worker](https://developers.google.com/web/ilt/pwa/introduction-to-service-worker) - -[WebAssembly](https://webassembly.org/) - -## Links : - -[W3C](https://www.w3.org/) - -[SCSS](https://sass-lang.com/) - -[Purifycss](https://purifycss.online/) - -[Autoprefixer](https://autoprefixer.github.io/) - -[Can I use](https://caniuse.com/) - -[Reactjs](https://reactjs.org/) - -[Angular](https://angular.io/) - -[VueJs](https://vuejs.org/) - -[GraphQl](https://graphql.org/) - -[PWA](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps) - -[Service Worker](https://developers.google.com/web/ilt/pwa/introduction-to-service-worker) - -[WebAssembly](https://webassembly.org/) - -## Prepared and Presented by : - -[Youssouf El Azizi](https://twitter.com/elaziziyoussouf/) - -[Soufian El Foukahi](https://twitter.com/soufianelf/) - -[Amine Hakkou](https://twitter.com/amine_hakkou/) - -... diff --git a/blablas/ep20/index.md b/blablas/ep20/index.md deleted file mode 100644 index 73f15309..00000000 --- a/blablas/ep20/index.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -date: 2019-08-22 -time: 21h -duration: "1:13:57" -title: "Freelancing in Morocco" -tags: ["freelance", "career"] -category: "career" -isNext: false -featured: true -video: "2458974807668203" -youtube: https://www.youtube.com/watch?v=YALS9h3VBSU -published: true -url: -audio: ---- - -In this episode of GeeksBlabla, Geeksblabla team with the amazing Ahmed and Moukhliss talk about Freelance in Morocco, How to get a freelance job, and deal with the client professionally, also how to count the time/money of the project? and much more. - -## Notes - -0:00:00 - Introduction and guests intro - -0:06:00 - What are the different kinds of freelancing? - -0:09:00 - How can you find your first freelancing client? - -0:12:00 - How to deal with the contract and paperwork when finding a Client? - -0:20:00 - How to professionally deal with clients? - -0:26:00 - What pay interval can Moroccan freelancers expect? - -0:27:00 - How Freelancers can manage savings for retirement and insurance etc? - -0:33:00 - How to determine the project's scope and effectively estimate cost and time? - -0:38:00 - How to ensure that the client will pay and how to deal with them when they refuse to pay? - -0:46:00 - How can you scale and boost your career as a freelancer? - -0:53:00 - Can I be employed and still work as a freelancer? - -0:55:00 - What's the perfect time to make the switch and become a freelancer? - -0:58:00 - What advice can you give to beginners to land their first gig? - -0:59:00 - Is part-time freelancing possible with Moroccan clients? - -1:00:00 - Are there teams that work on big freelancing projects? - -1:01:00 - Is it better to work with one client for a long period of time or multiple clients for shorter periods of time? - -1:02:00 - What are the required skills to start a freelancing business as a software architect? - -1:06:00 - What is the difference between working as an "Autoentrepreneur" or open a web development agency? - -1:07:00 - What's the difference between Moroccan and international freelance opportunities? - -1:09:00 - Learn to always educate and depend on yourself! - -1:10:00 - Outro and wrap up. - -## Links - -[Freelancer](https://www.freelancer.com/) - -[Upwork](https://www.upwork.com/) - -## Prepared and Presented by: - -[Soufian El Foukahi](https://twitter.com/soufianelf/) - -[Mohammed Abboulait](https://twitter.com/laytoun) diff --git a/blablas/ep21/index.md b/blablas/ep21/index.md deleted file mode 100644 index f3c4336e..00000000 --- a/blablas/ep21/index.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -date: 2019-09-29 -time: 21h -duration: "1:33:11" -title: "Back to school, Computer Science Edition!" -tags: ["school", "career"] -category: "career" -isNext: false -video: "2573269702733690" -youtube: https://www.youtube.com/watch?v=8UKh2ZQQg3o -published: true -url: -audio: ---- - -In this episode of GeeksBlabla, Geeksblabla team give some tips for succeeding in computer science studies. - -## Guests - -- [Mohammed Aboullaite](http://aboullaite.me/) - -- [Youssouf EL Azizi](https://elazizi.com/) - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Oumaima Makhlouk](https://www.facebook.com/oumi.makhlouk) - -- [Oussama Hyad](https://www.facebook.com/heoussama.oussama) - -## Notes - -00:00:00 - Introduction: Welcoming and presenting guests. - -00:08:00 - First year of school experience and some tips. - -00:28:00 - Tips to deal with upcoming years of school and The importance of self-learning. - -00:36:00 - The importance of school degrees in the development field? - -00:38:00 - Freelancing while studying. - -00:40:00 - The importance of extracurricular activities in academic and professional careers. - -00:50:00 - Are exams scores quite important for your professional careers? - -00:58:00 - How to find a good end-of-school project (PFE) and prepare for the professional world ? - -01:11:00 - End-of-school project (PFE) in a multinational company Vs Startup. - -01:19:00 - How to prepare for a good project presentation ? - -01:26:00 - How to choose a good internship topic ? - -01:32:00 - Wrap up and goodbye! - -## Links - -[Openclassrooms](https://openclassrooms.com) - -[Developpez.net-forums](https://www.developpez.net/forums/) - -[Elon Musk's Ultimate Advice for Students & College Grads](https://www.youtube.com/watch?v=iuNJLtj10Lg) - -[DevC Casablanca group](https://www.facebook.com/groups/DevC.Casablanca/) - -[DevC Rabat group](https://www.facebook.com/groups/DevCRabat/) - -[DevC Marrakech group](https://www.facebook.com/groups/DevC.Marrakech/) - -## Prepared and Presented by : - -[Soufian El Foukahi](https://twitter.com/soufianelf/) diff --git a/blablas/ep22/index.md b/blablas/ep22/index.md deleted file mode 100644 index 2a39cf5f..00000000 --- a/blablas/ep22/index.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -date: 2019-10-27 -time: 21h -duration: "2:07:16" -title: "Junior Devs in Morocco" -tags: ["school", "career", "dev"] -category: "career" -isNext: false -video: "2632636916796968" -youtube: https://www.youtube.com/watch?v=yCR-gU5io9s -published: true -url: -audio: https://d3ctxlq1ktw2nl.cloudfront.net/production/2019-11-8/37064067-48000-2-7061c427555f3.m4a ---- - -In this episode of GeeksBlabla, Geeksblabla team give some tips for succeeding as Junior Devs in Morocco. - -## Guests - -[Abderrahim Soubai Elidrissi](https://www.facebook.com/zizwar0nline) - -[Meriem Zaid](https://www.facebook.com/MeriemZaid) - -[Mohammed Aboullaite](https://www.facebook.com/aboullaite) - -[Zakaria Braksa](https://www.facebook.com/profile.php?id=100004033238021) - -## Notes - -00:00:00 - Introduction: Welcoming, guests' presentation and last episode recap. - -00:04:00 - Which tech stack to should for a junior developer. and why ? - -00:11:00 - How and where to look for my first job opportunity. - -00:12:00 - How did each of the guests got his/her first job ? - -00:18:00 - How to distinguish between a good and a bad job offer ? - -00:21:00 - Startup vs Corporation jobs ? - -00:30:00 - What are the most common CV mistakes ? - -00:34:00 - Working on side projects (startup project) in parallel of a day job ? - -00:36:00 - When applying to the first job, should you focus on a specific stack or apply to all kinds of job offers. - -00:40:00 - Data science vs Devops career ? - -00:44:00 - what are the mistakes that junior developers should avoid in their careers ? - -00:47:00 - How can developers develop and boost their careers ? - -00:50:00 - Is network engineering a good career start, for someone who comes from a programming background ? - -00:53:00 - Why are there a lot of requirements in Junior developer job offers ? - -00:56:00 - How can fresh graduates overcome fill gap between what they've learnt at school and what is there in the professional world? - -01:01:00 - Can someone without a degree easily find his place the professional world ? and how ? - -01:05:00 - How to crack job interviews ? - -01:07:00 - Salary expectations for a junior developer. - -01:11:00 - Soft skills and hard skills required for a junior developer. - -01:17:00 - How to keep up with new technologies while working on legacy code (obsolete technologies)? - -01:20:00 - What are the required skills to be a good team player? - -01:21:00 - Transition from Junior to Senior developer. - -01:28:00 - When to change jobs or ask for a salary raise ? - -01:34:00 - Is Freelancing recommended for junior developers ? - -01:38:00 - How to determine whether a junior developer will learn fast or not ? - -01:43:00 - Is it bad to have internship in the same company for more than 2 times ? - -01:44:00 - Examples and types of freelance opportunities. - -01:45:00 - Are internships in companies considered an experience? - -01:46:00 - Most in-demand technologies in the Moroccan market and abroad ? - -01:48:00 - Biggest mistakes, guests have made during their junior times. - -01:52:00 - Devops status in the Moroccan market for juniors. - -01:54:00 - Developers world wide compared to Moroccan developers. - -01:58:00 - PFE internships in United Remote. - -02:02:00 - USA vs Canada vs Europe. - -02:03:00 - Data Maroc initiative. - -02:06:00 - Wrap up and good bye ! - -## Link - -[Rekrute Salary Simulator](https://www.rekrute.com/salaire-simulateur-maroc.html) diff --git a/blablas/ep23/index.md b/blablas/ep23/index.md deleted file mode 100644 index da45c392..00000000 --- a/blablas/ep23/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -date: 2019-11-24 -time: 21h16 -duration: "1:59:00" -title: "Women In Tech" -tags: ["women", "career"] -category: "career" -isNext: false -featured: true -video: "2693122377415088" -youtube: https://www.youtube.com/watch?v=fSH4oI6mDnQ -published: true -url: -audio: https://d3ctxlq1ktw2nl.cloudfront.net/production/2019-11-8/37064067-48000-2-7061c427555f3.m4a ---- - -In this episode of GeeksBlabla, our guests discuss how we can empower women in moroccan Tech industry. - -## Guests - -[Oumaima Makhlouk](https://www.facebook.com/oumi.makhlouk/) - -[Khaoula Tanfioui](https://www.linkedin.com/in/khaoula-tanfioui-9b15a310a/) - -[Maroua Ezouhri](https://www.linkedin.com/in/maroua-ezouhri-381174a7/) - -## Notes - -00:00:00 - Introduction - -00:02:00 - Introduce guests - -00:05:00 - How was your first step on the tech? - -00:14:00 - Was your family against your choice of IT field? - -00:20:00 - What is the reason that kept you continue in the IT field? - -00:24:00 - What does it feel like to be a women working on the IT field? - -00:30:00 - What is the advice you can give to a woman who wants to start in the IT field? - -00:32:00 - How to make women more active in a community? - -00:35:00 - Do you think there are IT jobs for men and another to women? - -00:38:00 - What is the most interesting job that you worked in before? - -00:45:00 - What are the challenges that you had in your career? - -00:50:00 - What is the greatest technology transformation that you did in your career? - -01:08:00 - How to encourage women to continue their careers in the IT field? - -01:16:00 - What is the change that you want to see in the future on your career and/or in the IT field? - -01:21:00 - What was your dream job as a plan B? - -01:26:00 - What is a chatbot? - -01:27:00 - What is the first advice to give a Moroccan woman to start on the IT field? - -01:29:00 - Kaoula experience with building a startup - -01:31:00 - In your opinion should we need to focus on events 100% for women and what are the reasons for these events? - -01:37:00 - Are these events 100% for women are helping women to be a part of the IT society? - -01:43:00 - How to encourage women to be speakers on IT events? - -01:50:00 - Who are your role model in tech? - -01:57:00 - Conclusion - -## Prepared and Presented by : - -[Meriem Zaid](https://www.facebook.com/MeriemZaid/) - -[Soufian El Foukahi](https://twitter.com/soufianelf/) diff --git a/blablas/ep24/index.md b/blablas/ep24/index.md deleted file mode 100644 index 3359e087..00000000 --- a/blablas/ep24/index.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -date: 2019-12-29 -time: 21h -duration: "2:18:03" -title: "Geeksblabla MSS with Yassine El Kachchani" -tags: ["MSS", "entrepreneurship", "career"] -category: "MSS" -isNext: false -featured: true -video: "2770524023008256" -youtube: https://www.youtube.com/watch?v=QqicTaX4gfU -published: true -url: "https://www.facebook.com/sfoukahi/videos/2770524023008256/" -audio: "https://www.facebook.com/sfoukahi/videos/2770524023008256/" ---- - -In this episode of GeeksBlabla, we discuss startuping with Yassine, the CEO of United Remote. - -## Guests - -[Yassine El Kachchani](https://www.facebook.com/kachchani) - -## Notes - -0:00:00 - Intro and welcoming - -0:03:00 - Who is Yassine El Kachchani? - -0:06:00 - Were you interested in entrepreneurship as a student? - -0:10:00 - What lessons did you learn from your very first company? - -0:12:00 - Brief talk about Lacarteplz.ma - -0:16:00 - How did you come up with the idea of Hidden Founders after two failed companies? - -0:22:00 - Can you talk a bit about the success of Hidden Founders? - -0:30:00 - Why did you kill Hidden Founders in favor of United Remote despite the former's success? - -0:34:00 - Does 3% equity translate to 3% of profit or to 3% of shares? - -0:35:00 - What do you mean by a tiny project? An MVP, a landing page or what exactly? - -0:37:00 - Are there Moroccan incubators that offer training or financing that you can recommend? - -0:39:00 - What is the most important thing when it comes to creating your first startup? - -0:43:00 - How is the startup ecosystem in Morocco and how will it be in 2020? - -0:52:00 - Best book to recommend for startuppers? - -0:55:00 - Is there a secret to successfully launch a business in Morocco? - -1:01:00 - Can you launch an online product without having a legal form? - -1:02:00 - Can you include online payment in your product if you don't have a legal form? - -1:04:00 - What advice would you give to someone who has an idea and wants to build a startup around it? - -1:08:00 - Do you think that Moroccan startups can change the state of Morocco in the upcoming years? - -1:11:00 - Brief discussion about information exchange, and lack thereof. - -1:18:00 - What skills do you look for in developers? - -1:22:00 - How do you define company culture? - -1:26:00 - What advice would you give Moroccan entrepreneurs? - -1:35:00 - Is there going to be a third Bizness B Nab season? If so, when? - -1:55:00 - The best way for Moroccan companies to resist brain drain and turnover? - -2:05:00 - Besides money, why should one build a startup? - -2:11:00 - Conclusion - -## Links - -- [Podcast URL](https://www.facebook.com/sfoukahi/videos/2770524023008256/) -- [Paul Graham's essays](http://www.paulgraham.com/articles.html) -- [Y Combinator's "Startup School 2019" playlist](https://www.youtube.com/playlist?list=PLQ-uHSnFig5OMuEYI4rnNz08BIHxhxdHG) -- [Mixpanel's blog on analytics](https://mixpanel.com/blog/) -- [Bizness B Nab](https://www.youtube.com/channel/UC_bxddqRoU6xWe1H5i4qfOg) - -## Prepared and Presented by : - -[Meriem Zaid](https://www.facebook.com/MeriemZaid/) - -[Mohammed Aboullaite](https://www.facebook.com/aboullaite) - -[Soufian El Foukahi](https://twitter.com/soufianelf/) diff --git a/blablas/ep25/index.md b/blablas/ep25/index.md deleted file mode 100644 index c77e2815..00000000 --- a/blablas/ep25/index.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -date: 2020-01-12 -time: 21h -duration: "01:44:03" -title: "Deep Dive in Java" -tags: ["spring", "java", "dev", "backend"] -category: "dev" -isNext: false -video: "2801661513227840" -youtube: https://www.youtube.com/watch?v=yj2GuZnBC8s -published: true -url: "" -podcastUrl: "" ---- - -In this episode of GeeksBlabla, Mohammed, Amine, and Amine talk about Java language, and why you should learn it, they talk also about the strength of The JVM, the best practices as Java Developer. - -## Guests - -[Mohammed Abboulait](https://twitter.com/laytoun) - -[Amine Bekkaoui](https://www.linkedin.com/in/amine-bekkaoui-3a622b46) - -[Amine Hakkou](https://twitter.com/amine_hakkou) - -## Notes - -0:00:00 - Welcoming guests - -0:04:00 - Who is Amine Bekkaoui ? - -0:06:00 - When did you start Java ? - -0:10:00 - How did you develop your skills in Java ? - -0:18:00 - Do you think Java will still be a dominant programming language ? - -0:20:00 - What we can do with Java ? - -0:36:00 - What is JVM(Java Virtual Machine) tuning ? - -0:42:00 - How can i start Java ? - -0:43:00 - What are the Java licensing changes? - -0:47:00 - What are the best practices for modern industrial Java projects ? - -0:50:00 - What is JVM in general ? - -0:56:00 - What are the most important Java Concepts ? - -0:59:00 - What is the best Java framework ? - -1:01:00 - Is Java a fully open source programming language ? - -1:03:00 - What are the required skills to start learning Java ? - -1:05:00 - Which Java framework should I start with ? - -1:09:00 - Why Java is still in a high demand ? - -1:10:00 - What are the GraalVM limits ? - -1:12:00 - Can NodeJs replace Java ? - -1:13:00 - Scala is only for Big Data ? - -1:14:00 - What is Jigsaw Project ? - -1:19:00 - Why JavaEE becomes JakartaEE ? - -1:23:00 - Unsafe Java Api - -1:25:00 - What is AOP(Aspect Oriented Programming) ? - -1:28:00 - Are JavaEE and Spring the same ? - -1:39:00 - Maven VS Gradle - -1:42:00 - What are the most stable JVM languages ? - -## Links - -- [Effective Java Book](https://www.amazon.com/Effective-Java-Joshua-Bloch/dp/0134685997) -- [Refactoring Improving Design Existing Code Book](https://www.amazon.fr/Refactoring-Improving-Design-Existing-Code/dp/0201485672) -- [Gang of Four Design Patterns Book](https://springframework.guru/gang-of-four-design-patterns/) -- [Spring Framework Website](https://spring.io/projects/spring-framework) - -## Prepared and Presented by : - -[Meriem Zaid](https://www.facebook.com/MeriemZaid/) - -[Mohammed Aboullaite](https://www.facebook.com/aboullaite) diff --git a/blablas/ep26/index.md b/blablas/ep26/index.md deleted file mode 100644 index a74f4ec6..00000000 --- a/blablas/ep26/index.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -date: 2020-01-19 -time: 21h -duration: "01:43:00" -title: "MSS with Badr El Houari" -tags: ["MSS", "entrepreneurship", "devoxx", "java", "career"] -category: "MSS" -isNext: false -video: "2591423041090045" -youtube: https://www.youtube.com/watch?v=EvUOVUzB8rY -published: true -url: -podcastUrl: ---- - -In this episode of GeeksBlabla, we discuss Java, community and leadership with Badr, the Java champion, serial entrepreneur and the CIO of xHub. - -## Guests - -[Badr El Houari](https://twitter.com/badrelhouari) - -## Notes - -0:00:00 - Episode Introduction - -0:03:00 - Who is Badr El Houari? - -0:05:00 - Your first contact with IT/Technical field - -0:06:00 - The community spirit - -0:13:00 - Your first meetup? - -0:19:00 - How did the idea of Jmaghreb start? - -0:21:00 - When did you decide to start the first event? - -0:27:00 - Why Morocco JUG does not organize meetings anymore? Do they have any plans this year? - -0:31:00 - What is the future of Java after 10 years? - -0:34:00 - What's the meaning of the motto behind you -we live to code, never code to live-? - -0:35:00 - Your first talk? - -0:40:00 - What is the secret behind the success of Jmaghreb? - -0:46:00 - From Jmaghreb to Devoxx - -0:59:00 - Why did you choose to be an entrepreneur? - -1:09:00 - Advice to Moroccan entrepreneurs - -1:15:00 - How Student should prepare for the job market - -1:18:00 - Does xHub give the opportunity to self-taught developers without a diploma? - -1:19:00 - What's the secret of the good vibe and the positive energy at xHub? - -1:23:00 - Do you think Morocco has talented developers? - -1:29:00 - How do you see the future of programming in Morocco? - -1:32:00 - Do you think there are job opportunities for talented self-taught developers in Morocco? - -1:34:00 - Is it possible to be an entrepreneur and a programmer at the same time? - -1:37:00 - As a Java champion, what are some criticisms of Java? - -1:40:00 - Difference between Application Architect and Developer? - -1:42:00 - Wrap up and goodbye! - -## Links - -[Reach out xHub](https://x-hub.io/contact/) - -## Prepared and Presented by : - -[Meriem Zaid](https://www.facebook.com/MeriemZaid/) - -[Mohammed Aboullaite](https://www.facebook.com/aboullaite) - -[Soufian El Foukahi](https://twitter.com/soufianelf/) diff --git a/blablas/ep27/index.md b/blablas/ep27/index.md deleted file mode 100644 index 880d3a36..00000000 --- a/blablas/ep27/index.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -date: 2020-02-16 -time: 21h -duration: "01:40:00" -title: "Side Projects & Indie Hacking" -tags: ["dev", "indie", "career"] -category: "career" -isNext: false -video: "2873170349410289" -youtube: https://www.youtube.com/watch?v=bDrUAza36ec -published: true -url: -podcastUrl: ---- - -In this episode of GeeksBlabla, we discuss Side Project & indie Hacking, How To Get Started, Best Practices, Useful resources and Much More with the amazing Mehdi and Motaquillah. - -## Guests - -[Mehdi Sakout](https://twitter.com/medyo80) - -[Motaquillah Maddane](https://twitter.com/motaquillah) - -## Notes - -00:00:00 - Introduction: Welcoming, guests intro. - -00:05:00 - What is an Indie hacking, Side Project and side Product? - -00:16:00 - My first Step as an indie Hacker: How to get started? - -00:24:00 - How to get and stay motived ? - -00:32:00 - Working alone vs finding a partner, and how to find a partner ( co-founder) - -00:36:00 - When to take a side project "seriously" and start working on it full time ? What are the metrics to track ? - -00:39:00 - What skills do you need to launch a successful side project ? - -00:45:00 - Side Project Step by Step: - - * Validate Your idea - * MVP - * Find first costumers - * B2B vs B2C - * Go Public & Share your product - -01:18:00 - QA - -01:26:00 - Successful side Project by Moroccan Makers. - -01:33:00 - Resources - -## Links - -[Product Hunt](https://www.producthunt.com/) - -[Indiehackers](https://www.indiehackers.com/) - -[Makerlog](https://getmakerlog.com/) - -[Start small stay small](https://startupbook.net/) -[The mom test](http://momtestbook.com/) - -[Getting real](https://basecamp.com/books/Getting%20Real.pdf?fbclid=IwAR1XBkJQ_ddPMPOVLiLXald8HgmdIxQHC7f_Go5Jo8UaGI-14iVi4sm-mQs/) - -## Prepared and Presented by : - -[Youssouf El Azizi](https://twitter.com/ElaziziYoussouf) - -[Soufian El Foukahi](https://twitter.com/soufianelf/) - -[Mehdi Sakout](https://twitter.com/medyo80) diff --git a/blablas/ep28/index.md b/blablas/ep28/index.md deleted file mode 100644 index c2de1c64..00000000 --- a/blablas/ep28/index.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -date: 2020-02-29 -time: 21h -duration: "01:32:00" -title: "GeeksBlabla Kids" -tags: ["kids"] -category: "career" -isNext: false -video: "2902199879840669" -featured: true -youtube: https://www.youtube.com/watch?v=gvve_LEqtbI -published: true -url: "https://geeksblabla.io/blablas/geeks-blabla-kids" ---- - -A Special episode to encourage youth minds in the coding industry,In this episode of GeeksBlabla Ayman and Achraf, 2 boys under 16, share their story with programming and robotics. - -## Guests - -- [Achraf Mansari](https://www.facebook.com/itsachrafmansari/) - -- [Ayman Riad Solh]() - -## Notes - -00:00:00 - Introduction & Guests presentation - -00:04:00 - When and how they know Programming ? - -00:12:00 - Difficulties encountered & thier solutions - -00:16:00 - How they improved their skills? - -00:20:00 - Have you ever practiced these skills in competition? - -00:25:00 - How do you like the field of information technology? - -00:29:00 - How did your family and friends react to you when they know you love programming? - -00:34:00 - Do you have some plans to explain your IT knowledge in Darija to your friends , your family , and others kids ? - -00:41:00 - How did you get the idea for your projects? - -00:46:00 - Your workflow creating new projects? - -00:56:00 - Are you thinking about new projects in the future? - -00:59:00 - Connected devices (Q:Ayman A:Achraf) - -01:02:00 - Do you have plans for your studies (the program) ? - -01:07:00 - QA - -01:17:00 - What do you expect your parents to improve your technical skills? - -01:27:00 - What your advice for kids in your age to start programming? - -01:31:00 - Final words and goodbye. - -## Links - -- [Scratch](http://scratch.mit.edu/) - -- [Facebook DevC](https://www.facebook.com/groups/DevC.Casablanca/?hc_ref=ARQQY8zH-NAV8646DsgW8RNoO1DNoBuf-43ao4kIFvZZMJCV4jpw7-hSQ2C0DmFkkdI&ref=nf_target) - -## Prepared and Presented by : - -- [Soufian El Foukahi](https://twitter.com/soufianelf/) - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) diff --git a/blablas/ep29/index.md b/blablas/ep29/index.md deleted file mode 100644 index 4c23b305..00000000 --- a/blablas/ep29/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -date: 2020-03-14 -time: 21h -duration: "02:01:03" -title: "Deep Dive in JavaScript" -tags: ["JS", "web", "react", "angular", "frontend", "backend", "dev"] -category: "dev" -isNext: false -video: "2932270973500226" -youtube: https://www.youtube.com/watch?v=9D7JAuhJjuU -published: true -url: "" -podcastUrl: "" ---- - -In this episode of GeeksBlabla, we discuss JavaScript, History, Fundamental concepts, Javascript Ecosystem and a lot of topics around it - -## Guests - -[Chihab Otmani](https://chihab.dev/) - -[Youssouf El Azizi](https://elazizi.com/) - -[Amine Hakkou](https://www.hakkou.me/) - -## Notes - -0:00:00 - Episode Introduction and Guests Intro. - -0:08:00 - What is Javascript, History of Javascript? - -0:30:00 - Why we should learn Javascript. - -0:41:00 - Is Javascript a language for beginners? - -0:44:00 - Javascript Hard Part : - -- Scope -- Hoisting -- Event loop -- Js engine - -1:00:00 - Javascript Ecosystem: Polyfills, bundlers, babel, Eslint. - -1:18:00 - Q/A - -1:30:00 - Frameworks: ReactJs, Angular, VueJs - -1:50:00 - Typing in Javascript: Typescript, Flow - -1:55:00 - The state of Javascript and the future - -## Links - -[JS : The past, present, and future of JavaScript](https://javascriptair.com/episodes/2016-10-05/) - -[The definitive 20 year history of JavaScript.](https://zenodo.org/record/3707008#.Xm5bmZNKjRY) - -[JavaScript30](https://javascript30.com/) - -[JavaScript Visualized: Event Loop, Hoisting, Scope](https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif) - -## Prepared and Presented by : - -[Soufian El Foukahi](https://twitter.com/soufianelf/) - -[Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep3/index.md b/blablas/ep3/index.md deleted file mode 100644 index 2213eeb5..00000000 --- a/blablas/ep3/index.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -date: 2019-01-24 -time: 20h -duration: "1:27:22" -title: "Blockchain & CryptoCurrency with Badr Bellaj" -tags: ["blockchain", "cryptocurrency"] -category: "dev" -isNext: false -video: "2321040174795001" -youtube: https://www.youtube.com/watch?v=OTEpZ1bfdzY -published: true -audio: https://anchor.fm/s/88e3048/podcast/play/8871862/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fproduction%2F2019-11-8%2F37063521-48000-2-e55d2bc2a3e0f.m4a ---- - -In this episode of GeeksBlabla, The team and Badr Talk about Blockchain & CryptoCurrency - -## Guests - -[Badr Bellaj](https://www.linkedin.com/in/bellajbadr/) - -## Notes - -0:00:00 - Episode Introduction and Guests Intro - -0:03:00 - What is Cryptocurrency? - -0:16:00 - What is the difference between the private consortium and the Blockchain? - -0:22:00 - How do new nodes join the public blockchain? - -0:25:00 - What is the meaning of "Mining" and why we need it? - -0:34:00 - Do Cryptocurrencies encourage illegal activities and money laundering? - -0:38:00 - What is "Forking"? - -0:43:00 - What is the difference between "Soft fork" and "Hard fork"? - -0:46:00 - Is there a precise time for the Ethereum fork? - -0:47:00 - What are "Distributed Operations" in the context of Cryptocurrency? - -0:52:00 - Do Blockchain solution providers have control over the applications? - -0:58:00 - What is "Proof of Stake"? - -1:02:00 - What are the use cases of the Blockchain other than Cryptocurrency? - -1:07:00 - Can we do business with the Blockchain in Morocco? - -1:08:00 - What are the required skills to become a Blockchain developer? - -1:17:00 - What companies are looking for Blockchain developers? - -1:19:00 - The future of Blockchain and Cryptocurrencies from the point of view of Badr? - -1:23:00 - What are some of the Blockchain hot topics? - -## Links - -[Bitcoin](https://bitcoin.org/) - -[Ethereum](https://ethereum.org/) - -[Blockchain by example](https://www.packtpub.com/big-data-and-business-intelligence/blockchain-example) - -## Prepared and Presented by : - -[Mohammed Aboullaite](https://twitter.com/laytoun) - -[Mohamed Ez-zarghili](https://twitter.com/ezzarghili) diff --git a/blablas/ep30/index.md b/blablas/ep30/index.md deleted file mode 100644 index 749ea423..00000000 --- a/blablas/ep30/index.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -date: 2020-03-21 -time: 20h -duration: "01:39:54" -title: "Working Remotely as a Developer" -tags: ["dev", "career"] -category: "career" -isNext: false -video: "2948126105248046" -youtube: https://www.youtube.com/watch?v=7H08TcRX5SE -published: true -featured: true -url: "" -podcastUrl: "" ---- - -In this episode of GeeksBlabla, we discuss remote working for developers, How to get started, find your next remote job, manage your life as a remote developer, tools and best practices. - -## Guests - -[Ahmed El Azzabi](https://mylink.fyi/elazzabi) - -[Meriam Kharbat](https://medium.com/@MeriamKharbat) - -[Abdelfatah Sghiouar](https://twitter.com/boredabdel) - -## Notes - -0:00:00 - Episode Introduction and Guests Intro. - -0:05:00 - What is working remotely? - -0:10:00 - Working remotely vs working from Home (during COVID-19). - -0:15:00 - Why did you choose to work remote and when did you start it? - -0:20:00 - Challenges for remote developers. - -0:25:00 - How to convince your managers to work remotely? - -0:30:00 - How to find remote jobs offers? - -0:35:00 - Manage your personal life as a remote developer. - -0:50:00 - Soft Skills for a remote developer. - -0:54:00 - Best practices for remote developers to manage their tasks. - -1:00:00 - What are your hobbies outside of work? - -1:05:00 - Legal requirements for a remote developer and Understanding company taxation in Morocco. - -1:21:00 - Q/A - -1:33:00 - Resources & Tools - -## Links - -[Anti fragile: Nassim Nicholas Taleb](https://www.amazon.com/Antifragile-Things-That-Gain-Disorder/dp/B00A2ZIZYQ/ref=sr_1_1?crid=27ORBT6COOI68&dchild=1&keywords=anti+fragile&qid=1584823260&s=books&sprefix=anti+%2Cstripbooks-intl-ship%2C257&sr=1-1) - -[Peoplewear: Tom Demarco ](https://www.amazon.de/dp/0321934113/ref=sr_1_1?crid=36P5HKAPQOXZB&dchild=1&keywords=peopleware&qid=1584823460&sprefix=peoplew%2Caps%2C164&sr=8-1) - -[Remote: Office not required ](https://www.amazon.com/Remote-Office-Required-Jason-Fried/dp/0804137501/ref=sr_1_1?keywords=remote+office+not+required&qid=1584823591&sr=8-1) - -[It doesnโ€™t need to be crazy at work ](https://www.amazon.com/gp/product/0062874780/ref=dbs_a_def_rwt_bibl_vppi_i2) - -[Hackers & Painters ](https://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/dp/1449389554/ref=sr_1_1?crid=2BW3J4SKLKO1O&keywords=hackers+and+painters&qid=1584823568&s=audible&sprefix=hackers+and+%2Caudible%2C884&sr=1-1-catcorr) - -[The Year without pants ](https://www.amazon.com/Year-Without-Pants-WordPress-com-Future/dp/B00FPT6EBK/ref=sr_1_1?keywords=the+year+without+pants&qid=1584823524&sr=8-1) - -[Understanding company taxation in Morocco ](https://remote.ma/2019/09/02/understanding-company-taxation-in-morocco/) - -[Getting health insurance when working remotely](https://remote.ma/2019/08/05/how-to-get-health-insurance-in-morocco-when-you-work-remotely/) - -[Remote.ma](https://remote.ma) - -[Doist](https://doist.com/blog/) - -## Prepared and Presented by : - -[Soufian El Foukahi](https://twitter.com/soufianelf/) - -[Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep31/index.md b/blablas/ep31/index.md deleted file mode 100644 index b4f074d9..00000000 --- a/blablas/ep31/index.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -date: 2020-03-28 -time: 20h -duration: "02:24:36" -title: "AMA With GeeksBlabla Team " -tags: ["DevC", "AMA"] -category: "AMA" -isNext: false -video: "2963957556998234" -youtube: https://www.youtube.com/watch?v=nTA2mTRlTD0 -published: true -featured: false -url: "" -podcastUrl: "" ---- - -This episode is an AMA (Ask Me Anything ) with GeeksBlabla Team ,During this episode we answer audience Questions about programming, community,new technologies and much more. - -## Guests - -[Soufian El Foukahi](https://twitter.com/soufianelf/) - -[Youssouf El Azizi](https://elazizi.com/) - -[Amine Hakkou](https://www.hakkou.me/) - -[Meriem Zaid](https://www.facebook.com/MeriemZaid) - -[Mohammed Aboullaite](https://aboullaite.me/) - -[Oussama Hyad](https://www.facebook.com/heoussama.oussama) - -## Notes - -... - -## Links - -... - -## Prepared and Presented by : - -No One ๐Ÿ˜„ diff --git a/blablas/ep32/index.md b/blablas/ep32/index.md deleted file mode 100644 index 952c1812..00000000 --- a/blablas/ep32/index.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -date: 2020-03-30 -time: 20h -duration: "01:00:57" -title: "Moroccan Makers Efforts to Fight COVID-19" -tags: ["COVID-19"] -category: "career" -isNext: false -video: "2649000091999006" -youtube: https://www.youtube.com/watch?v=XIiMb2z42Ms -published: true -featured: false -url: "" -podcastUrl: "" ---- - -In this episode We're welcoming 2 great heroes, Mohamed and Hamid are doing amazing jobs, pushing innovation and making things to save lives in Morocco and beat Covid-19! - -## Guests - -... - -## Notes - -... - -## Links - -... - -## Prepared and Presented by : - -[Mohammed Aboullaite](https://aboullaite.me/) - -[Meriem Zaid](https://www.facebook.com/MeriemZaid) diff --git a/blablas/ep33/index.md b/blablas/ep33/index.md deleted file mode 100644 index 6c95c2d3..00000000 --- a/blablas/ep33/index.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -date: 2020-04-04 -time: 20h -duration: "01:52:07" -title: "Agile Project Management" -tags: ["career", "software engineering"] -category: "career" -isNext: false -video: "2653190094913339" -youtube: https://www.youtube.com/watch?v=84T8HhvseeE -published: true -featured: false -url: "" -podcastUrl: "" ---- - -In this episode, we discuss Agile Project Management, How to get started, agile frameworks and How to spread an agile mindset in your company. - -## Guests - -[Mohammed Mekran](https://web.facebook.com/mohamed.mekran) - -[Amine Maarouf](https://web.facebook.com/amiiiinema) - -## Notes - -- 00:00:00 - Introduction and Welcoming Guests. - -- 00:07:00 - What is agile? Scrum? Kanban ? And whatโ€™s the difference between them? - -- 00:13:00 - How to start using Agile Project Management In your Team. - -- 00:21:00 - Whatโ€™re the most common errors the teams shouldnโ€™t do when adopting scrum? - -- 00:49:00 - Agile Project Management for remote work. - -- 00:55:00 - Lean Vs Agile - -- 01:00:00 - XP vs Scrum - -- 01:13:00 - How do you realistically measure scrum team velocity? - -- 01:22:00 - How does one(dev) develop career within scrum environment? - -- 01:26:00 - Why we should be certified? - -- 01:32:00 - How do you spread an Agile mindset in the company across different departments and what is your strategy to coach these non-IT stakeholders? - -01:38:00 - Resources && tools - -## Links - -... - -## Prepared and Presented by : - -[Mohammed Aboullaite](https://aboullaite.me/) - -[Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep34/index.md b/blablas/ep34/index.md deleted file mode 100644 index 83dc85f7..00000000 --- a/blablas/ep34/index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -date: 2020-04-08 -time: 20h -duration: "01:35:34" -title: "HA: Scaling Systems and Handling Loads" -tags: ["devops", "backend", "software engineering"] -category: "dev" -isNext: false -video: "2656446701254345" -youtube: https://www.youtube.com/watch?v=CUDS14nbxGU -published: true -featured: false -url: "" -podcastUrl: "" ---- - -In this episode, Abderrahim share with us some important practices and tips about building Hight Availability systems, scaling web applications and handling high traffic - -## Guests - -[Abderrahim Ouakki](https://web.facebook.com/abderrahim.ouakki.0) - -## Notes - -## Links - -[Presentation slides](https://docs.google.com/presentation/d/1whJIMjPeOGyfjOuAGwmyPTr-pR5DkkA9McsIzgg0xgo/edit?fbclid=IwAR2kXpLL17bkv83Ehp9Ve-uXUscu7eaPc6OnoLeuDDGy-D2Vn8fDSqIb0Rg) - -## Prepared and Presented by : - -[Mohammed Aboullaite](https://aboullaite.me/) diff --git a/blablas/ep35/index.md b/blablas/ep35/index.md deleted file mode 100644 index c311003b..00000000 --- a/blablas/ep35/index.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -date: 2020-04-12 -time: 20h:30min -duration: "01:57:56" -title: "DevC Community" -tags: ["DevC", "open source"] -category: "dev" -isNext: false -video: "2982251615130868" -youtube: https://www.youtube.com/watch?v=kRFMScRcIFc -published: true -featured: false -url: "" -podcastUrl: https://web.facebook.com/youssouf.elazizi/videos/2982251615130868 ---- - -In this special episode of GeeksBlabla, some of its core team members discussed what is DevC community, how it started and how Facebook supports DevC. At the end, the members revealed some of the secrets and memories they had in the community. - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:00 - What is DevC Casablanca? - -0:09:00 - The start of DevC Casa - -0:16:00 - How to join the core team of DevC Casa? - -0:28:00 - The relationship between Facebook and DevC community - -0:37:00 - Are profitable projects the goal of the community? - -0:41:00 - How the planning of talks and meetings goes? - -0:45:00 - The vision of the group in the future? - -0:50:00 - How to build a new DevC community? - -0:53:00 - The help of the state and the universities to support the community - -0:55:00 - Students and the core team - -0:57:00 - The struggle of the community to organize meet-ups - -1:00:00 - Rules of the group (Code of conduct) - -1:05:00 - Giving back to the community and knowledge sharing - -1:08:00 - How speakers/guests of GeeksBlabla and offline meet-ups are chosen? - -1:16:00 - As a startup or a company, how can I sponsor a DevC activity? - -1:22:00 - Online meetups and thinking to shift to it + The added value of offline meet-ups - -1:29:00 - Sharing of good and bad experiences/memories that the presenters had in the community - -1:46:00 - The future of GeeksBlabla, the introduction of the GeeksBlabla Facebook page - -1:50:00 - The idea of sharing articles and open source projects in the community - -1:53:00 - How to get notified about the news of GeeksBlabla - -1:55:00 - Wrap up and good bye - -## Links - -- [DevC Casa Facebook group](https://web.facebook.com/groups/DevC.Casablanca) - -- [GeeksBlabla GitHub repo](https://github.com/DevC-Casa/geeksblabla.com) - -- [GeeksBlabla website](https://geeksblabla.io/) - -## Prepared and Presented by : - -- [Soufian El Foukahi](https://twitter.com/soufianelf/) - -- [Youssouf EL Azizi](https://elazizi.com/) - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid/) - -- [Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/blablas/ep36/index.md b/blablas/ep36/index.md deleted file mode 100644 index 35469d2e..00000000 --- a/blablas/ep36/index.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -date: 2020-04-20 -time: 20h:30min -duration: "02:43:43" -title: "React Deep Dive" -tags: ["react", "JS", "frontend", "web", "dev", "mobile dev", "react native"] -category: "dev" -isNext: false -video: "3112268152171433" -youtube: https://www.youtube.com/watch?v=bJ0QPmf5V2Q -published: true -featured: false -url: "" -podcastUrl: https://www.facebook.com/geeksblabla/videos/3112268152171433/ ---- - -In this episode of GeeksBlabla we discuss, React, How to get started ,Core concepts, React Ecosystem and a lot of topics around it. - -## Guests - -[Yassine ElOuafi](https://twitter.com/YassineElouafi2) - -[Youssouf EL Azizi](https://elazizi.com/) - -[Amine Hakkou](https://www.hakkou.me/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:00 - What is React? && React History. - -0:09:00 - How is React different from other solution such as jquery/angular and Vuejs - -0:19:00 - Imperative and Declarative in React? - -0:22:00 - What do I need To know to start working with React? - -0:31:00 - React Fundamental : JSX. - -0:38:00 - Deference between JSX and template system. - -0:41:00 - React Fundamental : Components, State, Props. - -0:48:00 - React Patterns: HOC, render props, Compound components - -0:52:00 - State Management Approaches. - -1:03:00 - React and Typescript. - -1:12:00 - Redux-saga vs Redux-thunk - -1:14:00 - React Fiber, Virtual Dom, Reconciliation, concurrent mode. - -1:34:00 - React Suspense && algebraic effects. - -1:48:00 - Preact. - -1:58:00 - WebAssembly and React. - -2:04:00 - Styling in React. - -2:08:00 - Server side Rendering with React. - -2:12:00 - Meta-frameworks : Next.js / Gatsby. - -2:25:00 - React Testing. - -2:33:00 - Tools and Resources. - -## Links - -- [React](https://reactjs.org/) - -- [Yassine Blog ](https://abstractfun.com/) - -- [Kent C. Dodds](https://kentcdodds.com/) - -- [React Testing Library](https://testing-library.com/docs/react-testing-library/intro) - -- [The Beginner's Guide to React](https://egghead.io/courses/the-beginner-s-guide-to-react) - -## Prepared and Presented by : - -- [Soufian El Foukahi](https://twitter.com/soufianelf/) - -- [Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep37/index.md b/blablas/ep37/index.md deleted file mode 100644 index 702ff314..00000000 --- a/blablas/ep37/index.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -date: 2020-04-24 -time: 20h:00min -duration: "01:58:42" -title: "MSS with Mouhsine Lakhdissi" -tags: ["MSS", "entrepreneurship"] -category: "MSS" -isNext: false -video: "530406154307944" -youtube: https://www.youtube.com/watch?v=QJw9P_oDQ5o -published: true -featured: false -url: "" -podcastUrl: https://www.facebook.com/geeksblabla/videos/530406154307944/ ---- - -In this episode of GeeksBlabla, we discuss entrepreneurship and innovation with Mouhssine Lakhdissi, Professor, CTO and Co-Founder of Neoxia Morocco. - -## Guests - -[Mouhssine Lakhdissi](https://www.facebook.com/mouhsine.lakhdissi) - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:00 - Presentation and studies. - -0:09:00 - How did you start the entrepreneurship ? - -0:19:00 - How your entrepreneurship journey started - -0:22:00 - Can you tell us a little more about your previous business involvements and the places youโ€™ve worked? - -0:31:00 - You were attracted to the scientific field when you were younger,can you tell us more about this passion - -0:38:00 - What inspired you to start it ? - -0:41:00 - How did you develop it? - -0:48:00 - During your Doctorat preparation you started a small IT consulting entreprise, how did it go? - -0:52:00 - Do we need a good product before lunch? - -1:03:00 - How can we monetize our entreprises in Morocco ? - -1:12:00 - How do you evaluate entrepreneurship ecosystem in Morocco? - -1:14:00 - Whatโ€™s your greatest fear as an entrepreneur? - -1:34:00 - Can you tell us more about the digitalization of agriculture. - -1:38:00 - Can you tell us about โ€œMIDADโ€ project, the intelligent mask that were developed during COVID19 crisis - -1:48:00 - What's the future involvement of CNDP with this project? - -1:52:00 - How can we boost the e-learning in Morocco? - -1:58:00 - Some advices for moroccan entrepreneurs. - -## Prepared and Presented by : - -- [Mohammed Aboullaite](https://www.facebook.com/aboullaite) - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) diff --git a/blablas/ep38/index.md b/blablas/ep38/index.md deleted file mode 100644 index 21703877..00000000 --- a/blablas/ep38/index.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -date: 2020-05-03 -time: 22h:00min -duration: "01:12:40" -title: "MSS with Meriam Kharbat and Ouafae Aamer" -tags: ["MSS", "entrepreneurship", "software engineering"] -category: "MSS" -isNext: false -video: "864192424101038" -youtube: https://www.youtube.com/watch?v=QCCH7r9CB1g -published: true -featured: false -url: "" -podcastUrl: https://www.facebook.com/geeksblabla/videos/864192424101038/ ---- - -In this episode of GeeksBlabla, we discuss the success story for two young women in the IT field in and outside Morocco. - -## Guests - -[Meriam Kharbat](https://www.facebook.com/meriam.kasahara) - -[Ouafae Aamer](https://www.facebook.com/ouafae.aamer) - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:00 - Education path - -0:09:00 - tell us what your day job is - -0:19:00 - How long have you been working as Product Manager, Developer - -0:22:00 - What do you do besides being a software engineer by day - -0:31:00 - how did you get where you are today and how did you come to work at (field intelligence inc ) - -0:38:00 - What was your childhood dream? was it IT related ? - -0:41:00 - What influenced you to pursue a career in IT - -0:48:00 - What led you to embark on an international career - -1:03:00 - What are some challenges youโ€™ve faced ? - -1:12:00 - Are there any particular Moroccan women in tech who have inspired you? - -## Prepared and Presented by : - -- [Mohammed Aboullaite](https://www.facebook.com/aboullaite) - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -## Links - -- [EU Blue Card](https://www.make-it-in-germany.com/en/visa/kinds-of-visa/eu-blue-card/) - -- [Meriam blog](https://medium.com/@MeriamKharbat) diff --git a/blablas/ep39/index.md b/blablas/ep39/index.md deleted file mode 100644 index ed95ea8b..00000000 --- a/blablas/ep39/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -date: 2020-05-11 -time: 22h:30min -duration: "02:15:04" -title: "Blogging As a Developer" -tags: ["dev", "blogging", "career", "backend", "frontend", "mobile dev", "web"] -category: "career" -isNext: false -video: "655858025264119" -youtube: https://www.youtube.com/watch?v=PP-9ffjk_4w -published: true -featured: true -url: "" -podcastUrl: https://www.facebook.com/geeksblabla/videos/655858025264119/ ---- - -In this episode of GeeksBlabla, we discuss blogging for developer, How to get started, How blogging will help you in your dev career, How to write your first blog post and some secret keys for a successful blog post. - -## Guests - -[Meriam Kharbat](https://medium.com/@MeriamKharbat) - -[Mohammed Aboullaite](http://aboullaite.me/) - -[Youssouf EL Azizi](https://elazizi.com/) - -[Ismail EL Azizi](https://ismailelazizi.com/) - -## Notes - -0:00:00 - Introduction and welcoming guests. - -0:06:00 - How did you start blogging and why? - -0:10:00 - How can blogging help you in your career? - -0:14:00 - A success story from a blog post ? - -0:23:00 - Blogging for startups and what benefits encourage your workers to start blogging. - -0:32:00 - Why is blogging hard? - -0:40:00 - Blogging languages? Do I need good English skills? - -0:48:00 - Finding good topics? - -0:54:00 - Process writing a new blog post. - -1:01:00 - Blog Post Template. - -1:17:00 - Blogging platform vs personal blog and tools to create my personal blog - -1:26:00 - Find your audience, best places to share your articles. - -1:39:00 - QA - -1:56:00 - Tools and resources for bloggers. - -## Links - -[Blogs from Moroccan developers ](https://github.com/DevC-Casa/awesome-morocco#blogs) - -[Ryan Robinson's Free Blog Post Template](https://docs.google.com/document/d/1RNl7c5gojzbQSUGDrCGNEFTk-zu-DDlkdMcRUuTnONw/) - -[Grammarly](https://grammarly.com/) - -## Prepared and Presented by : - -[Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep4/index.md b/blablas/ep4/index.md deleted file mode 100644 index 282c224c..00000000 --- a/blablas/ep4/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -date: 2018-12-26 -time: 20h14 -duration: "1:24:32" -title: "MSS with Mohamed Zakariae El Khdime!" -tags: ["MSS", "cybersecurity", "entrepreneurship", "career"] -category: "MSS" -isNext: false -video: "2301890400043312" -youtube: https://www.youtube.com/watch?v=XVl0Y-7JZxw -published: true -audio: https://anchor.fm/s/88e3048/podcast/play/8871827/https%3A%2F%2Fd3ctxlq1ktw2nl.cloudfront.net%2Fproduction%2F2019-11-8%2F37063179-48000-2-83a2df7aac338.m4a ---- - -In this episode of GeeksBlabla, we discuss with Mohamed Zakariae El Khdime about his success story. - -## Guests - -[Mohamed Zakariae El Khdime](https://www.facebook.com/infom2z) - -## Notes - -00:00:00 - Who is Mohamed Zakariae El Khdime? - -00:03:00 - What is your academic background? - -00:06:00 - did you study in any public high school? - -00:20:00 - How did you switch from developement to security? - -00:22:00 - What is cybersecurity? - -00:25:00 - Why do hackers always wear hoodies? Behind the stereotype? - -00:26:00 - What is your first project in entrepreneurship? - -00:31:00 - How to start a career in cybersecurity? - -00:33:00 - How to found a startup in Dubai? - -00:46:00 - Advice for people who want to found a startup. - -00:46:00 - What kind of knowledge and amount of capital required for someone to take on entrepreneurship? - -00:51:00 - How did you manage to get funds? - -00:59:00 - What are your future plans, and what kind of advice could you give to someone who wants to get into cybersecurity? - -01:10:00 - Mohammed Aboullaite: Thanking DevC team and launch DevC projects for 2019 - -01:24:00 - Goodbye! - -## Prepared and Presented by : - -[Mohammed Aboullaite](https://www.facebook.com/aboullaite) - -[Soufian El Foukahi](https://twitter.com/soufianelf/) diff --git a/blablas/ep40/index.md b/blablas/ep40/index.md deleted file mode 100644 index e239808a..00000000 --- a/blablas/ep40/index.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -date: 2020-05-17 -time: 22h:30min -duration: "01:44:48" -title: "Self-Taught Developers" -tags: ["self-taught", "software engineering", "career"] -category: "career" -isNext: false -video: "2971727423053675" -youtube: https://www.youtube.com/watch?v=EOnbBm31kiA -published: true -featured: false -url: "" -podcastUrl: https://www.facebook.com/geeksblabla/videos/2971727423053675/ ---- - -In this episode of GeeksBlabla, we discuss with self-taught developers about their experience, how they get started and how they made it professionally. - -## Guests - -[Abderrahim Soubai Elidrissi](https://www.facebook.com/zizwar0nline) - -[Youness Hakky](https://www.facebook.com/younes.hakky) - -[Ismail Ghallou](https://twitter.com/smakosh) - -## Notes - -0:00:00 - Introduction - -0:05:00 - If you donโ€™t have a CS degree, how did you learn to code? - -0:08:00 - Did you do any particular courses or bootcamps? - -0:12:00 - Was the learning path difficult at the beginning? - -0:18:00 - How can you stay motivated while learning to code? - -0:24:00 - Is it okay to start building an online presence as newbie web dev? - -0:28:00 - How can a junior developer get out of the "tutorial cycle" ? - -0:33:00 - Since things evolve very rapidly, how do you decide on what is worth learning ? - -0:36:00 - What kind of projects should we work on ? should this projects be something really special and unique, or just take personal ideas and keep working on them and sharing them? - -0:37:00 - How did you get your first programming job/ freelance work? - -0:43:00 - How has your life changed since becoming a professional programmer? - -0:49:00 - Has anyone ever asked about your coding qualifications when you have been talking to clients? - -0:51:00 - Do you think a CS degree is unnecessary now? - -0:57:00 - Did you still learn after you got your first job - -1:00:00 - Do you have tips for getting a remote job as a junior developer? - -1:02:00 - What advice do you have for someone who wants to get their first programming job but they donโ€™t have the time or money for a CS degree? - -1:32:00 - Is there something that most self-taughts have over "classic" engineers ? - -1:35:00 - Does security background helps in cracking interviews and landing jobs as a developer? - -1:42:00 - Will you go after fundamentals (Data types, patterns, algorithms...etc) Or you just learn things directly and try hard to go for it? - -1:44:00 - Wrap up and Goodbye. - -## Prepared and Presented by : - -- [Mohammed Aboullaite](https://www.facebook.com/aboullaite) - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) diff --git a/blablas/ep41/index.md b/blablas/ep41/index.md deleted file mode 100644 index da023c44..00000000 --- a/blablas/ep41/index.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -date: 2020-05-25 -time: 20h:30min -duration: "02:13:00" -title: "PHP Deep Dive" -tags: ["php", "dev", "web", "backend"] -category: "dev" -isNext: false -video: "866401943834929" -youtube: https://www.youtube.com/watch?v=QxSk1jvim-c -published: true -featured: false -url: "" -podcastUrl: https://www.facebook.com/geeksblabla/videos/866401943834929/ ---- - -In this episode of GeeksBlabla, we discuss with amazing folks How to get started with PHP? some core concepts you need to master, Frameworks, CMS and much more. - -## Guests - -[Mohammed Benhida](https://twitter.com/simo_benhida) - -[Rachid laasri](https://twitter.com/RashidLaasri) - -[Imad Zairig](https://twitter.com/zairigimad) - -[EL Hossain Inani](https://twitter.com/InaniT0) - -## Notes - -0:00:00 - Intro and welcoming guests - -0:05:00 - What is PHP and why is very famous? - -0:12:00 - History about PHP. - -0:18:00 - Do you recommend beginners to start with PHP? - -0:31:00 - Why People Make jokes About PHP ? - -0:40:00 - The future of PHP in Morocco ? - -1:04:00 - How to get started with PHP ? - -1:15:00 - Fundamental concepts you need to master. - -1:26:00 - Frameworks & CMS - -1:38:00 - Testing With PHP. - -1:43:00 - Deploy your PHP project. - -1:46:00 - QA - -1:56:00 - Resources and Tools - -2:09:00 - Wrap up and Goodbye. - -## Links - -[PHP Coding Standards Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) - -[PHPStan - PHP Static Analysis Tool](https://github.com/phpstan/phpstan) - -[Laravel Valet](https://laravel.com/docs/7.x/valet) - -[PHP The Right Way](https://phptherightway.com/) - -## Prepared and Presented by : - -[Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep42/index.md b/blablas/ep42/index.md deleted file mode 100644 index 986c4892..00000000 --- a/blablas/ep42/index.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -date: 2020-05-31 -time: 21h:30min -duration: "02:00:00" -title: "Ask Me Anything #2" -tags: ["AMA", "DevC"] -category: "AMA" -isNext: false -video: "247576546525955" -youtube: https://www.youtube.com/watch?v=FizzGMnYwX0 -published: true -featured: false -url: "" -podcastUrl: https://www.facebook.com/geeksblabla/videos/247576546525955/ ---- - -Ask Me Anything episode #2 with our community members Mohammed and Abdelkader, During this episode we answer audience questions about programming, community,new technologies and much more. - -## Guests - -[Mohamed Ez-zarghili](https://twitter.com/ezzarghili) - -[Abdelkader Boudih](https://twitter.com/seurOSS) - -## Notes - -0:00:00 - Introduction - -0:04:00 - Which tech topic have you been interested in recently? - -0:11:00 - The nature of UX design field. - -0:13:00 - With the absence of UX design schools in Morocco, are there actually any Moroccan experienced UX designers out there? - -0:17:00 - The reason behind the lack of experience with UX design and the importance of UX design. - -0:29:00 - How should a beginner approach the developer roadmap? - -0:36:00 - How to get a remote job in companies abroad as a developer? - -0:45:00 - What are your thoughts about .NET? - -0:49:00 - How will the coronavirus impact the software industry? - -0:54:00 - Common Javascript concepts every Reactjs or Nodejs job seeker has to be familiar with. - -0:59:00 - Why don't some universities and schools teach Git in their computer science classes? - -1:04:00 - How to manage your learning with the over availability of online courses? - -1:10:00 - How to prepare for an IT job interview? - -1:11:00 - How to find repositories to contribute in? - -1:15:00 - What are Dark Patterns? - -1:20:00 - What would you recommend for building portfolio and blogging websites in terms of tools, frameworks or platforms? - -1:23:00 - How to Mitigate Security Vulnerabilities in an IoT Environment? - -1:30:00 - What is your approach to understanding and working on complex concepts? - -1:36:00 - How can I contribute to React? - -1:42:00 - Monorepo or polyrepo for microservice architecture? - -1:45:00 - The actual state of using Cloud services infrastructure in Morocco? - -1:46:00 - How do you collaborate with the operations team? - -1:50:00 - Why Rust is getting popular? - -1:58:00 - Wrap up and goodbye. - -## Links - -... - -## Prepared and Presented by : - -[Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep43/index.md b/blablas/ep43/index.md deleted file mode 100644 index 71654eba..00000000 --- a/blablas/ep43/index.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -date: 2020-06-07 -time: 20h:00min -duration: "01:58:26" -title: "MSS with Omar Guendeli" -tags: ["self-taught", "game dev", "MSS"] -category: "MSS" -isNext: false -video: "1135171186849770" -youtube: https://www.youtube.com/watch?v=DFaRndHwuFY -published: true -featured: false -url: "" -podcastUrl: https://www.facebook.com/geeksblabla/videos/1135171186849770/ ---- - -In this episode of GeeksBlabla, we discuss a success story of a Moroccan Gameplay Programmer who used to work in different games in Morocco, while being a med student, and made it to a big firm. - -## Guests - -[Omar Guendeli](https://guendeliomar.com) - -## Notes - -0:00:00 - Introduction - -0:03:00 - Can you give us a brief look into what inspired you when you were young? - -0:05:00 - Did family or friends influence your decision to get into games or was this something you became interested in on your own? - -0:09:00 - What was the first game you worked on? - -0:13:00 - And how was your experience working on games in morocco? - -0:16:00 - Did you work with companies who are 100% into gaming products? - -0:20:00 - Did you have a mentor ? - -0:23:00 - Are there any classic or current games/films that changed your creative vision or that stand out to you as must play/watch and why - -0:24:00 - Have you been impressed or surprised by any recently? - -0:26:00 -Is there a favorite project or game title youโ€™ve worked on recently and what made it fun for you personally? - -1:04:00 - Is working with an international team a game changer in your career and your learning path? - -1:05:00 - and how is it to work in a very well known company? - -1:07:00 - What is your favorite part of game development, and the worst parts? - -1:13:00 - What were your hardest problems during the development of the game and how did you solve them? - -1:17:00 - What are the skills that an optimum newbie should possess in order to work efficiently and effectively in this domain? - -1:23:00 - What would be the best advice you would give to someone who wants to take a video game idea from the paper and develop it into a full game? - -1:28:00 - Whatโ€™s the deal with cheat codes? - -1:58:00 - Wrap up and Goodbye. - -## Prepared and Presented by : - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep44/index.md b/blablas/ep44/index.md deleted file mode 100644 index 60f0d9bf..00000000 --- a/blablas/ep44/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -date: 2020-06-13 -time: 20h:00min -duration: "01:19:40" -title: "Wiqaytna: Everything (technical) you need to know" -tags: - ["entrepreneurship", "mobile dev", "security", "COVID-19", "cybersecurity"] -category: "dev" -isNext: false -video: "184114139689813" -youtube: https://www.youtube.com/watch?v=M-c9CP4ERlY -published: true -featured: false -url: "" -podcastUrl: https://www.facebook.com/geeksblabla/videos/184114139689813/ ---- - -In this episode of GeeksBlabla, we discuss the new app Wiqaytna, released in June from a technical point of view with Zouheir Lakhdissi. Also to answer all questions related to the app. - -## Guests - -[Zouheir Lakhdissi](https://www.facebook.com/zlakhdissi) - -## Notes - -0:00:00 - Introduction - -0:05:00 - The timeline that was required to build the app was legendary, no more than a month! what challenges did you face to honor this commitment ? - -0:13:00 - Can you give us an idea about the app workflow in general, so everyone understands how it works from an end user perspective. - -0:16:00 - what happens when someone is confirmed positive? - -0:19:00 - Why going for low energy technology (Bluetooth) in the first place? - -0:22:00 - Noticed that the app heavily consume battery energy, especially on iOS - -0:25:00 - Does the mobile devices communicate with an external API? - -0:32:00 - What is the backend stack that you used? - -0:43:00 - Why the fork relationship was not maintained with the original repository? - -0:51:00 - The app being published by Ministry of interior creates confusion. - -1:00:00 - Is it possible to contribute to the project ? What is the process ? - -1:04:00 - Why there was no marketing campaign regarding the app ? - -1:19:00 - Wrap up and Goodbye. - -## Prepared and Presented by : - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Mohammed Aboullaite](https://aboullaite.me/) - -- [Mohammed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) diff --git a/blablas/ep45/index.md b/blablas/ep45/index.md deleted file mode 100644 index 226e7971..00000000 --- a/blablas/ep45/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -date: 2020-06-14 -time: 20h:00min -duration: "02:37:04" -title: "Angular Deep Dive" -tags: ["angular", "JS", "frontend", "web", "dev"] -category: "dev" -isNext: false -video: "269321810941867" -youtube: https://www.youtube.com/watch?v=49Sr9WuxSHM -published: true -featured: false -url: "" -podcastUrl: https://www.facebook.com/geeksblabla/videos/269321810941867/ ---- - -In this episode of GeeksBlabla we discuss Angular with some Amazing Community folks, How to get started ,Core concepts, Angular Ecosystem and a lot of topics around it. - -## Guests - -[Soubai Abderahim](https://soubai.me) - -[Chihab Otmani](https://chihab.dev) - -[Abdullah Iraamane](https://www.facebook.com/abdullah.eraman) - -## Notes - -0:00:00 - Introduction and welcoming - -0:06:00 - What is Angular? History and How itโ€™s different than AngularJs - -0:14:00 - Performance issues and how Angular Solves them? - -0:26:00 - Pros and cons of Angular (compared to other frameworks or libraries like React) - -0:38:00 - Finding jobs as an Angular developer? - -0:50:00 - Fundamental skills that every Angular developer needs to master. - -0:58:00 - How to get started? - -1:13:00 - Angular and CSS. - -1:17:00 - Reactive Programming and Rxjs. - -1:34:00 - Angular SSG and SSR. - -1:38:00 - How to organize your Angular projects? - -1:49:00 - Testing Angular applications. - -1:57:00 - QA. - -## Links - -[ngMorocco meetup page](https://www.meetup.com/ngMorocco) - -[Angular in Darija](https://www.youtube.com/channel/UC5irZcpXt3LZ4Ra44aFX_eA) - -[ Angular University](https://angular-university.io/) - -[Angular Blog](https://blog.angular.io/) - -[Fireship](https://fireship.io/) - -[Angular Project Architecture](https://medium.com/ngconf/angular-architecture-matters-monorepo-df110b2a508a) - -[Pluralsight](https://www.pluralsight.com/) - -[Reactive Programming](http://reactivex.io/documentation/observable.html) - -[Academind](https://www.youtube.com/channel/UCSJbGtTlrDami-tDGPUV9-w) - -[Angular Architecture](https://medium.com/fincura-engineering/front-end-architecture-for-angular-applications-d6840b78706c) - -[Debug and Profile Angular Apps](https://augury.rangle.io/) - -[Angular in Depth](https://indepth.dev) - -## Prepared and Presented by : - -[Youssouf EL Azizi](https://elazizi.com/) - -[Soubai Abderahim](https://soubai.me) diff --git a/blablas/ep46/index.md b/blablas/ep46/index.md deleted file mode 100644 index b7c73838..00000000 --- a/blablas/ep46/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -date: 2020-06-21 -time: 20h:00min -duration: "02:28:04" -title: "Mobile Development" -tags: ["android", "IOS", "mobile dev", "react native", "flutter"] -category: "dev" -isNext: false -video: "272185967229889" -youtube: https://www.youtube.com/watch?v=GFlWbEHmi4Y -published: true -featured: false -url: "" -podcastUrl: https://www.facebook.com/geeksblabla/videos/272185967229889/ ---- - -In this episode of GeeksBlabla, we discuss Mobile development with some Amazing Community folks, How to get started, Native, cross-platform solution, hybrid solutions, PWA, and a lot of topics around it. - -## Guests - -[Mehdi Sakout](https://twitter.com/MedyO80) - -[Raouf Rachiche](https://twitter.com/raoufrahiche) - -[Youssouf EL Azizi](https://elazizi.com/) - -## Notes - -0:00:00 - Introduction and welcoming. - -0:08:00 - Mobile Development? History? - -0:14:00 - Mobile Development and how itโ€™s different from Web or desktop development (challenges). - -0:23:00 - State of Mobile Dev in Morocco and worldwide (jobs, technologies salaries) - -0:47:00 - Solution for Mobile Development(Native, Cross-platform, hybrid, PWA) - -0:55:00 - Flutter - -1:09:00 - Native Development (Android) - -1:15:00 - React Native - -1:21:00 - Cross Platform issues with upgrade. - -1:34:00 - Fuchsia and the future of Android. - -1:36:00 - Build and distribute Mobile Apps - -1:39:00 - Code Push - -1:47:00 - QA. - -## Links - -[Official android courses](https://developer.android.com/courses) - -[Official Apple courses](https://developer.apple.com/library/archive/referencelibrary/GettingStarted/DevelopiOSAppsSwift/) - -[React Native](https://reactnative.dev/) - -[Flutter](https://flutter.dev/) - -[Udacity](https://www.udacity.com/) - -[Raouf Rachiche Youtube Channel](https://www.youtube.com/channel/UCal0wCIwkxiKcrYPvBS6RiA) - -[Udemy](https://www.udemy.com/topic/android-development/free/) - -[AppCenter](http://appcenter.ms/) - -## Prepared and Presented by : - -[Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep47/index.md b/blablas/ep47/index.md deleted file mode 100644 index 942c3495..00000000 --- a/blablas/ep47/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -date: 2020-06-28 -time: 20h:00min -duration: "02:15:20" -title: "MSS with Adnane Belmadiaf" -tags: ["linux", "open source", "MSS"] -category: "MSS" -isNext: false -video: "260426718593877" -youtube: https://www.youtube.com/watch?v=mKwXcC7VPac -published: true -featured: false -url: "" -podcastUrl: https://www.facebook.com/geeksblabla/videos/260426718593877/ ---- - -In this episode of GeeksBlabla, our guest Adnane Belmadiaf a frontend developer and also a very known person in Linux community who contributed to Ubuntu and will share his story. - -## Guests - -[Adnane Belmadiaf](https://www.facebook.com/AdnaneBelmadiaf) - -## Notes - -0:00:00 - Introduction and welcoming. - -0:01:00 - Who is Adnan Belmadiaf? - -0:02:00 - Academic background? Moroccan public school//universities or outside Morocco? - -0:09:00 - When you started as a web developer more than 10 years ago? How was the web experience back then? - -0:11:00 - Then you were one of the very few users, starting to use ubuntu and linux before it was cool. Tell us a bit about the experience back then? - -0:17:00 - Why was Ubuntu your favorite Linux distribution compared to others? - -0:21:00 - Linux at that time, was not as rich as these days. How did you manage to keep it up with essential tools? - -0:23:00 - You contributed to many Linux and open source projects. What drove you to make your first contribution? - -0:26:00 - One of the great achievements that you must certainly be proud of, is becoming an official Ubuntu member, How did you get there and what was your reaction back then? - -0:33:00 - How do you evaluate the web revolution in the past decade? - -0:56:00 - Was there a role for the Moroccan team to integrate Amazigh language or any efforts related to the integration? - -1:03:00 - Is the Moroccan Team community still active ? Can people join? What are the prerequisites? - -1:29:00 - You founded the ubuntu MoroccanTeam ? tell us a bit more about it? - -1:42:00 - How do you evaluate the contribution of the Moroccan community in open source? - -1:46:00 - What are your recommendations and advice to anyone who wants to start open source contributions? - -1:49:00 - How can people keep up with the rapid pace of front end technology nowadays? - -2:15:00 - Wrap up & bye bye - -## Links - -[Moroccan Team](https://wiki.ubuntu.com/MoroccanTeam) - -[DRM issues](https://www.defectivebydesign.org/) - -## Prepared and Presented by : - -[Meriem Zaid](https://www.facebook.com/MeriemZaid) - -[Mohamed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) diff --git a/blablas/ep48/index.md b/blablas/ep48/index.md deleted file mode 100644 index 7abcd935..00000000 --- a/blablas/ep48/index.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -date: 2020-07-05 -time: 21h:30min -duration: "01:30:00" -title: "Ask Me Anything #3" -tags: ["AMA", "DevC"] -category: "AMA" -isNext: false -video: "272282090889246" -youtube: https://www.youtube.com/watch?v=90t3BRQ1460 -published: true -featured: false -url: "" -podcastUrl: https://www.facebook.com/geeksblabla/videos/272282090889246/ ---- - -Ask Me Anything episode #3 with our community members Mohammed, Ismail and Youssouf, During this episode we answer audience questions about programming, community,new technologies and much more. - -## Guests - -[Mohammed Aboullaite](https://aboullaite.me/) - -[Youssouf EL Azizi](https://elazizi.com/) - -[Ismail EL Azizi](https://ismailelazizi.com/) - -## Notes - -0:00:00 - Introduction - -0:05:00 - Share with us your latest experiences. - -0:07:00 - How is the Facebook Developer Circle - Casablanca community is managed? - -0:10:00 - The importance of maintaining an open source project. - -0:14:00 - Has covid-19 had an impact on the hiring of developers in Morocco? - -0:17:00 - How front-end developers and UX designers work together? - -0:20:00 - What are the conflicts that a designer can have with a developer? - -0:23:00 - How can a developer improve his design perspective? - -0:31:00 - What are your thoughts on Typescript? - -0:36:00 - Any tips for React beginners? - -0:39:00 - Do designers take into consideration time constraint when making a design and handling it to developers? - -0:43:00 - The benefits of working on side projects. - -0:47:00 - Why schools won't teach you new technologies? - -0:50:00 - What are some of the best side projects for a junior developer? - -0:56:00 - Is audio processing worth to be done using web audio API? - -1:00:00 - React Native Fabric Architecture. - -1:03:00 - Personal branding for developers. - -1:04:00 - Side projects to get familiar with Java EE. - -1:06:00 - Why new startups tend to use languages like PHP and PYTHON for the back-end instead of JAVA? - -1:08:00 - The ideal way to start your open source journey. - -1:12:00 - Can we find python internships in Morocco? If so, how can I find them? - -1:16:00 - Any platform where I can find web design challenges? - -1:29:00 - Wrap up and goodbye. - -## Links - -[Refactoring UI](https://refactoringui.com/) - -[React Typescript](https://github.com/typescript-cheatsheets/react-typescript-cheatsheet) - -[React Egghead Course](https://egghead.io/courses/the-beginner-s-guide-to-react) - -[React Episode](https://geeksblabla.io/blablas/react-deep-dive) - -[DevC Casa Hacktoberfest](https://github.com/DevC-Casa/devc-casa-hacktoberfest) - -[JavaScript](https://javascript30.com/) - -[Daily UI Design](https://www.dailyui.co/) - -## Prepared and Presented by : - -[Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep49/index.md b/blablas/ep49/index.md deleted file mode 100644 index 1063a01f..00000000 --- a/blablas/ep49/index.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -date: 2020-07-19 -time: 21h:00min -duration: "02:33:00" -title: "Building A Resume" -tags: ["career"] -category: "career" -isNext: false -video: "338981353771310" -youtube: https://www.youtube.com/watch?v=eTaI-aYN9Vw -published: true -featured: true -url: "" -podcastUrl: https://www.facebook.com/geeksblabla/videos/338981353771310/ ---- - -In this episode of GeeksBlabla, we discuss best practices to build a resume, how to avoid most common mistakes and some tools to build a Good resume. - -## Guests - -[Othmane Kinane](https://www.facebook.com/o.kinane/) - -[Meriem Zaid](https://www.facebook.com/MeriemZaid) - -[Mohamed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) - -## Notes - -0:00:00 - Introduction and welcoming. - -0:05:00 - Why do employers care about resumes and why your resume is very critical in your path searching for a new job? - -0:10:00 - Guests experience writing their first resume. - -0:23:00 - Challenges for Students on Writing their resumes. - -0:38:00 - Most common mistakes made by junior developers building their resumes. - -0:48:00 - Most Important sections for a developer resume. - -1:20:00 - Cover letter. - -1:25:00 - QA. - -1:54:00 - Reviewing community member's resumes. - -2:25:00 - Wrap up and Goodbye. - -## Prepared and Presented by : - -[Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep5/index.md b/blablas/ep5/index.md deleted file mode 100644 index b6037082..00000000 --- a/blablas/ep5/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -date: 2018-12-19 -time: 20h -duration: "1:22:14" -title: "MSS with Taher Alami" -tags: ["MSS", "entrepreneurship", "career", "AR"] -category: "MSS" -isNext: false -video: "2295207890711563" -youtube: https://www.youtube.com/watch?v=1CHPLeWnL5M -published: true -audio: -url: ---- - -In this episode of GeeksBlabla MSS, we welcome Taher Alami , He has been involved in the Moroccan tech community for the last 21 years. As a Web Consultant & Serial Web Entrepreneur, we'll talk about weboma, Moroccan community, startup ecosystem, and more ... - -## Guests - -- [Taher Alami](https://twitter.com/taheralami) - -## Notes - -00:00:00 - Introduction: Welcoming and presenting the guest. - -00:10:00 - Taher Alami's first years in web development. - -00:15:00 - First experience with entrepreneurship. - -00:18:00 - Can anyone become a software developer? and How to be successful as a web developer? - -00:22:00 - Future of the Moroccan web. - -00:25:00 - The Moroccan web community and its future. - -00:29:00 - Working as a developer in Dubai. - -00:32:00 - Startup ecosystem in Morocco. - -00:40:00 - Is it easier to start a startup in Dubai than Morocco? - -00:41:00 - focus on learning one technology or multiple at once? - -00:49:00 - Why should learn about blockchain as a freenalcer? - -00:52:00 - Investment in Africa and Taher Alami experience in this field. - -00:59:00 - Big data and cloud computing in Morocco. - -01:02:00 - AR and Spark AR. - -01:08:00 - Advice for youth Entrepreneurs/Developers. - -01:12:00 - Freezone in Dubai. - -01:21:00 - Wrap up and goodbye! - -## Links - -[Maroc Entrepreneurs](https://marocentrepreneurs.com/) - -[Astrolabs](https://astrolabs.com/) - -[infive Dubai](https://infive.ae/) - -[modum](https://modum.io/) - -[abweb](https://www.abweb.biz/) - -## Prepared and Presented by : - -[Mohammed Aboullaite](https://www.facebook.com/aboullaite) - -[Soufian El Foukahi](https://twitter.com/soufianelf) diff --git a/blablas/ep50/index.md b/blablas/ep50/index.md deleted file mode 100644 index 37b4da70..00000000 --- a/blablas/ep50/index.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -date: 2020-09-07 -time: 22h:15min -duration: "01:06:16" -title: "MSS With Mehdi Mourabit" -category: "MSS" -tags: ["entrepreneurship", "startup", "digital marketing"] -isNext: false -video: "325275602053324" -youtube: https://www.youtube.com/watch?v=kLgl5uDK5IM -published: true -featured: false -url: "" -podcastUrl: https://www.facebook.com/geeksblabla/videos/325275602053324 ---- - -In this episode of GeeksBlabla, our guest Mehdi Mourabit a a serial entrepreneur will share his story. - -## Guests - -[Mehdi Mourabit](https://www.facebook.com/mehdi.mourabit) - -## Notes - -00:00:00 - Introduction and welcoming. - -00:02:00 - Who is Mehdi Mourabit? - -00:03:00 - What is your academic background? - -00:05:00 - How did you do to combine your study in the IT field and marketing? - -00:06:00 - Have you had side projects in parallel with your study? - -00:16:00 - Why did you choose to continue your study and not to focus only on your projects? - -00:19:00 - When you started your first company and why you start with this concept? - -00:21:00 - What is the specialty of your company Webeuz? - -00:22:00 - Why did you choose to create a company and not to work as an employee? - -00:26:00 - How many collaborators you currently have in your company? - -00:27:00 - After Webeuz you start many startups can you talk about this experience? - -00:33:00 - How was your participation with Ohmylead in international competitions? - -00:36:00 - Will you continue on the current domain of Ohmylead - -00:38:00 - Can you talk about your startup Myads? - -00:45:00 - The Morocco ecosystem help launching a startup? - -00:47:00 - Do you think people start giving more importance to digital marketing? - -00:49:00 - What is digital marketing? - -00:50:00 - Can you give us some strategies to do in digital marketing? - -00:53:00 - What it the best platform to use to find clients? - -00:56:00 - Is there a method to be on top of the search result at Google? - -01:01:00 - Are there tools that give you your ranking and what you need to improve on your website? - -01:01:00 - Are there tools that give you your ranking and what you need to improve on your website? - -01:03:00 - What are your recommendations and advice to anyone who wants to start entrepreneurship? - -01:05:00 - Wrap up and Goodbye. - -## Links - -[Ahrefs](https://ahrefs.com) - -[Woorank](https://www.woorank.com) - -[Semrush](https://www.semrush.com) - -## Prepared and Presented by - -[Soufian El Foukahi](https://twitter.com/soufianelf/) diff --git a/blablas/ep51/index.md b/blablas/ep51/index.md deleted file mode 100644 index a1975956..00000000 --- a/blablas/ep51/index.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -date: 2020-09-12 -time: 20h:01min -duration: "02:30:36" -title: "Developers Working Abroad" -tags: ["career"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=jz-wNrMvKjY -published: true -featured: true -video: "999456073888255" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/999456073888255 -audio: ---- - -In this episode of GeeksBlabla, we discuss with our guests what is it like to work abroad as a developer. - -## Guests - -- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) - -- [Mariam Kharbat](https://twitter.com/MeriamKharbat) - -- [Oussama Salimi](https://www.facebook.com/osama.salimi.1) - -- [Ahmed Kachkach](http://kachkach.com/) - -- [Othmane Meniar](https://www.facebook.com/maniar.othmane) - -## Notes - -0:00:00 - Introduction - -0:04:00 - What is your academic background and where have you worked in Morocco? - -0:09:00 - What to consider if you want to work abroad for the first time? - -0:19:00 - Does the position you are applying for abroad take into consideration your Moroccan diploma? - -0:25:00 - What are the pros and cons of working abroad? - -0:35:00 - Is it less complicated to get promoted abroad? - -0:49:00 - Which is better as a first job in Morocco, to work in an "SSII" or in a startup? - -0:54:00 - How is the lifestyle abroad, in terms of cost and work-life? - -1:16:00 - What to consider when applying for remote jobs in Europe? - -1:19:00 - Is English the primary work-language in Europe? - -1:25:00 - What are the best job sectors to apply for abroad? - -1:39:00 - Is it important to change jobs after a period of time? - -1:55:00 - Freelance vs CDI. - -2:02:00 - Do I need to verify all the requirements to apply for a job abroad? - -2:12:00 - How to negotiate your salary? - -2:20:00 - Work permits abroad. - -2:26:00 - Wrap up and goodbye. - -## Links - -- [Calculate your salary](https://stackoverflow.com/jobs/salary) -- [Remote hiring](https://news.ycombinator.com/item?id=17022563) -- [Cost of Living Comparison](https://www.numbeo.com/cost-of-living/comparison.jsp) -- [glassdoor](https://www.glassdoor.com/index.html) - -## Prepared and Presented by - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) -- [Ismail Tlemcani](https://www.facebook.com/profile.php?id=100010413469638) diff --git a/blablas/ep52/index.md b/blablas/ep52/index.md deleted file mode 100644 index f880b3e6..00000000 --- a/blablas/ep52/index.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -date: 2020-09-19 -time: 20h:08min -duration: "02:10:54" -title: ".NET Deep Dive" -tags: ["software engineering"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=f930PXnFiMs -published: true -video: "362896171543318" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/362896171543318 -audio: ---- - -In this episode of GeeksBlabla, we discuss with our guests the overall basic and advanced concepts of .NET. - -## Guests - -- [Anas Mazioudi](https://www.facebook.com/disklosr) - -- [Kafil Nasdami](https://kafil.now.sh) - -- [Yassine Driouich](https://www.facebook.com/Programmation.Maroc) - -## Notes - -0:00:00 - Introduction - -0:03:00 - What exactly is .NET? - -0:10:00 - What is the history of .NET and how did it become open source? - -0:23:00 - How did Microsoft make .NET cross-platform? - -0:25:00 - How to execute a .NET file in Linux? - -0:34:00 - Is it relevant to compare Spring Boot and/or Laravel with .NET? - -0:40:00 - .NET job opportunities, locally vs abroad. - -0:49:00 - Is it worth it to learn .NET? - -0:59:00 - .NET IDE on cloud. - -1:07:00 - Is there some aspects where .NET Core shines the most compared to other stacks? - -1:14:00 - How is package management done in .NET world? - -1:16:00 - What are the basic .NET concepts that every .NET developer has to be familiar with? - -1:24:00 - How to get started with .NET? - -1:29:00 - What are the development tools that you use frequently? - -1:37:00 - How to write performant code with .NET? - -1:41:00 - .NET garbage collection. - -1:45:00 - ASP.NET vs .NET Core - -1:46:00 - What about some famous projects build with .NET? - -1:51:00 - Hosting for .NET web applications. - -1:52:00 - .NET resources and courses. - -2:03:00 - What are the most popular libraries in C#? - -2:07:00 - Wrap up and goodbye. - -## Links - -- [.NET documentation](https://docs.microsoft.com/en-us/dotnet/) -- [.NET youtube playlist](https://www.youtube.com/c/dotNET/playlists) -- [eShopOnContainers](https://github.com/dotnet-architecture/eShopOnContainers) -- [Channel 9](https://channel9.msdn.com/) -- [.NET Fondation - Community Standup](https://www.youtube.com/c/NETFoundation/playlists) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep53/index.md b/blablas/ep53/index.md deleted file mode 100644 index c9241df8..00000000 --- a/blablas/ep53/index.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -date: 2020-09-27 -time: 20h:04min -duration: "02:26:48" -title: "Ask Me Anything #4" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=hUmgd_hH1xY -published: true -video: "327655085127704" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/327655085127704 -audio: ---- - -Ask Me Anything episode #4 with our community members Youssouf, Meriem, Abdelfettah and Mohamed. During this episode we answer audience questions as well as discussing the latest tech news. - -## Guests - -- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) - -- [Mohamed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) - -## Notes - -0:00:00 - Introduction - -0:03:00 - What is going on with TikTok? - -0:08:00 - What is the deal with Oracle and TikTok? - -0:09:00 - The financial impact of the American users of TikTok. - -0:11:00 - Politics and Tech. - -0:15:00 - Discussions on potential TikTok purchase in the United States. - -0:17:00 - The secret AI sauce behind TikTok? - -0:18:00 - Why AI Video Annotation is computationally expensive? - -0:21:00 - What are your thoughts on the Much-Hyped GPT-3 and will it impact the coders? - -0:32:00 - A common pattern of tech trends. - -0:36:00 - The "No-Code" delusion. - -0:38:00 - Fake news and AI. - -0:42:00 - NVIDIA to Acquire Arm for \$40 Billion. - -0:55:00 - Apple's battle with Epic Games. - -1:10:00 - The problem with Antitrust Laws. - -1:12:00 - General Data Protection Regulation (GDPR) in context. - -1:15:00 - The work nature of the CNDP. - -1:21:00 - Octoberfest and open source. - -1:31:00 - What are the responsibilities of a full stack developer in Moroccan companies? - -1:41:00 - What is your opinion on TDD? Do we need to follow it? - -1:46:00 - the importance of end to end testing and integration testing. - -1:53:00 - Where is the Cloud market going? - -2:01:00 - What are the most used frameworks in Moroccan companies? - -2:06:00 - Why a technology has to have support in order for it to be adopted? - -2:08:00 - Microservices vs Monolith. - -2:11:00 - How do you choose the backend technology that you work with? - -2:19:00 - Static site re-generation vs client side fetching/rendering vs server side rendering. - -2:24:00 - Wrap up and goodbye. - -## Links - -- ... - -## Prepared and Presented by - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep54/index.md b/blablas/ep54/index.md deleted file mode 100644 index 8a57a0f3..00000000 --- a/blablas/ep54/index.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -date: 2020-10-04 -time: 21h:00min -duration: "01:08:20" -title: "MSS with Samir Benmakhlouf" -tags: ["MSS"] -category: "MSS" -isNext: false -youtube: https://www.youtube.com/watch?v=IPR2auK2vRg -published: true -video: "356871318697995" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/356871318697995 -audio: ---- - -In this episode of GeeksBlabla, we invited Samir Benmakhlouf who is the current CEO of London Academy School and previous Country Manager of Microsoft Morocco - -## Guests - -- [Samir Benmakhlouf](https://www.linkedin.com/in/samirben/) - -## Notes - -0:00:00 - Introduction and Welcoming. Reminder to register to blablaconf - -0:02:00 - Educational journey + Higher education journey - -0:07:00 - Why going to the US instead of France or other countries to pursue your higher education studies ? - -0:16:00 - Why pursuing a PHD ? Is PHD something you advise for moroccan students ? - -0:18:00 - Advantages and inconvenients of education in USA - -0:23:00 - Doing a PHD directly after a bachelor ? - -0:33:00 - Role of the guest within Microsoft Morocco + Missions of Microsoft Morocco - -0:36:00 - Future plans of Microsoft for Morocco - -0:37:00 - Advices for people that want to work within Microsoft - -0:38:00 - Few words about Bill Gates and his style of management - -0:40:00 - WHy aren't there any big technological lab in Morocco ? (Like Google AI center in Ghana) - -0:47:00 - How is Coding teached in london academy ? - -0:52:00 - Guest point of view about how computer science in teached in Moroccan universities ? - -0:56:00 - How were courses handled in London Academy during the Covid 19 pandemic ? - -## Links - -- [Microsoft MACH program](https://my.gradconnection.com/employers/microsoft/intern-to-mach/) - -## Prepared and Presented by - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) -- [Ismail Tlemcani](https://www.linkedin.com/in/ismailtlemcani) diff --git a/blablas/ep55/index.md b/blablas/ep55/index.md deleted file mode 100644 index 40953cb4..00000000 --- a/blablas/ep55/index.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -date: 2020-10-11 -time: 21h:01min -duration: "02:46:57" -title: "Hacktoberfest & Open Source" -tags: ["open source", "dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=A6mR8LdPLdQ -published: true -video: "776838066222971" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/776838066222971 -audio: ---- - -In this episode of GeeksBlabla, we discuss with our guests, Open Source and the much-hyped Hacktoberfest. - -## Guests - -- [Mohamed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) - -- [Abderrahim Soubai Elidrissi](https://www.facebook.com/zizwar0nline) - -- [Ismail Ghallou](https://twitter.com/smakosh) - -- [Taoufik Abbassid](https://twitter.com/taoufikabbassid) - -## Notes - -0:00:00 - Introduction - -0:06:00 - Tell us about your first experience with Open Source. - -0:16:00 - What exactly is Open Source? - -0:22:00 - A brief history of Open Source and why does it exit. - -0:35:00 - Is Open Source necessarily attached to GitHub? - -0:39:00 - What are your thoughts on Microsoft acquiring GitHub? - -0:47:00 - GitLab Vs GitHub. - -0:48:00 - Why do large companies Open Source their tech? - -1:03:00 - Is it possible for someone to build a product from his Open Source project? - -1:12:00 - Facebook Developer Circles Community Challenge. - -1:20:00 - Do Open Source projects have the most security vulnerabilities? - -1:22:00 - Backdoors and vulnerabilities in Open Source-based products. - -1:26:00 - What is Hacktoberfest? - -1:29:00 - The story behind Hacktoberfest spam PRs. - -1:34:00 - What Open Source is actually about? - -1:38:00 - Donations and Open Source. - -1:41:00 - What have you gained from Open Source as a contributor? - -1:47:00 - What is PR (Pull Request)? - -1:52:00 - Open Source in the Moroccan tech community. - -2:02:00 - What are the requirements that aspiring Open Source contributors should meet? - -2:10:00 - How to make a valuable contribution to an Open Source project for the first time? - -2:19:00 - What are the challenges of maintaining a big Open Source project? - -2:34:00 - What is the status of hackathons during Covid-19? - -2:35:00 - Last words for Open Source enthusiasts. - -2:46:00 - Wrap up and goodbye. - -## Links - -- [Hacktoberfest](https://hacktoberfest.digitalocean.com/) - -- [Open Source with Yassine Elouafi](https://geeksblabla.io/blablas/open-source-with-yassine-elouafi) - -- [Facebook Developer Circles Community Challenge](https://developercircles2020.devpost.com/) - -- [Devc-Casa repository to learn about open source code contributions flow](https://github.com/DevC-Casa/devc-casa-hacktoberfest) - -- [List of awesome Moroccan things for developers](https://github.com/DevC-Casa/awesome-morocco) - -- [freeCodeCamp](https://www.freecodecamp.org/) - -- [Good First Issue](https://goodfirstissue.dev/) - -- [Issue Hub](http://issuehub.io/) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) diff --git a/blablas/ep56/index.md b/blablas/ep56/index.md deleted file mode 100644 index 2d324811..00000000 --- a/blablas/ep56/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -date: 2020-11-08 -time: 20h:00min -duration: "01:38:00" -title: "MSS with Mehdi Belmekki" -tags: ["MSS"] -category: "MSS" -isNext: false -youtube: https://www.youtube.com/watch?v=EbLwd75TBXw -published: true -video: "790324511747449" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/790324511747449 -audio: ---- - -In this episode of GeeksBlabla, we invited Mehdi Belmekki who is the currently Services Sales Rep in GitHub in EMEA region. - -## Guests - -- [Mehdi Belmekki](https://www.linkedin.com/in/belmekki/) - -## Notes - -0:00:00 - Introduction and welcome=ing - -0:02:00 - Who is Mehdi Belmekki ? - -0:04:00 - Academic background, where is the guest born, education until baccalaurรฉat and higher education studies - -0:11:00 - Something you advise for moroccan students in engineering - -0:17:00 - How do you evaluate the certification system along with studies, and what are the pros of INSEAD Certification? - -0:20:00 - First contact with technology in general and computer science in particular - -0:24:00 - Can you tell us more about GitHub student pack? - -0:26:00 - You worked almost 6 years at Alfresco, How was the experience ? - -0:35:00 - You started as Technical Consultant, then promoted to Principal, then Architect and finally Engagement Manager. First can you tell us more about Engagement manager role ? - -0:42:00 - What pushed you to make the move ? - -0:49:00 - In 2018 you Joined Github, How did you get to Github for the first time ? - -0:54:00 - You started as a Solution engineer and then switched to Sales rep. First what is Solution engineering at Github ? - -0:56:00 - How was the switch to Sales Rep, specially in the EMEA region - -1:00:00 - What changed in Github after joining Microsoft ? Are there any cool projects for the future, especially in the CI area. - -1:06:00 - What are the issues you had while switching from Technical to Engagement manager? - -1:09:00 - Are there any future plans of Github with Morocco ? - -1:12:00 - Do you have any special advice for people that want to get into Github? - -1:18:00 - We know Github.com, and not GitHub services. Can you tell us more about it - -1:20:00 - What is your opinion about how computer science is teached in moroccan universities ? Is it good ? Does it lack anything important ? Does it produce competent people ? - -1:28:00 - Does GitHub have any expansion plans in african coutries? - -1:29:00 - Does GitHub have any guidelines on AI and wants to invest in that field? - -1:30:00 - What is the difference between DevSecOps and Pentesting ? - -1:33:00 - When GitHub sponsors will launch in Africa? - -1:38:00 - Wrap up and goodbye. - -## Prepared and Presented by - -- [Mohammed Aboullaite](https://aboullaite.me) - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Hamza Makraz](https://web.facebook.com/MakrazHamza) diff --git a/blablas/ep57/index.md b/blablas/ep57/index.md deleted file mode 100644 index 09afeab3..00000000 --- a/blablas/ep57/index.md +++ /dev/null @@ -1,93 +0,0 @@ ---- -date: 2020-11-15 -time: 20h:02min -duration: "02:03:28" -title: "Career paths for software developers" -tags: ["career"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=HZUKNz4Z1kg -published: true -video: "2748382285425506" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/2748382285425506 -audio: ---- - -In this episode of GeeksBlabla, we discuss with our guests the different career paths for software developers as well as the challenges that aspiring software developers could face in their journey. - -## Guests - -- [Mohamed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) - -- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) - -- [Othmane Kinane](https://www.facebook.com/o.kinane/) - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -## Notes - -0:00:00 - Introduction. - -0:02:00 - What are the career progressions for software developers/engineers in the tech industry and how much time does it take to progress from one level to another? - -0:19:00 - What are the common mistakes developers and software engineers do in their career? - -0:28:00 - Why learning english is a must when it comes to software engineering? - -0:29:00 - Generalist vs Specialist in the tech industry. - -0:35:00 - A mistake to avoid if you want to be taken seriously as a software engineer/developer. - -0:38:00 - What are the different kinds of companies a software engineer/developer could work for? - -0:40:00 - Tell us about your experience working for a services company and how was the career progression system like? - -0:44:00 - What exactly is a services comapany? - -0:49:00 - The career path of software engineer in a product company. - -0:56:00 - What are the different types of product companies? - -0:59:00 - Career evolutions in product companies. - -1:04:00 - Global Distribution System and why airplane tickets can get very expensive? - -1:06:00 - Software engineers in Startups. - -1:10:00 - How the implementation of General Data Protection Regulation impacted Startups? - -1:15:00 - Advice for Startups employees. - -1:18:00 - What should I look for when it comes to Startup equity? - -1:26:00 - If there are no well-defined rules in a company regarding advancement in the hierarchy, how can we progress? - -1:28:00 - What are the optimal career paths for someone who would like to work in Europe? - -1:32:00 - Freelance career path for software engineers? - -1:38:00 - Public organizations and software engineering. - -1:44:00 - What are the disadvantages of working in public organizations after graduation? - -1:46:00 - How companies invest in your learning/training? - -1:57:00 - How to evolve as an infrastructure junior engineer? - -1:59:00 - Wrap up and goodbye. - -## Links - -- [Crunchbase: Discover innovative companies and the people behind them](https://www.crunchbase.com/) - -- [Slicing Pie: Startup equity calculator](https://slicingpie.com/) - -- [Agence de Developpement du Digital: ADD](https://www.add.gov.ma/) - -## Prepared and Presented by - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Ismail Tlemcani](https://www.linkedin.com/in/ismailtlemcani) diff --git a/blablas/ep58/index.md b/blablas/ep58/index.md deleted file mode 100644 index 073f3e50..00000000 --- a/blablas/ep58/index.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -date: 2020-11-22 -time: 20h:06min -duration: "02:38:56" -title: "How Does the Internet Work?" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=8BPT8ElBVnQ -published: true -video: "659009884978348" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/659009884978348 -audio: ---- - -In this episode of GeeksBlabla, we will discover with our guests how the Internet actually works. - -## Guests - -- [Mohamed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) - -- [Abderrahim Soubai Elidrissi](https://www.facebook.com/zizwar0nline) - -- [Yassine Moumen](https://www.linkedin.com/in/yassine-moumen-3a0ab895/) - -## Notes - -0:00:00 - Introduction. - -0:07:00 - Briefly, how does the Internet work? - -0:12:00 - What's the first thing that happens when we type something into Google? - -0:17:00 - Electrical signals and Raspberry Pies. - -0:20:00 - What can we possibly build with a Raspberry Pi? - -0:23:00 - What actually happens when we search for something in Google? - -0:25:00 - What does HSTS protect against and how is it implemented? - -0:28:00 - What is mixed content (HTTP over HTTPS)? - -0:33:00 - What does HTTP or HTTPS mean from the server side? - -0:37:00 - What is DNS, how does it work and why is it important? - -0:44:00 - Does changing DNS improve Internet speed? - -0:53:00 - Do DNS resolvers control your Internet accessibility? - -0:57:00 - How is the encapsulated frame sent to the internet through the default gateway? - -1:03:00 - HTTP and the OSI model. - -1:07:00 - What is the MAC address? - -1:08:00 - What exactly is a protocol? - -1:11:00 - Game Theory and communication networks. - -1:13:00 - What is ARP cash poisoning (ARP Spoofing)? - -1:15:00 - What happens when an HTTP request reaches the Server? - -1:22:00 - Why is it said that HTTP is a stateless protocol? - -1:24:00 - Reverse Proxy Server attacks. - -1:25:00 - Concepts every back-end developer must be familiar with (sessions, cookies and ORM). - -1:31:00 - Subdomains (cost, limitations and hosting). - -1:33:00 - What is a Canonical Name (CNAME)? - -1:35:00 - Why a Server has to be near the Client and how does it impact the Latency? - -1:37:00 - As a DevOps engineer, how much do you need to know about network protocols? Are the basics enough? - -1:39:00 - What is the difference between a Reverse Proxy and a Load Balancer? - -1:47:00 - What is JSON Web Token (JWT) and how does it work? - -1:54:00 - How does a Server respond to a request? - -2:04:00 - What are the major components of a web browser? - -2:13:00 - What is HTML parsing? - -2:18:00 - Why is it important for a software engineer to have global knowledge? - -2:23:00 - What is HTTP/3? - -2:31:00 - Briefly, what exactly is the Deep Web? - -2:37:00 - Wrap up and goodbye. - -## Links - -- [Root name server](https://en.wikipedia.org/wiki/Root_name_server) - -- [What happens when...](https://github.com/alex/what-happens-when) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep59/index.md b/blablas/ep59/index.md deleted file mode 100644 index 5f857ec1..00000000 --- a/blablas/ep59/index.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -date: 2020-11-29 -time: 20h:03min -duration: "02:44:26" -title: "Ask Me Anything #5" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=IQlzDiEjAXY -published: true -video: "1325807077758112" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/1325807077758112 -audio: ---- - -Ask Me Anything episode #5 with our community members and guests Youssouf, Abderrahim, Ouissal and Mohamed. During this episode we answer audience questions about programming, community, new technologies and much more. - -## Guests - -- [Abderrahim Soubai Elidrissi](https://www.facebook.com/zizwar0nline) - -- [Ouissal Moumou](https://www.linkedin.com/in/ouissal-moumou-61a009187/) - -- [Mohamed Moumou](https://www.linkedin.com/in/mohamed-moumou-14404b1b9/) - -## Notes - -0:00:00 - Introduction. - -0:04:00 - How have you heard about Facebook Developer Circles Community Challenge? - -0:05:00 - What was the submitted tutorial/project about? - -0:08:00 - How have you decided to start your Open Source journey? - -0:12:00 - What were the challenges that you have faced while working on the Facebook Developer Circles Community Challenge? - -0:15:00 - What were the tools that you have used to train your bot? - -0:16:00 - How do you manage working while being a computer science student? - -0:17:00 - What is like to be a student at Al Akhawayn University? - -0:19:00 - What are the access options to Al Akhawayn University? - -0:20:00 - What can you tell us about the events that take place in Al Akhawayn University? - -0:22:00 - Can you choose courses in Al Akhawayn University or are they imposed on you? - -0:25:00 - Does the Al Akhawayn University ecosystem help students with their projects and Startup ideas? - -0:27:00 - The importance of self learning for students. - -0:28:00 - How do you learn new technologies as students? - -0:34:00 - What was studying during the pandemic like? - -0:36:00 - How did you get started with programming/coding? - -0:42:00 - Which is the preferable language to learn for the Moroccan Tech Industry? - -0:48:00 - What are your thoughts on Apple's new M1 processor? - -0:53:00 - SAD DNS attack. - -0:56:00 - New Google Chrome Zero-Day vulnerability. - -0:59:00 - Twitter's new Stories feature 'Fleets'. - -1:01:00 - Google Photos will not be free by June 1, 2021! - -1:06:00 - What is new in Angular 11? - -1:09:00 - Vue.js 3 Composition API? - -1:12:00 - Do you focus on the front-end? If so what is your stack? - -1:14:00 - Tailwind CSS and the problem with CSS. - -1:17:00 - Which code editor do you work with? - -1:22:00 - The high quality of Vercel's Next.js conference. - -1:24:00 - Spotify.js, weekend Open Source project by Abderrahim Soubai Elidrissi. - -1:33:00 - What are your thoughts on Prisma next-generation ORM? - -1:35:00 - The importance of using schematics in Angular? - -1:36:00 - What should every Django back-end developer be familiar with? - -1:39:00 - Advice for Machine Learning enthusiasts. - -1:40:00 - What exactly is a software engineer? - -1:46:00 - How much a beginner fullstack developer should charge per hour? - -1:50:00 - How to stand out in the freelance market while other "freelancers" charge below average? - -1:54:00 - Do you have plans to work abroad? - -1:55:00 - Are there any work opportunities for .Net developer? - -1:56:00 - How can I know that I am ready for job interviews? - -2:00:00 - What is the best way to escape a job interview question? - -2:08:00 - Why jumping to the source code of an Open Source project is benificial? - -2:10:00 - What is the role of TypeScript? - -2:18:00 - The secret sauce to master Javascript. - -2:19:00 - What are your learning resources? - -2:23:00 - What are your thoughts on Robotic Process Automation (RPA) in Morocco? - -2:24:00 - As a self-taught developer, how do I know that I'm in the right track with the right pace? - -2:28:00 - The "self-taught title" from the perspective of a self-taught Fullstack developer and Cloud Architect. - -2:30:00 - How do you manage freelancing while being an employee? - -2:31:00 - As a junior developer, how do you deal with the fact that you have to work with technologies you prefer not to work with? - -2:34:00 - How to find your productive way of learning (documentation, videos, podcasts, etc)? - -2:41:00 - Wrap up and goodbye. - -## Links - -- [Customer Service Messenger Bit](https://github.com/ouissa/Customer_Service_Messenger_Bit/blob/master/README.md) - -- [SAD DNS Explained](https://blog.cloudflare.com/sad-dns-explained/) - -- [Hacktoberfest & Open Source](https://geeksblabla.io/blablas/hacktoberfest-open-source) - -- [Awesome Morocco](https://github.com/DevC-Casa/awesome-morocco) - -- [.NET deep dive](https://geeksblabla.io/blablas/net-deep-dive) - -## Prepared and Presented by - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep6/index.md b/blablas/ep6/index.md deleted file mode 100644 index 170c58ed..00000000 --- a/blablas/ep6/index.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -date: 2018-11-14 -time: 20h -duration: "1:19:55" -title: "ML & AI!" -tags: ["ML", "AI"] -category: "dev" -isNext: false -video: "2272738262958526" -youtube: https://www.youtube.com/watch?v=z4e8tPaygxw -published: true -audio: ---- - -On this episode of Geeksblabla, The geeksblabla team members Mohammed aboullaite and Amine will be talking with their guests about Machine Learning and AI. The guests of the episode are Ahmed Kachkach and Redouane Lguensat - -## Guests - -[Amine Hakkou](https://www.facebook.com/hakkou.me) - -[Mohammed Aboullaite](https://www.facebook.com/aboullaite) - -[Ahmed Kachkach](https://www.facebook.com/kachkach.ahmed) - -[Redouane Lguensat](https://www.facebook.com/redouane.lguensat) - -## Notes - -00:00:00 - Guests presentation - -00:04:00 - Difference between AI and Machine learning - -00:08:00 - Why using Machine learning and not just use if statements ? - -00:13:00 - Difference between machine learning and data mining + Difference between AI and big data. - -00:17:00 - When machine learning and AI was first introduced. What is the cause of the interest on these subjects in the recent years ? - -00:25:00 - What are the most affected industries ? - -00:29:00 - Are recommanded system that Ahmed is working on content-based or collaborative filtering ? - -00:30:00 - Singularity ? - -00:35:00 - Social impact of AI ? - -00:38:00 - Question for Ahmed. How can you recommand content for new users without using tracking ? - -00:40:00 - Recommanded materials to start learning. - -00:55:00 - Is it required to have a powerful computer to start practising machine learning ? - -00:58:00 - Futur of AI Engineering, machine-learning engineering in the world and particularly in Morocco ? - -01:05:00 - Will Machine learning replace developers ? - -01:09:00 - AI Frameworks ? - -01:13:00 - Final words and goodbye. - -## Links - -- [Kaggle](https://www.kaggle.com/) -- [Image-net](http://www.image-net.org/) -- [Machine learning course](https://www.coursera.org/learn/machine-learning) -- [Deep learning course](https://www.coursera.org/specializations/deep-learning) -- [Colab](https://colab.research.google.com/) -- [ุชูˆูŠุดูŠุงุช ููŠ ุชุทุจูŠู‚ ุงู„ุฑูŠุงุถูŠุงุช](https://www.facebook.com/AppliedMathsInDarija/) diff --git a/blablas/ep60/index.md b/blablas/ep60/index.md deleted file mode 100644 index ddc25c08..00000000 --- a/blablas/ep60/index.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -date: 2020-12-06 -time: 20h:00min -duration: "03:25:00" -title: "MSS with Mohamed Youssfi" -tags: ["MSS"] -category: "MSS" -isNext: false -youtube: https://www.youtube.com/watch?v=I7FwzqXm-uQ -published: true -video: "200434128392316" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/200434128392316 -audio: ---- - -In this episode of GeeksBlabla, we invited Mohamed Youssfi, one of the most famous university school teachers in morocco, we discuss his experience and IT education in morocco. - -## Guests - -- [Mohamed Youssfi](https://www.facebook.com/mohamed.youssfi.9) - -## Notes - -0:00:00 - Introduction and welcoming - -0:04:00 - Who is Mohamed Youssfi ? - -0:13:00 - Did you plan to be a teacher in your childhood? - -0:22:00 - What is the secret behind a successful teacher? - -0:30:00 - The story behind Mohammed Youssfi successful youtube channel. - -0:46:00 - Why most of the tutorials are related to Java and JEE? - -1:00:00 - Getting updated about the latest technologies? - -1:10:00 - How to deal with the level of disparity between students? - -1:16:00 - What do you think about the height of education in Morocco (IT)? - -1:35:00 - Is diplomas important in IT? - -1:51:00 - French or English for height school education ? - -2:10:00 - The problem of researcher professor not working in technology in the market before teaching it. - -2:28:00 - The State Of Dev In Morocco 2020. - -2:48:00 - what the first thing you will do if you are the minister of education. - -3:04:00 - Pieces of Advice to students. - -## Prepared and Presented by - -- [Youssouf EL Azizi](https://elazizi.com/) - -- [Soufian El Foukahi](https://twitter.com/soufianelf/) diff --git a/blablas/ep61/index.md b/blablas/ep61/index.md deleted file mode 100644 index e7cdc4f7..00000000 --- a/blablas/ep61/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -date: 2020-12-13 -time: 20h:00min -duration: "02:44:00" -title: "State of Dev in Morocco" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=RDhE0RUbkJI -published: true -video: "439772367033060" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/439772367033060 -audio: ---- - -In this episode of GeeksBlabla, we discuss and analyse the results of stateofdev.ma with our guests and answer your questions about the survey. - -## Guests - -- [Haytam Zanid](https://www.facebook.com/hayapoz) -- [Abderrahim Soubai](https://www.facebook.com/zizwar0nline) -- [Djalal](https://twitter.com/enlamp) - -## Notes - -0:00:00 - Introduction - -0:05:00 - How important is it to have these kind of initiatives? - -0:20:00 - Overview - -0:26:00 - Profile - -0:53:00 - Education and Learning - -1:22:00 - Work - -2:00:00 - Technology - -2:13:00 - Community - -2:44:00 - Wrap up & Goodbye - -## Links - -- [Stack Overflow Developer Survey 2020](https://insights.stackoverflow.com/survey/2020) - -- [State Of Dev In Morocco 2020](https://stateofdev.ma/) - -- [The State Of Software Development in Morocco 2019](https://medium.com/@medyo80/the-state-of-software-development-in-morocco-survey-results-2019-1196dc5bffbe) - -- [State Of Dev project on GitHub](https://github.com/DevC-Casa/stateofdev.ma) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Mohamed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) - -- [Mohammed Aboullaite](https://aboullaite.me) diff --git a/blablas/ep62/index.md b/blablas/ep62/index.md deleted file mode 100644 index 3d88ec17..00000000 --- a/blablas/ep62/index.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -date: 2020-12-20 -time: 20h:00min -duration: "01:44:50" -title: "PhD in Computer Science" -tags: ["career"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=ylR9JZfhULc -published: true -video: "150382659848274" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/150382659848274 -audio: ---- - -In this episode of GeeksBlabla, we discuss with our guests Karim Mouhssine and Mohamed, who had experience in PhD before, everything about PhD and how to apply for it in Morocco. - -## Guests - -- [Karim Benzidane](https://www.linkedin.com/in/benzidanekarim) -- [Mouhssine Lakhdissi](https://www.linkedin.com/in/mlakhdissi/) -- [Mohammed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) - -## Notes - -0:00:00 - Introduction - -0:03:00 - What is PhD, How long does it take, Objective of a PHD and How to apply for a CS PHD in Morocco ? - -0:06:00 - Do you have any advices for choosing a subject and the supervisor? - -0:09:00 - Advice for getting an additional funding if possible - -0:12:00 - When you apply for a PhD in university, are you affected automatically to another institution? - -0:13:00 - Is ther a precise time of the year when we can start working on our PhD? - -0:20:00 - What are the objectives and responsabilities of a PhD syudent during his cursus? - -0:32:00 - One of the requirements to aply for PhD is having indexed articles - -0:38:00 - Do salaried PhD students pay subscribtion fees to PhD program? - -0:39:00 - Any advices on how to write a scientific article? - -0:42:00 - Different categories of academic journals. How to know the reputation (or impact) of a given journal ? Is there a ranking of academic journals ? How is a researcher's impact calculated ? - -0:49:00 - Work opportunities for PHDs in Morocco beside a career in academia. Does having a PHD make any difference for working in a multinational company in Morocco like Oracle or Microsoft ? - -1:00:00 - Is it difficult to publish an article? - -1:02:00 - For CS PhDs, are there subjects that englobe other fields? (Industrial for example) - -1:03:00 - Are Maths a principal requirement to apply for PhD in CS? - -1:04:00 - Are there any collaborations of Moroccan universities with foreign universities in computer science research - -1:22:00 - Recent important research made by moroccan universities in computer science. Leading moroccan universities in computer science research - -1:25:00 - Why industries are not pushing forward subjects to universities? - -1:44:00 - Wrap up & Goodbye - -## Links - -- [Oracle Labs projects](https://labs.oracle.com/pls/apex/f?p=LABS:projects:0) - -- [IBM PhD Fellowship Award program](https://www.research.ibm.com/university/awards/fellowships.html) - -- [Computer search & education portal](http://portal.core.edu.au/conf-ranks/) - -- [Erasmus Mundos](https://macece.ma) - -- [Scimago Journal & Country rank](www.scimagojr.com) - -## Prepared and Presented by - -- [Ismail Tlemรงani](https://www.linkedin.com/in/ismailtlemcani) - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Hamza Makraz](https://web.facebook.com/MakrazHamza) diff --git a/blablas/ep63/index.md b/blablas/ep63/index.md deleted file mode 100644 index e957ba86..00000000 --- a/blablas/ep63/index.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -date: 2020-12-27 -time: 20h:03min -duration: "02:15:26" -title: "Tech News & AMA #6" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=RIZLJGi_WR4 -published: true -video: "503863377255590" -url: -podcastUrl: https://www.facebook.com/104120241264783/videos/503863377255590/ -audio: ---- - -Tech News & AMA #6 with our community members Meriem, Youssouf, Abderrahim, Abdelfettah, and Mohamed. During this episode, we discuss the latest Tech News and we answer audience questions about programming, community, new technologies, and much more. - -## Guests - -- [Abderrahim Soubai Elidrissi](https://www.facebook.com/zizwar0nline) - -- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) - -- [Mohamed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -## Notes - -0:00:00 - Introduction. - -0:04:00 - Biggest Tech News in 2020 and the impact of COVID-19. - -0:13:00 - Google Outage. - -0:22:00 - Google monopoly case. - -0:35:00 - The worst-ever US government cyber-attack. - -0:43:00 - New IOS 14 privacy policies? - -0:54:00 - GoDaddy Employees Were Told They Were Getting a Holiday Bonus. It Was Actually a Phishing Test. - -0:59:00 - Zero click venerability & NSO Group. - -1:07:00 - SI and Big Data in Morocco. - -1:12:00 - Bitcoin Approaching \$30k. - -1:20:00 - What is a good backend tech stack to build a social media platform? - -1:22:00 - Research labs in Morocco. - -1:28:00 - SEO for react apps. - -1:30:00 - React Native vs Flutter? - -1:43:00 - Angular Universal. - -1:50:00 - Rust and what kind of project we can build with ? - -1:54:00 - Are there any PAAS, CAAS companies in Morocco? - -2:09:00 - React Server Component? - -2:11:00 - Wrap up and goodbye. - -## Links - -- [Google Cloud Infrastructure Components Incident #20013](https://status.cloud.google.com/incident/zall/20013) - -- [US government cyber-attack](https://www.theguardian.com/technology/2020/dec/18/orion-hack-solarwinds-explainer-us-government) - -- [AlJazeera Documentary : Pegasus](https://www.youtube.com/watch?v=fP-7jNJd5nA&ab_channel=AlJazeeraChannel%D9%82%D9%86%D8%A7%D8%A9%D8%A7%D9%84%D8%AC%D8%B2%D9%8A%D8%B1%D8%A9) - -- [State of Dev in Morocco](https://stateofdev.ma/#technology) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep64/index.md b/blablas/ep64/index.md deleted file mode 100644 index 7c4bd3eb..00000000 --- a/blablas/ep64/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -date: 2021-01-03 -time: 20h:00min -duration: "1:33:00" -title: "MSS with Aboulfeth Hamza" -tags: ["MSS"] -category: "MSS" -isNext: false -youtube: https://www.youtube.com/watch?v=w_oWwCKtVuk -published: true -video: "243301970516290" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/243301970516290/ -audio: ---- - -In this episode of GeeksBlabla, we invited Aboulfeth, a tech serial entrepreneur who started his first business at the early age of 17. He dropped out of college at 21, became ICANN accredited at 24, attended the World Economic Forum at 25, and went to Harvard at 26 and Hajj and Burning Man at 27. - -## Guests - -- [Aboulfeth Hamza](https://www.aboulfeth.com/) - -## Prepared and Presented by - -- [Hamza Makraz](https://web.facebook.com/MakrazHamza) - -- [Mohammed Aboullaite](https://aboullaite.me) - -## Notes - -0:00:00 - Introduction and welcoming - -0:02:00 - Who is Mohamed Hamza? - -0:08:00 - Did you drop out of school to work on your project? - -0:15:00 - Did you give your project more time at the expense of your study? - -0:22:00 - Did you work as an employee earlier? - -0:35:00 - Why did you choose to build a startup instead of having a full-time job? - -0:41:00 - Are Morocco and Moroccan companies start trust Moroccan hosting/cloud providers? - -0:45:00 - Are Morocco and Moroccan companies ready for the cloud? - -0:45:00 - Are Morocco and Moroccan companies ready for the cloud? - -0:49:00 - Building a cloud company in Morocco! Wasn't that a challenge? - -0:51:00 - After Genious, you decided to build a restaurant 2.0! Why this decision? - -0:54:00 - Building a tech startup (or a tech company) in Marrakech vs in Casablanca ? - -0:57:00 - What are the challenges/difficulties in hiring tech profiles? - -1:02:00 - Any advice and recommendations for Moroccan entrepreneurs? - -1:09:00 - What are the Obstacles he went through and succeeded in going over them, and What are the reasons that motivated you to write a book? - -1:22:00 - how was your experience on the program โ€œChkoun ghayastatmar f machrou3iโ€ and what is your feedback about it? - -1:30:00 - Conclusion diff --git a/blablas/ep65/index.md b/blablas/ep65/index.md deleted file mode 100644 index f49ac170..00000000 --- a/blablas/ep65/index.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -date: 2021-01-10 -time: 20h:00min -duration: "02:51:35" -title: "Tech Interviews" -tags: ["tech-interviews", "career"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=AlzjZ5Qxeyg -published: true -video: "234131721578215" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/234131721578215 -audio: ---- - -In this episode of GeeksBlabla, we discussed some ways to present your best self in a tech interview, how to answer common questions, types of interviews, best practices and tips for better communication with the recruiter. - -## Guests - -- [Hanae El Bouyousfi](https://www.facebook.com/hanae.elbouyousfiepelhouari) -- [Diaa Alhak El Fallous](https://www.facebook.com/diaa.alhak) -- [Mohamed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) -- [Mohammed Aboullaite](https://aboullaite.me/) - -## Notes - -0:00:00 - Introduction and welcoming. - -0:08:00 - Types of interviews - -0:22:00 - Things to do before and after the interview - -0:29:00 - Types of technical interviews - -0:52:00 - Tips for better communication with the recruiter - -1:00:00 - How to prepare for technical questions - -1:19:00 - QA. - -1:46:00 - Tell Me About Yourself. - -1:52:00 - Why Should We Hire You? - -1:54:00 - Why did you leave (or why are you leaving) your job? - -1:55:00 - What Are Your Greatest Strengths and Weaknesses? - -2:01:00 - What are your goals? - -2:04:00 - Can you talk about a technical challenge you faced and how you handled it? - -2:06:00 - When was the last time you had a problem with a coworker ? How did you handle it? - -2:09:00 - Salary expectation - -2:20:00 - QA. - -2:43:00 - Conclusion and Goodbye. - -## Links - -- [Brilliant - Making Decisions](https://brilliant.org/) -- [Glassdoor Job Search](https://www.glassdoor.com) -- [StateOfDev.ma](https://stateofdev.ma) - -## Prepared and Presented by - -- [Mohammed Aboullaite](https://aboullaite.me/) -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep66/index.md b/blablas/ep66/index.md deleted file mode 100644 index f5c55370..00000000 --- a/blablas/ep66/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -date: 2021-01-17 -time: 20h:06min -duration: "01:52:14" -title: "Internet of Things" -tags: ["internet-of-Things", "iot"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=XYdc4poSATs -published: true -video: "1312734475751456" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/1312734475751456 -audio: ---- - -In this episode of GeeksBlabla, we discussed with our guests Ali Lakrakbi and Saad Zabari what's IoT, its impact, Adopting IoT in Morocco, and more things about it. - -## Guests - -- [Saad Zabari](https://www.facebook.com/zabari.saad) -- [Ali Lakrakbi](https://www.facebook.com/alilakrakbi) - -## Notes - -0:00:00 - Introduction and welcoming. - -0:07:00 - What's the Internet of Things? - -0:11:00 - Why the Internet of Things, and what is its impact on humanity? - -0:19:00 - Around 4/5 years ago, IoT was trending, and then it started slowly to disappear. Why is that? - -0:26:00 - What are the difficulties in creating a startup in the domain of Iot, and why don't we see many successful startups in that area? - -0:39:00 - What is the impact of 5g on IoT? - -0:43:00 - Rumors said that the vaccine would have a microchip; technically, is that possible? - -0:46:00 - Is there any risk concerning the IoT, specifically because we are related to servers/cloud? - -0:52:00 - What are the solutions proposed by manufacturers to ensure security and privacy? - -1:15:00 - During quarantine, the community of makers and IoT enthusiasts were here, never than before were in the appointment and came up with many great initiatives. Your opinion about that? - -1:23:00 - Adopting IoT in Morocco will help the communities to move forward, and having products made in morocco? - -1:30:00 - How can we integrate IoT into the education system? - -1:49:00 - Conclusion and Goodbye. - -## Prepared and Presented by - -- [Mohammed Aboullaite](https://aboullaite.me/) -- [Ismail Tlemcani](https://www.facebook.com/profile.php?id=100010413469638) diff --git a/blablas/ep67/index.md b/blablas/ep67/index.md deleted file mode 100644 index 73456858..00000000 --- a/blablas/ep67/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -date: 2021-01-24 -time: 20h:03min -duration: "02:20:26" -title: "Tech News & AMA #7" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=GPTjXQ0QHxw -published: true -video: "172380927993448" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/172380927993448/ -audio: ---- - -Tech News & AMA #6 with our community members Abderrahim, Youssouf, Abderrahim, Otmane, and Mohamed. During this episode, we discuss the latest Tech News and we answer audience questions about programming, community, new technologies, and much more. - -## Guests - -- [Abderrahim Soubai Elidrissi](https://www.facebook.com/zizwar0nline) - -- [Mohammed Aboullaite](http://aboullaite.me/) - -- [Otmane Fettal](https://www.facebook.com/otmane.fettal) - -## Notes - -0:00:00 - Introduction. - -0:04:00 - New WhatsApp Privacy. - -0:10:00 - Google Threatens To Shut Down Search Engine In Australia If Forced To Pay Publishers For News. - -0:14:00 - Elastic Changes Licences for Elasticsearch and Kibana: AWS Forks Both - -0:30:00 - The future of React & React Native - -0:31:00 - Micro frontend Apps - -0:43:00 - How to switch your career - -0:46:00 - Parallel Programming - -0:54:00- when we should start using ngrx - -1:02:00 - Self-driving cars updates - -1:07:00 - SEO - -1:13:00 - pub/sub or RabbitMq - -1:31:00 - Gatsbyjs for E-Commerce websites - -1:33:00 - No-Code or low code trends - -1:44:00 - What's the quality strategy used in the projects you worked on? - -1:54:00 - What I should master before get started with devops? - -2:04:00 - Deno.js vs Node - -2:18:00 - Wrap up and goodbye. - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep68/index.md b/blablas/ep68/index.md deleted file mode 100644 index f1265b18..00000000 --- a/blablas/ep68/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -date: 2021-01-31 -time: 20h:01min -duration: "02:00:13" -title: "Developer Productivity" -tags: ["dev", "Developer Productivity"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=cTRm6EdxKb0 -published: true -video: "204395911399267" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/204395911399267/ -audio: ---- - -In this episode of GeeksBlabla, we invited Diaa Alhak El Fallous and Othmane Kinane, and we discuss Developer Productivity Definition, tools, and more things about it. - -## Guests - -- [Diaa Alhak El Fallous](https://www.facebook.com/diaa.alhak) - -- [Othmane kinane](https://twitter.com/OKinane) - -## Notes - -0:00:00 - Introduction. - -0:04:00 - What do we mean with Productivity? - -0:08:00 - How to measure productivity? - -0:20:00 - What do we mean with Productivity for a developer working alone, and How he measure it? - -0:30:00 - Does a predefined roadmap consider a developerโ€™s productivity? - -0:38:00 - How to prioritize tasks - -0:43:00 - How do you do to being consistent at work? - -1:08:00 - How to manage the situation when you need more time to grasp the task's skills or feel that you wonโ€™t meet some deadline? - -1:13:00 - What are the criteria to promote a person? - -1:23:00 - How can a developer avoid burnout? - -1:36:00 - Tips to handle distractions and to be more productive while working - -1:54:00 - Wrap up and goodbye. - -## Prepared and Presented by - -- [Meriem_Zaid](https://www.facebook.com/MeriemZaid) - -- [Mohammed Aboullaite](http://aboullaite.me/) - -- [Otmane Fettal](https://www.facebook.com/otmane.fettal) diff --git a/blablas/ep69/index.md b/blablas/ep69/index.md deleted file mode 100644 index 8519ebfe..00000000 --- a/blablas/ep69/index.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -date: 2021-02-07 -time: 20h:00min -duration: "01:17:01" -title: "Python Deep Dive" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=YIMFlSmIAAk -published: true -video: "805493146670306" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/805493146670306/ -audio: ---- - -In this episode of GeeksBlabla, we invited Taoufik Abbassid along with Mohamed Daoudi to talk about Python, how to get started with it and some of its perspectives. - -## Guests - -- [Taoufik Abbassid](https://twitter.com/taoufikabbassid) - -- [Mohammed Daoudi](https://www.facebook.com/mohammed.daoudi.96155) - -## Notes - -0:00:00 - Introduction. - -0:03:00 - What is Python and what made it so famous? - -0:08:00 - Is Python 2 vs Python 3 still relevant ? - -0:13:00 - Do you recommend beginners to start with Python? - -0:17:00 - How to get started with Python ? - -0:24:00 - Python in the job market. Job offers for Python in Morocco and outside. - -0:25:00 - Is learning (panda,numpy,pyplot..pandas) enough to work as a backend developer? - -0:26:00 - When to use and when not to use Python? - -0:28:00 - Most known use cases of Python. In which use cases Python might be the best programming language to use ? - -0:33:00 - Is Python Slow ? If yes can we make it faster ? - -0:38:00 - Fundamental concepts you need to master before starting with Python. - -0:43:00 - Frameworks & CMS used in Python for web dev. In which scenario use Django or Flask ? - -0:46:00 - Why learn Python? - -0:50:00 - Programming Workflow in Python (package management, venv, IDE..). - -0:52:00 - Testing With Python. - -0:56:00 - Deploy your Python project. - -0:58:00 - Famous Projects built with Python. - -1:01:00 - Resources and Tools. - -1:05:00 - Do you think universities should switch from Java to Python? - -1:17:00 - Wrap up and goodbye. - -# Links - -- [Python for Everybody](https://www.py4e.com/) - -- [Beyond PEP8](https://www.youtube.com/watch?v=wf-BqAjZb8M&ab_channel=PyCon2015) - -- [Python design patterns](https://www.youtube.com/watch?v=Er5K_nR5lDQ&ab_channel=NextDayVideo) - -- [Python the hard way](https://learnpythonthehardway.org/python3/) - -- [Ned Batchelder](https://nedbatchelder.com/blog/) - -## Prepared and Presented by - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Ismail Tlemcani](https://www.linkedin.com/in/ismailtlemcani) diff --git a/blablas/ep7/index.md b/blablas/ep7/index.md deleted file mode 100644 index 6d4ceac8..00000000 --- a/blablas/ep7/index.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -date: 2018-10-25 -time: 20h -duration: "1:22:38" -title: "Mรฉtier de dรฉveloppeur" -tags: ["dev", "career"] -category: "career" -isNext: false -video: "2261166440782375" -youtube: https://www.youtube.com/watch?v=1luq94KV-xM -published: true -audio: ---- - -On this episode of Geeksblabla hosted by (Mohammed Aboullaite) : The guests Soufian , Faissal ,Youssouf and Othmane talks about The bounds of "job of developer" from many point of views educational , technical and psychologic ..etc. - -## Notes - -00:00:00 - Introduction : Welcoming and presenting guests - -00:03:00: - What is the definition(s) of developer job ? - -00:07:00 - How a new developers can choose the best profile for there skills ? - -00:20:00 - Is anybody can be developer ? - -00:39:00 - Any advice to developers to complete their education ? - -00:43:00 - In our context (Moroccan) why we don't have the culture of monitoring junior developer inside companies ? - -00:59:00 - What's differences between Junior, and Senior developers ? - -01:08:00 - Final thoughts ? - -## Links - -- [Medium](https://medium.com/) -- [Dev.to](https://dev.to/) -- [Technical Podcasts](https://www.freecodecamp.org/news/here-are-the-most-interesting-developer-podcasts-2019-edition-4e43063bf8a4/) diff --git a/blablas/ep70/index.md b/blablas/ep70/index.md deleted file mode 100644 index 5bd059ca..00000000 --- a/blablas/ep70/index.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -date: 2021-02-14 -time: 20h:06min -duration: "02:20:34" -title: "DataBases deep dive" -tags: ["dev", "databases"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=1-5Iy8_ZbLs -published: true -video: "104959281537162" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/104959281537162/ -audio: ---- - -In this episode of GeeksBlabla, we invited Taoufik Khamouli, Anouar Boukhatem and El Housseine Jaafari to talk about Databases, different types and, some advanced topics. - -## Guests - -- [Taoufik Khamouli](#) - -- [Anouar Boukhatem](#) - -- [El Housseine Jaafari](#) - -## Notes - -0:00:00 - Introduction. - -0:06:00 - What do we mean by a Database? - -0:10:00 - Why do we need databases? - -0:20:00 - What are the different types of databases and why we have more than one? - -0:39:00 - What are ACID properties, and why are they important? - -0:51:00 - What is denormalization and, when we need it? - -0:55:00 - What consideration to decide between database types? - -1:29:00 - Open-source vs. proprietary database, Which one is better? - -1:34:00 - What is Indexing and how to use it well? - -1:37:00 - What is CAP theorem, and why is it important? - -1:42:00 - What are the requirements to have High Availability & Data Replication in databases? - -1:49:00 - What are Backup & Restore Policies best practices? - -1:56:00 - Advice about Performance Optimization. - -2:19:00 - Wrap up and goodbye. - -# Links - -Books: - -- Building Secure and Reliable Systems: Best Practices for Designing, Implementing, and Maintaining Systems - -- Designing Data-Intensive Applications - -## Prepared and Presented by - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Mohammed Aboullaite](https://aboullaite.me/) - -- [Hamza Makraz](https://web.facebook.com/MakrazHamza) diff --git a/blablas/ep71/index.md b/blablas/ep71/index.md deleted file mode 100644 index a89fee34..00000000 --- a/blablas/ep71/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -date: 2021-02-21 -time: 20h:07min -duration: "01:47:16" -title: "Data Centers in Morocco" -tags: ["datacenter"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=QB4CoBV6-J0 -published: true -video: "292275138906896" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/292275138906896/ -audio: ---- - -In this episode of GeeksBlabla, we invited Abdelfettah Sghiouar, Islam Abouelata and Karim Benzidane to talk about Data Centers. - -## Guests - -- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) - -- [Islam Abouelata](https://web.facebook.com/islam.abouelata?_rdc=1&_rdr) - -- [Karim Benzidane](https://www.linkedin.com/in/benzidanekarim) - -## Notes - -0:00:00 - Introduction. - -0:05:00 - Whatโ€™s a datacenter? - -0:09:00 - How does the datacenter work? - -0:17:00 - What are the criteria to build a data center? - -0:24:00 - What job positions exist, and what people do? - -0:36:00 - What are datacenter impact on environment? - -0:44:00 - Should you care as a developer? - -0:47:00 - Questions and Comments - -0:55:00 - CNCF Casablanca Community announcement - -1:08:00 - What are datacenters exist in Morocco? - -1:09:00 - What do you think of the new datacenter in benguerir? - -1:12:00 - Why are datacenters important for Morocco? - -1:18:00 - Whatโ€™s an ISP (Internet Service Provider), IXP (Internet Exchange Point) and POP (Point of Presence)? - -1:21:00 - Why are datacenters important for Internet? - -1:24:00 - What does it mean to have a home datacenter? - -1:32:00 - What studies do I have to do to work in a datacenter? - -1:35:00 - Questions and Comments - -1:45:00 - Wrap up and goodbye. - -## Prepared and Presented by - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Mohammed Aboullaite](https://aboullaite.me/) diff --git a/blablas/ep72/index.md b/blablas/ep72/index.md deleted file mode 100644 index 78b8a620..00000000 --- a/blablas/ep72/index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -date: 2021-02-28 -time: 20h:00min -duration: "02:10:26" -title: "Tech News & AMA #8" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=5lt-2ID1euI -published: true -video: "491357765578519" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/491357765578519/ -audio: ---- - -Tech News & AMA #8 with our community members Ilyas, Othmane, Mehdi, Otmane, and Mohamed. During this episode, we discuss the latest Tech News and we answer audience questions about programming, community, new technologies, and much more. - -## Guests - -- [Ilyas Bakouch](https://www.linkedin.com/in/ilyasbakouch/) - -- [Othmane MANIAR ](https://www.facebook.com/maniar.othmane) - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -- [Aboullait mohamed](http://aboullaite.me/) - -## Notes - -0:00:00 - Introduction. - -0:05:00 - New Social Media Platform: ClubHouse - -0:15:00 - The guy who hacked into PayPal, apple, MS - -0:33:00 - Bitcoin: News, Energy, future ... - -0:43:00 - Jeff Bezos Steps down as Amazon CEO - -0:50:00 - Some fact and opinions about Java and JEE - -1:06:00 - Intro to Rust - -1:13:00 - Lambda function and serverless - -1:18:00 - Oracle java SE Certification - -1:21:00 - Python compared to JAVA - -1:24:00 - Remote Jobs with companies such as Toptal, xteam ... - -1:32:00 - Flutter - -1:35:00 - Minimum skills that you should learn to start applying for a react job - -1:40:00 - should i know compiler structure and language theory to be a good software engineer - -1:46:00 - PHP - -1:58:00 - Front-end vs. back-end - -2:07:00 - Wrap up and goodbye. - -## Links - -- [Dependency Confusion: How I Hacked Into Apple, Microsoft and Dozens of Other Companies](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) - -- [Build Your own x](https://github.com/danistefanovic/build-your-own-x) - -- [StateOfDev.ma](https://stateofdev.ma) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep73/index.md b/blablas/ep73/index.md deleted file mode 100644 index bfa5dddb..00000000 --- a/blablas/ep73/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -date: 2021-03-07 -time: 20h:00min -duration: "02:12:38" -title: "Women In Tech 2021" -tags: ["dev", "career"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=E0vSLsaOal0 -published: true -video: "721107755256193" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/721107755256193/ -audio: ---- - -In this special episode, we highlight the hidden category in Tech in general, Women and girls in tech in Morocco. The guests are students in IT & CS will share their experiences and their journey. - -## Guests - -- [Maroua Ezouhri](https://www.linkedin.com/in/maroua-ezouhri-381174a7/) - -- [Siham Ben Daia](https://twitter.com/BendaiaS) - -- [Aicha Laafia](https://twitter.com/AichaLaafia) - -- [Afaf Ridaoui](https://twitter.com/_iamaf) - -## Notes - -0:00:00 - Introduction. - -0:03:00 - How did you become interested in engineering - -0:08:00 - What influenced you to pursue a career in IT - -0:17:00 - What is it like to be a woman working in technology for you? - -0:27:00 - How could you convince a random Moroccan girl to be interested in programming? - -0:35:00 - Why we don't see many ladies involved in communities in Morocco? - -0:50:00 - Is it true the is no wage difference between men and women working in Tech in Morocco? - -0:53:00 - How can we help as a tech community to empower more WIT? - -0:54:00 - Is it easy or hard to find a job or Internship - -0:58:00 - Did you ever faced discrimination in a job interview where they prefered a man instead? - -1:00:00 - Do you feel that women in technology careers face barriers not faced by their male counterparts? - -1:05:00 - What are some challenges youโ€™ve faced. - -1:12:00 - OHow can women balance between their work time, home & family time? - -1:27:00 - What job did you dream of when you were a kid โ€“ your Plan A career path - -1:32:00 - How could men empower women in IT? - -1:37:00 - What do you think of StateOfDevMa survey results - -2:12:00 - Wrap up and goodbye. - -## Links - -- [4D jobs listing in Rabat proposed by Intissar](https://us.4d.com/life4d-morocco) - -- [GDG WIT event](https://gdg.community.dev/events/details/google-gdg-settat-presents-wtm-settat-international-womens-day-2021/#/) - -- [StateOfDev.ma](https://stateofdev.ma/#profile-q-0) - -## Prepared and Presented by - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Afaf Ridaoui](https://twitter.com/_iamaf) diff --git a/blablas/ep74/index.md b/blablas/ep74/index.md deleted file mode 100644 index b64748b8..00000000 --- a/blablas/ep74/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -date: 2021-03-14 -time: 20h:00min -duration: "01:52:58" -title: "Monitoring: Why, and How?" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=_i7wNzZUYJw -published: true -video: "164231705516803" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/164231705516803/ -audio: ---- - -In this episode, we talk about Monitoring, what is it about, what to consider in a project roadmap, how to do it and its different types with our guests.. - -## Guests - -- [Boualaid Zakaria](https://twitter.com/zakariaboualaid) - -- [Abderrahim Ouakki](https://twitter.com/OkAbdo) - -- [Aboullaite Mohammed](http://aboullaite.me) - -## Notes - -0:00:00 - Introduction. - -0:05:00 - What is Monitoring? - -0:08:00 - When should monitoring take place? - -0:11:00 - What do we need to monitor ? - -0:22:00 - How we define KPIs - The indicators we need to keep an eye on. - -0:25:00 - How to say that a resource is behaving normally? - -0:43:00 - Monitoring Toolchain (ELK Stack , Prometheus and Grafana) - -0:59:00 - What are the different types of monitoring ? - -1:06:00 - Infrastructure Monitoring vs Application Monitoring - -1:14:00 - What is Observability and how it differs from Monitoring ? - -1:17:00 - What are the big benefits of cloud monitoring solutions VS in house monitoring solutions - -1:23:00 - With the increase in compressed application life cycles, proper monitoring is critical in DevOps. How can we deal with it? - -1:40:00 - Datadog demo - -1:50:00 - Wrap up and goodbye. - -## Links - -- [Distributed Systems Observability - Book](https://www.oreilly.com/library/view/distributed-systems-observability/9781492033431/) - -- [DatadogHQ](https://www.datadoghq.com/blog/tag/monitoring-101/) - -- [Leboncoin test env](https://www.youtube.com/watch?v=LlHmAuMXgPo) - -## Prepared and Presented by - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/blablas/ep75/index.md b/blablas/ep75/index.md deleted file mode 100644 index 28c835f9..00000000 --- a/blablas/ep75/index.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -date: 2021-03-21 -time: 20h:00min -duration: "02:33:56" -title: "IT Certifications" -tags: ["dev"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=H-FWc-0s04c -published: true -video: "2959055287708192" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/2959055287708192/ -audio: ---- - -In this episode, we talk about Certificates in the IT field; why should you care? How will certificates help you in your career, the essential certifications you should have, and how to prepare for those certificates? - -## Guests - -- [Abdelahad SATOUR](https://www.linkedin.com/in/adsatour/) - -- [Elmehdi Bendriss](http://ma.linkedin.com/in/bendriss/) - -- [Hamza BEN AZOUZ](https://www.linkedin.com/in/hamzabenazouz) - -## Notes - -0:00:00 - Introduction. - -0:10:00 - Why should you care about certifications? - -0:28:00 - Types of IT certifications. - -0:38:00 - The best period to get a certificate ( junior or senior ) - -0:43:00 - Certification vs open-source contributions vs blogging. - -0:25:00 - How to say that a resource is behaving normally? - -0:51:00 - Why are IT certifications so expensive? - -1:03:00 - Is certifications from the learning platform worth it? - -1:07:00 - Why some people/companies criticize certifications and interpret them as a bad sign? - -1:22:00 - Certifications for beginners. - -1:46:00 - How to prepare for a certificate? - -2:07:00 - The most valuable certificates in Morocco. - -2:28:00 - Wrap up and goodbye. - -## Certifications - -- Scrum en Management. (Foundation seulement) - Python, .NET, Java, PHP ou JavaScript. - Comptia A+, LPIC 101, CCNA. - ITIL 4, ISO 27001 - AWS/Microsoft Azure/GoogleCloud Foundation - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) - -- [Mohammed Daoudi](https://twitter.com/MIduoad) diff --git a/blablas/ep76/index.md b/blablas/ep76/index.md deleted file mode 100644 index 07ee03a3..00000000 --- a/blablas/ep76/index.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -date: 2021-03-28 -time: 20h:00min -duration: "01:52:00" -title: "Tech News & AMA #9" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=K9DZ8aRCNzE -published: true -video: "4094347893948929" -url: -podcastUrl: https://web.facebook.com/geeksblabla/videos/4094347893948929 -audio: ---- - -Tech News & AMA #9 with our community members Ahmed, Mohamed and Othman. During this episode, we discuss the latest Tech News, **Make it legal** Ahmed's book and we answer audience questions about programming, community, new technologies, and much more. - -## Guests - -- [Ahmed El Azzabi](https://mylink.fyi/elazzabi) - -- [Mohamed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) - -- [Otmane Fettal](https://twitter.com/ofettal) - -## Notes - -0:00:00 - Introduction. - -0:03:00 - NFTs - -0:16:00 - 'Make it legal' book. - -0:32:00 - Remote work future - -0:50:00 - Job satisfaction and How do people end up loving what they do? - -1:18:00 - OVH outage - -1:30:00 - New Windows updates - -1:37:00 - QA - -1:51:00 - Wrap up and goodbye. - -## Links - -- [\$69 Million for a JPEG File - The Wild World of NFTโ€™s](https://www.youtube.com/watch?v=x3nmAX3gAlw) - -- [So Good They Can't Ignore You](https://www.amazon.com/Good-They-Cant-Ignore-You/dp/1455509124) - -- [Remote.ma](https://remote.ma/) - -- [Make it legal](https://makeitlegal.ma/) - -- [StateOfDev.ma](https://stateofdev.ma) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep77/index.md b/blablas/ep77/index.md deleted file mode 100644 index b8c465f6..00000000 --- a/blablas/ep77/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -date: 2021-04-03 -time: 20h:00min -duration: "01:46:12" -title: "No Code / Low Code" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=I-km6iydoiw -published: true -video: "277369320636709" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/277369320636709 -audio: ---- - -In the 77 Episode of GeeksBlaBla , We're taking a look at the landscape of Low Code / No Code technologies; These technologies are taking the world by storm, building a strong Hype around them, and expected to be an industry worth 23 Billion Dollars by 2023. - -## Guests - -- [Djalal](https://twitter.com/enlamp) - -- [Mahmoud Ait Elkatab](https://twitter.com/mahmoudaitkatab) - -## Notes - -0:00:00 - Introduction. - -0:09:00 - Why It took no Code / Low Code trends all these years to reach the mainstream? - -0:16:00 - Can Microsoft Excel / Access considered as Low Code / No Code Platform ? - -0:28:00 - Whatโ€™s the current state of the Low Code / No Code Ecosystem ? - -0:50:00 - Trends in Low Code / No Code Ecosystem ? - -1:04:00 - What are the good practices to follow ? - -1:09:00 - What are the opportunities for developers in a low code context ? - -1:13:00 - Integration between Low Code / No Code Apps and Traditional Business apps ? - -1:19:00 - Vendor Lock-In and Portability ? - -1:27:00 - Are Low Code / No Code Apps ready for Production and Missing Critical Scenarios ? - -1:30:00 - Low Code / No Code Apps longevity ? - -1:35:00 - Wrap up and goodbye - -## Links - -- [No Code / Low Code Ressources](https://www.notion.so/espacelogistique/NoCode-Links-80fb4687b7844bc5ae2e342cdcec818e) - -## Prepared and Presented by - -- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/blablas/ep78/index.md b/blablas/ep78/index.md deleted file mode 100644 index a6bf0566..00000000 --- a/blablas/ep78/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -date: 2021-04-11 -time: 20h:00min -duration: "1:55:00" -title: "MSS with Abdelahad SATOUR" -tags: ["MSS"] -category: "MSS" -isNext: false -youtube: https://www.youtube.com/watch?v=kzYammaow-M -published: true -video: "828579597737140" -url: -podcastUrl: https://web.facebook.com/geeksblabla/videos/828579597737140 -audio: ---- - -In this episode of GeeksBlabla, we invited Abdelahad SATOUR, a developer, tech serial entrepreneur, and learner; Abdelahad has more than 31 certificates in the IT and business fields; during the episode, he shared with us his professional and personal experiences. - -## Guests - -- [Abdelahad SATOUR](https://www.linkedin.com/in/adsatour/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:02:00 - Who is Abdelahad SATOUR? - -0:11:00 - Studies and school activities - -0:15:00 - Learning experience in high school and how to get the best of it? - -0:19:00 - Abdelahad's first steps as an entrepreneur. - -0:28:00 - The secrets behind his commitment and motivation. - -0:58:00 - What is success for Abdelahad? - -1:04:00 - Getting things done. - -1:10:00 - Learning and get updated about tech. - -1:16:00 - How to know what works for you as a learning method? - -1:19:00 - How to be focused on your work? - -1:23:00 - Why certifications? - -1:30:00 - QA - -1:50:00 - Wrap up and goodbye - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep79/index.md b/blablas/ep79/index.md deleted file mode 100644 index da2712bc..00000000 --- a/blablas/ep79/index.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -date: 2021-04-18 -time: 22h:00min -duration: "1:56:15" -title: "Testing & QA Engineering" -tags: ["software testing"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=iCc9kIGoQo4&ab_channel=GeeksBlaBla -published: true -video: "207865764102607" -url: -podcastUrl: https://www.facebook.com/geeksblabla/videos/207865764102607 -audio: ---- - -In this episode of GeeksBlabla, Meriem and Ismail invited Abdelghani Achibane who is a Quality Assurance Engineer to talk about Software testing and QA Engineering - -## Guests - -- [Abdelghani Achibane](https://www.linkedin.com/in/abdelghani-achibane-53a915b7/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:00 - What is Software testing ? - -0:06:00 - History of Software testing ? - -0:08:00 - Difference between debugging and testing - -0:09:00 - Why do we need to test ? - -0:22:00 - Manual tests ? - -0:28:00 - Automated tests ? - -0:31:00 - Software testing lifecycle ? What do we automate in testing ? Relation between automated tests and CI ? - -0:49:00 - Types of automated tests ? - -0:59:00 - TDD vs BDD ? Testing strategy ? - -1:11:00 - Testing metrics ? - -1:19:00 - Popular tools used in automated testing of web applications ? APIs ? Desktop applications ? - -1:31:00 - Ressources to start in QA engineering ? - -1:54:00 - Wrap up and goodbye - -## Prepared and Presented by - -- [Ismail Tlemcani](https://www.linkedin.com/in/ismailtlemcani/) -- [Meriem Zaid](https://www.linkedin.com/in/meriem-zaid-652852187/) diff --git a/blablas/ep8/index.md b/blablas/ep8/index.md deleted file mode 100644 index c86b7281..00000000 --- a/blablas/ep8/index.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -date: 2018-09-27 -time: 20h52 -duration: "1:45:48" -title: "Malware analysis and forensics" -tags: ["cybersecurity", "security"] -category: "dev" -isNext: false -video: "2003419829718683" -youtube: https://www.youtube.com/watch?v=XFGc-P2Ig9w -published: true -audio: ---- - -In this episode of GeeksBlabla, we discuss Cybersecurity, Malware analysis and Forensics with Soufiane Tahiri. - -## Guests - -[Soufiane Tahiri](https://www.linkedin.com/in/soufianetahiri) - -[Mohamed Zakariae El Khdime](https://www.facebook.com/infom2z) - -## Notes - -00:00:00 - Introduction - -00:03:00 - Who is Soufiane Tahiri? - -00:20:00 - What is the purpose of cybersecurity? - -00:21:00 - What is the motivation to keep going on this domain? - -00:24:00 - What are the areas of cybersecurity? - -00:31:00 - Will the cybersecurity market grow? - -00:35:00 - What is cybersecurity? - -00:38:00 - Is vulnerability the result of a bad developer? - -00:45:00 - What is cyber forensics? - -00:54:00 - Forensics need knowledge in all fields of computer science? - -01:00:00 - How to get into cybersecurity? - -01:07:00 - What skills do you look for in a candidate? - -01:11:00 - Certification is a criterion for recruiting? - -01:13:00 - Which profiles are the most looked for in the cybersecurity industry? - -01:18:00 - What are the services in your company? - -01:28:00 - Advice for people who want to get started. - -01:36:00 - What are the vulnerabilities most encountered in your daily work? - -01:38:00 - Change the field of work to cybersecurity at the age of 27 is it late? - -01:40:00 - Conclusion - -## Links - -- [Podcast URL](https://www.facebook.com/sfoukahi/videos/2003419829718683/) -- [Mastering Mobile Forensics](https://www.amazon.com/Mastering-Mobile-Forensics-Soufiane-Tahiri-ebook/dp/B01DT4D5OG) - -## Prepared and Presented by : - -[Soufian El Foukahi](https://twitter.com/soufianelf/) - -[Aicha] diff --git a/blablas/ep80/index.md b/blablas/ep80/index.md deleted file mode 100644 index aeb440a7..00000000 --- a/blablas/ep80/index.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -date: 2021-04-25 -time: 21h:30min -duration: "02:50:00" -title: "Tech News & AMA #10" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=xlPtcJnDeec -published: true -video: "2944864289125301" -url: -podcastUrl: https://web.facebook.com/geeksblabla/videos/2944864289125301 -audio: ---- - -Tech News & AMA #10 with our community members Mohamed,Meriem , soufiane, Abderahim and Youssouf . We discuss the latest Tech News during this episode, and we answer audience questions about programming, community, new technologies, and much more. - -## Guests - -- [Soubai Abderahim](https://soubai.me) - -- [Soufian El Foukahi](https://twitter.com/soufianelf/) - -- [Mohamed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Youssouf El Azizi](https://elazizi.com/) - -## Notes - -0:00:00 - Intro and welcoming. - -0:03:00 - updates from our guests about their learning experience in the last months. - -0:07:00 - New javascript build tools using no-js language such us esbuild, snowpack... - -0:27:00 - Expo vs React Native. - -0:46:00 - Abderahim experience with s7aba podcast. - -0:52:00 - Advice to find internships. - -1:00:00 - Generalist vs specialist - -1:06:00 - Ramadan and productivity - -1:12:00 - Apple event M1 in ipad pro... - -1:20:00 - Nvidia new SoCs for cars and other plans to take over server workloads - -1:24:00 - Google rolling FLoC out to tester and the resistance from the industry and community - -1:32:00 - Generalist vs specialist - -1:40:00 - QA - -2:51:00 - Wrap up and goodbye. - -## Links - -- [DevC Challenge](https://fb.me/F8-Refresh-Hackathon-Re...) - -- [esbuild](https://esbuild.github.io/) - -- [Rome](https://rome.tools/) - -- [S7aba Podcast](https://s7aba.ma/) - -- [stagiaires.ma](https://www.stagiaires.ma/) - -- [stagiaires.ma](https://www.stagiaires.ma/) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) - -- [Mohamed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) diff --git a/blablas/ep81/index.md b/blablas/ep81/index.md deleted file mode 100644 index 33fe12df..00000000 --- a/blablas/ep81/index.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -date: 2021-05-02 -time: 21h:30min -duration: "2:48:15" -title: "Learning How to Learn" -tags: ["learning"] -category: "career" -isNext: false -featured: true -youtube: https://www.youtube.com/watch?v=QKKRE8iunJg -published: true -video: "497523134622676" -url: -podcastUrl: https://web.facebook.com/geeksblabla/videos/497523134622676 -audio: ---- - -In this episode of GeeksBlabla, we discuss with our community members about learning how to learn, the best place to found resources, tricks for effective and productive learning. - -## Guests - -- [Abderrahim Soubai](https://www.facebook.com/zizwar0nline) - -- [Afaf Ridaoui](https://twitter.com/_iamaf) - -- [Djalal](https://twitter.com/enlamp) - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -- [Youssouf EL Azizi](https://elazizi.com/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:03:00 - Why is self-learning important for students and employers? - -0:26:00 - Best ways to know what to learn and how to find your path on self-learning as a beginner? - -0:50:00 - how to form a self-learning habit? - -0:58:00 - RoadMap to follow while learning? - -1:08:00 - Self-thought developers and issues with diplomats? - -1:11:00 - Learning resources and how our guests approach learning new technologies? - -1:31:00 - How to filter learning resources? - -1:45:00 - Tools, tricks, and methodologies for learning consistency. - -1:56:00 - What is enough while learning? - -2:10:00 - How to manage your time, energy, and focus? - -2:25:00 - QA. - -2:39:00 - Wrap up and goodbye - -## Links - -- [RePlay ุงู„ุฌูˆู„ุฉ ุงู„ุฑุงุจุนุฉ](https://ridaouiafaf.wordpress.com/2021/04/24/replay-round-4/) - -- [Stateofdev.ma](https://stateofdev.ma/#learning--education) - -- [roadmap.sh](https://roadmap.sh/) - -- [Atomic Habit](https://englishbook.ma/products/atomic-habits-english-books) - -## Prepared and Presented by - -- [Youssouf EL Azizi](https://elazizi.com/) - -- [Afaf Ridaoui](https://twitter.com/_iamaf) diff --git a/blablas/ep82/index.md b/blablas/ep82/index.md deleted file mode 100644 index c2125ce3..00000000 --- a/blablas/ep82/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -date: 2021-05-16 -time: 20h:03min -duration: "2:17:34" -title: "Software Security 2021" -tags: ["security"] -category: "dev" -isNext: false -featured: true -youtube: https://www.youtube.com/watch?v=r5ZBLg5vL4M -published: true -video: "4239695062759612" -url: -podcastUrl: https://web.facebook.com/geeksblabla/videos/4239695062759612 -audio: ---- - -In this episode of GeeksBlabla, we discuss with our community members about software security, what is software security, tricks for effective and productive learning. - -## Guests - -- [Souhail Mssassi](https://www.linkedin.com/in/mssassi) - -- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:00 - What is software security - -0:11:00 - A bit of history about cybersecurity - -0:24:00 - Is there a secure system? why secure systems? - -0:32:00 - Risk & Risk Assessment - -0:48:00 - What is OWASP? - -0:51:00 - OWASP top 10 - 2021 - -0:51:00 - OWASP top 10 - 2021: Injection - -0:55:00 - OWASP top 10 - 2021: Broken authentication - -1:01:00 - Sensitive data exposure - What is data leakage? What are the factors that can cause data leakage? - -1:08:00 - XML external entities (XXE) - -1:15:00 - Security misconfigurations - -1:49:00 - Cross site scripting (XSS) - discuss vs CSRF - -1:56:00 - What is the 80/20 rule of networking? - -2:00:00 - What are personal traits you should consider protecting data? - -2:05:00 - Famous moroccan hackers and their achievements - -2:09:00 - GRAALVM security - -2:16:00 - Conclusion, Wrap up and goodbye - -## Links - -- [OWASP](https://owasp.org) - -- [OWASP top 10](https://owasp.org/www-project-top-ten/) - -## Prepared and Presented by - -- [Meriem Zaid](https://www.facebook.com/MeriemZaid) - -- [Ismail Tlemcani](https://twitter.com/ismailtlem) diff --git a/blablas/ep83/index.md b/blablas/ep83/index.md deleted file mode 100644 index da3b4e61..00000000 --- a/blablas/ep83/index.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -date: 2021-05-23 -time: 20h:03min -duration: "2:02:50" -title: "DevOps 101" -tags: ["devops"] -category: "dev" -isNext: false -featured: true -youtube: https://www.youtube.com/watch?v=aWtuTFqtpN0 -published: true -video: "393209238528150" -url: -podcastUrl: https://web.facebook.com/geeksblabla/videos/393209238528150 -audio: ---- - -In this episode of GeeksBlabla, we're Revisiting the fundamentals of the DevOps Culture and toolchain. - -## Guests - -- [Mohammed Aboullaite](https://twitter.com/laytoun) - -- [Otmane FETTAL](https://twitter.com/OFettal) - -- [Mohammed Daoudi](https://twitter.com/MIduoad) - -- [Djalal](https://twitter.com/enlamp) - -## Notes - -0:00:00 - Introduction and welcoming - -0:13:00 - Software development and delivery process - -0:20:00 - DevOPS Definition - -0:34:00 - DevOps Goals and Pillars - -0:56:00 - Automation - -1:03:00 - Observability and Monitoring - -1:22:00 - Q/A - -1:42:00 - Toolchain - -1:59:00 - Wrap up and goodbye - -## Links - -- [Feature Flags](https://github.blog/2021-04-27-ship-code-faster-safer-feature-flags/) - -- [DevOPS From a to Zen](https://speakerdeck.com/djalal/devops-from-a-to-zen) - -- [DevOPS Topologies](https://web.devopstopologies.com/) - -- [Fundementals of Software Architecture](https://www.goodreads.com/book/show/44144493-fundamentals-of-software-architecture) - -- [Free for Dev](https://free-for.dev/#/) - -- [Coding Horror](https://blog.codinghorror.com/) - -## Prepared and Presented by - -- [Mohammed Aboullaite](https://twitter.com/laytoun) - -- [Otmane FETTAL](https://twitter.com/OFettal) diff --git a/blablas/ep84/index.md b/blablas/ep84/index.md deleted file mode 100644 index 389761d4..00000000 --- a/blablas/ep84/index.md +++ /dev/null @@ -1,67 +0,0 @@ ---- -date: 2021-05-30 -time: 20h:00min -duration: "02:04:00" -title: "Tech News & AMA #11" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=-Zat3Q0dz7M -published: true -video: "2944864289125301" -url: -podcastUrl: https://web.facebook.com/geeksblabla/videos/2944864289125301 -audio: ---- - -Tech News & AMA #11 with our community members Mohamed, Abderahim and Youssouf . We discuss the latest Tech News during this episode, and we answer audience questions about programming, community, new technologies, and much more. - -## Guests - -- [Soubai Abderahim](https://soubai.me) - -- [Mohammed Aboullaite](https://twitter.com/laytoun) - -- [Youssouf El Azizi](https://elazizi.com/) - -## Notes - -0:00:00 - Intro and welcoming. - -0:03:00 - Updates from our guests about their new job experience. - -0:05:00 - The best way to land a remote job with international startups. - -0:16:00 - Difference between working in morocco and working for a big international company such as Spotify. - -0:34:00 - How to deal with boredom with school subjects? - -0:43:00 - Advice and resources to start an AWS career. - -0:48:00 - State management in React. - -0:56:00 - What technical practices heavily used in Spotify and not used or ignored in morocco. - -1:12:00 - The best way to get a motivating job. - -1:20:00 - Google IO 2021 News. - -1:28:00 - GraphQl vs REST API. - -1:38:00 - ElectronJS - -1:50:00 - Interview process at Spotify. - -2:01:00 - Wrap up and goodbye. - -## Links - -- [spotify apollo](https://github.com/spotify/apollo) - -- [Google IO](https://www.youtube.com/watch?v=_xLgXIhebxA) - -- [stateofdev.ma](https://stateofdev.ma/) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/ep85/index.md b/blablas/ep85/index.md deleted file mode 100644 index 5afbf816..00000000 --- a/blablas/ep85/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -date: 2021-06-06 -time: 20h:03min -duration: "01:19:09" -title: "Celebrating 26 years of Java !" -tags: ["dev", "Java"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=2FcCOLzhqPo -published: true -video: "844144936214263" -url: -podcastUrl: https://web.facebook.com/geeksblabla/videos/844144936214263 -audio: ---- - -Celebrating 26 years of Java with our community members Badr, Marouane, and Mohammed. During this episode we discuss the latest Java updates, and we answer audience questions about Java, and much more. - -## Guests - -- [Badr Elhouari](https://twitter.com/badrelhouar) - -- [Marouane gazayni](https://twitter.com/mgazanayi) - -## Notes - -00:00:00 - Introduction - -00:03:00 - Why are we still using Java? - -00:09:00 - Why backward compatibility important for Java? - -00:13:00 - How they keep the promise of the new release cycle? - -00:16:00 - What are JCP, JSR, and JEP? - -00:21:00 - Why JVM powerful? - -00:27:00 - What is the project in the ecosystem that pushes Java? - -00:35:00 - Comments - -01:03:00 - The demand of java developers in the market (local market and international market) - -01:07:00 - Is Java one of the options for new developers? And What are things that can help them to learn Java? - -01:11:00 - Java still had 3 billion devices or this number decrease? - -01:14:00 - Comments - -01:16:00 - Wrap up and goodbye. - -## Prepared and Presented by - -- [Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/blablas/ep86/index.md b/blablas/ep86/index.md deleted file mode 100644 index 0bbb8d35..00000000 --- a/blablas/ep86/index.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -date: 2021-06-13 -time: 20h:01min -duration: "1:27:20" -title: "MSS with Wassim CHEGHAM" -tags: ["MSS"] -category: "MSS" -isNext: false -youtube: https://www.youtube.com/watch?v=SgOfKQY5ubw -published: true -video: "3029399233957482" -url: -podcastUrl: https://web.facebook.com/geeksblabla/videos/3029399233957482 -audio: ---- - -In this episode of GeeksBlabla, we invited Wassim CHEGHAM, Sr. JavaScript Developer Advocate at Microsoft, Core -contributor at Angular, Core contributor Nodejs and Ambassador for Auth0 - -## Guests - -- [Wassim CHEGHAM](https://twitter.com/manekinekko) - -## Notes - -0:00:00 - Introduction and welcoming - -0:01:00 - Who is Wassim CHEGHAM? - -0:03:00 - How did he get interested in technology? - -0:05:00 - How did you get introduced to Javascript? - -0:08:00 - What is the advice for beginner developers that you can give to choose a programming language for a professional career? - -0:15:00 - Do blogging help in the learning phase and in building your own personal brand? - -0:21:00 - Walk us through some of your contributions to angular , bazel and nodejs and What you will earn from contributing / open source? - -0:30:00 - (comments) How do you learn and practice more in less time? - -0:38:00 - How was your experience at the professional life, and experience to manage the balance between personal life, fun, and professional life? - -0:46:00 - Is Dependency injection implementation still your favorite feature about angular? - -0:47:00 - (comments) How to become a GDE? - -0:55:00 - What does it mean to be an advocate developer? Tell us about the developer advocate iceberg. - -1:06:00 - What is your vision/expectation, where the technologies are heading? - -1:10:00 - (comments) What is your vision/expectation for Javascript? - -1:18:00 - (comments) Talking about web views, do you recommend specific one? (in Angular context) (Cordova, Capacitorjs) - -1:20:00 - (comments) What is the future of Web Assembly, It's time to jump and start learning it? - -1:21:00 - Advice for geeksblabla community - -1:25:00 - Wrap up and goodbye - -## Links - -- [Demystifying Open Source Contributions](https://medium.com/free-code-camp/demystifying-open-source-contributions-c60fe2bde6d0) - -- [The Subtle Art of Being A Developer Advocate](https://dev.to/wassimchegham/the-subtle-art-of-being-a-developer-advocate-gdg) - -## Prepared and Presented by - -- [Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/blablas/ep87/index.md b/blablas/ep87/index.md deleted file mode 100644 index cd1fc761..00000000 --- a/blablas/ep87/index.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -date: 2021-06-20 -time: 20h:00min -duration: "2:49:00" -title: "Working at Google with Moroccan Googlers" -tags: ["career", "google"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=PX3TlIhP5uY -published: true ---- - -In this episode of GeeksBlabla, we invited Moroccan Googlers Karima, Rachid, Mehdi, and Abdelfatah to discuss their journey working at google, the benefits and disadvantages of working on FAANG companies and the interviews process to join Google, and much more. - -## Guests - -- [Abdelfatah Sghiouar](https://twitter.com/boredabdel) - -- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) - -- [Karima Ichou ](https://www.linkedin.com/in/karimaichou/) - -- [Hakmi Rachid](https://www.linkedin.com/in/rachid-hakmi/) - -## Notes - -0:00:00 - Introduction and welcoming - -0:05:00 - Guests academic path - -0:16:00 - Do you think your academic studies in morocco give you enough concepts to start a job at Google? - -0:34:00 - Should joining FAANG be an objective for every developer? - -0:43:00 - What is your job at google? - -0:58:00 - Working in morocco vs working on a big company such as Google. - -1:11:00 - Is working at Google stressful? - -1:25:00 - Bad sides of working at Google (or at a similar size tech company), what donโ€™t you like about your job? - -1:42:00 - Salaries at Google - -1:53:00 - As a student, what should I focus on to make joining Google easier? - -1:58:00 - How can competitive programming help you join Google? - -2:08:00 - Process to join Google. - -2:18:00 - Interviews Process and how to prepare them. - -2:40:00 - Wrap up and goodbye - -## Links - -- [Google Career](https://careers.google.com/) - -- [Grokking the System Design Interview](https://www.educative.io/courses/grokking-the-system-design-interview) - -- [Introducing Non-Abstract Large System Design](https://sre.google/workbook/non-abstract-design/) - -- [The importance of competitive programming - Diaa Alhak El Fallous](https://www.youtube.com/watch?v=_02iZDObK8k) - -- [Inside Look 2021](https://events.withgoogle.com/inside-look-program-2021/) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com) - -- [Abdelfatah Sghiouar](https://twitter.com/boredabdel) diff --git a/blablas/ep88/index.md b/blablas/ep88/index.md deleted file mode 100644 index d4787e0d..00000000 --- a/blablas/ep88/index.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -date: 2021-06-27 -time: 20h:00min -duration: "2:08:23" -title: "Tech News & AMA #12" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=P9FeWS3Bb9A&ab_channel=GeeksBlaBla -published: true ---- - -Tech News & AMA #12 with our community members Otmane, Ismail, Abdelghani, Abderrahim. We discuss the latest Tech News during this episode, and we answer audience questions about programming, community, new technologies, and much more. - -## Guests - -- [Otmane Fettal](https://twitter.com/OFettal) - -- [Ismail Tlemcani](https://twitter.com/Ismailtlem) - -- [Abdelghani ACHIBANE](https://www.linkedin.com/in/abdelghani-achibane-53a915b7/) - -- [Abderrahim soubai](https://www.soubai.me/) - -## Notes - -0:01:00 - Intro and welcoming. - -0:01:00 - What did you learn this week ? - -0:09:00 - Windows 11 launch - -0:46:00 - Should a DevOps know the functional aspect of the app he will work on ? - -0:50:00 - Why does Windows needs Amazon store to deliver Android apps ? - -0:55:00 - Is it common for a developer to know multiple programming language ecosystems ? - -1:01:00 - Tips and guidelines to become a better java developer - -1:04:00 - What language/framework to use for an web application focused on audio content ? - -1:09:00 - Tips to get freelance assignments on freelance websites like upwork and freelance.com - -1:11:00 - Feedbacks after more than a year of remote work - -1:30:00 - For a java/spring developer, what skills should one master to get a job at a multinational corporation ? - -1:33:00 - Toughts about unity and VR development - -1:34:00 - Fake reviews investigation on Amazon and Google by the UK market and competition authority - -1:42:00 - Apple Worldwide Developers Conference - -1:57:00 - Why are developers average age worlwide still very young ? - -2:02:00 - Academic paths to study AI in Morocco ? - -2:05:00 - Will blockchain be used in Morocco ? - -2:07:00- Wrap up and goodbye - -## Links - -- [Amazon Kinesis](https://docs.aws.amazon.com/streams/latest/dev/key-concepts.html) - -## Prepared and Presented by - -- [Otmane Fettal](https://twitter.com/OFettal) - -- [Ismail Tlemcani](https://twitter.com/Ismailtlem) diff --git a/blablas/ep89/index.md b/blablas/ep89/index.md deleted file mode 100644 index a315941d..00000000 --- a/blablas/ep89/index.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -date: 2021-07-04 -time: 20h:00min -duration: "2:47:43" -title: "JavaScript Ecosystem" -tags: ["dev", "javascript"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=FXBoKlQLVdc -published: true ---- - -In this episode of GeeksBlaBla with our community members Wassim, Ismail, Abderahim, Abdellah, and Youssouf, We discuss the Javascript ecosystem from the first javascript days and the secret behind its popularity to the latest new frameworks and tools and the best practices to learn it for beginners and much more. In this episode, we have the chance to present a live demo with Wassim about Github copilot. - -## Guests - -- [Wassim CHEGHAM](https://twitter.com/manekinekko) - -- [Chihab Otmani](https://chihab.dev) - -- [Soubai Abderahim](https://soubai.me) - -- [Abdullah Iraamane](https://www.linkedin.com/in/aairaamane/) - -- [Ismail Ghallou](https://twitter.com/smakosh) - -## Notes - -0:00:00 - Intro and welcoming. - -0:06:00 - The power of javascript and the secret behind it - -0:13:00 - Do you think Javascript is the right language to start with as a beginner? - -0:28:00 - Javascript learning RoadMap - -0:45:00 - JavaScript libraries and frameworks, how to choose? - -1:19:00 - Is Typescript the new Javascript? - -1:33:00 - Javascript in the backend. - -1:41:00 - Javascript new tools systems; esbuild, wite, snowpack. - -1:53:00 - Javascript testing tools and libraries. - -2:02:00 - WebAssemby - -2:07:00 - Github Copilot demo - -2:35:00 - The future of javascript. - -2:45:00- Wrap up and goodbye - -## Links - -- [Javascript Info](https://javascript.info/) -- [Mozilla MDN](https://developer.mozilla.org/en-US/) -- [Web Development Bootcamp](https://frontendmasters.com/bootcamp/) -- [JavaScript wesbos ](https://wesbos.com/javascript) -- [modern-js-cheatsheet](https://github.com/mbeaudru/modern-js-cheatsheet) -- [https://zirotohero.com/](https://zirotohero.com/) -- [Most used framework in Morocco](https://stateofdev.ma/#technology) -- [Typescript challenge ](https://github.com/type-challenges/type-challenges) - -## Prepared and Presented by - -- [Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep9/index.md b/blablas/ep9/index.md deleted file mode 100644 index 726b9908..00000000 --- a/blablas/ep9/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -date: 2018-06-09 -time: 20h -duration: "2:00:40" -title: "UX, UI & design principles" -tags: ["UX", "UI", "frontend", "web", "mobile dev"] -category: "dev" -isNext: false -video: "2151207101778310" -youtube: https://www.youtube.com/watch?v=Zp6CSoa1S4Y -published: true -audio: ---- - -In this episode of GeeksBlabla, Geeksblabla team, with Amine MAAROUF, Maroua EZOUHRI and EL AZIZI's Brothers, talk about The UX, UI definitions, the process to follow, tools to use,...and how to initiate the domain. - -## Guests - -[Amine Maarouf](https://web.facebook.com/amiiiinema) - -[Youssouf EL Azizi](https://elazizi.com/) - -[Ismail EL Azizi](https://ismailelazizi.com/) - -[Maroua EZOUHRI](https://www.facebook.com/maroua.ezouhri.1) - -## Notes - -00:00:00 - Intro. - -00:2:00 - Flash news: Microsoft acquisition of github. - -00:15:00 - Who's Smail El Azizi? - -00:17:00 - What's UX? - -00:19:00 - UX before UI, How much it's true? - -00:26:00 - What are best tools to buil the UX and test it? - -00:28:00 - The process of UX. - -00:35:00 - How much UI updates can infuence the UX? - -00:38:00 - UX depends on the device, but not on the developpement tools (framworks,...). - -00:41:00 - Can UX influence badely the SEO? - -00:45:00 - Examine the psychology of the user is important for UX. - -00:47:00 - What's UI? - -00:55:00 - UX design tools: AdobeXD. - -00:59:00 - To be a good developper, should we be expert in UX/UI? - -1:07:00 - To be good at UI, should we be an artist? - -1:15:00 - How we mesure contrast? Tools? - -1:19:00 - UI tools. - -1:27:00 - Advices to build a good UI. - -1:32:00 - Best way to initiate in UX/UI domain : Best practices, Ressources and things to avoid. - -## Links - -- [Intersting video about Digital War, Marounae Lamharzi](https://www.youtube.com/watch?v=Saqb2Fk58aw&feature=youtu.be&fbclid=IwAR0WkKsgg30BnjrYbka_K5esdrR83Of7FFvBHGX_oTlEend-CD7JPqpgYZI) -- [Figma](Www.figma.com) -- [To test colors](https://coolors.co/) -- [Flat colors collections for inspiration](https://flatuicolors.com/) -- [Another reference to choose colors](http://colorsupplyyy.com/app/) -- [To learn UI: Steve Schoger](https://www.youtube.com/channel/UCxqiDtkXtOCNJdckODHk9YA) diff --git a/blablas/ep90/index.md b/blablas/ep90/index.md deleted file mode 100644 index 086dcc02..00000000 --- a/blablas/ep90/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -date: 2021-07-12 -time: 20h:00min -duration: "1:43:34" -title: "Marketing Yourself as a Developer" -tags: ["dev", "self-branding"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=SA_H8wI0KYQ -published: true ---- - -In this episode of GeeksBlaBla with our community members Ahmed, Ismail, Smakosh, Iliass, Abderahim, and Youssouf, We discuss the importance of self-branding for developers and how it can help developers in their careers. - -## Guests - -- [Ilias Haddad](https://iliashaddad.com/) - -- [Ismail EL Azizi](https://ismailelazizi.com/) - -- [Soubai Abderahim](https://soubai.me) - -- [Ahmed El Azzabi](https://mylink.fyi/elazzabi) - -- [Ismail Ghallou](https://twitter.com/smakosh) - -## Notes - -0:00:00 - Intro and welcoming. - -0:05:00 - What is self-branding? - -0:09:00 - Is self-branding something only experts can do, or should beginners take it seriously too? - -0:14:00 - Learning in public. - -0:21:00 - Guests' experiences on self-branding and how they benefit from it in their career? - -0:54:00 - Self-branding for beginners. - -1:05:00 - Tools and tricks to market yourself: Blogging, open-source, social media, and learning in public. - -1:16:00 - How to start blogging? - -1:24:00 - The secret power of open-source contribution for your self-branding. - -1:38:00- Wrap up and goodbye - -## Links - -- [Lists of Moroccan blogs ](https://github.com/DevC-Casa/awesome-morocco#blogs) - -## Prepared and Presented by - -- [Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep91/index.md b/blablas/ep91/index.md deleted file mode 100644 index eb2ff386..00000000 --- a/blablas/ep91/index.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -date: 2021-09-05 -time: 20h:00min -duration: "1:33:34" -title: "AI & ML" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=X3kIl90GJnk&ab_channel=GeeksBlaBla -published: true ---- - -In this episode of GeeksBlaBla we answer many questions around AI & ML, their fields of applications, what they are, their uses in industry with our guest Amine. - -## Guests - -- [Amine Erraqabi](https://www.linkedin.com/in/amine-erraqabi-35711a96/) - -## Notes - -0:00:00 - Intro and welcoming. - -0:04:00 - Typical day of a data scientist - -0:10:00 - Difference between the job of a data scientist/machine learning engineer/data engineer - -0:16:00 - What are the key skills to have to be a great data scientist - -0:21:00 - Do we need to have advanced mathes skills to start doing ML ? - -0:27:00 - Machine learning process : From collecting the data to testing and tuning our chosen model - -0:36:00 - How is Agile Management implemented in the context of ML projects? - -0:43:00 - Subsets of Machine Learning ? - -0:56:00 - Is statistics necessary for DS ? - -1:01:00 - How to get started in AI ? - -1:03:00 - What are the main stages of AI ? - -1:06:00 - Application of AI techniques in insurance - -1:13:00 - Application of AI techniques in advertising - -1:21:00 - Business opportunities in african countries (Morocco) that AI will open - -1:26:00 - Jobs in AI - -1:33:00- Wrap up and goodbye - -## Links - -- [The Elements of Statistical Learning](https://web.stanford.edu/~hastie/ElemStatLearn/) - -## Prepared and Presented by - -- [Ismail Tlemcani](https://twitter.com/Ismailtlem) - -- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/blablas/ep92/index.md b/blablas/ep92/index.md deleted file mode 100644 index c6c5b8e4..00000000 --- a/blablas/ep92/index.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -date: 2021-09-12 -time: 20h:00min -duration: "1:45:12" -title: "Coding Bootcamp in Morocco" -tags: ["bootcamps", "3wa", "gomycode"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=pKkQXY3yaYc -published: true ---- - -In this episode of GeeksBlaBla, we discuss coding Bootcamps in morocco; what you need to learn before attending a coding bootcamps? Options we have in morocco ? How much does that cost to participate in coding bottcamps? And much more. - -## Guests - -- [Hamza DEBBARH](https://www.linkedin.com/in/hamza-debbarh/) - -- [Amine Mourid](https://www.linkedin.com/in/amine-mourid-a7b204187/) - -- [Koutheir Cherni](https://www.linkedin.com/in/koutheir-cherni/) - -## Notes - -0:00:00 - Intro and welcoming. - -0:05:00 - What is a Bootcamp? - -0:08:00 - Can bootcamp replace studies in university? - -0:19:00 - Does it work for everyone/people with no experience and people with CS degrees? - -0:37:00 - Process of a Bootcamp. - -1:01:00 - How much does a coding Bootcamp cost? - -1:12:00 - Coding bootcamp for children. - -1:16:00 - Coding bootcamp vs online course. - -1:27:00 - Drawbacks of Bootcamps? - -1:37:00- Wrap up and goodbye - -## Links - -- [StateofDev.ma](https://stateofdev.ma/#learning--education) - -- [https://3wa.ma/](https://3wa.ma/) - -- [https://gomycode.com](https://gomycode.com/MA-FR/home) - -## Prepared and Presented by - -- [Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep93/index.md b/blablas/ep93/index.md deleted file mode 100644 index 15b208b5..00000000 --- a/blablas/ep93/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -date: 2021-09-19 -time: 20h:00min -duration: "2:05:10" -title: "Reactive Programming" -tags: ["dev", "react"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=q9wmIdNAup4&ab -published: true ---- - -In this episode of GeeksBlaBla, we discuss with our guests about Reactive programming ecosystem, its difference with Functional programming, its uses, and many other details around the subject. - -## Guests - -- [Chihab Otmani](https://chihab.dev) - -- [Ilyasse Benrkia](https://twitter.com/benrkiailyasse) - -## Notes - -0:00:00 - Intro and welcoming. - -0:04:00 - What does reactive mean in programming? - -0:10:00 - Where is it used? - -0:15:00 - What does RP solve? - -0:25:00 - Advantages and disadvantages of Reactive programming - -0:34:00 - Reactive programming in Java/JS/Angular - -0:46:00 - Reactive programming vs Functional programming - -1:05:00 - Main concepts behind this paradigm, and Observer patterns - -1:18:00 - Differences between Event-Driven Programming and Reactive Programming - -1:22:00 - Reactive programming most used libraries, is it polyglot ? - -1:29:00 - Some Reactive programming libraries - -1:36:00 - How can Reactive programming make us better programmers? - -1:52:00 - Difference between Cold and Hot Observables - -1:56:00 - Is subjects like Observables - -2:05:00- Wrap up and goodbye - -## Links - -- [Reactive Programming by Venkat Subramaniam](https://www.youtube.com/watch?v=weWSYIUdX6c&ab_channel=Devoxx) - -- [Build your own RxJS](https://dev.to/chihab/build-your-own-rxjs-3edd) - -- [ Reactive Programming with RxJS (Angular In Darija](https://www.youtube.com/watch?v=j2WQJ1awxGQ&ab_channel=ngMorocco) - -- [Reactive Streams](https://www.reactive-streams.org/) - -- [The Reactive Manifesto](https://www.reactivemanifesto.org/) - -## Prepared and Presented by - -- [Mohammed Daoudi](https://twitter.com/MIduoad) - -- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/blablas/ep94/index.md b/blablas/ep94/index.md deleted file mode 100644 index f7c185a3..00000000 --- a/blablas/ep94/index.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -date: 2021-09-26 -time: 20h:00min -duration: "1:20:12" -title: "Tech News & AMA #13" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=lrUgCaZyUBc&ab_channel=GeeksBlaBla -published: true ---- - -Tech News & AMA #13 with our community members Abderrahim, Youssouf and Meriem. We discuss the latest Tech News during this episode, and we answer audience questions about programming, community, new technologies, and much more. - -## Guests - -- [Mohammed Akiour](https://www.facebook.com/mohammedakiour) - -- [Meryem Aboulfoujja](https://www.facebook.com/maar.yeem.946) - -- [Abderrahim soubai](https://www.soubai.me/) - -## Notes - -0:00:00 - Intro and welcoming. - -0:03:00 - What is Manara? - -0:10:00 - Is it an online program? How can you manage it if the participant is a worker ? - -0:13:00 - Do they prepare you for interviews, meetup with the talent hunters? - -0:15:00 - How did you find out about Manara ? - -0:20:00 - Is it a free program? - -0:24:00 - How do you select BlablaConf talks ? - -0:29:00 - Epic Games scores for developers in Apple court case - -0:34:00 - How did you find the last Apple event ? - -0:38:00 - StackOverFlow 2021 survey insights - -0:57:00 - StateOfDev survey - -1:15:00 - Geeksblabla giveaway - -1:20:00 - Wrap up and goodbye - -## Links - -- [Manara program](https://www.manara.tech/apply-as-an-engineer?utm_source=FBDevCMorocco) - -- [StateOfDevMA issues](https://github.com/DevC-Casa/stateofdev.ma/issues) - -- [StackOverFlow 2021 survey](https://insights.stackoverflow.com/survey/2021#technology) - -- [BlablaConf](https://blablaconf.com) - -## Prepared and Presented by - -- [Youssouf EL Azizi](https://elazizi.com/) - -- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/blablas/ep95/index.md b/blablas/ep95/index.md deleted file mode 100644 index b87cd1c1..00000000 --- a/blablas/ep95/index.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -date: 2021-10-03 -time: 20h:00min -duration: "2:00:46" -title: "Hacktoberfest & Open Source 2021" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=T0ebJvUiDG4&t=2432ss -published: true ---- - -In this episode, we talk about Open Source and the annual event Hacktoberfest. We answer your questions about getting started with Open Source, the best practices, and how it could help advance your career. - -## Guests - -- [Yasser Tahiri](https://www.yezz.me/) - -- [Abderrahim soubai](https://www.soubai.me/) - -## Notes - -0:00:00 - Intro and welcoming. - -0:04:00 - What is hacktoberfest - -0:09:00 - What are the least requirements to start with Hacktoberfest and Open Source? - -0:30:00 - What are the types of contributions? - -0:40:00 - Are there any Moroccan repositories to contribute to? - -0:44:00 - How to promote your Open Source project? - -1:07:00 - Geeksblabla giveaway - -1:08:00 - How did your contribution to Open Source help you in your career? - -1:12:00 - Did it help you get hired easily? - -1:28:00 - Open Source in Morocco - -1:55:00 - Hacktoberfest participation - -2:00:00 - Wrap up and Goodbye - -## Links - -- [Hacktoberfest 2021](https://hacktoberfest.digitalocean.com/) - -- [Awesome Morocco](https://github.com/DevC-Casa/awesome-morocco) - -- [First Contributions](https://github.com/firstcontributions/first-contributions) - -- [Hacktoberfest & Open source previous Episode](https://geeksblabla.io/blablas/hacktoberfest-open-source) - -## Prepared and Presented by - -- [Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep96/index.md b/blablas/ep96/index.md deleted file mode 100644 index 323adea8..00000000 --- a/blablas/ep96/index.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -date: 2021-11-28 -time: 20h:00min -duration: "1:37:12" -title: "Tech News & AMA #14" -tags: ["AMA"] -category: "AMA" -isNext: false -youtube: https://www.youtube.com/watch?v=NaVuKdEd1H8 -published: true ---- - -Tech News & AMA #14 with our community members Abderrahim, Youssouf, Mohamed, mohamed and Yasser. We discuss the latest Tech News during this episode, and we answer audience questions about programming, community, new technologies, and much more. - -## Guests - -- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) - -- [Mohammed Aboullaite](https://aboullaite.me/) - -- [Yasser Tahiri](https://www.yezz.me/) - -- [Abderrahim soubai](https://www.soubai.me/) - -## Notes - -0:00:00 - Intro and welcoming. - -0:04:00 - Community friends updates - -0:09:00 - New Mac book pro with M1 pro - -0:22:00 - New Generation of CPUs and servers - -0:29:00 - Next 12 features - -0:33:00 - Rust based tools in Javascript ecosystem tools - -0:42:00 - Remix run: a new react based framework for SSR - -0:47:00 - New Python version 3.10 updates - -0:57:00 - PHP new updates - -1:09:00 - What is Web3? - -1:18:00 - Opportunity for people with no degrees - -1:22:00 - QA - -1:31:00 - Wrap up and goodbye - -## Links - -- [Next 12](https://www.youtube.com/watch?v=lRQ5z7i7pxE) - -- [StateOfDevMA issues](https://github.com/DevC-Casa/stateofdev.ma/issues) - -- [remix.run](https://remix.run/) - -- [Python 3.10](https://realpython.com/python310-new-features/) - -## Prepared and Presented by - -- [Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep97/index.md b/blablas/ep97/index.md deleted file mode 100644 index 2dc901d6..00000000 --- a/blablas/ep97/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -date: 2021-12-05 -time: 20h:00min -duration: "3:09:51" -title: "How to succeed in end of study internship (PFE)" -tags: ["career", "PFE"] -category: "career" -isNext: false -youtube: https://www.youtube.com/watch?v=Ivts5p0Cwmo -published: true -featured: true ---- - -We talk about the end of study internship(PFE) in this episode. How to find a good end of studies internship? How to prepare yourself for the internship and succeed during the internship? - -## Guests - -- [Omaima Khalil](https://twitter.com/BadQuinn3) - -- [Aรฏcha GUEDIRA](https://www.linkedin.com/in/a%C3%AFcha-guedira-82718bb1/) - -- [Diaa Alhak El Fallous](https://www.linkedin.com/in/elfallous/) - -- [Mohamed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) - -- [Driss ALLAKI ](https://www.linkedin.com/in/driss-allaki-90801592/) - -## Notes - -0:00:00 - Intro and welcoming. - -0:15:00 - What are the main goals of an end of studies internship? - -0:50:00 - How to deal if your option is not related to development as we don't have enough opportunities on other options such Big data. - -0:54:00 - Are universities helping students find PFE? - -1:04:00 - How and Where can I find internship opportunities? - -1:23:00 - Big companies vs medium and startups, which one is the best for an internship (advantages and disadvantages)? - -1:32:00 - Resumes and Interviews - -2:07:00 - Should companies pay interns? - -2:26:00 - How to succeed during the internship? - -3:00:00 - Wrap up and Goodbye - -## Links - -- [Building A Resume](https://geeksblabla.io/blablas/building-a-resume) - -- [Tech Interviews](https://geeksblabla.io/blablas/tech-interviews) - -## Prepared and Presented by - -- [Youssouf EL Azizi](https://elazizi.com/) diff --git a/blablas/ep98/index.md b/blablas/ep98/index.md deleted file mode 100644 index b0acea5e..00000000 --- a/blablas/ep98/index.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -date: 2021-12-12 -time: 20h:00min -duration: "2:28:53" -title: "The weakest link: why all software needs security?" -tags: ["dev", "security"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=39M0RTjPMnA -published: true -featured: false ---- - -During this episode we will go over common security breaches where the weakest service/software were exploited, why all components of a system should get their share of security evaluation, and why secure software design and coding are important for developers on all stacks. - -## Guests - -- [Hammadi Agharass](https://twitter.com/hagharass) - -- [Souhail Mssassi](https://www.linkedin.com/in/mssassi) - -## Notes - -0:00:00 - Intro and welcoming. - -0:07:00 - Exciting security news: Log4j zero-day exploit meltdown. - -0:13:00 - Java Naming and Directory Interface (JNDI). - -0:16:00 - A brief introduction of security from your perspective? - -0:22:00 - What are the software/system aspects that are more critically in need for security? - -0:32:00 - The weakest links for system security: Physical security. - -0:42:00 - The weakest links for system security: Network security. - -0:49:00 - The weakest links for system security: Employees. - -0:59:00 - Stuxnet, where employees contribute to getting malware to the org. - -1:02:00 - Social engineering attack: FB & Google fraud attack. - -1:04:00 - Small satellite apps: FBI website hack, ~100k email sent from a legit fbi.org email address. - -1:35:00 - Secure coding principles for developers - -1:45:00 - Securing small systems (usually considered irrelevant systems) - -1:54:00 - How to secure frontend? - -2:00:00 - How to make sure employees/developers machines are secure? - -2:09:00 - How to manage secrets - -2:28:00 - Wrap up and Goodbye - -## Links - -## Prepared and Presented by - -- [Mohamed Ez-zarghili](https://www.facebook.com/mohamed.ezzarghili) diff --git a/blablas/ep99/index.md b/blablas/ep99/index.md deleted file mode 100644 index 032f7add..00000000 --- a/blablas/ep99/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -date: 2021-12-19 -time: 20h:00min -duration: "02:30:00" -title: "State of Dev in Morocco 2021" -tags: ["dev"] -category: "dev" -isNext: false -youtube: https://www.youtube.com/watch?v=bEkwDuGGD34 -published: true -featured: true ---- - -In this episode of GeeksBlabla, we discuss and analyse the results of stateofdev.ma 2021 with our guests and answer your questions about the survey. - -## Guests - -- [Yasser Tahiri](https://www.yezz.me/) - -- [Djalal](https://twitter.com/enlamp) - -- [Mohammed Aboullaite](https://aboullaite.me) - -## Notes - -0:00:00 - Introduction - -0:05:00 - Overview - -0:11:00 - Profile - -0:36:00 - Education and Learning - -1:01:00 - Work - -1:36:00 - Technology - -2:07:00 - Community - -2:23:00 - Wrap up & Goodbye - -## Links - -- [State Of Dev In Morocco 2021](https://stateofdev.ma/) - -- [State Of Dev In Morocco 2020](https://stateofdev.ma/2020) - -- [State Of Dev project on GitHub](https://github.com/DevC-Casa/stateofdev.ma) - -## Prepared and Presented by - -- [Youssouf El Azizi](https://elazizi.com/) diff --git a/blablas/next/index.md b/blablas/next/index.md deleted file mode 100644 index 6c173710..00000000 --- a/blablas/next/index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -date: 2020-02-16 -time: 21h -duration: "1:00" -title: "Side Projects & Indie Hacking" -tags: ["indie", "dev", "career"] -category: "career" -isNext: true -published: false -url: -audio: ---- - -... diff --git a/config/website.js b/config/website.js deleted file mode 100755 index 2837bb03..00000000 --- a/config/website.js +++ /dev/null @@ -1,29 +0,0 @@ -module.exports = { - pathPrefix: "/", // Prefix for all links. If you deploy your site to example.com/portfolio your pathPrefix should be "portfolio" - - siteTitle: "๐ŸŽ™๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ปGeeksBlabla ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป๐ŸŽ™| Hottest technology trends, In Darija! ", // Navigation and Site Title - siteTitleAlt: "๐ŸŽ™๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ปGeeksBlabla ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป๐ŸŽ™| Hottest technology trends, In Darija! ", // Alternative Site title for SEO - siteUrl: "https://geeksblabla.io", // Domain of your site. No trailing slash! - siteLanguage: "en", // Language Tag on element - siteLogo: "images/logo.png", // Used for SEO and manifest, path to your image you placed in the 'static' folder - banner: "images/banner.png", - siteDescription: - "๐ŸŽ™๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ปGeeksBlabla ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป๐ŸŽ™| GeeksBlaBla is a community initiative, to discuss, highlight and share the latest IT topics in Moroccan Darija.", // Author for schemaORGJSONLD - organization: "DevC Casablanca", - author: "DevC Casablanca", - // siteFBAppID: '123456789', // Facebook App ID - Optional - //userTwitter: "@ElaziziYoussouf", // Twitter Username - ogSiteName: "๐ŸŽ™๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป GeeksBlabla ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป๐ŸŽ™", // Facebook Site Name - ogLanguage: "en_US", - googleAnalyticsID: "", - - // Manifest and Progress color - themeColor: "#5348FF", - backgroundColor: "#2b2e3c", - - // Social component - // twitter: "https://twitter.com/ElaziziYoussouf/", - // twitterHandle: "@ElaziziYoussouf", - // github: "https://github.com/yjose/", - // linkedin: "https://www.linkedin.com/in/youssouf-elazizi/" -} diff --git a/cypress.json b/cypress.json deleted file mode 100644 index 0967ef42..00000000 --- a/cypress.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/episodes/episode-0001.md b/episodes/episode-0001.md new file mode 100644 index 00000000..15cf49cb --- /dev/null +++ b/episodes/episode-0001.md @@ -0,0 +1,53 @@ +--- +date: 2018-05-19 +duration: "2:00:13" +title: "Devops" +tags: ["devops"] +category: "dev" +youtube: https://www.youtube.com/watch?v=_tizAkqvivM +published: true +--- + +On this episode of Geeksblabla : Soufian , Mohammed Aboullaite , Mohammed Ezzarghili , Youssouf and Amine talks about DevOps : Definitions , brief history , Work flow , Tools and best practices ..etc. + +## Guests + +## Notes + +00:00:00 - Introduction : Mohammed / Soufian announcing upcoming community events + +00:09:00 - Welcoming to the new season + +00:10:00 - What is the definition of DevOps ? + +00:17:00 - Can we use DevOps on any industry context ? + +00:22:00 - Good resource for understanding DevOps ( Book : Effective DevOps) + +00:28:00 - What is the principal DevOps process/Workflow/toolchain used in software engineering ? + +00:37:00 - Code (Toolchain) + +00:47:00 - IDE (Toolchain) + +00:52:00 - How automatically deploy angular app ? + +00:59:00 - Build (Toolchain) + +01:03:00 - Test (Toolchain) + +01:19:00 - Packaging (Toolchain) + +01:25:00 - Releasing (Toolchain) + +01:29:00 - Configuration (Toolchain) + +01:37:00 - Monitoring (Toolchain) + +01:45:00 - Questions + +## Links + +- [Effective DevOps](http://shop.oreilly.com/product/0636920039846.do) + +## Prepared and Presented by diff --git a/episodes/episode-0002.md b/episodes/episode-0002.md new file mode 100644 index 00000000..0e862c1b --- /dev/null +++ b/episodes/episode-0002.md @@ -0,0 +1,58 @@ +--- +date: 2018-05-26 +duration: "2:46:10" +title: "Web Dev JS frameworks, Best practices" +tags: ["web", "JS", "backend", "frontend"] +category: "dev" +youtube: https://www.youtube.com/watch?v=y8mbKtOmNrg +published: true +--- + +In this episode of GeeksBlabla, Geeksblablas team with the amzing Abdelkader Boudih talk about the Web fundamental, new js Frameworks and some best practices you need to follow as a web developer. + +## Guests + +## Notes + +0:00:00 - Intro && new DevC events + +0:03:00 - About Abdelkader Boudih + +0:06:00 - History of the web, web2 and web3 + +0:10:00 - HTML && CSS + +0:16:00 - How to start learning Web fundamentals ? + +0:33:00 - Web designer vs front-end developer + +0:30:00 - CSS Tools + +0:40:00 - Browsers engines + +0:46:00 - How to start on server side projects? + +0:58:00 - Compiled and interpreted Languages + +1:04:00 - Databases && ORMs + +1:11:00 - Javascript Ecosystem + +2:16:00 - Exiting web dev stuff in 2018 you need to know + +## Links + +- [W3C](https://www.w3.org/) +- [SCSS](https://sass-lang.com/) +- [purifycss](https://purifycss.online/) +- [Autoprefixer](https://autoprefixer.github.io/) +- [Can I use](https://caniuse.com/) +- [Reactjs](https://reactjs.org/) +- [Angular](https://angular.io/) +- [VueJs](https://vuejs.org/) +- [graphQl](https://graphql.org/) +- [PWA](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps) +- [Service Worker](https://developers.google.com/web/ilt/pwa/introduction-to-service-worker) +- [WebAssembly](https://webassembly.org/) + +## Prepared and Presented by diff --git a/episodes/episode-0003.md b/episodes/episode-0003.md new file mode 100644 index 00000000..6f2cb109 --- /dev/null +++ b/episodes/episode-0003.md @@ -0,0 +1,61 @@ +--- +date: 2018-06-02 +duration: "1:46:09" +title: "AR, VR and Game Dev " +tags: ["game dev", "AR", "VR"] +category: "dev" +youtube: https://www.youtube.com/watch?v=R6173SwSg8w +published: true +--- + +In this episode of GeeksBlabla, we discuss AR , VR & Game Dev . + +## Guests + +[Omar Guendeli](https://www.linkedin.com/in/omar-guendeli-70a57862) + +[Amine Hakkou](https://www.hakkou.me/) + +## Notes + +00:00:00 - Introduction + +00:07:00 - What is VR ? + +00:11:00 - History of Gaming ? + +00:20:00 - Begin your career as a Game Developper ? + +00:27:00 - Difference between VR & AR ?(open computer vision framework) + +00:33:00 - Game dev Tools ? + +00:36:00 - Game dev Process ? + +00:46:00 - Java & Game dev ? + +00:51:00 - Game Design Patterns ? + +00:55:00 - Game Art ? + +01:03:00 - Ai in Game dev ? + +01:09:00 - Graphics in Game dev ? + +01:15:00 - Managing Audio in Game dev ? + +01:19:00 - Advices for beginners ? + +01:40:00 - Conclusion + +## Links + +- [GAMASUTRA](https://www.gamasutra.com/) +- [GAME DEV](https://gamedev.net/) +- [GD CONF](https://gdconf.com/) + +## Prepared and Presented by + +[Soufian El Foukahi](https://twitter.com/soufyanAI) + +[Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/episodes/episode-0004.md b/episodes/episode-0004.md new file mode 100644 index 00000000..144c9303 --- /dev/null +++ b/episodes/episode-0004.md @@ -0,0 +1,72 @@ +--- +date: 2018-06-09 +duration: "2:00:40" +title: "UX, UI & design principles" +tags: ["UX", "UI", "frontend", "web", "mobile dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=Zp6CSoa1S4Y +published: true +--- + +In this episode of GeeksBlabla, Geeksblabla team, with Amine MAAROUF, Maroua EZOUHRI and EL AZIZI's Brothers, talk about The UX, UI definitions, the process to follow, tools to use,...and how to initiate the domain. + +## Guests + +[Amine Maarouf](https://web.facebook.com/amiiiinema) + +[Youssouf EL Azizi](https://elazizi.com) + +[Ismail EL Azizi](https://www.linkedin.com/in/ismail-el-azizi/) + +[Maroua EZOUHRI](https://www.linkedin.com/in/maroua-ezouhri-381174a7) + +## Notes + +00:00:00 - Intro. + +00:02:00 - Flash news: Microsoft acquisition of github. + +00:15:00 - Who's Smail El Azizi? + +00:17:00 - What's UX? + +00:19:00 - UX before UI, How much it's true? + +00:26:00 - What are best tools to buil the UX and test it? + +00:28:00 - The process of UX. + +00:35:00 - How much UI updates can infuence the UX? + +00:38:00 - UX depends on the device, but not on the developpement tools (framworks,...). + +00:41:00 - Can UX influence badely the SEO? + +00:45:00 - Examine the psychology of the user is important for UX. + +00:47:00 - What's UI? + +00:55:00 - UX design tools: AdobeXD. + +00:59:00 - To be a good developper, should we be expert in UX/UI? + +1:07:00 - To be good at UI, should we be an artist? + +1:15:00 - How we mesure contrast? Tools? + +1:19:00 - UI tools. + +1:27:00 - Advices to build a good UI. + +1:32:00 - Best way to initiate in UX/UI domain : Best practices, Ressources and things to avoid. + +## Links + +- [Intersting video about Digital War, Marounae Lamharzi](https://www.youtube.com/watch?v=Saqb2Fk58aw&feature=youtu.be&fbclid=IwAR0WkKsgg30BnjrYbka_K5esdrR83Of7FFvBHGX_oTlEend-CD7JPqpgYZI) +- [Figma](Www.figma.com) +- [To test colors](https://coolors.co/) +- [Flat colors collections for inspiration](https://flatuicolors.com/) +- [Another reference to choose colors](http://colorsupplyyy.com/app/) +- [To learn UI: Steve Schoger](https://www.youtube.com/channel/UCxqiDtkXtOCNJdckODHk9YA) + +## Prepared and Presented by diff --git a/episodes/episode-0005.md b/episodes/episode-0005.md new file mode 100644 index 00000000..236e103e --- /dev/null +++ b/episodes/episode-0005.md @@ -0,0 +1,68 @@ +--- +date: 2018-09-27 +duration: "1:45:48" +title: "Malware analysis and forensics" +tags: ["cybersecurity", "security"] +category: "dev" +youtube: https://www.youtube.com/watch?v=XFGc-P2Ig9w +published: true +--- + +In this episode of GeeksBlabla, we discuss Cybersecurity, Malware analysis and Forensics with Soufiane Tahiri. + +## Guests + +[Soufiane Tahiri](https://www.linkedin.com/in/soufianetahiri) + +[Mohamed Zakariae El Khdime](https://www.facebook.com/infom2z) + +## Notes + +00:00:00 - Introduction + +00:03:00 - Who is Soufiane Tahiri? + +00:20:00 - What is the purpose of cybersecurity? + +00:21:00 - What is the motivation to keep going on this domain? + +00:24:00 - What are the areas of cybersecurity? + +00:31:00 - Will the cybersecurity market grow? + +00:35:00 - What is cybersecurity? + +00:38:00 - Is vulnerability the result of a bad developer? + +00:45:00 - What is cyber forensics? + +00:54:00 - Forensics need knowledge in all fields of computer science? + +01:00:00 - How to get into cybersecurity? + +01:07:00 - What skills do you look for in a candidate? + +01:11:00 - Certification is a criterion for recruiting? + +01:13:00 - Which profiles are the most looked for in the cybersecurity industry? + +01:18:00 - What are the services in your company? + +01:28:00 - Advice for people who want to get started. + +01:36:00 - What are the vulnerabilities most encountered in your daily work? + +01:38:00 - Change the field of work to cybersecurity at the age of 27 is it late? + +01:40:00 - Conclusion + +## Links + +- [Podcast URL](https://www.facebook.com/sfoukahi/videos/2003419829718683/) +- [Mastering Mobile Forensics](https://www.amazon.com/Mastering-Mobile-Forensics-Soufiane-Tahiri-ebook/dp/B01DT4D5OG) + +## Prepared and Presented by + +[Soufian El Foukahi](https://twitter.com/soufyanAI) + +[Aicha](#) diff --git a/episodes/episode-0006.md b/episodes/episode-0006.md new file mode 100644 index 00000000..795e2215 --- /dev/null +++ b/episodes/episode-0006.md @@ -0,0 +1,77 @@ +--- +date: 2018-10-13 +duration: "1:25:54" +title: "MSS with Amine Raghib" +tags: ["MSS"] +category: "mss" +youtube: https://www.youtube.com/watch?v=DlE3drGZgpo +published: true +--- + +In this episode of GeeksBlabla, our guest Amine Raghib - a writer and founder of the Professional Blog , and he is also known for his episodes on a YouTube channel of the same name that has achieved great success attracting millions of viewers - will share his story. + +## Guests + +[Amine Raghib](https://www.facebook.com/raghiblog/) + +## Notes + +0:00:00 - Introduction and welcoming. + +0:01:00 - Who is Amine Raghib? + +0:03:00 - How your dream began? + +0:06:00 - When you started as a web developer more than 10 years ago? How was the web experience back then? + +0:08:00 - Has anyone helped you get started? + +0:12:00 - How did you get the idea of โ€‹โ€‹creating content the first time? + +0:14:00 - What is the difference between white hat hackers and black hat hackers? + +0:17:00 - What can you advise who wants to start creating IT content in Arabic? + +0:22:00 - Did you see that the Arab technical content will be improved? + +0:31:00 - The free content and the donations. + +0:33:00 - Have you thought about helping young people, so Arabic content will be rich? + +0:36:00 - The problem is that people who provide good content do not support others. + +0:39:00 - the problem of criticizing content creators. + +0:44:00 - what are the difficulties that you affront when you want to create content to different cultures and countries? + +0:47:00 - Do you think that the technical competitions do not let us know the true Moroccan level of technology. + +0:54:00 - Does the problem lie in finding ideas for applying ideas? + +0:59:00 - Moroccan mentality, and tech events . + +1:03:00 - What mistakes have you made in your career?. + +1:10:00 - Is the transition from providing deep technical content to simple content, a good decision for you?. + +1:12:00 - What is the funniest thing, your follower asked for? + +1:15:00 - how the sponsors came to you? , and how you choose the sponsors? + +1:18:00 - What is the last advice you give to anyone who wants to blog and create content in Arabic? + +1:23:00 - How do you see the presence of Moroccans in technology? and have ever seen someone who marked you? + +2:15:00 - Wrap up & bye bye + +## Links + +[Almohtarif Channel](https://www.youtube.com/channel/UCO58fldVogtwlz7c2PTeWrg) + +## Prepared and Presented by + +[Mohammed Aboullaite](https://twitter.com/laytoun) + +[El Foukahi Soufian](https://twitter.com/soufyanAI) + +[Amine Maarouf](https://web.facebook.com/amiiiinema) diff --git a/episodes/episode-0007.md b/episodes/episode-0007.md new file mode 100644 index 00000000..91212089 --- /dev/null +++ b/episodes/episode-0007.md @@ -0,0 +1,39 @@ +--- +date: 2018-10-25 +duration: "1:22:38" +title: "Developer Career" +tags: ["dev", "career"] +category: "career" +youtube: https://www.youtube.com/watch?v=1luq94KV-xM +published: true +--- + +On this episode of Geeksblabla hosted by (Mohammed Aboullaite) : The guests Soufian , Faissal ,Youssouf and Othmane talks about The bounds of "job of developer" from many point of views educational , technical and psychologic ..etc. + +## Guests + +## Notes + +00:00:00 - Introduction : Welcoming and presenting guests + +00:03:00 - What is the definition(s) of developer job ? + +00:07:00 - How a new developers can choose the best profile for there skills ? + +00:20:00 - Is anybody can be developer ? + +00:39:00 - Any advice to developers to complete their education ? + +00:43:00 - In our context (Moroccan) why we don't have the culture of monitoring junior developer inside companies ? + +00:59:00 - What's differences between Junior, and Senior developers ? + +01:08:00 - Final thoughts ? + +## Links + +- [Medium](https://medium.com/) +- [Dev.to](https://dev.to/) +- [Technical Podcasts](https://www.freecodecamp.org/news/here-are-the-most-interesting-developer-podcasts-2019-edition-4e43063bf8a4/) + +## Prepared and Presented by diff --git a/episodes/episode-0008.md b/episodes/episode-0008.md new file mode 100644 index 00000000..26e13b93 --- /dev/null +++ b/episodes/episode-0008.md @@ -0,0 +1,66 @@ +--- +date: 2018-11-14 +duration: "1:19:55" +title: "ML & AI!" +tags: ["ML", "AI"] +category: "dev" +youtube: https://www.youtube.com/watch?v=z4e8tPaygxw +published: true +--- + +On this episode of Geeksblabla, The geeksblabla team members Mohammed aboullaite and Amine will be talking with their guests about Machine Learning and AI. The guests of the episode are Ahmed Kachkach and Redouane Lguensat + +## Guests + +[Amine Hakkou](https://www.hakkou.me/) + +[Mohammed Aboullaite](https://twitter.com/laytoun) + +[Ahmed Kachkach](https://www.facebook.com/kachkach.ahmed) + +[Redouane Lguensat](https://www.facebook.com/redouane.lguensat) + +## Notes + +00:00:00 - Guests presentation + +00:04:00 - Difference between AI and Machine learning + +00:08:00 - Why using Machine learning and not just use if statements ? + +00:13:00 - Difference between machine learning and data mining + Difference between AI and big data. + +00:17:00 - When machine learning and AI was first introduced. What is the cause of the interest on these subjects in the recent years ? + +00:25:00 - What are the most affected industries ? + +00:29:00 - Are recommanded system that Ahmed is working on content-based or collaborative filtering ? + +00:30:00 - Singularity ? + +00:35:00 - Social impact of AI ? + +00:38:00 - Question for Ahmed. How can you recommand content for new users without using tracking ? + +00:40:00 - Recommanded materials to start learning. + +00:55:00 - Is it required to have a powerful computer to start practising machine learning ? + +00:58:00 - Futur of AI Engineering, machine-learning engineering in the world and particularly in Morocco ? + +01:05:00 - Will Machine learning replace developers ? + +01:09:00 - AI Frameworks ? + +01:13:00 - Final words and goodbye. + +## Links + +- [Kaggle](https://www.kaggle.com/) +- [Image-net](http://www.image-net.org/) +- [Machine learning course](https://www.coursera.org/learn/machine-learning) +- [Deep learning course](https://www.coursera.org/specializations/deep-learning) +- [Colab](https://colab.research.google.com/) +- [ุชูˆูŠุดูŠุงุช ููŠ ุชุทุจูŠู‚ ุงู„ุฑูŠุงุถูŠุงุช](https://www.facebook.com/AppliedMathsInDarija/) + +## Prepared and Presented by diff --git a/episodes/episode-0009.md b/episodes/episode-0009.md new file mode 100644 index 00000000..3034eea2 --- /dev/null +++ b/episodes/episode-0009.md @@ -0,0 +1,69 @@ +--- +date: 2018-12-19 +duration: "1:22:14" +title: "MSS with Taher Alami" +tags: ["MSS", "entrepreneurship", "career", "AR"] +category: "mss" +youtube: https://www.youtube.com/watch?v=1CHPLeWnL5M +published: true +--- + +In this episode of GeeksBlabla MSS, we welcome Taher Alami , He has been involved in the Moroccan tech community for the last 21 years. As a Web Consultant & Serial Web Entrepreneur, we'll talk about weboma, Moroccan community, startup ecosystem, and more ... + +## Guests + +- [Taher Alami](https://twitter.com/taheralami) + +## Notes + +00:00:00 - Introduction: Welcoming and presenting the guest. + +00:10:00 - Taher Alami's first years in web development. + +00:15:00 - First experience with entrepreneurship. + +00:18:00 - Can anyone become a software developer? and How to be successful as a web developer? + +00:22:00 - Future of the Moroccan web. + +00:25:00 - The Moroccan web community and its future. + +00:29:00 - Working as a developer in Dubai. + +00:32:00 - Startup ecosystem in Morocco. + +00:40:00 - Is it easier to start a startup in Dubai than Morocco? + +00:41:00 - focus on learning one technology or multiple at once? + +00:49:00 - Why should learn about blockchain as a freenalcer? + +00:52:00 - Investment in Africa and Taher Alami experience in this field. + +00:59:00 - Big data and cloud computing in Morocco. + +01:02:00 - AR and Spark AR. + +01:08:00 - Advice for youth Entrepreneurs/Developers. + +01:12:00 - Freezone in Dubai. + +01:21:00 - Wrap up and goodbye! + +## Links + +[Maroc Entrepreneurs](https://marocentrepreneurs.com/) + +[Astrolabs](https://astrolabs.com/) + +[infive Dubai](https://infive.ae/) + +[modum](https://modum.io/) + +[abweb](https://www.abweb.biz/) + +## Prepared and Presented by + +[Mohammed Aboullaite](https://twitter.com/laytoun) + +[Soufian El Foukahi](https://twitter.com/soufyanAI) diff --git a/episodes/episode-0010.md b/episodes/episode-0010.md new file mode 100644 index 00000000..011b8c60 --- /dev/null +++ b/episodes/episode-0010.md @@ -0,0 +1,55 @@ +--- +date: 2018-12-26 +duration: "1:24:32" +title: "MSS with Mohamed Zakariae El Khdime!" +tags: ["MSS", "cybersecurity", "entrepreneurship", "career"] +category: "mss" +youtube: https://www.youtube.com/watch?v=XVl0Y-7JZxw +published: true +--- + +In this episode of GeeksBlabla, we discuss with Mohamed Zakariae El Khdime about his success story. + +## Guests + +[Mohamed Zakariae El Khdime](https://www.facebook.com/infom2z) + +## Notes + +00:00:00 - Who is Mohamed Zakariae El Khdime? + +00:03:00 - What is your academic background? + +00:06:00 - did you study in any public high school? + +00:20:00 - How did you switch from developement to security? + +00:22:00 - What is cybersecurity? + +00:25:00 - Why do hackers always wear hoodies? Behind the stereotype? + +00:26:00 - What is your first project in entrepreneurship? + +00:31:00 - How to start a career in cybersecurity? + +00:33:00 - How to found a startup in Dubai? + +00:46:00 - Advice for people who want to found a startup. + +00:46:00 - What kind of knowledge and amount of capital required for someone to take on entrepreneurship? + +00:51:00 - How did you manage to get funds? + +00:59:00 - What are your future plans, and what kind of advice could you give to someone who wants to get into cybersecurity? + +01:10:00 - Mohammed Aboullaite: Thanking DevC team and launch DevC projects for 2019 + +01:24:00 - Goodbye! + +## Links + +## Prepared and Presented by + +[Mohammed Aboullaite](https://twitter.com/laytoun) + +[Soufian El Foukahi](https://twitter.com/soufyanAI) diff --git a/episodes/episode-0011.md b/episodes/episode-0011.md new file mode 100644 index 00000000..c9ea449d --- /dev/null +++ b/episodes/episode-0011.md @@ -0,0 +1,67 @@ +--- +date: 2019-01-24 +duration: "1:27:22" +title: "Blockchain & CryptoCurrency with Badr Bellaj" +tags: ["blockchain", "cryptocurrency"] +category: "dev" +youtube: https://www.youtube.com/watch?v=OTEpZ1bfdzY +published: true +--- + +In this episode of GeeksBlabla, The team and Badr Talk about Blockchain & CryptoCurrency + +## Guests + +[Badr Bellaj](https://www.linkedin.com/in/bellajbadr/) + +## Notes + +0:00:00 - Episode Introduction and Guests Intro + +0:03:00 - What is Cryptocurrency? + +0:16:00 - What is the difference between the private consortium and the Blockchain? + +0:22:00 - How do new nodes join the public blockchain? + +0:25:00 - What is the meaning of "Mining" and why we need it? + +0:34:00 - Do Cryptocurrencies encourage illegal activities and money laundering? + +0:38:00 - What is "Forking"? + +0:43:00 - What is the difference between "Soft fork" and "Hard fork"? + +0:46:00 - Is there a precise time for the Ethereum fork? + +0:47:00 - What are "Distributed Operations" in the context of Cryptocurrency? + +0:52:00 - Do Blockchain solution providers have control over the applications? + +0:58:00 - What is "Proof of Stake"? + +1:02:00 - What are the use cases of the Blockchain other than Cryptocurrency? + +1:07:00 - Can we do business with the Blockchain in Morocco? + +1:08:00 - What are the required skills to become a Blockchain developer? + +1:17:00 - What companies are looking for Blockchain developers? + +1:19:00 - The future of Blockchain and Cryptocurrencies from the point of view of Badr? + +1:23:00 - What are some of the Blockchain hot topics? + +## Links + +[Bitcoin](https://bitcoin.org/) + +[Ethereum](https://ethereum.org/) + +[Blockchain by example](https://www.packtpub.com/big-data-and-business-intelligence/blockchain-example) + +## Prepared and Presented by + +[Mohammed Aboullaite](https://twitter.com/laytoun) + +[Mohamed Ez-zarghili](https://twitter.com/ezzarghili) diff --git a/episodes/episode-0012.md b/episodes/episode-0012.md new file mode 100644 index 00000000..4f9acbc5 --- /dev/null +++ b/episodes/episode-0012.md @@ -0,0 +1,48 @@ +--- +date: 2019-03-21 +duration: "1:09:42" +title: "Introduction to Open Source" +tags: ["open source", "dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=_tizAkqvivM +published: true +--- + +On this episode of Geeksblabla : The team Soufian (Host) , Abdelkader , El Hussein , Youssouf talks about Open source : Definitions , brief history , Licence types and how can we start contribute on open source projects ..etc. + +## Guests + +## Notes + +00:00:00 - Introduction and welcoming guests + +00:01:00 - What is Open source ? + +00:07:00 - Why using licence and what's is the types of open source licences ? + +00:10:00 - Why big companies are interested by open source ? + +00:14:00 - Why contributing to open source projects ? + +00:15:00 - The contribution to open source projects can help me to improve my skills ? + +00:24:00 - How can I contribute to an open source project ? + +00:27:00 - How can I found / choose my first project to contribute onto ? + +00:29:00 - What is a PR ? + +00:37:00 - How can I start my own open source project (code,test,documentation.. etc) ? + +00:42:00 - What is the golden advices for a beginner contributor in open source projects ? + +00:49:00 - Is the code written inside company during 9-5 work belong to the developer or the company ? + +## Links + +- [Choose a license #1](https://ufal.github.io/public-license-selector/) +- [Choose a license #2](https://choosealicense.com/) +- [Code Triage](https://www.codetriage.com/) +- [First Contributions](https://github.com/firstcontributions/first-contributions) + +## Prepared and Presented by diff --git a/episodes/episode-0013.md b/episodes/episode-0013.md new file mode 100644 index 00000000..b19f998a --- /dev/null +++ b/episodes/episode-0013.md @@ -0,0 +1,85 @@ +--- +date: 2019-03-28 +duration: "1:48:05" +title: "Open Source with Yassine Elouafi" +tags: ["open source", "dev", "react", "web", "frontend"] +category: "dev" +youtube: https://www.youtube.com/watch?v=i75VSwgRD1k +published: true +--- + +In this episode of GeeksBlabla, We discuss with Yassin El ouafi, creator of redux-sagas library about his success story working as an open source contributors and maintainer of one of the biggest library on React ecosystem. + +## Guests + +[Yassin El ouafi](https://twitter.com/yassineelouafi2/) + +## Notes + +00:00:00 - Introduction and welcoming guests + +00:02:00 - How he started programming ? + +00:08:00 - How he started his open-source projects ? + +00:13:00 - How to grow and progress in software programming ? + +00:18:00 - Follow the trends in programming. + +00:24:00 - What are your favorites patterns and paradigms? + +00:37:00 - Functional programming. + +00:42:00 - How do you find time for the opensource ? + +00:44:00 - Books or tutorials ? + +00:48:00 - What is the "Thought leaders". + +00:52:00 - Why should i work in the open source. + +00:56:00 - Pieces of Advice for a junior developer to start the open-source. + +01:01:00 - How did you start the Redux-saga? + +01:10:00 - What is the difference between Redux-saga and CQRS ? + +01:15:00 - Talk about Hooks, Pure components and React fiber. + +01:32:00 - Future projects in the open-source ? + +01:35:00 - Open-source in morocco & Pieces of Advice for Moroccan programmers. + +## Links + +[W3C](https://www.w3.org/) + +[SCSS](https://sass-lang.com/) + +[Purifycss](https://purifycss.online/) + +[Autoprefixer](https://autoprefixer.github.io/) + +[Can I use](https://caniuse.com/) + +[Reactjs](https://reactjs.org/) + +[Angular](https://angular.io/) + +[VueJs](https://vuejs.org/) + +[GraphQl](https://graphql.org/) + +[PWA](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps) + +[Service Worker](https://developers.google.com/web/ilt/pwa/introduction-to-service-worker) + +[WebAssembly](https://webassembly.org/) + +## Prepared and Presented by + +[Youssouf El Azizi](https://elazizi.com) + +[Soufian El Foukahi](https://twitter.com/soufyanAI) + +[Amine Hakkou](https://www.hakkou.me//) diff --git a/episodes/episode-0014.md b/episodes/episode-0014.md new file mode 100644 index 00000000..c8a28adc --- /dev/null +++ b/episodes/episode-0014.md @@ -0,0 +1,62 @@ +--- +date: 2019-05-11 +duration: "1:05:23" +title: "Open source licenses & standards" +tags: ["open source"] +category: "dev" +youtube: https://www.youtube.com/watch?v=PHqAbG-Wgkg +published: true +--- + +In this episode, Geeksblabla team talks about the Open source licenses & standards, starting from the definition of software licensing to the commonly known Open source software licenses such as MIT, GPL ..etc. + +## Guests + +## Notes + +00:00:00 - Introduction : Welcoming to the new season + +00:01:00 - What is Software licensing ? + +00:02:00 - Does writing code with no license gives the right to others to use it ? + +00:05:00 - What's the history of Open Source Licensing ? + +00:09:00 - Difference between Open Source Software, Free Software & Freeware (Gratis software) ? + +00:14:00 - Families of Open source Licenses + +00:16:00 - Copyright and copyleft, what's the difference ? + +00:19:00 - GPL, AGPL and LGPL ? + +00:23:00 - Are licenses related to territories ? (International and national licenses) + +00:25:00 - Does GPL gives freedom to commercial companies ? + +00:26:00 - Is using multiple licenses in one project possible ? + +00:32:00 - How to make sure other people are following my license ? + +00:40:00 - How open source licenses problems are solved legally in Morocco ? + +00:45:00 - How to chose the license that fits the most my project ? + +00:53:00 - Why should I mark my projects with Open Source License ? + +## Links + +- [GNU - Richard Stallman](https://en.wikipedia.org/wiki/GNU_Project) +- [Free Software Foundation](https://www.fsf.org/) +- [Mozilla Foundation](https://foundation.mozilla.org/fr/) +- [Apache Foundation](https://www.apache.org/) +- [GENERAL PUBLIC LICENSE (GPL)](https://www.gnu.org/licenses/gpl-3.0.en.html) +- [AFFERO GENERAL PUBLIC LICENSE (AGPL)](https://www.gnu.org/licenses/agpl-3.0.en.html) +- [LESSER GENERAL PUBLIC LICENSE (GPL)](https://www.gnu.org/licenses/lgpl-3.0.en.html) +- [Copyleft](https://www.copyleft.org/) +- [MIT](https://en.wikipedia.org/wiki/Free_Software_Foundation) +- [Choose a license #1](https://ufal.github.io/public-license-selector/) +- [Choose a license #2](https://choosealicense.com/) +- [Adding a license on github](https://help.github.com/en/articles/adding-a-license-to-a-repository) + +## Prepared and Presented by diff --git a/episodes/episode-0015.md b/episodes/episode-0015.md new file mode 100644 index 00000000..03320c37 --- /dev/null +++ b/episodes/episode-0015.md @@ -0,0 +1,61 @@ +--- +date: 2019-05-18 +duration: "1:27:53" +title: "Software security" +tags: ["security", "backend", "frontend", "software engineering"] +category: "dev" +youtube: https://www.youtube.com/watch?v=Fvv0ZglfYng +published: true +--- + +In this episode of GeeksBlabla, team talks about the Software security, definition, techniques and tools. + +## Guests + +[Soubai Abderahim](https://twitter.com/soub4i) + +[Mohammed Aboullaite](https://twitter.com/laytoun) + +[Mohamed Ez-zarghili](https://twitter.com/ezzarghili) + +## Notes + +00:00:00 - Introduction + +00:05:00 - What is software security? + +00:11:00 - Cybersecurity's history + +00:17:00 - What is OWASP? + +00:23:00 - OWASP Top 10 of 2019 + +00:23:00 - What is SQL injection attack and how to prevent it? + +00:35:00 - Difference between XSS and CSRF + +00:37:00 - What is XSS and how to prevent it? + +00:46:00 - What is CSRF and how to prevent it? + +00:53:00 - What are static analysis tools? + +01:01:00 - What are vulnerability scanning tools and what attacks protect from? + +01:08:00 - What are dynamic security testing tools? + +01:14:00 - What is the solution if a project's dependency has a security vulnerability? + +01:19:00 - GraalVM Security + +01:24:00 - Conclusion + +01:27:00 - Goodbye! + +## Links + +## Prepared and Presented by + +[Mohammed Aboullaite](https://twitter.com/laytoun) + +[Mohamed Ez-zarghili](https://twitter.com/ezzarghili) diff --git a/episodes/episode-0016.md b/episodes/episode-0016.md new file mode 100644 index 00000000..569c5648 --- /dev/null +++ b/episodes/episode-0016.md @@ -0,0 +1,48 @@ +--- +date: 2019-05-25 +duration: "1:19:23" +title: "The twelve-factor App" +tags: ["backend", "software engineering", "dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=_0xISo0SFJ4 +published: true +--- + +On this episode of Geeksblabla, Soufian El Foukahi, Mohammed Aboullaite and Amine Hakkoue explore the 12 factor app methodology which is is a set of best practices that enable applications to be resilient, scalable and portable. + +## Guests + +## Notes + +00:00:00 - Introduction + +00:07:00 - Codebase + +00:13:00 - Dependencies + +00:20:00 - Config + +00:24:00 - Backing Services + +00:30:00 - Build, release, run + +00:34:00 - Processes + +00:39:00 - Port Binding + +00:44:00 - Concurrency + +00:55:00 - Disposability + +00:58:00 - Dev/prod parity + +01:03:00 - Logs + +01:10:00 - Admin processes + +## Links + +- [12 factors app website](https://12factor.net/) +- [12 factors app website source code](https://github.com/heroku/12factor) + +## Prepared and Presented by diff --git a/episodes/episode-0017.md b/episodes/episode-0017.md new file mode 100644 index 00000000..4a4ac276 --- /dev/null +++ b/episodes/episode-0017.md @@ -0,0 +1,41 @@ +--- +date: 2019-06-02 +duration: "1:09:27" +title: "Serverless" +tags: ["serverless", "dev", "software engineering"] +category: "dev" +youtube: https://www.youtube.com/watch?v=EHkP_ycfdUk +published: true +--- + +On this episode of Geeksblabla, Abderahim ,Mohammed , Amine and Youssouf Talk about Serverless && Faas, A complete introduction, Pros and Cons And why you should start working with Faas. + +## Guests + +## Notes + +0:00:00 - Introduction + +0:05:00 - what is Serverless ? + +0:09:00 - Pay as you consume ๐Ÿค”? + +0:15:00 - Serverless limitation + +0:20:00 - Pros and Cons + +0:30:00 - Can we use serverless for any project ? + +0:40:00 - Programing languages and serverless + +0:55:00 - Serverless best practices + +1:04:00 - Should I use serverless in my next Project ? + +## Links + +- [Serverless Tools](https://serverless.css-tricks.com) +- [Netlify](https://www.netlify.com/) +- [AWS lambda](https://aws.amazon.com/lambda/) + +## Prepared and Presented by diff --git a/episodes/episode-0018.md b/episodes/episode-0018.md new file mode 100644 index 00000000..1912a696 --- /dev/null +++ b/episodes/episode-0018.md @@ -0,0 +1,105 @@ +--- +date: 2019-07-04 +duration: "1:46:29" +title: "GeeksBlabla MSS With Google Engineer Sghiouar Abdelfettah" +tags: ["MSS", "career"] +category: "mss" +youtube: https://www.youtube.com/watch?v=tu29LZacZSA +published: true +--- + +In this episode of GeeksBlabla MSS, we welcome Sghiouar Abdelfettah: Google Engineer at Google, to talk about his journey in IT field + +## Guests + +[Abdelfettah Sghiouar](https://twitter.com/boredabdel) + +## Notes + +00:00:00 - Welcoming guests and what is MSS? + +00:01:00 - Who is Abdelfettah Sghiouar? + +00:03:00 - Your first contact with IT/Technical field + +00:09:00 - What was your branch in Baccalaureate diploma + +00:12:00 - Why did you choose "ISTA" after your Baccalaureate diploma? + +00:17:00 - Why did you choose to do two diplomas in "ISTA"? one in "IT Development" and the other in "Corporate Microelectronics and Telecommunications" + +00:23:00 - Why did you refuse a technician position in the "The Ministry of Awqaf and Islamic Affairs"? + +00:27:00 - What push you to be engaged in the IT community? + +00:28:00 - When did you decide to start sharing your knowledge? + +00:30:00 - Working life before Google + +00:34:00 - I have a Bac+2/Bac+3 diploma, should I start a career or complete my studies? + +00:36:00 - Did you need your diploma (especially master's degree) at any time in your life? + +00:37:00 - Where did you work before Google? + +00:41:00 - How do you manage to be polyvalent in your job? + +00:46:00 - How was your first contact with Google? + +00:52:00 - What's important in an interview with Google? and how can we apply to the same job? + +00:57:00 - Does Google requires a high level of English? + +00:59:00 - A job at Google, is it something impossible, or it only needs some hard work? + +01:03:00 - Why did you choose a startup (the company before Google) with a low salary and high challenges, against a multinational company with all the benefits that it offers? + +01:08:00 - For a software engineer role, is having a deep knowledge about a programming language is a must? since most companies in morocco focus on knowing a lot of technologies & tools instead of concepts and theoretical stuff. + +01:11:00 - Why joining Google in the USA is harder than joining Google in Europe? + +01:16:00 - Do we need a background in Mathematics in order to learn Algorithms and Data structures? + +01:20:00 - How can I improve my skills to become apt for a job like a software engineer? + +01:25:00 - How do you spend your day as an Engineer at Google + +01:29:00 - What are your objectives? + +01:32:00 - Why did Youtube suddenly release a new policy that bans hacking education videos from being posted on the platform? + +01:33:00 - If you're able to go back to the past, what would you change? + +01:36:00 - Any pieces of advice for people who want to follow the same path? + +01:37:00 - Does robotics exist inside of Google? + +01:39:00 - GoLang VS Rust + +01:40:00 - How is Knative doing in the market? + +01:41:00 - What is Devoxx? + +01:45:00 - Wrap up and goodbye! + +## Links + +[Career At Google](https://careers.google.com/jobs) + +[Glassdoor](https://www.glassdoor.com) + +[Cracking the coding interview Book](http://www.crackingthecodinginterview.com) + +[HashCode Contest by Google](https://codingcompetitions.withgoogle.com/hashcode) + +[LeetCode](https://leetcode.com) + +[MCPC Contest](https://www.facebook.com/MoroccanCPC) + +[Google Blog](https://blog.google) + +## Prepared and Presented by + +[Mohammed Aboullaite](https://twitter.com/laytoun) + +[Soufian El Foukahi](https://twitter.com/soufyanAI) diff --git a/episodes/episode-0019.md b/episodes/episode-0019.md new file mode 100644 index 00000000..8e60afa8 --- /dev/null +++ b/episodes/episode-0019.md @@ -0,0 +1,47 @@ +--- +date: 2019-07-31 +duration: "1:28:48" +title: "Competitive programming, how to become good at!" +tags: ["competitive programming"] +category: "dev" +youtube: https://www.youtube.com/watch?v=jU12lUQMfSQ +published: true +--- + +In this episode of GeeksBlabla, Geeksblabla team with the amazing Diaa and Adnan talk about what is Competitive Programing, How to become good at and why you need to be a part of the next competition. + +## Guests + +## Notes + +00:00:00 - Introduction: Welcoming and presenting guests. + +00:05:00 - What is Competitive programming and why it's important? + +00:16:00 - Types of Competitive programming. + +00:24:00 - who can participate and How? + +00:40:00 - History behind Competitive programming. + +00:50:00 - Competitive programming in Morocco: best scores + +01:01:00 - How we can improve our scores + +01:10:00 - Q/A + +## Links + +[MCPC chair](https://www.youtube.com/watch?v=aPOJ0w9Cc0w) + +[ACPC](https://www.youtube.com/watch?v=NyI2nYOPjiU&t=4s) + +[MCPC](https://www.youtube.com/watch?v=aPOJ0w9Cc0w) + +[Competitive Programing Book](https://cpbook.net/) + +[SolverToBe](https://www.youtube.com/channel/UC2xOPGjIhLKsgUZEiunlzWQ) + +[Arabic Competitive Programming](https://www.youtube.com/user/nobody123497) + +## Prepared and Presented by diff --git a/episodes/episode-0020.md b/episodes/episode-0020.md new file mode 100644 index 00000000..343f5efc --- /dev/null +++ b/episodes/episode-0020.md @@ -0,0 +1,73 @@ +--- +date: 2019-08-22 +duration: "1:13:57" +title: "Freelancing in Morocco" +tags: ["freelance", "career"] +category: "career" +featured: true +youtube: https://www.youtube.com/watch?v=YALS9h3VBSU +published: true +--- + +In this episode of GeeksBlabla, Geeksblabla team with the amazing Ahmed and Moukhliss talk about Freelance in Morocco, How to get a freelance job, and deal with the client professionally, also how to count the time/money of the project? and much more. + +## Guests + +- [Ahmed Bouchafaa](#) +- [Mokhliss Amine](#) + +## Notes + +0:00:00 - Introduction and guests intro + +0:06:00 - What are the different kinds of freelancing? + +0:09:00 - How can you find your first freelancing client? + +0:12:00 - How to deal with the contract and paperwork when finding a Client? + +0:20:00 - How to professionally deal with clients? + +0:26:00 - What pay interval can Moroccan freelancers expect? + +0:27:00 - How Freelancers can manage savings for retirement and insurance etc? + +0:33:00 - How to determine the project's scope and effectively estimate cost and time? + +0:38:00 - How to ensure that the client will pay and how to deal with them when they refuse to pay? + +0:46:00 - How can you scale and boost your career as a freelancer? + +0:53:00 - Can I be employed and still work as a freelancer? + +0:55:00 - What's the perfect time to make the switch and become a freelancer? + +0:58:00 - What advice can you give to beginners to land their first gig? + +0:59:00 - Is part-time freelancing possible with Moroccan clients? + +1:00:00 - Are there teams that work on big freelancing projects? + +1:01:00 - Is it better to work with one client for a long period of time or multiple clients for shorter periods of time? + +1:02:00 - What are the required skills to start a freelancing business as a software architect? + +1:06:00 - What is the difference between working as an "Autoentrepreneur" or open a web development agency? + +1:07:00 - What's the difference between Moroccan and international freelance opportunities? + +1:09:00 - Learn to always educate and depend on yourself! + +1:10:00 - Outro and wrap up. + +## Links + +[Freelancer](https://www.freelancer.com/) + +[Upwork](https://www.upwork.com/) + +## Prepared and Presented by + +[Soufian El Foukahi](https://twitter.com/soufyanAI) + +[Mohammed Abboulait](https://twitter.com/laytoun) diff --git a/episodes/episode-0021.md b/episodes/episode-0021.md new file mode 100644 index 00000000..ffe6f749 --- /dev/null +++ b/episodes/episode-0021.md @@ -0,0 +1,67 @@ +--- +date: 2019-09-29 +duration: "1:33:11" +title: "Back to school, Computer Science Edition!" +tags: ["school", "career"] +category: "career" +youtube: https://www.youtube.com/watch?v=8UKh2ZQQg3o +published: true +--- + +In this episode of GeeksBlabla, Geeksblabla team give some tips for succeeding in computer science studies. + +## Guests + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Youssouf EL Azizi](https://elazizi.com) + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Oumaima Makhlouk](https://www.facebook.com/oumi.makhlouk) + +- [Oussama Hyad](https://www.facebook.com/heoussama.oussama) + +## Notes + +00:00:00 - Introduction: Welcoming and presenting guests. + +00:08:00 - First year of school experience and some tips. + +00:28:00 - Tips to deal with upcoming years of school and The importance of self-learning. + +00:36:00 - The importance of school degrees in the development field? + +00:38:00 - Freelancing while studying. + +00:40:00 - The importance of extracurricular activities in academic and professional careers. + +00:50:00 - Are exams scores quite important for your professional careers? + +00:58:00 - How to find a good end-of-school project (PFE) and prepare for the professional world ? + +01:11:00 - End-of-school project (PFE) in a multinational company Vs Startup. + +01:19:00 - How to prepare for a good project presentation ? + +01:26:00 - How to choose a good internship topic ? + +01:32:00 - Wrap up and goodbye! + +## Links + +[Openclassrooms](https://openclassrooms.com) + +[Developpez.net-forums](https://www.developpez.net/forums/) + +[Elon Musk's Ultimate Advice for Students & College Grads](https://www.youtube.com/watch?v=iuNJLtj10Lg) + +[DevC Casablanca group](https://www.facebook.com/groups/DevC.Casablanca/) + +[DevC Rabat group](https://www.facebook.com/groups/DevCRabat/) + +[DevC Marrakech group](https://www.facebook.com/groups/DevC.Marrakech/) + +## Prepared and Presented by + +[Soufian El Foukahi](https://twitter.com/soufyanAI) diff --git a/episodes/episode-0022.md b/episodes/episode-0022.md new file mode 100644 index 00000000..78b788dc --- /dev/null +++ b/episodes/episode-0022.md @@ -0,0 +1,101 @@ +--- +date: 2019-10-27 +duration: "2:07:16" +title: "Junior Devs in Morocco" +tags: ["school", "career", "dev"] +category: "career" +youtube: https://www.youtube.com/watch?v=yCR-gU5io9s +published: true +--- + +In this episode of GeeksBlabla, Geeksblabla team give some tips for succeeding as Junior Devs in Morocco. + +## Guests + +[Abderrahim Soubai Elidrissi](https://twitter.com/soub4i) + +[Meriem Zaid](https://twitter.com/_iMeriem) + +[Mohammed Aboullaite](https://twitter.com/laytoun) + +[Zakaria Braksa](https://www.facebook.com/profile.php?id=100004033238021) + +## Notes + +00:00:00 - Introduction: Welcoming, guests' presentation and last episode recap. + +00:04:00 - Which tech stack to should for a junior developer. and why ? + +00:11:00 - How and where to look for my first job opportunity. + +00:12:00 - How did each of the guests got his/her first job ? + +00:18:00 - How to distinguish between a good and a bad job offer ? + +00:21:00 - Startup vs Corporation jobs ? + +00:30:00 - What are the most common CV mistakes ? + +00:34:00 - Working on side projects (startup project) in parallel of a day job ? + +00:36:00 - When applying to the first job, should you focus on a specific stack or apply to all kinds of job offers. + +00:40:00 - Data science vs Devops career ? + +00:44:00 - what are the mistakes that junior developers should avoid in their careers ? + +00:47:00 - How can developers develop and boost their careers ? + +00:50:00 - Is network engineering a good career start, for someone who comes from a programming background ? + +00:53:00 - Why are there a lot of requirements in Junior developer job offers ? + +00:56:00 - How can fresh graduates overcome fill gap between what they've learnt at school and what is there in the professional world? + +01:01:00 - Can someone without a degree easily find his place the professional world ? and how ? + +01:05:00 - How to crack job interviews ? + +01:07:00 - Salary expectations for a junior developer. + +01:11:00 - Soft skills and hard skills required for a junior developer. + +01:17:00 - How to keep up with new technologies while working on legacy code (obsolete technologies)? + +01:20:00 - What are the required skills to be a good team player? + +01:21:00 - Transition from Junior to Senior developer. + +01:28:00 - When to change jobs or ask for a salary raise ? + +01:34:00 - Is Freelancing recommended for junior developers ? + +01:38:00 - How to determine whether a junior developer will learn fast or not ? + +01:43:00 - Is it bad to have internship in the same company for more than 2 times ? + +01:44:00 - Examples and types of freelance opportunities. + +01:45:00 - Are internships in companies considered an experience? + +01:46:00 - Most in-demand technologies in the Moroccan market and abroad ? + +01:48:00 - Biggest mistakes, guests have made during their junior times. + +01:52:00 - Devops status in the Moroccan market for juniors. + +01:54:00 - Developers world wide compared to Moroccan developers. + +01:58:00 - PFE internships in United Remote. + +02:02:00 - USA vs Canada vs Europe. + +02:03:00 - Data Maroc initiative. + +02:06:00 - Wrap up and good bye ! + +## Links + +[Rekrute Salary Simulator](https://www.rekrute.com/salaire-simulateur-maroc.html) + +## Prepared and Presented by diff --git a/episodes/episode-0023.md b/episodes/episode-0023.md new file mode 100644 index 00000000..d6d9317a --- /dev/null +++ b/episodes/episode-0023.md @@ -0,0 +1,76 @@ +--- +date: 2019-11-24 +duration: "1:59:00" +title: "Women In Tech" +tags: ["women", "career"] +category: "career" +featured: true +youtube: https://www.youtube.com/watch?v=fSH4oI6mDnQ +published: true +--- + +In this episode of GeeksBlabla, our guests discuss how we can empower women in moroccan Tech industry. + +## Guests + +[Oumaima Makhlouk](https://www.facebook.com/oumi.makhlouk/) + +[Khaoula Tanfioui](https://www.linkedin.com/in/khaoula-tanfioui-9b15a310a/) + +[Maroua Ezouhri](https://www.linkedin.com/in/maroua-ezouhri-381174a7/) + +## Notes + +00:00:00 - Introduction + +00:02:00 - Introduce guests + +00:05:00 - How was your first step on the tech? + +00:14:00 - Was your family against your choice of IT field? + +00:20:00 - What is the reason that kept you continue in the IT field? + +00:24:00 - What does it feel like to be a women working on the IT field? + +00:30:00 - What is the advice you can give to a woman who wants to start in the IT field? + +00:32:00 - How to make women more active in a community? + +00:35:00 - Do you think there are IT jobs for men and another to women? + +00:38:00 - What is the most interesting job that you worked in before? + +00:45:00 - What are the challenges that you had in your career? + +00:50:00 - What is the greatest technology transformation that you did in your career? + +01:08:00 - How to encourage women to continue their careers in the IT field? + +01:16:00 - What is the change that you want to see in the future on your career and/or in the IT field? + +01:21:00 - What was your dream job as a plan B? + +01:26:00 - What is a chatbot? + +01:27:00 - What is the first advice to give a Moroccan woman to start on the IT field? + +01:29:00 - Kaoula experience with building a startup + +01:31:00 - In your opinion should we need to focus on events 100% for women and what are the reasons for these events? + +01:37:00 - Are these events 100% for women are helping women to be a part of the IT society? + +01:43:00 - How to encourage women to be speakers on IT events? + +01:50:00 - Who are your role model in tech? + +01:57:00 - Conclusion + +## Links + +## Prepared and Presented by + +[Meriem Zaid](https://twitter.com/_iMeriem) + +[Soufian El Foukahi](https://twitter.com/soufyanAI) diff --git a/episodes/episode-0024.md b/episodes/episode-0024.md new file mode 100644 index 00000000..7adf30d4 --- /dev/null +++ b/episodes/episode-0024.md @@ -0,0 +1,88 @@ +--- +date: 2019-12-29 +duration: "2:18:03" +title: "Geeksblabla MSS with Yassine El Kachchani" +tags: ["MSS", "entrepreneurship", "career"] +category: "mss" +featured: true +youtube: https://www.youtube.com/watch?v=QqicTaX4gfU +published: true +--- + +In this episode of GeeksBlabla, we discuss startuping with Yassine, the CEO of United Remote. + +## Guests + +[Yassine El Kachchani](https://www.facebook.com/kachchani) + +## Notes + +0:00:00 - Intro and welcoming + +0:03:00 - Who is Yassine El Kachchani? + +0:06:00 - Were you interested in entrepreneurship as a student? + +0:10:00 - What lessons did you learn from your very first company? + +0:12:00 - Brief talk about Lacarteplz.ma + +0:16:00 - How did you come up with the idea of Hidden Founders after two failed companies? + +0:22:00 - Can you talk a bit about the success of Hidden Founders? + +0:30:00 - Why did you kill Hidden Founders in favor of United Remote despite the former's success? + +0:34:00 - Does 3% equity translate to 3% of profit or to 3% of shares? + +0:35:00 - What do you mean by a tiny project? An MVP, a landing page or what exactly? + +0:37:00 - Are there Moroccan incubators that offer training or financing that you can recommend? + +0:39:00 - What is the most important thing when it comes to creating your first startup? + +0:43:00 - How is the startup ecosystem in Morocco and how will it be in 2020? + +0:52:00 - Best book to recommend for startuppers? + +0:55:00 - Is there a secret to successfully launch a business in Morocco? + +1:01:00 - Can you launch an online product without having a legal form? + +1:02:00 - Can you include online payment in your product if you don't have a legal form? + +1:04:00 - What advice would you give to someone who has an idea and wants to build a startup around it? + +1:08:00 - Do you think that Moroccan startups can change the state of Morocco in the upcoming years? + +1:11:00 - Brief discussion about information exchange, and lack thereof. + +1:18:00 - What skills do you look for in developers? + +1:22:00 - How do you define company culture? + +1:26:00 - What advice would you give Moroccan entrepreneurs? + +1:35:00 - Is there going to be a third Bizness B Nab season? If so, when? + +1:55:00 - The best way for Moroccan companies to resist brain drain and turnover? + +2:05:00 - Besides money, why should one build a startup? + +2:11:00 - Conclusion + +## Links + +- [Podcast URL](https://www.facebook.com/sfoukahi/videos/2770524023008256/) +- [Paul Graham's essays](http://www.paulgraham.com/articles.html) +- [Y Combinator's "Startup School 2019" playlist](https://www.youtube.com/playlist?list=PLQ-uHSnFig5OMuEYI4rnNz08BIHxhxdHG) +- [Mixpanel's blog on analytics](https://mixpanel.com/blog/) +- [Bizness B Nab](https://www.youtube.com/channel/UC_bxddqRoU6xWe1H5i4qfOg) + +## Prepared and Presented by + +[Meriem Zaid](https://twitter.com/_iMeriem) + +[Mohammed Aboullaite](https://twitter.com/laytoun) + +[Soufian El Foukahi](https://twitter.com/soufyanAI) diff --git a/episodes/episode-0025.md b/episodes/episode-0025.md new file mode 100644 index 00000000..8b686783 --- /dev/null +++ b/episodes/episode-0025.md @@ -0,0 +1,88 @@ +--- +date: 2020-01-12 +duration: "01:44:03" +title: "Deep Dive in Java" +tags: ["spring", "java", "dev", "backend"] +category: "dev" +youtube: https://www.youtube.com/watch?v=yj2GuZnBC8s +published: true +--- + +In this episode of GeeksBlabla, Mohammed, Amine, and Amine talk about Java language, and why you should learn it, they talk also about the strength of The JVM, the best practices as Java Developer. + +## Guests + +[Mohammed Abboulait](https://twitter.com/laytoun) + +[Amine Bekkaoui](https://www.linkedin.com/in/amine-bekkaoui-3a622b46) + +[Amine Hakkou](https://www.hakkou.me/) + +## Notes + +0:00:00 - Welcoming guests + +0:04:00 - Who is Amine Bekkaoui ? + +0:06:00 - When did you start Java ? + +0:10:00 - How did you develop your skills in Java ? + +0:18:00 - Do you think Java will still be a dominant programming language ? + +0:20:00 - What we can do with Java ? + +0:36:00 - What is JVM(Java Virtual Machine) tuning ? + +0:42:00 - How can i start Java ? + +0:43:00 - What are the Java licensing changes? + +0:47:00 - What are the best practices for modern industrial Java projects ? + +0:50:00 - What is JVM in general ? + +0:56:00 - What are the most important Java Concepts ? + +0:59:00 - What is the best Java framework ? + +1:01:00 - Is Java a fully open source programming language ? + +1:03:00 - What are the required skills to start learning Java ? + +1:05:00 - Which Java framework should I start with ? + +1:09:00 - Why Java is still in a high demand ? + +1:10:00 - What are the GraalVM limits ? + +1:12:00 - Can NodeJs replace Java ? + +1:13:00 - Scala is only for Big Data ? + +1:14:00 - What is Jigsaw Project ? + +1:19:00 - Why JavaEE becomes JakartaEE ? + +1:23:00 - Unsafe Java Api + +1:25:00 - What is AOP(Aspect Oriented Programming) ? + +1:28:00 - Are JavaEE and Spring the same ? + +1:39:00 - Maven VS Gradle + +1:42:00 - What are the most stable JVM languages ? + +## Links + +- [Effective Java Book](https://www.amazon.com/Effective-Java-Joshua-Bloch/dp/0134685997) +- [Refactoring Improving Design Existing Code Book](https://www.amazon.fr/Refactoring-Improving-Design-Existing-Code/dp/0201485672) +- [Gang of Four Design Patterns Book](https://springframework.guru/gang-of-four-design-patterns/) +- [Spring Framework Website](https://spring.io/projects/spring-framework) + +## Prepared and Presented by + +[Meriem Zaid](https://twitter.com/_iMeriem) + +[Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/episodes/episode-0026.md b/episodes/episode-0026.md new file mode 100644 index 00000000..4a8aad9a --- /dev/null +++ b/episodes/episode-0026.md @@ -0,0 +1,79 @@ +--- +date: 2020-01-19 +duration: "01:43:00" +title: "MSS with Badr El Houari" +tags: ["MSS", "entrepreneurship", "devoxx", "java", "career"] +category: "mss" +youtube: https://www.youtube.com/watch?v=EvUOVUzB8rY +published: true +--- + +In this episode of GeeksBlabla, we discuss Java, community and leadership with Badr, the Java champion, serial entrepreneur and the CIO of xHub. + +## Guests + +[Badr El Houari](https://twitter.com/badrelhouari) + +## Notes + +0:00:00 - Episode Introduction + +0:03:00 - Who is Badr El Houari? + +0:05:00 - Your first contact with IT/Technical field + +0:06:00 - The community spirit + +0:13:00 - Your first meetup? + +0:19:00 - How did the idea of Jmaghreb start? + +0:21:00 - When did you decide to start the first event? + +0:27:00 - Why Morocco JUG does not organize meetings anymore? Do they have any plans this year? + +0:31:00 - What is the future of Java after 10 years? + +0:34:00 - What's the meaning of the motto behind you -we live to code, never code to live-? + +0:35:00 - Your first talk? + +0:40:00 - What is the secret behind the success of Jmaghreb? + +0:46:00 - From Jmaghreb to Devoxx + +0:59:00 - Why did you choose to be an entrepreneur? + +1:09:00 - Advice to Moroccan entrepreneurs + +1:15:00 - How Student should prepare for the job market + +1:18:00 - Does xHub give the opportunity to self-taught developers without a diploma? + +1:19:00 - What's the secret of the good vibe and the positive energy at xHub? + +1:23:00 - Do you think Morocco has talented developers? + +1:29:00 - How do you see the future of programming in Morocco? + +1:32:00 - Do you think there are job opportunities for talented self-taught developers in Morocco? + +1:34:00 - Is it possible to be an entrepreneur and a programmer at the same time? + +1:37:00 - As a Java champion, what are some criticisms of Java? + +1:40:00 - Difference between Application Architect and Developer? + +1:42:00 - Wrap up and goodbye! + +## Links + +[Reach out xHub](https://x-hub.io/contact/) + +## Prepared and Presented by + +[Meriem Zaid](https://twitter.com/_iMeriem) + +[Mohammed Aboullaite](https://twitter.com/laytoun) + +[Soufian El Foukahi](https://twitter.com/soufyanAI) diff --git a/episodes/episode-0027.md b/episodes/episode-0027.md new file mode 100644 index 00000000..f66a52f5 --- /dev/null +++ b/episodes/episode-0027.md @@ -0,0 +1,62 @@ +--- +date: 2020-02-16 +duration: "01:40:00" +title: "Side Projects & Indie Hacking" +tags: ["dev", "indie", "career"] +category: "career" +youtube: https://www.youtube.com/watch?v=bDrUAza36ec +published: true +--- + +In this episode of GeeksBlabla, we discuss Side Project & indie Hacking, How To Get Started, Best Practices, Useful resources and Much More with the amazing Mehdi and Motaquillah. + +## Guests + +[Mehdi Sakout](https://twitter.com/medyo80) + +[Motaquillah Maddane](https://twitter.com/motaquillah) + +## Notes + +00:00:00 - Introduction: Welcoming, guests intro. + +00:05:00 - What is an Indie hacking, Side Project and side Product? + +00:16:00 - My first Step as an indie Hacker: How to get started? + +00:24:00 - How to get and stay motived ? + +00:32:00 - Working alone vs finding a partner, and how to find a partner ( co-founder) + +00:36:00 - When to take a side project "seriously" and start working on it full time ? What are the metrics to track ? + +00:39:00 - What skills do you need to launch a successful side project ? + +00:45:00 - Side Project Step by Step: Validate Your idea, MVP, Find first costumers, B2B vs B2C, Go Public & Share your product + +01:18:00 - QA + +01:26:00 - Successful side Project by Moroccan Makers. + +01:33:00 - Resources + +## Links + +[Product Hunt](https://www.producthunt.com/) + +[Indiehackers](https://www.indiehackers.com/) + +[Makerlog](https://getmakerlog.com/) + +[Start small stay small](https://startupbook.net/) +[The mom test](http://momtestbook.com/) + +[Getting real](https://basecamp.com/books/Getting%20Real.pdf?fbclid=IwAR1XBkJQ_ddPMPOVLiLXald8HgmdIxQHC7f_Go5Jo8UaGI-14iVi4sm-mQs/) + +## Prepared and Presented by + +[Youssouf El Azizi](https://elazizi.com) + +[Soufian El Foukahi](https://twitter.com/soufyanAI) + +[Mehdi Sakout](https://twitter.com/medyo80) diff --git a/episodes/episode-0028.md b/episodes/episode-0028.md new file mode 100644 index 00000000..8e6aff8c --- /dev/null +++ b/episodes/episode-0028.md @@ -0,0 +1,66 @@ +--- +date: 2020-02-29 +duration: "01:32:00" +title: "GeeksBlabla Kids" +tags: ["kids"] +category: "career" +featured: true +youtube: https://www.youtube.com/watch?v=gvve_LEqtbI +published: true +--- + +A Special episode to encourage youth minds in the coding industry,In this episode of GeeksBlabla Ayman and Achraf, 2 boys under 16, share their story with programming and robotics. + +## Guests + +- [Achraf Mansari](https://www.facebook.com/itsachrafmansari/) + +- [Ayman Riad Solh](#) + +## Notes + +00:00:00 - Introduction & Guests presentation + +00:04:00 - When and how they know Programming ? + +00:12:00 - Difficulties encountered & thier solutions + +00:16:00 - How they improved their skills? + +00:20:00 - Have you ever practiced these skills in competition? + +00:25:00 - How do you like the field of information technology? + +00:29:00 - How did your family and friends react to you when they know you love programming? + +00:34:00 - Do you have some plans to explain your IT knowledge in Darija to your friends , your family , and others kids ? + +00:41:00 - How did you get the idea for your projects? + +00:46:00 - Your workflow creating new projects? + +00:56:00 - Are you thinking about new projects in the future? + +00:59:00 - Connected devices (Q:Ayman A:Achraf) + +01:02:00 - Do you have plans for your studies (the program) ? + +01:07:00 - QA + +01:17:00 - What do you expect your parents to improve your technical skills? + +01:27:00 - What your advice for kids in your age to start programming? + +01:31:00 - Final words and goodbye. + +## Links + +- [Scratch](http://scratch.mit.edu/) + +- [Facebook DevC](https://www.facebook.com/groups/DevC.Casablanca/?hc_ref=ARQQY8zH-NAV8646DsgW8RNoO1DNoBuf-43ao4kIFvZZMJCV4jpw7-hSQ2C0DmFkkdI&ref=nf_target) + +## Prepared and Presented by + +- [Soufian El Foukahi](https://twitter.com/soufyanAI) + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0029.md b/episodes/episode-0029.md new file mode 100644 index 00000000..3c77dedf --- /dev/null +++ b/episodes/episode-0029.md @@ -0,0 +1,55 @@ +--- +date: 2020-03-14 +duration: "02:01:03" +title: "Deep Dive in JavaScript" +tags: ["JS", "web", "react", "angular", "frontend", "backend", "dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=9D7JAuhJjuU +published: true +--- + +In this episode of GeeksBlabla, we discuss JavaScript, History, Fundamental concepts, Javascript Ecosystem and a lot of topics around it + +## Guests + +[Chihab Otmani](https://chihab.dev/) + +[Amine Hakkou](https://www.hakkou.me/) + +## Notes + +0:00:00 - Episode Introduction and Guests Intro. + +0:08:00 - What is Javascript, History of Javascript? + +0:30:00 - Why we should learn Javascript. + +0:41:00 - Is Javascript a language for beginners? + +0:44:00 - Javascript Hard Part : Scope, Hoisting, Event loop, Js engine + +1:00:00 - Javascript Ecosystem: Polyfills, bundlers, babel, Eslint. + +1:18:00 - Q/A + +1:30:00 - Frameworks: ReactJs, Angular, VueJs + +1:50:00 - Typing in Javascript: Typescript, Flow + +1:55:00 - The state of Javascript and the future + +## Links + +[JS : The past, present, and future of JavaScript](https://javascriptair.com/episodes/2016-10-05/) + +[The definitive 20 year history of JavaScript.](https://zenodo.org/record/3707008#.Xm5bmZNKjRY) + +[JavaScript30](https://javascript30.com/) + +[JavaScript Visualized: Event Loop, Hoisting, Scope](https://dev.to/lydiahallie/javascript-visualized-event-loop-3dif) + +## Prepared and Presented by + +[Soufian El Foukahi](https://twitter.com/soufyanAI) + +[Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0030.md b/episodes/episode-0030.md new file mode 100644 index 00000000..d632e992 --- /dev/null +++ b/episodes/episode-0030.md @@ -0,0 +1,78 @@ +--- +date: 2020-03-21 +duration: "01:39:54" +title: "Working Remotely as a Developer" +tags: ["dev", "career"] +category: "career" +youtube: https://www.youtube.com/watch?v=7H08TcRX5SE +published: true +featured: true +--- + +In this episode of GeeksBlabla, we discuss remote working for developers, How to get started, find your next remote job, manage your life as a remote developer, tools and best practices. + +## Guests + +[Ahmed El Azzabi](https://mylink.fyi/elazzabi) + +[Meriam Kharbat](https://twitter.com/meriamkharbat) + +[Abdelfatah Sghiouar](https://twitter.com/boredabdel) + +## Notes + +0:00:00 - Episode Introduction and Guests Intro. + +0:05:00 - What is working remotely? + +0:10:00 - Working remotely vs working from Home (during COVID-19). + +0:15:00 - Why did you choose to work remote and when did you start it? + +0:20:00 - Challenges for remote developers. + +0:25:00 - How to convince your managers to work remotely? + +0:30:00 - How to find remote jobs offers? + +0:35:00 - Manage your personal life as a remote developer. + +0:50:00 - Soft Skills for a remote developer. + +0:54:00 - Best practices for remote developers to manage their tasks. + +1:00:00 - What are your hobbies outside of work? + +1:05:00 - Legal requirements for a remote developer and Understanding company taxation in Morocco. + +1:21:00 - Q/A + +1:33:00 - Resources & Tools + +## Links + +[Anti fragile: Nassim Nicholas Taleb](https://www.amazon.com/Antifragile-Things-That-Gain-Disorder/dp/B00A2ZIZYQ/ref=sr_1_1?crid=27ORBT6COOI68&dchild=1&keywords=anti+fragile&qid=1584823260&s=books&sprefix=anti+%2Cstripbooks-intl-ship%2C257&sr=1-1) + +[Peoplewear: Tom Demarco ](https://www.amazon.de/dp/0321934113/ref=sr_1_1?crid=36P5HKAPQOXZB&dchild=1&keywords=peopleware&qid=1584823460&sprefix=peoplew%2Caps%2C164&sr=8-1) + +[Remote: Office not required ](https://www.amazon.com/Remote-Office-Required-Jason-Fried/dp/0804137501/ref=sr_1_1?keywords=remote+office+not+required&qid=1584823591&sr=8-1) + +[It doesnโ€™t need to be crazy at work ](https://www.amazon.com/gp/product/0062874780/ref=dbs_a_def_rwt_bibl_vppi_i2) + +[Hackers & Painters ](https://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/dp/1449389554/ref=sr_1_1?crid=2BW3J4SKLKO1O&keywords=hackers+and+painters&qid=1584823568&s=audible&sprefix=hackers+and+%2Caudible%2C884&sr=1-1-catcorr) + +[The Year without pants ](https://www.amazon.com/Year-Without-Pants-WordPress-com-Future/dp/B00FPT6EBK/ref=sr_1_1?keywords=the+year+without+pants&qid=1584823524&sr=8-1) + +[Understanding company taxation in Morocco ](https://remote.ma/2019/09/02/understanding-company-taxation-in-morocco/) + +[Getting health insurance when working remotely](https://remote.ma/2019/08/05/how-to-get-health-insurance-in-morocco-when-you-work-remotely/) + +[Remote.ma](https://remote.ma) + +[Doist](https://doist.com/blog/) + +## Prepared and Presented by + +[Soufian El Foukahi](https://twitter.com/soufyanAI) + +[Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0031.md b/episodes/episode-0031.md new file mode 100644 index 00000000..a25e1d5f --- /dev/null +++ b/episodes/episode-0031.md @@ -0,0 +1,32 @@ +--- +date: 2020-03-28 +duration: "02:24:36" +title: "AMA With GeeksBlabla Team " +tags: ["DevC", "AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=nTA2mTRlTD0 +published: true +featured: false +--- + +This episode is an AMA (Ask Me Anything ) with GeeksBlabla Team ,During this episode we answer audience Questions about programming, community,new technologies and much more. + +## Guests + +[Soufian El Foukahi](https://twitter.com/soufyanAI) + +[Youssouf El Azizi](https://elazizi.com) + +[Amine Hakkou](https://www.hakkou.me/) + +[Meriem Zaid](https://twitter.com/_iMeriem) + +[Mohammed Aboullaite](https://twitter.com/laytoun) + +[Oussama Hyad](https://www.facebook.com/heoussama.oussama) + +## Notes + +## Links + +## Prepared and Presented by diff --git a/episodes/episode-0032.md b/episodes/episode-0032.md new file mode 100644 index 00000000..9d81ca56 --- /dev/null +++ b/episodes/episode-0032.md @@ -0,0 +1,24 @@ +--- +date: 2020-03-30 +duration: "01:00:57" +title: "Moroccan Makers Efforts to Fight COVID-19" +tags: ["COVID-19"] +category: "career" +youtube: https://www.youtube.com/watch?v=XIiMb2z42Ms +published: true +featured: false +--- + +In this episode We're welcoming 2 great heroes, Mohamed and Hamid are doing amazing jobs, pushing innovation and making things to save lives in Morocco and beat Covid-19! + +## Guests + +## Notes + +## Links + +## Prepared and Presented by + +[Mohammed Aboullaite](https://twitter.com/laytoun) + +[Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0033.md b/episodes/episode-0033.md new file mode 100644 index 00000000..00e8c69e --- /dev/null +++ b/episodes/episode-0033.md @@ -0,0 +1,52 @@ +--- +date: 2020-04-04 +duration: "01:52:07" +title: "Agile Project Management" +tags: ["career", "software engineering"] +category: "career" +youtube: https://www.youtube.com/watch?v=84T8HhvseeE +published: true +featured: false +--- + +In this episode, we discuss Agile Project Management, How to get started, agile frameworks and How to spread an agile mindset in your company. + +## Guests + +[Mohammed Mekran](https://web.facebook.com/mohamed.mekran) + +[Amine Maarouf](https://web.facebook.com/amiiiinema) + +## Notes + +00:00:00 - Introduction and Welcoming Guests. + +00:07:00 - What is agile? Scrum? Kanban ? And whatโ€™s the difference between them? + +00:13:00 - How to start using Agile Project Management In your Team. + +00:21:00 - Whatโ€™re the most common errors the teams shouldnโ€™t do when adopting scrum? + +00:49:00 - Agile Project Management for remote work. + +00:55:00 - Lean Vs Agile + +01:00:00 - XP vs Scrum + +01:13:00 - How do you realistically measure scrum team velocity? + +01:22:00 - How does one(dev) develop career within scrum environment? + +01:26:00 - Why we should be certified? + +01:32:00 - How do you spread an Agile mindset in the company across different departments and what is your strategy to coach these non-IT stakeholders? + +01:38:00 - Resources && tools + +## Links + +## Prepared and Presented by + +[Mohammed Aboullaite](https://twitter.com/laytoun) + +[Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0034.md b/episodes/episode-0034.md new file mode 100644 index 00000000..9dc77940 --- /dev/null +++ b/episodes/episode-0034.md @@ -0,0 +1,26 @@ +--- +date: 2020-04-08 +duration: "01:35:34" +title: "HA: Scaling Systems and Handling Loads" +tags: ["devops", "backend", "software engineering"] +category: "dev" +youtube: https://www.youtube.com/watch?v=CUDS14nbxGU +published: true +featured: false +--- + +In this episode, Abderrahim share with us some important practices and tips about building Hight Availability systems, scaling web applications and handling high traffic + +## Guests + +[Abderrahim Ouakki](https://web.facebook.com/abderrahim.ouakki.0) + +## Notes + +## Links + +[Presentation slides](https://docs.google.com/presentation/d/1whJIMjPeOGyfjOuAGwmyPTr-pR5DkkA9McsIzgg0xgo/edit?fbclid=IwAR2kXpLL17bkv83Ehp9Ve-uXUscu7eaPc6OnoLeuDDGy-D2Vn8fDSqIb0Rg) + +## Prepared and Presented by + +[Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/episodes/episode-0035.md b/episodes/episode-0035.md new file mode 100644 index 00000000..f17c8a7a --- /dev/null +++ b/episodes/episode-0035.md @@ -0,0 +1,78 @@ +--- +date: 2020-04-12 +duration: "01:57:56" +title: "DevC Community" +tags: ["DevC", "open source"] +category: "dev" +youtube: https://www.youtube.com/watch?v=kRFMScRcIFc +published: true +featured: false +--- + +In this special episode of GeeksBlabla, some of its core team members discussed what is DevC community, how it started and how Facebook supports DevC. At the end, the members revealed some of the secrets and memories they had in the community. + +## Guests + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:00 - What is DevC Casablanca? + +0:09:00 - The start of DevC Casa + +0:16:00 - How to join the core team of DevC Casa? + +0:28:00 - The relationship between Facebook and DevC community + +0:37:00 - Are profitable projects the goal of the community? + +0:41:00 - How the planning of talks and meetings goes? + +0:45:00 - The vision of the group in the future? + +0:50:00 - How to build a new DevC community? + +0:53:00 - The help of the state and the universities to support the community + +0:55:00 - Students and the core team + +0:57:00 - The struggle of the community to organize meet-ups + +1:00:00 - Rules of the group (Code of conduct) + +1:05:00 - Giving back to the community and knowledge sharing + +1:08:00 - How speakers/guests of GeeksBlabla and offline meet-ups are chosen? + +1:16:00 - As a startup or a company, how can I sponsor a DevC activity? + +1:22:00 - Online meetups and thinking to shift to it + The added value of offline meet-ups + +1:29:00 - Sharing of good and bad experiences/memories that the presenters had in the community + +1:46:00 - The future of GeeksBlabla, the introduction of the GeeksBlabla Facebook page + +1:50:00 - The idea of sharing articles and open source projects in the community + +1:53:00 - How to get notified about the news of GeeksBlabla + +1:55:00 - Wrap up and good bye + +## Links + +- [DevC Casa Facebook group](https://web.facebook.com/groups/DevC.Casablanca) + +- [GeeksBlabla GitHub repo](https://github.com/DevC-Casa/geeksblabla.com) + +- [GeeksBlabla website](https://geeksblabla.io/) + +## Prepared and Presented by + +- [Soufian El Foukahi](https://twitter.com/soufyanAI) + +- [Youssouf EL Azizi](https://elazizi.com) + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/episodes/episode-0036.md b/episodes/episode-0036.md new file mode 100644 index 00000000..214702a0 --- /dev/null +++ b/episodes/episode-0036.md @@ -0,0 +1,82 @@ +--- +date: 2020-04-20 +duration: "02:43:43" +title: "React Deep Dive" +tags: ["react", "JS", "frontend", "web", "dev", "mobile dev", "react native"] +category: "dev" +youtube: https://www.youtube.com/watch?v=bJ0QPmf5V2Q +published: true +featured: false +--- + +In this episode of GeeksBlabla we discuss, React, How to get started ,Core concepts, React Ecosystem and a lot of topics around it. + +## Guests + +[Yassine ElOuafi](https://twitter.com/YassineElouafi2) + +[Youssouf EL Azizi](https://elazizi.com) + +[Amine Hakkou](https://www.hakkou.me/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:00 - What is React? && React History. + +0:09:00 - How is React different from other solution such as jquery/angular and Vuejs + +0:19:00 - Imperative and Declarative in React? + +0:22:00 - What do I need To know to start working with React? + +0:31:00 - React Fundamental : JSX. + +0:38:00 - Deference between JSX and template system. + +0:41:00 - React Fundamental : Components, State, Props. + +0:48:00 - React Patterns: HOC, render props, Compound components + +0:52:00 - State Management Approaches. + +1:03:00 - React and Typescript. + +1:12:00 - Redux-saga vs Redux-thunk + +1:14:00 - React Fiber, Virtual Dom, Reconciliation, concurrent mode. + +1:34:00 - React Suspense && algebraic effects. + +1:48:00 - Preact. + +1:58:00 - WebAssembly and React. + +2:04:00 - Styling in React. + +2:08:00 - Server side Rendering with React. + +2:12:00 - Meta-frameworks : Next.js / Gatsby. + +2:25:00 - React Testing. + +2:33:00 - Tools and Resources. + +## Links + +- [React](https://reactjs.org/) + +- [Yassine Blog ](https://abstractfun.com/) + +- [Kent C. Dodds](https://kentcdodds.com/) + +- [React Testing Library](https://testing-library.com/docs/react-testing-library/intro) + +- [The Beginner's Guide to React](https://egghead.io/courses/the-beginner-s-guide-to-react) + +## Prepared and Presented by + +- [Soufian El Foukahi](https://twitter.com/soufyanAI) + +- [Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0037.md b/episodes/episode-0037.md new file mode 100644 index 00000000..1a821ced --- /dev/null +++ b/episodes/episode-0037.md @@ -0,0 +1,62 @@ +--- +date: 2020-04-24 +duration: "01:58:42" +title: "MSS with Mouhsine Lakhdissi" +tags: ["MSS", "entrepreneurship"] +category: "mss" +youtube: https://www.youtube.com/watch?v=QJw9P_oDQ5o +published: true +featured: false +--- + +In this episode of GeeksBlabla, we discuss entrepreneurship and innovation with Mouhssine Lakhdissi, Professor, CTO and Co-Founder of Neoxia Morocco. + +## Guests + +[Mouhssine Lakhdissi](https://www.linkedin.com/in/mlakhdissi) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:00 - Presentation and studies. + +0:09:00 - How did you start the entrepreneurship ? + +0:19:00 - How your entrepreneurship journey started + +0:22:00 - Can you tell us a little more about your previous business involvements and the places youโ€™ve worked? + +0:31:00 - You were attracted to the scientific field when you were younger,can you tell us more about this passion + +0:38:00 - What inspired you to start it ? + +0:41:00 - How did you develop it? + +0:48:00 - During your Doctorat preparation you started a small IT consulting entreprise, how did it go? + +0:52:00 - Do we need a good product before lunch? + +1:03:00 - How can we monetize our entreprises in Morocco ? + +1:12:00 - How do you evaluate entrepreneurship ecosystem in Morocco? + +1:14:00 - Whatโ€™s your greatest fear as an entrepreneur? + +1:34:00 - Can you tell us more about the digitalization of agriculture. + +1:38:00 - Can you tell us about โ€œMIDADโ€ project, the intelligent mask that were developed during COVID19 crisis + +1:48:00 - What's the future involvement of CNDP with this project? + +1:52:00 - How can we boost the e-learning in Morocco? + +1:58:00 - Some advices for moroccan entrepreneurs. + +## Links + +## Prepared and Presented by + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0038.md b/episodes/episode-0038.md new file mode 100644 index 00000000..a7840b18 --- /dev/null +++ b/episodes/episode-0038.md @@ -0,0 +1,54 @@ +--- +date: 2020-05-03 +duration: "01:12:40" +title: "MSS with Meriam Kharbat and Ouafae Aamer" +tags: ["MSS", "entrepreneurship", "software engineering"] +category: "mss" +youtube: https://www.youtube.com/watch?v=QCCH7r9CB1g +published: true +featured: false +--- + +In this episode of GeeksBlabla, we discuss the success story for two young women in the IT field in and outside Morocco. + +## Guests + +[Meriam Kharbat](https://twitter.com/meriamkharbat) + +[Ouafae Aamer](https://www.facebook.com/ouafae.aamer) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:00 - Education path + +0:09:00 - tell us what your day job is + +0:19:00 - How long have you been working as Product Manager, Developer + +0:22:00 - What do you do besides being a software engineer by day + +0:31:00 - how did you get where you are today and how did you come to work at (field intelligence inc ) + +0:38:00 - What was your childhood dream? was it IT related ? + +0:41:00 - What influenced you to pursue a career in IT + +0:48:00 - What led you to embark on an international career + +1:03:00 - What are some challenges youโ€™ve faced ? + +1:12:00 - Are there any particular Moroccan women in tech who have inspired you? + +## Links + +- [EU Blue Card](https://www.make-it-in-germany.com/en/visa/kinds-of-visa/eu-blue-card/) + +- [Meriam blog](https://twitter.com/meriamkharbat) + +## Prepared and Presented by + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0039.md b/episodes/episode-0039.md new file mode 100644 index 00000000..040af6aa --- /dev/null +++ b/episodes/episode-0039.md @@ -0,0 +1,62 @@ +--- +date: 2020-05-11 +duration: "02:15:04" +title: "Blogging As a Developer" +tags: ["dev", "blogging", "career", "backend", "frontend", "mobile dev", "web"] +category: "career" +youtube: https://www.youtube.com/watch?v=PP-9ffjk_4w +published: true +featured: true +--- + +In this episode of GeeksBlabla, we discuss blogging for developer, How to get started, How blogging will help you in your dev career, How to write your first blog post and some secret keys for a successful blog post. + +## Guests + +[Meriam Kharbat](https://twitter.com/meriamkharbat) + +[Mohammed Aboullaite](https://twitter.com/laytoun) + +[Ismail EL Azizi](https://www.linkedin.com/in/ismail-el-azizi/) + +## Notes + +0:00:00 - Introduction and welcoming guests. + +0:06:00 - How did you start blogging and why? + +0:10:00 - How can blogging help you in your career? + +0:14:00 - A success story from a blog post ? + +0:23:00 - Blogging for startups and what benefits encourage your workers to start blogging. + +0:32:00 - Why is blogging hard? + +0:40:00 - Blogging languages? Do I need good English skills? + +0:48:00 - Finding good topics? + +0:54:00 - Process writing a new blog post. + +1:01:00 - Blog Post Template. + +1:17:00 - Blogging platform vs personal blog and tools to create my personal blog + +1:26:00 - Find your audience, best places to share your articles. + +1:39:00 - QA + +1:56:00 - Tools and resources for bloggers. + +## Links + +[Blogs from Moroccan developers ](https://github.com/DevC-Casa/awesome-morocco#blogs) + +[Ryan Robinson's Free Blog Post Template](https://docs.google.com/document/d/1RNl7c5gojzbQSUGDrCGNEFTk-zu-DDlkdMcRUuTnONw/) + +[Grammarly](https://grammarly.com/) + +## Prepared and Presented by + +[Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0040.md b/episodes/episode-0040.md new file mode 100644 index 00000000..0d9d307e --- /dev/null +++ b/episodes/episode-0040.md @@ -0,0 +1,70 @@ +--- +date: 2020-05-17 +duration: "01:44:48" +title: "Self-Taught Developers" +tags: ["self-taught", "software engineering", "career"] +category: "career" +youtube: https://www.youtube.com/watch?v=EOnbBm31kiA +published: true +featured: false +--- + +In this episode of GeeksBlabla, we discuss with self-taught developers about their experience, how they get started and how they made it professionally. + +## Guests + +[Abderrahim Soubai Elidrissi](https://twitter.com/soub4i) + +[Youness Hakky](https://www.facebook.com/younes.hakky) + +[Ismail Ghallou](https://twitter.com/smakosh) + +## Notes + +0:00:00 - Introduction + +0:05:00 - If you donโ€™t have a CS degree, how did you learn to code? + +0:08:00 - Did you do any particular courses or bootcamps? + +0:12:00 - Was the learning path difficult at the beginning? + +0:18:00 - How can you stay motivated while learning to code? + +0:24:00 - Is it okay to start building an online presence as newbie web dev? + +0:28:00 - How can a junior developer get out of the "tutorial cycle" ? + +0:33:00 - Since things evolve very rapidly, how do you decide on what is worth learning ? + +0:36:00 - What kind of projects should we work on ? should this projects be something really special and unique, or just take personal ideas and keep working on them and sharing them? + +0:37:00 - How did you get your first programming job/ freelance work? + +0:43:00 - How has your life changed since becoming a professional programmer? + +0:49:00 - Has anyone ever asked about your coding qualifications when you have been talking to clients? + +0:51:00 - Do you think a CS degree is unnecessary now? + +0:57:00 - Did you still learn after you got your first job + +1:00:00 - Do you have tips for getting a remote job as a junior developer? + +1:02:00 - What advice do you have for someone who wants to get their first programming job but they donโ€™t have the time or money for a CS degree? + +1:32:00 - Is there something that most self-taughts have over "classic" engineers ? + +1:35:00 - Does security background helps in cracking interviews and landing jobs as a developer? + +1:42:00 - Will you go after fundamentals (Data types, patterns, algorithms...etc) Or you just learn things directly and try hard to go for it? + +1:44:00 - Wrap up and Goodbye. + +## Links + +## Prepared and Presented by + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0041.md b/episodes/episode-0041.md new file mode 100644 index 00000000..28982a06 --- /dev/null +++ b/episodes/episode-0041.md @@ -0,0 +1,66 @@ +--- +date: 2020-05-25 +duration: "02:13:00" +title: "PHP Deep Dive" +tags: ["php", "dev", "web", "backend"] +category: "dev" +youtube: https://www.youtube.com/watch?v=QxSk1jvim-c +published: true +featured: false +--- + +In this episode of GeeksBlabla, we discuss with amazing folks How to get started with PHP? some core concepts you need to master, Frameworks, CMS and much more. + +## Guests + +[Mohammed Benhida](https://twitter.com/simo_benhida) + +[Rachid laasri](https://twitter.com/RashidLaasri) + +[Imad Zairig](https://twitter.com/zairigimad) + +[EL Hossain Inani](https://twitter.com/InaniT0) + +## Notes + +0:00:00 - Intro and welcoming guests + +0:05:00 - What is PHP and why is very famous? + +0:12:00 - History about PHP. + +0:18:00 - Do you recommend beginners to start with PHP? + +0:31:00 - Why People Make jokes About PHP ? + +0:40:00 - The future of PHP in Morocco ? + +1:04:00 - How to get started with PHP ? + +1:15:00 - Fundamental concepts you need to master. + +1:26:00 - Frameworks & CMS + +1:38:00 - Testing With PHP. + +1:43:00 - Deploy your PHP project. + +1:46:00 - QA + +1:56:00 - Resources and Tools + +2:09:00 - Wrap up and Goodbye. + +## Links + +[PHP Coding Standards Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer) + +[PHPStan - PHP Static Analysis Tool](https://github.com/phpstan/phpstan) + +[Laravel Valet](https://laravel.com/docs/7.x/valet) + +[PHP The Right Way](https://phptherightway.com/) + +## Prepared and Presented by + +[Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0042.md b/episodes/episode-0042.md new file mode 100644 index 00000000..e8a4d9fa --- /dev/null +++ b/episodes/episode-0042.md @@ -0,0 +1,74 @@ +--- +date: 2020-05-31 +duration: "02:00:00" +title: "Ask Me Anything #2" +tags: ["AMA", "DevC"] +category: "ama" +youtube: https://www.youtube.com/watch?v=FizzGMnYwX0 +published: true +featured: false +--- + +Ask Me Anything episode #2 with our community members Mohammed and Abdelkader, During this episode we answer audience questions about programming, community,new technologies and much more. + +## Guests + +[Mohamed Ez-zarghili](https://twitter.com/ezzarghili) + +[Abdelkader Boudih](https://twitter.com/seurOSS) + +## Notes + +0:00:00 - Introduction + +0:04:00 - Which tech topic have you been interested in recently? + +0:11:00 - The nature of UX design field. + +0:13:00 - With the absence of UX design schools in Morocco, are there actually any Moroccan experienced UX designers out there? + +0:17:00 - The reason behind the lack of experience with UX design and the importance of UX design. + +0:29:00 - How should a beginner approach the developer roadmap? + +0:36:00 - How to get a remote job in companies abroad as a developer? + +0:45:00 - What are your thoughts about .NET? + +0:49:00 - How will the coronavirus impact the software industry? + +0:54:00 - Common Javascript concepts every Reactjs or Nodejs job seeker has to be familiar with. + +0:59:00 - Why don't some universities and schools teach Git in their computer science classes? + +1:04:00 - How to manage your learning with the over availability of online courses? + +1:10:00 - How to prepare for an IT job interview? + +1:11:00 - How to find repositories to contribute in? + +1:15:00 - What are Dark Patterns? + +1:20:00 - What would you recommend for building portfolio and blogging websites in terms of tools, frameworks or platforms? + +1:23:00 - How to Mitigate Security Vulnerabilities in an IoT Environment? + +1:30:00 - What is your approach to understanding and working on complex concepts? + +1:36:00 - How can I contribute to React? + +1:42:00 - Monorepo or polyrepo for microservice architecture? + +1:45:00 - The actual state of using Cloud services infrastructure in Morocco? + +1:46:00 - How do you collaborate with the operations team? + +1:50:00 - Why Rust is getting popular? + +1:58:00 - Wrap up and goodbye. + +## Links + +## Prepared and Presented by + +[Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0043.md b/episodes/episode-0043.md new file mode 100644 index 00000000..c92b08cf --- /dev/null +++ b/episodes/episode-0043.md @@ -0,0 +1,62 @@ +--- +date: 2020-06-07 +duration: "01:58:26" +title: "MSS with Omar Guendeli" +tags: ["self-taught", "game dev", "MSS"] +category: "mss" +youtube: https://www.youtube.com/watch?v=DFaRndHwuFY +published: true +featured: false +--- + +In this episode of GeeksBlabla, we discuss a success story of a Moroccan Gameplay Programmer who used to work in different games in Morocco, while being a med student, and made it to a big firm. + +## Guests + +[Omar Guendeli](https://www.linkedin.com/in/omar-guendeli-70a57862) + +## Notes + +0:00:00 - Introduction + +0:03:00 - Can you give us a brief look into what inspired you when you were young? + +0:05:00 - Did family or friends influence your decision to get into games or was this something you became interested in on your own? + +0:09:00 - What was the first game you worked on? + +0:13:00 - And how was your experience working on games in morocco? + +0:16:00 - Did you work with companies who are 100% into gaming products? + +0:20:00 - Did you have a mentor ? + +0:23:00 - Are there any classic or current games/films that changed your creative vision or that stand out to you as must play/watch and why + +0:24:00 - Have you been impressed or surprised by any recently? + +0:26:00 - Is there a favorite project or game title youโ€™ve worked on recently and what made it fun for you personally? + +1:04:00 - Is working with an international team a game changer in your career and your learning path? + +1:05:00 - and how is it to work in a very well known company? + +1:07:00 - What is your favorite part of game development, and the worst parts? + +1:13:00 - What were your hardest problems during the development of the game and how did you solve them? + +1:17:00 - What are the skills that an optimum newbie should possess in order to work efficiently and effectively in this domain? + +1:23:00 - What would be the best advice you would give to someone who wants to take a video game idea from the paper and develop it into a full game? + +1:28:00 - Whatโ€™s the deal with cheat codes? + +1:58:00 - Wrap up and Goodbye. + +## Links + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0044.md b/episodes/episode-0044.md new file mode 100644 index 00000000..b0d46a84 --- /dev/null +++ b/episodes/episode-0044.md @@ -0,0 +1,55 @@ +--- +date: 2020-06-13 +duration: "01:19:40" +title: "Wiqaytna: Everything (technical) you need to know" +tags: + ["entrepreneurship", "mobile dev", "security", "COVID-19", "cybersecurity"] +category: "dev" +youtube: https://www.youtube.com/watch?v=M-c9CP4ERlY +published: true +featured: false +--- + +In this episode of GeeksBlabla, we discuss the new app Wiqaytna, released in June from a technical point of view with Zouheir Lakhdissi. Also to answer all questions related to the app. + +## Guests + +[Zouheir Lakhdissi](https://www.facebook.com/zlakhdissi) + +## Notes + +0:00:00 - Introduction + +0:05:00 - The timeline that was required to build the app was legendary, no more than a month! what challenges did you face to honor this commitment ? + +0:13:00 - Can you give us an idea about the app workflow in general, so everyone understands how it works from an end user perspective. + +0:16:00 - what happens when someone is confirmed positive? + +0:19:00 - Why going for low energy technology (Bluetooth) in the first place? + +0:22:00 - Noticed that the app heavily consume battery energy, especially on iOS + +0:25:00 - Does the mobile devices communicate with an external API? + +0:32:00 - What is the backend stack that you used? + +0:43:00 - Why the fork relationship was not maintained with the original repository? + +0:51:00 - The app being published by Ministry of interior creates confusion. + +1:00:00 - Is it possible to contribute to the project ? What is the process ? + +1:04:00 - Why there was no marketing campaign regarding the app ? + +1:19:00 - Wrap up and Goodbye. + +## Links + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Mohammed Ez-zarghili](https://twitter.com/ezzarghili) diff --git a/episodes/episode-0045.md b/episodes/episode-0045.md new file mode 100644 index 00000000..2919d040 --- /dev/null +++ b/episodes/episode-0045.md @@ -0,0 +1,80 @@ +--- +date: 2020-06-14 +duration: "02:37:04" +title: "Angular Deep Dive" +tags: ["angular", "JS", "frontend", "web", "dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=49Sr9WuxSHM +published: true +featured: false +--- + +In this episode of GeeksBlabla we discuss Angular with some Amazing Community folks, How to get started ,Core concepts, Angular Ecosystem and a lot of topics around it. + +## Guests + +[Soubai Abderahim](https://twitter.com/soub4i) + +[Chihab Otmani](https://chihab.dev) + +[Abdullah Iraamane](https://www.facebook.com/abdullah.eraman) + +## Notes + +0:00:00 - Introduction and welcoming + +0:06:00 - What is Angular? History and How itโ€™s different than AngularJs + +0:14:00 - Performance issues and how Angular Solves them? + +0:26:00 - Pros and cons of Angular (compared to other frameworks or libraries like React) + +0:38:00 - Finding jobs as an Angular developer? + +0:50:00 - Fundamental skills that every Angular developer needs to master. + +0:58:00 - How to get started? + +1:13:00 - Angular and CSS. + +1:17:00 - Reactive Programming and Rxjs. + +1:34:00 - Angular SSG and SSR. + +1:38:00 - How to organize your Angular projects? + +1:49:00 - Testing Angular applications. + +1:57:00 - QA. + +## Links + +[ngMorocco meetup page](https://www.meetup.com/ngMorocco) + +[Angular in Darija](https://www.youtube.com/channel/UC5irZcpXt3LZ4Ra44aFX_eA) + +[ Angular University](https://angular-university.io/) + +[Angular Blog](https://blog.angular.io/) + +[Fireship](https://fireship.io/) + +[Angular Project Architecture](https://medium.com/ngconf/angular-architecture-matters-monorepo-df110b2a508a) + +[Pluralsight](https://www.pluralsight.com/) + +[Reactive Programming](http://reactivex.io/documentation/observable.html) + +[Academind](https://www.youtube.com/channel/UCSJbGtTlrDami-tDGPUV9-w) + +[Angular Architecture](https://medium.com/fincura-engineering/front-end-architecture-for-angular-applications-d6840b78706c) + +[Debug and Profile Angular Apps](https://augury.rangle.io/) + +[Angular in Depth](https://indepth.dev) + +## Prepared and Presented by + +[Youssouf EL Azizi](https://elazizi.com) + +[Soubai Abderahim](https://twitter.com/soub4i) diff --git a/episodes/episode-0046.md b/episodes/episode-0046.md new file mode 100644 index 00000000..2df20506 --- /dev/null +++ b/episodes/episode-0046.md @@ -0,0 +1,68 @@ +--- +date: 2020-06-21 +duration: "02:28:04" +title: "Mobile Development" +tags: ["android", "IOS", "mobile dev", "react native", "flutter"] +category: "dev" +youtube: https://www.youtube.com/watch?v=GFlWbEHmi4Y +published: true +featured: false +--- + +In this episode of GeeksBlabla, we discuss Mobile development with some Amazing Community folks, How to get started, Native, cross-platform solution, hybrid solutions, PWA, and a lot of topics around it. + +## Guests + +[Mehdi Sakout](https://twitter.com/MedyO80) + +[Raouf Rachiche](https://twitter.com/raoufrahiche) + +## Notes + +0:00:00 - Introduction and welcoming. + +0:08:00 - Mobile Development? History? + +0:14:00 - Mobile Development and how itโ€™s different from Web or desktop development (challenges). + +0:23:00 - State of Mobile Dev in Morocco and worldwide (jobs, technologies salaries) + +0:47:00 - Solution for Mobile Development(Native, Cross-platform, hybrid, PWA) + +0:55:00 - Flutter + +1:09:00 - Native Development (Android) + +1:15:00 - React Native + +1:21:00 - Cross Platform issues with upgrade. + +1:34:00 - Fuchsia and the future of Android. + +1:36:00 - Build and distribute Mobile Apps + +1:39:00 - Code Push + +1:47:00 - QA. + +## Links + +[Official android courses](https://developer.android.com/courses) + +[Official Apple courses](https://developer.apple.com/library/archive/referencelibrary/GettingStarted/DevelopiOSAppsSwift/) + +[React Native](https://reactnative.dev/) + +[Flutter](https://flutter.dev/) + +[Udacity](https://www.udacity.com/) + +[Raouf Rachiche Youtube Channel](https://www.youtube.com/channel/UCal0wCIwkxiKcrYPvBS6RiA) + +[Udemy](https://www.udemy.com/topic/android-development/free/) + +[AppCenter](http://appcenter.ms/) + +## Prepared and Presented by + +[Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0047.md b/episodes/episode-0047.md new file mode 100644 index 00000000..2f76e524 --- /dev/null +++ b/episodes/episode-0047.md @@ -0,0 +1,64 @@ +--- +date: 2020-06-28 +duration: "02:15:20" +title: "MSS with Adnane Belmadiaf" +tags: ["linux", "open source", "MSS"] +category: "mss" +youtube: https://www.youtube.com/watch?v=mKwXcC7VPac +published: true +featured: false +--- + +In this episode of GeeksBlabla, our guest Adnane Belmadiaf a frontend developer and also a very known person in Linux community who contributed to Ubuntu and will share his story. + +## Guests + +[Adnane Belmadiaf](https://www.facebook.com/AdnaneBelmadiaf) + +## Notes + +0:00:00 - Introduction and welcoming. + +0:01:00 - Who is Adnan Belmadiaf? + +0:02:00 - Academic background? Moroccan public school//universities or outside Morocco? + +0:09:00 - When you started as a web developer more than 10 years ago? How was the web experience back then? + +0:11:00 - Then you were one of the very few users, starting to use ubuntu and linux before it was cool. Tell us a bit about the experience back then? + +0:17:00 - Why was Ubuntu your favorite Linux distribution compared to others? + +0:21:00 - Linux at that time, was not as rich as these days. How did you manage to keep it up with essential tools? + +0:23:00 - You contributed to many Linux and open source projects. What drove you to make your first contribution? + +0:26:00 - One of the great achievements that you must certainly be proud of, is becoming an official Ubuntu member, How did you get there and what was your reaction back then? + +0:33:00 - How do you evaluate the web revolution in the past decade? + +0:56:00 - Was there a role for the Moroccan team to integrate Amazigh language or any efforts related to the integration? + +1:03:00 - Is the Moroccan Team community still active ? Can people join? What are the prerequisites? + +1:29:00 - You founded the ubuntu MoroccanTeam ? tell us a bit more about it? + +1:42:00 - How do you evaluate the contribution of the Moroccan community in open source? + +1:46:00 - What are your recommendations and advice to anyone who wants to start open source contributions? + +1:49:00 - How can people keep up with the rapid pace of front end technology nowadays? + +2:15:00 - Wrap up & bye bye + +## Links + +[Moroccan Team](https://wiki.ubuntu.com/MoroccanTeam) + +[DRM issues](https://www.defectivebydesign.org/) + +## Prepared and Presented by + +[Meriem Zaid](https://twitter.com/_iMeriem) + +[Mohamed Ez-zarghili](https://twitter.com/ezzarghili) diff --git a/episodes/episode-0048.md b/episodes/episode-0048.md new file mode 100644 index 00000000..3e40787d --- /dev/null +++ b/episodes/episode-0048.md @@ -0,0 +1,86 @@ +--- +date: 2020-07-05 +duration: "01:30:00" +title: "Ask Me Anything #3" +tags: ["AMA", "DevC"] +category: "ama" +youtube: https://www.youtube.com/watch?v=90t3BRQ1460 +published: true +featured: false +--- + +Ask Me Anything episode #3 with our community members Mohammed, Ismail and Youssouf, During this episode we answer audience questions about programming, community,new technologies and much more. + +## Guests + +[Mohammed Aboullaite](https://twitter.com/laytoun) + +[Ismail EL Azizi](https://www.linkedin.com/in/ismail-el-azizi/) + +## Notes + +0:00:00 - Introduction + +0:05:00 - Share with us your latest experiences. + +0:07:00 - How is the Facebook Developer Circle - Casablanca community is managed? + +0:10:00 - The importance of maintaining an open source project. + +0:14:00 - Has covid-19 had an impact on the hiring of developers in Morocco? + +0:17:00 - How front-end developers and UX designers work together? + +0:20:00 - What are the conflicts that a designer can have with a developer? + +0:23:00 - How can a developer improve his design perspective? + +0:31:00 - What are your thoughts on Typescript? + +0:36:00 - Any tips for React beginners? + +0:39:00 - Do designers take into consideration time constraint when making a design and handling it to developers? + +0:43:00 - The benefits of working on side projects. + +0:47:00 - Why schools won't teach you new technologies? + +0:50:00 - What are some of the best side projects for a junior developer? + +0:56:00 - Is audio processing worth to be done using web audio API? + +1:00:00 - React Native Fabric Architecture. + +1:03:00 - Personal branding for developers. + +1:04:00 - Side projects to get familiar with Java EE. + +1:06:00 - Why new startups tend to use languages like PHP and PYTHON for the back-end instead of JAVA? + +1:08:00 - The ideal way to start your open source journey. + +1:12:00 - Can we find python internships in Morocco? If so, how can I find them? + +1:16:00 - Any platform where I can find web design challenges? + +1:29:00 - Wrap up and goodbye. + +## Links + +[Refactoring UI](https://refactoringui.com/) + +[React Typescript](https://github.com/typescript-cheatsheets/react-typescript-cheatsheet) + +[React Egghead Course](https://egghead.io/courses/the-beginner-s-guide-to-react) + +[React Episode](https://geeksblabla.io/blablas/react-deep-dive) + +[DevC Casa Hacktoberfest](https://github.com/DevC-Casa/devc-casa-hacktoberfest) + +[JavaScript](https://javascript30.com/) + +[Daily UI Design](https://www.dailyui.co/) + +## Prepared and Presented by + +[Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0049.md b/episodes/episode-0049.md new file mode 100644 index 00000000..98868f89 --- /dev/null +++ b/episodes/episode-0049.md @@ -0,0 +1,48 @@ +--- +date: 2020-07-19 +duration: "02:33:00" +title: "Building A Resume" +tags: ["career"] +category: "career" +youtube: https://www.youtube.com/watch?v=eTaI-aYN9Vw +published: true +featured: true +--- + +In this episode of GeeksBlabla, we discuss best practices to build a resume, how to avoid most common mistakes and some tools to build a Good resume. + +## Guests + +[Othmane Kinane](https://www.linkedin.com/in/othmanekinane/) + +[Meriem Zaid](https://twitter.com/_iMeriem) + +[Mohamed Ez-zarghili](https://twitter.com/ezzarghili) + +## Notes + +0:00:00 - Introduction and welcoming. + +0:05:00 - Why do employers care about resumes and why your resume is very critical in your path searching for a new job? + +0:10:00 - Guests experience writing their first resume. + +0:23:00 - Challenges for Students on Writing their resumes. + +0:38:00 - Most common mistakes made by junior developers building their resumes. + +0:48:00 - Most Important sections for a developer resume. + +1:20:00 - Cover letter. + +1:25:00 - QA. + +1:54:00 - Reviewing community member's resumes. + +2:25:00 - Wrap up and Goodbye. + +## Links + +## Prepared and Presented by + +[Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0050.md b/episodes/episode-0050.md new file mode 100644 index 00000000..9ecb2cac --- /dev/null +++ b/episodes/episode-0050.md @@ -0,0 +1,78 @@ +--- +date: 2020-09-07 +duration: "01:06:16" +title: "MSS With Mehdi Mourabit" +category: "mss" +tags: ["entrepreneurship", "startup", "digital marketing"] +youtube: https://www.youtube.com/watch?v=kLgl5uDK5IM +published: true +featured: false +--- + +In this episode of GeeksBlabla, our guest Mehdi Mourabit a a serial entrepreneur will share his story. + +## Guests + +[Mehdi Mourabit](https://www.facebook.com/mehdi.mourabit) + +## Notes + +00:00:00 - Introduction and welcoming. + +00:02:00 - Who is Mehdi Mourabit? + +00:03:00 - What is your academic background? + +00:05:00 - How did you do to combine your study in the IT field and marketing? + +00:06:00 - Have you had side projects in parallel with your study? + +00:16:00 - Why did you choose to continue your study and not to focus only on your projects? + +00:19:00 - When you started your first company and why you start with this concept? + +00:21:00 - What is the specialty of your company Webeuz? + +00:22:00 - Why did you choose to create a company and not to work as an employee? + +00:26:00 - How many collaborators you currently have in your company? + +00:27:00 - After Webeuz you start many startups can you talk about this experience? + +00:33:00 - How was your participation with Ohmylead in international competitions? + +00:36:00 - Will you continue on the current domain of Ohmylead + +00:38:00 - Can you talk about your startup Myads? + +00:45:00 - The Morocco ecosystem help launching a startup? + +00:47:00 - Do you think people start giving more importance to digital marketing? + +00:49:00 - What is digital marketing? + +00:50:00 - Can you give us some strategies to do in digital marketing? + +00:53:00 - What it the best platform to use to find clients? + +00:56:00 - Is there a method to be on top of the search result at Google? + +01:01:00 - Are there tools that give you your ranking and what you need to improve on your website? + +01:01:00 - Are there tools that give you your ranking and what you need to improve on your website? + +01:03:00 - What are your recommendations and advice to anyone who wants to start entrepreneurship? + +01:05:00 - Wrap up and Goodbye. + +## Links + +[Ahrefs](https://ahrefs.com) + +[Woorank](https://www.woorank.com) + +[Semrush](https://www.semrush.com) + +## Prepared and Presented by + +[Soufian El Foukahi](https://twitter.com/soufyanAI) diff --git a/episodes/episode-0051.md b/episodes/episode-0051.md new file mode 100644 index 00000000..4f9e49bc --- /dev/null +++ b/episodes/episode-0051.md @@ -0,0 +1,72 @@ +--- +date: 2020-09-12 +duration: "02:30:36" +title: "Developers Working Abroad" +tags: ["career"] +category: "career" +youtube: https://www.youtube.com/watch?v=jz-wNrMvKjY +published: true +featured: true +--- + +In this episode of GeeksBlabla, we discuss with our guests what is it like to work abroad as a developer. + +## Guests + +- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) + +- [Mariam Kharbat](https://twitter.com/MeriamKharbat) + +- [Oussama Salimi](https://www.facebook.com/osama.salimi.1) + +- [Ahmed Kachkach](http://kachkach.com/) + +- [Othmane Meniar](https://www.facebook.com/maniar.othmane) + +## Notes + +0:00:00 - Introduction + +0:04:00 - What is your academic background and where have you worked in Morocco? + +0:09:00 - What to consider if you want to work abroad for the first time? + +0:19:00 - Does the position you are applying for abroad take into consideration your Moroccan diploma? + +0:25:00 - What are the pros and cons of working abroad? + +0:35:00 - Is it less complicated to get promoted abroad? + +0:49:00 - Which is better as a first job in Morocco, to work in an "SSII" or in a startup? + +0:54:00 - How is the lifestyle abroad, in terms of cost and work-life? + +1:16:00 - What to consider when applying for remote jobs in Europe? + +1:19:00 - Is English the primary work-language in Europe? + +1:25:00 - What are the best job sectors to apply for abroad? + +1:39:00 - Is it important to change jobs after a period of time? + +1:55:00 - Freelance vs CDI. + +2:02:00 - Do I need to verify all the requirements to apply for a job abroad? + +2:12:00 - How to negotiate your salary? + +2:20:00 - Work permits abroad. + +2:26:00 - Wrap up and goodbye. + +## Links + +- [Calculate your salary](https://stackoverflow.com/jobs/salary) +- [Remote hiring](https://news.ycombinator.com/item?id=17022563) +- [Cost of Living Comparison](https://www.numbeo.com/cost-of-living/comparison.jsp) +- [glassdoor](https://www.glassdoor.com/index.html) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) +- [Ismail Tlemcani](https://www.linkedin.com/in/ismailtlemcani) diff --git a/episodes/episode-0052.md b/episodes/episode-0052.md new file mode 100644 index 00000000..b7c36475 --- /dev/null +++ b/episodes/episode-0052.md @@ -0,0 +1,77 @@ +--- +date: 2020-09-19 +duration: "02:10:54" +title: ".NET Deep Dive" +tags: ["software engineering"] +category: "dev" +youtube: https://www.youtube.com/watch?v=f930PXnFiMs +published: true +--- + +In this episode of GeeksBlabla, we discuss with our guests the overall basic and advanced concepts of .NET. + +## Guests + +- [Anas Mazioudi](https://www.facebook.com/disklosr) + +- [Kafil Nasdami](https://kafil.now.sh) + +- [Yassine Driouich](https://www.facebook.com/Programmation.Maroc) + +## Notes + +0:00:00 - Introduction + +0:03:00 - What exactly is .NET? + +0:10:00 - What is the history of .NET and how did it become open source? + +0:23:00 - How did Microsoft make .NET cross-platform? + +0:25:00 - How to execute a .NET file in Linux? + +0:34:00 - Is it relevant to compare Spring Boot and/or Laravel with .NET? + +0:40:00 - .NET job opportunities, locally vs abroad. + +0:49:00 - Is it worth it to learn .NET? + +0:59:00 - .NET IDE on cloud. + +1:07:00 - Is there some aspects where .NET Core shines the most compared to other stacks? + +1:14:00 - How is package management done in .NET world? + +1:16:00 - What are the basic .NET concepts that every .NET developer has to be familiar with? + +1:24:00 - How to get started with .NET? + +1:29:00 - What are the development tools that you use frequently? + +1:37:00 - How to write performant code with .NET? + +1:41:00 - .NET garbage collection. + +1:45:00 - ASP.NET vs .NET Core + +1:46:00 - What about some famous projects build with .NET? + +1:51:00 - Hosting for .NET web applications. + +1:52:00 - .NET resources and courses. + +2:03:00 - What are the most popular libraries in C#? + +2:07:00 - Wrap up and goodbye. + +## Links + +- [.NET documentation](https://docs.microsoft.com/en-us/dotnet/) +- [.NET youtube playlist](https://www.youtube.com/c/dotNET/playlists) +- [eShopOnContainers](https://github.com/dotnet-architecture/eShopOnContainers) +- [Channel 9](https://channel9.msdn.com/) +- [.NET Fondation - Community Standup](https://www.youtube.com/c/NETFoundation/playlists) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0053.md b/episodes/episode-0053.md new file mode 100644 index 00000000..cce62802 --- /dev/null +++ b/episodes/episode-0053.md @@ -0,0 +1,82 @@ +--- +date: 2020-09-27 +duration: "02:26:48" +title: "Ask Me Anything #4" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=hUmgd_hH1xY +published: true +--- + +Ask Me Anything episode #4 with our community members Youssouf, Meriem, Abdelfettah and Mohamed. During this episode we answer audience questions as well as discussing the latest tech news. + +## Guests + +- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) + +- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) + +## Notes + +0:00:00 - Introduction + +0:03:00 - What is going on with TikTok? + +0:08:00 - What is the deal with Oracle and TikTok? + +0:09:00 - The financial impact of the American users of TikTok. + +0:11:00 - Politics and Tech. + +0:15:00 - Discussions on potential TikTok purchase in the United States. + +0:17:00 - The secret AI sauce behind TikTok? + +0:18:00 - Why AI Video Annotation is computationally expensive? + +0:21:00 - What are your thoughts on the Much-Hyped GPT-3 and will it impact the coders? + +0:32:00 - A common pattern of tech trends. + +0:36:00 - The "No-Code" delusion. + +0:38:00 - Fake news and AI. + +0:42:00 - NVIDIA to Acquire Arm for \$40 Billion. + +0:55:00 - Apple's battle with Epic Games. + +1:10:00 - The problem with Antitrust Laws. + +1:12:00 - General Data Protection Regulation (GDPR) in context. + +1:15:00 - The work nature of the CNDP. + +1:21:00 - Octoberfest and open source. + +1:31:00 - What are the responsibilities of a full stack developer in Moroccan companies? + +1:41:00 - What is your opinion on TDD? Do we need to follow it? + +1:46:00 - the importance of end to end testing and integration testing. + +1:53:00 - Where is the Cloud market going? + +2:01:00 - What are the most used frameworks in Moroccan companies? + +2:06:00 - Why a technology has to have support in order for it to be adopted? + +2:08:00 - Microservices vs Monolith. + +2:11:00 - How do you choose the backend technology that you work with? + +2:19:00 - Static site re-generation vs client side fetching/rendering vs server side rendering. + +2:24:00 - Wrap up and goodbye. + +## Links + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0054.md b/episodes/episode-0054.md new file mode 100644 index 00000000..f76e032c --- /dev/null +++ b/episodes/episode-0054.md @@ -0,0 +1,54 @@ +--- +date: 2020-10-04 +duration: "01:08:20" +title: "MSS with Samir Benmakhlouf" +tags: ["MSS"] +category: "mss" +youtube: https://www.youtube.com/watch?v=IPR2auK2vRg +published: true +--- + +In this episode of GeeksBlabla, we invited Samir Benmakhlouf who is the current CEO of London Academy School and previous Country Manager of Microsoft Morocco + +## Guests + +- [Samir Benmakhlouf](https://www.linkedin.com/in/samirben/) + +## Notes + +0:00:00 - Introduction and Welcoming. Reminder to register to blablaconf + +0:02:00 - Educational journey + Higher education journey + +0:07:00 - Why going to the US instead of France or other countries to pursue your higher education studies ? + +0:16:00 - Why pursuing a PHD ? Is PHD something you advise for moroccan students ? + +0:18:00 - Advantages and inconvenients of education in USA + +0:23:00 - Doing a PHD directly after a bachelor ? + +0:33:00 - Role of the guest within Microsoft Morocco + Missions of Microsoft Morocco + +0:36:00 - Future plans of Microsoft for Morocco + +0:37:00 - Advices for people that want to work within Microsoft + +0:38:00 - Few words about Bill Gates and his style of management + +0:40:00 - WHy aren't there any big technological lab in Morocco ? (Like Google AI center in Ghana) + +0:47:00 - How is Coding teached in london academy ? + +0:52:00 - Guest point of view about how computer science in teached in Moroccan universities ? + +0:56:00 - How were courses handled in London Academy during the Covid 19 pandemic ? + +## Links + +- [Microsoft MACH program](https://my.gradconnection.com/employers/microsoft/intern-to-mach/) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) +- [Ismail Tlemcani](https://www.linkedin.com/in/ismailtlemcani) diff --git a/episodes/episode-0055.md b/episodes/episode-0055.md new file mode 100644 index 00000000..94bc35b0 --- /dev/null +++ b/episodes/episode-0055.md @@ -0,0 +1,97 @@ +--- +date: 2020-10-11 +duration: "02:46:57" +title: "Hacktoberfest & Open Source" +tags: ["open source", "dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=A6mR8LdPLdQ +published: true +--- + +In this episode of GeeksBlabla, we discuss with our guests, Open Source and the much-hyped Hacktoberfest. + +## Guests + +- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) + +- [Abderrahim Soubai Elidrissi](https://twitter.com/soub4i) + +- [Ismail Ghallou](https://twitter.com/smakosh) + +- [Taoufik Abbassid](https://twitter.com/taoufikabbassid) + +## Notes + +0:00:00 - Introduction + +0:06:00 - Tell us about your first experience with Open Source. + +0:16:00 - What exactly is Open Source? + +0:22:00 - A brief history of Open Source and why does it exit. + +0:35:00 - Is Open Source necessarily attached to GitHub? + +0:39:00 - What are your thoughts on Microsoft acquiring GitHub? + +0:47:00 - GitLab Vs GitHub. + +0:48:00 - Why do large companies Open Source their tech? + +1:03:00 - Is it possible for someone to build a product from his Open Source project? + +1:12:00 - Facebook Developer Circles Community Challenge. + +1:20:00 - Do Open Source projects have the most security vulnerabilities? + +1:22:00 - Backdoors and vulnerabilities in Open Source-based products. + +1:26:00 - What is Hacktoberfest? + +1:29:00 - The story behind Hacktoberfest spam PRs. + +1:34:00 - What Open Source is actually about? + +1:38:00 - Donations and Open Source. + +1:41:00 - What have you gained from Open Source as a contributor? + +1:47:00 - What is PR (Pull Request)? + +1:52:00 - Open Source in the Moroccan tech community. + +2:02:00 - What are the requirements that aspiring Open Source contributors should meet? + +2:10:00 - How to make a valuable contribution to an Open Source project for the first time? + +2:19:00 - What are the challenges of maintaining a big Open Source project? + +2:34:00 - What is the status of hackathons during Covid-19? + +2:35:00 - Last words for Open Source enthusiasts. + +2:46:00 - Wrap up and goodbye. + +## Links + +- [Hacktoberfest](https://hacktoberfest.digitalocean.com/) + +- [Open Source with Yassine Elouafi](https://geeksblabla.io/blablas/open-source-with-yassine-elouafi) + +- [Facebook Developer Circles Community Challenge](https://developercircles2020.devpost.com/) + +- [Devc-Casa repository to learn about open source code contributions flow](https://github.com/DevC-Casa/devc-casa-hacktoberfest) + +- [List of awesome Moroccan things for developers](https://github.com/DevC-Casa/awesome-morocco) + +- [freeCodeCamp](https://www.freecodecamp.org/) + +- [Good First Issue](https://goodfirstissue.dev/) + +- [Issue Hub](http://issuehub.io/) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0056.md b/episodes/episode-0056.md new file mode 100644 index 00000000..1581cdfb --- /dev/null +++ b/episodes/episode-0056.md @@ -0,0 +1,75 @@ +--- +date: 2020-11-08 +duration: "01:38:00" +title: "MSS with Mehdi Belmekki" +tags: ["MSS"] +category: "mss" +youtube: https://www.youtube.com/watch?v=EbLwd75TBXw +published: true +--- + +In this episode of GeeksBlabla, we invited Mehdi Belmekki who is the currently Services Sales Rep in GitHub in EMEA region. + +## Guests + +- [Mehdi Belmekki](https://www.linkedin.com/in/belmekki/) + +## Notes + +0:00:00 - Introduction and welcome=ing + +0:02:00 - Who is Mehdi Belmekki ? + +0:04:00 - Academic background, where is the guest born, education until baccalaurรฉat and higher education studies + +0:11:00 - Something you advise for moroccan students in engineering + +0:17:00 - How do you evaluate the certification system along with studies, and what are the pros of INSEAD Certification? + +0:20:00 - First contact with technology in general and computer science in particular + +0:24:00 - Can you tell us more about GitHub student pack? + +0:26:00 - You worked almost 6 years at Alfresco, How was the experience ? + +0:35:00 - You started as Technical Consultant, then promoted to Principal, then Architect and finally Engagement Manager. First can you tell us more about Engagement manager role ? + +0:42:00 - What pushed you to make the move ? + +0:49:00 - In 2018 you Joined Github, How did you get to Github for the first time ? + +0:54:00 - You started as a Solution engineer and then switched to Sales rep. First what is Solution engineering at Github ? + +0:56:00 - How was the switch to Sales Rep, specially in the EMEA region + +1:00:00 - What changed in Github after joining Microsoft ? Are there any cool projects for the future, especially in the CI area. + +1:06:00 - What are the issues you had while switching from Technical to Engagement manager? + +1:09:00 - Are there any future plans of Github with Morocco ? + +1:12:00 - Do you have any special advice for people that want to get into Github? + +1:18:00 - We know Github.com, and not GitHub services. Can you tell us more about it + +1:20:00 - What is your opinion about how computer science is teached in moroccan universities ? Is it good ? Does it lack anything important ? Does it produce competent people ? + +1:28:00 - Does GitHub have any expansion plans in african coutries? + +1:29:00 - Does GitHub have any guidelines on AI and wants to invest in that field? + +1:30:00 - What is the difference between DevSecOps and Pentesting ? + +1:33:00 - When GitHub sponsors will launch in Africa? + +1:38:00 - Wrap up and goodbye. + +## Links + +## Prepared and Presented by + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Hamza Makraz](https://web.facebook.com/MakrazHamza) diff --git a/episodes/episode-0057.md b/episodes/episode-0057.md new file mode 100644 index 00000000..89622e89 --- /dev/null +++ b/episodes/episode-0057.md @@ -0,0 +1,87 @@ +--- +date: 2020-11-15 +duration: "02:03:28" +title: "Career paths for software developers" +tags: ["career"] +category: "career" +youtube: https://www.youtube.com/watch?v=HZUKNz4Z1kg +published: true +--- + +In this episode of GeeksBlabla, we discuss with our guests the different career paths for software developers as well as the challenges that aspiring software developers could face in their journey. + +## Guests + +- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) + +- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) + +- [Othmane Kinane](https://www.linkedin.com/in/othmanekinane/) + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +## Notes + +0:00:00 - Introduction. + +0:02:00 - What are the career progressions for software developers/engineers in the tech industry and how much time does it take to progress from one level to another? + +0:19:00 - What are the common mistakes developers and software engineers do in their career? + +0:28:00 - Why learning english is a must when it comes to software engineering? + +0:29:00 - Generalist vs Specialist in the tech industry. + +0:35:00 - A mistake to avoid if you want to be taken seriously as a software engineer/developer. + +0:38:00 - What are the different kinds of companies a software engineer/developer could work for? + +0:40:00 - Tell us about your experience working for a services company and how was the career progression system like? + +0:44:00 - What exactly is a services comapany? + +0:49:00 - The career path of software engineer in a product company. + +0:56:00 - What are the different types of product companies? + +0:59:00 - Career evolutions in product companies. + +1:04:00 - Global Distribution System and why airplane tickets can get very expensive? + +1:06:00 - Software engineers in Startups. + +1:10:00 - How the implementation of General Data Protection Regulation impacted Startups? + +1:15:00 - Advice for Startups employees. + +1:18:00 - What should I look for when it comes to Startup equity? + +1:26:00 - If there are no well-defined rules in a company regarding advancement in the hierarchy, how can we progress? + +1:28:00 - What are the optimal career paths for someone who would like to work in Europe? + +1:32:00 - Freelance career path for software engineers? + +1:38:00 - Public organizations and software engineering. + +1:44:00 - What are the disadvantages of working in public organizations after graduation? + +1:46:00 - How companies invest in your learning/training? + +1:57:00 - How to evolve as an infrastructure junior engineer? + +1:59:00 - Wrap up and goodbye. + +## Links + +- [Crunchbase: Discover innovative companies and the people behind them](https://www.crunchbase.com/) + +- [Slicing Pie: Startup equity calculator](https://slicingpie.com/) + +- [Agence de Developpement du Digital: ADD](https://www.add.gov.ma/) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Ismail Tlemcani](https://www.linkedin.com/in/ismailtlemcani) diff --git a/episodes/episode-0058.md b/episodes/episode-0058.md new file mode 100644 index 00000000..3783251f --- /dev/null +++ b/episodes/episode-0058.md @@ -0,0 +1,101 @@ +--- +date: 2020-11-22 +duration: "02:38:56" +title: "How Does the Internet Work?" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=8BPT8ElBVnQ +published: true +--- + +In this episode of GeeksBlabla, we will discover with our guests how the Internet actually works. + +## Guests + +- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) + +- [Abderrahim Soubai Elidrissi](https://twitter.com/soub4i) + +- [Yassine Moumen](https://www.linkedin.com/in/yassine-moumen/) + +## Notes + +0:00:00 - Introduction. + +0:07:00 - Briefly, how does the Internet work? + +0:12:00 - What's the first thing that happens when we type something into Google? + +0:17:00 - Electrical signals and Raspberry Pies. + +0:20:00 - What can we possibly build with a Raspberry Pi? + +0:23:00 - What actually happens when we search for something in Google? + +0:25:00 - What does HSTS protect against and how is it implemented? + +0:28:00 - What is mixed content (HTTP over HTTPS)? + +0:33:00 - What does HTTP or HTTPS mean from the server side? + +0:37:00 - What is DNS, how does it work and why is it important? + +0:44:00 - Does changing DNS improve Internet speed? + +0:53:00 - Do DNS resolvers control your Internet accessibility? + +0:57:00 - How is the encapsulated frame sent to the internet through the default gateway? + +1:03:00 - HTTP and the OSI model. + +1:07:00 - What is the MAC address? + +1:08:00 - What exactly is a protocol? + +1:11:00 - Game Theory and communication networks. + +1:13:00 - What is ARP cash poisoning (ARP Spoofing)? + +1:15:00 - What happens when an HTTP request reaches the Server? + +1:22:00 - Why is it said that HTTP is a stateless protocol? + +1:24:00 - Reverse Proxy Server attacks. + +1:25:00 - Concepts every back-end developer must be familiar with (sessions, cookies and ORM). + +1:31:00 - Subdomains (cost, limitations and hosting). + +1:33:00 - What is a Canonical Name (CNAME)? + +1:35:00 - Why a Server has to be near the Client and how does it impact the Latency? + +1:37:00 - As a DevOps engineer, how much do you need to know about network protocols? Are the basics enough? + +1:39:00 - What is the difference between a Reverse Proxy and a Load Balancer? + +1:47:00 - What is JSON Web Token (JWT) and how does it work? + +1:54:00 - How does a Server respond to a request? + +2:04:00 - What are the major components of a web browser? + +2:13:00 - What is HTML parsing? + +2:18:00 - Why is it important for a software engineer to have global knowledge? + +2:23:00 - What is HTTP/3? + +2:31:00 - Briefly, what exactly is the Deep Web? + +2:37:00 - Wrap up and goodbye. + +## Links + +- [Root name server](https://en.wikipedia.org/wiki/Root_name_server) + +- [What happens when...](https://github.com/alex/what-happens-when) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0059.md b/episodes/episode-0059.md new file mode 100644 index 00000000..a6d3cf61 --- /dev/null +++ b/episodes/episode-0059.md @@ -0,0 +1,141 @@ +--- +date: 2020-11-29 +duration: "02:44:26" +title: "Ask Me Anything #5" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=IQlzDiEjAXY +published: true +--- + +Ask Me Anything episode #5 with our community members and guests Youssouf, Abderrahim, Ouissal and Mohamed. During this episode we answer audience questions about programming, community, new technologies and much more. + +## Guests + +- [Abderrahim Soubai Elidrissi](https://twitter.com/soub4i) + +- [Ouissal Moumou](https://www.linkedin.com/in/ouissal-moumou-61a009187/) + +- [Mohamed Moumou](https://www.linkedin.com/in/mohamed-moumou-14404b1b9/) + +## Notes + +0:00:00 - Introduction. + +0:04:00 - How have you heard about Facebook Developer Circles Community Challenge? + +0:05:00 - What was the submitted tutorial/project about? + +0:08:00 - How have you decided to start your Open Source journey? + +0:12:00 - What were the challenges that you have faced while working on the Facebook Developer Circles Community Challenge? + +0:15:00 - What were the tools that you have used to train your bot? + +0:16:00 - How do you manage working while being a computer science student? + +0:17:00 - What is like to be a student at Al Akhawayn University? + +0:19:00 - What are the access options to Al Akhawayn University? + +0:20:00 - What can you tell us about the events that take place in Al Akhawayn University? + +0:22:00 - Can you choose courses in Al Akhawayn University or are they imposed on you? + +0:25:00 - Does the Al Akhawayn University ecosystem help students with their projects and Startup ideas? + +0:27:00 - The importance of self learning for students. + +0:28:00 - How do you learn new technologies as students? + +0:34:00 - What was studying during the pandemic like? + +0:36:00 - How did you get started with programming/coding? + +0:42:00 - Which is the preferable language to learn for the Moroccan Tech Industry? + +0:48:00 - What are your thoughts on Apple's new M1 processor? + +0:53:00 - SAD DNS attack. + +0:56:00 - New Google Chrome Zero-Day vulnerability. + +0:59:00 - Twitter's new Stories feature 'Fleets'. + +1:01:00 - Google Photos will not be free by June 1, 2021! + +1:06:00 - What is new in Angular 11? + +1:09:00 - Vue.js 3 Composition API? + +1:12:00 - Do you focus on the front-end? If so what is your stack? + +1:14:00 - Tailwind CSS and the problem with CSS. + +1:17:00 - Which code editor do you work with? + +1:22:00 - The high quality of Vercel's Next.js conference. + +1:24:00 - Spotify.js, weekend Open Source project by Abderrahim Soubai Elidrissi. + +1:33:00 - What are your thoughts on Prisma next-generation ORM? + +1:35:00 - The importance of using schematics in Angular? + +1:36:00 - What should every Django back-end developer be familiar with? + +1:39:00 - Advice for Machine Learning enthusiasts. + +1:40:00 - What exactly is a software engineer? + +1:46:00 - How much a beginner fullstack developer should charge per hour? + +1:50:00 - How to stand out in the freelance market while other "freelancers" charge below average? + +1:54:00 - Do you have plans to work abroad? + +1:55:00 - Are there any work opportunities for .Net developer? + +1:56:00 - How can I know that I am ready for job interviews? + +2:00:00 - What is the best way to escape a job interview question? + +2:08:00 - Why jumping to the source code of an Open Source project is benificial? + +2:10:00 - What is the role of TypeScript? + +2:18:00 - The secret sauce to master Javascript. + +2:19:00 - What are your learning resources? + +2:23:00 - What are your thoughts on Robotic Process Automation (RPA) in Morocco? + +2:24:00 - As a self-taught developer, how do I know that I'm in the right track with the right pace? + +2:28:00 - The "self-taught title" from the perspective of a self-taught Fullstack developer and Cloud Architect. + +2:30:00 - How do you manage freelancing while being an employee? + +2:31:00 - As a junior developer, how do you deal with the fact that you have to work with technologies you prefer not to work with? + +2:34:00 - How to find your productive way of learning (documentation, videos, podcasts, etc)? + +2:41:00 - Wrap up and goodbye. + +## Links + +- [Customer Service Messenger Bit](https://github.com/ouissa/Customer_Service_Messenger_Bit/blob/master/README.md) + +- [SAD DNS Explained](https://blog.cloudflare.com/sad-dns-explained/) + +- [Hacktoberfest & Open Source](https://geeksblabla.io/blablas/hacktoberfest-open-source) + +- [Awesome Morocco](https://github.com/DevC-Casa/awesome-morocco) + +- [.NET deep dive](https://geeksblabla.io/blablas/net-deep-dive) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0060.md b/episodes/episode-0060.md new file mode 100644 index 00000000..49477599 --- /dev/null +++ b/episodes/episode-0060.md @@ -0,0 +1,55 @@ +--- +date: 2020-12-06 +duration: "03:25:00" +title: "MSS with Mohamed Youssfi" +tags: ["MSS"] +category: "mss" +youtube: https://www.youtube.com/watch?v=I7FwzqXm-uQ +published: true +--- + +In this episode of GeeksBlabla, we invited Mohamed Youssfi, one of the most famous university school teachers in morocco, we discuss his experience and IT education in morocco. + +## Guests + +- [Mohamed Youssfi](https://www.facebook.com/mohamed.youssfi.9) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:00 - Who is Mohamed Youssfi ? + +0:13:00 - Did you plan to be a teacher in your childhood? + +0:22:00 - What is the secret behind a successful teacher? + +0:30:00 - The story behind Mohammed Youssfi successful youtube channel. + +0:46:00 - Why most of the tutorials are related to Java and JEE? + +1:00:00 - Getting updated about the latest technologies? + +1:10:00 - How to deal with the level of disparity between students? + +1:16:00 - What do you think about the height of education in Morocco (IT)? + +1:35:00 - Is diplomas important in IT? + +1:51:00 - French or English for height school education ? + +2:10:00 - The problem of researcher professor not working in technology in the market before teaching it. + +2:28:00 - The State Of Dev In Morocco 2020. + +2:48:00 - what the first thing you will do if you are the minister of education. + +3:04:00 - Pieces of Advice to students. + +## Links + +## Prepared and Presented by + +- [Youssouf EL Azizi](https://elazizi.com) + +- [Soufian El Foukahi](https://twitter.com/soufyanAI) diff --git a/episodes/episode-0061.md b/episodes/episode-0061.md new file mode 100644 index 00000000..c8e26173 --- /dev/null +++ b/episodes/episode-0061.md @@ -0,0 +1,57 @@ +--- +date: 2020-12-13 +duration: "02:44:00" +title: "State of Dev in Morocco" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=RDhE0RUbkJI +published: true +--- + +In this episode of GeeksBlabla, we discuss and analyse the results of stateofdev.ma with our guests and answer your questions about the survey. + +## Guests + +- [Haytam Zanid](https://www.facebook.com/hayapoz) +- [Abderrahim Soubai](https://twitter.com/soub4i) +- [Djalal](https://twitter.com/enlamp) + +## Notes + +0:00:00 - Introduction + +0:05:00 - How important is it to have these kind of initiatives? + +0:20:00 - Overview + +0:26:00 - Profile + +0:53:00 - Education and Learning + +1:22:00 - Work + +2:00:00 - Technology + +2:13:00 - Community + +2:44:00 - Wrap up & Goodbye + +## Links + +- [Stack Overflow Developer Survey 2020](https://insights.stackoverflow.com/survey/2020) + +- [State Of Dev In Morocco 2020](https://stateofdev.ma/) + +- [The State Of Software Development in Morocco 2019](https://medium.com/@medyo80/the-state-of-software-development-in-morocco-survey-results-2019-1196dc5bffbe) + +- [State Of Dev project on GitHub](https://github.com/DevC-Casa/stateofdev.ma) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) + +- [Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/episodes/episode-0062.md b/episodes/episode-0062.md new file mode 100644 index 00000000..9741c889 --- /dev/null +++ b/episodes/episode-0062.md @@ -0,0 +1,77 @@ +--- +date: 2020-12-20 +duration: "01:44:50" +title: "PhD in Computer Science" +tags: ["career"] +category: "career" +youtube: https://www.youtube.com/watch?v=ylR9JZfhULc +published: true +--- + +In this episode of GeeksBlabla, we discuss with our guests Karim Mouhssine and Mohamed, who had experience in PhD before, everything about PhD and how to apply for it in Morocco. + +## Guests + +- [Karim Benzidane](https://www.linkedin.com/in/benzidanekarim) +- [Mouhssine Lakhdissi](https://www.linkedin.com/in/mlakhdissi/) +- [Mohammed Ez-zarghili](https://twitter.com/ezzarghili) + +## Notes + +0:00:00 - Introduction + +0:03:00 - What is PhD, How long does it take, Objective of a PHD and How to apply for a CS PHD in Morocco ? + +0:06:00 - Do you have any advices for choosing a subject and the supervisor? + +0:09:00 - Advice for getting an additional funding if possible + +0:12:00 - When you apply for a PhD in university, are you affected automatically to another institution? + +0:13:00 - Is ther a precise time of the year when we can start working on our PhD? + +0:20:00 - What are the objectives and responsabilities of a PhD syudent during his cursus? + +0:32:00 - One of the requirements to aply for PhD is having indexed articles + +0:38:00 - Do salaried PhD students pay subscribtion fees to PhD program? + +0:39:00 - Any advices on how to write a scientific article? + +0:42:00 - Different categories of academic journals. How to know the reputation (or impact) of a given journal ? Is there a ranking of academic journals ? How is a researcher's impact calculated ? + +0:49:00 - Work opportunities for PHDs in Morocco beside a career in academia. Does having a PHD make any difference for working in a multinational company in Morocco like Oracle or Microsoft ? + +1:00:00 - Is it difficult to publish an article? + +1:02:00 - For CS PhDs, are there subjects that englobe other fields? (Industrial for example) + +1:03:00 - Are Maths a principal requirement to apply for PhD in CS? + +1:04:00 - Are there any collaborations of Moroccan universities with foreign universities in computer science research + +1:22:00 - Recent important research made by moroccan universities in computer science. Leading moroccan universities in computer science research + +1:25:00 - Why industries are not pushing forward subjects to universities? + +1:44:00 - Wrap up & Goodbye + +## Links + +- [Oracle Labs projects](https://labs.oracle.com/pls/apex/f?p=LABS:projects:0) + +- [IBM PhD Fellowship Award program](https://www.research.ibm.com/university/awards/fellowships.html) + +- [Computer search & education portal](http://portal.core.edu.au/conf-ranks/) + +- [Erasmus Mundos](https://macece.ma) + +- [Scimago Journal & Country rank](www.scimagojr.com) + +## Prepared and Presented by + +- [Ismail Tlemรงani](https://www.linkedin.com/in/ismailtlemcani) + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Hamza Makraz](https://web.facebook.com/MakrazHamza) diff --git a/episodes/episode-0063.md b/episodes/episode-0063.md new file mode 100644 index 00000000..11d7f517 --- /dev/null +++ b/episodes/episode-0063.md @@ -0,0 +1,75 @@ +--- +date: 2020-12-27 +duration: "02:15:26" +title: "Tech News & AMA #6" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=RIZLJGi_WR4 +published: true +--- + +Tech News & AMA #6 with our community members Meriem, Youssouf, Abderrahim, Abdelfettah, and Mohamed. During this episode, we discuss the latest Tech News and we answer audience questions about programming, community, new technologies, and much more. + +## Guests + +- [Abderrahim Soubai Elidrissi](https://twitter.com/soub4i) + +- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) + +- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +## Notes + +0:00:00 - Introduction. + +0:04:00 - Biggest Tech News in 2020 and the impact of COVID-19. + +0:13:00 - Google Outage. + +0:22:00 - Google monopoly case. + +0:35:00 - The worst-ever US government cyber-attack. + +0:43:00 - New IOS 14 privacy policies? + +0:54:00 - GoDaddy Employees Were Told They Were Getting a Holiday Bonus. It Was Actually a Phishing Test. + +0:59:00 - Zero click venerability & NSO Group. + +1:07:00 - SI and Big Data in Morocco. + +1:12:00 - Bitcoin Approaching \$30k. + +1:20:00 - What is a good backend tech stack to build a social media platform? + +1:22:00 - Research labs in Morocco. + +1:28:00 - SEO for react apps. + +1:30:00 - React Native vs Flutter? + +1:43:00 - Angular Universal. + +1:50:00 - Rust and what kind of project we can build with ? + +1:54:00 - Are there any PAAS, CAAS companies in Morocco? + +2:09:00 - React Server Component? + +2:11:00 - Wrap up and goodbye. + +## Links + +- [Google Cloud Infrastructure Components Incident #20013](https://status.cloud.google.com/incident/zall/20013) + +- [US government cyber-attack](https://www.theguardian.com/technology/2020/dec/18/orion-hack-solarwinds-explainer-us-government) + +- [AlJazeera Documentary : Pegasus](https://www.youtube.com/watch?v=fP-7jNJd5nA&ab_channel=AlJazeeraChannel%D9%82%D9%86%D8%A7%D8%A9%D8%A7%D9%84%D8%AC%D8%B2%D9%8A%D8%B1%D8%A9) + +- [State of Dev in Morocco](https://stateofdev.ma/#technology) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0064.md b/episodes/episode-0064.md new file mode 100644 index 00000000..23dc6fa1 --- /dev/null +++ b/episodes/episode-0064.md @@ -0,0 +1,59 @@ +--- +date: 2021-01-03 +duration: "1:33:00" +title: "MSS with Aboulfeth Hamza" +tags: ["MSS"] +category: "mss" +youtube: https://www.youtube.com/watch?v=w_oWwCKtVuk +published: true +--- + +In this episode of GeeksBlabla, we invited Aboulfeth, a tech serial entrepreneur who started his first business at the early age of 17. He dropped out of college at 21, became ICANN accredited at 24, attended the World Economic Forum at 25, and went to Harvard at 26 and Hajj and Burning Man at 27. + +## Guests + +- [Aboulfeth Hamza](https://www.aboulfeth.com/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:02:00 - Who is Mohamed Hamza? + +0:08:00 - Did you drop out of school to work on your project? + +0:15:00 - Did you give your project more time at the expense of your study? + +0:22:00 - Did you work as an employee earlier? + +0:35:00 - Why did you choose to build a startup instead of having a full-time job? + +0:41:00 - Are Morocco and Moroccan companies start trust Moroccan hosting/cloud providers? + +0:45:00 - Are Morocco and Moroccan companies ready for the cloud? + +0:45:00 - Are Morocco and Moroccan companies ready for the cloud? + +0:49:00 - Building a cloud company in Morocco! Wasn't that a challenge? + +0:51:00 - After Genious, you decided to build a restaurant 2.0! Why this decision? + +0:54:00 - Building a tech startup (or a tech company) in Marrakech vs in Casablanca ? + +0:57:00 - What are the challenges/difficulties in hiring tech profiles? + +1:02:00 - Any advice and recommendations for Moroccan entrepreneurs? + +1:09:00 - What are the Obstacles he went through and succeeded in going over them, and What are the reasons that motivated you to write a book? + +1:22:00 - how was your experience on the program โ€œChkoun ghayastatmar f machrou3iโ€ and what is your feedback about it? + +1:30:00 - Conclusion + +## Links + +## Prepared and Presented by + +- [Hamza Makraz](https://web.facebook.com/MakrazHamza) + +- [Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/episodes/episode-0065.md b/episodes/episode-0065.md new file mode 100644 index 00000000..3358fa28 --- /dev/null +++ b/episodes/episode-0065.md @@ -0,0 +1,65 @@ +--- +date: 2021-01-10 +duration: "02:51:35" +title: "Tech Interviews" +tags: ["tech-interviews", "career"] +category: "career" +youtube: https://www.youtube.com/watch?v=AlzjZ5Qxeyg +published: true +--- + +In this episode of GeeksBlabla, we discussed some ways to present your best self in a tech interview, how to answer common questions, types of interviews, best practices and tips for better communication with the recruiter. + +## Guests + +- [Hanae El Bouyousfi](https://www.facebook.com/hanae.elbouyousfiepelhouari) +- [Diaa Alhak El Fallous](https://www.linkedin.com/in/elfallous) +- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +## Notes + +0:00:00 - Introduction and welcoming. + +0:08:00 - Types of interviews + +0:22:00 - Things to do before and after the interview + +0:29:00 - Types of technical interviews + +0:52:00 - Tips for better communication with the recruiter + +1:00:00 - How to prepare for technical questions + +1:19:00 - QA. + +1:46:00 - Tell Me About Yourself. + +1:52:00 - Why Should We Hire You? + +1:54:00 - Why did you leave (or why are you leaving) your job? + +1:55:00 - What Are Your Greatest Strengths and Weaknesses? + +2:01:00 - What are your goals? + +2:04:00 - Can you talk about a technical challenge you faced and how you handled it? + +2:06:00 - When was the last time you had a problem with a coworker ? How did you handle it? + +2:09:00 - Salary expectation + +2:20:00 - QA. + +2:43:00 - Conclusion and Goodbye. + +## Links + +- [Brilliant - Making Decisions](https://brilliant.org/) +- [Glassdoor Job Search](https://www.glassdoor.com) +- [StateOfDev.ma](https://stateofdev.ma) + +## Prepared and Presented by + +- [Mohammed Aboullaite](https://twitter.com/laytoun) +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0066.md b/episodes/episode-0066.md new file mode 100644 index 00000000..3a8c91bb --- /dev/null +++ b/episodes/episode-0066.md @@ -0,0 +1,51 @@ +--- +date: 2021-01-17 +duration: "01:52:14" +title: "Internet of Things" +tags: ["internet-of-Things", "iot"] +category: "dev" +youtube: https://www.youtube.com/watch?v=XYdc4poSATs +published: true +--- + +In this episode of GeeksBlabla, we discussed with our guests Ali Lakrakbi and Saad Zabari what's IoT, its impact, Adopting IoT in Morocco, and more things about it. + +## Guests + +- [Saad Zabari](https://www.facebook.com/zabari.saad) +- [Ali Lakrakbi](https://www.facebook.com/alilakrakbi) + +## Notes + +0:00:00 - Introduction and welcoming. + +0:07:00 - What's the Internet of Things? + +0:11:00 - Why the Internet of Things, and what is its impact on humanity? + +0:19:00 - Around 4/5 years ago, IoT was trending, and then it started slowly to disappear. Why is that? + +0:26:00 - What are the difficulties in creating a startup in the domain of Iot, and why don't we see many successful startups in that area? + +0:39:00 - What is the impact of 5g on IoT? + +0:43:00 - Rumors said that the vaccine would have a microchip; technically, is that possible? + +0:46:00 - Is there any risk concerning the IoT, specifically because we are related to servers/cloud? + +0:52:00 - What are the solutions proposed by manufacturers to ensure security and privacy? + +1:15:00 - During quarantine, the community of makers and IoT enthusiasts were here, never than before were in the appointment and came up with many great initiatives. Your opinion about that? + +1:23:00 - Adopting IoT in Morocco will help the communities to move forward, and having products made in morocco? + +1:30:00 - How can we integrate IoT into the education system? + +1:49:00 - Conclusion and Goodbye. + +## Links + +## Prepared and Presented by + +- [Mohammed Aboullaite](https://twitter.com/laytoun) +- [Ismail Tlemcani](https://www.linkedin.com/in/ismailtlemcani) diff --git a/episodes/episode-0067.md b/episodes/episode-0067.md new file mode 100644 index 00000000..ec4db57b --- /dev/null +++ b/episodes/episode-0067.md @@ -0,0 +1,63 @@ +--- +date: 2021-01-24 +duration: "02:20:26" +title: "Tech News & AMA #7" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=GPTjXQ0QHxw +published: true +--- + +Tech News & AMA #6 with our community members Abderrahim, Youssouf, Abderrahim, Otmane, and Mohamed. During this episode, we discuss the latest Tech News and we answer audience questions about programming, community, new technologies, and much more. + +## Guests + +- [Abderrahim Soubai Elidrissi](https://twitter.com/soub4i) + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Otmane Fettal](https://twitter.com/ofettal) + +## Notes + +0:00:00 - Introduction. + +0:04:00 - New WhatsApp Privacy. + +0:10:00 - Google Threatens To Shut Down Search Engine In Australia If Forced To Pay Publishers For News. + +0:14:00 - Elastic Changes Licences for Elasticsearch and Kibana: AWS Forks Both + +0:30:00 - The future of React & React Native + +0:31:00 - Micro frontend Apps + +0:43:00 - How to switch your career + +0:46:00 - Parallel Programming + +0:54:00 - When we should start using ngrx + +1:02:00 - Self-driving cars updates + +1:07:00 - SEO + +1:13:00 - pub/sub or RabbitMq + +1:31:00 - Gatsbyjs for E-Commerce websites + +1:33:00 - No-Code or low code trends + +1:44:00 - What's the quality strategy used in the projects you worked on? + +1:54:00 - What I should master before get started with devops? + +2:04:00 - Deno.js vs Node + +2:18:00 - Wrap up and goodbye. + +## Links + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0068.md b/episodes/episode-0068.md new file mode 100644 index 00000000..409d4e92 --- /dev/null +++ b/episodes/episode-0068.md @@ -0,0 +1,53 @@ +--- +date: 2021-01-31 +duration: "02:00:13" +title: "Developer Productivity" +tags: ["dev", "Developer Productivity"] +category: "dev" +youtube: https://www.youtube.com/watch?v=cTRm6EdxKb0 +published: true +--- + +In this episode of GeeksBlabla, we invited Diaa Alhak El Fallous and Othmane Kinane, and we discuss Developer Productivity Definition, tools, and more things about it. + +## Guests + +- [Diaa Alhak El Fallous](https://www.linkedin.com/in/elfallous) + +- [Othmane kinane](https://www.linkedin.com/in/othmanekinane) + +## Notes + +0:00:00 - Introduction. + +0:04:00 - What do we mean with Productivity? + +0:08:00 - How to measure productivity? + +0:20:00 - What do we mean with Productivity for a developer working alone, and How he measure it? + +0:30:00 - Does a predefined roadmap consider a developerโ€™s productivity? + +0:38:00 - How to prioritize tasks + +0:43:00 - How do you do to being consistent at work? + +1:08:00 - How to manage the situation when you need more time to grasp the task's skills or feel that you wonโ€™t meet some deadline? + +1:13:00 - What are the criteria to promote a person? + +1:23:00 - How can a developer avoid burnout? + +1:36:00 - Tips to handle distractions and to be more productive while working + +1:54:00 - Wrap up and goodbye. + +## Links + +## Prepared and Presented by + +- [Meriem_Zaid](https://twitter.com/_iMeriem) + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/episodes/episode-0069.md b/episodes/episode-0069.md new file mode 100644 index 00000000..f1077894 --- /dev/null +++ b/episodes/episode-0069.md @@ -0,0 +1,77 @@ +--- +date: 2021-02-07 +duration: "01:17:01" +title: "Python Deep Dive" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=YIMFlSmIAAk +published: true +--- + +In this episode of GeeksBlabla, we invited Taoufik Abbassid along with Mohamed Daoudi to talk about Python, how to get started with it and some of its perspectives. + +## Guests + +- [Taoufik Abbassid](https://twitter.com/taoufikabbassid) + +- [Mohammed Daoudi](https://www.linkedin.com/in/iduoad) + +## Notes + +0:00:00 - Introduction. + +0:03:00 - What is Python and what made it so famous? + +0:08:00 - Is Python 2 vs Python 3 still relevant ? + +0:13:00 - Do you recommend beginners to start with Python? + +0:17:00 - How to get started with Python ? + +0:24:00 - Python in the job market. Job offers for Python in Morocco and outside. + +0:25:00 - Is learning (panda,numpy,pyplot..pandas) enough to work as a backend developer? + +0:26:00 - When to use and when not to use Python? + +0:28:00 - Most known use cases of Python. In which use cases Python might be the best programming language to use ? + +0:33:00 - Is Python Slow ? If yes can we make it faster ? + +0:38:00 - Fundamental concepts you need to master before starting with Python. + +0:43:00 - Frameworks & CMS used in Python for web dev. In which scenario use Django or Flask ? + +0:46:00 - Why learn Python? + +0:50:00 - Programming Workflow in Python (package management, venv, IDE..). + +0:52:00 - Testing With Python. + +0:56:00 - Deploy your Python project. + +0:58:00 - Famous Projects built with Python. + +1:01:00 - Resources and Tools. + +1:05:00 - Do you think universities should switch from Java to Python? + +1:17:00 - Wrap up and goodbye. + +## Links + +- [Python for Everybody](https://www.py4e.com/) + +- [Beyond PEP8](https://www.youtube.com/watch?v=wf-BqAjZb8M&ab_channel=PyCon2015) + +- [Python design patterns](https://www.youtube.com/watch?v=Er5K_nR5lDQ&ab_channel=NextDayVideo) + +- [Python the hard way](https://learnpythonthehardway.org/python3/) + +- [Ned Batchelder](https://nedbatchelder.com/blog/) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Ismail Tlemcani](https://www.linkedin.com/in/ismailtlemcani) diff --git a/episodes/episode-0070.md b/episodes/episode-0070.md new file mode 100644 index 00000000..9835a203 --- /dev/null +++ b/episodes/episode-0070.md @@ -0,0 +1,63 @@ +--- +date: 2021-02-14 +duration: "02:20:34" +title: "DataBases deep dive" +tags: ["dev", "databases"] +category: "dev" +youtube: https://www.youtube.com/watch?v=1-5Iy8_ZbLs +published: true +--- + +In this episode of GeeksBlabla, we invited Taoufik Khamouli, Anouar Boukhatem and El Housseine Jaafari to talk about Databases, different types and, some advanced topics. + +## Guests + +- [Taoufik Khamouli](#) + +- [Anouar Boukhatem](#) + +- [El Housseine Jaafari](#) + +## Notes + +0:00:00 - Introduction. + +0:06:00 - What do we mean by a Database? + +0:10:00 - Why do we need databases? + +0:20:00 - What are the different types of databases and why we have more than one? + +0:39:00 - What are ACID properties, and why are they important? + +0:51:00 - What is denormalization and, when we need it? + +0:55:00 - What consideration to decide between database types? + +1:29:00 - Open-source vs. proprietary database, Which one is better? + +1:34:00 - What is Indexing and how to use it well? + +1:37:00 - What is CAP theorem, and why is it important? + +1:42:00 - What are the requirements to have High Availability & Data Replication in databases? + +1:49:00 - What are Backup & Restore Policies best practices? + +1:56:00 - Advice about Performance Optimization. + +2:19:00 - Wrap up and goodbye. + +## Links + +- [Building Secure and Reliable Systems: Best Practices for Designing, Implementing, and Maintaining Systems](#) + +- [Designing Data-Intensive Applications](#) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Hamza Makraz](https://web.facebook.com/MakrazHamza) diff --git a/episodes/episode-0071.md b/episodes/episode-0071.md new file mode 100644 index 00000000..57a8de76 --- /dev/null +++ b/episodes/episode-0071.md @@ -0,0 +1,65 @@ +--- +date: 2021-02-21 +duration: "01:47:16" +title: "Data Centers in Morocco" +tags: ["datacenter"] +category: "dev" +youtube: https://www.youtube.com/watch?v=QB4CoBV6-J0 +published: true +--- + +In this episode of GeeksBlabla, we invited Abdelfettah Sghiouar, Islam Abouelata and Karim Benzidane to talk about Data Centers. + +## Guests + +- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) + +- [Islam Abouelata](https://web.facebook.com/islam.abouelata?_rdc=1&_rdr) + +- [Karim Benzidane](https://www.linkedin.com/in/benzidanekarim) + +## Notes + +0:00:00 - Introduction. + +0:05:00 - Whatโ€™s a datacenter? + +0:09:00 - How does the datacenter work? + +0:17:00 - What are the criteria to build a data center? + +0:24:00 - What job positions exist, and what people do? + +0:36:00 - What are datacenter impact on environment? + +0:44:00 - Should you care as a developer? + +0:47:00 - Questions and Comments + +0:55:00 - CNCF Casablanca Community announcement + +1:08:00 - What are datacenters exist in Morocco? + +1:09:00 - What do you think of the new datacenter in benguerir? + +1:12:00 - Why are datacenters important for Morocco? + +1:18:00 - Whatโ€™s an ISP (Internet Service Provider), IXP (Internet Exchange Point) and POP (Point of Presence)? + +1:21:00 - Why are datacenters important for Internet? + +1:24:00 - What does it mean to have a home datacenter? + +1:32:00 - What studies do I have to do to work in a datacenter? + +1:35:00 - Questions and Comments + +1:45:00 - Wrap up and goodbye. + +## Links + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/episodes/episode-0072.md b/episodes/episode-0072.md new file mode 100644 index 00000000..683db4ec --- /dev/null +++ b/episodes/episode-0072.md @@ -0,0 +1,69 @@ +--- +date: 2021-02-28 +duration: "02:10:26" +title: "Tech News & AMA #8" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=5lt-2ID1euI +published: true +--- + +Tech News & AMA #8 with our community members Ilyas, Othmane, Mehdi, Otmane, and Mohamed. During this episode, we discuss the latest Tech News and we answer audience questions about programming, community, new technologies, and much more. + +## Guests + +- [Ilyas Bakouch](https://www.linkedin.com/in/ilyasbakouch/) + +- [Othmane MANIAR ](https://www.facebook.com/maniar.othmane) + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +- [Aboullait mohamed](https://twitter.com/laytoun) + +## Notes + +0:00:00 - Introduction. + +0:05:00 - New Social Media Platform: ClubHouse + +0:15:00 - The guy who hacked into PayPal, apple, MS + +0:33:00 - Bitcoin: News, Energy, future ... + +0:43:00 - Jeff Bezos Steps down as Amazon CEO + +0:50:00 - Some fact and opinions about Java and JEE + +1:06:00 - Intro to Rust + +1:13:00 - Lambda function and serverless + +1:18:00 - Oracle java SE Certification + +1:21:00 - Python compared to JAVA + +1:24:00 - Remote Jobs with companies such as Toptal, xteam ... + +1:32:00 - Flutter + +1:35:00 - Minimum skills that you should learn to start applying for a react job + +1:40:00 - should i know compiler structure and language theory to be a good software engineer + +1:46:00 - PHP + +1:58:00 - Front-end vs. back-end + +2:07:00 - Wrap up and goodbye. + +## Links + +- [Dependency Confusion: How I Hacked Into Apple, Microsoft and Dozens of Other Companies](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) + +- [Build Your own x](https://github.com/danistefanovic/build-your-own-x) + +- [StateOfDev.ma](https://stateofdev.ma) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0073.md b/episodes/episode-0073.md new file mode 100644 index 00000000..c38093a0 --- /dev/null +++ b/episodes/episode-0073.md @@ -0,0 +1,71 @@ +--- +date: 2021-03-07 +duration: "02:12:38" +title: "Women In Tech 2021" +tags: ["dev", "career"] +category: "career" +youtube: https://www.youtube.com/watch?v=E0vSLsaOal0 +published: true +--- + +In this special episode, we highlight the hidden category in Tech in general, Women and girls in tech in Morocco. The guests are students in IT & CS will share their experiences and their journey. + +## Guests + +- [Maroua Ezouhri](https://www.linkedin.com/in/maroua-ezouhri-381174a7/) + +- [Siham Ben Daia](https://www.mindhunter.dev/) + +- [Aicha Laafia](https://twitter.com/AichaLaafia) + +- [Afaf Ridaoui](https://twitter.com/_iamaf) + +## Notes + +0:00:00 - Introduction. + +0:03:00 - How did you become interested in engineering + +0:08:00 - What influenced you to pursue a career in IT + +0:17:00 - What is it like to be a woman working in technology for you? + +0:27:00 - How could you convince a random Moroccan girl to be interested in programming? + +0:35:00 - Why we don't see many ladies involved in communities in Morocco? + +0:50:00 - Is it true the is no wage difference between men and women working in Tech in Morocco? + +0:53:00 - How can we help as a tech community to empower more WIT? + +0:54:00 - Is it easy or hard to find a job or Internship + +0:58:00 - Did you ever faced discrimination in a job interview where they prefered a man instead? + +1:00:00 - Do you feel that women in technology careers face barriers not faced by their male counterparts? + +1:05:00 - What are some challenges youโ€™ve faced. + +1:12:00 - OHow can women balance between their work time, home & family time? + +1:27:00 - What job did you dream of when you were a kid โ€“ your Plan A career path + +1:32:00 - How could men empower women in IT? + +1:37:00 - What do you think of StateOfDevMa survey results + +2:12:00 - Wrap up and goodbye. + +## Links + +- [4D jobs listing in Rabat proposed by Intissar](https://us.4d.com/life4d-morocco) + +- [GDG WIT event](https://gdg.community.dev/events/details/google-gdg-settat-presents-wtm-settat-international-womens-day-2021/#/) + +- [StateOfDev.ma](https://stateofdev.ma/#profile-q-0) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Afaf Ridaoui](https://twitter.com/_iamaf) diff --git a/episodes/episode-0074.md b/episodes/episode-0074.md new file mode 100644 index 00000000..df6fe661 --- /dev/null +++ b/episodes/episode-0074.md @@ -0,0 +1,63 @@ +--- +date: 2021-03-14 +duration: "01:52:58" +title: "Monitoring: Why, and How?" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=_i7wNzZUYJw +published: true +--- + +In this episode, we talk about Monitoring, what is it about, what to consider in a project roadmap, how to do it and its different types with our guests.. + +## Guests + +- [Boualaid Zakaria](https://twitter.com/zakariaboualaid) + +- [Abderrahim Ouakki](https://twitter.com/OkAbdo) + +- [Aboullaite Mohammed](https://twitter.com/laytoun) + +## Notes + +0:00:00 - Introduction. + +0:05:00 - What is Monitoring? + +0:08:00 - When should monitoring take place? + +0:11:00 - What do we need to monitor ? + +0:22:00 - How we define KPIs - The indicators we need to keep an eye on. + +0:25:00 - How to say that a resource is behaving normally? + +0:43:00 - Monitoring Toolchain (ELK Stack , Prometheus and Grafana) + +0:59:00 - What are the different types of monitoring ? + +1:06:00 - Infrastructure Monitoring vs Application Monitoring + +1:14:00 - What is Observability and how it differs from Monitoring ? + +1:17:00 - What are the big benefits of cloud monitoring solutions VS in house monitoring solutions + +1:23:00 - With the increase in compressed application life cycles, proper monitoring is critical in DevOps. How can we deal with it? + +1:40:00 - Datadog demo + +1:50:00 - Wrap up and goodbye. + +## Links + +- [Distributed Systems Observability - Book](https://www.oreilly.com/library/view/distributed-systems-observability/9781492033431/) + +- [DatadogHQ](https://www.datadoghq.com/blog/tag/monitoring-101/) + +- [Leboncoin test env](https://www.youtube.com/watch?v=LlHmAuMXgPo) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/episodes/episode-0075.md b/episodes/episode-0075.md new file mode 100644 index 00000000..59fbe246 --- /dev/null +++ b/episodes/episode-0075.md @@ -0,0 +1,59 @@ +--- +date: 2021-03-21 +duration: "02:33:56" +title: "IT Certifications" +tags: ["dev"] +category: "career" +youtube: https://www.youtube.com/watch?v=H-FWc-0s04c +published: true +--- + +In this episode, we talk about Certificates in the IT field; why should you care? How will certificates help you in your career, the essential certifications you should have, and how to prepare for those certificates? + +## Guests + +- [Abdelahad SATOUR](https://www.linkedin.com/in/adsatour/) + +- [Elmehdi Bendriss](http://ma.linkedin.com/in/bendriss/) + +- [Hamza BEN AZOUZ](https://www.linkedin.com/in/hamzabenazouz) + +## Notes + +0:00:00 - Introduction. + +0:10:00 - Why should you care about certifications? + +0:28:00 - Types of IT certifications. + +0:38:00 - The best period to get a certificate ( junior or senior ) + +0:43:00 - Certification vs open-source contributions vs blogging. + +0:25:00 - How to say that a resource is behaving normally? + +0:51:00 - Why are IT certifications so expensive? + +1:03:00 - Is certifications from the learning platform worth it? + +1:07:00 - Why some people/companies criticize certifications and interpret them as a bad sign? + +1:22:00 - Certifications for beginners. + +1:46:00 - How to prepare for a certificate? + +2:07:00 - The most valuable certificates in Morocco. + +2:28:00 - Wrap up and goodbye. + +## Certifications + +- Scrum en Management. (Foundation seulement) - Python, .NET, Java, PHP ou JavaScript. - Comptia A+, LPIC 101, CCNA. - ITIL 4, ISO 27001 - AWS/Microsoft Azure/GoogleCloud Foundation + +## Links + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) + +- [Mohammed Daoudi](https://www.linkedin.com/in/iduoad) diff --git a/episodes/episode-0076.md b/episodes/episode-0076.md new file mode 100644 index 00000000..8bf57415 --- /dev/null +++ b/episodes/episode-0076.md @@ -0,0 +1,55 @@ +--- +date: 2021-03-28 +duration: "01:52:00" +title: "Tech News & AMA #9" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=K9DZ8aRCNzE +published: true +--- + +Tech News & AMA #9 with our community members Ahmed, Mohamed and Othman. During this episode, we discuss the latest Tech News, **Make it legal** Ahmed's book and we answer audience questions about programming, community, new technologies, and much more. + +## Guests + +- [Ahmed El Azzabi](https://mylink.fyi/elazzabi) + +- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) + +- [Otmane Fettal](https://twitter.com/ofettal) + +## Notes + +0:00:00 - Introduction. + +0:03:00 - NFTs + +0:16:00 - 'Make it legal' book. + +0:32:00 - Remote work future + +0:50:00 - Job satisfaction and How do people end up loving what they do? + +1:18:00 - OVH outage + +1:30:00 - New Windows updates + +1:37:00 - QA + +1:51:00 - Wrap up and goodbye. + +## Links + +- [\$69 Million for a JPEG File - The Wild World of NFTโ€™s](https://www.youtube.com/watch?v=x3nmAX3gAlw) + +- [So Good They Can't Ignore You](https://www.amazon.com/Good-They-Cant-Ignore-You/dp/1455509124) + +- [Remote.ma](https://remote.ma/) + +- [Make it legal](https://makeitlegal.ma/) + +- [StateOfDev.ma](https://stateofdev.ma) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0077.md b/episodes/episode-0077.md new file mode 100644 index 00000000..0b4d0fe0 --- /dev/null +++ b/episodes/episode-0077.md @@ -0,0 +1,51 @@ +--- +date: 2021-04-03 +duration: "01:46:12" +title: "No Code / Low Code" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=I-km6iydoiw +published: true +--- + +In the 77 Episode of GeeksBlaBla , We're taking a look at the landscape of Low Code / No Code technologies; These technologies are taking the world by storm, building a strong Hype around them, and expected to be an industry worth 23 Billion Dollars by 2023. + +## Guests + +- [Djalal](https://twitter.com/enlamp) + +- [Mahmoud Ait Elkatab](https://twitter.com/mahmoudaitkatab) + +## Notes + +0:00:00 - Introduction. + +0:09:00 - Why It took no Code / Low Code trends all these years to reach the mainstream? + +0:16:00 - Can Microsoft Excel / Access considered as Low Code / No Code Platform ? + +0:28:00 - Whatโ€™s the current state of the Low Code / No Code Ecosystem ? + +0:50:00 - Trends in Low Code / No Code Ecosystem ? + +1:04:00 - What are the good practices to follow ? + +1:09:00 - What are the opportunities for developers in a low code context ? + +1:13:00 - Integration between Low Code / No Code Apps and Traditional Business apps ? + +1:19:00 - Vendor Lock-In and Portability ? + +1:27:00 - Are Low Code / No Code Apps ready for Production and Missing Critical Scenarios ? + +1:30:00 - Low Code / No Code Apps longevity ? + +1:35:00 - Wrap up and goodbye + +## Links + +- [No Code / Low Code Ressources](https://www.notion.so/espacelogistique/NoCode-Links-80fb4687b7844bc5ae2e342cdcec818e) + +## Prepared and Presented by + +- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/episodes/episode-0078.md b/episodes/episode-0078.md new file mode 100644 index 00000000..63ab2f0d --- /dev/null +++ b/episodes/episode-0078.md @@ -0,0 +1,51 @@ +--- +date: 2021-04-11 +duration: "1:55:00" +title: "MSS with Abdelahad SATOUR" +tags: ["MSS"] +category: "mss" +youtube: https://www.youtube.com/watch?v=kzYammaow-M +published: true +--- + +In this episode of GeeksBlabla, we invited Abdelahad SATOUR, a developer, tech serial entrepreneur, and learner; Abdelahad has more than 31 certificates in the IT and business fields; during the episode, he shared with us his professional and personal experiences. + +## Guests + +- [Abdelahad SATOUR](https://www.linkedin.com/in/adsatour/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:02:00 - Who is Abdelahad SATOUR? + +0:11:00 - Studies and school activities + +0:15:00 - Learning experience in high school and how to get the best of it? + +0:19:00 - Abdelahad's first steps as an entrepreneur. + +0:28:00 - The secrets behind his commitment and motivation. + +0:58:00 - What is success for Abdelahad? + +1:04:00 - Getting things done. + +1:10:00 - Learning and get updated about tech. + +1:16:00 - How to know what works for you as a learning method? + +1:19:00 - How to be focused on your work? + +1:23:00 - Why certifications? + +1:30:00 - QA + +1:50:00 - Wrap up and goodbye + +## Links + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0079.md b/episodes/episode-0079.md new file mode 100644 index 00000000..1ec85b7b --- /dev/null +++ b/episodes/episode-0079.md @@ -0,0 +1,52 @@ +--- +date: 2021-04-18 +duration: "1:56:15" +title: "Testing & QA Engineering" +tags: ["software testing"] +category: "dev" +youtube: https://www.youtube.com/watch?v=iCc9kIGoQo4&ab_channel=GeeksBlaBla +published: true +--- + +In this episode of GeeksBlabla, Meriem and Ismail invited Abdelghani Achibane who is a Quality Assurance Engineer to talk about Software testing and QA Engineering + +## Guests + +- [Abdelghani Achibane](https://www.linkedin.com/in/abdelghani-achibane-53a915b7/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:00 - What is Software testing ? + +0:06:00 - History of Software testing ? + +0:08:00 - Difference between debugging and testing + +0:09:00 - Why do we need to test ? + +0:22:00 - Manual tests ? + +0:28:00 - Automated tests ? + +0:31:00 - Software testing lifecycle ? What do we automate in testing ? Relation between automated tests and CI ? + +0:49:00 - Types of automated tests ? + +0:59:00 - TDD vs BDD ? Testing strategy ? + +1:11:00 - Testing metrics ? + +1:19:00 - Popular tools used in automated testing of web applications ? APIs ? Desktop applications ? + +1:31:00 - Ressources to start in QA engineering ? + +1:54:00 - Wrap up and goodbye + +## Links + +## Prepared and Presented by + +- [Ismail Tlemcani](https://www.linkedin.com/in/ismailtlemcani/) +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0080.md b/episodes/episode-0080.md new file mode 100644 index 00000000..4ca80b8e --- /dev/null +++ b/episodes/episode-0080.md @@ -0,0 +1,69 @@ +--- +date: 2021-04-25 +duration: "02:50:00" +title: "Tech News & AMA #10" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=xlPtcJnDeec +published: true +--- + +Tech News & AMA #10 with our community members Mohamed,Meriem , soufiane, Abderahim and Youssouf . We discuss the latest Tech News during this episode, and we answer audience questions about programming, community, new technologies, and much more. + +## Guests + +- [Soubai Abderahim](https://twitter.com/soub4i) + +- [Soufian El Foukahi](https://twitter.com/soufyanAI) + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +## Notes + +0:00:00 - Intro and welcoming. + +0:03:00 - updates from our guests about their learning experience in the last months. + +0:07:00 - New javascript build tools using no-js language such us esbuild, snowpack... + +0:27:00 - Expo vs React Native. + +0:46:00 - Abderahim experience with s7aba podcast. + +0:52:00 - Advice to find internships. + +1:00:00 - Generalist vs specialist + +1:06:00 - Ramadan and productivity + +1:12:00 - Apple event M1 in ipad pro... + +1:20:00 - Nvidia new SoCs for cars and other plans to take over server workloads + +1:24:00 - Google rolling FLoC out to tester and the resistance from the industry and community + +1:32:00 - Generalist vs specialist + +1:40:00 - QA + +2:51:00 - Wrap up and goodbye. + +## Links + +- [DevC Challenge](https://fb.me/F8-Refresh-Hackathon-Re...) + +- [esbuild](https://esbuild.github.io/) + +- [Rome](https://rome.tools/) + +- [S7aba Podcast](https://s7aba.ma/) + +- [stagiaires.ma](https://www.stagiaires.ma/) + +- [stagiaires.ma](https://www.stagiaires.ma/) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) + +- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) diff --git a/episodes/episode-0081.md b/episodes/episode-0081.md new file mode 100644 index 00000000..da10060a --- /dev/null +++ b/episodes/episode-0081.md @@ -0,0 +1,66 @@ +--- +date: 2021-05-02 +duration: "2:48:15" +title: "Learning How to Learn" +tags: ["learning"] +category: "career" +featured: true +youtube: https://www.youtube.com/watch?v=QKKRE8iunJg +published: true +--- + +In this episode of GeeksBlabla, we discuss with our community members about learning how to learn, the best place to found resources, tricks for effective and productive learning. + +## Guests + +- [Abderrahim Soubai](https://twitter.com/soub4i) + +- [Djalal](https://twitter.com/enlamp) + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:00 - Why is self-learning important for students and employers? + +0:26:00 - Best ways to know what to learn and how to find your path on self-learning as a beginner? + +0:50:00 - how to form a self-learning habit? + +0:58:00 - RoadMap to follow while learning? + +1:08:00 - Self-thought developers and issues with diplomats? + +1:11:00 - Learning resources and how our guests approach learning new technologies? + +1:31:00 - How to filter learning resources? + +1:45:00 - Tools, tricks, and methodologies for learning consistency. + +1:56:00 - What is enough while learning? + +2:10:00 - How to manage your time, energy, and focus? + +2:25:00 - QA. + +2:39:00 - Wrap up and goodbye + +## Links + +- [RePlay ุงู„ุฌูˆู„ุฉ ุงู„ุฑุงุจุนุฉ](https://ridaouiafaf.wordpress.com/2021/04/24/replay-round-4/) + +- [Stateofdev.ma](https://stateofdev.ma/#learning--education) + +- [roadmap.sh](https://roadmap.sh/) + +- [Atomic Habit](https://englishbook.ma/products/atomic-habits-english-books) + +## Prepared and Presented by + +- [Youssouf EL Azizi](https://elazizi.com) + +- [Afaf Ridaoui](https://twitter.com/_iamaf) diff --git a/episodes/episode-0082.md b/episodes/episode-0082.md new file mode 100644 index 00000000..82f7e1ae --- /dev/null +++ b/episodes/episode-0082.md @@ -0,0 +1,68 @@ +--- +date: 2021-05-16 +duration: "2:17:34" +title: "Software Security 2021" +tags: ["security"] +category: "dev" +featured: true +youtube: https://www.youtube.com/watch?v=r5ZBLg5vL4M +published: true +--- + +In this episode of GeeksBlabla, we discuss with our community members about software security, what is software security, tricks for effective and productive learning. + +## Guests + +- [Souhail Mssassi](https://www.linkedin.com/in/mssassi) + +- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:00 - What is software security + +0:11:00 - A bit of history about cybersecurity + +0:24:00 - Is there a secure system? why secure systems? + +0:32:00 - Risk & Risk Assessment + +0:48:00 - What is OWASP? + +0:51:00 - OWASP top 10 - 2021 + +0:51:00 - OWASP top 10 - 2021: Injection + +0:55:00 - OWASP top 10 - 2021: Broken authentication + +1:01:00 - Sensitive data exposure - What is data leakage? What are the factors that can cause data leakage? + +1:08:00 - XML external entities (XXE) + +1:15:00 - Security misconfigurations + +1:49:00 - Cross site scripting (XSS) - discuss vs CSRF + +1:56:00 - What is the 80/20 rule of networking? + +2:00:00 - What are personal traits you should consider protecting data? + +2:05:00 - Famous moroccan hackers and their achievements + +2:09:00 - GRAALVM security + +2:16:00 - Conclusion, Wrap up and goodbye + +## Links + +- [OWASP](https://owasp.org) + +- [OWASP top 10](https://owasp.org/www-project-top-ten/) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Ismail Tlemcani](https://www.linkedin.com/in/ismailtlemcani) diff --git a/episodes/episode-0083.md b/episodes/episode-0083.md new file mode 100644 index 00000000..c0ec5f3b --- /dev/null +++ b/episodes/episode-0083.md @@ -0,0 +1,62 @@ +--- +date: 2021-05-23 +duration: "2:02:50" +title: "DevOps 101" +tags: ["devops"] +category: "dev" +featured: true +youtube: https://www.youtube.com/watch?v=aWtuTFqtpN0 +published: true +--- + +In this episode of GeeksBlabla, we're Revisiting the fundamentals of the DevOps Culture and toolchain. + +## Guests + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Otmane FETTAL](https://twitter.com/ofettal) + +- [Mohammed Daoudi](https://www.linkedin.com/in/iduoad) + +- [Djalal](https://twitter.com/enlamp) + +## Notes + +0:00:00 - Introduction and welcoming + +0:13:00 - Software development and delivery process + +0:20:00 - DevOPS Definition + +0:34:00 - DevOps Goals and Pillars + +0:56:00 - Automation + +1:03:00 - Observability and Monitoring + +1:22:00 - Q/A + +1:42:00 - Toolchain + +1:59:00 - Wrap up and goodbye + +## Links + +- [Feature Flags](https://github.blog/2021-04-27-ship-code-faster-safer-feature-flags/) + +- [DevOPS From a to Zen](https://speakerdeck.com/djalal/devops-from-a-to-zen) + +- [DevOPS Topologies](https://web.devopstopologies.com/) + +- [Fundementals of Software Architecture](https://www.goodreads.com/book/show/44144493-fundamentals-of-software-architecture) + +- [Free for Dev](https://free-for.dev/#/) + +- [Coding Horror](https://blog.codinghorror.com/) + +## Prepared and Presented by + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/episodes/episode-0084.md b/episodes/episode-0084.md new file mode 100644 index 00000000..f8fe9b68 --- /dev/null +++ b/episodes/episode-0084.md @@ -0,0 +1,59 @@ +--- +date: 2021-05-30 +duration: "02:04:00" +title: "Tech News & AMA #11" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=-Zat3Q0dz7M +published: true +--- + +Tech News & AMA #11 with our community members Mohamed, Abderahim and Youssouf . We discuss the latest Tech News during this episode, and we answer audience questions about programming, community, new technologies, and much more. + +## Guests + +- [Soubai Abderahim](https://twitter.com/soub4i) + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +## Notes + +0:00:00 - Intro and welcoming. + +0:03:00 - Updates from our guests about their new job experience. + +0:05:00 - The best way to land a remote job with international startups. + +0:16:00 - Difference between working in morocco and working for a big international company such as Spotify. + +0:34:00 - How to deal with boredom with school subjects? + +0:43:00 - Advice and resources to start an AWS career. + +0:48:00 - State management in React. + +0:56:00 - What technical practices heavily used in Spotify and not used or ignored in morocco. + +1:12:00 - The best way to get a motivating job. + +1:20:00 - Google IO 2021 News. + +1:28:00 - GraphQl vs REST API. + +1:38:00 - ElectronJS + +1:50:00 - Interview process at Spotify. + +2:01:00 - Wrap up and goodbye. + +## Links + +- [spotify apollo](https://github.com/spotify/apollo) + +- [Google IO](https://www.youtube.com/watch?v=_xLgXIhebxA) + +- [stateofdev.ma](https://stateofdev.ma/) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0085.md b/episodes/episode-0085.md new file mode 100644 index 00000000..67f010f0 --- /dev/null +++ b/episodes/episode-0085.md @@ -0,0 +1,51 @@ +--- +date: 2021-06-06 +duration: "01:19:09" +title: "Celebrating 26 years of Java !" +tags: ["dev", "Java"] +category: "dev" +youtube: https://www.youtube.com/watch?v=2FcCOLzhqPo +published: true +--- + +Celebrating 26 years of Java with our community members Badr, Marouane, and Mohammed. During this episode we discuss the latest Java updates, and we answer audience questions about Java, and much more. + +## Guests + +- [Badr Elhouari](https://twitter.com/badrelhouar) + +- [Marouane gazayni](https://twitter.com/mgazanayi) + +## Notes + +00:00:00 - Introduction + +00:03:00 - Why are we still using Java? + +00:09:00 - Why backward compatibility important for Java? + +00:13:00 - How they keep the promise of the new release cycle? + +00:16:00 - What are JCP, JSR, and JEP? + +00:21:00 - Why JVM powerful? + +00:27:00 - What is the project in the ecosystem that pushes Java? + +00:35:00 - Comments + +01:03:00 - The demand of java developers in the market (local market and international market) + +01:07:00 - Is Java one of the options for new developers? And What are things that can help them to learn Java? + +01:11:00 - Java still had 3 billion devices or this number decrease? + +01:14:00 - Comments + +01:16:00 - Wrap up and goodbye. + +## Links + +## Prepared and Presented by + +- [Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/episodes/episode-0086.md b/episodes/episode-0086.md new file mode 100644 index 00000000..733ead32 --- /dev/null +++ b/episodes/episode-0086.md @@ -0,0 +1,64 @@ +--- +date: 2021-06-13 +duration: "1:27:20" +title: "MSS with Wassim CHEGHAM" +tags: ["MSS"] +category: "mss" +youtube: https://www.youtube.com/watch?v=SgOfKQY5ubw +published: true +--- + +In this episode of GeeksBlabla, we invited Wassim CHEGHAM, Sr. JavaScript Developer Advocate at Microsoft, Core +contributor at Angular, Core contributor Nodejs and Ambassador for Auth0 + +## Guests + +- [Wassim CHEGHAM](https://twitter.com/manekinekko) + +## Notes + +0:00:00 - Introduction and welcoming + +0:01:00 - Who is Wassim CHEGHAM? + +0:03:00 - How did he get interested in technology? + +0:05:00 - How did you get introduced to Javascript? + +0:08:00 - What is the advice for beginner developers that you can give to choose a programming language for a professional career? + +0:15:00 - Do blogging help in the learning phase and in building your own personal brand? + +0:21:00 - Walk us through some of your contributions to angular , bazel and nodejs and What you will earn from contributing / open source? + +0:30:00 - (comments) How do you learn and practice more in less time? + +0:38:00 - How was your experience at the professional life, and experience to manage the balance between personal life, fun, and professional life? + +0:46:00 - Is Dependency injection implementation still your favorite feature about angular? + +0:47:00 - (comments) How to become a GDE? + +0:55:00 - What does it mean to be an advocate developer? Tell us about the developer advocate iceberg. + +1:06:00 - What is your vision/expectation, where the technologies are heading? + +1:10:00 - (comments) What is your vision/expectation for Javascript? + +1:18:00 - (comments) Talking about web views, do you recommend specific one? (in Angular context) (Cordova, Capacitorjs) + +1:20:00 - (comments) What is the future of Web Assembly, It's time to jump and start learning it? + +1:21:00 - Advice for geeksblabla community + +1:25:00 - Wrap up and goodbye + +## Links + +- [Demystifying Open Source Contributions](https://medium.com/free-code-camp/demystifying-open-source-contributions-c60fe2bde6d0) + +- [The Subtle Art of Being A Developer Advocate](https://dev.to/wassimchegham/the-subtle-art-of-being-a-developer-advocate-gdg) + +## Prepared and Presented by + +- [Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/episodes/episode-0087.md b/episodes/episode-0087.md new file mode 100644 index 00000000..6c30c54e --- /dev/null +++ b/episodes/episode-0087.md @@ -0,0 +1,69 @@ +--- +date: 2021-06-20 +duration: "2:49:00" +title: "Working at Google with Moroccan Googlers" +tags: ["career", "google"] +category: "career" +youtube: https://www.youtube.com/watch?v=PX3TlIhP5uY +published: true +--- + +In this episode of GeeksBlabla, we invited Moroccan Googlers Karima, Rachid, Mehdi, and Abdelfatah to discuss their journey working at google, the benefits and disadvantages of working on FAANG companies and the interviews process to join Google, and much more. + +## Guests + +- [Abdelfatah Sghiouar](https://twitter.com/boredabdel) + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +- [Karima Ichou ](https://www.linkedin.com/in/karimaichou/) + +- [Hakmi Rachid](https://www.linkedin.com/in/rachid-hakmi/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:00 - Guests academic path + +0:16:00 - Do you think your academic studies in morocco give you enough concepts to start a job at Google? + +0:34:00 - Should joining FAANG be an objective for every developer? + +0:43:00 - What is your job at google? + +0:58:00 - Working in morocco vs working on a big company such as Google. + +1:11:00 - Is working at Google stressful? + +1:25:00 - Bad sides of working at Google (or at a similar size tech company), what donโ€™t you like about your job? + +1:42:00 - Salaries at Google + +1:53:00 - As a student, what should I focus on to make joining Google easier? + +1:58:00 - How can competitive programming help you join Google? + +2:08:00 - Process to join Google. + +2:18:00 - Interviews Process and how to prepare them. + +2:40:00 - Wrap up and goodbye + +## Links + +- [Google Career](https://careers.google.com/) + +- [Grokking the System Design Interview](https://www.educative.io/courses/grokking-the-system-design-interview) + +- [Introducing Non-Abstract Large System Design](https://sre.google/workbook/non-abstract-design/) + +- [The importance of competitive programming - Diaa Alhak El Fallous](https://www.youtube.com/watch?v=_02iZDObK8k) + +- [Inside Look 2021](https://events.withgoogle.com/inside-look-program-2021/) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) + +- [Abdelfatah Sghiouar](https://twitter.com/boredabdel) diff --git a/episodes/episode-0088.md b/episodes/episode-0088.md new file mode 100644 index 00000000..9cdaa2c9 --- /dev/null +++ b/episodes/episode-0088.md @@ -0,0 +1,65 @@ +--- +date: 2021-06-27 +duration: "2:08:23" +title: "Tech News & AMA #12" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=P9FeWS3Bb9A&ab_channel=GeeksBlaBla +published: true +--- + +Tech News & AMA #12 with our community members Otmane, Ismail, Abdelghani, Abderrahim. We discuss the latest Tech News during this episode, and we answer audience questions about programming, community, new technologies, and much more. + +## Guests + +- [Abdelghani ACHIBANE](https://www.linkedin.com/in/abdelghani-achibane-53a915b7/) + +- [Abderrahim soubai](https://twitter.com/soub4i) + +## Notes + +0:01:00 - Intro and welcoming. + +0:01:00 - What did you learn this week ? + +0:09:00 - Windows 11 launch + +0:46:00 - Should a DevOps know the functional aspect of the app he will work on ? + +0:50:00 - Why does Windows needs Amazon store to deliver Android apps ? + +0:55:00 - Is it common for a developer to know multiple programming language ecosystems ? + +1:01:00 - Tips and guidelines to become a better java developer + +1:04:00 - What language/framework to use for an web application focused on audio content ? + +1:09:00 - Tips to get freelance assignments on freelance websites like upwork and freelance.com + +1:11:00 - Feedbacks after more than a year of remote work + +1:30:00 - For a java/spring developer, what skills should one master to get a job at a multinational corporation ? + +1:33:00 - Toughts about unity and VR development + +1:34:00 - Fake reviews investigation on Amazon and Google by the UK market and competition authority + +1:42:00 - Apple Worldwide Developers Conference + +1:57:00 - Why are developers average age worlwide still very young ? + +2:02:00 - Academic paths to study AI in Morocco ? + +2:05:00 - Will blockchain be used in Morocco ? + +2:07:00 - Wrap up and goodbye + +## Links + +- [Amazon Kinesis](https://docs.aws.amazon.com/streams/latest/dev/key-concepts.html) + +## Prepared and Presented by + +- [Otmane Fettal](https://twitter.com/ofettal) + +- [Ismail Tlemcani](https://www.linkedin.com/in/ismailtlemcani) diff --git a/episodes/episode-0089.md b/episodes/episode-0089.md new file mode 100644 index 00000000..ca2a1d67 --- /dev/null +++ b/episodes/episode-0089.md @@ -0,0 +1,66 @@ +--- +date: 2021-07-04 +duration: "2:47:43" +title: "JavaScript Ecosystem" +tags: ["dev", "javascript"] +category: "dev" +youtube: https://www.youtube.com/watch?v=FXBoKlQLVdc +published: true +--- + +In this episode of GeeksBlaBla with our community members Wassim, Ismail, Abderahim, Abdellah, and Youssouf, We discuss the Javascript ecosystem from the first javascript days and the secret behind its popularity to the latest new frameworks and tools and the best practices to learn it for beginners and much more. In this episode, we have the chance to present a live demo with Wassim about Github copilot. + +## Guests + +- [Wassim CHEGHAM](https://twitter.com/manekinekko) + +- [Chihab Otmani](https://chihab.dev) + +- [Soubai Abderahim](https://twitter.com/soub4i) + +- [Abdullah Iraamane](https://www.linkedin.com/in/aairaamane/) + +- [Ismail Ghallou](https://twitter.com/smakosh) + +## Notes + +0:00:00 - Intro and welcoming. + +0:06:00 - The power of javascript and the secret behind it + +0:13:00 - Do you think Javascript is the right language to start with as a beginner? + +0:28:00 - Javascript learning RoadMap + +0:45:00 - JavaScript libraries and frameworks, how to choose? + +1:19:00 - Is Typescript the new Javascript? + +1:33:00 - Javascript in the backend. + +1:41:00 - Javascript new tools systems; esbuild, wite, snowpack. + +1:53:00 - Javascript testing tools and libraries. + +2:02:00 - WebAssemby + +2:07:00 - Github Copilot demo + +2:35:00 - The future of javascript. + +2:45:00 - Wrap up and goodbye + +## Links + +- [Javascript Info](https://javascript.info/) +- [Mozilla MDN](https://developer.mozilla.org/en-US/) +- [Web Development Bootcamp](https://frontendmasters.com/bootcamp/) +- [JavaScript wesbos ](https://wesbos.com/javascript) +- [modern-js-cheatsheet](https://github.com/mbeaudru/modern-js-cheatsheet) +- [https://zirotohero.com/](https://zirotohero.com/) +- [Most used framework in Morocco](https://stateofdev.ma/#technology) +- [Typescript challenge ](https://github.com/type-challenges/type-challenges) + +## Prepared and Presented by + +- [Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0090.md b/episodes/episode-0090.md new file mode 100644 index 00000000..4fe4756b --- /dev/null +++ b/episodes/episode-0090.md @@ -0,0 +1,53 @@ +--- +date: 2021-07-12 +duration: "1:43:34" +title: "Marketing Yourself as a Developer" +tags: ["dev", "self-branding"] +category: "career" +youtube: https://www.youtube.com/watch?v=SA_H8wI0KYQ +published: true +--- + +In this episode of GeeksBlaBla with our community members Ahmed, Ismail, Smakosh, Iliass, Abderahim, and Youssouf, We discuss the importance of self-branding for developers and how it can help developers in their careers. + +## Guests + +- [Ilias Haddad](https://iliashaddad.com/) + +- [Ismail EL Azizi](https://www.linkedin.com/in/ismail-el-azizi/) + +- [Soubai Abderahim](https://twitter.com/soub4i) + +- [Ahmed El Azzabi](https://mylink.fyi/elazzabi) + +- [Ismail Ghallou](https://twitter.com/smakosh) + +## Notes + +0:00:00 - Intro and welcoming. + +0:05:00 - What is self-branding? + +0:09:00 - Is self-branding something only experts can do, or should beginners take it seriously too? + +0:14:00 - Learning in public. + +0:21:00 - Guests' experiences on self-branding and how they benefit from it in their career? + +0:54:00 - Self-branding for beginners. + +1:05:00 - Tools and tricks to market yourself: Blogging, open-source, social media, and learning in public. + +1:16:00 - How to start blogging? + +1:24:00 - The secret power of open-source contribution for your self-branding. + +1:38:00 - Wrap up and goodbye + +## Links + +- [Lists of Moroccan blogs ](https://github.com/DevC-Casa/awesome-morocco#blogs) + +## Prepared and Presented by + +- [Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0091.md b/episodes/episode-0091.md new file mode 100644 index 00000000..1d3637f1 --- /dev/null +++ b/episodes/episode-0091.md @@ -0,0 +1,59 @@ +--- +date: 2021-09-05 +duration: "1:33:34" +title: "AI & ML" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=X3kIl90GJnk&ab_channel=GeeksBlaBla +published: true +--- + +In this episode of GeeksBlaBla we answer many questions around AI & ML, their fields of applications, what they are, their uses in industry with our guest Amine. + +## Guests + +- [Amine Erraqabi](https://www.linkedin.com/in/amine-erraqabi-35711a96/) + +## Notes + +0:00:00 - Intro and welcoming. + +0:04:00 - Typical day of a data scientist + +0:10:00 - Difference between the job of a data scientist/machine learning engineer/data engineer + +0:16:00 - What are the key skills to have to be a great data scientist + +0:21:00 - Do we need to have advanced mathes skills to start doing ML ? + +0:27:00 - Machine learning process : From collecting the data to testing and tuning our chosen model + +0:36:00 - How is Agile Management implemented in the context of ML projects? + +0:43:00 - Subsets of Machine Learning ? + +0:56:00 - Is statistics necessary for DS ? + +1:01:00 - How to get started in AI ? + +1:03:00 - What are the main stages of AI ? + +1:06:00 - Application of AI techniques in insurance + +1:13:00 - Application of AI techniques in advertising + +1:21:00 - Business opportunities in african countries (Morocco) that AI will open + +1:26:00 - Jobs in AI + +1:33:00 - Wrap up and goodbye + +## Links + +- [The Elements of Statistical Learning](https://web.stanford.edu/~hastie/ElemStatLearn/) + +## Prepared and Presented by + +- [Ismail Tlemcani](https://www.linkedin.com/in/ismailtlemcani) + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0092.md b/episodes/episode-0092.md new file mode 100644 index 00000000..edfb670f --- /dev/null +++ b/episodes/episode-0092.md @@ -0,0 +1,53 @@ +--- +date: 2021-09-12 +duration: "1:45:12" +title: "Coding Bootcamp in Morocco" +tags: ["bootcamps", "3wa", "gomycode"] +category: "career" +youtube: https://www.youtube.com/watch?v=pKkQXY3yaYc +published: true +--- + +In this episode of GeeksBlaBla, we discuss coding Bootcamps in morocco; what you need to learn before attending a coding bootcamps? Options we have in morocco ? How much does that cost to participate in coding bottcamps? And much more. + +## Guests + +- [Hamza DEBBARH](https://www.linkedin.com/in/hamza-debbarh/) + +- [Amine Mourid](https://www.linkedin.com/in/amine-mourid-a7b204187/) + +- [Koutheir Cherni](https://www.linkedin.com/in/koutheir-cherni/) + +## Notes + +0:00:00 - Intro and welcoming. + +0:05:00 - What is a Bootcamp? + +0:08:00 - Can bootcamp replace studies in university? + +0:19:00 - Does it work for everyone/people with no experience and people with CS degrees? + +0:37:00 - Process of a Bootcamp. + +1:01:00 - How much does a coding Bootcamp cost? + +1:12:00 - Coding bootcamp for children. + +1:16:00 - Coding bootcamp vs online course. + +1:27:00 - Drawbacks of Bootcamps? + +1:37:00 - Wrap up and goodbye + +## Links + +- [StateofDev.ma](https://stateofdev.ma/#learning--education) + +- [https://3wa.ma/](https://3wa.ma/) + +- [https://gomycode.com](https://gomycode.com/MA-FR/home) + +## Prepared and Presented by + +- [Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0093.md b/episodes/episode-0093.md new file mode 100644 index 00000000..870253f7 --- /dev/null +++ b/episodes/episode-0093.md @@ -0,0 +1,67 @@ +--- +date: 2021-09-19 +duration: "2:05:10" +title: "Reactive Programming" +tags: ["dev", "react"] +category: "dev" +youtube: https://www.youtube.com/watch?v=q9wmIdNAup4&ab +published: true +--- + +In this episode of GeeksBlaBla, we discuss with our guests about Reactive programming ecosystem, its difference with Functional programming, its uses, and many other details around the subject. + +## Guests + +- [Chihab Otmani](https://chihab.dev) + +- [Ilyasse Benrkia](https://twitter.com/benrkiailyasse) + +## Notes + +0:00:00 - Intro and welcoming. + +0:04:00 - What does reactive mean in programming? + +0:10:00 - Where is it used? + +0:15:00 - What does RP solve? + +0:25:00 - Advantages and disadvantages of Reactive programming + +0:34:00 - Reactive programming in Java/JS/Angular + +0:46:00 - Reactive programming vs Functional programming + +1:05:00 - Main concepts behind this paradigm, and Observer patterns + +1:18:00 - Differences between Event-Driven Programming and Reactive Programming + +1:22:00 - Reactive programming most used libraries, is it polyglot ? + +1:29:00 - Some Reactive programming libraries + +1:36:00 - How can Reactive programming make us better programmers? + +1:52:00 - Difference between Cold and Hot Observables + +1:56:00 - Is subjects like Observables + +2:05:00 - Wrap up and goodbye + +## Links + +- [Reactive Programming by Venkat Subramaniam](https://www.youtube.com/watch?v=weWSYIUdX6c&ab_channel=Devoxx) + +- [Build your own RxJS](https://dev.to/chihab/build-your-own-rxjs-3edd) + +- [ Reactive Programming with RxJS (Angular In Darija](https://www.youtube.com/watch?v=j2WQJ1awxGQ&ab_channel=ngMorocco) + +- [Reactive Streams](https://www.reactive-streams.org/) + +- [The Reactive Manifesto](https://www.reactivemanifesto.org/) + +## Prepared and Presented by + +- [Mohammed Daoudi](https://www.linkedin.com/in/iduoad) + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0094.md b/episodes/episode-0094.md new file mode 100644 index 00000000..a093c655 --- /dev/null +++ b/episodes/episode-0094.md @@ -0,0 +1,63 @@ +--- +date: 2021-09-26 +duration: "1:20:12" +title: "Tech News & AMA #13" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=lrUgCaZyUBc&ab_channel=GeeksBlaBla +published: true +--- + +Tech News & AMA #13 with our community members Abderrahim, Youssouf and Meriem. We discuss the latest Tech News during this episode, and we answer audience questions about programming, community, new technologies, and much more. + +## Guests + +- [Mohammed Akiour](https://www.facebook.com/mohammedakiour) + +- [Meryem Aboulfoujja](https://www.facebook.com/maar.yeem.946) + +- [Abderrahim soubai](https://twitter.com/soub4i) + +## Notes + +0:00:00 - Intro and welcoming. + +0:03:00 - What is Manara? + +0:10:00 - Is it an online program? How can you manage it if the participant is a worker ? + +0:13:00 - Do they prepare you for interviews, meetup with the talent hunters? + +0:15:00 - How did you find out about Manara ? + +0:20:00 - Is it a free program? + +0:24:00 - How do you select BlablaConf talks ? + +0:29:00 - Epic Games scores for developers in Apple court case + +0:34:00 - How did you find the last Apple event ? + +0:38:00 - StackOverFlow 2021 survey insights + +0:57:00 - StateOfDev survey + +1:15:00 - Geeksblabla giveaway + +1:20:00 - Wrap up and goodbye + +## Links + +- [Manara program](https://www.manara.tech/apply-as-an-engineer?utm_source=FBDevCMorocco) + +- [StateOfDevMA issues](https://github.com/DevC-Casa/stateofdev.ma/issues) + +- [StackOverFlow 2021 survey](https://insights.stackoverflow.com/survey/2021#technology) + +- [BlablaConf](https://blablaconf.com) + +## Prepared and Presented by + +- [Youssouf EL Azizi](https://elazizi.com) + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0095.md b/episodes/episode-0095.md new file mode 100644 index 00000000..85e8dc2e --- /dev/null +++ b/episodes/episode-0095.md @@ -0,0 +1,57 @@ +--- +date: 2021-10-03 +duration: "2:00:46" +title: "Hacktoberfest & Open Source 2021" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=T0ebJvUiDG4&t=2432ss +published: true +--- + +In this episode, we talk about Open Source and the annual event Hacktoberfest. We answer your questions about getting started with Open Source, the best practices, and how it could help advance your career. + +## Guests + +- [Yasser Tahiri](https://www.yezz.me/) + +- [Abderrahim soubai](https://twitter.com/soub4i) + +## Notes + +0:00:00 - Intro and welcoming. + +0:04:00 - What is hacktoberfest + +0:09:00 - What are the least requirements to start with Hacktoberfest and Open Source? + +0:30:00 - What are the types of contributions? + +0:40:00 - Are there any Moroccan repositories to contribute to? + +0:44:00 - How to promote your Open Source project? + +1:07:00 - Geeksblabla giveaway + +1:08:00 - How did your contribution to Open Source help you in your career? + +1:12:00 - Did it help you get hired easily? + +1:28:00 - Open Source in Morocco + +1:55:00 - Hacktoberfest participation + +2:00:00 - Wrap up and Goodbye + +## Links + +- [Hacktoberfest 2021](https://hacktoberfest.digitalocean.com/) + +- [Awesome Morocco](https://github.com/DevC-Casa/awesome-morocco) + +- [First Contributions](https://github.com/firstcontributions/first-contributions) + +- [Hacktoberfest & Open source previous Episode](https://geeksblabla.io/blablas/hacktoberfest-open-source) + +## Prepared and Presented by + +- [Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0096.md b/episodes/episode-0096.md new file mode 100644 index 00000000..c2a5bd70 --- /dev/null +++ b/episodes/episode-0096.md @@ -0,0 +1,63 @@ +--- +date: 2021-11-28 +duration: "1:37:12" +title: "Tech News & AMA #14" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=NaVuKdEd1H8 +published: true +--- + +Tech News & AMA #14 with our community members Abderrahim, Youssouf, Mohamed, mohamed and Yasser. We discuss the latest Tech News during this episode, and we answer audience questions about programming, community, new technologies, and much more. + +## Guests + +- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Yasser Tahiri](https://www.yezz.me/) + +- [Abderrahim soubai](https://twitter.com/soub4i) + +## Notes + +0:00:00 - Intro and welcoming. + +0:04:00 - Community friends updates + +0:09:00 - New Mac book pro with M1 pro + +0:22:00 - New Generation of CPUs and servers + +0:29:00 - Next 12 features + +0:33:00 - Rust based tools in Javascript ecosystem tools + +0:42:00 - Remix run: a new react based framework for SSR + +0:47:00 - New Python version 3.10 updates + +0:57:00 - PHP new updates + +1:09:00 - What is Web3? + +1:18:00 - Opportunity for people with no degrees + +1:22:00 - QA + +1:31:00 - Wrap up and goodbye + +## Links + +- [Next 12](https://www.youtube.com/watch?v=lRQ5z7i7pxE) + +- [StateOfDevMA issues](https://github.com/DevC-Casa/stateofdev.ma/issues) + +- [remix.run](https://remix.run/) + +- [Python 3.10](https://realpython.com/python310-new-features/) + +## Prepared and Presented by + +- [Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0097.md b/episodes/episode-0097.md new file mode 100644 index 00000000..18d63b63 --- /dev/null +++ b/episodes/episode-0097.md @@ -0,0 +1,56 @@ +--- +date: 2021-12-05 +duration: "3:09:51" +title: "How to succeed in end of study internship (PFE)" +tags: ["career", "PFE"] +category: "career" +youtube: https://www.youtube.com/watch?v=Ivts5p0Cwmo +published: true +featured: true +--- + +We talk about the end of study internship(PFE) in this episode. How to find a good end of studies internship? How to prepare yourself for the internship and succeed during the internship? + +## Guests + +- [Omaima Khalil](https://twitter.com/BadQuinn3) + +- [Aรฏcha GUEDIRA](https://www.linkedin.com/in/a%C3%AFcha-guedira-82718bb1/) + +- [Diaa Alhak El Fallous](https://www.linkedin.com/in/elfallous/) + +- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) + +- [Driss ALLAKI ](https://www.linkedin.com/in/driss-allaki-90801592/) + +## Notes + +0:00:00 - Intro and welcoming. + +0:15:00 - What are the main goals of an end of studies internship? + +0:50:00 - How to deal if your option is not related to development as we don't have enough opportunities on other options such Big data. + +0:54:00 - Are universities helping students find PFE? + +1:04:00 - How and Where can I find internship opportunities? + +1:23:00 - Big companies vs medium and startups, which one is the best for an internship (advantages and disadvantages)? + +1:32:00 - Resumes and Interviews + +2:07:00 - Should companies pay interns? + +2:26:00 - How to succeed during the internship? + +3:00:00 - Wrap up and Goodbye + +## Links + +- [Building A Resume](https://geeksblabla.io/blablas/building-a-resume) + +- [Tech Interviews](https://geeksblabla.io/blablas/tech-interviews) + +## Prepared and Presented by + +- [Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0098.md b/episodes/episode-0098.md new file mode 100644 index 00000000..fded4969 --- /dev/null +++ b/episodes/episode-0098.md @@ -0,0 +1,60 @@ +--- +date: 2021-12-12 +duration: "2:28:53" +title: "The weakest link: why all software needs security?" +tags: ["dev", "security"] +category: "dev" +youtube: https://www.youtube.com/watch?v=39M0RTjPMnA +published: true +featured: false +--- + +During this episode we will go over common security breaches where the weakest service/software were exploited, why all components of a system should get their share of security evaluation, and why secure software design and coding are important for developers on all stacks. + +## Guests + +- [Hammadi Agharass](https://twitter.com/hagharass) + +- [Souhail Mssassi](https://www.linkedin.com/in/mssassi) + +## Notes + +0:00:00 - Intro and welcoming. + +0:07:00 - Exciting security news: Log4j zero-day exploit meltdown. + +0:13:00 - Java Naming and Directory Interface (JNDI). + +0:16:00 - A brief introduction of security from your perspective? + +0:22:00 - What are the software/system aspects that are more critically in need for security? + +0:32:00 - The weakest links for system security: Physical security. + +0:42:00 - The weakest links for system security: Network security. + +0:49:00 - The weakest links for system security: Employees. + +0:59:00 - Stuxnet, where employees contribute to getting malware to the org. + +1:02:00 - Social engineering attack: FB & Google fraud attack. + +1:04:00 - Small satellite apps: FBI website hack, ~100k email sent from a legit fbi.org email address. + +1:35:00 - Secure coding principles for developers + +1:45:00 - Securing small systems (usually considered irrelevant systems) + +1:54:00 - How to secure frontend? + +2:00:00 - How to make sure employees/developers machines are secure? + +2:09:00 - How to manage secrets + +2:28:00 - Wrap up and Goodbye + +## Links + +## Prepared and Presented by + +- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) diff --git a/episodes/episode-0099.md b/episodes/episode-0099.md new file mode 100644 index 00000000..8d7d4186 --- /dev/null +++ b/episodes/episode-0099.md @@ -0,0 +1,50 @@ +--- +date: 2021-12-19 +duration: "02:30:00" +title: "State of Dev in Morocco 2021" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=bEkwDuGGD34 +published: true +featured: true +--- + +In this episode of GeeksBlabla, we discuss and analyse the results of stateofdev.ma 2021 with our guests and answer your questions about the survey. + +## Guests + +- [Yasser Tahiri](https://www.yezz.me/) + +- [Djalal](https://twitter.com/enlamp) + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +## Notes + +0:00:00 - Introduction + +0:05:00 - Overview + +0:11:00 - Profile + +0:36:00 - Education and Learning + +1:01:00 - Work + +1:36:00 - Technology + +2:07:00 - Community + +2:23:00 - Wrap up & Goodbye + +## Links + +- [State Of Dev In Morocco 2021](https://stateofdev.ma/) + +- [State Of Dev In Morocco 2020](https://stateofdev.ma/2020) + +- [State Of Dev project on GitHub](https://github.com/DevC-Casa/stateofdev.ma) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0100.md b/episodes/episode-0100.md new file mode 100644 index 00000000..bd332a84 --- /dev/null +++ b/episodes/episode-0100.md @@ -0,0 +1,46 @@ +--- +date: 2021-12-26 +duration: "02:30:00" +title: "The 100th Episode" +tags: ["100", "geeksblabla"] +category: "career" +youtube: https://www.youtube.com/watch?v=1Ds--L9ERf0 +published: true +featured: true +--- + +In this episode of GeeksBlabla, we celebrate the 100th episode, we discussed how the podcast started, how we work as a team behind the scene and some statistics about the podcast. + +## Guests + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Soubai Abderahim](https://twitter.com/soub4i) + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Otmane Fettal](https://twitter.com/ofettal) + +## Notes + +0:00:00 - Introduction + +0:04:00 - How the podcast started? + +0:23:00 - The secret behind podcast consistency. + +0:43:00 - Audience reviews + +0:59:00 - Episodes preparation and tools we use + +1:10:00 - Statistics quiz + +1:19:00 - Geeksblabla funny moments + +1:38:00 - Wrap up & Goodbye + +## Links + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0101.md b/episodes/episode-0101.md new file mode 100644 index 00000000..af2b0193 --- /dev/null +++ b/episodes/episode-0101.md @@ -0,0 +1,36 @@ +--- +date: 2022-01-02 +duration: "02:08:27" +title: "Microsoft Azure Ecosystem" +tags: ["101", "Microsoft", "Azure"] +category: "dev" +youtube: https://www.youtube.com/watch?v=U2Kem64cZ_0 +published: true +featured: true +--- + +In this Episode of GeeksBlabla , we discussed The Microsoft Azure Ecosystem , first we started with an overview about the cloud and what did it enable the world of tech to do , then we dived deeper on what sets Microsoft Azure apart and what we can do with the tools and capabilities it offers. + +## Guests + +- [Adil Touati](https://www.linkedin.com/in/adiltouati) + +- [Abdelmajid ANEDDAME](https://www.linkedin.com/in/abdelmajidaneddame) + +- [Otmane Fettal](https://twitter.com/ofettal) + +## Notes + +0:00:00 - Introduction + +0:06:00 - Cloud computing Introduction + +0:36:00 - Microsoft Azure Capabilities + +1:18:00 - Advanced Microsoft Azure services and capabilities + +## Links + +## Prepared and Presented by + +- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/episodes/episode-0102.md b/episodes/episode-0102.md new file mode 100644 index 00000000..1cf84403 --- /dev/null +++ b/episodes/episode-0102.md @@ -0,0 +1,50 @@ +--- +date: 2022-01-09 +duration: "01:57:17" +title: "Developing iOS Apps" +tags: ["102", "Apple", "iOS", "Swift", "ObjectiveC", "UiKit", "SwiftUI"] +category: "dev" +youtube: https://www.youtube.com/watch?v=RfTHsACWTlo +published: true +featured: true +--- + +In this Episode of GeeksBlabla , we discussed how to make Apps for the Apple Ecosystem using both Native and Hybrid solutions , we did a deep dive on the differences between Swift , ObjectiveC , SwiftUI , UiKit and when to use each of them , plus what to keep in mind when submiting your apps to the Appstore. + +## Guests + +- [Abdelali Jamhamed](https://www.linkedin.com/in/abdalaliii) + +- [Badre Belghiti Daha](https://www.linkedin.com/in/bbd-29674219) + +## Notes + +0:00:00 - Introduction + +0:03:00 - The Apple Ecosystem + +0:09:45 - Apple vs Android developement + +0:27:00 - How to Develop Apps for iOS + +0:40:00 - Objective C vs Swift + +0:55:00 - SwiftUI C vs UIkit + +1:21:00 - Hybrid iOS Developement + +1:27:00 - Web Developement vs Mobile Developement + +1:33:20 - Getting your App published into the Appstore + +1:48:00 - Conclusion + +## Links + +- [Mobile Development Episode](https://geeksblabla.io/blablas/mobile-development) + +- [App Store Review Guidelines](https://developer.apple.com/app-store/review/guidelines/) + +## Prepared and Presented by + +- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/episodes/episode-0103.md b/episodes/episode-0103.md new file mode 100644 index 00000000..b66bf222 --- /dev/null +++ b/episodes/episode-0103.md @@ -0,0 +1,88 @@ +--- +date: 2022-01-16 +duration: "02:35:49" +title: "NFT & Web3.0" +tags: ["web3", "nft", "crypto", "blockchain", "DeFi", "Ethereum"] +category: "dev" +youtube: https://www.youtube.com/watch?v=j4rUZvjR8ZQ +published: true +featured: true +--- + +In this episode, weโ€™re going to break down an easy-to-understand explanation of NFT, and all the ways Web3 could change the way the world works. Then, our guests will respond to these subjects related questions. + +## Guests + +- [Badr Bellaj](https://www.linkedin.com/in/bellajbadr/) + +- [Alae Zorkane](https://www.alaazorkane.me/) + +- [Ismail Ghalou](https://twitter.com/smakosh) + +- [Abderrahim Soubai Idrissi](https://twitter.com/soub4i) + +## Notes + +0:00:00 - Introduction & Guests presentation. + +0:04:00 - Short Web history. + +0:06:00 - Web1.0 Web2.0 and now Web3.0, what is the real difference? + +0:11:00 - Thoughts about when you first heard about web3. + +0:18:00 - How do you think it can revolutionize the future of the web in certain domains? + +0:24:00 - Web3.0 and DApp transparency. + +0:27:00 - Smart contract definition + +0:28:00 - ERC-20 smart contracts. + +0:34:00 - Metaverse and Web3.0 + +1:00:00 - Roadmap to start in smart contracts and Blockchain. + +1:04:00 - What is NFT anyway? + +1:06:00 - How does the NFT work? + +1:24:00 - NFT Derivatives. + +1:34:00 - What is Ethereum, and how does it relate to NFT? + +1:39:00 - Limitations of NFT. + +1:46:00 - Smart contractsERC-721 / ERC-1155. + +1:50:00 - Metadata (on-chain/off-chain). + +1:54:00 - Layer 2 (L2 solutions). + +2:00:00 - Now, anything/nothing can be sold as NFT. Do you think that it's now mainstream? + +2:09:00 - What if DeFi? + +2:12:00 - What are the existing Defi apps? + +2:15:00 - Uniswap/sushi swap. + +## Links + +- [Solidity by example](https://solidity-by-example.org/) + +- [QuestBook](https://www.questbook.app/) + +- [Ethereum Improvement Proposals](https://eips.ethereum.org/) + +- [How to make an NFT](https://smakosh.com/how-to-make-an-nft) + +- [Most NFTs will be 404 Errors](https://markets.businessinsider.com/news/currencies/nfts-404-pages-geoffrey-huntley-right-clicke) + +- [ENS Domains](https://ens.domains/) + +- [Login.xyz](https://login.xyz/) + +## Prepared and Presented by + +- [Meriem zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0104.md b/episodes/episode-0104.md new file mode 100644 index 00000000..aadf2233 --- /dev/null +++ b/episodes/episode-0104.md @@ -0,0 +1,68 @@ +--- +date: 2022-01-23 +duration: "1:30:52" +title: "MSS with Mehdi Daoudi" +tags: ["MSS"] +category: "mss" +youtube: https://www.youtube.com/watch?v=dUQHPOPaVd8 +published: true +--- + +In this episode of GeeksBlabla, we invited Mehdi Daoudi, CEO and Co-Founder - Catchpoint Systems, Inc. + +## Guests + +- [Mehdi Daoudi](https://www.linkedin.com/in/mdaoudi) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:00 - Who is Mehdi Daoudi? + +0:11:00 - How was the switch from marketing to the IT field? And what is your advice to people who want to switch their careers? + +0:14:00 - When Google acquired DoubleCLicks, What was the special thing that push google to purchase it and how was the switch from a small company to Google word? + +0:19:00 - What are the products/services DoubleCLicks offer? + +0:21:00 - When does it make sense for someone to say I will sell my company and when isn't? + +0:27:00 - What is Catchpoint? How was the experience, and how did you get the idea? + +0:34:00 - How was the experience moving to the cloud and not creating a SAAS product? + +0:42:00 - How bad was the Covid 19 for Catchpoint? + +0:51:00 - Catchpoint is hiring everywhere, so what profiles does Catchpoint need? + +0:56:00 - Would you share with us some of your failure stories? + +1:00:00 - In your opinion, what are the main qualities and skills of a good leader? + +1:05:00 - Why did working in a big company like Google push you to leave it? + +1:09:00 - Any advice about how to close deals with clients? + +1:13:00 - Do you follow news about the startups' ecosystem in Morocco, what do you think about it, and what does miss it? + +1:13:00 - Do you follow news about the startups' ecosystem in Morocco, what do you think about it, and what does miss it? + +1:19:00 - What do you think about companies that do the offshoring? + +1:22:00 - After ten years of pushing startups, why can't we see some of them succeed now? + +1:26:00 - What is the advice you can give to someone who is trying to build a startup? + +1:28:00 - What would you advise your 20-year-old self? + +1:29:00 - Wrap up and goodbye + +## Links + +- [weathering the storm leading your organisation through a pandemic](https://ndupress.ndu.edu/Publications/Article/1227816/dtp-038-weathering-the-storm-leading-your-organization-through-a-pandemic/) +- [The Advantage: Why Organizational Health Trumps Everything Else In Business](https://www.goodreads.com/book/show/12975375-the-advantage?from_search=true&from_srp=true&qid=bvRT94AaN1&rank=1) + +## Prepared and Presented by + +- [Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/episodes/episode-0105.md b/episodes/episode-0105.md new file mode 100644 index 00000000..d0e94eec --- /dev/null +++ b/episodes/episode-0105.md @@ -0,0 +1,82 @@ +--- +date: 2022-01-30 +duration: "1:59:44" +title: "Tech News & AMA #15" +tags: ["AMA", "geeksblabla"] +category: "ama" +youtube: https://www.youtube.com/watch?v=4_h-lxi3GlU +published: true +featured: true +--- + +Tech News & AMA #15 with our community members Abdelfettah, Kawtar and Youssef. During this episode, we discuss the latest Tech News, and we answer audience questions about programming, community, new technologies, and much more. + +## Guests + +- [Kawtar Choubari](https://www.linkedin.com/in/choubari/) + +- [Youssef Benadda](https://twitter.com/_yudax) + +- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) + +## Notes + +0:00:00 - Introduction + +0:04:00 - Kawtar experience and learning process during last year. + +0:10:32 - Time management advice for beginners. + +0:21:00 - Youssef experience with Notion apps and doing profitable projects. + +0:33:00 - Career advice about PFE internship on salesforce and its future for a developer. + +0:38:00 - Can a developer combine between Dev and DevOps? + +0:41:00 - K8s certifications: More valuable ones for a career (CNCK, CKAD, CKA, or CKS). + +0:44:00 - Does the school and diploma in IT matter? + +0:55:00 - Do developers need to learn about marketing in addition to programming? + +1:01:00 - MoroccoTech + +1:08:00 - First GDE in Morocco. + +1:13:00 - faker.js story + +1:32:00 - Giveaway. + +1:33:00 - Tips on obtaining many certificates. + +1:36:00 - Best practices to measure code quality as a junior developer? + +1:51:10 - GeeksBlabla Picks. + +1:59:00 - Wrap up & Goodbye + +## Links + +- [Atomic Habit](https://jamesclear.com/atomic-habits) + +- [How to Get Rich](https://www.youtube.com/watch?v=1-TZqOsVCNM) + +- [Storytel](https://www.storytel.com/eg/ar/) + +- [The Ministry for the Future](https://www.amazon.com/Ministry-Future-Kim-Stanley-Robinson/dp/0316300136) + +- [Save to Notion](https://twitter.com/savetonotion) + +- [The Dark side of open source, What really happened to faker.js](https://www.youtube.com/watch?v=R6S-b_k-ZKY) + +- [MoroccoTech With Zouheir Lakhdissi](https://anchor.fm/biztech-morocco/episodes/BizTech-Talks---Episode-1---MoroccoTech-With-Zouheir-Lakhdissi-e1dgg7h) + +- [Google Developer Expert](https://developers.google.com/community/experts) + +- [GDE program application form](https://drive.google.com/file/d/10BX6nebskPv8Pc3gscSV1A35LwoFOP_y/view) + +- [Moroccoโ€™s Chari valued at \$100M](https://techcrunch.com/2022/01/20/moroccos-chari-valued-at-100m-in-bridge-round-as-it-looks-to-pilot-bnpl-services/) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0106.md b/episodes/episode-0106.md new file mode 100644 index 00000000..b8bed7b4 --- /dev/null +++ b/episodes/episode-0106.md @@ -0,0 +1,52 @@ +--- +date: 2022-02-13 +duration: "1:50:11" +title: "Amazon WEB Services" +tags: ["AWS", "geeksblabla", "Cloud", "Amazon", "Databases", "AI", "Serverless"] +category: "dev" +youtube: https://www.youtube.com/watch?v=oy5q4QXmNaU +published: true +featured: true +--- + +On the 106th Episode of Geeksblabla we're having a discussion around Amazon Web Services, how it was launched, its strenghts and capabilities, as well as discussions around Serverless, Databases and AI/ML services in AWS. + +## Guests + +- [Ilyas Bakouch](https://www.linkedin.com/in/ilyasbakouch) + +- [Abderrahim Soubai Elidrissi](https://twitter.com/soub4i) + +## Notes + +0:00:00 - Introduction + +0:04:00 - The start of AWS + +0:14:45 - Overlapping AWS Services + +0:20:00 - Strenghts of AWS + +0:31:31 - Containers in AWS + +0:35:35 - Serverless in AWS + +0:57:15 - Databases in AWS + +1:27:39 - AI/ML in AWS + +1:34:56 - Q/A + +1:41:00 - Giveaway. + +1:46:12 - Closing + +## Links + +- [Ilyas Youtube Channel](https://twitter.com/isbkch) + +- [S7aba Podcast](https://s7aba.ma/) + +## Prepared and Presented by + +- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/episodes/episode-0107.md b/episodes/episode-0107.md new file mode 100644 index 00000000..f2f768d4 --- /dev/null +++ b/episodes/episode-0107.md @@ -0,0 +1,64 @@ +--- +date: 2022-02-20 +duration: "1:42:10" +title: "Fail gloriously!" +tags: ["career", "failure"] +category: "career" +youtube: https://www.youtube.com/watch?v=SkIAxJqo4IQ +published: true +featured: true +--- + +In this special episode, our guests share with us some failures stories, How those failures impact them, and lessons they learned from them. The main of this episode is basically to say itโ€™s okay to fail; itโ€™s a learning opportunity. + +## Guests + +- [Omaima Khalil](https://twitter.com/BadQuinn3) + +- [Diaa Alhak El Fallous](https://www.linkedin.com/in/elfallous/) + +- [Djalal](https://twitter.com/enlamp) + +- [Mohamed AHDIDOU](https://www.linkedin.com/in/mohamedahdidou/) + +- [Oussama Zaki](https://www.linkedin.com/in/zakioussama/) + +## Notes + +0:00:00 - Introduction and welcoming guests + +0:05:18 - Guests failures stories + +0:18:24 - Impact of failure in personal and professional life + +0:30:29 - Come back from failure ๐Ÿš€ + +0:42:02 - Learnings from failure stories + +0:57:17 - Challenging the term failure. + +0:59:00 - How does society and the education system impact how we see failure? + +1:09:14 - How can we learn from other people's failure stories? + +1:12:14 - How to quit? + +1:25:10 - Impact of Social Media + +1:35:50 - Wrap up & Goodbye + +## Links + +- [Tribe of Mentors](https://www.goodreads.com/book/show/36200111-tribe-of-mentorsY) + +- [Kepner Tregoe Method](https://www.toolshero.com/problem-solving/kepner-tregoe-method/) + +- [Troubleshooting Simulation](https://kepner-tregoe.com/training/troubleshooting-simulation/) + +- [Secrets of the Millionaire Mind](https://www.amazon.com/Secrets-Millionaire-Mind-Mastering-Wealth/dp/0060763280) + +- [The Richest Man In Babylon](https://www.amazon.com/Richest-Man-Babylon-Magic-Story/dp/1939438632) + +## Prepared and Presented by + +[Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/episodes/episode-0108.md b/episodes/episode-0108.md new file mode 100644 index 00000000..6f314dfd --- /dev/null +++ b/episodes/episode-0108.md @@ -0,0 +1,70 @@ +--- +date: 2022-02-27 +duration: "1:23:44" +title: "Tech News & AMA #16" +tags: ["AMA", "geeksblabla"] +category: "ama" +youtube: https://www.youtube.com/watch?v=kXAM8NSL88Q +published: true +featured: false +--- + +Tech News & AMA #16 with our community members Abderahim, Hamza, and Khalil. During this episode, we discuss Khalil's experience as a security researcher, the latest Tech News, and we answer audience questions about programming, community, new technologies, and much more. + +## Guests + +- [Khalil Zahani](https://twitter.com/Khalil_Zhani) + +- [Soubai Abderahim](https://twitter.com/soub4i) + +- [Hamza Makraz](https://web.facebook.com/MakrazHamza) + +## Notes + +0:00:00 - Introduction + +0:03:50 - Khalil's story as a security researcher. + +0:19:10 - A day in the life of a security researcher. + +0:26:40 - Tooling and Programming languages you need to master to start as a security researcher + +0:35:00 - Khalil studies and helped him master this field as a self-thought security researcher. + +0:38:00 - Can a developer combine between Dev and DevOps? + +0:43:00 - Is mastering C important for security researchers? + +0:47:03 - Is mastering Networking important for security researchers? + +0:55:00 - Menara program + +0:58:00 - State of JS results + +1:09:00 - GeeksBlabla Picks. + +1:18:50 - Wrap up & Goodbye + +## Links + +- [Geek Flare](โ€‹https://geekflare.com/) + +- [The Compound Effect](https://www.amazon.com/Compound-Effect-Darren-Hardy/dp/159315724X) + +- [Design Modo](โ€‹https://designmodo.com/) + +- [Chromium Issues](https://bugs.chromium.org/p/chromium/issues/list?q=label%3ASecurity_Severity-High&can=1) + +- [Ray Cast](https://www.raycast.com/) + +- [Menara GeeksBlaBla episode](https://www.youtube.com/watch?v=lrUgCaZyUBc) + +- [Menara](https://manara.tech/our-program) + +- [stateofjs](https://stateofjs.com/) + +- [Chromium Issues](https://bugs.chromium.org/p/chromium/issues/list?q=label%3ASecurity_Severity-High&can=1) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0109.md b/episodes/episode-0109.md new file mode 100644 index 00000000..f05705ac --- /dev/null +++ b/episodes/episode-0109.md @@ -0,0 +1,90 @@ +--- +date: 2022-03-06 +duration: "2:30:40" +title: "UX/UI for the rest of us" +tags: ["career", "UX/UI", "design"] +category: "career" +youtube: https://www.youtube.com/watch?v=d-oyZE33X3s +published: true +featured: true +--- + +In this special episode, We invite our UX/UI designer community friends to Talk about designer careers, How to get started, Jobs in Morocco and outside, as well as discussions around the best practice and resources. + +## Guests + +- [Khaoula Ettaleb](https://www.linkedin.com/in/khaoula-ettaleb/) + +- [Brahim Baif](https://www.linkedin.com/in/thebrahimbaif/) + +- [Oussama Zaki](https://www.linkedin.com/in/zakioussama/) + +- [Ismail EL Azizi ](https://www.linkedin.com/in/ismail-el-azizi) + +- [Abdul Benbrahim](https://www.linkedin.com/in/abdulbenbrahim/) + +## Notes + +0:00:00 - Introduction and welcoming guests + +0:05:15 - What is UX/UI? + +0:16:24 - Why UX/UI is important? + +0:27:45 - How do our guests start their careers? + +0:39:50 - Should I have an artiste talent to be successful as UX/UI designer + +0:50:00 - UX/UI Jobs + +0:59:00 - Job for UX/UI designers In morocco and outside. + +1:06:14 - Self-taught vs. schools to learn UX/UI + +1:11:14 - How to bridge the gap between front-end developers and designers? + +1:39:10 - Tips and tools and recourse for people who want to start a UI/UX career + +1:55:05 - Blank board challenge + +1:59:50 - UX/UI community + +2:01:30 - What makes the difference between a good and a bad one? + +2:09:52 - Picks + +2:24:40 - Wrap up & Goodbye + +## Links + +- [UX/UI Toolkit by Khaoula ](https://khettaleb.notion.site/UX-UI-Toolkit-by-Khaoula-Geeksblabla-8407f594d31844088e890caa58a5a7a8) + +- [Law of UX](https://lawsofux.com/) + +- [The Elements of User Experience](https://www.amazon.com/Elements-User-Experience-User-Centered-Design/dp/0735712026) + +- [Dark Patterns](https://www.darkpatterns.org/) + +- [Asshole Design](https://www.reddit.com/r/assholedesign/) + +- [The Design of Everyday Things](https://www.amazon.com/Design-Everyday-Things-Revised-Expanded/dp/0465050654) + +- [UX/UI design: How to get started](https://www.linkedin.com/in/ismail-el-azizi/blog/ux-ui-design-how-to-get-started) + +- [Ismail Instagram ](https://www.instagram.com/ismail_elazizi/) + +- [Abderahman Instagram ](https://www.instagram.com/abdulbenbrahim/) + +- [Don't Make Me Think ](https://www.amazon.com/Dont-Make-Me-Think-Usability/dp/0321344758) + +- [Mobbin](https://mobbin.design/browse/ios/apps) + +- [Design for Developers](https://frontendmasters.com/courses/design-for-developers/) + +- [Interaction Design](https://www.interaction-design.org/) + +- [Google UX Design Professional Certificate](https://www.coursera.org/professional-certificates/google-ux-design) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0110.md b/episodes/episode-0110.md new file mode 100644 index 00000000..b9f35af0 --- /dev/null +++ b/episodes/episode-0110.md @@ -0,0 +1,50 @@ +--- +date: 2022-03-13 +duration: "1:07:44" +title: "Service mesh demystified" +tags: ["dev", "Service mesh ", "architecture"] +category: "dev" +youtube: https://www.youtube.com/watch?v=LGPUjmNieNI +published: true +featured: false +--- + +In this special episode, We discuss with our community members what service mesh is? How to get started and decide if service mesh is the best pattern for your next project? + +## Guests + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Soubai Abderahim](https://twitter.com/soub4i) + +- [Djalal](https://twitter.com/enlamp) + +## Notes + +0:00:00 - Introduction and welcoming guests + +0:03:00 - What is a service mesh? + +0:12:37 - The benefits of using a service mesh pattern + +0:21:42 - Service mesh implementation + +0:31:00 - Service mesh challenges + +0:37:00 - Service mesh use cases + +0:57:30 - CI/CD for service mesh + +1:06:00 - Wrap up & Goodbye + +## Links + +- [Landscape](https://landscape.cncf.io/card-mode?category=service-mesh&grouping=category) + +- [Keel](https://keel.sh) + +- [service-mesh](https://github.com/aboullaite/service-mesh) + +## Prepared and Presented by + +- [Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/episodes/episode-0111.md b/episodes/episode-0111.md new file mode 100644 index 00000000..f9a40642 --- /dev/null +++ b/episodes/episode-0111.md @@ -0,0 +1,65 @@ +--- +date: 2022-03-20 +duration: "1:29:52" +title: "DigiGirlz x WIT 22" +tags: ["dev", "WIT", "DigiGirlz"] +category: "career" +youtube: https://www.youtube.com/watch?v=G7SIYlXHx7Y +published: true +--- + +In this special episode, we honor the internation women's month. Our guest from Digigirlz will talk about their experience in such IT programs, and answer all of your questions. + +## Guests + +- [Chaimae Drissi Ismaili](https://www.linkedin.com/in/chaimae-drissi-smaili-b8993a105/) + +- [Afaf Ouardi](https://www.linkedin.com/in/afaf-ouardi-788903212/) + +- [Nada Skalli Senhaji](https://www.linkedin.com/in/nada-skali-senhaji-555146119) + +## Notes + +0:00:00 - Introduction and welcoming guests + +0:05:00 - What is the DigiGirlz initiative about? + +0:09:32 - How can our girls know about it and participate in it? + +0:13:00 - What are the technical and general benefits (impact) of this program? + +0:24:00 - How did you start your DigiGirlz journey and how was it? + +0:30:00 - Are there any other similar initiatives? + +0:36:30 - Initiatives created by our guests in Morocco. + +0:39:00 - Is the DigiGirlz initiative the best one? And why? + +0:44:00 - Is the low presence of women in tech a problem? if so, why ? + +1:07:00 - What do you think about the latest result of stateofdev? + +1:18:00 - Geeksblabla Picks. + +1:28:00 - Wrap up & Goodbye + +## Links + +- [DigiGirlz Morocco](https://www.facebook.com/DigiGirlz.ma/) + +- [Kid code](https://web.facebook.com/KidCodeMorocco) + +- [We STEM](https://www.instagram.com/westem.gi/) + +- [We STEM application](https://docs.google.com/forms/d/e/1FAIpQLScmef39izLi60B1ErD9KntojqHeq-yxLyqNQDlbTalz9xq2Zg/viewform?vc=0&c=0&w=1) + +- [Yale Young Global Scholars](https://globalscholars.yale.edu/) + +- [Orange Digital Center ML workshop](https://www.facebook.com/253109491766621/posts/1312010889209804/?d=w) + +- [Youth Zone](https://open.spotify.com/show/10Gu0UmnGmkyC2gq04fh6c?si=5ec9c006a5fc4121) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0112.md b/episodes/episode-0112.md new file mode 100644 index 00000000..d4ee967a --- /dev/null +++ b/episodes/episode-0112.md @@ -0,0 +1,48 @@ +--- +date: 2022-03-27 +duration: "1:06:12" +title: "MSS with Amine Chouki" +tags: ["MSS"] +category: "mss" +youtube: https://www.youtube.com/watch?v=nPec-1y4YHg +published: true +--- + +In this episode of GeeksBlabla, we invited Amine Chouki, Staff Engineer - Docker, Inc. + +## Guests + +- [Amine Chouki](https://www.linkedin.com/in/aminechouki) + +## Notes + +0:00:00 - Introduction and welcoming + +0:01:39 - Education and getting into Technology? + +0:05:25 - Co-Founding elbotola.com + +0:07:35 - Managing Load and building custom solutions + +0:22:05 - Monolith migration to microservices + +0:27:10 - Building apps with high throughput + +0:32:00 - Experience in Invision + +0:39:00 - Experience in Docker + +0:45:00 - Aspiring Software Engineers tips + +0:52:00 - Tips to future entrepreneurs + +0:59:52 - Conclusion + +## Links + +- [Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321) +- [The Almanack of Naval Ravikant: A Guide to Wealth and Happiness](https://www.amazon.com/Almanack-Naval-Ravikant-Wealth-Happiness-ebook/dp/B08FF8MTM6) + +## Prepared and Presented by + +- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/episodes/episode-0113.md b/episodes/episode-0113.md new file mode 100644 index 00000000..fb7e2787 --- /dev/null +++ b/episodes/episode-0113.md @@ -0,0 +1,50 @@ +--- +date: 2022-04-03 +duration: "1:33:11" +title: "Preparing for a Tech Talk" +tags: ["Tech talk"] +category: "career" +youtube: https://www.youtube.com/watch?v=qAGmL2GGATo +published: true +featured: false +--- + +In this episode of GeeksBlabla, we talk about tech talks; why you should care? How to choose a good topic? How to prepare and the right place to start. + +## Guests + +- [Djalal](https://twitter.com/enlamp) + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Mohammed Daoudi](https://www.linkedin.com/in/iduoad) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:10 - Tech talks, why you should care? + +0:14:25 - Do i need to be an expert to start speaking in confs? + +0:25:20 - How to choose a good topic? + +0:39:00 - When i can find open CFPs and places for my first talks? + +0:53:00 - Tips to get accepted in a CFP + +1:04:00 - Preparing for a tech talk + +1:27:00 - Conclusion + +## Links + +- [Antoine de Saint-Exupรฉry](https://www.goodreads.com/quotes/19905-perfection-is-achieved-not-when-there-is-nothing-more-to) +- [Djalal Talk Preparation](https://twitter.com/enlampstatus/1439321602173378565?s=20&t=FZFxClHednRbp_-3efvE7g) +- [Preparing for a Teck talk](https://overreacted.io/preparing-for-tech-talk-part-1-motivation/) +- [Julia Evans](https://jvns.ca/talks/) +- [Developers Conferences Agenda/List](https://github.com/scraly/developers-conferences-agenda) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0114.md b/episodes/episode-0114.md new file mode 100644 index 00000000..cb153b89 --- /dev/null +++ b/episodes/episode-0114.md @@ -0,0 +1,54 @@ +--- +date: 2022-04-10 +duration: "1:44:42" +title: "Switching Careers into IT" +tags: ["Switching Careers"] +category: "career" +youtube: https://www.youtube.com/watch?v=tZxHxZGRaTE +published: true +featured: false +--- + +In this episode of GeeksBlabla, our community friends, Zakaria and Hamza, share their journey switching their careers to IT with us; we answer Why and How and some advice for people who want to switch their careers to IT. + +## Guests + +- [Hamza Hanafi](https://www.linkedin.com/in/hamza-hanfi-9ba77b137/) + +- [Zackaria S](https://twitter.com/gitignorer) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:29 - Our Guests' stories and how they end up switching to IT. + +0:11:47 - The problem of school orientation and how to make a good choice? + +0:22:10 - Why career switch to IT and career growth in IT compared to other fields? + +0:28:10 - How to switch your career to IT and how to make sure it's the right decision? + +0:37:40 - Do you consider your past career experience wasting time? + +0:42:20 - How to start learning the IT field? + +0:56:20 - QA + +1:16:10 - Advice to find the first job for people who switch their career + +1:24:10 - QA + +1:37:24 - Benefits of switching career to IT + +1:40:00 - Conclusion + +## Links + +- [Freecodecamp](https://www.freecodecamp.org/) +- [Coding Bootcamp in Morocco](https://geeksblabla.io/blablas/coding-bootcamp-in-morocco) +- [Stateofdev.ma](https://stateofdev.ma/) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0115.md b/episodes/episode-0115.md new file mode 100644 index 00000000..1307809b --- /dev/null +++ b/episodes/episode-0115.md @@ -0,0 +1,66 @@ +--- +date: 2022-04-17 +duration: "1:48:48" +title: "Clean Code" +tags: ["book", "clean code"] +category: "book" +youtube: https://www.youtube.com/watch?v=oeuMCO4CYyg +published: true +featured: true +--- + +In this episode, we review one of the most famous books in IT; we discuss the "Clean code" book. We highlight the main ideas, our experience with the book, and discussions around the clean code tricks and resources to write clean code. + +## Guests + +- [Abderrahim Soubai Idrissi](https://twitter.com/soub4i) + +- [Slimane Akalie](https://www.linkedin.com/in/slimaneakalie/) + +- [Djalal](https://twitter.com/enlamp) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:51 - The importance of reading + +0:08:00 - Reading culture in Morocco + +0:12:10 - How to find books in Morocco and the best tools to read books + +0:17:30 - Books vs. other resources to learn IT(stateofdev.ma stats) + +0:30:13 - Why clean code is so famous, and guests experience with this book + +0:45:30 - What is a Clean code? + +0:53:30 - Naming variables + +1:06:40 - Comments + +1:14:00 - Functions + +1:23:30 - Clean code vs. deadlines + +1:31:50 - Practicing Clean code + +1:37:20 - Picks + +1:44:33 - Conclusion + +## Links + +- [Better world books](https://www.betterworldbooks.com/) +- [Book repository](https://www.bookdepository.com/) +- [Stateofdev.ma](https://stateofdev.ma/) +- [Tech Radar](https://www.techradar.com/) +- [Thought Works](https://www.thoughtworks.com/) +- [Warp](https://www.warp.dev/) +- [Dev Rel](https://www.devrelbook.com/) +- [Beautiful Code](https://www.oreilly.com/library/view/beautiful-code/9780596510046/) +- [Slimane Youtube Channel](https://www.youtube.com/channel/UCAKherxCCvXWHyGaeQKy-Jw) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0116.md b/episodes/episode-0116.md new file mode 100644 index 00000000..c0533517 --- /dev/null +++ b/episodes/episode-0116.md @@ -0,0 +1,55 @@ +--- +date: 2022-04-24 +duration: "1:42:15" +title: "Clean Code (part 2)" +tags: ["book", "clean code"] +category: "book" +youtube: https://www.youtube.com/watch?v=H9ltgucbk5A +published: true +featured: false +--- + +In this episode, we continue our review of the most famous books in IT; we discuss the "Clean code" book. We highlight the main ideas, our experience with the book, and discussions around the clean code tricks and resources to write clean code. + +## Guests + +- [Slimane Akalie](https://www.linkedin.com/in/slimaneakalie/) + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:50 - Mehdi point of view about Clean Code book + +0:10:00 - Formatting + +0:16:10 - Objects and Data Structure + +0:24:00 - Tests + +0:43:50 - Refactoring and legacy code + +0:59:00 - Concurrence + +1:12:00 - Tasks estimation + +1:20:00 - Other recourses and tools to learn Clean Code + +1:30:00 - Geeksblabla Picks + +1:37:00 - Conclusion + +## Links + +- [Clean code (part1)](https://geeksblabla.io/blablas/clean-code) +- [Robert C. Martin - Effective Estimation (or: How not to Lie)](https://www.youtube.com/watch?v=eisuQefYw_o) +- [Clean Code Typescript](https://github.com/labs42io/clean-code-typescript) +- [ReadWise](https://readwise.io/) +- [Ego is the Enemy](https://www.amazon.com/Ego-Enemy-Ryan-Holiday/dp/1591847818) +- [The Psychology of Money](https://www.amazon.com/Psychology-Money-Timeless-lessons-happiness/dp/0857197681) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0117.md b/episodes/episode-0117.md new file mode 100644 index 00000000..fad2f329 --- /dev/null +++ b/episodes/episode-0117.md @@ -0,0 +1,59 @@ +--- +date: 2022-05-08 +duration: "1:31:38" +title: "Software Project Management" +tags: + [ + "Software", + "Project", + "Project Management", + "Agile", + "Scrum", + "Delivery", + "Collaboration", + ] +category: "dev" +youtube: https://www.youtube.com/watch?v=PTrk2tUhbdY +published: true +featured: false +--- + +In this Episode , we will walkthrough the path of managing a software project from start to finish. + +## Guests + +- [Adil BAAJ](https://www.linkedin.com/in/adil-baaj/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:02:20 - Engineering Manager Roles + +0:05:30 - What's a Software Project ? + +0:06:55 - What do we need to know before we start a Software Project ? + +0:18:00 - Tools and processes necessary to implement a Software Project ? + +0:25:00 - Software Project Management Methodologies + +0:30:00 - Planification management + +0:35:00 - Rituals to make high quality Software Projects + +0:45:45 - Managing Communication between stakeholders + +1:00:15 - Software Project Lifecycle + +1:10:00 - Q/A + +1:27:00 - Geeksblabla Picks + +## Links + +- [Nine Lies About Work: A Freethinking Leaderโ€™s Guide to the Real World](https://www.amazon.com/Nine-Lies-about-Work-Freethinking-ebook/dp/B07C3ZT28C) + +## Prepared and Presented by + +- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/episodes/episode-0118.md b/episodes/episode-0118.md new file mode 100644 index 00000000..2b19445d --- /dev/null +++ b/episodes/episode-0118.md @@ -0,0 +1,65 @@ +--- +date: 2022-05-22 +duration: "1:21:51" +title: "Making Great Tech Products" +tags: + [ + "Software", + "Project", + "Project Management", + "Agile", + "Scrum", + "Delivery", + "Collaboration", + "Product", + "Product Management", + ] +category: "dev" +youtube: https://www.youtube.com/watch?v=7Nl-7Zri1Hg +published: true +featured: false +--- + +In this Episode , we will discuss what do we need to know to build great tech products. + +## Guests + +- [Hassan BelHabib Filali](https://www.linkedin.com/in/hassan-belhabib-filali-0404b418/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:01:30 - Guest Introduction + +0:07:00 - Product Manager Roles + +0:17:30 - Product Manager vs Project Manager + +0:25:00 - How can we get Ideas to build new Products ? + +0:33:32 - Copycats + +0:36:20 - Ingrediants to build better products + +0:38:00 - Challenging Ideas and making them into reality + +0:49:25 - What comes next ? + +0:52:54 - Skills to develop to be a better Product Manager ? + +1:03:35 - Q/A + +1:09:00 - Geeksblabla Picks + +1:15:00 - Conclusion + +## Links + +- [Product Management Tips - Shreyas Doshi](https://twitter.com/shreyas) +- [Product School](https://www.productschool.com/) +- [Fireship](https://www.youtube.com/c/Fireship) + +## Prepared and Presented by + +- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/episodes/episode-0119.md b/episodes/episode-0119.md new file mode 100644 index 00000000..d426b3f7 --- /dev/null +++ b/episodes/episode-0119.md @@ -0,0 +1,56 @@ +--- +date: 2022-05-29 +duration: "1:44:51" +title: "Tech News & AMA #17" +tags: ["AMA", "geeksblabla"] +category: "ama" +youtube: https://www.youtube.com/watch?v=00Z7mP3IhTI +published: true +featured: false +--- + +Tech News & AMA #17 with our community members Mohamed, and Abdullah. During this episode, we discuss Oracle labs in morocco, new Abdullah experience joining Microsoft and we answer audience questions. + +## Guests + +- [Mohamed Ez-zarghili](https://twitter.com/ezzarghili) + +- [Abdullah Iraamane](https://www.linkedin.com/in/aairaamane/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:01:30 - Guest Introduction + +0:03:00 - Oracle Labs in Morocco + +0:26:00 - Abdullah experience joining Microsoft + +0:54:00 - Big company Recruitment Freezing? + +1:01:00 - Resume Writing advices. + +1:04:00 - Is a french an obstacle on acquiring jobs in morocco? + +1:10:00 - Finding the first job remotely. + +1:13:10 - How to deal when you feel you are not learning new things in your job? + +1:21:20 - Freelance vs working in companies. + +1:23:30 - PhD programs offered by Oracle labs. + +1:28:00 - QA + +1:41:30 - Conclusion + +## Links + +- [Oracle Labs](https://labs.oracle.com/pls/apex/labs/r/labs/intro) +- [StateOfDev.ma](https://stateofdev.ma/) +- [Self-taught developers episode](https://geeksblabla.io/blablas/self-taught-developers) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0120.md b/episodes/episode-0120.md new file mode 100644 index 00000000..9ccfea4c --- /dev/null +++ b/episodes/episode-0120.md @@ -0,0 +1,65 @@ +--- +date: 2022-06-05 +duration: "1:23:28" +title: "Quantum computing" +tags: ["Quantum Computing"] +category: "dev" +youtube: https://www.youtube.com/watch?v=flTK46tRlOc +published: true +featured: false +--- + +In this Episode , we will discover what quantum computers are and how they work. + +## Guests + +- [Yassine Moumen](https://www.linkedin.com/in/yassine-moumen/) + +- [Badr Bellaj](https://www.linkedin.com/in/bellajbadr/) + +- [Hinde Adnani](https://www.linkedin.com/in/hinde-adnani-426a0254/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:01:34 - Guest Introduction + +0:02:52 - What is a quantum computer? + +0:12:04 - Brief definition of quantum physics + +0:22:13 - How do quantum computers work? + +0:26:23 - Quantum supremacy and the cost of making quantum computers. + +0:30:04 - What are Qubits and how they differ from normal bits? + +0:32:50 - Can quantum computers replace ordinary computers? + +0:42:11 - In which fields are(/will) quantum computers mostly used? + +0:56:07 - Q/A + +1:06:04 - Can anyone use quantum computers and how? + +1:10:50 - How do we program quantum computer (algorithms and programming languages)? + +1:14:37 - Other recourses and tools to learn Quantum Computing + +1:20:00 - Conclusion + +## Links + +- [QMorocco](https://qworld.net/qmorocco/) +- [IBM quantum lab](https://quantum-computing.ibm.com/lab) +- [qiskit](https://qiskit.org/textbook/ch-labs/) +- [Dancing with Qubits: How quantum computing works and how it can change the world](https://www.amazon.com/Dancing-Qubits-quantum-computing-change/dp/1838827366) +- [Computing with Quantum Cats: From Colossus to Qubits](https://www.amazon.com/Computing-Quantum-Cats-Colossus-Qubits/dp/1616149213) +- [Quantum Computing: A Gentle Introduction](https://www.amazon.com/Quantum-Computing-Introduction-Engineering-Computation/dp/0262526670) +- [The Outer Limits of Reason: What Science, Mathematics, and Logic Cannot Tell Us](https://www.amazon.com/Outer-Limits-Reason-Science-Mathematics/dp/026252984X) +- [Quantum computers without beating about the bush](https://yassinemoumen.com/?p=76) + +## Prepared and Presented by + +- [Mohammed Daoudi](https://www.linkedin.com/in/iduoad) diff --git a/episodes/episode-0121.md b/episodes/episode-0121.md new file mode 100644 index 00000000..d103cb77 --- /dev/null +++ b/episodes/episode-0121.md @@ -0,0 +1,54 @@ +--- +date: 2022-06-26 +duration: "1:46:22" +title: "Cal Newport books" +tags: ["book", "cal newport"] +category: "book" +youtube: https://www.youtube.com/watch?v=4Bjzbdc2ApY +published: true +featured: false +--- + +In this episode, we review a series of Cal Newport's books and discuss each of these books topics with the guests, and people who already read the book(s). + +## Guests + +- [Slimane Akalie](https://www.linkedin.com/in/slimaneakalie/) + +- [Diaa Alhak El Fallous](https://www.linkedin.com/in/elfallous/) + +- [Mohammed Daoudi](https://www.linkedin.com/in/iduoad) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:50 - Intro about the author: Call Newport and Books + +0:07:00 - So good they can't ignore you + +0:29:15 - Deep Work + +0:54:51 - Digital minimalism + +1:19:30 - A world Without Emails + +1:33:00 - Geeksblabla Picks + +1:45:00 - Conclusion + +## Links + +- [Cal Newport: Deep Work, Focus, Productivity, Email, and Social Media)](https://www.youtube.com/watch?v=y3Umo_jd5AA&ab_channel=LexFridman) +- [So Good They Canโ€™t Ignore You](https://www.calnewport.com/books/so-good/) +- [Highlights from A world without email](https://www.slimane.io/highlights/a-world-without-email) +- [Highlights from Digital minimalism](https://www.slimane.io/highlights/digital-minimalism) +- [The Outer Limits of Reason](https://www.amazon.com/Outer-Limits-Reason-Science-Mathematics/dp/026252984X) +- [Never Split the Difference: Negotiating As If Your Life Depended On It](https://www.goodreads.com/book/show/26156469-never-split-the-difference) +- [Logseq](https://logseq.com/) + +- [TickTick](https://ticktick.com/) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0122.md b/episodes/episode-0122.md new file mode 100644 index 00000000..c2f0302a --- /dev/null +++ b/episodes/episode-0122.md @@ -0,0 +1,58 @@ +--- +date: 2022-07-03 +duration: "1:51:51" +title: "Tech News & AMA #18" +tags: ["AMA", "geeksblabla"] +category: "ama" +youtube: https://www.youtube.com/watch?v=M_Fndyna8VI +published: true +featured: false +--- + +Tech News & AMA #18 with our community members Ilyas, and Abderrahim. During this episode, we discuss DenoJS's new framework, State of cloud 2022 and AWS EKS. + +## Guests + +- [Abderrahim soubai](https://twitter.com/soub4i) + +- [Ilyas Bakouch](https://www.linkedin.com/in/ilyasbakouch/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:01:30 - Guest Introduction + +0:03:00 - Fresh Framework release + +0:35:00 - java and other programming languages can be obsolete within the next few years? + +0:42:00 - What about .NET ? + +0:47:00 - PHP, JS, and Python + +0:49:00 - AWS EKS everywhere. + +1:14:00 - Future of VueJS + +1:26:10 - Geeksblabla Giveaway. + +1:30:20 - Thoughts on the state of cloud 2022. + +1:38:00 - QA + +1:48:30 - Conclusion + +## Links + +- [State of Cloud 2022](https://www.thecloudcast.net/2022/06/state-of-cloud-2022.html) +- [StateOfDev.ma](https://stateofdev.ma/) +- [AWS Graviton Processor](https://aws.amazon.com/ec2/graviton/) +- [AWS Outposts Family](https://aws.amazon.com/outposts/) +- [AWS Inferentia](https://aws.amazon.com/machine-learning/inferentia/) +- [VueJS core](https://github.com/vuejs/core) +- [Node.js in Action](https://www.manning.com/books/node-js-in-action) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0123.md b/episodes/episode-0123.md new file mode 100644 index 00000000..adba0f94 --- /dev/null +++ b/episodes/episode-0123.md @@ -0,0 +1,58 @@ +--- +date: 2022-07-17 +duration: "1:29:18" +title: "Create Great Documentation" +tags: ["Dev", "geeksblabla"] +category: "dev" +youtube: https://www.youtube.com/watch?v=R52Rt-iFPgs&t=1106s +published: true +featured: false +--- + +In today's episode we dive into documentation, its rules, ethics, best practices and some tools that help to get started. + +## Guests + +- [Omaima Khalil](https://twitter.com/BadQuinn3) + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +## Notes + +0:00:00 - Introduction and welcoming + +0:01:30 - Guests Introduction + +0:02:50 - What is Documentation? Why we need it? + +0:05:51 - What are the types of Documentation you know? + +0:10:01 - Who do we write documentation for? + +0:15:35 - What makes good documentation? + +0:20:34 - Ethics of documentation and rules to respect + +0:24:31 - How do we structure our documentation? + +0:53:07 - What types of documentation should focus on writing? + +1:02:20 - Some tools you use to write or share documentation. + +1:10:00 - Tips from guests. + +1:14:00 - GeeksBlabla Giveaway. + +1:17:45 - Geeksblabla Picks + +1:29:18 - Conclusion + +## Links + +- [Technical Writing One introduction](https://developers.google.com/tech-writing/one) +- [Bookstack](https://www.bookstackapp.com/) +- [Docusaurus](https://docusaurus.io/) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0124.md b/episodes/episode-0124.md new file mode 100644 index 00000000..1441dcbf --- /dev/null +++ b/episodes/episode-0124.md @@ -0,0 +1,60 @@ +--- +date: 2022-09-05 +duration: "2:06:51" +title: "Tech News & AMA #19" +tags: ["AMA", "geeksblabla"] +category: "ama" +youtube: https://www.youtube.com/watch?v=5sAt9Q7aysA +published: true +featured: false +--- + +Tech News & AMA #19 with our community members Mehdi,Meriem, Youssouf, Yasser and Abderrahim. During this episode, we discuss Bunjs new javascript runtime, Heroku move to kill the free tier and much more. + +## Guests + +- [Abderrahim soubai](https://twitter.com/soub4i) + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +- [Yasser Tahiri](https://www.yezz.me/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:00 - Guest's learning during the last period. + +0:19:29 - HeroKu free tier is dead. + +0:28:00 - Is Github Copilot worth it? + +0:35:30 - BunJs new javascript runtime. + +0:46:00 - Q&A Session + +1:23:30 - Python updates. + +1:31:40 - Favorite programming languages for our guests. + +1:53:10 - Geeksblbla Picks. + +1:48:30 - Conclusion + +## Links + +- [Bun Js](https://bun.sh/) +- [Marketing Yourself as a Developer](https://geeksblabla.io/blablas/marketing-yourself-as-a-developer) +- [Pydantic](https://github.com/pydantic/pydantic) +- [Ormdantic](https://github.com/yezz123/ormdantic) +- [ms-kubernetes-tools](https://marketplace.visualstudio.com/items?itemName=ms-kubernetes-tools.vscode-kubernetes-tools) +- [The Log-Structured Merge-Tree (LSM-Tree)](https://www.cs.umb.edu/~poneil/lsmtree.pdf) +- [Nleveldb](https://github.com/google/leveldb) +- [rocksdb](https://github.com/facebook/rocksdb) +- [pebble](https://github.com/cockroachdb/pebble) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0125.md b/episodes/episode-0125.md new file mode 100644 index 00000000..0a228bf9 --- /dev/null +++ b/episodes/episode-0125.md @@ -0,0 +1,52 @@ +--- +date: 2022-09-11 +duration: "1:30:27" +title: "DevoxxMa Special" +tags: ["Dev"] +category: "dev" +youtube: https://youtu.be/UaulAxzEvdk +published: true +featured: false +--- + +In this episode we dicuss DevoxxMA's return this year, news and other details with Badr Elhouari. + +## Guests + +- [Badr Elhouari](https://twitter.com/badrelhouari) + +## Notes + +0:00:00 - Introduction and welcoming. + +0:01:57 - This year's theme. + +0:06:53 - From developers to developers. + +0:11:28 - What are the subjects most focused on? + +0:16:20 - Bringing back in person events. + +0:26:30 - Smart training and workshops yet to be presented by experts + +0:29:28 - Talks selections and criterias. + +0:40:25 - Conferences culture in Morocco. + +0:52:11 - Will there be a recording of sessions this year? + +1:15:54 - DevoxxMa culture and other conferences. + +1:27:26 - Geeksblabla Giveaway + +1:29:00 - Wrap up and Goodbye! + +## Links + +- [DevoxxMA 2022](https://devoxx.ma/) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/episodes/episode-0126.md b/episodes/episode-0126.md new file mode 100644 index 00000000..42ebbe8e --- /dev/null +++ b/episodes/episode-0126.md @@ -0,0 +1,54 @@ +--- +date: 2022-09-18 +duration: "2:00:45" +title: "All about Agile" +tags: ["Dev", "Agile", "Project", "Management"] +category: "dev" +youtube: https://youtu.be/UcaHNJR7s-0 +published: true +featured: false +--- + +In this episode we discuss Agile from Business , Project and Developement/Operation Perspectives. + +## Guests + +- [Amine Maarouf](https://twitter.com/a_maaarouf) +- [Djalal EL Baz](https://twitter.com/enlamp) +- [Nassima Labzagui](https://www.linkedin.com/in/nassima-labzagui-m-eng-40b22615a) + +## Notes + +0:00:00 - Introduction and welcoming. + +0:01:28 - Omaima's Introduction to Geeksblaba Team + +0:02:52 - Guests Introduction + +0:08:29 - What's Agile ? + +0:24:44 - Agile from the Business Perspective + +0:41:47 - Agile from Project Management Perspective + +0:58:28 - Agile from the Developer Perspective + +1:10:25 - Agile Challenges + +1:29:30 - Q/A + +1:47:20 - Geeksblabla Picks + +2:00:00 - Wrap up and Goodbye! + +## Links + +- [Bubble](https://bubble.io) +- [Scrum](https://โ€‹scrum.org) +- [Agile Lab](https://agilelab.de/blog) + +## Prepared and Presented by + +- [Omaima Khalil](https://twitter.com/BadQuinn3) + +- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/episodes/episode-0127.md b/episodes/episode-0127.md new file mode 100644 index 00000000..b98dd9c3 --- /dev/null +++ b/episodes/episode-0127.md @@ -0,0 +1,53 @@ +--- +date: 2022-09-25 +duration: "2:04:32" +title: "Software Architecture Fundamentals" +tags: ["Dev", "Architecture", "101", "fundementals", "Software"] +category: "dev" +youtube: https://youtu.be/ObWFqaTm3Hk +published: true +featured: false +--- + +In this episode we discuss the fundemental concepts for building resilient and evolving Software. + +## Guests + +- [Mohammed Aboullaite](https://twitter.com/laytoun) +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +## Notes + +0:00:00 - Introduction and welcoming. + +0:02:00 - Why do we need to have architectures for our Software ? + +0:10:28 - "Picking the right architecture is picking the right battles and managing tradeoffs" + +0:13:10 - Functional and non Functional Requirements + +0:29:10 - Fundemental Concepts in Software Architecture + +1:10:00 - Lessons from Implementing Successful Software Architectures. + +1:21:12 - Q/A + +1:49:33 - Ressources to learn Systems Design + +2:02:00 - Wrap up and Goodbye! + +## Links + +- [Systems Design Interview](https://www.amazon.com/System-Design-Interview-insiders-Second/dp/B08CMF2CQF) +- [Systems Design Cheat Sheet](https://gist.github.com/vasanthk/485d1c25737e8e72759f) +- [Hussain Nasser Software Engineering](https://www.youtube.com/c/HusseinNasser-software-engineering) +- [Architecting for Scale](https://www.amazon.com/Architecting-Scale-Lee-Atchison/dp/1491943394) +- [Building Secure and Reliable Systems](https://www.amazon.com/Building-Secure-Reliable-Systems-Implementing/dp/1492083127) +- [Designing Data-Intensive Applications](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable) +- [Building Evolutionary Architectures](https://www.amazon.com/Building-Evolutionary-Architectures-Support-Constant) + +## Prepared and Presented by + +- [Abderrahim SOUBAI-ELIDRISI](https://twitter.com/soub4i) + +- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/episodes/episode-0128.md b/episodes/episode-0128.md new file mode 100644 index 00000000..e443ad2f --- /dev/null +++ b/episodes/episode-0128.md @@ -0,0 +1,60 @@ +--- +date: 2022-10-16 +duration: "1:37:36" +title: "Letโ€™s talk about Operating Systems" +tags: + [ + "Dev", + "Architecture", + "101", + "fundementals", + "Software", + "Operating Systems", + ] +category: "dev" +youtube: https://youtu.be/qDMl9Zx2Mjg +published: true +featured: false +--- + +In this episode we discuss the fundemental concepts of Operating Systems + +## Guests + +- [Mohammed Daoudi](https://www.linkedin.com/in/iduoad) + +## Notes + +0:00:00 - Introduction and welcoming. + +0:01:50 - What's an Operating System ? + +0:13:08 - Computer Start-up Process + +0:18:11 - What's an Operating System Kernel ? + +0:27:00 - What's an Operating System Shell ? + +0:29:20 - What's a Process ? + +0:33:50 - OS Process Management + +0:41:11 - OS Memory Management + +0:50:20 - OS Hardware Management + +0:59:25 - OS Graphical User Interfaces + +1:06:00 - Linux Distributions + +1:13:51 - Q/A + +1:36:00 - Wrap up and Goodbye! + +## Links + +- [Microsoft Linux Distro](https://github.com/microsoft/CBL-Mariner) + +## Prepared and Presented by + +- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/episodes/episode-0129.md b/episodes/episode-0129.md new file mode 100644 index 00000000..4291bf7f --- /dev/null +++ b/episodes/episode-0129.md @@ -0,0 +1,63 @@ +--- +date: 2022-10-23 +duration: "1:57:21" +title: "AMA & Tech News #20" +tags: ["AMA", "geeksblabla"] +category: "ama" +youtube: https://www.youtube.com/watch?v=FrhrvdQwmSo +published: true +featured: false +--- + +Tech News & AMA #20 with our community members Mehdi, Youssouf, Abderrahim and Manal. During this episode, we discuss 2023 IT trends predictions, BlablaConf updates, Hacktoberfest, and much more. + +## Guests + +- [Manal Benchrif](https://www.linkedin.com/in/manalbenchrif/) + +- [Abderrahim soubai](https://twitter.com/soub4i) + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:30 - Guests learning during last months + +0:06:00 - Hacktoberfest + +0:13:45 - Blablaconf update and call for speakers + +0:26:00 - Moroccan national programming contest 2022 + +0:58:00 - State of Java report + +1:01:00 - React new async rendering + +1:10:00 - react query, qraphql, fetch, axios + +1:15:00 - QA + +1:23:40 - 2023 IT predictions + +1:48:50 - GeeksBlabla Picks + +1:44:00 - warming up and goodbye + +## Links + +- [cfp.blablaconf](https://cfp.blablaconf.com/) +- [hacktoberfest-open-source-2021](https://geeksblabla.io/.../hacktoberfest-open-source-2021) +- [hacktoberfest](https://hacktoberfest.com/?fbclid=IwAR3W6o4ImjsK40Min99_hTt6tWrNT-atkdeso9xUjQDBiNbbwLoxOGZlo-M) +- [Build Your First Sentiment Analysis Web App with Streamlit with Manal Benchrif |BlaBlaConf 2021](https://www.youtube.com/watch?v=5plMb36qvLM) +- [MNPC 2022 Editorial](https://www.youtube.com/watch?v=QQLSbj1shHs&fbclid=IwAR3MRJ6eFhTJJH8JFswcZXV5t4M4M1WjsWts6ytZ0QnM99Md5ln7U_evAko) +- [2022 State of the Java Ecosystem Report](https://newrelic.com/resources/report/2022-state-of-java-ecosystem?fbclid=IwAR02xExRGP71qS94gNiX765jJ2MBBILdmvLi6vecgOe8yLSEuek9KQRnLKk) +- [stackblitz](https://stackblitz.com/codeflow?fbclid=IwAR0egKhHTfHSOEHDSKG1jD783L3fQ3Y5NNQzb5xyeKJ_JOVN89-YdBtwWi8) +- [Top 5 Biggest Technology Trends In 2023 (Aikyo)](https://medium.com/@aikyo.io/top-5-biggest-technology-trends-in-2023-7242256b1834) +- [rytr](https://rytr.me/?fbclid=IwAR36x8L6w4OZ9XQygrDN5I7qD-Xvj9ASnIsTrDu-h8Ag7l3FUrN-p_Cb13g) +- [stateofdev](https://stateofdev.ma/) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0130.md b/episodes/episode-0130.md new file mode 100644 index 00000000..f7b09cf2 --- /dev/null +++ b/episodes/episode-0130.md @@ -0,0 +1,75 @@ +--- +date: 2022-10-30 +duration: "2:19:18" +title: "React JS Revisited" +tags: ["Dev", "geeksblabla", "react"] +category: "dev" +youtube: https://www.youtube.com/watch?v=6lXH3vhfEHI +published: true +featured: false +--- + +In this episode of GeeksBlabla, we discuss React JS and its ecosystem and everything around it such us Next JS, Gatsby JS, Tailwind CSS, TypeScript, Server component and much more. + +## Guests + +- [Adel Dafrallah ](https://www.linkedin.com/in/bigfanjs/) + +- [Mohamed El Ayadi](https://www.linkedin.com/in/mohamed-el-ayadi-2a34749a/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:30 - Learning React js, and the importance of learning basic first. + +0:18:10 - How to choose a framework for your next react project, and the pros and cons of each framework. + +0:33:00 - Typescript, and the benefits of using it in your react project. + +0:38:00 - Routing in react. + +0:43:30 - Styling a react project. + +0:55:33 - State management and API calls in react. + +1:12:00 - Forms in react. + +1:14:00 - QA + +1:22:40 - Testing in react. + +1:28:00 - QA + +1:40:00 - The new updates in react and Next 13. + +1:53:00 - Next Js Conf 2022. + +2:02:00 - Guests least favorite features in react. + +2:05:50 - Future of react. + +2:10:00 - Geeksblabla Picks + +2:17:00 - Goodbye and See you next week. + +## Links + +- [Frontend Masters](https://frontendmasters.com/) +- [The Beginner's Guide to React](https://egghead.io/courses/the-beginner-s-guide-to-react?fbclid=IwAR203siAUBKktmC610k6cWjVidvmXxxujwM5rsBXelgxq3pxeQGvBbaoxmA) +- [How to learn typescript for react developers](https://elazizi.comhow-to-learn-type-script-for-react-developers) +- [You Dont Know JS](https://github.com/getify/You-Dont-Know-JS?fbclid=IwAR01y6xrO3WZJ9czBi9-TFDAkgpJmgLR50lCU3n9QHcvOvMasx9p-qdVc44) +- [Figma to Code (HTML, Tailwind, Flutter, SwiftUI)](https://www.figma.com/community/plugin/842128343887142055/Figma-to-Code-HTML%2C-Tailwind%2C-Flutter%2C-SwiftUI) +- [Formik](https://formik.org/) +- [Ant design](https://ant.design/) +- [Headless UI](https://headlessui.com/) +- [Cypress](https://www.cypress.io/) +- [React fiber architecture](https://github.com/acdlite/react-fiber-architecture) +- [Vite vs. Next + turbopack HMR Benchmark](https://github.com/yyx990803/vite-vs-next-turbo-hmr) +- [Functional Light JS](https://github.com/getify/Functional-Light-JS) +- [overreacted](https://overreacted.io/) +- [How Javascript Works](https://www.howjavascriptworks.com/) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0131.md b/episodes/episode-0131.md new file mode 100644 index 00000000..7c28f10e --- /dev/null +++ b/episodes/episode-0131.md @@ -0,0 +1,44 @@ +--- +date: 2022-11-06 +duration: "1:38:02" +title: "MSS with Adil TOUATI" +tags: ["MSS", "geeksblabla", "Cloud", "DevOPS", "Microsoft"] +category: "mss" +youtube: https://www.youtube.com/watch?v=nDb3hLIMrP0 +published: true +featured: false +--- + +In this Episode of Geeksblabla , We're joined by the amazing Adil Touati who shared with us precious insights from his amazing career in the Software Industry. + +## Guests + +- [Adil TOUATI](https://www.linkedin.com/in/adiltouati/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:02:00 - Adil's Journey to Microsoft + +0:23:00 - How was Adil able to follow tech trends ? + +0:34:30 - Adil's relationship with Technology + +0:37:00 - The work of a Cloud Solution Architect + +0:45:00 - What are the necessary skills to become a Solutions Architect ? + +0:53:33 - Where do you see the Cloud going ? + +1:14:00 - Adil's Advice for the newer generation of Software Engineers + +1:26:00 - QA - Geeksblabla Picks + +1:35:00 - Conclusion + +## Links + +## Prepared and Presented by + +- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/episodes/episode-0132.md b/episodes/episode-0132.md new file mode 100644 index 00000000..5b49657a --- /dev/null +++ b/episodes/episode-0132.md @@ -0,0 +1,47 @@ +--- +date: 2022-11-13 +duration: "1:27:02" +title: "Coding for Kids" +tags: ["kids", "learning"] +category: "dev" +youtube: https://www.youtube.com/watch?v=EpV5GA-kPos +published: true +featured: false +--- + +In this episode of GeeksBlabla, we discuss the importance for coding for kids, how to teach them to code and how to make them love coding. + +## Guests + +- [Anas Elalaoui ](https://www.linkedin.com/in/adiltouati/) + +- [Diaa Alhak El fallous](https://www.linkedin.com/in/elfallous/) + +- [Driss Boumlik](https://www.linkedin.com/in/drissboumlik/) + +- [Ibrahim Drissi](https://www.linkedin.com/in/ibrahim-drissi-424838244/) + +- [Ayman Riad Solh](#) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:20 - Importance of coding for kids + +0:28:00 - Experience of learning to code with Ibrahim and Ayman + +0:44:30 - Teaching kids to code in morocco + +1:19:10 - Wrap up and goodbye + +## Links + +- [ActiveLabs](https://www.activelabs.ma/) +- [Code.org](https://code.org/) +- [Mindstorms ev3](https://education.lego.com/en-us/downloads/mindstorms-ev3/software#downloads) +- [Scratch](https://scratch.mit.edu/) + +## Prepared and Presented by + +- [Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0133.md b/episodes/episode-0133.md new file mode 100644 index 00000000..630d77ed --- /dev/null +++ b/episodes/episode-0133.md @@ -0,0 +1,60 @@ +--- +date: 2022-11-20 +duration: "2:00:56" +title: "SaaS for developers" +tags: ["saas", "entrepreneurship", "making"] +category: "dev" +youtube: https://www.youtube.com/watch?v=ELbXxyV2_KM +published: true +featured: false +--- + +In this episode of GeeksBlaBla, we discuss the Software As A Service business model going from how to build a SaaS product to how to launch it in the market. + +## Guests + +- [Djalal](https://twitter.com/enlamp) + +- [Moustaid Ayoub](https://twitter.com/mstdayoub) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:02 - What is SaaS (Software As A Service)? + +0:09:55 - What are the benefits of Saas ? + +0:17:56 - When not to use SaaS (as an end-user / as a maker)? + +0:35:20 - The future of SaaS in Morocco ? + +0:52:45 - Ideation and market validation in SaaS. + +1:02:00 - How to make the technical decision for a SaaS product? + +1:14:07 - Security and compliance for SaaS companies ? + +1:21:14 - Pre mature optimization and Over Engineering in SaaS + +1:28:30 - Saas Pricing Models + +1:37:00 - SaaS Marketing and Branding + +1:46:25 - How to manage Payment and invoicing without having a company + +1:49:30 - Is SaaS subscription fatigue a thing ? + +1:53:24 - 1:06:00 - Wrap up & Goodbye + +## Links + +- [40 SaaS Starter Kits & Boilerplates Based On Your Favourite Programming Language / Framework](https://www.indiehackers.com/post/40-saas-starter-kits-boilerplates-based-on-your-favourite-programming-language-framework-35387161e0) +- [#77 - No code / Low code GeeksBlaBla Episode](https://www.youtube.com/watch?v=I-km6iydoiw) +- [SaaS Pricing Calculator](https://indiebrands.io/saas-pricing-calculator) +- [How to get the first users for my SaaS, micro-SaaS, App?](https://twitter.com/mstdayoub/status/1593368786777915392) +- [Compare FastSpring and Paddle](https://www.g2.com/compare/fastspring-vs-paddle) + +## Prepared and Presented by + +[Mohammed Daoudi](https://www.linkedin.com/in/iduoad) diff --git a/episodes/episode-0134.md b/episodes/episode-0134.md new file mode 100644 index 00000000..67ef4cd7 --- /dev/null +++ b/episodes/episode-0134.md @@ -0,0 +1,55 @@ +--- +date: 2022-11-28 +duration: "1:53:21" +title: "AMA & Tech News #21" +tags: ["AMA", "geeksblabla"] +category: "ama" +youtube: https://www.youtube.com/watch?v=3Q2dAMGYPXg +published: true +featured: false +--- + +Tech News & AMA #20 with our community members Yousssouf, Badr, Mohammed, Mehdi and Abderrahim. During this episode, we discuss new AI tools for developers, FTX story and Crypto in Morocco, Big companies layoffs and the future of work, and much more. + +## Guests + +- [Abderrahim soubai](https://twitter.com/soub4i) + +- [Mohammed Daoudi](https://www.linkedin.com/in/iduoad) + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +- [Badr Bellaj](https://www.linkedin.com/in/bellajbadr/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:30 - Guests learning during last months + +0:18:00 - Reading search papers + +0:28:00 - Writing skills for developers + +0:36:00 - New AI tools for developers + +0:56:00 - FTX story and Crypto in Morocco + +1:20:00 - Big companies layoffs and the future of work + +1:41:00 - The importance of learning economics + +1:49:00 - warming up and goodbye + +## Links + +- [Github Copilot](https://github.com/features/copilot) +- [Github Student Pack](https://education.github.com/pack) +- [QuillBot](https://quillbot.com/) +- [LogSeq](https://logseq.com/) +- [Ivan Velichko Blog](https://iximiuz.com/en/) +- [Obytes Starter](https://starter.obytes.com/) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0135.md b/episodes/episode-0135.md new file mode 100644 index 00000000..2d96b9fd --- /dev/null +++ b/episodes/episode-0135.md @@ -0,0 +1,64 @@ +--- +date: 2023-01-22 +duration: "2:27:47" +title: "AI-Powered Tools & The Future Of Software" +tags: ["ChatGPT", "geeksblabla"] +category: "career" +youtube: https://www.youtube.com/watch?v=C3ScZBa3sIs +published: true +featured: true +--- + +In this episode of GeeksBlabla, we discuss new AI-powered tools such us ChatGPT, Github Copilot, QuillBot, and Midjourney. We discuss with our guests how those tools can transform the way we write code and build software. + +We also talk about how adapting to those new tools can help us write better code and save time as well as the challenges those tools can bring to the software industry. + +## Guests + +- [Abderrahim soubai](https://twitter.com/soub4i) + +- [Ismail EL Azizi](https://www.linkedin.com/in/ismail-el-azizi/) + +- [Ilyas Bakouch](https://www.linkedin.com/in/ilyasbakouch/) + +- [Abdelati ](https://twitter.com/kaizendae) + +- [Badr Bellaj](https://www.linkedin.com/in/bellajbadr/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:24 - Are we in the AI age finally & is AI going to replace developers? + +0:43:20 - New AI tools tour for developers and designers + +0:54:37 - Adopting new ai tools for moroccan developers, benefits and challenges + +1:13:00 - Using AI tools for beginners in learning programming + +1:30:00 - Using AI tools and the challenges for universities and schools in teaching programming + +1:42:00 - How to survive in the AI age as a developer + +1:56:00 - AI trends and building new products + +2:07:00 - QA + +2:12:50 - Abdelati's devinstyle podacast. + +2:15:00 - Faking expertise with AI tools + +2:17:00 - Guests predictions for the future of AI in the upcoming years + +2:26:00 - warming up and goodbye + +## Links + +- [Github Copilot](https://github.com/features/copilot) +- [Github Student Pack](https://education.github.com/pack) +- [Devsinstyle](https://anchor.fm/devsinstyle) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0136.md b/episodes/episode-0136.md new file mode 100644 index 00000000..dc2c257c --- /dev/null +++ b/episodes/episode-0136.md @@ -0,0 +1,57 @@ +--- +date: 2023-01-29 +duration: "1:45:21" +title: "AMA & Tech News #22" +tags: ["AMA", "geeksblabla"] +category: "ama" +youtube: https://www.youtube.com/watch?v=Rx0k9xZdTuE +published: true +featured: false +--- + +Tech News & AMA #22 with our community members Yousssouf, Safione, Abdellah and Anas. During this episode, we discuss Anas and Safione experience in the last months, State for JS and open source, and much more. + +## Guests + +- [Safoine El khabich ](https://www.linkedin.com/in/safoinme/) + +- [Anas Temouden](https://www.linkedin.com/in/anastemouden/) + +- [Abdullah Iraamane](https://www.linkedin.com/in/aairaamane/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:30 - Guests learning during last months + +0:23:00 - Tiny machine learning + +0:33:20 - How to be so good at what you are doing ? + +0:44:20 - MLOps and ML in production + +0:46:00 - Safoine experience with open source and finding a new internship + +1:02:00 - State of open source by Github + +1:23:33 - State of JS results + +1:29:30 - GeeksBabla Picks + +1:49:00 - warming up and goodbye + +## Links + +- [Four kinds for luck](https://www.wealest.com/articles/four-kinds-of-luck) +- [Github Student Pack](https://education.github.com/pack) +- [State of JS](https://2022.stateofjs.com/en-US/opinions/) +- [State of open source](https://octoverse.github.com/) +- [ivao.aero](https://ivao.aero/) +- [Pulumi](https://www.pulumi.com/) +- [A Farewell Letter, Gabriel Garcia Marquez](https://english-online.rs/materials/12249) +- [Writing a resume](https://www.linkedin.com/learning/writing-a-resume/entertainment-resumes-2?autoplay=true&resume=false) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0137.md b/episodes/episode-0137.md new file mode 100644 index 00000000..39e2e3d1 --- /dev/null +++ b/episodes/episode-0137.md @@ -0,0 +1,48 @@ +--- +date: 2023-02-12 +duration: "1:49:44" +title: "State of Dev in Morocco 2022" +tags: ["stateofdev", "geeksblabla"] +category: "career" +youtube: https://www.youtube.com/watch?v=bRi8IT5coHs +published: true +featured: false +--- + +In this episode, we discuss the state of dev in Morocco results. We talked about the results of the survey,jobs satisfaction, salaries, and community contribution, how they learn and level up, which tools theyโ€™re using, and what they want to learn next. + +## Guests + +- [Soubai Abderahim](https://twitter.com/soub4i) + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Otmane Fettal](https://twitter.com/ofettal) + +- [Omaima Khalil](https://twitter.com/BadQuinn3) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:30 - State overview + +0:14:50 - Profile + +0:48:00 - Learning and education in Morocco + +1:00:20 - Work and jobs satisfaction + +1:20:00 - Technology and tools + +1:37:40 - Community and contributions + +1:43:33 - warming up and goodbye + +## Links + +- [stateofdev.ma](https://stateofdev.ma/) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0138.md b/episodes/episode-0138.md new file mode 100644 index 00000000..8650e101 --- /dev/null +++ b/episodes/episode-0138.md @@ -0,0 +1,52 @@ +--- +date: 2023-02-19 +duration: "2:00:41" +title: "Developer Seniority" +tags: ["dev", "senior", "growth", "career"] +category: "career" +youtube: https://www.youtube.com/watch?v=rfArf1AnH0Y +published: true +featured: false +--- + +In this Episode , a roundtable discussion around the topic of Seniority in IT was discussed with Senior IT Guests from different Backgrounds. + +## Guests + +- [Djalal El Baz](https://twitter.com/enlamp) + +- [Adil Touati](https://twitter.com/adiltouati) + +- [Mohamed Ahdidou](https://www.linkedin.com/in/mohamedahdidou/) + +- [Oussama Zaki](https://www.linkedin.com/in/zakioussama) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:18 - Seniority Definition + +0:20:35 - Traits of Senior IT + +1:03:42 - How to evolve from Junior to Senior + +1:31:15 - Q/A + +1:51:00 - Geeksblabla Picks + +1:57:00 - Wraping up and Goodbye + +## Links + +- [Thinking Architecturally - Nate Schutta](https://www.youtube.com/watch?v=EfKT1dgsLFA) +- [The Queen's Gambit](https://www.netflix.com/ma-en/title/80234304) +- [Staff Engineer: Leadership beyond the management track](https://staffeng.com/book) +- [Sources of Power: How People Make Decisions](https://www.amazon.com/Sources-Power-People-Make-Decisions/dp/0262611465) +- [The Making of a Manager](https://www.amazon.com/Making-Manager-What-Everyone-Looks/dp/0735219567) +- [Modern Software Engineering: Doing What Works to Build Better Software Faster](https://www.amazon.com/Modern-Software-Engineering-Discipline-Development/dp/0137314914) +- [D'Kover - Darja Darja](https://open.spotify.com/track/6AqTrSMEkIN0jiRYWLnBlx) + +## Prepared and Presented by + +- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/episodes/episode-0139.md b/episodes/episode-0139.md new file mode 100644 index 00000000..9c478b42 --- /dev/null +++ b/episodes/episode-0139.md @@ -0,0 +1,53 @@ +--- +date: 2023-02-26 +duration: "1:46:34" +title: "Range: Why Generalists Triumph in a Specialized World" +tags: ["Book", "growth", "career"] +category: "book" +youtube: https://www.youtube.com/watch?v=E2ipt93liok +published: true +featured: false +--- + +In this Episode , a roundtable discussion around Davis Epstein's book, Range: Why generalists triumph in a Specialized world. + +## Guests + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) + +- [Oussama Zaki](https://www.linkedin.com/in/zakioussama) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:58 - General idea of the book and the author + +0:09:00 - Author starts with stories of 2 sports superstars โ€”Tiger Woods and Roger Federerโ€”who represent specialization vs range + +0:14:32 - Snapshot of Woods and Federer carrers start + +0:15:41 - Is Specialization Really Better? + +0:28:34 - Fast vs Slow learning + +0:49:48 - Q&A and Giveaway + +1:08:01 - Did the author explicitly state his message for each story, or linked them back to the central theme ? + +1:19:32 - Epsteinโ€™s advice: Donโ€™t feel behind and different figures of success + +1:46:30 - WrapUp & Goodbye + +## Links + +- [David Epstein TED talk: Why specializing early doesn't always mean career success](https://www.youtube.com/watch?v=B6lBtiQZSho) +- [Plan, Act, Impact](https://www.amazon.com/Plan-Act-Impact-Playbook-Perspective/dp/1544518897) +- [Peak: Secrets from the new science of expertise](https://www.amazon.com/Peak-Secrets-New-Science-Expertise/dp/1531864880) +- [The Pragmatic Programmer](https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X) + +## Prepared and Presented by + +- [Meriem zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0140.md b/episodes/episode-0140.md new file mode 100644 index 00000000..3fb8801a --- /dev/null +++ b/episodes/episode-0140.md @@ -0,0 +1,50 @@ +--- +date: 2023-03-05 +duration: "2:18:52" +title: "Tech Education in Morocco" +tags: ["education", "morocco"] +category: "career" +youtube: https://www.youtube.com/watch?v=3r7lXiS5Mqc +published: true +featured: false +--- + +In this Episode we discuss the current state of tech education in Morocco, Options available for students, challenges and opportunities in the field. + +## Guests + +- [Driss ALLAKI ](https://www.linkedin.com/in/driss-allaki-90801592) + +- [Hatim Mzah](https://www.linkedin.com/in/hatimmzah/) + +- [Hamza DEBBARH](https://www.linkedin.com/in/hamza-debbarh/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:08:00 - What the current state of tech education in Morocco, are we able to produce enough developers to meet the demand? + +0:18:20 - What is bootcamp ? and Bootcamps in Morocco. + +0:32:32 - 1337 and Youcode schools & their impact on the market and challenges they face. + +1:02:00 - Universities education in Morocco and the challenges they are facing. + +1:10:00 - English vs French in tech education and market. + +1:26:00 - Is "Prepa" years a waste of time for students who want to study computer science? + +1:34:01 - Students orientation and our role as developers to help them. + +1:51:32 - State of Dev results and the future of tech education in Morocco. + +2:08:00 - WrapUp & Goodbye + +## Links + +- [State Of Dev in Morocco](https://stateofdev.ma/#learning--education) + +## Prepared and Presented by + +- [Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0141.md b/episodes/episode-0141.md new file mode 100644 index 00000000..9b821b91 --- /dev/null +++ b/episodes/episode-0141.md @@ -0,0 +1,46 @@ +--- +date: 2023-03-12 +duration: "2:18:52" +title: "Mastering code review" +tags: ["code", "review"] +category: "career" +youtube: https://www.youtube.com/watch?v=Y9SVoU2RBNw +published: true +featured: false +--- + +In this Episode we discuss what is code review, why it is important, how to do it and how to master it and best practices to follow as author or reviewer. + +## Guests + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Soubai Abderahim](https://twitter.com/soub4i) + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:20 - What is code review and types of code review? + +0:17:00 - Why code review is important? + +0:28:20 - How documentation and automation tools can help you make the code review process easier? + +0:47:40 - Best practices for code review as author. + +1:07:00 - Best practices for code review as reviewer. + +1:35:00 - QA + +1:39:00 - WrapUp & Goodbye + +## Links + +- [Code review guidelines for humans](https://phauer.com/2018/code-review-guidelines/) + +## Prepared and Presented by + +- [Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0142.md b/episodes/episode-0142.md new file mode 100644 index 00000000..59769a70 --- /dev/null +++ b/episodes/episode-0142.md @@ -0,0 +1,68 @@ +--- +date: 2023-03-19 +duration: "2:28:43" +title: "Mental Health for developers" +tags: ["career"] +category: "career" +youtube: https://www.youtube.com/watch?v=urFGhkMFgTg +published: true +featured: false +--- + +In this Episode we discuss chelleges we face as IT workers in terms of Mental health, how to overcome the issues and solve them. + +## Guests + +- [Youssouf EL Azizi](https://elazizi.com) + +- [Anas Ait Baha](http://linkedin.com/in/aitbahaa/) + +- [Achraf Aamri](http://linkedin.com/in/achrafaamri/) + +- [Mohammed Daoudi](https://www.linkedin.com/in/iduoad) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:20 - First assumptions about mental Health. + +0:21:00 - Are developers provided with adequate resources to manage workload and stress, such as time management tools, stress reduction techniques, and support from colleagues or supervisors? + +0:42:20 - Are managers trained in recognizing signs of mental health issues and equipped to provide support and resources for those who may be struggling? + +0:56:10 - How to avoid negativity between your team members? + +1:03:00 - Is it good to build personal relationship with team members or stay professional? + +1:10:26 - Is there a way to split the job's way of thinking with normal life? + +1:20:20 - Exeripment new things, hobbies, and how to create a balance. + +1:26:00 - QA & Giveaway + +1:48:30 - The input of professional help. + +2:15:00 - Best practices. + +2:28:00 - WrapUp & Goodbye. + +## Links + +- [The Second Mountain: The Quest for a Moral Life By David Brooks](https://www.amazon.com/Second-Mountain-David-Brooks/dp/0812993268) + +- [The Mountain Is You: Transforming Self-Sabotage Into Self-Mastery](https://www.amazon.com/Mountain-You-Transforming-Self-Sabotage-Self-Mastery/dp/1949759229) + +- [Digital Minimalism](https://www.amazon.com/Digital-Minimalism-Choosing-Focused-Noisy/dp/0525536515) + +- [Why Has Nobody Told Me This Before?](https://www.amazon.com/Why-Nobody-Told-This-Before/dp/0063227932) + +- [So Good They Can't Ignore You](https://www.amazon.com/Good-They-Cant-Ignore-You/dp/1455509124) + +- [Mountains of the Mind](https://www.amazon.com/Mountains-Mind-Adventures-Reaching-Summit/dp/0375714065) + +- [ูˆููŠ ุฃู†ูุณูƒู…](https://www.youtube.com/playlist?list=PLsRtYZTCYnEdOlfBZP9RRtFzSzfjpI4nV) + +## Prepared and Presented by + +- [Meriem zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0143.md b/episodes/episode-0143.md new file mode 100644 index 00000000..7214f347 --- /dev/null +++ b/episodes/episode-0143.md @@ -0,0 +1,72 @@ +--- +date: 2023-03-26 +duration: "2:30:14" +title: "Tech News & AMA #23" +tags: ["ama", "ai", "chat-gpt"] +category: "ama" +youtube: https://www.youtube.com/watch?v=0x1a-7JK_co +published: true +featured: false +--- + +Tech News & AMA #22 with our community members Yousssouf, Kawtar, Abderahim, Otmane and Mohammed. During this episode, we discuss last tech news related to AI, GPT-3, and much more. + +## Guests + +- [Kawtar Choubari](https://www.linkedin.com/in/choubari/) + +- [Mohammed Daoudi](https://www.linkedin.com/in/iduoad) + +- [Soubai Abderahim](https://twitter.com/soub4i) + +- [Otmane Fettal](https://twitter.com/ofettal) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:00 - Guests learning during the last period and Productivity in Ramadan. + +0:42:50 - ChatGpt Plugins, how is will be used in the future? and the launch of Bard Google assistant. + +1:11:00 - How nervous vs excited our guests about AI revolution we are living in? + +1:27:00 - Spark of AGI with GPT-4. + +1:47:00 - QA + +2:10:00 - Future of education with AI revolution. + +2:23:00 - WrapUp & Goodbye. + +## Links + +- [T3](https://create.t3.gg/) + +- [FuturePedia](https://www.futurepedia.io/) + +- [Sam Altman: OpenAI CEO on GPT-4, ChatGPT, and the Future of AI | Lex Fridman Podcast](https://www.youtube.com/watch?v=L_Guz73e6fw&ab_channel=LexFridman) + +- [Bard](https://bard.google.com/) + +- [Authjs](https://authjs.dev/) + +- ['Sparks of AGI' - Bombshell GPT-4 Paper: Fully Read w/ 15 Revelations](https://www.youtube.com/watch?v=Mqg3aTGNxZ0&ab_channel=AIExplained) + +- [Menara Programme](https://manara.tech/our-program) + +- [Google Summer code](https://summerofcode.withgoogle.com/) + +- [Udacity scholarships](https://www.udacity.com/scholarships/suse-cloud-native-foundations-scholarship) + +- [Google Developer Student Clubs](https://developers.google.com/community/dsc) + +- [markprompt](https://markprompt.com) + +- [Embeddings open ai docs](https://platform.openai.com/docs/guides/embeddings) + +- [Humata](https://www.humata.ai/pricing) + +## Prepared and Presented by + +- [Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0144.md b/episodes/episode-0144.md new file mode 100644 index 00000000..b2d61c4d --- /dev/null +++ b/episodes/episode-0144.md @@ -0,0 +1,46 @@ +--- +date: 2023-04-02 +duration: "1:11:47" +title: "Networking Demystified ๐Ÿ‡ฒ๐Ÿ‡ฆ" +tags: ["dev", "networking"] +category: "dev" +youtube: https://www.youtube.com/watch?v=qF8fouovKro +published: true +featured: false +--- + +In this episode we discuss the fundamental concepts of computer networking and how learning them can make you a better software engineer. + +## Guests + +- [Yassine Moumen](https://www.linkedin.com/in/yassine-moumen) +- [Soubai Abderahim](https://twitter.com/soub4i) +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +## Notes + +0:00:00 - Introduction and welcoming + +0:02:40 - What is networking? + +0:05:25 - Where to start when learning networking? + +0:17:51 - What is TCP/IP and how does it works? + +0:31:52 - Network Security + +0:36:45 - What should a software engineer know about networking? + +0:48:00 - What are the tools and techinques used in networking? + +0:57:00 - Learning resources about networking + +1:08:45 - Geeksblabla picks + +## Links + +- [Beej's Guide to Network Programming](https://beej.us/guide/bgnet/) + +## Prepared and Presented by + +- [Mohammed Daoudi](https://www.linkedin.com/in/iduoad) diff --git a/episodes/episode-0145.md b/episodes/episode-0145.md new file mode 100644 index 00000000..0b017458 --- /dev/null +++ b/episodes/episode-0145.md @@ -0,0 +1,43 @@ +--- +date: 2023-05-07 +duration: "0:58:46" +title: "Developer Circles Morocco: A farewell" +tags: ["dev", "career"] +category: "career" +youtube: https://www.youtube.com/watch?v=YhAc4go0qTI +published: true +featured: false +--- + +In this episode we discuss the end of DevC program initiated by Meta, the impact it had on community growth in Morocco and still, leads and the many advantages of it. + +## Guests + +- [Mohammed Aboullaite](https://twitter.com/laytoun) +- [Hamza Makraz](https://web.facebook.com/MakrazHamza) + +## Notes + +0:00:00 - Introduction and welcoming + +0:02:40 - A bit of DevC pogram History + +0:10:01 - The many meetups held by devC Morocco + +0:20:50 - Community of DevC + +0:40:48 - In person meetups and organisation + +0:45:30 - Connexions made through DevC + +0:48:00 - Mentorship within DevC in offline meetups + +0:54:40 - Giveaway + +0:58:46 - Wrap up & Good bye + +## Links + +## Prepared and Presented by + +- [Meriem zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0146.md b/episodes/episode-0146.md new file mode 100644 index 00000000..13a459b4 --- /dev/null +++ b/episodes/episode-0146.md @@ -0,0 +1,63 @@ +--- +date: 2023-05-15 +duration: "2:06:31" +title: "Scaling Back: Amazon's Prime Video and the Return of the Monolith" +tags: + [ + "architecture", + "microservices", + "monolith", + "functions", + "lambda", + "deployement", + ] +category: "dev" +youtube: https://www.youtube.com/watch?v=GqUFdwXbVog +published: true +featured: false +--- + +In this episode of GeeksBlaBla, We discuss Amazon Prime Video's decision to revert a system from being deployed as functions and revert back to a "Monotlith" , this decision sparked countless discussions and controversies. + +## Guests + +- [Abdelfattah Sghiouar](https://twitter.com/boredabdel) + +- [Abderrahim Soubai Idrissi](https://twitter.com/soub4i) + +- [Djalal El Baz](https://twitter.com/enlamp) + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:00 - Definitions + +0:18:30 - Monoliths vs Microservices + +0:47:00 - Discussing the Implemented Solution of Amazon Prime Video + +1:10:00 - Discussing from Personal experiences the challenges of all 3 approaches + +1:37:00 - Geeksblabla Picks + +1:47:00 - Q/A ? + +1:59:50 - Wrap up & Goodbye + +## Links + +- [The Good State: On the Principles of Democracy](https://www.amazon.com/Good-State-Principles-Democracy/dp/1786077183) +- [Service Weaver](https://serviceweaver.dev/) +- [So many Bad Takes - Opinion about Prime Video Blog](https://adrianco.medium.com/so-many-bad-takes-what-is-there-to-learn-from-the-prime-video-microservices-to-monolith-story-4bd0970423d4) +- [101 Essays That Will Change The Way You Think](https://www.amazon.com/Essays-That-Will-Change-Think/dp/1945796065) +- [Factfulness: Ten Reasons We're Wrong About the World--and Why Things Are Better Than You Think](https://www.amazon.com/Factfulness-Reasons-World-Things-Better/dp/1250107814) +- [21 Lessons for the 21st Century](https://www.amazon.com/Lessons-21st-Century-Yuval-Harari/dp/0525512179) + +## Prepared and Presented by + +[Otmane FETTAL](https://twitter.com/ofettal) diff --git a/episodes/episode-0147.md b/episodes/episode-0147.md new file mode 100644 index 00000000..9b8dbed6 --- /dev/null +++ b/episodes/episode-0147.md @@ -0,0 +1,61 @@ +--- +date: 2023-05-21 +duration: "2:47:16" +title: "State of linux" +tags: ["linux", "containers", "docker"] +category: "dev" +youtube: https://www.youtube.com/watch?v=fHqwAE8qFSM +published: true +featured: false +--- + +In this episode of GeeksBlaBla, We discuss the state of Linux, why Linux is important and how it does work. + +## Guests + +- [Oussama Jamal](https://ma.linkedin.com/in/jamaloussama/en) + +- [Abderrahim Soubai Idrissi](https://twitter.com/soub4i) + +- [Otmane Fettal](https://twitter.com/ofettal) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:10 - What is a Linux ? + +0:10:40 - Linux History + +0:29:00 - How linux works ? + +0:34:10 - Difference between Linux and other operating systems + +0:43:10 - Difference between Linux distributions + +1:16:00 - Why is Linux is used in the Server side (Data Centers, Cloud...) + +1:25:30 - Linux Virtualization + +1:41:00 - Linux Containers + +1:52:27 - Linux Security + +2:09:35 - Giveaway + +2:10:45 - As a developer should I use Linux? and why? + +2:32:10 - How to learn Linux? + +2:42:50 - GeeksBlaBla picks + +## Links + +- [LPIC](https://www.lpi.org/our-certifications/lpic-1-overview) +- [Linux Foundation Certification](https://training.linuxfoundation.org/training/introduction-to-linux/) +- [The Linux programming interface](https://man7.org/tlpi/) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) +- [Mohammed Daoudi](https://www.linkedin.com/in/iduoad/) diff --git a/episodes/episode-0148.md b/episodes/episode-0148.md new file mode 100644 index 00000000..fc771833 --- /dev/null +++ b/episodes/episode-0148.md @@ -0,0 +1,60 @@ +--- +date: 2023-05-28 +duration: "2:30:14" +title: "Tech News & AMA #24" +tags: ["ama", "google-io", "microsft-build", "angular"] +category: "ama" +youtube: https://www.youtube.com/watch?v=CvsVn2mulwk +published: true +featured: false +--- + +Our community members Siham, Chihab, Otmane, and Youssouf joined us for Tech News & AMA #24 episode. We discussed the latest tech news, including Google I/O, AI, and Microsoft Build. + +## Guests + +[Chihab Otmani](https://chihab.dev) + +[Siham Ben Daia](https://www.mindhunter.dev/) + +- [Otmane Fettal](https://twitter.com/ofettal) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:00 - Guests learning during the last period. + +0:32:00 - What is new in Angular 16? + +0:47:00 - Dropping out of school and self-learning. + +1:04:00 - Google I/O Updates. + +1:26:00 - Microsoft Build Updates. + +1:48:00 - DevoxxMa CFP. + +1:52:00 - QA + +2:26:00 - WrapUp & Goodbye. + +## Links + +- [AppJs Conf](https://www.youtube.com/@SoftwareMansion) + +- [Google I/O](https://events.google.com/io/) + +- [Microsoft Build](https://mybuild.microsoft.com/) + +- [State of GPT](https://www.youtube.com/watch?v=bZQun8Y4L2A) + +- [DevoxxMa CFP](https://dvma23.cfp.dev/) + +- [iLyas in the cloud](https://www.youtube.com/@iLyasInTheCloud) + +- [7 Blogs I enjoy reading as a React Native developer.](https://www.mindhunter.dev/posts/react-native-blogs) + +## Prepared and Presented by + +- [Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0149.md b/episodes/episode-0149.md new file mode 100644 index 00000000..418fc52d --- /dev/null +++ b/episodes/episode-0149.md @@ -0,0 +1,82 @@ +--- +date: 2023-06-04 +duration: "1:51:43" +title: "Building Smart Apps with LLMs" +tags: ["LLMs", "ChatGPT", "langChain"] +category: "dev" +youtube: https://www.youtube.com/watch?v=u5-GEYiKUAg +published: true +featured: false +--- + +In this episode, we discuss Large Language Models (LLMs): how everything started, how do they work, and how to use frameworks such as LangChain to develop intelligent applications. + +## Guests + +[Taha Bouhsine](https://www.linkedin.com/in/tahabsn) + +[Sifeddine Nahhas](https://www.linkedin.com/in/sifeddine-nahhas/) + +[Nouamane Tazi](https://www.linkedin.com/in/nouamanetazi/) + +## Notes + +0:00:00 - Introduction and Welcome Notes + +0:05:33 - History of LLMs + +0:12:00 - The role of transformers in LLMs + +0:21:00 - How LLMs differ from other AI methods. + +0:26:00 - Emergent Abilities of Large Language Models + +0:42:00 - HuggingFace and the role or open-source in LLMs development + +0:47:00 - Open source LLMs. + +1:04:00 - Using LLMs to build Smart Apps. + +1:39:00 - Advice for Software Engineers with no AI background to get started with LLMs. + +1:46:00 - Conclusion and Goodbye. + +## Links + +- [The Illustrated Transformer](http://jalammar.github.io/illustrated-transformer/) + +- [Transformers](https://docs.google.com/presentation/d/1ZXFIhYczos679r70Yu8vV9uO6B1J0ztzeDxbnBxD1S0/mobilepresent?slide=id.g31364026ad_3_2) + +- [The Annotated Transformer](https://nlp.seas.harvard.edu/2018/04/03/attention.html) + +- [State of GPT](https://www.youtube.com/watch?v=bZQun8Y4L2A) + +- [Sparks of AGI](https://www.youtube.com/watch?v=Mqg3aTGNxZ0) + +- [MiniGPT-4](https://github.com/Vision-CAIR/MiniGPT-4) + +- [H2O LLM Studio](https://github.com/h2oai/h2o-llmstudio) + +- [HuggingFace](https://huggingface.co/) + +- [GPT4All](https://github.com/nomic-ai/gpt4all) + +- [llama](https://github.com/facebookresearch/llama/pull/73) + +- [LangChain](https://python.langchain.com/en/latest/) + +- [Embracing AI-Powered Applications: A Developerโ€™s Journey with LangChain](https://www.obytes.com/blog/langchain-guide) + +- [OpenAI cookbook](https://github.com/openai/openai-cookbook) + +- [Jailbreak Chat](https://www.jailbreakchat.com/) + +- [MathsMaroc](https://twitter.com/MathsMaroc/status/1657805724766830594) + +- [Prompt Engineering](https://github.com/brexhq/prompt-engineering) + +- [Emergent Abilities of Large Language Models](https://www.assemblyai.com/blog/emergent-abilities-of-large-language-models/) + +## Prepared and Presented by + +- [Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0150.md b/episodes/episode-0150.md new file mode 100644 index 00000000..bb3fcdf3 --- /dev/null +++ b/episodes/episode-0150.md @@ -0,0 +1,84 @@ +--- +date: 2023-06-18 +duration: "1:57:44" +title: "The Art of Cybersecurity" +tags: ["career", "cybersecurity"] +category: "dev" +youtube: https://www.youtube.com/watch?v=XNrNHn15BTk +published: true +featured: false +--- + +In this episode, we discuss the state of Cybersecurity in Morocco, the challenges and opportunities that this field faces, how to get started and most important resources that help to learn it. + +## Guests + +[Ahmed Lekssays](https://www.twitter.com/Lekssays) + +[Othmane Menouar](https://www.linkedin.com/in/othmane-menouar-a11903128/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:10:28 - The current state of cybersecurity in Morocco? Are there any unique challenges or opportunities specific to the country + +0:27:07 - Examples or case studies of cyber attacks or breaches that have occurred in Morocco, What were the lessons learned from those incidents? + +0:37:56 - Laws and regulations, fines for data exposure + +0:47:31 - What can Morocco do to improve in terms of preventing attacks and breaches in other systems + +1:03:00 - Is Cybersecurity in Morocco or/and Africa promising ? why ? + +1:06:04 - from software to cybesecurity, what to learn ? + +1:15:10 - Is Maths mandatory in cybersecurity field ? + +1:19:42 - Books recommandations from guests + +1:24:09 - Latest news on cybersecurity and cryptography + +1:32:00 - Giveaway! + +1:37:06 - The future of cybersecurity in Morocco, Are there any exciting developments or initiatives on the horizon? + +1:47:00 - Certifications Vs Diplomas in cybersecurity + +1:52:00 - Advices from guests + +1:57:44 - Conclusion and goodbye. + +## Links + +- [Awesome Security repo](https://github.com/sbilly/awesome-security) + +- [sANS roadmap](https://www.sans.org/cyber-security-skills-roadmap/) + +- [Google career certificate - Cybersecurity](https://grow.google/intl/europe/google-career-certificates/cybersecurity) + +- [Hack The Box](https://www.hackthebox.com/) + +- [CS50](https://pll.harvard.edu/course/cs50-introduction-computer-science) + +- [Ethereum Book](https://github.com/ethereumbook/ethereumbook) + +- [Capture The Flag (CTF)](https://ctftime.org/) + +- [Try Hack Me](https://tryhackme.com/) + +- [Direction gรฉnรฉrale de la sรฉcuritรฉ des systรจmes d'information](https://www.dgssi.gov.ma/fr) + +- [The ACM Conference on Computer and Communications Security](https://www.sigsac.org/ccs/CCS2023/) + +- [The Advanced Computing Systems Association](https://www.usenix.org/) + +- [Network and Distributed System Security](https://www.ndss-symposium.org/) + +- [Symposium on Security and Privacy](https://sp2023.ieee-security.org/) + +- [Practical Malware Analysis](https://www.amazon.com/Practical-Malware-Analysis-Hands-Dissecting/dp/1593272901) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0151.md b/episodes/episode-0151.md new file mode 100644 index 00000000..71a8ebe8 --- /dev/null +++ b/episodes/episode-0151.md @@ -0,0 +1,54 @@ +--- +date: 2023-06-25 +duration: "1:56:07" +title: "Tech New & AMA #25" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=s7hn-CtjSj0 +published: true +featured: false +--- + +Tech News & AMA #25 with our community members Mehdi, Zak and Abderrahim. During this episode, we discuss last tech news related ConFig2023 event by Figma, Apple keynote, Mehdi's initiative and much more. + +## Guests + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +- [Zak Elfassi](https://twitter.com/zakelfassi) + +- [Soubai Abderahim](https://twitter.com/soub4i) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:21 - Config 2023, what's new and what developers benefit from the updates + +0:18:07 - Mehdi's initiative : The Missing Semester + +0:35:04 - Are people ready to pay for information ? + +0:50:31 - Information economy in Morocco + +1:00:50 - Apple keynote: future of AR/VR + +1:24:06 - Stackoverflow survey 2023 + +1:32:00 - Giveaway! and guests special giveaways + +1:56:04 - Conclusion and goodbye. + +## Links + +- [ConFig 2023](https://config.figma.com/) + +- [The Missing Semester of your CS Education](https://missingsemester.io/) + +- [StackOverflow Survey 2023](https://survey.stackoverflow.co/2023/) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Otmane Fettal](https://twitter.com/ofettal) diff --git a/episodes/episode-0152.md b/episodes/episode-0152.md new file mode 100644 index 00000000..33daba26 --- /dev/null +++ b/episodes/episode-0152.md @@ -0,0 +1,66 @@ +--- +date: 2023-07-09 +duration: "02:01:08" +title: "The State of AR and VR" +tags: ["AR", "VR", "XR"] +category: "dev" +youtube: https://www.youtube.com/watch?v=Ey8itgwTQVs +published: true +featured: false +--- + +In this episode, we discuss the state of AR and VR, the challenges and opportunities that this field faces, how to get started and most important resources that help to learn it. + +## Guests + +[Omar Guendeli](https://www.linkedin.com/in/omar-guendeli-70a57862) + +[Abdellah ALAOUI MDARHRI](https://www.linkedin.com/in/abdellah-alaoui-mdarhri-45456734/) + +[Houssam Eddine REHHALI](https://www.linkedin.com/in/houssam-eddine-rehhali/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:00 - The state of AR and VR โ€” is it a promising field or just hype? + +0:15:10 - why meta is investing heavily in AR and VR ? + +0:23:00 - Apple's vision of AR and VR with the new headset + +0:37:00 - AR and VR hardware and software challenges + +0:45:00 - B to B use cases of AR and VR + +1:10:00 - Start learning AR and VR and how having a background in video games helps + +1:23:04 - Resources to learn AR and VR + +1:31:10 - Jobs opportunities in AR and VR in Morocco and outside + +1:41:20 - The future of AR and VR + +1:51:00 - GeeksBlabla Picks + +1:58:10 - Conclusion and goodbye. + +## Links + +- [Realite Augmentee 3d](https://simplon.co/formation/developpeur-euse-realite-virtuelle-realite-augmentee-3d-temps-reel/990) + +- [Unity learn](https://learn.unity.com/) + +- [Learn how to learn](https://geeksblabla.io/blablas/learning-how-to-learn) + +- [Unreal engine](https://ue4resources.com/) + +- [XR bazaar](https://xrbazaar.co/) + +- [How Two Guys Created an Empire and Transformed Pop Culture](https://www.amazon.com/Masters-Doom-Created-Transformed-Culture/dp/0812972155) + +- [Moroccan Gamedev Community [DAGA]](https://www.facebook.com/groups/670735856666271/?_rdc=2&_rdr) + +## Prepared and Presented by + +- [Youssouf EL AZIZI](https://elazizi.com) diff --git a/episodes/episode-0153.md b/episodes/episode-0153.md new file mode 100644 index 00000000..716e17d4 --- /dev/null +++ b/episodes/episode-0153.md @@ -0,0 +1,56 @@ +--- +date: 2023-07-23 +duration: "01:38:49" +title: "Google Cloud Platform" +tags: ["Google Cloud", "Cloud", "GCP"] +category: "dev" +youtube: https://www.youtube.com/watch?v=EzMHiEcZj7M +published: true +featured: false +--- + +In this episode, we will discuss the Google Cloud Platform, its various services, how it compares to other cloud providers, and how to get started. + +## Guests + +- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) + +- [EL Mehdi khayati](https://www.linkedin.com/in/elmehdielkhayati/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:02:30 - What is Cloud and Google Cloud Platform? + +0:05:00 - How google cloud is different from other cloud providers? + +0:11:40 - Google Cloud Platform strengths + +0:16:00 - How to get started with Google Cloud Platform? + +0:19:00 - Google Cloud Platform compute services + +0:44:00 - Google Kubernetes Engine (GKE) + +0:50:00 - Google Cloud Platform database and storage services + +1:07:00 - Google Cloud Platform security and how the services help to secure your infrastructure ? + +1:14:00 - Q/A + +1:22:30 - Good resources to learn Google Cloud Platform + +1:28:00 - Google Cloud Platform with DATA + +1:30:30 - Google Cloud in Morocco + +1:38:10 - Conclusion and goodbye. + +## Links + +- [Google Cloud Platform](https://cloud.google.com/) + +## Prepared and Presented by + +- [Mohammed Daoudi](https://www.linkedin.com/in/iduoad) diff --git a/episodes/episode-0154.md b/episodes/episode-0154.md new file mode 100644 index 00000000..faa9d3d5 --- /dev/null +++ b/episodes/episode-0154.md @@ -0,0 +1,52 @@ +--- +date: 2023-07-30 +duration: "2:28:48" +title: "Tech New & AMA #26" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=2FCwniKc2J4 +published: true +featured: false +--- + +Tech News & AMA #26 with our community members Mehdi, Abdul, Abderahim, and Youssouf. During this episode, we discuss the whodesign.ma initiative, and we answer audience questions about learning, switching technologies, frameworks, and much more. + +## Guests + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +- [Abdul Benbrahim](https://www.linkedin.com/in/abdulbenbrahim/) + +- [Soubai Abderahim](https://twitter.com/soub4i) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:40 - Our guests were learning during the last period and facing challenges in learning new things. + +0:11:07 - What technology expert means? + +0:16:04 - Whodesign.ma initiative and what's the goal? + +0:21:00 - Mentoring and coaching students' initiative, experiences, and challenges. + +0:37:00 - Perfection vs delivery and how to balance between them. + +1:06:06 - QA + +1:23:00 - Missing semester program + +1:35:04 - Switching technologies and frameworks. + +1:45:00 - QAs + +1:27:00 - Conclusion and goodbye. + +## Links + +- [Whodesign.ma](https://Whodesign.ma) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0155.md b/episodes/episode-0155.md new file mode 100644 index 00000000..df5c5962 --- /dev/null +++ b/episodes/episode-0155.md @@ -0,0 +1,52 @@ +--- +date: 2023-09-03 +duration: "1:29:19" +title: "Back to School" +tags: ["career", "learning", "student life"] +category: "career" +youtube: https://www.youtube.com/watch?v=Q688u-Y44tU +published: true +featured: false +--- + +In This episode, we discuss the Moroccan IT student's life, How to make the most of your academic years, and how to prepare for the job market. + +## Guests + +- [Kawtar Choubari](https://www.linkedin.com/in/choubari/) + +- [Mahmoud Fettal](https://twitter.com/mahmoudfettal) + +- [Pr. Driss ALLAKI](https://www.linkedin.com/in/driss-allaki-90801592/) + +- [Soubai Abderahim](https://twitter.com/soub4i) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:04 - What is your ultimate goal for an academic year as an IT student? + +0:13:00 - How to deal with stress, and how to approach the generalist nature of your curriculum? + +0:38:50 - How does participating in events and watching content online affect you as a student? + +0:53:30 - How to prepare for internships in your first year! + +0:37:00 - Perfection vs delivery and how to balance between them. + +1:09:06 - Question: How to choose a technology to learn? + +1:14:06 - How to deal with imposter syndrome as a student? + +1:19:36 - Conclusion and goodbye. + +## Links + +- [Software Architecture Recommended by Pr. Driss](https://www.developertoarchitect.com/) +- [IT internship in France by Kawtar](https://twitter.com/choubari_/status/1698426197141598283?s=20) +- [Mohammed ElYoussoufi's Channel Recommended by Mahmoud](https://www.youtube.com/@mohamedYoussfi) + +## Prepared and Presented by + +- [Abdelati El ASRI](https://twitter.com/kaizendae) diff --git a/episodes/episode-0156.md b/episodes/episode-0156.md new file mode 100644 index 00000000..1b322343 --- /dev/null +++ b/episodes/episode-0156.md @@ -0,0 +1,72 @@ +--- +date: 2023-09-24 +duration: "2:52:38" +title: "How to be a -10x developer " +tags: ["career", "learning", "productivity"] +category: "career" +youtube: https://www.youtube.com/watch?v=GFqhbHDGoX0 +published: true +featured: false +--- + +In this episode, we discuss a famous article titled "How to Be a 10x Developer" and share our thoughts and experiences on the topic. + +## Guests + +- [Mahmoud Fettal](https://twitter.com/mahmoudfettal) + +- [Soubai Abderahim](https://twitter.com/soub4i) + +- [Badr Bellaj](https://www.linkedin.com/in/bellajbadr/) + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +- [Abdelati El ASRI](https://twitter.com/kaizendae) + +## Notes + +00:00:00 - Introduction and welcome. + +00:05:00 - What is an average developer? + +00:22:00 - Definition of a 10x developer and how to identify them. + +00:41:00 - Guest's skill level ranging from -10x to 10x. + +00:55:30 - Neutralize the productivity of a 10x developer. + +01:08:00 - Create 400 hours of busy work. + +01:14:06 - Create 400 hours of burnout/takeover. + +01:17:06 - Waste 10 weeks' wages on cloud costs. + +01:32:36 - Add 400 hours of compilation/build time. + +01:40:20 - Write unnecessary tests. + +01:47:40 - Lose 10 weeks' wages due to dissatisfied customers. + +01:56:30 - Hire 10 0x developers. + +02:10:00 - How AI tools can assist you in becoming a 10x developer. + +02:17:00 - How to optimize your communication with your laptop. + +02:33:00 - Q&A. + +02:47:20 - Conclusion and farewell. + +## Links + +- [How to be a -10x Engineer](https://taylor.town/-10x) +- [Yes, you can measure software developer productivity](https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/yes-you-can-measure-software-developer-productivity) +- [Measuring developer productivity? A response to McKinsey, Part 2](https://newsletter.pragmaticengineer.com/p/measuring-developer-productivity-part-2) + +- [Clean Code](https://geeksblabla.io/blablas/clean-code) + +- [Raycast](https://www.raycast.com/) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0157.md b/episodes/episode-0157.md new file mode 100644 index 00000000..b9c41f03 --- /dev/null +++ b/episodes/episode-0157.md @@ -0,0 +1,62 @@ +--- +date: 2023-10-01 +duration: "2:10:40" +title: "Tech New & AMA #27" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=WKDrPojAehE +published: true +featured: false +--- + +Tech News & AMA #26 with our community members Ilias, Nouamane, Faisal, and Youssouf. During this episode, we discuss the next Devoxx Morocco conference, Hacktoberfest, AI, bun and much more. + +## Guests + +- [Faissal Boutaounte](https://twitter.com/bfaissal) + +- [Ilias Yahia](https://twitter.com/ilias_yahia) + +- [Nouamane Tazi](https://www.linkedin.com/in/nouamanetazi/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:00 - Quick introduction about DevoxxMA + +0:21:30 - DevoxxMa theme for this year and community programme + +0:46:00 - AI news, Amazon Alexa AI, one year after GPT-3, Mistral and more + +1:45:00 - Hacktoberfest and how to contribute to open source + +1:56:00 - Bun as new JS runtime + +1:06:06 - QA + +1:23:00 - Missing semester program + +1:35:04 - Switching technologies and frameworks. + +1:45:00 - QAs + +1:27:00 - Conclusion and goodbye. + +## Links + +- [Devoxx.ma](https://devoxx.ma) +- [Hacktoberfest](https://hacktoberfest.com/) +- [Gandalf reveal](https://gandalf.lakera.ai/) +- [State of GPT](https://www.youtube.com/watch?v=bZQun8Y4L2A) +- [GPT Riddle](https://gptriddle.com/welcome) +- [Attacking LLM - Prompt Injection](https://www.youtube.com/watch?v=Sv5OLj2nVAQ) +- [Mistral 7B](https://mistral.ai/news/announcing-mistral-7b/) +- [AI Playground](https://sdk.vercel.ai/) +- [Arena Chat](https://chat.lmsys.org/?arena) +- [HacktoberFest & Open source Geeksblabla Episode](https://geeksblabla.io/blablas/hacktoberfest-open-source) +- [State of CSS](https://stateofcss.com/en-US) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0158.md b/episodes/episode-0158.md new file mode 100644 index 00000000..8b7dd5a6 --- /dev/null +++ b/episodes/episode-0158.md @@ -0,0 +1,61 @@ +--- +date: 2023-10-22 +duration: "2:00:39" +title: "L3arbi ChatBot: A Technical deep dive" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=hTV90OlKlOg +published: true +featured: false +--- + +In this episode we discuss more of L3arbi, that was resented by the DevoxxMA team at the vent, from a technical point of view with Nouamane and Faissal. + +## Guests + +- [Faissal Boutaounte](https://twitter.com/bfaissal) + +- [Nouamane Tazi](https://www.linkedin.com/in/nouamanetazi/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:01:21 - Who/what is l3arbi? + +0:16:24 - Is there possibilities that L3arbi will learn other arabic dialects other than darija? + +0:26:35 - Challenges of audio transcription + +0:27:31 - Live demo of L3arbi + +0:32:56 - Data training and Whisper and how many hours of darija data is used ? + +0:34:30 - Format of data that is used for training, and architecture of web application presented in DevoxxMA + +0:39:37 - The use case of DevoxxMA + +0:44:30 - Fine-tuning of an LLM, models and details + +0:56:20 - Evaluation set for different dialects per regions in morocco + +1:03:31 - Did you use manual transcription for the audio sets ? + +1:12:09 - The future plans of data sources for L3arbi solution. + +1:15:12 - Plans to open-source? Are there APIs available for developers to extend its functionality? + +1:25:00 - QA & Giveaway + +1:59:40 - Conclusion and goodbye. + +## Links + +- [Huggingface](https://huggingface.co/spaces/coqui/xtts) +- [Translation demo for/from any language](https://huggingface.co/spaces/Geonmo/nllb-translation-demo) +- [Common Voice](https://commonvoice.mozilla.org/) +- [Whisper API](https://whisperapi.com/) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0159.md b/episodes/episode-0159.md new file mode 100644 index 00000000..3da91129 --- /dev/null +++ b/episodes/episode-0159.md @@ -0,0 +1,54 @@ +--- +date: 2023-10-28 +duration: "2:05:41" +title: "It Depends: The Art of decision-making" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=2fBzXrAECRU +published: true +featured: false +--- + +In this episode of GeeksBlabla, we discuss with our guests the art of decision-making, how to make better decisions, and how to deal with the consequences of our decisions. + +## Guests + +- [Meriem Zaid](https://twitter.com/_iMeriem) +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) +- [Soubai Abderahim](https://twitter.com/soub4i) +- [Otmane Fettal](https://twitter.com/ofettal) +- [Djalal](https://twitter.com/enlamp) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:50 - Why is "it depends" such a common response in the IT industry? + +0:16:24 - Anecdotes and examples of "it depends" in the IT industry + +0:41:17 - The importance of transparency in the process of decision making + +0:55:40 - What are the risks associated with one-size-fits-all answers in IT? + +1:03:20 - Experimentation budgets are essential to better decisions + +1:12:30 - What are some of your strategies to make better decisions? + +1:42:30 - Why it's hard to decide on paying technical debt? + +1:59:56 - Book recommendations, Closing and Goodbye + +## Books + +- Algorithms to live by. +- Thinking, Fast and Slow. +- Build: An Unorthodox Guide to Making Things Worth Making +- The Decision Book: Fifty Models for Strategic Thinking +- Linux System Programming: Talking Directly to the Kernel and C Library + +## Links + +## Prepared and Presented by + +- [Abdelati El ASRI](https://twitter.com/kaizendae) diff --git a/episodes/episode-0160.md b/episodes/episode-0160.md new file mode 100644 index 00000000..88eb0132 --- /dev/null +++ b/episodes/episode-0160.md @@ -0,0 +1,74 @@ +--- +date: 2023-11-05 +duration: "2:19:34" +title: "Java in 2023" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=VkJtIaTGRsk +published: true +featured: false +--- + +In this episode we discuss the Java updates and features in 2023, with Aicha Laafia, Hamza Belmellouki, Ossama Ismaili, Adnane Belmadiaf, Marouane gazayni, and Mohammed Aboullaite. + +## Guests + +- [Aicha Laafia](https://twitter.com/AichaLaafia) + +- [Hamza Belmellouki](https://www.linkedin.com/in/hamzabelmellouki/) + +- [Ossama Ismaili](https://x.com/ossamaismaili) + +- [Adnane Belmadiaf](https://www.facebook.com/AdnaneBelmadiaf) + +- [Marouane gazayni](https://twitter.com/mgazanayi) + +- [Ibrahim Mestadi](https://x.com/ibrahimmestadi) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:00 - What is 6 month realse? and the favorite feature on latest java version (java 11 to 21) + +0:15:45 - Is Java Still Relevant In 2023? + +0:25:00 - What's/Why the Pattern Matching + +0:32:00 - Record and how it helps the developers? + +0:45:00 - The project Loom and the Virtual Threads + +0:58:00 - The project Valhala + +1:08:00 - The project Panama + +1:10:00 - The project Leyden + +1:14:35 - What are the limitations of Java in the serverless? + +1:16:00 - Java benchmark and comparison with other languages + +1:18:00 - Giveaway + +1:20:00 - Answer the questions from the comments + +1:33:00 - Is Java slow and/or Verbose? + +1:35:00 - Migration from old to new Java versions tips, feedback and recommendations + +1:47:00 - Answer the questions from the comments + +2:12:00 - Recommendations for new Java devs + +2:18:00 - Conclusion and goodbye. + +## Links + +- [Languages comparison](https://thenewstack.io/which-programming-languages-use-the-least-electricity/) + +- [Picocli](https://picocli.info/) + +## Prepared and Presented by + +- [Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/episodes/episode-0161.md b/episodes/episode-0161.md new file mode 100644 index 00000000..ea0da55e --- /dev/null +++ b/episodes/episode-0161.md @@ -0,0 +1,82 @@ +--- +date: 2023-11-12 +duration: "3:20:22" +title: "JavaScript in 2023" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=BI9C_uH2Y2E +published: true +featured: false +--- + +In this episode, we discuss the JavaScript updates and features in 2023, with Abderrahim Soubai Idrissi, Ayoub Alouane, Wassim CHEGHAM, Mouad Sidqi, Niima Chigr, and Youssouf El Azizi. + +## Guests + +- [Abderrahim Soubai Idrissi](https://twitter.com/soub4i) + +- [Ayoub Alouane](https://twitter.com/alouane_med) + +- [Wassim CHEGHAM](https://twitter.com/manekinekko) + +- [Mouad Sidqi](https://twitter.com/vmod__) + +- [Niima Chigr](https://www.linkedin.com/in/niima-chigr) + +## Notes + +0:00:00 - Introduction and welcoming + +0:06:00 - Is Typescript the new Javascript? + +0:10:00 - Which is better for starting a new project in 2023-2024: JavaScript or TypeScript? + +0:19:00 - Are we making the front-end development too complex with too many concepts? + +0:32:00 - Walking through some of the most important concepts in frontend: Hydration, islands, resumability. + +1:16:00 - Are compilers the new frameworks? + +1:26:00 - What are signals? + +1:33:00 - Answer the questions from the comments + +1:56:00 - What do you think about Micro-frontend? + +2:03:00 - Answer the questions from the comments + +2:14:00 - How do you stay updated with Javascript trends? + +2:23:00 - Frameworks updates: Angualar, React, Qwik, Next ... + +2:49:00 - Bun + +2:55:00 - JavaScript future + +3:10:00 - Geeksblabla Picks + +3:17:00 - Conclusion and goodbye. + +## Links + +- [State Of Dev](https://stateofdev.ma/) + +- [Frontend Masters](https://frontendmasters.com/) + +- [Hackernoon](https://hackernoon.com/) + +- [Hackertab](https://hackertab.dev/) + +- [This week in react](https://thisweekinreact.com/) + +- [Bytecode alliance](https://github.com/bytecodealliance) + +- [JCO](https://github.com/bytecodealliance/jco) + +- [Crazy startup](https://crazystartup.studio/) + +- [Overreacted](https://overreacted.io/) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0162.md b/episodes/episode-0162.md new file mode 100644 index 00000000..5f077270 --- /dev/null +++ b/episodes/episode-0162.md @@ -0,0 +1,84 @@ +--- +date: 2023-11-19 +duration: "3:54:50" +title: "PHP in 2023" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=T2caZNK6jhE +published: true +featured: false +--- + +In this episode, we discuss the latest PHP features in 2023, frameworks, and much more with our community friends. + +## Guests + +- [Imad Zairig](https://twitter.com/zairigimad) + +- [Mouhcine MAHFOUD](https://twitter.com/MouhcineMahfoud) + +- [Issam Khadiri](https://www.linkedin.com/in/issam-khadiri-30a31659/) + +- [Achraf Aamri](linkedin.com/in/achrafaamri/) + +- [Mohamed Boukhlif](https://twitter.com/b0ndif) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:00 - Is PHP Dead? + +0:11:45 - Is PHP only for building MVPs? + +0:16:00 - PHP before 5.6 and after it + +0:24:00 - Is the PHP problem that PHP isn't supported by a big company, like many other languages? + +0:32:00 - The PHP missing version 6 + +0:35:00 - PHP 7: feature(s) you liked in this update + +0:45:00 - Do the PHP offers always have low salaries? + +0:55:00 - PHP 8: JIT and feature(s) you liked in this update + +1:04:00 - The PHP FIG + +1:14:00 - PHP RCFs + +1:23:42 - Launch of ุชุฌุฑุจุฉ.gzip + +1:24:25 - The PHP Foundation + +1:31:00 - PHP Frameworks + +2:21:00 - WordPress + +2:35:00 - Security + +3:10:00 - Answer the questions from the comments + +3:40:00 - Giveaway + +3:41:00 - Answer the questions from the comments + +3:44:00 - Geeksblabla Picks + +3:52:00 - Conclusion and goodbye. + +## Links + +- [Laracasts](https://laracasts.com/) + +- [Grafikart](https://www.youtube.com/c/grafikart) + +- [Symfonycasts](https://symfonycasts.com/) + +- [Matthias Noback](https://matthiasnoback.nl/) + +- [PHP the right way](https://phptherightway.com/) + +## Prepared and Presented by + +- [Hamza Makraz](https://twitter.com/makraz_hamza) diff --git a/episodes/episode-0163.md b/episodes/episode-0163.md new file mode 100644 index 00000000..0520437d --- /dev/null +++ b/episodes/episode-0163.md @@ -0,0 +1,66 @@ +--- +date: 2023-11-26 +duration: "2:02:42" +title: "Python in 2023" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=Zgdg4Hx_g7M +published: true +featured: false +--- + +In this episode, we discuss the latest Python features and fileds of usage in 2023, frameworks, and much more with our community friends. + +## Guests + +- [Ismail Tlemcani](https://www.linkedin.com/in/ismailtlemcani) + +- [Yasser Tahiri](https://www.yezz.me/) + +- [Mahmoud Fettal](https://twitter.com/mahmoudfettal) + +- [Hamza Haddaa](https://twitter.com/HamzaHaddaa) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:00 - Jetbrains survey highlighting Python part + +0:08:40 - Emerging trends or technologies in the Python ecosystem that are particularly noteworthy this year + +0:21:00 - How do you anticipate Python's role evolving in the domain of Data Science and ML + +0:35:00 - Major updates or changes in Python frameworks or libraries that developers should be aware of + +0:41:00 - Python is addressing challenges related to scalability and performance, especially in the context of modern applications + +0:58:44 - When not to use Python? + +1:07:00 - How is Python positioned to play a role in DevOps this year + +1:16:05 - How is Python adapting to address security concerns, and what should developers be mindful of + +1:20:00 - Q&A + +1:56:00 - Geeksblabla Picks + +2:02:00 - Conclusion and goodbye. + +## Links + +- [JetBrains Survey](https://www.jetbrains.com/lp/devecosystem-2022/python/) + +- [Python Deep Dive Episode](https://geeksblabla.io/blablas/python-deep-dive) + +- [Understanding the Python Global Interpreter](https://elmkarami.com/blog/understanding_the_gil/) + +- [OWASP Top Ten](https://owasp.org/www-project-top-ten/) + +- [OWASP Web Security Testing Guide](https://owasp.org/www-project-web-security-testing-guide) + +- [Book recommandation from Hamza](noor-book.com/hok5sf) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0164.md b/episodes/episode-0164.md new file mode 100644 index 00000000..be39cd32 --- /dev/null +++ b/episodes/episode-0164.md @@ -0,0 +1,80 @@ +--- +date: 2023-12-03 +duration: "2:25:31" +title: "Rust in 2023" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=J7Z1mxrrlKo +published: true +featured: false +--- + +In this episode, we explore the newest Rust features in 2023, practical use cases, advanced topics and much more with our community friends. + +## Guests + +- [M'bark Erras](https://github.com/mathematikoi/) + +- [Ismail Ait Bella](https://twitter.com/ABELLAISMAIL4) + +- [Abderrahim Soubai Idrissi](https://twitter.com/soub4i) + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:15 - What is Rust? + +0:09:15 - Why Rust? And why is it the most admired language among developers? + +0:20:09 - Advocating Rust over C/C++ pain + +0:23:52 - Is C/C++ necessary for learning Rust? + +0:28:55 - Programming in Rust: the good, the bad + +0:41:41 - Rust traits + +0:47:21 - Threads in Rust + +0:50:55 - How the Rust compiler works + +0:58:11 - Cargo + +1:07:00 - Procedural macros + +1:13:36 - Rust vs Golang binaries + +1:20:40 - Where Rust shines + +1:29:46 - Is Rust suitable for web development + +1:40:22 - Building games with Rust + +1:46:02 - Rust and blockchain + +1:51:10 - Rewriting things in Rust + +2:00:04 - why is Rust frequently compared with Go + +2:01:17 - Future of Rust + +2:18:43 - Geeksblabla Picks + +2:24:44 - Conclusion and goodbye + +## Links + +- [Rust Atomics and Locks](https://marabos.nl/atomics/) + +- [The Rustonomicon](https://doc.rust-lang.org/stable/nomicon/) + +- [Rust Compiler Development Guide](https://rustc-dev-guide.rust-lang.org/) + +- [Rust for Rustaceans](https://rust-for-rustaceans.com/) + +## Prepared and Presented by + +- [Adnan M'RAKCHI](https://twitter.com/_admerra) diff --git a/episodes/episode-0165.md b/episodes/episode-0165.md new file mode 100644 index 00000000..777b23ee --- /dev/null +++ b/episodes/episode-0165.md @@ -0,0 +1,78 @@ +--- +date: 2023-12-10 +duration: "2:30:41" +title: "DevOps in 2023" +tags: ["career"] +category: "career" +youtube: https://www.youtube.com/watch?v=jgLmsiLsC5U +published: true +featured: false +--- + +In this episode, we discuss the state of DevOps in 2023 and highlight key changes/improvements, new rising roles, and the most recent emerging practices. + +## Guests + +- [Djalal](https://twitter.com/enlamp) + +- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) + +- [Yasser Chihab](https://twitter.com/YasserChihab7) + +- [Mourad Mtouaa](https://twitter.com/mouradxmt) + +- [Youssef Roudanil](https://www.linkedin.com/in/youssef-roudani-810900107/l) + +- [Otmane Fettal](https://twitter.com/ofettal) + +- [Abdelati El Asri](https://twitter.com/kaizendae) + +## Notes + +00:00:00 - Introduction and welcoming + +00:05:55 - State of DevOps in 2023: Key changes, notable shifts and improvements. + +00:08:35 - Definition of DevOps and highlights on some DevOps misconceptions + +00:34:17 - DevOps โ€œengineersโ€/practitioners vs SREs + +00:49:02 - How was SRE implemented by Google ? + +00:59:02 - Hierarchy challenges in Tech companies + +01:10:02 - The rise of Low-Code/No-Code platforms and whether they threaten DevOps jobs or there will be a new role created + +01:38:52 - What is Platform Engineering? + +01:54:50 - Should a DevOps/Platform/SRE engineer be a developer beforehand? + +02:10:59 - What advice to give for juniors to get started and build a successful DevOps career? + +02:22:30 - The role of a Cloud Architect in DevOps + +02:23:27 - The effects of AI in DevOps + +02:24:44 - Conclusion and goodbye + +## Links + +- [DORA Report 2023](https://services.google.com/fh/files/misc/2023_final_report_sodr.pdf) + +- [The Goal: A Process of Ongoing Improvement](https://www.amazon.com/Goal-Process-Ongoing-Improvement/dp/0884271951) + +- [SRE by Google Cloud](https://sre.google/) + +- [Tech World With NANA](https://www.youtube.com/@TechWorldwithNana/featured) + +- [โ€‹The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win Hardcover](https://www.amazon.com/Phoenix-Project-DevOps-Helping-Business/dp/0988262592) + +- [The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations](https://www.amazon.com/DevOps-Handbook-Second-World-Class-Organizations/dp/B09L56CT6N/ref=sr_1_1?adgrpid=89975599908&hvadid=585479289782&hvdev=c&hvlocphy=1009974&hvnetw=g&hvqmt=e&hvrand=10267686391480424409&hvtargid=kwd-298080548321&hydadcr=27991_14525483&keywords=the+devops+handbook&qid=1702429208&sr=8-1) + +- [DevsInStyle](https://open.spotify.com/show/5G7yZTN1k0ylfouanYBMYI) + +## Prepared and Presented by + +- [Chaimaa BRITEL](https://www.linkedin.com/in/chaimaa-britel-a509b116b) + +- [Abdelati EL ASRI](https://twitter.com/kaizendae) diff --git a/episodes/episode-0166.md b/episodes/episode-0166.md new file mode 100644 index 00000000..220566c4 --- /dev/null +++ b/episodes/episode-0166.md @@ -0,0 +1,60 @@ +--- +date: 2023-12-17 +duration: "1:52:59" +title: "The State of .NET in 2023" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=3D_CLzQ_9jU +published: true +featured: false +--- + +In this episode, we discuss the state of .net Ecosystem in 2023 and highlight key changes/improvements and capabilities. + +## Guests + +- [Othman Kinane](https://www.linkedin.com/in/othmanekinane/) + +- [Othman Teffahi](https://www.linkedin.com/in/othmane-teffahi-322b071a3/) + +- [Amine Jadid](https://www.linkedin.com/in/jadid-amine/) + +- [Youssef Bensadik](https://www.linkedin.com/in/youssefbensadik/) + +## Notes + +00:00:00 - Introduction and welcoming + +00:04:20 - What is dotnet ? and Presentation of the dotnet Ecosystem + +00:15:52 - What Can we build with Dotnet ? + +00:25:30 - What's Special about dotnet ? + +00:35:00 - Building Web Applications with Dotnet + +00:50:00 - Building Desktop applications with Dotnet + +00:58:00 - Dotnet Aspire + +01:07:32 - What our guests love about dotnet ? + +01:16:00 - Tips and Tricks and best Practices + +01:50:00 - Conclusion and goodbye + +## Links + +- [Learn C#](https://www.freecodecamp.org/learn/foundational-c-sharp-with-microsoft) + +- [Microsoft Student Embassadors](https://mvp.microsoft.com/studentambassadorsopens) + +- [Awesome Selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted) + +- [bflat](https://github.com/bflattened/bflat) + +- [uefimaze](https://github.com/MichalStrehovsky/uefimaze) + +## Prepared and Presented by + +- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/episodes/episode-0167.md b/episodes/episode-0167.md new file mode 100644 index 00000000..33d1d638 --- /dev/null +++ b/episodes/episode-0167.md @@ -0,0 +1,58 @@ +--- +date: 2023-12-24 +duration: "2:48:40" +title: "Year in Review 2023" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=4Cs8O3VchnE +published: true +featured: false +--- + +In this episode, we discuss the events of 2023, tech news, and the future of the tech industry. We'll also explore how to set our goals for 2024. + +## Guests + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Soubai Abderahim](https://twitter.com/soub4i) + +- [Meriem Zaid](https://twitter.com/_iMeriem) + +- [Otmane FETTAL](https://twitter.com/ofettal) + +- [Abdelati El Asri](https://twitter.com/kaizendae) + +## Notes + +0:00:00 - Introduction and welcoming + +0:06:00 - Goals and New Year's resolutions + +0:36:30 - Why don't we speak 100% in Darija on the podcast? + +0:48:00 - Why do audiences feel like they are seeing the same guests? + +0:57:00 - Why doesn't Geeksblabla have a Discord server? + +1:03:00 - BlablaConf and state of dev survey 2023. + +1:29:00 - Crypto and NFTs in 2023. + +1:39:30 - AI updates and how it will affect our jobs. + +2:08:04 - Layoffs in the tech industry. + +2:16:20 - Figma and Adobe deal. + +2:20:00 - QAs + +2:46:00 - Conclusion and goodbye. + +## Links + +- [stateofdev.ma](https://stateofdev.ma) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0168.md b/episodes/episode-0168.md new file mode 100644 index 00000000..209fded2 --- /dev/null +++ b/episodes/episode-0168.md @@ -0,0 +1,49 @@ +--- +date: 2024-01-07 +duration: "2:18:30" +title: "7 Pillars to be comfortable in your Professional Life" +tags: ["career"] +category: "career" +youtube: https://www.youtube.com/watch?v=UKXczSzD2mA +published: true +featured: false +--- + +In this episode, We discuss 7 Pillars that can helps us lead a more comfortable Work life. + +## Guests + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +- [Djalal](https://twitter.com/enlamp) + +- [Marouane Gazanayi](https://www.linkedin.com/in/marouanegazanayi/) + +- [Abdelati El Asri](https://twitter.com/kaizendae) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:36 - You don't need to know a lot of Programing languages. + +0:25:48 - Work is not only about coding. + +0:46:50 - You won't use the latest tech in work. + +1:09:40 - You can't know everything. + +1:29:10 - Coding Bootcamps is a great start towards a path of learning. + +1:43:55 - You can't avoid Office politics , and don't forget to live. + +2:06:30 - Conclusion and Goodbye + +## Links + +- [Range Book Review](https://www.youtube.com/watch?v=E2ipt93liok) + +## Prepared and Presented by + +- [Adnan M'RAKCHI](https://twitter.com/_admerra) +- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/episodes/episode-0169.md b/episodes/episode-0169.md new file mode 100644 index 00000000..9036a880 --- /dev/null +++ b/episodes/episode-0169.md @@ -0,0 +1,52 @@ +--- +date: 2024-01-14 +duration: "1:41:51" +title: "WebAssembly in 2024" +tags: ["dev", "wasm"] +category: "dev" +youtube: https://www.youtube.com/watch?v=M3IBIFHwLBE +published: true +featured: false +--- + +In this episode, We discuss The state of webassembly in 2024 + +## Guests + +- [Abderrahim](https://twitter.com/soub4i) + +- [Abdellfetah](https://twitter.com/boredabdel) + +- [Wassim](https://twitter.com/manekinekko) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:53 - What is WebAssembly. + +0:10:56 - State of WebAssembly in 2024. + +0:21:29 - Containeres vs WASM. + +0:38:35 - WASM and eBPF. + +0:44:56 - Frameworks and dev toolchain. + +1:02:07 - is it worth it to learn WASM. + +1:20:55 - Resource to learn WASM. + +1:36:18 - Prediction and WASM future + +1:40:29 - Conclusion and Goodbye + +## Links + +- [Awesome WASM](โ€‹https://github.com/mbasso/awesome-wasm) +- [Awesome WASM](https://events.linuxfoundation.org/wasmcon) +- [WASM.io](โ€‹https://twitter.com/wasm_io) + +## Prepared and Presented by + +- [Abderrahim](https://twitter.com/soub4i) diff --git a/episodes/episode-0170.md b/episodes/episode-0170.md new file mode 100644 index 00000000..2b91c26c --- /dev/null +++ b/episodes/episode-0170.md @@ -0,0 +1,51 @@ +--- +date: 2024-01-21 +duration: "1:55:07" +title: "Let's Discover Salesforce" +tags: ["career"] +category: "career" +youtube: https://www.youtube.com/watch?v=hZUk7EAuyQQ +published: true +featured: false +--- + +In this episode, We have a discussion around Salesforce + +## Guests + +- [Mustapha EL HASSAK](https://www.linkedin.com/in/elhassak/) + +- [Houssam SAOUDY](https://www.linkedin.com/in/houssamsaoudy/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:50 - What's a CRM + +0:13:20 - Overview of Salesforce + +0:29:00 - Exploring Salesforce Capabilities + +0:41:15 - Developing on Salesforce + +0:59:45 - Learning Salesforce + +1:10:30 - Salesforce Community in Morocco + +1:13:10 - Building a Successful Career with Salesforce + +1:47:30 - Conclusion and Goodbye + +## Links + +- [Trailhead Platform](https://trailhead.salesforce.com/) +- [Casablanca Salesforce Developers Group](https://trailblazercommunitygroups.com/salesforce-developer-group-casablanca-morocco/) +- [Salesforce Governance Limits](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_gov_limits.htm) +- [North Africa Dreaming](https://northafricadreamin.com/) +- [Pluralsight Ressources](https://www.pluralsight.com/browse?&q=salesforce&%20engineering&type=all&sort=default) +- [Salesforce Certifications](https://trailhead.salesforce.com/fr/credentials/administratoroverview/) + +## Prepared and Presented by + +- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/episodes/episode-0171.md b/episodes/episode-0171.md new file mode 100644 index 00000000..6a42a3a4 --- /dev/null +++ b/episodes/episode-0171.md @@ -0,0 +1,77 @@ +--- +date: 2024-01-28 +duration: "2:18:48" +title: "From Code Passion to First Dollar" +tags: ["career"] +category: "career" +youtube: https://www.youtube.com/watch?v=6wsSnklIzNU +published: true +featured: false +--- + +In this episode, we discuss how to turn code passion into profit. We'll cover concrete strategies to get started and more, with our talented guests. + +## Guests + +- [Moustaid Ayoub](https://twitter.com/mstdayoub) + +- [Hamza Moustaid](https://x.com/hamzaamoustaid) + +- [Reda Boubkraoui](https://x.com/reda_boubkraoui) + +- [Younes Rahim](https://x.com/switcode) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:50 - Is the solopreneur or indie maker field suitable for all software engineers? + +0:07:18 - What types of software engineers can be indie makers? + +0:15:08 - The transition from being an employee to a solopreneur and following your passion. + +0:22:00 - Upsides and downsides of the solopreneur journey. + +0:25:45 - Tips to find ideas to make your first product. + +0:35:30 - Tips to gather the first budget to get started and the minimum budget needed. + +0:50:58 - Tips for Time Allocation as a Solopreneur + +0:57:01 - Idea generation and validation. + +1:01:10 - Tips to generate your first dollar with your current skill, with or without experience. + +1:13:13 - Tips to Find the Right Audience + +1:24:00 - Is indie hacking similar to dropshipping? + +1:38:06 - Deadly trap: Think globally and generate more income. + +1:45:10 - Deadly trap: procrastinating growth and developing ideas. + +1:54:00 - Geeksblabla picks & QA + +2:18:30 - Conclusion and Goodbye + +## Links + +- [Indiehackers](www.indiehackers.com) +- [Gumroad](gumroad.com) +- [NameCheap](namecheap.com) +- [Acquire](acquire.com) +- [Blogpost by Ayoub Moustaid](https://blog.acquire.com/startup-acquisition-episode-76/) +- [WebFlow apps](https://webflow.com/apps) +- [carrd.co](carrd.co) +- [Mental Health for developers - Episode](https://geeksblabla.io/blablas/mental-health-for-developers) +- [Failory](www.failory.com) +- [StateOfDEv survey](stateofdev.ma) +- [Can't Hurt Me - Book](https://www.amazon.com/Cant-Hurt-Me-Master-Your/dp/1544512287) +- [Unsexy Business - Book](https://www.amazon.com/Unsexy-Business-Entrepreneurs-businesses-extraordinary/dp/0857197134) + +## Prepared and Presented by + +- [Djalal](https://twitter.com/enlamp) + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0172.md b/episodes/episode-0172.md new file mode 100644 index 00000000..f9788eda --- /dev/null +++ b/episodes/episode-0172.md @@ -0,0 +1,56 @@ +--- +date: 2024-02-11 +duration: "2:32:08" +title: "AMA & Tech News #29" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=Z8_k-PnLaEo +published: true +featured: false +--- + +In this episode, we discuss how to prepare for talks, taking 3 months long vacations and the future of the tech industry in 2024. + +## Guests + +- [Djalal](https://twitter.com/enlamp) + +- [Ahmed El Azzabi](https://mylink.fyi/elazzabi) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:00 - Taking 3 months long vacations with Ahmed El Azzabi + +0:27:30 - Writing ebooks, and articles, and improving your writing skills. + +0:56:00 - QAs + +1:13:00 - New financial lows in Morocco. + +1:20:00 - How to prepare for talks. + +1:39:00 - Apple Vision Pro thoughts + +1:42:30 - QAs + +2:21:04 - GeeksBlaBla Picks + +2:30:00 - Conclusion and goodbye. + +## Links + +- [https://remote.ma/](https://remote.ma/) + +- [https://remote.ma/legal/](https://remote.ma/legal/) + +- [Building Microservices, 2nd Edition](https://samnewman.io/books/building_microservices_2nd_edition/) + +- [James Clear Newsletter](https://jamesclear.com/3-2-1) + +- [TickTick](https://www.ticktick.com/) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0173.md b/episodes/episode-0173.md new file mode 100644 index 00000000..c2f4bb0a --- /dev/null +++ b/episodes/episode-0173.md @@ -0,0 +1,58 @@ +--- +date: 2024-03-10 +duration: "1:29:29" +title: "Blanat Coding Challenge" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=gOnapDngTuk +published: true +featured: false +--- + +In this episode, we discuss the new challenge Blanat, we hosted participants and organizers to talk about it. + +## Guests + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Zakaria Moumen](https://www.linkedin.com/in/zakaria-moumen/) + +- [Youssfi Saad](https://www.linkedin.com/in/yousfisaad/) + +- [Mehdi Essalhi](#) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:22 - Read Blanat challenge statement. + +0:07:20 - Blanat challenge in numbers. + +0:09:30 - The winner's words. + +0:18:18 - Other participant's words. + +0:56:00 - RAFFLE. + +1:04:05 - Challenge runner application. + +1:09:00 - The idea of how the challenge came up from. + +1:12:45 - How we manage PRs. + +1:14:50 - Things to improve. + +## Links + +- [challenge shared by Saad](https://codecup.nl/http://espoir-comp...) + +- [The runner that Mehdi is describing](https://github.com/geeksblabla/blarun) + +- [Challenge link](https://github.com/geeksblabla/blanat) + +## Prepared and Presented by + +- [Adnan MERRAKCHI](https://twitter.com/_admerra) diff --git a/episodes/episode-0174.md b/episodes/episode-0174.md new file mode 100644 index 00000000..254b762e --- /dev/null +++ b/episodes/episode-0174.md @@ -0,0 +1,54 @@ +--- +date: 2024-03-17 +duration: "2:52:59" +title: "State of Dev in Morocco 2023" +tags: ["stateofdev", "geeksblabla"] +category: "career" +youtube: https://www.youtube.com/watch?v=htXPDy4Esuo +published: true +featured: true +--- + +In this episode, we discuss the state of development in Morocco. We talk about the results of the survey, job satisfaction, salaries, AI adoption, and community contribution. We explore how they learn and level up, the tools they are using, and what they want to learn next. + +## Guests + +- [Meriem zaid](https://twitter.com/_iMeriem) + +- [Omaima Khalil](https://twitter.com/BadQuinn3) + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Nouamane Tazi](https://www.linkedin.com/in/nouamanetazi/) + +- [Adnan MERRAKCHI](https://twitter.com/_admerra) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:56 - State overview + +0:11:30 - Profile: Female participation, age, and experience + +0:55:03 - Learning and education in Morocco + +1:17:30 - Work and job satisfaction + +1:37:30 - Technology and tools, frameworks, cloud, CSS, and more. + +1:52:45 - AI adoption for Moroccan developers: tools, learning, companies using AI. + +2:19:45 - How Moroccan developers feel about the impact of AI on their jobs. + +2:43:00 - Social media usage among Moroccan developers + +1:47:43 - Warming up and goodbye + +## Links + +- [stateofdev.ma](https://stateofdev.ma/) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0175.md b/episodes/episode-0175.md new file mode 100644 index 00000000..7ae726be --- /dev/null +++ b/episodes/episode-0175.md @@ -0,0 +1,56 @@ +--- +date: 2024-03-24 +duration: "2:13:58" +title: "Ten Principles for Growth as an Engineer" +tags: ["career", "dev", "tips", "programming", "success"] +category: "career" +youtube: https://www.youtube.com/watch?v=X7pMqC-0bNw +published: true +featured: false +--- + +In this episode, we discuss 10 tips for success in the IT world, and how to become an effective programmer. especially for the Moroccan context. +we based our discussion on the following article [Ten Principles for Growth as an Engineer](https://medium.com/@daniel.heller/ten-principles-for-growth-69015e08c35b) + +## Guests + +- [Marouane gazayni](https://twitter.com/mgazanayi) +- [Youssouf El Azizi](https://elazizi.com) + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:30 - Principle 1: Think about business value + +0:25:44 - Principle 2: Unblock yourself + +0:40:16 - Principle 3: Take initiative + +0:52:00 - Principle 4: Improve your written communication + +1:00:25 - Principle 5: Own your project management + +1:10:51 - Principle 6: Learn to learn + +1:20:00 - Principle 7: Master your tools + +1:37:00 - Principle 8: Communicate Proactively + +1:46:20 - Principle 9: Collaborate with other teams + +1:52:50 - Principle 10: Be reliable + +2:02:42 - Discussing Comments and Questions + +2:11:30 - Goodbyes + +## Links + +- [Medium Article: Ten Principles for Growth as an Engineer](https://medium.com/@daniel.heller/ten-principles-for-growth-69015e08c35b) + +## Prepared and Presented by + +- [Abdelati EL ASRI](https://twitter.com/kaizendae) diff --git a/episodes/episode-0176.md b/episodes/episode-0176.md new file mode 100644 index 00000000..b0c4dced --- /dev/null +++ b/episodes/episode-0176.md @@ -0,0 +1,48 @@ +--- +date: 2024-03-31 +duration: "1:27:32" +title: "MSS with Mohamed Adnane Abouchadi" +tags: ["career", "dev", "mss", "success", "disability"] +category: "mss" +youtube: https://www.youtube.com/watch?v=HRGLTomaEXE +published: true +featured: false +--- + +In this Geeksblabla episode, Mohammed Adnane Abouchadi talks about how he became a software engineer despite his disability, and shares with us some inspiring lessons he learned along the journey. + +## Guests + +- [Mohamed Adnane Abouchadi](https://abouchadi.com/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:02:55 - Why Mohamed Adnane is special + +0:05:45 - Adnane's childhood, school time and the start of his passion about computers + +0:12:30 - Importance of family and environment + +0:16:05 - Orientation between passion and abilities + +0:24:15 - Adnane's university journey + +0:38:00 - Finding the first job + +0:57:30 - Adnane's Entrepreneurial journey + +1:06:00 - A day in Adnane's life + +1:11:00 - Lessons and Advice to people with disabilities + +1:22:00 - A message to companies and recruiters + +1:27:00 - Closing and Goodbyes + +## Links + +## Prepared and Presented by + +[Mohammed Daoudi](https://www.linkedin.com/in/iduoad) diff --git a/episodes/episode-0177.md b/episodes/episode-0177.md new file mode 100644 index 00000000..f7f7ff62 --- /dev/null +++ b/episodes/episode-0177.md @@ -0,0 +1,62 @@ +--- +date: 2024-04-21 +duration: "3:15:53" +title: "DevRel and tech talks" +tags: ["devrel", "tech-talks"] +category: "career" +youtube: https://www.youtube.com/watch?v=8uKEwWbgRBc +published: true +featured: false +--- + +We're back with Part Two of "Preparing for a Tech Talk" expanding on our previous discussion from two years ago. Plus, we're diving into DevRel (Developer Relations) and its impact on the tech industry. Whether you're curious about DevRel or considering a career in it, we've got you covered with essential insights and tips. Tune in for an engaging conversation! + +## Guests + +- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) + +- [Djalal](https://twitter.com/enlamp) + +- [Kawtar Choubari](https://www.linkedin.com/in/choubari/) + +- [Zineb Bendhiba](https://twitter.com/ZinebBendhiba) + +- [Ayoub Alouane](https://twitter.com/alouane_med) + +- [Mohammed Abboulait](https://twitter.com/laytoun) + +## Notes + +0:00:00 - Introduction and welcoming. + +0:11:52 - Why did you start tech talks? + +0:36:41 - How to write a good CFP? + +0:53:20 - As reviewer, What makes a talk valid for you? + +1:13:36 - How do you know your audience? + +1:27:25 - What about imposter syndrome? + +1:29:18 - Audience in middle east. + +1:40:45 - What is DevRel? + +2:05:20 - Is technical writer considered as a DevRel? + +2:10:10 - What makes DevRel different from classic technical marketing? + +2:17:05 - What are the essential qualities that a DevRel guy must have? + +2:29:45 - What are the drawbacks of being in DevRel? + +2:48:15 - What are the positive aspects of being in DevRel? + +3:01:20 - Last word. + +## Links + +## Prepared and Presented by + +[Adnan MERRAKCHI](https://twitter.com/_admerra) diff --git a/episodes/episode-0178.md b/episodes/episode-0178.md new file mode 100644 index 00000000..34975ce9 --- /dev/null +++ b/episodes/episode-0178.md @@ -0,0 +1,49 @@ +--- +date: 2024-04-28 +duration: "2:37:14" +title: "Legacy Code & Technical debts" +tags: ["legacy", "technical debts"] +category: "career" +youtube: https://www.youtube.com/watch?v=mIPFRUCODN4 +published: true +featured: false +--- + +In this episode, we look at the challenges of dealing with legacy code and technical debts. We will discuss the importance of technical debt, the impact of legacy code on the development process, and the strategies for managing and mitigating technical debt. + +## Guests + +- [Marouane Gazanayi](https://www.linkedin.com/in/marouanegazanayi/) + +- [Badr-eddin Zioun](https://www.linkedin.com/in/zinounbadr/) +- [Mohammed Lamzira](https://www.linkedin.com/in/mohammed-lamzira-98599250/) + +## Notes + +0:00:00 - Introduction and welcoming. + +0:05:30 - What is legacy code? perspectives and examples. + +0:36:00 - Legacy code and junior developers. + +0:43:00 - What are technical debts? and how to collect them ? + +1:24:00 - How to prevent technical debts and legacy code? + +1:56:00 - How to deal with legacy code? + +2:22:00 - Picks and last words. + +## Links + +- [Refactoring](https://martinfowler.com/books/refactoring.html) + +- [Working effectively with legacy code](https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052) + +- [Emily Bache](https://twitter.com/emilybache) + +- [Legacy Code: Evolve or Rewrite?](https://www.slideshare.net/cyriux/legacy-code-evolve-or-rewrite) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0179.md b/episodes/episode-0179.md new file mode 100644 index 00000000..c9b1e8ec --- /dev/null +++ b/episodes/episode-0179.md @@ -0,0 +1,66 @@ +--- +date: 2024-05-05 +duration: "2:16:19" +title: "AMA & Tech News #30" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=HVdjS6NaEz8&pp=ygULZ2Vla3NibGFibGE%3D +published: true +featured: false +--- + +In this episode, we discuss What's new in the AI universe and the XZ Backdoor + +## Guests + +- [Sara El-Ateif](https://www.linkedin.com/in/sara-el-ateif) + +- [Abderrahim Soubai Idriss](https://twitter.com/soub4i) + +- [Taha Bouhsine](https://www.linkedin.com/in/tahabsn) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:00 - What did we learn in the last month + +0:27:30 - Ai Models , Training , Strategies , Fake AI + +1:41:00 - XZ Backdoor + +2:00:00 - Conclusion and goodbye. + +## Links + +- [Risk V Emulator](https://github.com/mit-pdos/xv6-riscv) + +- [Moroccan AI Influencer](https://www.instagram.com/kenza.layli/?hl=en) + +- [Early expressive language of severely visually impaired children](https://pubmed.ncbi.nlm.nih.gov/8138072/#:~:text=It%20is%20concluded%20that%20severely,discerned%20in%20their%20early%20words.) + +- [MultiMAE: Multi-modal Multi-task Masked Autoencoders](https://multimae.epfl.ch/) + +- [First AI Worm](https://arxiv.org/abs/2403.02817) + +- [Attention in transformers, visually explained](https://www.youtube.com/watch?v=eMlx5fFNoYc&t=369s) + +- [AI Sorting Algorithms](https://deepmind.google/discover/blog/alphadev-discovers-faster-sorting-algorithms/) + +- [AlphaTensor](https://deepmind.google/discover/blog/discovering-novel-algorithms-with-alphatensor/) + +- [Reducing LLM Costs](https://www.linkedin.com/posts/joannastoffregen_rag-6-techniques-to-reduce-llm-costs-activity-7182980552193396737-mmBc?utm_source=share&utm_medium=member_desktop) + +- [RAG to Reduce LLM costs](https://www.linkedin.com/posts/joannastoffregen_rag-5-costs-of-a-rag-app-activity-7181168556728840192-NFaJ?utm_source=share&utm_medium=member_desktop) + +- [AI Marketplace](https://aimarketplace.co/) + +- [To Repeat or Not To Repeat: Insights from Scaling LLM under Token-Crisis ](https://arxiv.org/pdf/2305.13230) + +- [Knowledge Distilation](https://arxiv.org/pdf/2210.17332) + +- [Open Interpreter](https://www.openinterpreter.com/) + +## Prepared and Presented by + +- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/episodes/episode-0180.md b/episodes/episode-0180.md new file mode 100644 index 00000000..13924248 --- /dev/null +++ b/episodes/episode-0180.md @@ -0,0 +1,68 @@ +--- +date: 2024-05-12 +duration: "1:45:17" +title: "Data engineer 101" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/live/mxV9Bx1ZsZg?si=5QnDE6RCcNOBuW1T +published: true +featured: false +--- + +Data engineering is a critical field in data science that involves preparing the "big data" infrastructure to be analyzed by data scientists. In this episode we are discussing the differences and how important each is with our guests. + +## Guests + +- [Mahmoud Fettal](https://twitter.com/mahmoudfettal) + +- [Salim Jannah](https://www.linkedin.com/in/salim-janah) + +- [Omaima Khalil](https://twitter.com/BadQuinn3) + +## Notes + +0:00:00 - Introduction and welcoming + +0:02:50 - What is data engineering? + +0:08:43 - What are the key skills required for a data engineer? + +0:16:40 - How does data engineering differ from data science? + +0:20:00 - Data analyst vs data engineer vs data scientist + +0:22:41 - What are the common tools used in data engineering? + +0:28:57 - What are data pipelines? + +0:34:54 - What challenges do data engineers face? + +0:42:12 - Q&A + +0:53:42 - How important is real -time data processing in data engineering? + +1:02:35 - What is a data lake, and how does it differ from a data warehouse? + +1:12:52 - How do data engineers use machine learning? + +1:18:01 - Types of projects really involved with Data engineering + +1:32:17 - What future trends should data engineers be aware of? + +1:41:00 - Geeksblabla Picks + +2:18:30 - Conclusion and Goodbye + +## Links + +- [Apache Airflow vs Mage.ai](https://www.cidrdb.org/cidr2021/papers/cidr2021_paper17.pdf) + +- [Lakehouse paper](https://medium.com/odicis-data-engineering/apache-airflow-vs-mage-ai-in-data-engineering-745c040a05e8) + +- [Open Source Agent for Data Analysis](https://pandas-ai.com/) + +- [Simplifying Data Engineering and Analytics with Delta](https://www.packtpub.com/product/simplifying-data-engineering-and-analytics-with-delta/9781801814867) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0181.md b/episodes/episode-0181.md new file mode 100644 index 00000000..67d43b64 --- /dev/null +++ b/episodes/episode-0181.md @@ -0,0 +1,68 @@ +--- +date: 2024-06-02 +duration: "1:17:05" +title: "Tech News & AMA #31" +tags: ["ama"] +category: "ama" +youtube: https://www.youtube.com/watch?v=R19JBanjhnQ +published: true +featured: false +--- + +In this Episode , weโ€™re going over the news that was impactful during the previous month. + +## Guests + +- [Jihane majdoul](https://twitter.com/jihanemajdoul) + +- [Ilias Haddad](https://iliashaddad.com/) + +- [Oumayma Essarhi](https://www.linkedin.com/in/oumayma-essarhi/) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:57 - 5 minutes max , each one of us talks about something he/she learned this month and wants to share it with the community. + +0:10:23 - Oumaymaโ€™s Experience with first big talk in JS Meetup. + +0:14:52 - Jihaneโ€™s experience with the talk at Jedida GDG + +0:18:17 - Iliasโ€™s experience with the podcast. + +0:26:09 - Google IO and Open AI spring Update (GPT-4o) + +0:37:39 - New AI Gadgets like Humane and Rabbit R1 + +0:42:08 - How does your Environment look (Underrated gadgets, tools, โ€ฆ) + +0:49:06 - Cloud Providers entering Morocco + +0:54:14 - Neuralink second trial + +0:58:25 - leaked Google search engine algorithm + +1:04:42 - Q&A + +1:17:00 - Conclusion and Goodbye + +## Links + +- [Google confirms the leaked Search documents are real](https://www.theverge.com/2024/5/29/24167407/google-search-algorithm-documents-leak-confirmation) + +- [Lunch & Learn: Let's Build An AI Assistant With GPT-4o (w/ Joe & Winston of @Posit)](https://www.youtube.com/live/OLTgI6DAQ_A) + +- [Yalla Let's Code](https://www.yallaletscode.com/) + +- [AtlasIA](https://huggingface.co/atlasia) + +- [Think AI Morocco](https://thinkai.ma/) + +- [The Forage](https://www.theforage.com/signup) + +- [Internship To Enrich Your Career And Mind](https://letsgrowmore.in/vip/) + +## Prepared and Presented by + +- [Mohammed Daoudi](https://www.linkedin.com/in/iduoad) diff --git a/episodes/episode-0182.md b/episodes/episode-0182.md new file mode 100644 index 00000000..9c8cc584 --- /dev/null +++ b/episodes/episode-0182.md @@ -0,0 +1,80 @@ +--- +date: 2024-06-09 +duration: "2:03:14" +title: "10 years of Kubernetes" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=eI1r6hS8gF0 +published: true +featured: false +--- + +In this Episode , we celebrate 10 years of Kubernetes, its beginning and the transition frol open source to a full solution to manage containers. All with our speacial guests, who will share their expertise and achievements working with the solution. + +## Guests + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Abdelfettah Sghiouar](https://twitter.com/boredabdel) + +- [Amine Rachyd](https://x.com/RachydAmine) + +- [Abderrahim Soubai Idrissi](https://twitter.com/soub4i) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:39 - What is Kubernetes ? + +0:08:09 - How long have you been working with Kubernetes ? How was your personal experience? + +0:23:56 - How do use Kubernetes at your daily job/projects? + +0:38:03 - Do you use any plugins in your daily work with Kubernetes ? + +0:44:31 - Tips for managing clusters + +0:48:59 - Best practices of using & working with Kubernetes + +1:01:26 - Usage of cluster API in the industry today + +1:09:06 - Q&A + +1:22:29 - Book recommandation to quick start with Kubernetes + +1:28:18 - Kubernetes ingress / API + +1:32:35 - Did kubernetes made it easy for the CN apps to use ? + +1:39:04 - Does K8 has an added value for people who want to make their own solutions + +1:50:02 - The future of Kubernetes + +2:03:10 - Conclusion and Goodbye + +## Links + +- [Kubernetes Partners](https://kubernetes.io/partners/#iframe-landscape-kcsp) + +- [Krew plugin manager](https://krew.sigs.k8s.io/) + +- [Yzsh-kubectl-prompt](https://github.com/superbrothers/zsh-kubectl-prompt) + +- [Starship cross-shell prompt](https://starship.rs/) + +- [History of containerd, with Phil Estes](https://kubernetespodcast.com/episode/208-containerd/) + +- [Kubernetes the hard way](https://github.com/kelseyhightower/kubernetes-the-hard-way) + +- [Kubernetes Cluster API](https://cluster-api.sigs.k8s.io/) + +- [KKubernetes: Up and Running: Dive into the Future of Infrastructure](https://books.google.co.ma/books?id=-5izDwAAQBAJ&printsec=copyright&redir_esc=y#v=onepage&q&f=false) + +- [Kubernetes for Developers](https://www.manning.com/books/kubernetes-for-developers) + +- [CNCF Landscape](https://landscape.cncf.io/) + +## Prepared and Presented by + +- [Abdelati El ASRI](https://twitter.com/kaizendae) diff --git a/episodes/episode-0183.md b/episodes/episode-0183.md new file mode 100644 index 00000000..08126acb --- /dev/null +++ b/episodes/episode-0183.md @@ -0,0 +1,60 @@ +--- +date: 2024-06-23 +duration: "1:28:14" +title: "State of AI" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=3a_spEXK02o&t=162s +published: true +featured: false +--- + +Special episode about AI and the latests announcements made by Apple, Microsoft and Google. We discuss the news and answer your questions with our guests. + +## Guests + +- [Sara El-Ateif](https://www.linkedin.com/in/sara-el-ateif) + +- [Taha Bouhsine](https://www.linkedin.com/in/tahabsn) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:39 - Microsoft vs Google vs Apple announcements + +0:24:37 - Google I/O updates + +0:30:32 - Microsoft updates, and privacy concerns + +0:39:50 - Practical AI use case from Apple + +0:50:40 - OpenAI / Chatgpt-4o + +0:55:20 - Chatgpt-4o / Claude + +1:19:51 - Current state of small models that run locally + +1:25:06 - Q&A + +1:28:10 - Conclusion and Goodbye + +## Links + +- [Search Generative AI of Google](https://blog.google/products/search/generative-ai-search/) + +- [Copilot Workspace](https://github.blog/2024-04-29-github-copilot-workspace/) + +- [Full details and model benchmarks](https://machinelearning.apple.com/research/introducing-apple-foundation-models) + +- [Architecture of Apple Intelligence](https://interconnected.org/more/2024/06/Apple-Intelligence-architecture.jpg) + +- [in-depth explanation about AI intelligence](https://www.youtube.com/watch?v=cOyoy-pslqE) + +- [Gemini Flash](https://deepmind.google/technologies/gemini/flash/) + +- [Transformers Optimization: Part 1 - KV Cache](https://r4j4n.github.io/blogs/posts/kv/) + +## Prepared and Presented by + +- [Meriem zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0184.md b/episodes/episode-0184.md new file mode 100644 index 00000000..efea8530 --- /dev/null +++ b/episodes/episode-0184.md @@ -0,0 +1,48 @@ +--- +date: 2024-06-30 +duration: "2:06:08" +title: "Why aren't people ready to buy digital information?" +tags: ["career"] +category: "career" +youtube: https://www.youtube.com/watch?v=cFo1Djq_zOg&ab_ +published: true +featured: false +--- + +In this episode we adress the concern of information economy or "why people don't buy digital informations" from different point of views ad based on our guests experience. + +## Guests + +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +- [Zak Elfassi](https://twitter.com/zakelfassi) + +- [Mohammed Aboullaite](https://twitter.com/laytoun) + +- [Ayoub Alouane](https://twitter.com/alouane_med) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:39 - Definition of "information economy" in the context of Morocco? + +0:17:02 - How has morocco's digital landscape evolved in recent years + +0:37:08 - Comparison to neighboring countries + +0:47:31 - How educational system prepare students for the information economy + +1:02:40 - Working on infrastructure and mindset / Behavior + +1:19:16 - What initiatives could boost digital information consumption + +1:24:48 - Q&A / Giveaway + +2:06:05 - Conclusion and Goodbye + +## Links + +## Prepared and Presented by + +- [Meriem zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0185.md b/episodes/episode-0185.md new file mode 100644 index 00000000..cf71466f --- /dev/null +++ b/episodes/episode-0185.md @@ -0,0 +1,52 @@ +--- +date: 2024-07-07 +duration: "2:16:19" +title: "AMA & Tech News #32" +tags: ["AMA"] +category: "ama" +youtube: https://www.youtube.com/watch?v=QZhKeIXcsKA +published: true +featured: false +--- + +In this episode, we discuss What's new in the AI , Windows and Nvidia + +## Guests + +- [Abderrahim Soubai Idriss](https://twitter.com/soub4i) +- [Merouane Zouaid](https://x.com/merouanezouaid) +- [Marwane Chaoui](https://x.com/moghwan) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:30 - What did we learn in the last month + +0:20:00 - Bouyaad App Showcase + +0:26:00 - Buildspace Showacase + +0:34:30 - Tech News - Apple Intelligence + +1:01:30 - Tech News - Nvidia's soaring to all time highs + +1:20:30 - Tech News - Windows on ARM + +1:30:00 - Q/A + +1:43:00 - Conclusion + +## Links + +- [Bouyad App](โ€‹โ€‹https://web.bouayad.app/) + +- [Bouyad App - Repo](https://github.com/moghwan/web.bouayad.app) + +- [Buildspace](https://buildspace.so/) + +- [Stocks for the Long Run](https://www.amazon.com/Stocks-Long-Run-Definitive-Investment/dp/0071800514) + +## Prepared and Presented by + +- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/episodes/episode-0186.md b/episodes/episode-0186.md new file mode 100644 index 00000000..6b82cf0b --- /dev/null +++ b/episodes/episode-0186.md @@ -0,0 +1,45 @@ +--- +date: 2024-07-14 +duration: "1:45:22" +title: "The Journey of Continuous Learning in Tech" +tags: ["career"] +category: "career" +youtube: https://www.youtube.com/watch?v=Wp_8hDXaZB4&ab +published: true +featured: false +--- + +In this episode, we will have a roundtable discussion to benefit from the guests' experience in the field of IT training and how we can continue learning and keep up with new developments in the world of technology. + +## Guests + +- [Djalal](https://twitter.com/enlamp) +- [Karim Benzidane](https://www.linkedin.com/in/benzidanekarim) +- [Adil TOUATI](https://www.linkedin.com/in/adiltouati/) +- [Abdelmajid ANEDDAME](https://www.linkedin.com/in/abdelmajidaneddame) + +## Notes + +0:00:00 - Introduction and welcoming + +0:08:47 - What is the definition of training in the context of the tech industry? + +0:17:21 - How do tech trainings differ from traditional education? + +0:41:15 - When should a professional consider enrolling in tech training , are there signs ? + +0:49:56 - What are some best practices to follow during tech training sessions and to make the most out of a training Program ? + +1:05:16 - What are some common mistakes people make during tech training? + +1:19:30 - Can you share a personal experience where tech training significantly impacted your career? + +1:28:56 - Q/A + +1:45:00 - Conclusion + +## Links + +## Prepared and Presented by + +- [Otmane FETTAL](https://twitter.com/ofettal) diff --git a/episodes/episode-0187.md b/episodes/episode-0187.md new file mode 100644 index 00000000..9e2ac726 --- /dev/null +++ b/episodes/episode-0187.md @@ -0,0 +1,41 @@ +--- +date: 2024-07-21 +duration: "2:27:01" +title: "Back to basics" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=k9jMvSybyYY +published: true +featured: false +--- + +In this episode, we will discuss the fundamental skills every developer needs to master. These essentials will help you become a stronger and more proficient developer. + +## Guests + +- [Marouane Gazanayi](https://www.linkedin.com/in/marouanegazanayi/) +- [Abdelziz eroui](https://www.linkedin.com/in/aeroui/) +- [Slimane Akalie](https://www.linkedin.com/in/slimaneakalie/) +- [Mehdi Cheracher](https://twitter.com/Mehdi_Cheracher) + +## Notes + +0:00:00 - Introduction and welcoming + +0:04:52 - What are the fundamental skills every software engineer needs to master? + +0:29:05 - How deeply should I delve into the fundamentals? + +0:50:30 - The fundamentals that a back-end developer needs? + +1:25:00 - How can I effectively manage the difficulty of learning the fundamentals? + +2:03:30 - is the main purpose of school to teach findamentls? + +2:16:25 - picks of guests. + +## Links + +## Prepared and Presented by + +- [Adnan MERRAKCHI](https://twitter.com/_admerra) diff --git a/episodes/episode-0188.md b/episodes/episode-0188.md new file mode 100644 index 00000000..8f0c9a90 --- /dev/null +++ b/episodes/episode-0188.md @@ -0,0 +1,48 @@ +--- +date: 2024-07-28 +duration: "1:33:36" +title: "Why it is important to test? Crowdstrike meltdown" +tags: ["dev"] +category: "dev" +youtube: https://www.youtube.com/watch?v=JT0k1sYv7-c +published: true +featured: false +--- + +In this episode, we discussed the famous issue between CrowdStrike and Microsoft, and we also highlighted the importance of testing. + +## Guests + +- [Abdelfattah Sghiouar](https://twitter.com/boredabdel) + +- [Abderahman Instagram ](https://www.instagram.com/abdulbenbrahim/) + +- [Hammadi Agharass](https://twitter.com/hagharass) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:30 - We all witnessed the problem of Microsoft and CrowdStrike. What happened exactly? + +0:16:25 - Do you think this problem will make people lose trust in systems in general? + +0:26:40 - explainning some concepts like kerenel, vm, etc? + +0:32:05 - Is it good to use more than one OS to avoid a single point of failure issue? + +0:39:15 - After what happened, do you think in the coming days we will see a new solution for testing to avoid this problem? + +0:46:05 - Could we use AI to test these solutions? + +0:51:05 - Is this the first time we've had something similar? + +1:02:15 - After what happened, do you thing business and finance departments will give more importance to IT? + +1:18:16 - What did we learn from what happened? + +## Links + +## Prepared and Presented by + +- [Mourad Mtouaa](https://twitter.com/mouradxmt) diff --git a/episodes/episode-0189.md b/episodes/episode-0189.md new file mode 100644 index 00000000..196ba5c4 --- /dev/null +++ b/episodes/episode-0189.md @@ -0,0 +1,44 @@ +--- +date: 2024-09-01 +duration: "2:29:25" +title: "A gentle introduction to LLMs." +tags: ["AI"] +category: "ai" +youtube: https://www.youtube.com/watch?v=0Bg83WRvtO8&ab_channel=GeeksBlaBla +published: true +featured: false +--- + +In this episode, we discussed the technology of Large Language Models (LLMs) and its and significant development in recent years, we discuss what these models are and how they work with our experts. + +## Guests + +- [Faissal Boutaounte](https://twitter.com/bfaissal) + +- [Oumayma Essarhi](https://www.linkedin.com/in/oumayma-essarhi/) + +- [Taha Bouhsine](https://www.linkedin.com/in/tahabsn) + +## Notes + +0:00:00 - Introduction and welcoming + +0:07:55 - expalin what is LLMS. + +0:18:00 - short presentation by taha about NLP and LLMs concepts. + +0:34:20 - Faissal talks about attention. + +0:45:00 - how LLMs keeps the context. + +1:31:00 - what is prompt engineering ? why is it important for LLMs ? + +1:34:00 - how we can deploy a LLMs ? + +1:41:00 - what is steps to integrate LLM in your app ? + +## Links + +## Prepared and Presented by + +- [Mohammed Aboullaite](https://twitter.com/laytoun) diff --git a/episodes/episode-0190.md b/episodes/episode-0190.md new file mode 100644 index 00000000..d8120f8f --- /dev/null +++ b/episodes/episode-0190.md @@ -0,0 +1,62 @@ +--- +date: 2024-09-15 +duration: "2:04:55" +title: "Prompt Engineering" +tags: ["AI"] +category: "ai" +youtube: https://www.youtube.com/watch?v=2UGde_wf4ZM +published: true +featured: false +--- + +In this episode, we discuss what Prompt Engineering is and how it influences the outputs of AI systems. We'll also explore real-world use cases, some best practices for crafting effective prompts, and answer live questions from the audience. + +## Guests + +- [Sara El-Ateif](https://www.linkedin.com/in/sara-el-ateif) + +- [Houda Mouttalib](https://www.linkedin.com/in/houdam/) + +- [Oumayma Essarhi](https://www.linkedin.com/in/oumayma-essarhi) + +- [Soufiane Lamchoudi](https://www.linkedin.com/in/soufiane-lamchoudi/) + +- [Taha Elghabi](https://www.linkedin.com/in/taha-elghabi/) + +## Notes + +00:00:00 - Introduction and welcoming + +00:02:45 - Guests Introduction + +00:05:48 - What is it? Why is it important in AI/ML? Can anyone do it? + +00:12:00 - Brief history or evolution of Prompt Engineering + +00:18:56 - The basics you need to learn Prompt Engineering + +00:32:21 - Learning Prompt Engineering in Morocco from a Higher education standpoint + +00:36:35 - Key principles to achieve well-crafted Prompts + +00:51:36 - Why developers still refuse to use AI? + +00:55:56 - Real-World Applications and Use Cases of Prompt Engineering + +01:07:01 - Examples of failed Prompt Engineering to avoid in the future + +01:13:24 - Definition of Hallucinations and why do they happen? + +01:25:17 - Q&A Section + +02:00:22 - Conclusion and goodbye + +## Links + +- [Professor Mohamed Youssfi's Youtube Channel](https://www.youtube.com/@mohamedYoussfi) + +## Prepared and Presented by + +- [Chaimaa BRITEL](https://www.linkedin.com/in/chaimaa-britel-a509b116b/) + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0191.md b/episodes/episode-0191.md new file mode 100644 index 00000000..87fc1ff0 --- /dev/null +++ b/episodes/episode-0191.md @@ -0,0 +1,76 @@ +--- +date: 2024-09-22 +duration: "2:30:29" +title: "The battle of Gen AI" +tags: ["AI"] +category: "ai" +youtube: https://www.youtube.com/watch?v=a95M499jPJc +published: true +featured: false +--- + +After exploring how AI models function and discovering the best ways to extract information from them, in this episode will dive into the solutions available on the market. With our guests, we'll compare these options and discuss when itโ€™s best to use one over the other. + +## Guests + +- [Taha Bouhsine](https://twitter.com/Tahabsn) +- [Merouane Zouaid](https://x.com/merouanezouaid) +- [Safoine El Khabich](https://www.linkedin.com/in/safoinme) +- [Ali Khyatti](https://www.linkedin.com/in/khyatti-ali/) +- [Mohamed Wahib Abkari](https://x.com/wahibonae) + +## Notes + +0:00:00 - Introduction and welcoming + +0:05:22 - A Brief History of Gen AI Tool Competition + +0:11:55 - Big moments of Gen AI History + +0:18:01 - Current lanscape of the Gen AI market + +0:37:00 - What is the best approach to compare Gen AI products + +0:44:40 - Lanscape of the opensource Gen AI models + +0:53:17 - Gen AI ecosystem and Developer platforms + +0:57:55 - Image and Video Gen AI + +1:16:30 - Regulation and Ethics in Gen AI market + +1:22:02 - Is Meta open-sourcing their Gen AI models a market differentiation technique? + +1:28:00 - Is Gen AI a solution waiting for problems? Examples of AI based use cases and products? + +2:00:48 - Prediction about the future of Gen AI + +2:15:26 - Is the hardware we have sufficient for the current and future AI needs? + +2:17:52 - Using Gen AI for cyber security + +2:25:08 - Final words and closing + +## Links + +[Kling AI](https://kling.ai) +[Suno AI](https://suno.ai) +[4M - EPFL](https://4m.epfl.ch/) +[Illuminate - Google](https://illuminate.google.com/) +[Chat LMSYS](https://chat.lmsys.org/) +[Together AI](https://www.together.ai/) +[Meta AI Blog - Yann LeCun on JEPA](https://ai.meta.com/blog/yann-lecun-ai-model-i-jepa/) +[Meta AI Blog - Video on JEPA Architecture](https://ai.meta.com/blog/v-jepa-yann-lecun-ai-model-video-joint-embedding-predictive-architecture/) +[Replicate Home](https://replicate.com/home) +[Multimae - EPFL](https://multimae.epfl.ch/) +[AI Sprint - Introduction to the Multimodal Verse](https://blog.mlnomads.com/aisprint-i-intro-to-the-multimodal-verse) +[4M - EPFL (duplicate link)](https://4m.epfl.ch/) +[Viggle AI](https://viggle.ai/home) +[Reddit - The Tradeoff Between Model Size and Effectiveness](https://www.reddit.com/r/LocalLLaMA/comments/16df70w/the_tradeoff_between_model_size_and_effectiveness/) +[ArXiv - Paper ID 2403.00504](https://arxiv.org/abs/2403.00504) +[Transporter Nets](https://transporternets.github.io/) +[Transporter Net with LLM - OpenReview](https://openreview.net/pdf?id=cbVnJa4l2o) + +## Prepared and Presented by + +- [Mohammed Daoudi](https://www.iduoad.com) diff --git a/episodes/episode-0192.md b/episodes/episode-0192.md new file mode 100644 index 00000000..f459421f --- /dev/null +++ b/episodes/episode-0192.md @@ -0,0 +1,55 @@ +--- +date: 2024-09-29 +duration: "1:27:53" +title: "Vector Databases" +tags: ["AI"] +category: "ai" +isNext: false +youtube: https://www.youtube.com/watch?v=7LNKYIIO-0M +published: true +featured: false +--- + +In this episode, we will explore Vector databases, a cutting-edge technology revolutionizing data storage and retrieval. We'll examine how these systems efficiently handle high-dimensional data, enabling advanced search capabilities and powering modern AI applications across various industries. + +## Guests + +- [Oumayma Essarhi](https://www.linkedin.com/in/oumayma-essarhi) +- [Taha Bouhsine](https://www.linkedin.com/in/tahabsn) +- [Merouane Zouaid](https://x.com/merouanezouaid) + +## Notes + +0:00:00 - Introduction and welcoming + +0:03:47 - What is a Vector database? + +0:13:47 - Why using a Vector Database, and what are the differences with classic Databases? + +0:19:15 - Techniques used to speed search with Vector Databases + +0:31:58 - Vector databases and AI + +0:46:30 - Dealing with "curse of dimensionality" in Vector Databases + +0:55:02 - Privacy concerns while using Vector databases + +1:03:56 - Scalability of Vector Databases + +1:12:54 - Q&A and Giveaay + +1:27:00 - Conclusion + +## Links + +- [Extracting Training Data from Large Language Models](https://arxiv.org/pdf/2012.07805) +- [30 days of ML](https://30daysofml.framer.ai/) +- [Strategy of pickinga Vector database](https://www.reddit.com/r/LangChain/comments/170jigz/my_strategy_for_picking_a_vector_database_a/) +- [PGrounding AI in reality with a little help from Data Commons](https://research.google/blog/grounding-ai-in-reality-with-a-little-help-from-data-commons/?linkId=10989162) +- [DataGemma](https://ai.google.dev/gemma/docs/datagemma) +- [Masked Image Modeling with Vector-Quantized Visual Tokenizers](https://arxiv.org/pdf/2208.06366) +- [An Any-to-Any Vision Model for Tens of Tasks and Modalities](https://arxiv.org/abs/2406.09406) + +## Prepared and Presented by + +- [Meriem Zaid](https://twitter.com/_iMeriem) diff --git a/episodes/episode-0193.md b/episodes/episode-0193.md new file mode 100644 index 00000000..bd5f051e --- /dev/null +++ b/episodes/episode-0193.md @@ -0,0 +1,55 @@ +--- +date: 2024-10-13 +duration: "2:45:14" +title: "Digital Morocco 2030" +tags: ["Morocco", "Digital"] +category: "career" +youtube: https://www.youtube.com/watch?v=XhF8cDBdtmM +published: true +featured: false +--- + +In this episode, we discuss the Digital Morocco 2030 strategy, its key components, and the challenges it may face. We also explore how developers can contribute to this strategy. + +## Guests + +- [Badr Bellaj](https://www.linkedin.com/in/bellajbadr/) +- [Mouhssine Lakhdissi](https://www.linkedin.com/in/mlakhdissi/) +- [Maryem Nairi](https://www.linkedin.com/in/nairi-meryem/) +- [Ali Khyatti](https://www.linkedin.com/in/khyatti-ali/) + +## Notes + +0:00:00 - Introduction and Welcome + +0:05:00 - Overview of Past Digital Strategy in Morocco + +0:22:30 - Preparation of the Current Strategy by the Ministry + +0:37:00 - Digitization of Public Services + +1:13:00 - Boosting the Digital Economy: Startup Ecosystem + +1:48:20 - Job Creation and Training Initiatives + +2:04:20 - Infrastructure Development: Connectivity and Cloud + +2:18:15 - Integration of Artificial Intelligence + +2:33:30 - How Developers and the Community Can Contribute to This Strategy + +2:43:00 - Wrap up and goodbye + +## Links + +- [Digital Morocco slides](https://ali3lami.ma/wp-content/uploads/2024/09/Maroc-digital-2030.pdf) +- [Digital Morocco docs ](https://30daysofml.framer.ai/) +- [Matche des TPE](https://www.mmsp.gov.ma/fr/actualites/la-vision-%C3%A9clair%C3%A9e-de-sa-majest%C3%A9-le-roi-mohammed-vi-que-dieu-le-glorifie-plac%C3%A9-le-num%C3%A9rique-au-centre-des-priorit%C3%A9s-nationales) +- [MAROC NUMERIC 2013](https://www.courdescomptes.ma/wp-content/uploads/2023/01/EVALUATION-DE-LA-STRATEGIE-MAROC-NUMERIC-2013.pdf) +- [DataGemma](https://ai.google.dev/gemma/docs/datagemma) +- [Morocco AI recommendations](https://morocco.ai/wp-content/uploads/2020/03/MoroccoAI-Recommendations-Towards-a-National-AI-Strategy-For-Morocco.pdf) +- [Tech education in Morocco](https://www.youtube.com/watch?v=3r7lXiS5Mqc&t=0s) + +## Prepared and Presented by + +- [Youssouf EL Azizi](https://elazizi.com) diff --git a/episodes/episode-0194.md b/episodes/episode-0194.md new file mode 100644 index 00000000..b8b8efce --- /dev/null +++ b/episodes/episode-0194.md @@ -0,0 +1,63 @@ +--- +date: 2024-10-20 +duration: "2:23:55" +title: "SaaS Lifecycle in Morocco" +tags: ["dev", "saas", "entrepreneurship"] +category: "dev" +youtube: https://www.youtube.com/watch?v=0R7eUTy51UQ +published: true +featured: false +--- + +After doing a previous episode on SaaS for developers, this time weโ€™ll be exploring the lifecycle of this type of software solutions on a global scale, with a special focus on Morocco. + +## Guests + +- [Ayoub Moustaid](https://x.com/mstdayoub) +- [Ilias Haddad](https://x.com/iliashaddad3) + +## Notes + +0:00:00 - Introduction and welcoming + +0:02:47 - What is SaaS and what are the types of SaaS? + +0:06:20 - Phase 1: Ideation and problem definition + +0:13:31 - Phase 2: Validation of the idea + +0:20:02 - How can you detach yourself from the projects you're working on? + +0:25:50 - Phase 3: Building + +0:29:25 - Focus on the value instead of the tools + +0:31:13 - Phase 4: Launch + +0:49:44 - Q/A: Do SaaS apps have to be web apps? + +0:51:25 - Q/A: The importance of Analytics and customer feeback. + +0:53:46 - Q/A: Do we need paid ads for SaaS marketing + +0:58:37 - Phase 5: Growth and Scaling + +1:08:25 - Phase 6: Monetization + +1:15:01 - Phase 7: Exit (Acquisition, IPO ...) + +1:23:54 - State of SaaS in Morocco, opportunities and challenges + +1:34:30 - Q&A + +2:19:19 - Conclusion and Final words + +## Links + +- [Yalla Let's code](https://www.youtube.com/playlist?list=PLH2oZGX8fDGXhrI3PbugKfSp17YDiY9-N) +- [Ayoub Moustaid Podcast with Biztech](https://www.youtube.com/watch?v=RpYXH5cpxno) + +## Prepared and Presented by + +- [Mohammed Daoudi](https://www.iduoad.com) +- [Meriem Zaid](https://www.linkedin.com/in/meriem-zaid-652852187/) diff --git a/episodes/episode-0195.md b/episodes/episode-0195.md new file mode 100644 index 00000000..9e045ed5 --- /dev/null +++ b/episodes/episode-0195.md @@ -0,0 +1,59 @@ +--- +date: 2024-10-27 +duration: "2:29:26" +title: "AMA & Tech News #32" +tags: ["ama", "news"] +category: "ama" +youtube: https://www.youtube.com/watch?v=Wf-ZvQR_26U +published: true +featured: false +--- + +In this monthly AMA episode, we discuss our guests' latest stories and learning journeys, and we answer audience questions. + +## Guests + +- [Ahmed El Azzabi](https://mylink.fyi/elazzabi) +- [Abderrahim Soubai Idrissi](https://www.soubai.me/) +- [Abdelati](https://twitter.com/kaizendae) +- [Meriem Zaid](https://www.linkedin.com/in/meriem-zaid-652852187/) +- [Mohamed Adnane Abouchadi](https://www.linkedin.com/in/mohamed-adnane-abouchadi/) + +## Notes + +00:00:00 - Intro and welcoming guests + +00:04:10 - Guests learning during the last period + +00:37:07 - The 212 accelerationism initiative with Ahmed and the problem with success nowadays. + +01:02:00 - AI updates, new Claude computer use feature, cursor editor feedback, bolt.new + +01:27:20 - WordPress open-source drama + +01:35:50 - Frontend news: Nextjs Conf, Vite conf, Deno 2 + +01:47:40 - New React Native version with the new architecture enabled by default + +01:58:40 - Hacktoberfest + +02:05:40 - QAs from comments + +02:27:00 - Conclusion and warp up + +## Links + +- [The Continuous Delivery Maturity Model - InfoQ](https://www.infoq.com/articles/Continuous-Delivery-Maturity-Model/) +- [No title found](https://www.amazon.com/Continuous-Integration-Delivery-Practical-Developing/dp/1484292278?asin=1484292278&revisionId=&format=4&depth=1) +- [Humble Pi](https://www.penguin.co.uk/books/300640/humble-pi-by-parker-matt/9780141989143) +- [Documentation | NestJS - A progressive Node.js framework](https://docs.nestjs.com/) +- [Hono - Web framework built on Web Standards](https://hono.dev/) +- [212/acc](https://www.212acc.com/) +- [Cursor - The AI Code Editor](https://www.cursor.com/) +- [bolt.new](https://bolt.new/) +- [Gamme slides](https://gamma.app/) +- [YouTube Geeksblabla Episode](https://www.youtube.com/watch?v=EKvvptbTx6k) + +## Prepared and Presented by + +- [Youssouf El Azizi](https://elazizi.com) diff --git a/episodes/episode-0196.md b/episodes/episode-0196.md new file mode 100644 index 00000000..7ed33da0 --- /dev/null +++ b/episodes/episode-0196.md @@ -0,0 +1,60 @@ +--- +date: 2024-11-03 +duration: "2:27:56" +title: "The illusion of productivity and danger of burnout" +tags: ["burnout", "psychology"] +category: "career" +youtube: https://www.youtube.com/watch?v=3JsNCcz1Hf0 +published: true +featured: false +--- + +This episode focuses on the modern obsession with productivity and its associated risks, such as burnout and declining mental health. The discussion covers practical solutions to advance in oneโ€™s career without compromising mental well-being. + +## Guests + +- [Achraf Aamri](https://linkedin.com/in/achrafaamri) +- [Adnan Merrakchi](https://twitter.com/adnanmrakchi) + +## Notes + +00:00:00 - Lmo9adimma + +00:04:35 - Achnu huwa burnout bnsba l our guests? + +00:10:10 - Personal Experiences and The problem of self-indentification + +00:25:45 - Adnane on Work life balance and Discipline + +00:28:39 - Office vs Remote and effortlessness vs Will-power + +00:30:15 - Advice to remote workers + +00:36:20 - On romanticizing the Job and discipline + +00:39:20 - How delegation fights burnout + +00:44:40 - The illusion of productivity and Respecting constraints + +01:04:20 - Knowing yourself your contsraints and avoiding comparisons + +01:17:07 - Why not push to the limit? and achraf's story + +01:32:20 - Mourad on the measure of success + +01:35:20 - Burnout VS imposter syndrome + +01:47:00 - How do guests reduce burnout effects? + +02:11:20 - Guests sharing their favorite books + +02:16:20 - Information flux and burnout + +02:19:20 - Featuring Comments + +## Links + +## Prepared and Presented by + +- [Abdelati](https://twitter.com/kaizendae) +- [Mourad Mtouaa](https://twitter.com/mouradxmt) diff --git a/episodes/episode-0197.md b/episodes/episode-0197.md new file mode 100644 index 00000000..df2494da --- /dev/null +++ b/episodes/episode-0197.md @@ -0,0 +1,37 @@ +--- +date: 2024-11-10 +duration: "02:01:29" +title: "Tech in Sports" +tags: [] +category: "dev" +youtube: https://www.youtube.com/watch?v=jMnYca3MGSM +published: true +featured: false +--- + +In this engaging episode, we dive into the world of sports technology, exploring how innovations go far beyond the familiar VAR system. Sports experts will illuminate how artificial intelligence and cutting-edge technologies are revolutionizing sports analysis, predictions, and the entire sporting experience for teams and spectators alike. + +## Guests + +- [Hamza Makraz](https://twitter.com/makraz_hamza) +- [Oumayma ES-SAYDY](https://www.linkedin.com/in/oumayma-es-saydy/) +- [Mourad Mtouaa](https://twitter.com/mouradxmt) +- [tarik LEMKADEM](https://www.linkedin.com/in/tarik-lemkadem/) +- [Ziad OULD BOUYA](https://www.linkedin.com/in/ould-bouya-ziad/) + +## Notes + +00:00:00 - Intro and welcoming guests +00:14:00 - Data Science in the world of tech +00:30:36 - Data Science and Machine learning +00:35:12 - Is Data accurate? +00:39:18 - How VAR works really? why it might make mistakes? +00:49:50 - How prediction model can benefit sport teams +00:59:55 - Augmented reality in sports, AR in ads as example. +01:15:45 - How can we imagine the future of AI/AR in sports + +## Links + +## Prepared and Presented by + +- [Mourad Mtouaa](https://twitter.com/mouradxmt) diff --git a/episodes/episode-0198.md b/episodes/episode-0198.md new file mode 100644 index 00000000..6b381521 --- /dev/null +++ b/episodes/episode-0198.md @@ -0,0 +1,59 @@ +--- +date: 2024-11-17 +duration: "2:32:14" +title: "AI for good" +tags: ["AI"] +category: "ai" +youtube: https://www.youtube.com/watch?v=xprf2CY62OA +published: true +featured: false +--- + +This episode discusses how we forget what's important amid tech hype. We see AI everywhere now, but should we adopt it just because it's trendy, or should we use it only when it actually solves real problems and improves our lives? + +## Guests + +- [Taha Bouhsine](https://twitter.com/Tahabsn) +- [Ayoub Tarik ](https://www.linkedin.com/in/ayoubtariq01) +- [Sara El-Ateif](https://www.linkedin.com/in/sara-el-ateif/) + +## Notes + +00:00:00 - Intro and welcoming guests + +00:02:26 - How would you define "AI for Good" and why is it important today? Can you share your journey or experience with AI and social good projects? + +00:15:02 - What are some notable examples of AI addressing global challenges, such as healthcare, climate change, or education, and have you worked on any projects where AI made a tangible positive impact? + +00:40:00 - What ethical challenges do you encounter when implementing AI solutions for social good? + +01:06:46 - How can organizations ensure that AI for good initiatives is inclusive and equitable? + +01:26:12 - How can governments, tech companies, and communities collaborate effectively on AI initiatives? What role does open-source software play in promoting AI for good? + +02:06:00 - Do you think AI can be used to protect and promote human rights worldwide? Are there any ethical boundaries that AI for good initiatives should never cross? + +02:17:40 - What role does education play in preparing future generations to develop and manage ethical AI systems + +02:25:00 - Giveaway + +02:32:07 - Wrap up & Bye bye + +## Links + +- [BlockGPT ~ Your Ultimate Blockchain Assistant](https://blockgpt.app/) +- [Lacuna Fund](https://lacunafund.org/) +- [Masakhane](https://www.masakhane.io/) +- [Marketplace for ready-use AI solutions and models | AI Marketplace](https://app.aimarketplace.co/models) +- [Morocco and AI Illiteracy Part I | Records of the !mmortal Data Scientist](https://www.tahabouhsine.com/blog/2021/09/22/ai-illiteracy-pt1/) +- [OISE International Collaborations - Activity at NSF | NSF - U.S. National Science Foundation](https://www.nsf.gov/od/oise/IntlCollaborations/index.jsp) +- [African Faculty Fellows-MIDAS](https://midas.umich.edu/training/postdocs/african-faculty-fellows/) +- [Google Cloud for Researchers | Google Cloud](https://cloud.google.com/edu/researchers?hl=en) +- [NVIDIA Graduate Fellowship Program | Research](https://research.nvidia.com/graduate-fellowships) +- [Ethics of Artificial Intelligence | UNESCO](https://www.unesco.org/en/artificial-intelligence/recommendation-ethics) +- [ALTs Morocco ยท Events Calendar](https://lu.ma/alts.morocco) + +## Prepared and Presented by + +- [Meriem Zaid](https://www.linkedin.com/in/meriem-zaid-652852187/) +- [Afaf Ridaoui](https://twitter.com/_iamaf) diff --git a/episodes/episode-0199.md b/episodes/episode-0199.md new file mode 100644 index 00000000..028174cb --- /dev/null +++ b/episodes/episode-0199.md @@ -0,0 +1,57 @@ +--- +date: 2024-12-02 +duration: "1:58:56" +title: "AMA & Tech News #33" +tags: ["ama"] +category: "ama" +youtube: https://www.youtube.com/watch?v=EIoQowRX_V0 +published: true +featured: false +--- + +In this Episode , weโ€™re going over the news that was impactful during the previous month with our guests. + +## Guests + +- [Merouane Zouaid](https://x.com/merouanezouaid) +- [Mohammed Daoudi](https://twitter.com/MIduoad) +- [Badr Bellaj](http://bellaj.freehostia.com/) + +## Notes + +00:00:00 - Intro and welcoming guests + +00:02:47 - ALTS morocco introduction, what do they do? + +00:12:34 - The law project authorizing cryptocurrencies in Morocco, since its ban back in 2017 + +00:15:43 - The new regulations challenges of Crypto + +00:19:08 - The benefits of the new regulations in other domains + +01:01:08 - ALTS expansion to other cities and next sessions kickoff + +01:05:51 - ChatGpt takes in google search , with a twist + +01:24:26 - GitHub universe and latest releases + +01:30:34 - FBI encourages Critical Software Must Drop C/C++ by 2026 + +01:57:27 - Giveaway & wrap Up + +## Links + +- [ALTs Morocco ยท Events Calendar](https://lu.ma/alts.morocco) +- [MiCA Regulation 2024](https://gofaizen-sherle.com/crypto-assets-mica-regulation) +- [Central Bank Digital Currency](https://www.imf.org/en/Topics/fintech/central-bank-digital-currency/virtual-handbook) +- [Blockchain and CtyptoCurrency](https://www.youtube.com/watch?v=OTEpZ1bfdzY&ab_channel=GeeksBlaBla) +- [Morocco Developer Survey 2024 | State of Dev Morocco](https://stateofdev.ma/) +- [New from Universe 2024: Get the latest previews and releases - The GitHub Blog](https://github.blog/news-insights/product-news/universe-2024-previews-releases/) +- [Feds: Critical Software Must Drop C/C++ by 2026 or Face Risk - The New Stack](https://thenewstack.io/feds-critical-software-must-drop-c-c-by-2026-or-face-risk/) +- [ChatGpt takes in google search , with a twist](https://www.youtube.com/watch?v=In2DISyMTnM) +- [GitHub universe and latest releases ](https://github.blog/news-insights/product-news/universe-2024-previews-releases/) +- [FBI encourages Critical Software Must Drop C/C++ by 2026](https://thenewstack.io/feds-critical-software-must-drop-c-c-by-2026-or-face-risk/) + +## Prepared and Presented by + +- [Meriem Zaid](https://www.linkedin.com/in/meriem-zaid-652852187/) diff --git a/episodes/script.ts b/episodes/script.ts new file mode 100644 index 00000000..20ee2145 --- /dev/null +++ b/episodes/script.ts @@ -0,0 +1,58 @@ +import * as fs from "fs"; +import * as path from "path"; + +const episodesDir = "./episodes"; + +function processFile(filePath: string) { + const content = fs.readFileSync(filePath, "utf8"); + const lines = content.split("\n"); + let inFrontmatter = false; + let frontmatterStart = -1; + let frontmatterEnd = -1; + + // Find frontmatter boundaries + for (let i = 0; i < lines.length; i++) { + if (lines[i].trim() === "---") { + if (!inFrontmatter) { + inFrontmatter = true; + frontmatterStart = i; + } else { + frontmatterEnd = i; + break; + } + } + } + + if (frontmatterStart !== -1 && frontmatterEnd !== -1) { + const frontmatter = lines.slice(frontmatterStart + 1, frontmatterEnd); + const updatedFrontmatter = frontmatter.filter(line => { + const key = line.split(":")[0].trim(); + return !["isNext", "time", "video", "podcastUrl", "url"].includes(key); + }); + + const updatedContent = [ + ...lines.slice(0, frontmatterStart + 1), + ...updatedFrontmatter, + ...lines.slice(frontmatterEnd), + ].join("\n"); + + fs.writeFileSync(filePath, updatedContent); + } +} + +function processDirectory(dir: string) { + const files = fs.readdirSync(dir); + + for (const file of files) { + const filePath = path.join(dir, file); + const stat = fs.statSync(filePath); + + if (stat.isDirectory()) { + processDirectory(filePath); + } else if (path.extname(file) === ".md") { + processFile(filePath); + } + } +} + +processDirectory(episodesDir); diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..8db5004a --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,56 @@ +import js from "@eslint/js"; +import globals from "globals"; +import tseslint from "typescript-eslint"; +import astroParser from "astro-eslint-parser"; +import eslintPluginAstro from "eslint-plugin-astro"; +import eslintPluginUnicorn from "eslint-plugin-unicorn"; + +export default [ + js.configs.recommended, + ...tseslint.configs.recommended, + ...eslintPluginAstro.configs.recommended, + { + languageOptions: { + globals: { + ...globals.browser, + ...globals.node, + }, + }, + plugins: { + unicorn: eslintPluginUnicorn, + }, + rules: { + "unicorn/filename-case": [ + "error", + { + case: "kebabCase", + }, + ], + }, + }, + { + files: ["*.astro"], + languageOptions: { + parser: astroParser, + parserOptions: { + parser: "@typescript-eslint/parser", + extraFileExtensions: [".astro"], + }, + }, + }, + { + files: ["tailwind.config.cjs", "**/*.d.ts"], + rules: { + "@typescript-eslint/no-require-imports": "off", + "@typescript-eslint/triple-slash-reference": "off", + }, + }, + { + rules: { + "@typescript-eslint/no-unused-expressions": "off", + }, + }, + { + ignores: ["dist/**", ".astro"], + }, +]; diff --git a/font-preload-cache.json b/font-preload-cache.json deleted file mode 100644 index 8c3d5b9f..00000000 --- a/font-preload-cache.json +++ /dev/null @@ -1 +0,0 @@ -{"timestamp":1582653567857,"hash":"d4bf8a4c5a8df8c464e3ca1704ea09e0","assets":{"/dev-404-page/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true},"/blablas/side-projects-indie-hacking":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true},"/blablas/mss-with-badr-el-houari":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/deep-dive-in-java":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/geeksblabla-mss-with-yassine-el-kachchani/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/women-in-tech/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/junior-devs-in-morocco/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/back-to-school-computer-science-edition/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/freelancing-in-morocco/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/competitive-programming-how-to-become-good-at/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/geeks-blabla-mss-with-google-engineer-sghiouar-abdelfettah/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/serverless/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true},"/blablas/the-twelve-factor-app/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/software-security/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/open-source-licenses-standards/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/open-source-with-yassine-elouafi/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/introduction-to-open-source/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/blockchain-crypto-currency-with-badr-bellaj/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,d09GRgABAAAAAEyMAAsAAAAATEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDxIGjWNtYXAAAAFoAAAAVAAAAFQXVtLvZ2FzcAAAAbwAAAAIAAAACAAAABBnbHlmAAABxAAARhQAAEYUawWUnmhlYWQAAEfYAAAANgAAADYKbcAxaGhlYQAASBAAAAAkAAAAJAdGBC5obXR4AABINAAAAbQAAAG0qgBNS2xvY2EAAEnoAAAA3AAAANxAQ1AkbWF4cAAASsQAAAAgAAAAIAB9AW5uYW1lAABK5AAAAYYAAAGGmUoJ+3Bvc3QAAExsAAAAIAAAACAAAwAAAAMD+wGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA6WgDwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADgAAAAKAAgAAgACAAEAIOlo//3//wAAAAAAIOkA//3//wAB/+MXBAADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAgCpAGQDXAMXAAwAIQAAASMVIzUjNTM1MxUzFQMiDgIVFB4CMzI+AjU0LgIjAruVR5WVR5W4SH5eNjZefkhHfl42Nl5+RwGalZVHlZVHAX02Xn5IR35eNjZefkdIfl42AAAAAAMAqQBpA1cDFwAJACsAQgAAATUjESERIxEhETc1IREhESMRITUzNSM1MzUjNTM1IzUzNSM1MzUjNTM1IzUFDgMHFz4DNwcXNzYmJy4BDwEXAnLkAW0t/u23/jcCri79rnJycnKJiUREcnKJiQIkECszOyEnIDsyKRAPLRoBAwQECgagCAKOLv4JAW3+wAGcWy79UgHJ/mUuLS4uLi0uLi0uLi4tCxIzQ1U1GDRTQjERWwefBgoEBAQBGy0AAwCpAGwDVAMXAAoAHQA6AAABLgErASIGDwEhJxMyNj8BNTQmIyEiBh0BFx4BMyEVIxUUBisBIiY9ASMiJi8BFRQWMyEyNj0BBw4BIwKABxwQnRAcBykBVSkaEiINeRQO/ZkOFHgOIhIBNzUUDokOFDUeOBdNKBwCIxwoTRc4HgL7DQ8PDUpK/oINC2RRDhQUDlFkCw1EIg4UFA4iFBRA8RwoKBzxQBQUAAAAAAcA7ABpAxQDFwADAAcACwARABQAGwAmAAABNTMVJzUzFSc1MxUTIREhEScVFyMlIRUzESERASERMzUjESE1IxUBsWVl3NzcAv6pAdyFTk7+zwELhf5wAUT+cCZMAdwmATEzM2AzM2AzMwEm/Z4B3YU3Tl+F/m8CFv2eAhYm/Z5MJgAAAAYA7ABpAxQDFwAFAAgADwAaACoANwAAASERIREnFRcjJSEVMxEhEQEhETM1IxEhNSMVEzAmByIGJy4BIyYGMRUhNScyFhUUBiMiJjU0NjMCj/6pAdyFTk7+zwELhf5wAUT+cCZMAdwmOTonJjEeHQkjIikBavoUHBwUExwcEwMX/Z4B3YU3Tl+F/m8CFv2eAhYm/Z5MJgEMVAFYAQElATScragcExQcHBQTHAACAKQApwNYAtoAIgApAAABFRQGIyEiJjURNDYzITIWFzcuASMhIgYVERQWMyEyNj0BBxMnAScHFzcCqQ8L/lwKEBAKAaQFCQQsBQsG/gwNEhINAfQNEi2vTP7PmUzlTAGDlAsQEAsBowsPBAMsBAUTDf4MDRISDesuAQRQ/r6hUfFQAAADAKkAlgNXAu4ACwAZACUAAAEVIREhFTM1MxEjNTchFwcnNxcHISc3FwcnJzUhESE1IxUjETMVAhUBQv6+K+zsX/7CJx5bWx4nAT4nHltbHo3+vgFCK+zsAYLsAljswf3+wSonHltbHigoHltbHn3s/ajswQICwQAEAQ8AjQLvAvMABQAIAA8AGQAAASERIREnFRcjJSEVMxEhEQEnFSM1Bxc1MxUCaf6mAeCGTk7+zQENhv5tAUdAhj8/hgLz/ZoB4IY4TmCH/m0CGv7FQiwsQkMsLAAAAAAGAKkAZwNZAxcACQASABoAJAAuADcAAAE0JisBEz4BNxEBFBYXNy4BJxUlFz4BPQEOAQEiBhURHgEXEyMBIiYnByEnDgEjNTI2NwsBHgEzA1kmGuK3GzUb/VAJCDURJBECajUICRIj/cUbJRs1G7fiARgsVyw4Ac44K1gsI0UiioojRSIC1xom/kEECQYBbP3QDRYIgQMGBGNWgQkWDGIDBgIXJRv+lAYJBAG//dEFBIqKBAVgAwIBXf6jAgMAAAABAKkAogNYAuEAJAAAEzQyMQE2MhcWFA8BITIWFRQGIyEXFhQHBiInJTQmMS4BNTQ2N7YCAQINIg0LC7sB8hIZGRL+DrkNDQwkDP8AAgcGBgcB3wIBAA0NDSIMuhkSERm4DCMODQ3/AgEGDwgIEAYAAwCpAGQDXAMXABMAIAAsAAABMh4CFRQOAiMiLgI1ND4CAx4BMzI+AjU0JicBJwEuASMiDgIVFBYCA0d+XjY2Xn5HSH5eNjZefl0jUy85ZUsrHRn+fToBgyNTLjpkSywdAxc2Xn5IR35eNjZefkdIfl42/cgZHStLZTkvUyP+fToBgxkdLEtkOi5TAAADAKoAZANRAxcAEwAnAC0AACUuAzEwPgI3HgMxMA4CEzAuAicOAzEwHgIXPgMBJzcXNxcB/XFyLwE6VV8lJl9VOgEvcuJHaXUvLnVpRwE5jYyMjjkB/oCAMFCuK6UooKB4BRAgGxsgEAV4oKAB5wYUJyIiJxQGlMbFMTHFxpT+lIAtU7AyAAAABwCpAGUDWwMXAAMACAAMABAAFAAZAD0AACU1MxUhNTMVIzc1MxUzNTMVITUzFQc1MxUjASMVFAYjIiY9ASMVFAYjIiY9ASMiBhURFBYzITI2NRE0JiMxAnWN/rqMjAGKLor+BoqKiooCJ1sbExMb5hsTExtcExsbEwJVFBsbFMCMjIyMuYqKioqKiriKigJWXBMbGxNcXBMbGxNcGxP9qxQbGxQCVRMbAAAAAAQAqQCHA1sC/QAEAHwA1gDoAAATNSEVIQEOAQcOAQcOASMiJicuAScuAScuATUzFBYXHgEXHgEXHgEzMjY3PgE1NCYnLgEnLgEjIiYjNRYyNzI2Nz4BNz4BNTQmJy4BIyIGBw4BFSM+ATc+ATc+ATc+ATMyFhceARceARceARUUBgcOAQcxHgEXHgEVFAYHMQcjNDY3PgE3PgE3PgE3PgE3PgE3PgE3PgE1NCYnLgEjIgYHDgEHDgEHDgEVIzQ2Nz4BNz4BNz4BMzIWFx4BFx4BFx4BFRQGBw4BBw4BBw4BBw4BBw4BBzMVMQEhIgYVERQWMyEyNjURNCYjMcwCbP2UAhMFDAgIEQsKFQsMFwsKEgcHCwQEBDoCAgIFAwMIBQULBwoRBwcIBAMDCQUFCwcGCwYFCgYGCgUFCAMDAwcGBw4JCxIGBQY6AQQEAwsHBhEJCRUMCRIJCRAHBwwFBAUGBQUQCgwUBwcHBQTn3AQEAwsGBhAICRIKBQoGBQoFBQcEAwMHBgYQCgcLBQQIAgMEAQIBOgMDAwsHBhIKChgOChQJCREHBwsEBAUEBAMKBgYOBwgPCAgPBwcNBo4BS/1+Cg4OCgKCCg4OCgJxZWX+tQkPBgcJAwMEBAQDCwcHEQoKFw0GCwYFCgQEBgIDAgYHBhELCQ0EBQYCAgMBKwEBAgIDBQQECgcJDwUGBQgIBxMMDBUJChAHBwoEBAQDAwIIBgUNCAgRCgsUCAgMAwMMCQoWDQsVCjINFwkKEQgHDgcGDQcDBwQDCAQFCQYFDAcLEQYGBgMDAwgFBQsGBwwGDRgLCxMJCA0EBQUEAwMJBgYPCQkTCwwTCAgPBgcLBQUKBgUKBgYOBzQCCQ4J/bkKDg4KAkcJDgANAKkAiQNaAvgACQATAB0AJgAqAC4AMgA2ADoAPgBDAEgAcQAAATQmIyIGHQEzNSM0JiMiBh0BMzUzNCYjIgYdATM1MzQmIyIGHQEzAzUzFQc1MxUnNTMVBzUzFSc1MxUHNTMVJzUzFSMHNTMVIwEVFAYjIiY9ASMVFAYjIiY9ASMVFAYjIiY9ASMVFAYjIiY9ASMRIREjAesXEBEXT3wYEBEYUfkYEBEXUH0YERAYUUBiY2LtYWJh7WJjYOtgYANiYgHoGBEQGCwYEBEXLRcQERctGBARGHUCsXUC0BEXFxEyMhEXFxEyMhEXFxEyMhEXFxEy/udgYIhhYYhgYIhhYYhgYIhhYYhgYIhhYQGhRREXFxFFRREXFxFFRREXFxFFRREXFxFF/esCFQACAKkAaQNXAxcACQAYAAATIgYVETMRNCYjBQYuAgcRNh4CNy4BJ8sOFEUVDgKMTImDhElJhIOJTBkRGgMXFA79dAKMDhQjLBcsFi3+ZC0WLBcsOzs2AAAAAgC4AGsDTQMXABIAGQAAASIOAhUUHgIzMj4CNSURIzcRIS4DAfRCclYyMlZ0QUFzVjL+0xBLAQ4DKkdgAuExVXNCQXNVMjVad0ECAS02/tk5Z1AyAAAAAAEAqQC4A1cCxQAFAAAlJzcXARcBp/5gngFaVrj8WqQBW2EAAAEAywEkAzICaQAMAAABFjI3ATYmIyEiBhcBAeMLIQwBFwwIEP2yEQcLARgBJAwMAScMEhIM/tkAAQFjAI4CqAL1AAwAAAEGFBcBFjY1ETQmBwEBYwwMAScNEREN/tkB3QshDP7pDAgQAk4RBwv+6AABAVcAjgKcAvUADAAAATY0JwEmBhURFBY3AQKcDAz+2QwSEgwBJwGlDCELARgLBxH9shAIDAEXAAEAywEYAzICXQAMAAABJiIHAQYWMyEyNicBAhsMIQv+6AsHEQJOEAgM/ukCXQwM/tkNERENAScAAgC3AGgDUwMWACIAPAAAJSE3NiYnLgEvAS4BLwEuASMiBhURFAYHBiYvASYiBw4BFxMFIQMmNjc2Mh8BETQ2NzYWHwIeARceAQ8BAbEBOjwEAwcHGg/IBwkBJgIPCgsQBwYGDgWECx0KCAIG1QFd/oviEAUVFkMXXSMbHi8GI7kZKA0MBQdFltMNGwwMEgQvAQoH0woMEAv+uQcLAwMCBG8KCQgVCf7XLgE9FzcTFRVOARMbLAQEIh3ELAUdFRQuFvQAAAMAqQBkA1wDFwATACcAPwAAJSIuAjU0PgIzMh4CFRQOAgMiDgIVFB4CMzI+AjU0LgITNCYjOAErATU4ATU0JiMiBhUxFTM+ATUCAzpkSywsS2Q6OWVLKytLZTlIfl42Nl5+SEd+XjY2Xn6EFQ8BgxUODxXMDhWpK0tlOTpkSywsS2Q6OWVLKwJuNl5+SEd+XjY2Xn5HSH5eNv6kDxWDAQ8VFQ/MARQPAAEA0gEnAy4CWgAJAAABJxUhNQcXNSEVAy6T/sqTkwE2AcGZZWWZmmVlAAAAAwCpAGsDWwMXAAMABwALAAATMxEjFSE1IRMhESGpoaEBxv466QHJ/jcBUQHGUFD9VAICAAEAuAB5A0cDCAALAAABIzUjFSMVMxUzNTMDR+6z7u6z7gIa7u6z7u4AAAAACgCpAGYDWgMXAAQABwAKAA0AEAAUABgAHQAiACwAAAEhESERNyczBxcjPwEVJwc1AREzESczESMTNTMVIzczNSMVFyERMzUhESERIwHqAXD+kLp27HZ27JVwrnH+8beJXFy3uLguXFy4/gfl/u0CVS4B1gFB/r+8XI9cdVeuV1eu/fMBnf5jLgFB/pHm5i6KilwB+S79qwFCAAAAAQCpAX0DVwIDAAMAABMhNSGpAq79UgF9hgAAAAUAqQBqA1YDEgAKABcAIgAvAFkAACUTPgE7ATIWFxMhEzIWFRQGIyImNTQ2MwETPgE7ATIWFxMhEzIWFRQGIyImNTQ2MwEDLgEnPgE1NCYjIgYVFBYXDgEPAScuASc+ATU0JiMiBhUUFhcOAQcDIQIZIQMnGkEaJgMh/vaFJjU1JiU1NSX+PiEDJhpCGiYDIf72hSY1NSYlNjYlAfUnBCsgICZPOThQJx8fLAQNDgQsHx8nUDg4UCcfHywEJwKtlwEYGiIiGv7oAk42JSY1NSYlNv2yARgaIiIa/ugCTjYlJjU1JiU2/YUBSyIyChI/JjhQUDgmPxIKMiJyciIyChI/JjhQUDgmPxIKMiL+tQAADwCpAGkDVwMXAAMABwALAA8AEwAXABsAHwAjACcAKwAvADMANwA8AAAlMzUjBzM1IwczNSMHMzUjBzM1IwczNSMlMzUjNTM1IzUzNSM1MzUjNTM1IwczNSMBMzUjJxEhEQUhESERAykuLlsuLlwuLlsuLlwuLlsuLgHJLi4uLi4uLi4uLlsuLv6SLi6JAZv+NwH3/glpLi4uLi4uLi4uLi4tLi4uLS4uLi0uLi7+ZC5cAZv+ZS4B9/4JAAACAM0AkAMwAvMAAwAHAAAlJwEXEQcBNwEhVAIPVFT98VSQVAIPVP5FVAIPVAAAAAADAKkA2gNXAqYABgANABEAAAE1MzUXBzUhNSM1Bxc1FzMRIwJaapOT/uJqk5OgSEgBi2pkmZlkamSZmWSxAcwABgEPAI0C7wLzAAMACAANABMAFgAdAAABNTMVJzUzFSM9ATMVIxMhESERJxUXIyUhFTMRIREBkmVl3Nzc3Nf+pgHghk5O/s0BDYb+bQEDMzNgMzNgMzMBMP2aAeCGOE5gh/5tAhoAAAABAN8AaAMeAxcAJQAAEwUyFjEeATMyNjcyNjETNjQnJiIPAhE0JiMiBhURJyYiBwYUF98BAAEBBhAICA8GAgH/DQ0MIg0CuBkREhm3DSMODQ0Bdv8CBwYGBwIBAgwjDQsLArkB8hIZGRL+DrkMDAwkDQAAAAIAqQBmA1oDFwAHAA8AAAEjESMRIxc3HQEhNSMVITUC0YqKis/P/mKKArECAwEU/uzPz89ERM7OAAAAAAMAqQBpA1cDFwAEAAgADAAAExcBJwEBBxc3ATcnB96bAYmc/ngB3TSbNf1SsqASATmbAYib/ngB3jWbNP3uEqCyAAAABgEPAI0C7wLzAAUACAAPACsAMABCAAABIREhEScVFyMlIRUzESERExwBBzAGMSMwJjEmNDU3LgE1NDYzMhYVFAYHFwczNSMVNzQ2MzIWHQEzNTAmIyIGMRUzAmn+pgHghk5O/s0BDYb+bdMBAhsCAQgEBAoHBwkEBAhst7cuCyMiCyMUPD0UIwLz/ZoB4IY4TmCH/m0CGv5QAQEBAQEBAQEcAggFBwoKBwUIAhwkgYG2BycnByMjUFAjAAAEAKkBMQNcAkUADwAfAC8APwAAEzMyFh0BFAYrASImPQE0NjsBMhYdARQGKwEiJj0BNDY7ATIWHQEUBisBIiY9ATQ2OwEyFh0BFAYrASImPQE0NsgwDRISDTANEhLPMQ0SEg0xDBISyjMNEhINMw0SEs8zDRISDTMMEhICRRIN1wwSEgzXDRISDdcMEhIM1w0SEg3XDBISDNcNEhIN1wwSEgzXDRIAAAACAKkAZANcAxcABQALAAABIREzESEDIREjESECdv4zuAEV5wHNuP7rAxf+MwEV/gUBzf7rAAAAAAEAqQDpA1gClwA3AAABLgEnLgEnJgYHDgEHDgEHIgYjHgEXLgMnPgM3HgEXMjYzPgE3NhYXHgEXHgEXHgEXMCIVA1cFCQUXMhwcOR0fPR4NGg0BAgEQIBArVFRVKhIlJSQTDRwOAQMCGTUcKE0lKEYfFSURAQEBAQGGBAYDDxYGBgEGBxYOBgwHASRHJAsVFhULK1ZWVisfPR8CDREEBQgNDiwbEigWAQIBAQABAKkAeANaAwgACQAAAR8BBxcnBzcnNwICau6sKdXVKKzuAwjYI6jtcHDtqCMAAAAHAPEAaQMUAxcACQATAB0AJgAxADkAPwAAAQ4BByczMhYdARUUBgcnPgE3FTEHNx4BMzI2NxcjNxcOASMiJic3BzU0NjsBBy4BJzEXLgE9AR4BFxMhESERJwJ3CRIKPUwJDQMDEgYMBsMTDx4ODx4PEpxOLwwXDAsYCy50DQlMPgkSCQYDAwYMBsX+hgIjqQG5AgMCmA0Je0IFBwMsAQIBIRYvAgEBAi/EdgEBAQF2bHsJDZgCAwJRAwcFIQECAQGD/VICBqgAAAIAuABkA0oDFwALADgAAAEiJjU0NjMyFhUUBjc0LgIjIg4CFRQWFTkBHgEXEzEeARcVFBYzMjY9AT4BNzETPgE3OQE0NjUCAWeRkWdnkZHiNFl4RER4WTQBAQMDugopGyEYFyIbKQq6AwMBAQJ+IRcXISEXFyFIER0WDQ0WHREBAwEDBgP+uREaB7YYCgoYtgcaEQFHAwYDAQMBAAIAqQBqA1YDFwArADAAAAEiBgcOAQcOAQcOAQczFSMHDgEHDgEjNTI2Nz4BNz4BNz4BPwE+ATc+ATMVASERIRECrQoTCAkOBwYLBgUKBEJkGAcQCBxLLg0YCgkRCAcMBwUNBxwJEwocSy79/AKt/VMCQwMDAgkGBA4ICBMLVjcOGQojJFcFBQUNCgkXDgofFUQTIAwkI1f+JwKt/VMAAAABAOwAZAMVAxcAKwAAAT4BMzUiBgcOAQ8BDgEHDgEHDgEHDgEjFTI2Nz4BPwEzNSM+ATc+ATc+ATcC2Q0dEkp3LRAfDSwMFAgLFAsMGw8QJhVKdi4MGQsmn2kIDwgJEgoLFg4ChAUFiTg4FDIebSExEBgkDRAWBwgHizg4EScXVooRHg0NFgcJDgQAAAIAswC2A00CygAGAAsAABMhFSEVITURIREhEbMBCgGQ/WYCmv1mAspCQ4X97AFN/rMAAAAGAKkAugNXAsUAGwAfAD4AQwBOAFMAAAEuASMmIisBFTM6ATcyNjc+ATc+ATU0JicuASclIxUhFw4BBw4BBw4BKwEVIzUzMhYXHgEXHgEXHgEVFAYHMQc1MxUjKwE1NyM1MxUHMxUFIREhEQKYAwUDAwYDHh4DBgMDBQMCBAEBAgIBAQQC/v3sATnhAgUDBAkGBQ4IKCVNCA4FBgkEAwUCAgEBAswmJhyQXFWHXF7+zgKu/VIByAECATMBAgIBBAIDBgUEBgMCBAL9QOcFCQMEBgMCAj6rAgIDBgQDCQUFCgUGCgVgq6sebh8dbiCEAaT+XAAAAQCpAKIDWALhACQAAAE0IjEBJiIHBhQfASEiBhUUFjMhBwYUFxYyPwE0NjE+ATU0JicDSwL+/gwjDQsLu/4OEhkZEgHyuQwMDCQN/wIHBgYHAd8CAQANDQ0iDLoZEhEZuAwjDg0N/wIBBg8ICBAGAAMAhQDwA3wCjQAmAD4AUAAAASM1My4BJwcnNy4BJxUjNQ4BBxcHJw4BBzMVIzQ+AjMyHgIVIyUGJic4ATkBPAExJxcyFDkBOAEzFgYHMQMiDgIVFBYXIT4BNTQuAiMDSVUrBiUdGBsYIlYwJy1SIhcbGCApBipbNVt7RUZ7WzUI/skKEgNMegEBAwoKEU+KZzwBAQLzAQE8Z4pOARMoLFAgGBoYHSQDJycCIRsWGxggVC8oRntbNTVbe0YHBgEGAQHLswEGDwUBczxnik8IEQgIEQhPimc8AAQAuABqA00DFwAMAD0ASQB6AAABDgEnLgE3PgEXHgEHPwEnBy4BJzcnByYGIycHFw4BBycHFxQWFQcXNx4BFwcXNzI2Mxc3Jz4BNxc3JzwBNTcGJicmNjc2FhcWBj8BLwEuATU3JwciJi8BDwEiBgcnBxcOARUHHwEeARUHFzcyFh8BPwEyNjcXNyc+ATUB4w5AHyAZDg4/IB8ZDUROFV8CAgEQNToCAwI4NQwBAwFfF0wBTxVgAQIBDzQ6AgQCNzYNAgMBXhdMgBooAwMhGRooAwMhSUQFRwECHiE6AQMBGSsKAQIBQhssAQFEBUcBAh4iOQEDARkrCgECAUIbLAEBAScfGg4OQB8gGQ4OPyAiODUNAgMBXhdMAQFOFV8BAgIQNDsBBAI4NQ0CAwFeF0sBThRgAQICEDQ6AgQC5AMgGhkpAwIgGhkpIBkqCgEDAUIaKwEBQwVHAgEeIToBAwEZKwkBAwFCGywBAUMFRwIBHyI6AQICAAADAKkAoANbAuQACwAWADIAAAEjFSM1IzUzNTMVMyc0NjsBMhYdASM1BSM1NCYrASIGHQEjIgYVERQWMyEyNjURNCYjMQKda19sa2Br7wkHiQYJqAF+sw0JwgkNshQcHBQCUhQcHBMBbW5uYGho5wcKCgcgICA4Cg4OCjgcFP5sFBwcFAGUFBwAAwCpAGYDWgMXAFMAVwBsAAABDgEHDgEHDgEHDgEHDgEHFSM1PgE3PgE3PgE3PgE3PgE3PgE1NCYnLgEjIgYHDgEHDgEHDgEVIzQ2Nz4BNz4BNz4BMzIWFx4BFx4BFx4BFRQGBzEHNTMVAyIOAhUUHgIzMj4CNTQuAiMCfAMJBAULBgYLBQUKBAQFAUcBBAQECAUECgUGCQUEBwMDAgYGBhAKBw0FBQgDBAUBAgFNBQQFDQgIFAwMGg4THwwMFQcICwMDAwMDp1IlSH1eNjZefUhHfV42Nl59RwHxCA4GBgoEBAgEBAkFBg0IFBgLEwgHDQYFCQQECAQECQQFDAcMEgUGBgMDAggEBQoHBg0HDhoMDBQJCA4FBAUFBQUNBwgQCQkQCAwVCPNFRQIZNl59SEd9XjY2Xn1HSH1eNgAAAAAFAKkAZgNaAxcADwAgACQAKAAsAAABFAYjISImNRE0NjMhMhYVJyEiBhURFBYzITI2NRE0JiMBMzUjFzM1IxczNSMDMlM7/rs6U1M6AUU7U47+u0tra0sBRUtra0v+u1JSelFRelFRARw7U1M7AUU6U1M6tmtL/rtLa2tLAUVLa/5/UVFRUVEAAgDSAGgDMAMXABUAGwAAAQ8BIRchDwMvATMfAT8BIS8BIQclExc3EyECvQMC/t4HARQCEgGbnApMBVVUCf75EgIBfAL+FTf4+Df9ogKEJhFOFMgNKyt3PBcXYtEVFZP9lUREAmsAAAAEAOwAaQMQAxcABQAOABMAHAAAEyEXESEREyc1NzUHFRc1NyMDMxMXNScVFxUHFTfsAXup/dzOVFSKiokrVCxTkYlUVIkDF6j9+gKu/mglAyUrQCM/Ksr+xQE7tSNAKyUDJSo/AAAAAAEAqQDpA1gClwA3AAATPgE3PgE3NhYXHgEXHgEXMBYzDgEHPgM3LgMnDgEHIiYjLgEnJgYHDgEHDgEHDgEHOAEVqQUKBRcyGx05HCA9HQ0bDQIBDyAQKlVUVSoTJCUkEw4bDgICAhk2HCdNJidGIBQmEAEBAQGGBAYDDxYGBgEGBxYOBgwHASRHJAsVFhULK1ZWVisfPR8CDREEBQgNDiwbEigWAQIBAQAAAAACAWAAfQKjAwMADABFAAABLgEnJjY3MhYVDgEnEw4BBwYmNz4BNz4BNz4BJyYGBw4BBw4BJyY2Nz4DFx4BBw4BBw4BBw4BFxY2Nz4BNz4BFxYGBwJXHB8BASseHCQBLR4oJ2U5LyMFBzAUCA8HAwYKChIHDh0OBQsJBQMDCjI+QRklIA0TKxQEBwMCAggHDgUQHBAFDAoGBAUCfAIdHR4sASQbHisB/oQ1RAoBIiY5ZjURJBIIFAYGCgYOHg4ECQcFCgYXLiMUAwMvJzhtNwkSCQcOBQUGBA0dDgUOCAYOBgAAAAADAKkAZQNbAxcADABDAFgAAAEuASc0NjcyFhUUBicTDgEHIiY3PgE3PgE3PgEnJgYHDgEHDgEnJjY3PgEXHgEHDgEHDgEHDgEXFjY3PgE3PgEXFgYHAyIOAhUUHgIzMj4CNTQuAiMCPRQWAR4WFBkgFh0dRykiGQQFIg8FCwUCBAcHDQUKFAsDCAYEAgIQYyUaFwkNHw8DBQIBAgYFCgQLFAsECQYFAwNYR35eNjZefkdIfV42Nl1+SAJIARUVFR8BGRQVHwH+8CYxBxgbKUklDRkNBg4FBAcFChUKAwcGAwgEITkEAiIbKE8nBg0HBAoEAwMECRUKAwoGBAoEAd82Xn5HSH1eNjZefUhHfl42AAMApABpA1cDHAAKABgAHAAAASERMzUjESEVMzUXOQEjFTMRITUjFTkBISUzNSMCFP6Qii4BFF3mii7+7F0Bzf4z5+cDHP4zXQEULormXf7sLorm5wAAAAAEAKkApgNcAs8ADQAcACoAOgAANzMyFhUUBisBIiY1NDY7ATIWFRQGKwEiJjU0NjM7ATIWFRQGKwEiJjU0NhMzMhYVERQGKwEiJjURNDbFNgwQEAw2DBAQzzUMEREMNQwQEAy9OAwREQw4DBAQ0TMNEhINMwwSEt8RCwwREQwLERELDBERDAsREQsMEREMCxEB8BIM/hQNEhINAewMEgAAAgCpAGcDWQMXAFwAbQAAAQ4BKwEiJi8BNz4BNyMiBg8BFx4BBw4BKwEiJi8BNz4BNyMiBg8BIzc+ATsBMhYXFgYPARceATsBLgEvATc+ATsBMhYXFgYPARceATsBLgEnLgEvATMXHgEXHgEHEyEiBhURFBYzITI2NRE0JiMDDQQOCCwOGQqLiAIEAiYGCgWGaQ8CAwQNCC0OGAuLiAMDAiUGCwWFLJYKGQ4sCA4EAwIPdnkFCwYlAgMDe5gKGA4tCA4DBAMOdnkFCwYlAgMDD00XCS0TGDMMDwIDJf2eEBcXEAJiEBcXEAEFCAgMDammAwQCBgajgBIZBwgIDA2qpQMEAgYGorgMDQkHBxkSkJMGBwMEA5a5DQwJBwcZEpCTBgcDBAMTXBwMFx0/DhIZBwISFxD9nhAXFxACYhAXAAADAKkAnANXAuQAEAAhADIAABMxNDYzITIWFTEUBiMhIiY1FTE0NjMhMhYVMRQGIyEiJjURMTQ2MyEyFhUxFAYjISImNakkGQI0GSQkGf3MGSQkGQI0GSQkGf3MGSQkGQI0GSQkGf3MGSQBwBkkJBkZJCQZ5hkkJBkaJCQaAcwaJCQaGSQkGQAADwEPAI0C7wLzAAMACAAMABEAFQAZAB4AIgAnACsAMQA0ADsAQgBJAAABNTMVFxUhESEBMzUjFzM1IxU3MzUjBzM1IxczNSMVNzM1IwczNSMVIzM1IzchESERJxUXIyUhFTMRIREfAQcnNxcHMwcXNycHFwJDOSf+uQFH/uA5OWA5OWA5OcA5OWA5OWA5OWA5OWA5Oeb+pgHghk5O/s0BDYb+bVwpG0REGyloKBtERBsoAQA6OgocAUb+4Do6OjpgOjo6Ojo6YDo6Ojo6+f2aAeCGOE5gh/5tAhpXKRtERBwoKRtERBwoAAYBDwCNAu8C8wAHAA0AFwAdACAAJwAAATUjNTMVIzUHNSM1MxUjNTM1IzUzFTMVEyERIREnHwEjJSEVMxEhEQJhKU1NPS5SpBQZPRWh/qYB4IYBT0/+zQENhv5tAVRxGqQZGYoapBlxGosZAbj9mgHghjhOYIf+bQIaAAAEAKkAagNWAxcABgAOADcATAAAARU+ATU0JicUFhc1DgEVFxUjNS4BNTMeARc1LgEnLgE1NDY3NTMVHgEVIzQmJxUeARceARUUBgcDIg4CFRQeAjMyPgI1NC4CIwIMDRoWSBMQDBc3FDFITQEYEwUOBx83SCgUKUFMEQ0HEAcgNkctDEd9XTY2XX1HRn1dNjZdfUYBnTsBDQ8MDWwKDAQ1AQsP3SYmATA2FhQCQQEEAgkjKTAqASYmAy0wDxEDOAIEAgkkKDQsAQHwNl19R0d8XTY2XX1GR31dNgAAAwCkAW4DXAISAAwAGQAmAAABFAYjIiY1NDYzMhYVIRQGIyImNTQ2MzIWFSEUBiMiJjU0NjMyFhUBSDAiIjAwIiIwAQowIiIwMCIiMAEKMCIiMDAiIjABwCIwMCIiMDAiIjAwIiIwMCIiMDAiIjAwIgAAAAAEAKkAZwNaAxcADQAbACkAQQAAARQGIyEiJjU0NjMhMhYHISImNTQ2MyEyFhUUBgcjIiY1NDY7ATIWFRQGASEiBhURFBYzMjY/AT4BMyEyNjURNCYjAvIUDv5jDxQUDwGdDhQi/mMPFBQPAZ0OFBTdzg8UFA/ODhUVAQb92R0oHBUJEgdtBxIKAYkcKSkcAo0OFBQODxQUuxQPDhQUDg8UihUODhQUDg4VAcAoHf3FFBwHB20HBykcAZ0dKAAAAAABAKkAZwNaAxcAFwAAASEiBhURFBYzMjY/AT4BMyEyNjURNCYjAxX92R0oHBUJEgdtBxIKAYkcKSkcAxcoHf3FFBwHB20HBykcAZ0dKAAAAAkAqQBnA1kDFwADAAcACwAPABQAGQAeACMAKgAAATUhFQU1IRUhNSEVJTUhFQMzFSE3NxUjNzMzFyM1MwczFyE1JQcRIREnIQIYARP+7QET/awBE/7tARP19f7wG/XbGsHvGtvBwfYa/vD+9mUCsGX+GgF6uLjlt7e3t+W4uAETLi5cLi4uLlwuLoqx/gEB/7EAAAAFAKkAZgNaAxcACwAXACMAMAA/AAAlIiY1NDYzMhYVFAYnIgYVFBYzMjY1NCYlNDYzMhYVFAYjIiY3NCYjIgYVFBYzMjY1JSYGBwEGFhcWNjcBNiYnAr0NEhINDRISDUBcXEBBXFz+KBINDRISDQ0SvFxBQFxcQEFcASkOJAv+IgsEDg4kCwHeCwQOpTcnJzc3Jyc3+lxBQFxcQEFc3Cc3NycnNzcnQFxcQEFcXEGTCwQO/aYOJAsMBQ4CWg4jDAADAKkAvQNZAsAADQASAB4AAAEVJyYiDwEnJiIPAREhASERIRETMhYVFAYjIiY1NDYDOk8bTxy3GyBaIDECcv1vArD9UNUdKSkdHCkpAqDHTxwctxsgIDIBRv4dAgP9/QG0KRwdKSkdHCkAAAAHAKkAaQNXAxcAAwAHAAsADwAUADMAOgAAJSM3FzcnNxEDMwcnBxcHEQMhESERJzUzNSM1MzUjNTM1IzUzNSM1ITUhETM1MzUjNTM1IwUzESMRIRUCzbpdXRhbW9G4XFwUVlYLAR3+wPvOzre3oKDOzgKA/VIut7egoAJpFy79gPKhoTKdnf7GAWqfnzmUlAEo/m8B+P4Iii0uLi4tLi4uLS79gC0uLi7lAoD9ri4AAAYAqQBnA1kDFwAPAB8AIwAqAC4AMgAAARUjNSMVIzUjFSM1IRUjNQEzFSMRMxUjFTMVIxUzFSMDNTMVAzMRITUhESURIREFIREhArhbLlwuRQHLRf4fLlxcLi4uLi4uXIq3Afn9UAETAW/+YwHL/jUCuy4uLi4uXFwu/h9FActFLlwuWwGFXFz92gH5t/1QLgFv/pEuAcsABACpAKYDXALPAA8AHwAvAD8AABMzMhYVERQGKwEiJjURNDYXMzIWHQEUBisBIiY9ATQ2OwEyFh0BFAYrASImPQE0NhMzMhYVERQGKwEiJjURNDbIMA0SEg0wDRISzzENEhINMQwSEsozDRISDTMNEhLPMw0SEg0zDBISAhISDf7SDRISDQEuDRKzEg17DRISDXsNEhINew0SEg17DRIBcBIM/hQNEhINAewMEgAAAAABAUgAaAK6AxcACQAAATMnBzMVIxc3IwJoUrm5UVG5uVICKe7u0u/vAAAAAAUAqQBkA1wDFwATACcAQwBIAFsAACUiLgI1ND4CMzIeAhUUDgIDIg4CFRQeAjMyPgI1NC4CAxwBMQ4BKwEiJicwNDU3LgE1NDYzMhYVFAYHFwczNSMVNzQ2MzIWHQEzNTAmIyIGMRUzNQIDPWtQLi5Qaz08a1AuLlBrPEh+XjY2Xn5IR35eNjZefjUBAQEfAQEBCAQFCwkICwUECH3V1TUOKCgNKBhFRhgomC5Qazw9a1AuLlBrPTxrUC4CfzZefkhHfl42Nl5+R0h+Xjb+OAECAQEBAQIBIAMJBQgMDAgFCQMgKZSU0ggtLQgoKF1dKCgAAAADAKkAZANcAxcAAwAXACsAAAEhNSETIi4CNTQ+AjMyHgIVFA4CAyIOAhUUHgIzMj4CNTQuAgFUAV3+o686ZEssLEtkOjllSysrS2U5SH5eNjZefkhHfl42Nl5+AZRS/sMrS2U5OmRLLCxLZDo5ZUsrAm42Xn5IR35eNjZefkdIfl42AAACAPYAZwMMAxcABgANAAABITUHFzUhEycVIRUhFQLZ/vfa2gEJM9r+9gEKAWOGwcGGAWnBhnaGAAMAqQB8A1UDCAAPACAAMAAAASMiBhURFBY7ATI2NRE0JhMjIgYVERQWOwEyNjURNCYjBSMiBhURFBY7ATI2NRE0JgErYQ4TEw5hDhMT92INExMNYg0TEw0BBGEOExMOYQ4TEwHCEw7+/A4TEw4BBA4TAUYTDv22DhMTDgJKDhOjEw7+WQ4TEw4Bpw4TAAAAAAMAewD4A4QCgwAMACEALgAAASImNTQ2MzIWFRQGIxEiDgIVFB4CMzI+AjU0LgIjFTIWFRQGIyImNTQ2MwH/PlhYPj9YWD9Qjmk9PWmOUFGNaj09ao1RGCIiGBciIhcBJ1g+P1hYPz5YAVwsPUQZGEQ+Kys+RBgZRD0sjCIYFyIiFxgiAAcAqQBlA1sDFwAFACsAQgBRAGAAbwCVAAABJwcnBxcFIyIGFRQWOwEVFAYjIiYnPAE1NCYnPgE1NCYnPgE1NCYrAREhEQMjPgE1MTU0JisBIiY1NDY7ARcWBgcxJSMiJjU0NjsBMhYVFAYjFSMiJjU0NjsBMhYVFAYjFSMiJjU0NjsBMhYVFAYjASERMw4BFRQWFw4BFRQWFw4BFRQWOwEyNjcxHgE7ATc+AS8BMxECoy6KRS5zAULmHSgoHRcoHQ0YCQoICAoKCAgKKB3PAlZ1RAsNGxMXCg0NCogXBhoa/u5FCg0NCkUKDQ0KRQoNDQpFCg0NCi4KDQ0KLgoNDQoBtf1OdwICCggIChIOBAUoHS4OGQoOIhKrCisjCRVdAo0uikUucy4oHR0oRR0oCggBAwENGAkJGA0NGAkJGA0dKAFC/r7+7A4jE0YTGw0KCg1zH0YOuA0KCg0NCgoNXA0KCQ4OCQoNXA0KCQ4OCQoNAoT+YgUMBg0YCQkYDRIfCQgRCR0oDAkKCwUXZCpqAZ4AAAAAAgCzAHYDSQMNAAwAKwAAATQ2MzIWFRQGIyImNQEnPgE1NC4CIyIOAhUUHgIzMjY3Fx4BPwE2NCcBBW1NTm1tTk1tAkOnFBcqSWI4N2JJKipJYjcoSB+nBQ0EPgQFAgFNbW1NTm1tTv7Ipx9KKDdiSSoqSWI3OGJJKhYTpgUBBT0EDgQACACpAGYDPAMXABsAMQBKAFcAZwB1AIYArQAAJQ4BIzEiJic+ATUwNDEyMDE+ATceARceAQ4BBwUiJjU0NjceARceARcUFhceARcOASMTPgEzMhYXHgEXLgEjIgYHLgEjIgYHPgE3Fz4BMzIWFw4BBy4BJwcuAScuASc+ATMyFhcOAQc3HgEXDgEjMSImJz4BNxEuAScuASceATMxMjY3DgEHAS4BJzQmJy4BIyIGBw4BFQ4BFRQeAjMyNjceATMxMjY3PgImJwLQFS4YFCYRIigBKzcKDxoJFAgSLCH+v0xsKSIDDQgQKxoPDwkXDREmFBcVLxcxVhkKCwIQIhIeOhsZOh8SIhAFLiiDEiYTEiEQBSUeCCQalA8aCQkMAg8iEhQlEhsjB20aIwUQIRESIRAFIhwNFwgLCwIQIhIRIhEEJBwBOhArGg8PH2s+HjobNzszQCQ/UzAfOhkaOx8eOxopNhcLF64NDQkIIVs1ARpSLwwdEiJNSD4UGnJQMFEbESIQHCwQHz0dEB0MCAkCOw0NNC0SJxQFBhAQDxEFBi1PGMgICQcHJUMXJD8ZfAseEREjEgYHCQgZQCNiFkAlBgcHBiRAF/7SCxsPEycUBQYGBShEFwEPHCwQHz0dN0ERDyJxPh9vQjJXQSYRDw8REBAZTFlfKwAAAgCpAGgDWwMaAAsAmgAAASImNTQ2MzIWFRQGJTI2NzA2NTQmMS4BKwEiJicuAT8BPgEvASYGDwEOAScuAT0BNCYnMCYjIgYxDgEdARQGBw4BLwEuAQ8BBhYfAR4BBw4BKwEiBgcwBhUUFjEeATsBMhYXHgEPAQ4BHwEWMj8BPgEXHgEdARQWFzAWMzI2MT4BPQE0Njc+AR8BFjI/ATYmLwEuATc+ATMwMjECAjRKSjQ0SkoBBwoQAQMDARAKQgkSAgMDBi8HAQY3CBQHLwcUBwcdDgkYEBAXCg0LBwglBi8HFAc4BgEHLwYFAwQXCkIKEAEDAwEQCkIKEQIDAwYvBwEGOAcUBy8GFAgHHA4KFxAQFwoOCggHJQcuBxUHNwYBBi8GBQMEGAlCAUNKNDVJSTU0SkANChcQEBgKDQsHByUHLwcUBzcHAQcuBwUEAxgKQgoPAgICAg8KQgoRAwIEBy8GAQY3BxUGLwcUBwcdDQoYEBAXCg0LBwgkBzAGFQc3BgcvBwUEAxgKQgoPAgMDAg8KQgoRAwIEBy8HBjcHFQYwBxMIBxwAAAMApABkA1cDFwAeADQASgAAATc2MhcWFA8BITIWFRQGIyEXFhQHBiIvAS4BNTQ2NxMyHgIVFA4CIyIuAjU0Njc+ATMRMj4CNTQuAiMiBgcOARUUHgIzAUapCBcIBwd6AZYLEREL/mp5CAgIFwioBAUFBLc+bFAvL1BsPj1sUC8tKipsO0h+XjY2Xn5IRX4xMTQ2Xn5HAdCoCQkIFgl4EQsMEHcJFgkJCacFCgUFCgQBFi9QbD49bFAvL1BsPTxsKiot/X42Xn5HSH5eNjQxMX5GR35eNgAAAAMApABkA1cDFwAeADQASgAAAScmIgcGFB8BISIGFRQWMyEHBhQXFjI/AT4BNTQmJwMiDgIVFB4CMzI+AjU0JicuASMDIi4CNTQ+AjMyFhceARUUDgIjArWpCBcICAh5/msMEBAMAZV4CAgIFwioBAQEBLc+bFAvL1BsPT5sUC8tKipsOwFHfl42Nl5+SEV+MTE0Nl5+SAHQqAkJCBYJeBELDBB3CRYJCQmnBQoFBQoEARYvUGw+PWxQLy9QbD08bCoqLf1+Nl5+R0h+XjY0MTF+Rkd+XjYAAAQAqQCmA1wCzwAPACAAMABBAAATMzIWHQEUBisBIiY9ATQ2EyMiBhURFBY7ATI2NRE0JiMTIyIGHQEUFjsBMjY9ATQmNzMyFhURFAYrASImNRE0NjPIMA0SEg0wDRIS+zENEhINMQ0SEg3FMw0SEg0zDRISgjMNEhINMwwSEgwBXxINew0SEg17DRIBcBIM/hQNEhINAewMEv7sEg3XDRISDdcNEoUSDf6kDRISDQFcDRIAAAIAqQBrA1UDFwAWACsAACUuASc+ATceARc+AzceARcOAwcTIg4CFRQeAjMyPgI1NC4CIwHDKVYtDRwRHDkdHjw8PB8PGQskSElKJTxHfF02Nl18R0d8XTY2XXxH+ClWLQwbDx07HyA9PD0fEh4MJEhJSiUCHzZcfUdHfF02Nl18R0d9XDYAAAAGAMgAZgNBAxcAKgA3AHgAhQCRAMQAAAEHLgEnPgE1NCYjIgYHLgEnLgEnLgEnOAE5ATgBMTgBMT4BMzIWFxYUBzEnIiY1NDYzMhYVFAYjBycuASc+ATU0JiMiBhUUFhcOAQ8BJyY0Nz4BMzIWFx4BFx4BFx4BFR4BFx4BFR4BFRwBFRYGBxwBMQ4BBw4BDwEnIiY1NDYzMhYVFAYjBzc+ATsBMhYfAQcnAS4BIyIGBzEuASMiBgcGFBcbAT4BNzE+ATcwNDM+ATc+ATsBMhYXBycOAQ8BFxM2NCcxAxkIBxMLCAo2JhYkDQEDAgMGBAIDAhMzGyVAEhMTdxMbGxMTGxsTlwICJhsREzUmJjYUEBslAwIjGBgZVTIxVRkCBQIBAQEBAwEBAQEBAQEBAQMBAgIDBwUjfBMbGxMTGhoTVgkBGhI/EhoCCFVWAggYVjElQxkfSyg+ax4fH8fGAgIBAwYCAQIEAQYOBz8SGgFSSAECAhVinxkZAhoOCQ8FDBsPJjYTDwMFAwYJBQMEAhMVJSAgSiAXGxMTGxsTExuXFh0rCAwmFiY2NiYWJgwIKx0WPCpjKisxMSsFCQUCBAIDBgQCBQIDBQMDBQMBAwENGgwBAQQJBQkTCDyAGxMTGxsTExvEVhIYGBJWlJQBZSsxHBkZHD02NXs1/qcBWQIFAgYNBgEGDAcEBRgRj3wCBQIlqgEUKmMqAAQAqQCmA1wCzwAPAB8AMABAAAATMzIWHQEUBisBIiY9ATQ2NzMyFh0BFAYrASImPQE0NjczMhYVERQGKwEiJjURNDYzNzMyFhURFAYrASImNRE0NsgwDRISDTANEhLPMQ0SEg0xDBISyjMNEhINMw0SEg3CMw0SEg0zDBISAV8SDXsNEhINew0SXBIN1w0SEg3XDRKFEg3+pA0SEg0BXA0SjxIM/hQNEhINAewMEgAADgDXAGYDLAMXABQAagB2AIIAjwCcAKkAtQDBAM0A2gDnAPQBawAAJSIuAjU0PgIzMh4CFRQOAiMTFx4BMzI2NzY0LwEmIgcGFB8BBy4BJzA2MTUzMjY1NCYrASIGFRQWOwEVMBQxDgEHJzc2NCcmIg8BBhQXHgEzMjY/ARcOARUUHgIzMj4CNTQmJzcDIgYVFBYzMjY1NCYDMjY1NCYjIgYVFBYTDgEXHgE3PgEnLgEHAw4BFx4BNz4BJy4BBwEmBgcGFhcWNjc2JiclJgYHBhYXFjY3NiYFFBYzMjY1NCYjIgYFNCYjIgYVFBYzMjYlDgEXHgE3PgEnLgEHBQ4BFx4BNz4BJy4BBxcmBgcGFhcWNjc2JicTJjQ1MDQxNCYnNCY1IjQxLgEnIiY1IjAxOAExJjAxOAEjMCYjIiYjIjAjMCIjKgEjMCIxBiIHIgYHMCIxDgEVIgYVBw4BHwEUMDEWFDMUFjEWMDEUMjEeARc4ATEeATM6ATM6ATM3PgE/ATQ2MTQ2NTA0MTwBNQICNVxEKChEXDU0XEUnJ0VcNPwHAwkEBQgEBgYuBxMHBwcHGiNYMQEuCQ4OCYoKDQ0KLjFXIxsHBwcHEwYuBwcDCQQECQMHGiEnL1FtPj1tUS8mIhr8Cg0NCgkODgkJDg4JCg0NZgkFBQUSCQgFBQUSCM8IBQQFEwgIBQUFEggBMQgSBQUFCAkSBQQFCP6aCBMEBQUICBMFBAUBVw4JCg0NCgkO/pEOCQoNDQoJDgFfCAUFBRIICAUEBRIJ/poIBQUEEwgIBQQFEwhjCBMFBAUICBIFBQUI2gEBAQEBAQEBAQEBAQECAQEBAQEBAgEBAgEBAQEBAQIBAQEBAQF8AwICCAEBAQEBAQQCAgMCAQEBAgMBIAUIAlMBAZQoRFw0NVxEKChEXDU0XEQoAdkHAwQEAwcTBi4HBwYTBwcaHiUEAS4OCQoNDQoJDi4BBCUeGgcHEwYHBy4GEwcDBAQDBxooYzg9bVEvL1FtPThjKBr+bA4JCg0NCgkOAW8OCQoNDQoJDv6pBBMICAUFBBMICAUFAWYEEwgIBQUEEwgIBQX+5gUFCAkSBQUFCQgSBc8FBQkIEgUFBQgJEncJDQ0JCg0NCgoNDQoJDQ2FBRIJCAUFBRIICQUFzwUSCAkFBQUSCQgFBUwFBQgIEwQFBQgIEwQBVQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQGnBQoFHwEBAgECAQECAwEBAQkBBwW+AQIBAgEBAQIBAAAOAKkAZwNZAxcAAwAHAAsADwATABcAGwAfACMALQAzADsARQBJAAABMxEjAzMRIxMzESMBMxEjEzMRIwMzESMDMxEjAzMRIxMzESMDFTM1IzUjFTMVFzM1IxUzNyMVMxUjFTM3FTM1IxUjNSMVFzM1IwLQLi5FLi6hLS3+vi4uRS4uoS4uiS4uXC4uoS4uoYouXC6hLXJFznNFRXOKLi4uLrgtLQEeAfn+BwH5/gcB+f4HAfn+BwH5/gcB+f4HAfn+BwH5/gcB+f19LS1cLi4tiS4uLi4tLS2JLi5cLYkAAAQAqQCmA1cC8QAKABkAIQAuAAABMwcGIi8BESERIxM3FwEnNzA2OQI4ATERAxcnBwYiFTEnMjY1NCYjIgYVFBYzAfEPfhM2E30BVw8rSfL+sTBDAXVhMC8BAVMTGhoTEhoaEgEYZhAQZgHZ/icBh0nz/rExNAEBk/4RCjElAQE0GBAQGBgQEBgAAAAAAwCpAGgDWAMXACAANQA5AAAlNSMVLgMnMzUjPgM3FTM1HgMXIxUzDgMHAyIOAhUUHgIzMj4CNTQuAiMDMzUjAhguN2BJLgRaWgQuSWA3LjZgSi0EWloELUpgNhdIfV02Nl19SEd9XTY2XX1HLltbl1paBC1KYDYuN2BJLgRaWgQuSWA3LjZgSi0EAoA2XX1IR31dNjZdfUdIfV02/ntbAAIAqgBxA1sC7wAOACcAABM2FhcTFgYHBiYnAyY2Nxc+AxceAjY3MAYHDgEnJgYHMC4CJ8UPGwSSBBAPDxsEkgQQD1ADJkFcOzpiUEAZGBYVflRObhgbIR4DAuAEDxD92w8cBAQQDwImDxsEKwYwJQQlJToXFyxsJiZLFhU7RmJ6bAoAAAMAqQBkA1wDFwAFAAsADwAAASERMxEhAyERIxEhNTM1IwJ2/jO4ARXnAc24/uvn5wMX/jMBFf4FAc3+6y7nAAAFAKkAZQNbAxcADAAZACUAKwAyAAAlMjY/AREhERceATMxNSImLwERIREHDgEjMScUFjMyNjU0JiMiBgEDJxMnNR8BATcBJzMBYRIhDnf+kHcNIhIJEQdpARRqBhEJLhsTExsbExMbAbXPJba/5or+RzEBSGYcZQ4NdwIg/eB3DQ4uBwdpAd/+IWkHB5ITGxsTExsbAWz+Ux4BeVcyebL+lGQBD4MAAAABAN8AaAMeAxcAJQAAAQMiJjEuASMiBgciFDEBBhQXFjI/AhEUFjMyNjURFxYyNzY0JwMe/wIBBg8ICBAGAv8ADQ0NIgwDtxkSERm4DCMODQ0CCAEAAgcGBgcC/v4NIg0LCwK5/g4SGRkSAfK5DQ0MJAwAAAIA7ABnAxIDFwAMABcAAAE0NjMyFhUUBiMiJjUDNz4BOwEyFh8BIQFTZEhHZGRHSGRnKgxKMMUwSgwr/doCa0dlZUdHZWVH/fyrLjo6LqsABACpAI8DWgLzAAwAGAAiADEAAAEyNjU0JiMiBhUUFjMFMjY1NCYjIgYVFBYXIyIGHQEhNTQmJSImKwEiBh0BITUxNTQ2AXw2TEw2NkxMNgEfMUVFMTFFRY24KToBfjr+1QUKBcouQAEGJwHwTDU2TEw2NUwVRTExREQxMUUXOinS0ik6EQFALdqDWiQ4AAAABgCUAKkDcQLaAAQACQAVACIAJgBAAAA3ESERIQchESERASIGFRQWMzI2NTQmAyImNTQ2MzIWFRQGIycVNycHIiYnLgE9ATQ2NzYyHwEeARUUBg8BDgEjMcMCgP2ALwLd/SMBcTlRUTk5UVE5SmlpSkppaUohV1cSAgUCBAUFBAQJBI8FBQUEjwIFAtcB1f4rLgIx/c8Bo1I5OVFROTlS/sJpSkppaUpKaeNeMS2PAgECCQSaBQgDAgJJAgkFBQgDUAECAAMAsACNA08C7gAMABwAMwAAJSImNTQ2MzIWFRQGIwM0NjsBMhYdARQGKwEiJjUFAS4BIyIGBwEGFhceATMhMjY3PgEnMQIAGCEhGBghIRgrDAktCAwMCC0JDAF6/vEJIxQUIwn+8AgCCQohEgIgEiEKCQIJzB4VFR4eFRUeAXMIDAwIzggMDAiJAeMQExMQ/h0OIQ4OEBAODiEOAAUAqQBpA1cDFwAdACwAOwBLAFsAAAEjNTM+ATc1MxUeARczFSMOAQcRIRUhNSERLgEnMQM0NjU0Ji8BBw4BFRwBFyE2NDU0Ji8BBw4BFRQWFTcUBiMiJjU0NjcbAR4BFTEhFAYjIiY1NDY3GwEeARUxAdjU1AMJBS4FCQPU1AMJBQFA/VIBQAUJA2IBBARISgMDAQJQAQQESEkDBAHNSjQ0SgYFc3IGBv5OSjQ0SgUFdHEGBwK8LQYIAx0dAwgGLQYIA/3sLi4CFAMIBv6pAgYDCRIItrkIEAgDBgICBgMJEgi2uQgQCAMGAggzSEgzDRkLAR7+5w0aDzNISDMNGQsBHv7nDRoPAAQAqQCrA1kC1AAKABYAIQAyAAABIzUjNTMyNjczFSMnByM3JzMXNzMHFyEjNSM1MzI2NzMVASEiBhURFBYzITI2NRE0JiMDD0ZDChgmCTjnJyZXT0lUIyRUSU/+9UVECxglCjcB2P1qBQgIBQKWBQgIBQFShC8OG9w1NVlTMjJTWYQvDhvcAYIHBv3xBgcHBgIPBgcAAAAAAQAAAAAAAO/UMKVfDzz1AAsEAAAAAADT5j4MAAAAANPmPgwAAAAAA4QDHAAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAADhAABAAAAAAAAAAAAAAAAAAAAbQQAAAAAAAAAAAAAAAIAAAAEAACpBAAAqQQAAKkEAADsBAAA7AQAAKQEAACpBAABDwQAAKkEAACpBAAAqQQAAKoEAACpBAAAqQQAAKkEAACpBAAAuAQAAKkEAADLBAABYwQAAVcEAADLBAAAtwQAAKkEAADSBAAAqQQAALgEAACpBAAAqQQAAKkEAACpBAAAzQQAAKkEAAEPBAAA3wQAAKkEAACpBAABDwQAAKkEAACpBAAAqQQAAKkEAADxBAAAuAQAAKkEAADsBAAAswQAAKkEAACpBAAAhQQAALgEAACpBAAAqQQAAKkEAADSBAAA7AQAAKkEAAFgBAAAqQQAAKQEAACpBAAAqQQAAKkEAAEPBAABDwQAAKkEAACkBAAAqQQAAKkEAACpBAAAqQQAAKkEAACpBAAAqQQAAKkEAAFIBAAAqQQAAKkEAAD2BAAAqQQAAHsEAACpBAAAswQAAKkEAACpBAAApAQAAKQEAACpBAAAqQQAAMgEAACpBAAA1wQAAKkEAACpBAAAqQQAAKoEAACpBAAAqQQAAN8EAADsBAAAqQQAAJQEAACwBAAAqQQAAKkAAAAAAAoAFAAeAFAArgEEAUYBnAHeAhoCSgKqAuIDKANsA8IFDgWkBdAF/AYOBioGRgZiBn4G4Ac0B0oHZAd6B8gH1gheCLwI1Aj0CSgJYgmACaIKAApUCnAKxgreC0ILkAvgDCYMQAy6DPINXg4aDl4O/g9CD3YPqhAAEHIQ+hEmEXYSFhJaEs4TDBN6E7QUFBQ8FIYU5hUcFXQVwBYYFi4WqBbqFwYXTheQGFoYnBmYGmwa2BtEG54b4hzuHUYfJB+UH9ogKiBsIIwg4CEaIUIhiiHsIjoiviMKAAEAAABtAWwADwAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAHAAAAAQAAAAAAAgAHAGAAAQAAAAAAAwAHADYAAQAAAAAABAAHAHUAAQAAAAAABQALABUAAQAAAAAABgAHAEsAAQAAAAAACgAaAIoAAwABBAkAAQAOAAcAAwABBAkAAgAOAGcAAwABBAkAAwAOAD0AAwABBAkABAAOAHwAAwABBAkABQAWACAAAwABBAkABgAOAFIAAwABBAkACgA0AKRpY29tb29uAGkAYwBvAG0AbwBvAG5WZXJzaW9uIDEuMABWAGUAcgBzAGkAbwBuACAAMQAuADBpY29tb29uAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG5SZWd1bGFyAFIAZQBnAHUAbABhAHJpY29tb29uAGkAYwBvAG0AbwBvAG5Gb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA":true},"/blablas/mss-with-mohamed-zakariae-el-khdime/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/mss-with-taher-alami/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/ml-ai/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/metier-de-developpeur/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true},"/blablas/mss-with-amine-raghib/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/malware-analysis-and-forensics/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/ux-ui-design-principles/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/ar-vr-and-game-dev/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/blablas/web-dev-jsframeworks-best-practices/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,d09GRgABAAAAAEyMAAsAAAAATEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDxIGjWNtYXAAAAFoAAAAVAAAAFQXVtLvZ2FzcAAAAbwAAAAIAAAACAAAABBnbHlmAAABxAAARhQAAEYUawWUnmhlYWQAAEfYAAAANgAAADYKbcAxaGhlYQAASBAAAAAkAAAAJAdGBC5obXR4AABINAAAAbQAAAG0qgBNS2xvY2EAAEnoAAAA3AAAANxAQ1AkbWF4cAAASsQAAAAgAAAAIAB9AW5uYW1lAABK5AAAAYYAAAGGmUoJ+3Bvc3QAAExsAAAAIAAAACAAAwAAAAMD+wGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA6WgDwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADgAAAAKAAgAAgACAAEAIOlo//3//wAAAAAAIOkA//3//wAB/+MXBAADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAgCpAGQDXAMXAAwAIQAAASMVIzUjNTM1MxUzFQMiDgIVFB4CMzI+AjU0LgIjAruVR5WVR5W4SH5eNjZefkhHfl42Nl5+RwGalZVHlZVHAX02Xn5IR35eNjZefkdIfl42AAAAAAMAqQBpA1cDFwAJACsAQgAAATUjESERIxEhETc1IREhESMRITUzNSM1MzUjNTM1IzUzNSM1MzUjNTM1IzUFDgMHFz4DNwcXNzYmJy4BDwEXAnLkAW0t/u23/jcCri79rnJycnKJiUREcnKJiQIkECszOyEnIDsyKRAPLRoBAwQECgagCAKOLv4JAW3+wAGcWy79UgHJ/mUuLS4uLi0uLi0uLi4tCxIzQ1U1GDRTQjERWwefBgoEBAQBGy0AAwCpAGwDVAMXAAoAHQA6AAABLgErASIGDwEhJxMyNj8BNTQmIyEiBh0BFx4BMyEVIxUUBisBIiY9ASMiJi8BFRQWMyEyNj0BBw4BIwKABxwQnRAcBykBVSkaEiINeRQO/ZkOFHgOIhIBNzUUDokOFDUeOBdNKBwCIxwoTRc4HgL7DQ8PDUpK/oINC2RRDhQUDlFkCw1EIg4UFA4iFBRA8RwoKBzxQBQUAAAAAAcA7ABpAxQDFwADAAcACwARABQAGwAmAAABNTMVJzUzFSc1MxUTIREhEScVFyMlIRUzESERASERMzUjESE1IxUBsWVl3NzcAv6pAdyFTk7+zwELhf5wAUT+cCZMAdwmATEzM2AzM2AzMwEm/Z4B3YU3Tl+F/m8CFv2eAhYm/Z5MJgAAAAYA7ABpAxQDFwAFAAgADwAaACoANwAAASERIREnFRcjJSEVMxEhEQEhETM1IxEhNSMVEzAmByIGJy4BIyYGMRUhNScyFhUUBiMiJjU0NjMCj/6pAdyFTk7+zwELhf5wAUT+cCZMAdwmOTonJjEeHQkjIikBavoUHBwUExwcEwMX/Z4B3YU3Tl+F/m8CFv2eAhYm/Z5MJgEMVAFYAQElATScragcExQcHBQTHAACAKQApwNYAtoAIgApAAABFRQGIyEiJjURNDYzITIWFzcuASMhIgYVERQWMyEyNj0BBxMnAScHFzcCqQ8L/lwKEBAKAaQFCQQsBQsG/gwNEhINAfQNEi2vTP7PmUzlTAGDlAsQEAsBowsPBAMsBAUTDf4MDRISDesuAQRQ/r6hUfFQAAADAKkAlgNXAu4ACwAZACUAAAEVIREhFTM1MxEjNTchFwcnNxcHISc3FwcnJzUhESE1IxUjETMVAhUBQv6+K+zsX/7CJx5bWx4nAT4nHltbHo3+vgFCK+zsAYLsAljswf3+wSonHltbHigoHltbHn3s/ajswQICwQAEAQ8AjQLvAvMABQAIAA8AGQAAASERIREnFRcjJSEVMxEhEQEnFSM1Bxc1MxUCaf6mAeCGTk7+zQENhv5tAUdAhj8/hgLz/ZoB4IY4TmCH/m0CGv7FQiwsQkMsLAAAAAAGAKkAZwNZAxcACQASABoAJAAuADcAAAE0JisBEz4BNxEBFBYXNy4BJxUlFz4BPQEOAQEiBhURHgEXEyMBIiYnByEnDgEjNTI2NwsBHgEzA1kmGuK3GzUb/VAJCDURJBECajUICRIj/cUbJRs1G7fiARgsVyw4Ac44K1gsI0UiioojRSIC1xom/kEECQYBbP3QDRYIgQMGBGNWgQkWDGIDBgIXJRv+lAYJBAG//dEFBIqKBAVgAwIBXf6jAgMAAAABAKkAogNYAuEAJAAAEzQyMQE2MhcWFA8BITIWFRQGIyEXFhQHBiInJTQmMS4BNTQ2N7YCAQINIg0LC7sB8hIZGRL+DrkNDQwkDP8AAgcGBgcB3wIBAA0NDSIMuhkSERm4DCMODQ3/AgEGDwgIEAYAAwCpAGQDXAMXABMAIAAsAAABMh4CFRQOAiMiLgI1ND4CAx4BMzI+AjU0JicBJwEuASMiDgIVFBYCA0d+XjY2Xn5HSH5eNjZefl0jUy85ZUsrHRn+fToBgyNTLjpkSywdAxc2Xn5IR35eNjZefkdIfl42/cgZHStLZTkvUyP+fToBgxkdLEtkOi5TAAADAKoAZANRAxcAEwAnAC0AACUuAzEwPgI3HgMxMA4CEzAuAicOAzEwHgIXPgMBJzcXNxcB/XFyLwE6VV8lJl9VOgEvcuJHaXUvLnVpRwE5jYyMjjkB/oCAMFCuK6UooKB4BRAgGxsgEAV4oKAB5wYUJyIiJxQGlMbFMTHFxpT+lIAtU7AyAAAABwCpAGUDWwMXAAMACAAMABAAFAAZAD0AACU1MxUhNTMVIzc1MxUzNTMVITUzFQc1MxUjASMVFAYjIiY9ASMVFAYjIiY9ASMiBhURFBYzITI2NRE0JiMxAnWN/rqMjAGKLor+BoqKiooCJ1sbExMb5hsTExtcExsbEwJVFBsbFMCMjIyMuYqKioqKiriKigJWXBMbGxNcXBMbGxNcGxP9qxQbGxQCVRMbAAAAAAQAqQCHA1sC/QAEAHwA1gDoAAATNSEVIQEOAQcOAQcOASMiJicuAScuAScuATUzFBYXHgEXHgEXHgEzMjY3PgE1NCYnLgEnLgEjIiYjNRYyNzI2Nz4BNz4BNTQmJy4BIyIGBw4BFSM+ATc+ATc+ATc+ATMyFhceARceARceARUUBgcOAQcxHgEXHgEVFAYHMQcjNDY3PgE3PgE3PgE3PgE3PgE3PgE3PgE1NCYnLgEjIgYHDgEHDgEHDgEVIzQ2Nz4BNz4BNz4BMzIWFx4BFx4BFx4BFRQGBw4BBw4BBw4BBw4BBw4BBzMVMQEhIgYVERQWMyEyNjURNCYjMcwCbP2UAhMFDAgIEQsKFQsMFwsKEgcHCwQEBDoCAgIFAwMIBQULBwoRBwcIBAMDCQUFCwcGCwYFCgYGCgUFCAMDAwcGBw4JCxIGBQY6AQQEAwsHBhEJCRUMCRIJCRAHBwwFBAUGBQUQCgwUBwcHBQTn3AQEAwsGBhAICRIKBQoGBQoFBQcEAwMHBgYQCgcLBQQIAgMEAQIBOgMDAwsHBhIKChgOChQJCREHBwsEBAUEBAMKBgYOBwgPCAgPBwcNBo4BS/1+Cg4OCgKCCg4OCgJxZWX+tQkPBgcJAwMEBAQDCwcHEQoKFw0GCwYFCgQEBgIDAgYHBhELCQ0EBQYCAgMBKwEBAgIDBQQECgcJDwUGBQgIBxMMDBUJChAHBwoEBAQDAwIIBgUNCAgRCgsUCAgMAwMMCQoWDQsVCjINFwkKEQgHDgcGDQcDBwQDCAQFCQYFDAcLEQYGBgMDAwgFBQsGBwwGDRgLCxMJCA0EBQUEAwMJBgYPCQkTCwwTCAgPBgcLBQUKBgUKBgYOBzQCCQ4J/bkKDg4KAkcJDgANAKkAiQNaAvgACQATAB0AJgAqAC4AMgA2ADoAPgBDAEgAcQAAATQmIyIGHQEzNSM0JiMiBh0BMzUzNCYjIgYdATM1MzQmIyIGHQEzAzUzFQc1MxUnNTMVBzUzFSc1MxUHNTMVJzUzFSMHNTMVIwEVFAYjIiY9ASMVFAYjIiY9ASMVFAYjIiY9ASMVFAYjIiY9ASMRIREjAesXEBEXT3wYEBEYUfkYEBEXUH0YERAYUUBiY2LtYWJh7WJjYOtgYANiYgHoGBEQGCwYEBEXLRcQERctGBARGHUCsXUC0BEXFxEyMhEXFxEyMhEXFxEyMhEXFxEy/udgYIhhYYhgYIhhYYhgYIhhYYhgYIhhYQGhRREXFxFFRREXFxFFRREXFxFFRREXFxFF/esCFQACAKkAaQNXAxcACQAYAAATIgYVETMRNCYjBQYuAgcRNh4CNy4BJ8sOFEUVDgKMTImDhElJhIOJTBkRGgMXFA79dAKMDhQjLBcsFi3+ZC0WLBcsOzs2AAAAAgC4AGsDTQMXABIAGQAAASIOAhUUHgIzMj4CNSURIzcRIS4DAfRCclYyMlZ0QUFzVjL+0xBLAQ4DKkdgAuExVXNCQXNVMjVad0ECAS02/tk5Z1AyAAAAAAEAqQC4A1cCxQAFAAAlJzcXARcBp/5gngFaVrj8WqQBW2EAAAEAywEkAzICaQAMAAABFjI3ATYmIyEiBhcBAeMLIQwBFwwIEP2yEQcLARgBJAwMAScMEhIM/tkAAQFjAI4CqAL1AAwAAAEGFBcBFjY1ETQmBwEBYwwMAScNEREN/tkB3QshDP7pDAgQAk4RBwv+6AABAVcAjgKcAvUADAAAATY0JwEmBhURFBY3AQKcDAz+2QwSEgwBJwGlDCELARgLBxH9shAIDAEXAAEAywEYAzICXQAMAAABJiIHAQYWMyEyNicBAhsMIQv+6AsHEQJOEAgM/ukCXQwM/tkNERENAScAAgC3AGgDUwMWACIAPAAAJSE3NiYnLgEvAS4BLwEuASMiBhURFAYHBiYvASYiBw4BFxMFIQMmNjc2Mh8BETQ2NzYWHwIeARceAQ8BAbEBOjwEAwcHGg/IBwkBJgIPCgsQBwYGDgWECx0KCAIG1QFd/oviEAUVFkMXXSMbHi8GI7kZKA0MBQdFltMNGwwMEgQvAQoH0woMEAv+uQcLAwMCBG8KCQgVCf7XLgE9FzcTFRVOARMbLAQEIh3ELAUdFRQuFvQAAAMAqQBkA1wDFwATACcAPwAAJSIuAjU0PgIzMh4CFRQOAgMiDgIVFB4CMzI+AjU0LgITNCYjOAErATU4ATU0JiMiBhUxFTM+ATUCAzpkSywsS2Q6OWVLKytLZTlIfl42Nl5+SEd+XjY2Xn6EFQ8BgxUODxXMDhWpK0tlOTpkSywsS2Q6OWVLKwJuNl5+SEd+XjY2Xn5HSH5eNv6kDxWDAQ8VFQ/MARQPAAEA0gEnAy4CWgAJAAABJxUhNQcXNSEVAy6T/sqTkwE2AcGZZWWZmmVlAAAAAwCpAGsDWwMXAAMABwALAAATMxEjFSE1IRMhESGpoaEBxv466QHJ/jcBUQHGUFD9VAICAAEAuAB5A0cDCAALAAABIzUjFSMVMxUzNTMDR+6z7u6z7gIa7u6z7u4AAAAACgCpAGYDWgMXAAQABwAKAA0AEAAUABgAHQAiACwAAAEhESERNyczBxcjPwEVJwc1AREzESczESMTNTMVIzczNSMVFyERMzUhESERIwHqAXD+kLp27HZ27JVwrnH+8beJXFy3uLguXFy4/gfl/u0CVS4B1gFB/r+8XI9cdVeuV1eu/fMBnf5jLgFB/pHm5i6KilwB+S79qwFCAAAAAQCpAX0DVwIDAAMAABMhNSGpAq79UgF9hgAAAAUAqQBqA1YDEgAKABcAIgAvAFkAACUTPgE7ATIWFxMhEzIWFRQGIyImNTQ2MwETPgE7ATIWFxMhEzIWFRQGIyImNTQ2MwEDLgEnPgE1NCYjIgYVFBYXDgEPAScuASc+ATU0JiMiBhUUFhcOAQcDIQIZIQMnGkEaJgMh/vaFJjU1JiU1NSX+PiEDJhpCGiYDIf72hSY1NSYlNjYlAfUnBCsgICZPOThQJx8fLAQNDgQsHx8nUDg4UCcfHywEJwKtlwEYGiIiGv7oAk42JSY1NSYlNv2yARgaIiIa/ugCTjYlJjU1JiU2/YUBSyIyChI/JjhQUDgmPxIKMiJyciIyChI/JjhQUDgmPxIKMiL+tQAADwCpAGkDVwMXAAMABwALAA8AEwAXABsAHwAjACcAKwAvADMANwA8AAAlMzUjBzM1IwczNSMHMzUjBzM1IwczNSMlMzUjNTM1IzUzNSM1MzUjNTM1IwczNSMBMzUjJxEhEQUhESERAykuLlsuLlwuLlsuLlwuLlsuLgHJLi4uLi4uLi4uLlsuLv6SLi6JAZv+NwH3/glpLi4uLi4uLi4uLi4tLi4uLS4uLi0uLi7+ZC5cAZv+ZS4B9/4JAAACAM0AkAMwAvMAAwAHAAAlJwEXEQcBNwEhVAIPVFT98VSQVAIPVP5FVAIPVAAAAAADAKkA2gNXAqYABgANABEAAAE1MzUXBzUhNSM1Bxc1FzMRIwJaapOT/uJqk5OgSEgBi2pkmZlkamSZmWSxAcwABgEPAI0C7wLzAAMACAANABMAFgAdAAABNTMVJzUzFSM9ATMVIxMhESERJxUXIyUhFTMRIREBkmVl3Nzc3Nf+pgHghk5O/s0BDYb+bQEDMzNgMzNgMzMBMP2aAeCGOE5gh/5tAhoAAAABAN8AaAMeAxcAJQAAEwUyFjEeATMyNjcyNjETNjQnJiIPAhE0JiMiBhURJyYiBwYUF98BAAEBBhAICA8GAgH/DQ0MIg0CuBkREhm3DSMODQ0Bdv8CBwYGBwIBAgwjDQsLArkB8hIZGRL+DrkMDAwkDQAAAAIAqQBmA1oDFwAHAA8AAAEjESMRIxc3HQEhNSMVITUC0YqKis/P/mKKArECAwEU/uzPz89ERM7OAAAAAAMAqQBpA1cDFwAEAAgADAAAExcBJwEBBxc3ATcnB96bAYmc/ngB3TSbNf1SsqASATmbAYib/ngB3jWbNP3uEqCyAAAABgEPAI0C7wLzAAUACAAPACsAMABCAAABIREhEScVFyMlIRUzESERExwBBzAGMSMwJjEmNDU3LgE1NDYzMhYVFAYHFwczNSMVNzQ2MzIWHQEzNTAmIyIGMRUzAmn+pgHghk5O/s0BDYb+bdMBAhsCAQgEBAoHBwkEBAhst7cuCyMiCyMUPD0UIwLz/ZoB4IY4TmCH/m0CGv5QAQEBAQEBAQEcAggFBwoKBwUIAhwkgYG2BycnByMjUFAjAAAEAKkBMQNcAkUADwAfAC8APwAAEzMyFh0BFAYrASImPQE0NjsBMhYdARQGKwEiJj0BNDY7ATIWHQEUBisBIiY9ATQ2OwEyFh0BFAYrASImPQE0NsgwDRISDTANEhLPMQ0SEg0xDBISyjMNEhINMw0SEs8zDRISDTMMEhICRRIN1wwSEgzXDRISDdcMEhIM1w0SEg3XDBISDNcNEhIN1wwSEgzXDRIAAAACAKkAZANcAxcABQALAAABIREzESEDIREjESECdv4zuAEV5wHNuP7rAxf+MwEV/gUBzf7rAAAAAAEAqQDpA1gClwA3AAABLgEnLgEnJgYHDgEHDgEHIgYjHgEXLgMnPgM3HgEXMjYzPgE3NhYXHgEXHgEXHgEXMCIVA1cFCQUXMhwcOR0fPR4NGg0BAgEQIBArVFRVKhIlJSQTDRwOAQMCGTUcKE0lKEYfFSURAQEBAQGGBAYDDxYGBgEGBxYOBgwHASRHJAsVFhULK1ZWVisfPR8CDREEBQgNDiwbEigWAQIBAQABAKkAeANaAwgACQAAAR8BBxcnBzcnNwICau6sKdXVKKzuAwjYI6jtcHDtqCMAAAAHAPEAaQMUAxcACQATAB0AJgAxADkAPwAAAQ4BByczMhYdARUUBgcnPgE3FTEHNx4BMzI2NxcjNxcOASMiJic3BzU0NjsBBy4BJzEXLgE9AR4BFxMhESERJwJ3CRIKPUwJDQMDEgYMBsMTDx4ODx4PEpxOLwwXDAsYCy50DQlMPgkSCQYDAwYMBsX+hgIjqQG5AgMCmA0Je0IFBwMsAQIBIRYvAgEBAi/EdgEBAQF2bHsJDZgCAwJRAwcFIQECAQGD/VICBqgAAAIAuABkA0oDFwALADgAAAEiJjU0NjMyFhUUBjc0LgIjIg4CFRQWFTkBHgEXEzEeARcVFBYzMjY9AT4BNzETPgE3OQE0NjUCAWeRkWdnkZHiNFl4RER4WTQBAQMDugopGyEYFyIbKQq6AwMBAQJ+IRcXISEXFyFIER0WDQ0WHREBAwEDBgP+uREaB7YYCgoYtgcaEQFHAwYDAQMBAAIAqQBqA1YDFwArADAAAAEiBgcOAQcOAQcOAQczFSMHDgEHDgEjNTI2Nz4BNz4BNz4BPwE+ATc+ATMVASERIRECrQoTCAkOBwYLBgUKBEJkGAcQCBxLLg0YCgkRCAcMBwUNBxwJEwocSy79/AKt/VMCQwMDAgkGBA4ICBMLVjcOGQojJFcFBQUNCgkXDgofFUQTIAwkI1f+JwKt/VMAAAABAOwAZAMVAxcAKwAAAT4BMzUiBgcOAQ8BDgEHDgEHDgEHDgEjFTI2Nz4BPwEzNSM+ATc+ATc+ATcC2Q0dEkp3LRAfDSwMFAgLFAsMGw8QJhVKdi4MGQsmn2kIDwgJEgoLFg4ChAUFiTg4FDIebSExEBgkDRAWBwgHizg4EScXVooRHg0NFgcJDgQAAAIAswC2A00CygAGAAsAABMhFSEVITURIREhEbMBCgGQ/WYCmv1mAspCQ4X97AFN/rMAAAAGAKkAugNXAsUAGwAfAD4AQwBOAFMAAAEuASMmIisBFTM6ATcyNjc+ATc+ATU0JicuASclIxUhFw4BBw4BBw4BKwEVIzUzMhYXHgEXHgEXHgEVFAYHMQc1MxUjKwE1NyM1MxUHMxUFIREhEQKYAwUDAwYDHh4DBgMDBQMCBAEBAgIBAQQC/v3sATnhAgUDBAkGBQ4IKCVNCA4FBgkEAwUCAgEBAswmJhyQXFWHXF7+zgKu/VIByAECATMBAgIBBAIDBgUEBgMCBAL9QOcFCQMEBgMCAj6rAgIDBgQDCQUFCgUGCgVgq6sebh8dbiCEAaT+XAAAAQCpAKIDWALhACQAAAE0IjEBJiIHBhQfASEiBhUUFjMhBwYUFxYyPwE0NjE+ATU0JicDSwL+/gwjDQsLu/4OEhkZEgHyuQwMDCQN/wIHBgYHAd8CAQANDQ0iDLoZEhEZuAwjDg0N/wIBBg8ICBAGAAMAhQDwA3wCjQAmAD4AUAAAASM1My4BJwcnNy4BJxUjNQ4BBxcHJw4BBzMVIzQ+AjMyHgIVIyUGJic4ATkBPAExJxcyFDkBOAEzFgYHMQMiDgIVFBYXIT4BNTQuAiMDSVUrBiUdGBsYIlYwJy1SIhcbGCApBipbNVt7RUZ7WzUI/skKEgNMegEBAwoKEU+KZzwBAQLzAQE8Z4pOARMoLFAgGBoYHSQDJycCIRsWGxggVC8oRntbNTVbe0YHBgEGAQHLswEGDwUBczxnik8IEQgIEQhPimc8AAQAuABqA00DFwAMAD0ASQB6AAABDgEnLgE3PgEXHgEHPwEnBy4BJzcnByYGIycHFw4BBycHFxQWFQcXNx4BFwcXNzI2Mxc3Jz4BNxc3JzwBNTcGJicmNjc2FhcWBj8BLwEuATU3JwciJi8BDwEiBgcnBxcOARUHHwEeARUHFzcyFh8BPwEyNjcXNyc+ATUB4w5AHyAZDg4/IB8ZDUROFV8CAgEQNToCAwI4NQwBAwFfF0wBTxVgAQIBDzQ6AgQCNzYNAgMBXhdMgBooAwMhGRooAwMhSUQFRwECHiE6AQMBGSsKAQIBQhssAQFEBUcBAh4iOQEDARkrCgECAUIbLAEBAScfGg4OQB8gGQ4OPyAiODUNAgMBXhdMAQFOFV8BAgIQNDsBBAI4NQ0CAwFeF0sBThRgAQICEDQ6AgQC5AMgGhkpAwIgGhkpIBkqCgEDAUIaKwEBQwVHAgEeIToBAwEZKwkBAwFCGywBAUMFRwIBHyI6AQICAAADAKkAoANbAuQACwAWADIAAAEjFSM1IzUzNTMVMyc0NjsBMhYdASM1BSM1NCYrASIGHQEjIgYVERQWMyEyNjURNCYjMQKda19sa2Br7wkHiQYJqAF+sw0JwgkNshQcHBQCUhQcHBMBbW5uYGho5wcKCgcgICA4Cg4OCjgcFP5sFBwcFAGUFBwAAwCpAGYDWgMXAFMAVwBsAAABDgEHDgEHDgEHDgEHDgEHFSM1PgE3PgE3PgE3PgE3PgE3PgE1NCYnLgEjIgYHDgEHDgEHDgEVIzQ2Nz4BNz4BNz4BMzIWFx4BFx4BFx4BFRQGBzEHNTMVAyIOAhUUHgIzMj4CNTQuAiMCfAMJBAULBgYLBQUKBAQFAUcBBAQECAUECgUGCQUEBwMDAgYGBhAKBw0FBQgDBAUBAgFNBQQFDQgIFAwMGg4THwwMFQcICwMDAwMDp1IlSH1eNjZefUhHfV42Nl59RwHxCA4GBgoEBAgEBAkFBg0IFBgLEwgHDQYFCQQECAQECQQFDAcMEgUGBgMDAggEBQoHBg0HDhoMDBQJCA4FBAUFBQUNBwgQCQkQCAwVCPNFRQIZNl59SEd9XjY2Xn1HSH1eNgAAAAAFAKkAZgNaAxcADwAgACQAKAAsAAABFAYjISImNRE0NjMhMhYVJyEiBhURFBYzITI2NRE0JiMBMzUjFzM1IxczNSMDMlM7/rs6U1M6AUU7U47+u0tra0sBRUtra0v+u1JSelFRelFRARw7U1M7AUU6U1M6tmtL/rtLa2tLAUVLa/5/UVFRUVEAAgDSAGgDMAMXABUAGwAAAQ8BIRchDwMvATMfAT8BIS8BIQclExc3EyECvQMC/t4HARQCEgGbnApMBVVUCf75EgIBfAL+FTf4+Df9ogKEJhFOFMgNKyt3PBcXYtEVFZP9lUREAmsAAAAEAOwAaQMQAxcABQAOABMAHAAAEyEXESEREyc1NzUHFRc1NyMDMxMXNScVFxUHFTfsAXup/dzOVFSKiokrVCxTkYlUVIkDF6j9+gKu/mglAyUrQCM/Ksr+xQE7tSNAKyUDJSo/AAAAAAEAqQDpA1gClwA3AAATPgE3PgE3NhYXHgEXHgEXMBYzDgEHPgM3LgMnDgEHIiYjLgEnJgYHDgEHDgEHDgEHOAEVqQUKBRcyGx05HCA9HQ0bDQIBDyAQKlVUVSoTJCUkEw4bDgICAhk2HCdNJidGIBQmEAEBAQGGBAYDDxYGBgEGBxYOBgwHASRHJAsVFhULK1ZWVisfPR8CDREEBQgNDiwbEigWAQIBAQAAAAACAWAAfQKjAwMADABFAAABLgEnJjY3MhYVDgEnEw4BBwYmNz4BNz4BNz4BJyYGBw4BBw4BJyY2Nz4DFx4BBw4BBw4BBw4BFxY2Nz4BNz4BFxYGBwJXHB8BASseHCQBLR4oJ2U5LyMFBzAUCA8HAwYKChIHDh0OBQsJBQMDCjI+QRklIA0TKxQEBwMCAggHDgUQHBAFDAoGBAUCfAIdHR4sASQbHisB/oQ1RAoBIiY5ZjURJBIIFAYGCgYOHg4ECQcFCgYXLiMUAwMvJzhtNwkSCQcOBQUGBA0dDgUOCAYOBgAAAAADAKkAZQNbAxcADABDAFgAAAEuASc0NjcyFhUUBicTDgEHIiY3PgE3PgE3PgEnJgYHDgEHDgEnJjY3PgEXHgEHDgEHDgEHDgEXFjY3PgE3PgEXFgYHAyIOAhUUHgIzMj4CNTQuAiMCPRQWAR4WFBkgFh0dRykiGQQFIg8FCwUCBAcHDQUKFAsDCAYEAgIQYyUaFwkNHw8DBQIBAgYFCgQLFAsECQYFAwNYR35eNjZefkdIfV42Nl1+SAJIARUVFR8BGRQVHwH+8CYxBxgbKUklDRkNBg4FBAcFChUKAwcGAwgEITkEAiIbKE8nBg0HBAoEAwMECRUKAwoGBAoEAd82Xn5HSH1eNjZefUhHfl42AAMApABpA1cDHAAKABgAHAAAASERMzUjESEVMzUXOQEjFTMRITUjFTkBISUzNSMCFP6Qii4BFF3mii7+7F0Bzf4z5+cDHP4zXQEULormXf7sLorm5wAAAAAEAKkApgNcAs8ADQAcACoAOgAANzMyFhUUBisBIiY1NDY7ATIWFRQGKwEiJjU0NjM7ATIWFRQGKwEiJjU0NhMzMhYVERQGKwEiJjURNDbFNgwQEAw2DBAQzzUMEREMNQwQEAy9OAwREQw4DBAQ0TMNEhINMwwSEt8RCwwREQwLERELDBERDAsREQsMEREMCxEB8BIM/hQNEhINAewMEgAAAgCpAGcDWQMXAFwAbQAAAQ4BKwEiJi8BNz4BNyMiBg8BFx4BBw4BKwEiJi8BNz4BNyMiBg8BIzc+ATsBMhYXFgYPARceATsBLgEvATc+ATsBMhYXFgYPARceATsBLgEnLgEvATMXHgEXHgEHEyEiBhURFBYzITI2NRE0JiMDDQQOCCwOGQqLiAIEAiYGCgWGaQ8CAwQNCC0OGAuLiAMDAiUGCwWFLJYKGQ4sCA4EAwIPdnkFCwYlAgMDe5gKGA4tCA4DBAMOdnkFCwYlAgMDD00XCS0TGDMMDwIDJf2eEBcXEAJiEBcXEAEFCAgMDammAwQCBgajgBIZBwgIDA2qpQMEAgYGorgMDQkHBxkSkJMGBwMEA5a5DQwJBwcZEpCTBgcDBAMTXBwMFx0/DhIZBwISFxD9nhAXFxACYhAXAAADAKkAnANXAuQAEAAhADIAABMxNDYzITIWFTEUBiMhIiY1FTE0NjMhMhYVMRQGIyEiJjURMTQ2MyEyFhUxFAYjISImNakkGQI0GSQkGf3MGSQkGQI0GSQkGf3MGSQkGQI0GSQkGf3MGSQBwBkkJBkZJCQZ5hkkJBkaJCQaAcwaJCQaGSQkGQAADwEPAI0C7wLzAAMACAAMABEAFQAZAB4AIgAnACsAMQA0ADsAQgBJAAABNTMVFxUhESEBMzUjFzM1IxU3MzUjBzM1IxczNSMVNzM1IwczNSMVIzM1IzchESERJxUXIyUhFTMRIREfAQcnNxcHMwcXNycHFwJDOSf+uQFH/uA5OWA5OWA5OcA5OWA5OWA5OWA5OWA5Oeb+pgHghk5O/s0BDYb+bVwpG0REGyloKBtERBsoAQA6OgocAUb+4Do6OjpgOjo6Ojo6YDo6Ojo6+f2aAeCGOE5gh/5tAhpXKRtERBwoKRtERBwoAAYBDwCNAu8C8wAHAA0AFwAdACAAJwAAATUjNTMVIzUHNSM1MxUjNTM1IzUzFTMVEyERIREnHwEjJSEVMxEhEQJhKU1NPS5SpBQZPRWh/qYB4IYBT0/+zQENhv5tAVRxGqQZGYoapBlxGosZAbj9mgHghjhOYIf+bQIaAAAEAKkAagNWAxcABgAOADcATAAAARU+ATU0JicUFhc1DgEVFxUjNS4BNTMeARc1LgEnLgE1NDY3NTMVHgEVIzQmJxUeARceARUUBgcDIg4CFRQeAjMyPgI1NC4CIwIMDRoWSBMQDBc3FDFITQEYEwUOBx83SCgUKUFMEQ0HEAcgNkctDEd9XTY2XX1HRn1dNjZdfUYBnTsBDQ8MDWwKDAQ1AQsP3SYmATA2FhQCQQEEAgkjKTAqASYmAy0wDxEDOAIEAgkkKDQsAQHwNl19R0d8XTY2XX1GR31dNgAAAwCkAW4DXAISAAwAGQAmAAABFAYjIiY1NDYzMhYVIRQGIyImNTQ2MzIWFSEUBiMiJjU0NjMyFhUBSDAiIjAwIiIwAQowIiIwMCIiMAEKMCIiMDAiIjABwCIwMCIiMDAiIjAwIiIwMCIiMDAiIjAwIgAAAAAEAKkAZwNaAxcADQAbACkAQQAAARQGIyEiJjU0NjMhMhYHISImNTQ2MyEyFhUUBgcjIiY1NDY7ATIWFRQGASEiBhURFBYzMjY/AT4BMyEyNjURNCYjAvIUDv5jDxQUDwGdDhQi/mMPFBQPAZ0OFBTdzg8UFA/ODhUVAQb92R0oHBUJEgdtBxIKAYkcKSkcAo0OFBQODxQUuxQPDhQUDg8UihUODhQUDg4VAcAoHf3FFBwHB20HBykcAZ0dKAAAAAABAKkAZwNaAxcAFwAAASEiBhURFBYzMjY/AT4BMyEyNjURNCYjAxX92R0oHBUJEgdtBxIKAYkcKSkcAxcoHf3FFBwHB20HBykcAZ0dKAAAAAkAqQBnA1kDFwADAAcACwAPABQAGQAeACMAKgAAATUhFQU1IRUhNSEVJTUhFQMzFSE3NxUjNzMzFyM1MwczFyE1JQcRIREnIQIYARP+7QET/awBE/7tARP19f7wG/XbGsHvGtvBwfYa/vD+9mUCsGX+GgF6uLjlt7e3t+W4uAETLi5cLi4uLlwuLoqx/gEB/7EAAAAFAKkAZgNaAxcACwAXACMAMAA/AAAlIiY1NDYzMhYVFAYnIgYVFBYzMjY1NCYlNDYzMhYVFAYjIiY3NCYjIgYVFBYzMjY1JSYGBwEGFhcWNjcBNiYnAr0NEhINDRISDUBcXEBBXFz+KBINDRISDQ0SvFxBQFxcQEFcASkOJAv+IgsEDg4kCwHeCwQOpTcnJzc3Jyc3+lxBQFxcQEFc3Cc3NycnNzcnQFxcQEFcXEGTCwQO/aYOJAsMBQ4CWg4jDAADAKkAvQNZAsAADQASAB4AAAEVJyYiDwEnJiIPAREhASERIRETMhYVFAYjIiY1NDYDOk8bTxy3GyBaIDECcv1vArD9UNUdKSkdHCkpAqDHTxwctxsgIDIBRv4dAgP9/QG0KRwdKSkdHCkAAAAHAKkAaQNXAxcAAwAHAAsADwAUADMAOgAAJSM3FzcnNxEDMwcnBxcHEQMhESERJzUzNSM1MzUjNTM1IzUzNSM1ITUhETM1MzUjNTM1IwUzESMRIRUCzbpdXRhbW9G4XFwUVlYLAR3+wPvOzre3oKDOzgKA/VIut7egoAJpFy79gPKhoTKdnf7GAWqfnzmUlAEo/m8B+P4Iii0uLi4tLi4uLS79gC0uLi7lAoD9ri4AAAYAqQBnA1kDFwAPAB8AIwAqAC4AMgAAARUjNSMVIzUjFSM1IRUjNQEzFSMRMxUjFTMVIxUzFSMDNTMVAzMRITUhESURIREFIREhArhbLlwuRQHLRf4fLlxcLi4uLi4uXIq3Afn9UAETAW/+YwHL/jUCuy4uLi4uXFwu/h9FActFLlwuWwGFXFz92gH5t/1QLgFv/pEuAcsABACpAKYDXALPAA8AHwAvAD8AABMzMhYVERQGKwEiJjURNDYXMzIWHQEUBisBIiY9ATQ2OwEyFh0BFAYrASImPQE0NhMzMhYVERQGKwEiJjURNDbIMA0SEg0wDRISzzENEhINMQwSEsozDRISDTMNEhLPMw0SEg0zDBISAhISDf7SDRISDQEuDRKzEg17DRISDXsNEhINew0SEg17DRIBcBIM/hQNEhINAewMEgAAAAABAUgAaAK6AxcACQAAATMnBzMVIxc3IwJoUrm5UVG5uVICKe7u0u/vAAAAAAUAqQBkA1wDFwATACcAQwBIAFsAACUiLgI1ND4CMzIeAhUUDgIDIg4CFRQeAjMyPgI1NC4CAxwBMQ4BKwEiJicwNDU3LgE1NDYzMhYVFAYHFwczNSMVNzQ2MzIWHQEzNTAmIyIGMRUzNQIDPWtQLi5Qaz08a1AuLlBrPEh+XjY2Xn5IR35eNjZefjUBAQEfAQEBCAQFCwkICwUECH3V1TUOKCgNKBhFRhgomC5Qazw9a1AuLlBrPTxrUC4CfzZefkhHfl42Nl5+R0h+Xjb+OAECAQEBAQIBIAMJBQgMDAgFCQMgKZSU0ggtLQgoKF1dKCgAAAADAKkAZANcAxcAAwAXACsAAAEhNSETIi4CNTQ+AjMyHgIVFA4CAyIOAhUUHgIzMj4CNTQuAgFUAV3+o686ZEssLEtkOjllSysrS2U5SH5eNjZefkhHfl42Nl5+AZRS/sMrS2U5OmRLLCxLZDo5ZUsrAm42Xn5IR35eNjZefkdIfl42AAACAPYAZwMMAxcABgANAAABITUHFzUhEycVIRUhFQLZ/vfa2gEJM9r+9gEKAWOGwcGGAWnBhnaGAAMAqQB8A1UDCAAPACAAMAAAASMiBhURFBY7ATI2NRE0JhMjIgYVERQWOwEyNjURNCYjBSMiBhURFBY7ATI2NRE0JgErYQ4TEw5hDhMT92INExMNYg0TEw0BBGEOExMOYQ4TEwHCEw7+/A4TEw4BBA4TAUYTDv22DhMTDgJKDhOjEw7+WQ4TEw4Bpw4TAAAAAAMAewD4A4QCgwAMACEALgAAASImNTQ2MzIWFRQGIxEiDgIVFB4CMzI+AjU0LgIjFTIWFRQGIyImNTQ2MwH/PlhYPj9YWD9Qjmk9PWmOUFGNaj09ao1RGCIiGBciIhcBJ1g+P1hYPz5YAVwsPUQZGEQ+Kys+RBgZRD0sjCIYFyIiFxgiAAcAqQBlA1sDFwAFACsAQgBRAGAAbwCVAAABJwcnBxcFIyIGFRQWOwEVFAYjIiYnPAE1NCYnPgE1NCYnPgE1NCYrAREhEQMjPgE1MTU0JisBIiY1NDY7ARcWBgcxJSMiJjU0NjsBMhYVFAYjFSMiJjU0NjsBMhYVFAYjFSMiJjU0NjsBMhYVFAYjASERMw4BFRQWFw4BFRQWFw4BFRQWOwEyNjcxHgE7ATc+AS8BMxECoy6KRS5zAULmHSgoHRcoHQ0YCQoICAoKCAgKKB3PAlZ1RAsNGxMXCg0NCogXBhoa/u5FCg0NCkUKDQ0KRQoNDQpFCg0NCi4KDQ0KLgoNDQoBtf1OdwICCggIChIOBAUoHS4OGQoOIhKrCisjCRVdAo0uikUucy4oHR0oRR0oCggBAwENGAkJGA0NGAkJGA0dKAFC/r7+7A4jE0YTGw0KCg1zH0YOuA0KCg0NCgoNXA0KCQ4OCQoNXA0KCQ4OCQoNAoT+YgUMBg0YCQkYDRIfCQgRCR0oDAkKCwUXZCpqAZ4AAAAAAgCzAHYDSQMNAAwAKwAAATQ2MzIWFRQGIyImNQEnPgE1NC4CIyIOAhUUHgIzMjY3Fx4BPwE2NCcBBW1NTm1tTk1tAkOnFBcqSWI4N2JJKipJYjcoSB+nBQ0EPgQFAgFNbW1NTm1tTv7Ipx9KKDdiSSoqSWI3OGJJKhYTpgUBBT0EDgQACACpAGYDPAMXABsAMQBKAFcAZwB1AIYArQAAJQ4BIzEiJic+ATUwNDEyMDE+ATceARceAQ4BBwUiJjU0NjceARceARcUFhceARcOASMTPgEzMhYXHgEXLgEjIgYHLgEjIgYHPgE3Fz4BMzIWFw4BBy4BJwcuAScuASc+ATMyFhcOAQc3HgEXDgEjMSImJz4BNxEuAScuASceATMxMjY3DgEHAS4BJzQmJy4BIyIGBw4BFQ4BFRQeAjMyNjceATMxMjY3PgImJwLQFS4YFCYRIigBKzcKDxoJFAgSLCH+v0xsKSIDDQgQKxoPDwkXDREmFBcVLxcxVhkKCwIQIhIeOhsZOh8SIhAFLiiDEiYTEiEQBSUeCCQalA8aCQkMAg8iEhQlEhsjB20aIwUQIRESIRAFIhwNFwgLCwIQIhIRIhEEJBwBOhArGg8PH2s+HjobNzszQCQ/UzAfOhkaOx8eOxopNhcLF64NDQkIIVs1ARpSLwwdEiJNSD4UGnJQMFEbESIQHCwQHz0dEB0MCAkCOw0NNC0SJxQFBhAQDxEFBi1PGMgICQcHJUMXJD8ZfAseEREjEgYHCQgZQCNiFkAlBgcHBiRAF/7SCxsPEycUBQYGBShEFwEPHCwQHz0dN0ERDyJxPh9vQjJXQSYRDw8REBAZTFlfKwAAAgCpAGgDWwMaAAsAmgAAASImNTQ2MzIWFRQGJTI2NzA2NTQmMS4BKwEiJicuAT8BPgEvASYGDwEOAScuAT0BNCYnMCYjIgYxDgEdARQGBw4BLwEuAQ8BBhYfAR4BBw4BKwEiBgcwBhUUFjEeATsBMhYXHgEPAQ4BHwEWMj8BPgEXHgEdARQWFzAWMzI2MT4BPQE0Njc+AR8BFjI/ATYmLwEuATc+ATMwMjECAjRKSjQ0SkoBBwoQAQMDARAKQgkSAgMDBi8HAQY3CBQHLwcUBwcdDgkYEBAXCg0LBwglBi8HFAc4BgEHLwYFAwQXCkIKEAEDAwEQCkIKEQIDAwYvBwEGOAcUBy8GFAgHHA4KFxAQFwoOCggHJQcuBxUHNwYBBi8GBQMEGAlCAUNKNDVJSTU0SkANChcQEBgKDQsHByUHLwcUBzcHAQcuBwUEAxgKQgoPAgICAg8KQgoRAwIEBy8GAQY3BxUGLwcUBwcdDQoYEBAXCg0LBwgkBzAGFQc3BgcvBwUEAxgKQgoPAgMDAg8KQgoRAwIEBy8HBjcHFQYwBxMIBxwAAAMApABkA1cDFwAeADQASgAAATc2MhcWFA8BITIWFRQGIyEXFhQHBiIvAS4BNTQ2NxMyHgIVFA4CIyIuAjU0Njc+ATMRMj4CNTQuAiMiBgcOARUUHgIzAUapCBcIBwd6AZYLEREL/mp5CAgIFwioBAUFBLc+bFAvL1BsPj1sUC8tKipsO0h+XjY2Xn5IRX4xMTQ2Xn5HAdCoCQkIFgl4EQsMEHcJFgkJCacFCgUFCgQBFi9QbD49bFAvL1BsPTxsKiot/X42Xn5HSH5eNjQxMX5GR35eNgAAAAMApABkA1cDFwAeADQASgAAAScmIgcGFB8BISIGFRQWMyEHBhQXFjI/AT4BNTQmJwMiDgIVFB4CMzI+AjU0JicuASMDIi4CNTQ+AjMyFhceARUUDgIjArWpCBcICAh5/msMEBAMAZV4CAgIFwioBAQEBLc+bFAvL1BsPT5sUC8tKipsOwFHfl42Nl5+SEV+MTE0Nl5+SAHQqAkJCBYJeBELDBB3CRYJCQmnBQoFBQoEARYvUGw+PWxQLy9QbD08bCoqLf1+Nl5+R0h+XjY0MTF+Rkd+XjYAAAQAqQCmA1wCzwAPACAAMABBAAATMzIWHQEUBisBIiY9ATQ2EyMiBhURFBY7ATI2NRE0JiMTIyIGHQEUFjsBMjY9ATQmNzMyFhURFAYrASImNRE0NjPIMA0SEg0wDRIS+zENEhINMQ0SEg3FMw0SEg0zDRISgjMNEhINMwwSEgwBXxINew0SEg17DRIBcBIM/hQNEhINAewMEv7sEg3XDRISDdcNEoUSDf6kDRISDQFcDRIAAAIAqQBrA1UDFwAWACsAACUuASc+ATceARc+AzceARcOAwcTIg4CFRQeAjMyPgI1NC4CIwHDKVYtDRwRHDkdHjw8PB8PGQskSElKJTxHfF02Nl18R0d8XTY2XXxH+ClWLQwbDx07HyA9PD0fEh4MJEhJSiUCHzZcfUdHfF02Nl18R0d9XDYAAAAGAMgAZgNBAxcAKgA3AHgAhQCRAMQAAAEHLgEnPgE1NCYjIgYHLgEnLgEnLgEnOAE5ATgBMTgBMT4BMzIWFxYUBzEnIiY1NDYzMhYVFAYjBycuASc+ATU0JiMiBhUUFhcOAQ8BJyY0Nz4BMzIWFx4BFx4BFx4BFR4BFx4BFR4BFRwBFRYGBxwBMQ4BBw4BDwEnIiY1NDYzMhYVFAYjBzc+ATsBMhYfAQcnAS4BIyIGBzEuASMiBgcGFBcbAT4BNzE+ATcwNDM+ATc+ATsBMhYXBycOAQ8BFxM2NCcxAxkIBxMLCAo2JhYkDQEDAgMGBAIDAhMzGyVAEhMTdxMbGxMTGxsTlwICJhsREzUmJjYUEBslAwIjGBgZVTIxVRkCBQIBAQEBAwEBAQEBAQEBAQMBAgIDBwUjfBMbGxMTGhoTVgkBGhI/EhoCCFVWAggYVjElQxkfSyg+ax4fH8fGAgIBAwYCAQIEAQYOBz8SGgFSSAECAhVinxkZAhoOCQ8FDBsPJjYTDwMFAwYJBQMEAhMVJSAgSiAXGxMTGxsTExuXFh0rCAwmFiY2NiYWJgwIKx0WPCpjKisxMSsFCQUCBAIDBgQCBQIDBQMDBQMBAwENGgwBAQQJBQkTCDyAGxMTGxsTExvEVhIYGBJWlJQBZSsxHBkZHD02NXs1/qcBWQIFAgYNBgEGDAcEBRgRj3wCBQIlqgEUKmMqAAQAqQCmA1wCzwAPAB8AMABAAAATMzIWHQEUBisBIiY9ATQ2NzMyFh0BFAYrASImPQE0NjczMhYVERQGKwEiJjURNDYzNzMyFhURFAYrASImNRE0NsgwDRISDTANEhLPMQ0SEg0xDBISyjMNEhINMw0SEg3CMw0SEg0zDBISAV8SDXsNEhINew0SXBIN1w0SEg3XDRKFEg3+pA0SEg0BXA0SjxIM/hQNEhINAewMEgAADgDXAGYDLAMXABQAagB2AIIAjwCcAKkAtQDBAM0A2gDnAPQBawAAJSIuAjU0PgIzMh4CFRQOAiMTFx4BMzI2NzY0LwEmIgcGFB8BBy4BJzA2MTUzMjY1NCYrASIGFRQWOwEVMBQxDgEHJzc2NCcmIg8BBhQXHgEzMjY/ARcOARUUHgIzMj4CNTQmJzcDIgYVFBYzMjY1NCYDMjY1NCYjIgYVFBYTDgEXHgE3PgEnLgEHAw4BFx4BNz4BJy4BBwEmBgcGFhcWNjc2JiclJgYHBhYXFjY3NiYFFBYzMjY1NCYjIgYFNCYjIgYVFBYzMjYlDgEXHgE3PgEnLgEHBQ4BFx4BNz4BJy4BBxcmBgcGFhcWNjc2JicTJjQ1MDQxNCYnNCY1IjQxLgEnIiY1IjAxOAExJjAxOAEjMCYjIiYjIjAjMCIjKgEjMCIxBiIHIgYHMCIxDgEVIgYVBw4BHwEUMDEWFDMUFjEWMDEUMjEeARc4ATEeATM6ATM6ATM3PgE/ATQ2MTQ2NTA0MTwBNQICNVxEKChEXDU0XEUnJ0VcNPwHAwkEBQgEBgYuBxMHBwcHGiNYMQEuCQ4OCYoKDQ0KLjFXIxsHBwcHEwYuBwcDCQQECQMHGiEnL1FtPj1tUS8mIhr8Cg0NCgkODgkJDg4JCg0NZgkFBQUSCQgFBQUSCM8IBQQFEwgIBQUFEggBMQgSBQUFCAkSBQQFCP6aCBMEBQUICBMFBAUBVw4JCg0NCgkO/pEOCQoNDQoJDgFfCAUFBRIICAUEBRIJ/poIBQUEEwgIBQQFEwhjCBMFBAUICBIFBQUI2gEBAQEBAQEBAQEBAQECAQEBAQEBAgEBAgEBAQEBAQIBAQEBAQF8AwICCAEBAQEBAQQCAgMCAQEBAgMBIAUIAlMBAZQoRFw0NVxEKChEXDU0XEQoAdkHAwQEAwcTBi4HBwYTBwcaHiUEAS4OCQoNDQoJDi4BBCUeGgcHEwYHBy4GEwcDBAQDBxooYzg9bVEvL1FtPThjKBr+bA4JCg0NCgkOAW8OCQoNDQoJDv6pBBMICAUFBBMICAUFAWYEEwgIBQUEEwgIBQX+5gUFCAkSBQUFCQgSBc8FBQkIEgUFBQgJEncJDQ0JCg0NCgoNDQoJDQ2FBRIJCAUFBRIICQUFzwUSCAkFBQUSCQgFBUwFBQgIEwQFBQgIEwQBVQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQGnBQoFHwEBAgECAQECAwEBAQkBBwW+AQIBAgEBAQIBAAAOAKkAZwNZAxcAAwAHAAsADwATABcAGwAfACMALQAzADsARQBJAAABMxEjAzMRIxMzESMBMxEjEzMRIwMzESMDMxEjAzMRIxMzESMDFTM1IzUjFTMVFzM1IxUzNyMVMxUjFTM3FTM1IxUjNSMVFzM1IwLQLi5FLi6hLS3+vi4uRS4uoS4uiS4uXC4uoS4uoYouXC6hLXJFznNFRXOKLi4uLrgtLQEeAfn+BwH5/gcB+f4HAfn+BwH5/gcB+f4HAfn+BwH5/gcB+f19LS1cLi4tiS4uLi4tLS2JLi5cLYkAAAQAqQCmA1cC8QAKABkAIQAuAAABMwcGIi8BESERIxM3FwEnNzA2OQI4ATERAxcnBwYiFTEnMjY1NCYjIgYVFBYzAfEPfhM2E30BVw8rSfL+sTBDAXVhMC8BAVMTGhoTEhoaEgEYZhAQZgHZ/icBh0nz/rExNAEBk/4RCjElAQE0GBAQGBgQEBgAAAAAAwCpAGgDWAMXACAANQA5AAAlNSMVLgMnMzUjPgM3FTM1HgMXIxUzDgMHAyIOAhUUHgIzMj4CNTQuAiMDMzUjAhguN2BJLgRaWgQuSWA3LjZgSi0EWloELUpgNhdIfV02Nl19SEd9XTY2XX1HLltbl1paBC1KYDYuN2BJLgRaWgQuSWA3LjZgSi0EAoA2XX1IR31dNjZdfUdIfV02/ntbAAIAqgBxA1sC7wAOACcAABM2FhcTFgYHBiYnAyY2Nxc+AxceAjY3MAYHDgEnJgYHMC4CJ8UPGwSSBBAPDxsEkgQQD1ADJkFcOzpiUEAZGBYVflRObhgbIR4DAuAEDxD92w8cBAQQDwImDxsEKwYwJQQlJToXFyxsJiZLFhU7RmJ6bAoAAAMAqQBkA1wDFwAFAAsADwAAASERMxEhAyERIxEhNTM1IwJ2/jO4ARXnAc24/uvn5wMX/jMBFf4FAc3+6y7nAAAFAKkAZQNbAxcADAAZACUAKwAyAAAlMjY/AREhERceATMxNSImLwERIREHDgEjMScUFjMyNjU0JiMiBgEDJxMnNR8BATcBJzMBYRIhDnf+kHcNIhIJEQdpARRqBhEJLhsTExsbExMbAbXPJba/5or+RzEBSGYcZQ4NdwIg/eB3DQ4uBwdpAd/+IWkHB5ITGxsTExsbAWz+Ux4BeVcyebL+lGQBD4MAAAABAN8AaAMeAxcAJQAAAQMiJjEuASMiBgciFDEBBhQXFjI/AhEUFjMyNjURFxYyNzY0JwMe/wIBBg8ICBAGAv8ADQ0NIgwDtxkSERm4DCMODQ0CCAEAAgcGBgcC/v4NIg0LCwK5/g4SGRkSAfK5DQ0MJAwAAAIA7ABnAxIDFwAMABcAAAE0NjMyFhUUBiMiJjUDNz4BOwEyFh8BIQFTZEhHZGRHSGRnKgxKMMUwSgwr/doCa0dlZUdHZWVH/fyrLjo6LqsABACpAI8DWgLzAAwAGAAiADEAAAEyNjU0JiMiBhUUFjMFMjY1NCYjIgYVFBYXIyIGHQEhNTQmJSImKwEiBh0BITUxNTQ2AXw2TEw2NkxMNgEfMUVFMTFFRY24KToBfjr+1QUKBcouQAEGJwHwTDU2TEw2NUwVRTExREQxMUUXOinS0ik6EQFALdqDWiQ4AAAABgCUAKkDcQLaAAQACQAVACIAJgBAAAA3ESERIQchESERASIGFRQWMzI2NTQmAyImNTQ2MzIWFRQGIycVNycHIiYnLgE9ATQ2NzYyHwEeARUUBg8BDgEjMcMCgP2ALwLd/SMBcTlRUTk5UVE5SmlpSkppaUohV1cSAgUCBAUFBAQJBI8FBQUEjwIFAtcB1f4rLgIx/c8Bo1I5OVFROTlS/sJpSkppaUpKaeNeMS2PAgECCQSaBQgDAgJJAgkFBQgDUAECAAMAsACNA08C7gAMABwAMwAAJSImNTQ2MzIWFRQGIwM0NjsBMhYdARQGKwEiJjUFAS4BIyIGBwEGFhceATMhMjY3PgEnMQIAGCEhGBghIRgrDAktCAwMCC0JDAF6/vEJIxQUIwn+8AgCCQohEgIgEiEKCQIJzB4VFR4eFRUeAXMIDAwIzggMDAiJAeMQExMQ/h0OIQ4OEBAODiEOAAUAqQBpA1cDFwAdACwAOwBLAFsAAAEjNTM+ATc1MxUeARczFSMOAQcRIRUhNSERLgEnMQM0NjU0Ji8BBw4BFRwBFyE2NDU0Ji8BBw4BFRQWFTcUBiMiJjU0NjcbAR4BFTEhFAYjIiY1NDY3GwEeARUxAdjU1AMJBS4FCQPU1AMJBQFA/VIBQAUJA2IBBARISgMDAQJQAQQESEkDBAHNSjQ0SgYFc3IGBv5OSjQ0SgUFdHEGBwK8LQYIAx0dAwgGLQYIA/3sLi4CFAMIBv6pAgYDCRIItrkIEAgDBgICBgMJEgi2uQgQCAMGAggzSEgzDRkLAR7+5w0aDzNISDMNGQsBHv7nDRoPAAQAqQCrA1kC1AAKABYAIQAyAAABIzUjNTMyNjczFSMnByM3JzMXNzMHFyEjNSM1MzI2NzMVASEiBhURFBYzITI2NRE0JiMDD0ZDChgmCTjnJyZXT0lUIyRUSU/+9UVECxglCjcB2P1qBQgIBQKWBQgIBQFShC8OG9w1NVlTMjJTWYQvDhvcAYIHBv3xBgcHBgIPBgcAAAAAAQAAAAAAAO/UMKVfDzz1AAsEAAAAAADT5j4MAAAAANPmPgwAAAAAA4QDHAAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAADhAABAAAAAAAAAAAAAAAAAAAAbQQAAAAAAAAAAAAAAAIAAAAEAACpBAAAqQQAAKkEAADsBAAA7AQAAKQEAACpBAABDwQAAKkEAACpBAAAqQQAAKoEAACpBAAAqQQAAKkEAACpBAAAuAQAAKkEAADLBAABYwQAAVcEAADLBAAAtwQAAKkEAADSBAAAqQQAALgEAACpBAAAqQQAAKkEAACpBAAAzQQAAKkEAAEPBAAA3wQAAKkEAACpBAABDwQAAKkEAACpBAAAqQQAAKkEAADxBAAAuAQAAKkEAADsBAAAswQAAKkEAACpBAAAhQQAALgEAACpBAAAqQQAAKkEAADSBAAA7AQAAKkEAAFgBAAAqQQAAKQEAACpBAAAqQQAAKkEAAEPBAABDwQAAKkEAACkBAAAqQQAAKkEAACpBAAAqQQAAKkEAACpBAAAqQQAAKkEAAFIBAAAqQQAAKkEAAD2BAAAqQQAAHsEAACpBAAAswQAAKkEAACpBAAApAQAAKQEAACpBAAAqQQAAMgEAACpBAAA1wQAAKkEAACpBAAAqQQAAKoEAACpBAAAqQQAAN8EAADsBAAAqQQAAJQEAACwBAAAqQQAAKkAAAAAAAoAFAAeAFAArgEEAUYBnAHeAhoCSgKqAuIDKANsA8IFDgWkBdAF/AYOBioGRgZiBn4G4Ac0B0oHZAd6B8gH1gheCLwI1Aj0CSgJYgmACaIKAApUCnAKxgreC0ILkAvgDCYMQAy6DPINXg4aDl4O/g9CD3YPqhAAEHIQ+hEmEXYSFhJaEs4TDBN6E7QUFBQ8FIYU5hUcFXQVwBYYFi4WqBbqFwYXTheQGFoYnBmYGmwa2BtEG54b4hzuHUYfJB+UH9ogKiBsIIwg4CEaIUIhiiHsIjoiviMKAAEAAABtAWwADwAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAHAAAAAQAAAAAAAgAHAGAAAQAAAAAAAwAHADYAAQAAAAAABAAHAHUAAQAAAAAABQALABUAAQAAAAAABgAHAEsAAQAAAAAACgAaAIoAAwABBAkAAQAOAAcAAwABBAkAAgAOAGcAAwABBAkAAwAOAD0AAwABBAkABAAOAHwAAwABBAkABQAWACAAAwABBAkABgAOAFIAAwABBAkACgA0AKRpY29tb29uAGkAYwBvAG0AbwBvAG5WZXJzaW9uIDEuMABWAGUAcgBzAGkAbwBuACAAMQAuADBpY29tb29uAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG5SZWd1bGFyAFIAZQBnAHUAbABhAHJpY29tb29uAGkAYwBvAG0AbwBvAG5Gb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA":true},"/blablas/devops/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/404/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true},"/about/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"/static/lato-latin-300-98d8cf792834c0bef59c2be99dc3533d.woff2":true},"/blablas/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"data:application/x-font-woff;base64,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":true},"/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true,"/static/lato-latin-700-1efbd38aa76ddae2580fedf378276333.woff2":true},"/suggest-new-episode/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true},"/thanks/":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true},"/404.html":{"/static/lato-latin-400-b4d2c4c39853ee244272c04999b230ba.woff2":true}}} \ No newline at end of file diff --git a/functions/db/db.js b/functions/db/db.js deleted file mode 100755 index 711d3c15..00000000 --- a/functions/db/db.js +++ /dev/null @@ -1,88 +0,0 @@ -const { ApolloServer, gql } = require("apollo-server-lambda") -const { createHttpLink } = require("apollo-link-http") -const fetch = require("node-fetch") -const { - introspectSchema, - makeRemoteExecutableSchema, -} = require("graphql-tools") - -const jwtDecode = require("jwt-decode") - -exports.handler = async function(event, context) { - /** required for Fauna GraphQL auth */ - - if (!process.env.FAUNADB_SERVER_SECRET) { - const msg = ` - FAUNADB_SERVER_SECRET missing. - Did you forget to install the fauna addon or forgot to run inside Netlify Dev? - ` - console.error(msg) - return { - statusCode: 500, - body: JSON.stringify({ msg }), - } - } - - // validate mutations - const { - body, - headers: { authorization }, - } = event - - try { - const { query, variables } = JSON.parse(body) - if (query.includes("deleteEpisode") || query.includes("updateEpisode")) { - const msg = `delete operation not allowed ` - return { - statusCode: 500, - body: JSON.stringify({ msg }), - } - } - if (query.includes("mutation")) { - const user = jwtDecode(authorization) - if ( - !!variables.data && - !!variables.data.email && - user.email !== variables.data.email - ) { - const msg = `operation not allowed ` - return { - statusCode: 500, - body: JSON.stringify({ msg }), - } - } - } - } catch (error) { - const msg = `operation not allowed ` - return { - statusCode: 500, - body: JSON.stringify({ msg }), - } - } - - ///end - - const b64encodedSecret = Buffer.from( - process.env.FAUNADB_SERVER_SECRET + ":" // weird but they - ).toString("base64") - const headers = { Authorization: `Basic ${b64encodedSecret}` } - - /** standard creation of apollo-server executable schema */ - const link = createHttpLink({ - uri: "https://graphql.fauna.com/graphql", // modify as you see fit - fetch, - headers, - }) - const schema = await introspectSchema(link) - const executableSchema = makeRemoteExecutableSchema({ - schema, - link, - }) - const server = new ApolloServer({ - schema: executableSchema, - }) - return new Promise((yay, nay) => { - const cb = (err, args) => (err ? nay(err) : yay(args)) - server.createHandler()(event, context, cb) - }) -} diff --git a/functions/db/package-lock.json b/functions/db/package-lock.json deleted file mode 100644 index 41f977c5..00000000 --- a/functions/db/package-lock.json +++ /dev/null @@ -1,981 +0,0 @@ -{ - "name": "fauna-graphql", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@apollo/protobufjs": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.0.4.tgz", - "integrity": "sha512-EE3zx+/D/wur/JiLp6VCiw1iYdyy1lCJMf8CGPkLeDt5QJrN4N8tKFx33Ah4V30AUQzMk7Uz4IXKZ1LOj124gA==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.0", - "@types/node": "^10.1.0", - "long": "^4.0.0" - }, - "dependencies": { - "@types/node": { - "version": "10.17.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.24.tgz", - "integrity": "sha512-5SCfvCxV74kzR3uWgTYiGxrd69TbT1I6+cMx1A5kEly/IVveJBimtAMlXiEyVFn5DvUFewQWxOOiJhlxeQwxgA==" - } - } - }, - "@apollographql/apollo-tools": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/@apollographql/apollo-tools/-/apollo-tools-0.4.8.tgz", - "integrity": "sha512-W2+HB8Y7ifowcf3YyPHgDI05izyRtOeZ4MqIr7LbTArtmJ0ZHULWpn84SGMW7NAvTV1tFExpHlveHhnXuJfuGA==", - "requires": { - "apollo-env": "^0.6.5" - } - }, - "@apollographql/graphql-playground-html": { - "version": "1.6.24", - "resolved": "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.24.tgz", - "integrity": "sha512-8GqG48m1XqyXh4mIZrtB5xOhUwSsh1WsrrsaZQOEYYql3YN9DEu9OOSg0ILzXHZo/h2Q74777YE4YzlArQzQEQ==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@types/accepts": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz", - "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/aws-lambda": { - "version": "8.10.53", - "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.53.tgz", - "integrity": "sha512-zHIgKKqwcdeHkPMPKd47DedJ4b+Tv01VGosWtJDMa8s6cnx03IeNagFWEpoxVI+H34fOvxtbqecJddpuVFbU2w==" - }, - "@types/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", - "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", - "requires": { - "@types/node": "*" - } - }, - "@types/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@types/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==" - }, - "@types/cookies": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.4.tgz", - "integrity": "sha512-oTGtMzZZAVuEjTwCjIh8T8FrC8n/uwy+PG0yTvQcdZ7etoel7C7/3MSd7qrukENTgQtotG7gvBlBojuVs7X5rw==", - "requires": { - "@types/connect": "*", - "@types/express": "*", - "@types/keygrip": "*", - "@types/node": "*" - } - }, - "@types/express": { - "version": "4.17.6", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.6.tgz", - "integrity": "sha512-n/mr9tZI83kd4azlPG5y997C/M4DNABK9yErhFM6hKdym4kkmd9j0vtsJyjFIwfRBxtrxZtAfGZCNRIBMFLK5w==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "*", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.7", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.7.tgz", - "integrity": "sha512-EMgTj/DF9qpgLXyc+Btimg+XoH7A2liE8uKul8qSmMTHCeNYzydDKFdsJskDvw42UsesCnhO63dO0Grbj8J4Dw==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/fs-capacitor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz", - "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/graphql-upload": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@types/graphql-upload/-/graphql-upload-8.0.3.tgz", - "integrity": "sha512-hmLg9pCU/GmxBscg8GCr1vmSoEmbItNNxdD5YH2TJkXm//8atjwuprB+xJBK714JG1dkxbbhp5RHX+Pz1KsCMA==", - "requires": { - "@types/express": "*", - "@types/fs-capacitor": "*", - "@types/koa": "*", - "graphql": "^14.5.3" - }, - "dependencies": { - "graphql": { - "version": "14.6.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.6.0.tgz", - "integrity": "sha512-VKzfvHEKybTKjQVpTFrA5yUq2S9ihcZvfJAtsDBBCuV6wauPu1xl/f9ehgVf0FcEJJs4vz6ysb/ZMkGigQZseg==", - "requires": { - "iterall": "^1.2.2" - } - } - } - }, - "@types/http-assert": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@types/http-assert/-/http-assert-1.5.1.tgz", - "integrity": "sha512-PGAK759pxyfXE78NbKxyfRcWYA/KwW17X290cNev/qAsn9eQIxkH4shoNBafH37wewhDG/0p1cHPbK6+SzZjWQ==" - }, - "@types/keygrip": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/keygrip/-/keygrip-1.0.2.tgz", - "integrity": "sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw==" - }, - "@types/koa": { - "version": "2.11.3", - "resolved": "https://registry.npmjs.org/@types/koa/-/koa-2.11.3.tgz", - "integrity": "sha512-ABxVkrNWa4O/Jp24EYI/hRNqEVRlhB9g09p48neQp4m3xL1TJtdWk2NyNQSMCU45ejeELMQZBYyfstyVvO2H3Q==", - "requires": { - "@types/accepts": "*", - "@types/content-disposition": "*", - "@types/cookies": "*", - "@types/http-assert": "*", - "@types/keygrip": "*", - "@types/koa-compose": "*", - "@types/node": "*" - } - }, - "@types/koa-compose": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/@types/koa-compose/-/koa-compose-3.2.5.tgz", - "integrity": "sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==", - "requires": { - "@types/koa": "*" - } - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/mime": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.2.tgz", - "integrity": "sha512-4kPlzbljFcsttWEq6aBW0OZe6BDajAmyvr2xknBG92tejQnvdGtT9+kXSZ580DqpxY9qG2xeQVF9Dq0ymUTo5Q==" - }, - "@types/node": { - "version": "14.0.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.11.tgz", - "integrity": "sha512-lCvvI24L21ZVeIiyIUHZ5Oflv1hhHQ5E1S25IRlKIXaRkVgmXpJMI3wUJkmym2bTbCe+WoIibQnMVAU3FguaOg==" - }, - "@types/node-fetch": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.7.tgz", - "integrity": "sha512-o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==", - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "@types/qs": { - "version": "6.9.3", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.3.tgz", - "integrity": "sha512-7s9EQWupR1fTc2pSMtXRQ9w9gLOcrJn+h7HOXw4evxyvVqMi4f+q7d2tnFe3ng3SNHjtK+0EzGMGFUQX4/AQRA==" - }, - "@types/range-parser": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", - "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" - }, - "@types/serve-static": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.4.tgz", - "integrity": "sha512-jTDt0o/YbpNwZbQmE/+2e+lfjJEJJR0I3OFaKQKPWkASkCoW3i6fsUnqudSMcNAfbtmADGu8f4MV4q+GqULmug==", - "requires": { - "@types/express-serve-static-core": "*", - "@types/mime": "*" - } - }, - "@types/ws": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.2.5.tgz", - "integrity": "sha512-4UEih9BI1nBKii385G9id1oFrSkLcClbwtDfcYj8HJLQqZVAtb/42vXVrYvRWCcufNF/a+rZD3MxNwghA7UmCg==", - "requires": { - "@types/node": "*" - } - }, - "@wry/equality": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.9.tgz", - "integrity": "sha512-mB6ceGjpMGz1ZTza8HYnrPGos2mC6So4NhS1PtZ8s4Qt0K7fBiIGhpSxUbQmhwcSWE3no+bYxmI2OL6KuXYmoQ==", - "requires": { - "tslib": "1.10.0" - } - }, - "apollo-cache-control": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.0.tgz", - "integrity": "sha512-dmRnQ9AXGw2SHahVGLzB/p4UW/taFBAJxifxubp8hqY5p9qdlSu4MPRq8zvV2ULMYf50rBtZyC4C+dZLqmHuHQ==", - "requires": { - "apollo-server-env": "^2.4.4", - "apollo-server-plugin-base": "^0.9.0" - } - }, - "apollo-datasource": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.1.tgz", - "integrity": "sha512-h++/jQAY7GA+4TBM+7ezvctFmmGNLrAPf51KsagZj+NkT9qvxp585rdsuatynVbSl59toPK2EuVmc6ilmQHf+g==", - "requires": { - "apollo-server-caching": "^0.5.1", - "apollo-server-env": "^2.4.4" - } - }, - "apollo-engine-reporting": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-2.0.0.tgz", - "integrity": "sha512-FvNwORsh3nxEfvQqd2xbd468a0q/R3kYar/Bk6YQdBX5qwqUhqmOcOSxLFk8Zb77HpwHij5CPpPWJb53TU1zcA==", - "requires": { - "apollo-engine-reporting-protobuf": "^0.5.1", - "apollo-graphql": "^0.4.0", - "apollo-server-caching": "^0.5.1", - "apollo-server-env": "^2.4.4", - "apollo-server-errors": "^2.4.1", - "apollo-server-plugin-base": "^0.9.0", - "apollo-server-types": "^0.5.0", - "async-retry": "^1.2.1", - "uuid": "^8.0.0" - }, - "dependencies": { - "uuid": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz", - "integrity": "sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==" - } - } - }, - "apollo-engine-reporting-protobuf": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.5.1.tgz", - "integrity": "sha512-TSfr9iAaInV8dhXkesdcmqsthRkVcJkzznmiM+1Ob/GScK7r6hBYCjVDt2613EHAg9SUzTOltIKlGD+N+GJRUw==", - "requires": { - "@apollo/protobufjs": "^1.0.3" - } - }, - "apollo-env": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/apollo-env/-/apollo-env-0.6.5.tgz", - "integrity": "sha512-jeBUVsGymeTHYWp3me0R2CZRZrFeuSZeICZHCeRflHTfnQtlmbSXdy5E0pOyRM9CU4JfQkKDC98S1YglQj7Bzg==", - "requires": { - "@types/node-fetch": "2.5.7", - "core-js": "^3.0.1", - "node-fetch": "^2.2.0", - "sha.js": "^2.4.11" - } - }, - "apollo-graphql": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.4.4.tgz", - "integrity": "sha512-i012iRKT5nfsOaNMx4MTwHw2jrlyaF1zikpejxsGHsKIf3OngGvGh3pyw20bEmwj413OrNQpRxvvIz5A7W/8xw==", - "requires": { - "apollo-env": "^0.6.5", - "lodash.sortby": "^4.7.0" - } - }, - "apollo-link": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.12.tgz", - "integrity": "sha512-fsgIAXPKThyMVEMWQsUN22AoQI+J/pVXcjRGAShtk97h7D8O+SPskFinCGEkxPeQpE83uKaqafB2IyWdjN+J3Q==", - "requires": { - "apollo-utilities": "1.3.2", - "ts-invariant": "0.4.4", - "tslib": "1.10.0", - "zen-observable-ts": "0.8.19" - } - }, - "apollo-link-context": { - "version": "1.0.18", - "resolved": "https://registry.npmjs.org/apollo-link-context/-/apollo-link-context-1.0.18.tgz", - "integrity": "sha512-aG5cbUp1zqOHHQjAJXG7n/izeMQ6LApd/whEF5z6qZp5ATvcyfSNkCfy3KRJMMZZ3iNfVTs6jF+IUA8Zvf+zeg==", - "requires": { - "apollo-link": "1.2.12", - "tslib": "1.10.0" - } - }, - "apollo-link-http": { - "version": "1.5.15", - "resolved": "https://registry.npmjs.org/apollo-link-http/-/apollo-link-http-1.5.15.tgz", - "integrity": "sha512-epZFhCKDjD7+oNTVK3P39pqWGn4LEhShAoA1Q9e2tDrBjItNfviiE33RmcLcCURDYyW5JA6SMgdODNI4Is8tvQ==", - "requires": { - "apollo-link": "1.2.12", - "apollo-link-http-common": "0.2.14", - "tslib": "1.10.0" - } - }, - "apollo-link-http-common": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/apollo-link-http-common/-/apollo-link-http-common-0.2.14.tgz", - "integrity": "sha512-v6mRU1oN6XuX8beVIRB6OpF4q1ULhSnmy7ScnHnuo1qV6GaFmDcbdvXqxIkAV1Q8SQCo2lsv4HeqJOWhFfApOg==", - "requires": { - "apollo-link": "1.2.12", - "ts-invariant": "0.4.4", - "tslib": "1.10.0" - } - }, - "apollo-server-caching": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.1.tgz", - "integrity": "sha512-L7LHZ3k9Ao5OSf2WStvQhxdsNVplRQi7kCAPfqf9Z3GBEnQ2uaL0EgO0hSmtVHfXTbk5CTRziMT1Pe87bXrFIw==", - "requires": { - "lru-cache": "^5.0.0" - } - }, - "apollo-server-core": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.14.2.tgz", - "integrity": "sha512-8G6Aoz+k+ecuQco1KNLFbMrxhe/8uR4AOaOYEvT/N5m/6lrkPYzvBAxbpRIub5AxEwpBPcIrI452rR3PD9DItA==", - "requires": { - "@apollographql/apollo-tools": "^0.4.3", - "@apollographql/graphql-playground-html": "1.6.24", - "@types/graphql-upload": "^8.0.0", - "@types/ws": "^7.0.0", - "apollo-cache-control": "^0.11.0", - "apollo-datasource": "^0.7.1", - "apollo-engine-reporting": "^2.0.0", - "apollo-server-caching": "^0.5.1", - "apollo-server-env": "^2.4.4", - "apollo-server-errors": "^2.4.1", - "apollo-server-plugin-base": "^0.9.0", - "apollo-server-types": "^0.5.0", - "apollo-tracing": "^0.11.0", - "fast-json-stable-stringify": "^2.0.0", - "graphql-extensions": "^0.12.2", - "graphql-tag": "^2.9.2", - "graphql-tools": "^4.0.0", - "graphql-upload": "^8.0.2", - "loglevel": "^1.6.7", - "sha.js": "^2.4.11", - "subscriptions-transport-ws": "^0.9.11", - "ws": "^6.0.0" - } - }, - "apollo-server-env": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.4.tgz", - "integrity": "sha512-c2oddDS3lwAl6QNCIKCLEzt/dF9M3/tjjYRVdxOVN20TidybI7rAbnT4QOzf4tORnGXtiznEAvr/Kc9ahhKADg==", - "requires": { - "node-fetch": "^2.1.2", - "util.promisify": "^1.0.0" - } - }, - "apollo-server-errors": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.4.1.tgz", - "integrity": "sha512-7oEd6pUxqyWYUbQ9TA8tM0NU/3aGtXSEibo6+txUkuHe7QaxfZ2wHRp+pfT1LC1K3RXYjKj61/C2xEO19s3Kdg==" - }, - "apollo-server-lambda": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/apollo-server-lambda/-/apollo-server-lambda-2.14.2.tgz", - "integrity": "sha512-nx/NPVZRPhqoOw1Fi4zSQmNS7r8vLw9l11V880qm1f8mMes1AZzCJdn/pSZEgt7nMKS4YmOkeSDvaj/9XvqqYw==", - "requires": { - "@apollographql/graphql-playground-html": "1.6.24", - "@types/aws-lambda": "^8.10.31", - "apollo-server-core": "^2.14.2", - "apollo-server-env": "^2.4.4", - "apollo-server-types": "^0.5.0", - "graphql-tools": "^4.0.0" - } - }, - "apollo-server-plugin-base": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.9.0.tgz", - "integrity": "sha512-LWcPrsy2+xqwlNseh/QaGa/MPNopS8c4qGgh0g0cAn0lZBRrJ9Yab7dq+iQ6vdUBwIhUWYN6s9dwUWCZw2SL8g==", - "requires": { - "apollo-server-types": "^0.5.0" - } - }, - "apollo-server-types": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.5.0.tgz", - "integrity": "sha512-zhtsqqqfdeoJQAfc41Sy6WnnBVxKNgZ34BKXf/Q+kXmw7rbZ/B5SG3SJMvj1iFsbzZxILmWdUsE9aD20lEr0bg==", - "requires": { - "apollo-engine-reporting-protobuf": "^0.5.1", - "apollo-server-caching": "^0.5.1", - "apollo-server-env": "^2.4.4" - } - }, - "apollo-tracing": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.11.0.tgz", - "integrity": "sha512-I9IFb/8lkBW8ZwOAi4LEojfT7dMfUSkpnV8LHQI8Rcj0HtzL9HObQ3woBmzyGHdGHLFuD/6/VHyFD67SesSrJg==", - "requires": { - "apollo-server-env": "^2.4.4", - "apollo-server-plugin-base": "^0.9.0" - } - }, - "apollo-utilities": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.2.tgz", - "integrity": "sha512-JWNHj8XChz7S4OZghV6yc9FNnzEXj285QYp/nLNh943iObycI5GTDO3NGR9Dth12LRrSFMeDOConPfPln+WGfg==", - "requires": { - "@wry/equality": "0.1.9", - "fast-json-stable-stringify": "2.0.0", - "ts-invariant": "0.4.4", - "tslib": "1.10.0" - } - }, - "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==" - }, - "async-retry": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/async-retry/-/async-retry-1.3.1.tgz", - "integrity": "sha512-aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==", - "requires": { - "retry": "0.12.0" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "busboy": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", - "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", - "requires": { - "dicer": "0.3.0" - } - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "deprecated-decorator": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz", - "integrity": "sha1-AJZjF7ehL+kvPMgx91g68ym4bDc=" - }, - "dicer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", - "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", - "requires": { - "streamsearch": "0.1.2" - } - }, - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" - }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" - }, - "form-data": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", - "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fs-capacitor": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-2.0.4.tgz", - "integrity": "sha512-8S4f4WsCryNw2mJJchi46YgB6CR5Ze+4L1h8ewl9tEpL4SJ3ZO+c/bS4BWhB8bK+O3TMqhuZarTitd0S0eh2pA==" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "graphql": { - "version": "14.4.2", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.4.2.tgz", - "integrity": "sha512-6uQadiRgnpnSS56hdZUSvFrVcQ6OF9y6wkxJfKquFtHlnl7+KSuWwSJsdwiK1vybm1HgcdbpGkCpvhvsVQ0UZQ==", - "requires": { - "iterall": "1.2.2" - } - }, - "graphql-extensions": { - "version": "0.12.2", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.2.tgz", - "integrity": "sha512-vFaZua5aLiCOOzxfY5qzHZ6S52BCqW7VVOwzvV52Wb5edRm3dn6u+1MR9yYyEqUHSf8LvdhEojYlOkKiaQ4ghA==", - "requires": { - "@apollographql/apollo-tools": "^0.4.3", - "apollo-server-env": "^2.4.4", - "apollo-server-types": "^0.5.0" - } - }, - "graphql-tag": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.10.3.tgz", - "integrity": "sha512-4FOv3ZKfA4WdOKJeHdz6B3F/vxBLSgmBcGeAFPf4n1F64ltJUvOOerNj0rsJxONQGdhUMynQIvd6LzB+1J5oKA==" - }, - "graphql-tools": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/graphql-tools/-/graphql-tools-4.0.5.tgz", - "integrity": "sha512-kQCh3IZsMqquDx7zfIGWBau42xe46gmqabwYkpPlCLIjcEY1XK+auP7iGRD9/205BPyoQdY8hT96MPpgERdC9Q==", - "requires": { - "apollo-link": "1.2.12", - "apollo-utilities": "1.3.2", - "deprecated-decorator": "0.1.6", - "iterall": "1.2.2", - "uuid": "3.3.2" - } - }, - "graphql-upload": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-8.1.0.tgz", - "integrity": "sha512-U2OiDI5VxYmzRKw0Z2dmfk0zkqMRaecH9Smh1U277gVgVe9Qn+18xqf4skwr4YJszGIh7iQDZ57+5ygOK9sM/Q==", - "requires": { - "busboy": "^0.3.1", - "fs-capacitor": "^2.0.4", - "http-errors": "^1.7.3", - "object-path": "^0.11.4" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" - }, - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "is-callable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", - "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" - }, - "is-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", - "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "iterall": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.2.2.tgz", - "integrity": "sha512-yynBb1g+RFUPY64fTrFv7nsjRrENBQJaX2UL+2Szc9REFrSNm1rpSXHGzhmAy7a9uv3vlvgBlXnf9RqmPH1/DA==" - }, - "jwt-decode": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-2.2.0.tgz", - "integrity": "sha1-fYa9VmefWM5qhHBKZX3TkruoGnk=" - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "loglevel": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz", - "integrity": "sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "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==", - "requires": { - "yallist": "^3.0.2" - } - }, - "mime-db": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" - }, - "mime-types": { - "version": "2.1.27", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", - "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "requires": { - "mime-db": "1.44.0" - } - }, - "node-fetch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-path": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.8.tgz", - "integrity": "sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==" - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" - }, - "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==" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" - }, - "string.prototype.trimend": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", - "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "string.prototype.trimleft": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz", - "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimstart": "^1.0.0" - } - }, - "string.prototype.trimright": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz", - "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5", - "string.prototype.trimend": "^1.0.0" - } - }, - "string.prototype.trimstart": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", - "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "subscriptions-transport-ws": { - "version": "0.9.16", - "resolved": "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.16.tgz", - "integrity": "sha512-pQdoU7nC+EpStXnCfh/+ho0zE0Z+ma+i7xvj7bkXKb1dvYHSZxgRPaU6spRP+Bjzow67c/rRDoix5RT0uU9omw==", - "requires": { - "backo2": "^1.0.2", - "eventemitter3": "^3.1.0", - "iterall": "^1.2.1", - "symbol-observable": "^1.0.4", - "ws": "^5.2.0" - }, - "dependencies": { - "ws": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", - "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "ts-invariant": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", - "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", - "requires": { - "tslib": "1.10.0" - } - }, - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==" - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "requires": { - "async-limiter": "~1.0.0" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "zen-observable": { - "version": "0.8.14", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.14.tgz", - "integrity": "sha512-kQz39uonEjEESwh+qCi83kcC3rZJGh4mrZW7xjkSQYXkq//JZHTtKo+6yuVloTgMtzsIWOJrjIrKvk/dqm0L5g==" - }, - "zen-observable-ts": { - "version": "0.8.19", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.19.tgz", - "integrity": "sha512-u1a2rpE13G+jSzrg3aiCqXU5tN2kw41b+cBZGmnc+30YimdkKiDj9bTowcB41eL77/17RF/h+393AuVgShyheQ==", - "requires": { - "tslib": "1.10.0", - "zen-observable": "0.8.14" - } - } - } -} diff --git a/functions/db/package.json b/functions/db/package.json deleted file mode 100644 index ca33f990..00000000 --- a/functions/db/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "fauna-graphql", - "version": "1.0.0", - "description": "netlify functions:create - set up for fauna db + apollo graphql", - "main": "fauna-graphql.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [ - "netlify", - "serverless", - "js", - "apollo", - "fauna" - ], - "author": "Netlify", - "license": "MIT", - "dependencies": { - "apollo-link-context": "^1.0.17", - "apollo-link-http": "^1.5.14", - "apollo-server-lambda": "^2.14.2", - "graphql": "^14.1.1", - "graphql-tools": "^4.0.4", - "jwt-decode": "^2.2.0", - "node-fetch": "^2.3.0" - } -} diff --git a/functions/db/schema.graphql b/functions/db/schema.graphql deleted file mode 100755 index 43e0131e..00000000 --- a/functions/db/schema.graphql +++ /dev/null @@ -1,24 +0,0 @@ -type Vote { - episode:Episode! @relation - email:String! -} - -type Episode { - description: String! - guest: String - verified: Boolean - scheduled : Boolean - done: Boolean - votes: [Vote] @relation - email: String - name: String -} - - -type Query { - allEpisodes: [Episode!] - allVotes:[Vote!] - verifiedEpisodes(verified: Boolean!): [Episode!] - allVotesByUser(email: String!): [Vote!] -} - diff --git a/functions/db/sync-schema.js b/functions/db/sync-schema.js deleted file mode 100755 index fd5a7669..00000000 --- a/functions/db/sync-schema.js +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env node - -/* sync GraphQL schema to your FaunaDB account - use with `netlify dev:exec ` */ -function createFaunaGraphQL() { - if (!process.env.FAUNADB_SERVER_SECRET) { - console.log("No FAUNADB_SERVER_SECRET in environment, skipping DB setup"); - } - console.log("Upload GraphQL Schema!"); - - const fetch = require("node-fetch"); - const fs = require("fs"); - const path = require("path"); - var dataString = fs - .readFileSync(path.join(__dirname, "schema.graphql")) - .toString(); // name of your schema file - - // encoded authorization header similar to https://www.npmjs.com/package/request#http-authentication - const Authorization = Buffer.from( - process.env.FAUNADB_SERVER_SECRET + ":" - ).toString("base64"); - - var options = { - method: "POST", - body: dataString, - headers: { Authorization } - }; - - fetch("https://graphql.fauna.com/import", options) - // // uncomment for debugging - .then(res => res.text()) - .then(body => { - console.log( - "Netlify Functions:Create - `fauna-graphql/sync-schema.js` success!" - ); - console.log(body); - }) - .catch(err => console.error("something wrong happened: ", { err })); -} - -createFaunaGraphQL(); diff --git a/functions/db/yarn.lock b/functions/db/yarn.lock deleted file mode 100644 index 6bd99484..00000000 --- a/functions/db/yarn.lock +++ /dev/null @@ -1,725 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@apollo/protobufjs@^1.0.3": - version "1.0.4" - resolved "https://registry.yarnpkg.com/@apollo/protobufjs/-/protobufjs-1.0.4.tgz#cf01747a55359066341f31b5ce8db17df44244e0" - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.0" - "@types/node" "^10.1.0" - long "^4.0.0" - -"@apollographql/apollo-tools@^0.4.3": - version "0.4.8" - resolved "https://registry.yarnpkg.com/@apollographql/apollo-tools/-/apollo-tools-0.4.8.tgz#d81da89ee880c2345eb86bddb92b35291f6135ed" - dependencies: - apollo-env "^0.6.5" - -"@apollographql/graphql-playground-html@1.6.24": - version "1.6.24" - resolved "https://registry.yarnpkg.com/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.24.tgz#3ce939cb127fb8aaa3ffc1e90dff9b8af9f2e3dc" - -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - -"@types/accepts@*": - version "1.3.5" - resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" - dependencies: - "@types/node" "*" - -"@types/aws-lambda@^8.10.31": - version "8.10.53" - resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.53.tgz#ad8d52a5f264f96b80a0d8c2e5cda1de30f2364b" - -"@types/body-parser@*": - version "1.19.0" - resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz#0685b3c47eb3006ffed117cdd55164b61f80538f" - dependencies: - "@types/connect" "*" - "@types/node" "*" - -"@types/connect@*": - version "3.4.33" - resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz#31610c901eca573b8713c3330abc6e6b9f588546" - dependencies: - "@types/node" "*" - -"@types/content-disposition@*": - version "0.5.3" - resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.3.tgz#0aa116701955c2faa0717fc69cd1596095e49d96" - -"@types/cookies@*": - version "0.7.4" - resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.4.tgz#26dedf791701abc0e36b5b79a5722f40e455f87b" - dependencies: - "@types/connect" "*" - "@types/express" "*" - "@types/keygrip" "*" - "@types/node" "*" - -"@types/express-serve-static-core@*": - version "4.17.7" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.7.tgz#dfe61f870eb549dc6d7e12050901847c7d7e915b" - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - -"@types/express@*": - version "4.17.6" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.6.tgz#6bce49e49570507b86ea1b07b806f04697fac45e" - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "*" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/fs-capacitor@*": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz#17113e25817f584f58100fb7a08eed288b81956e" - dependencies: - "@types/node" "*" - -"@types/graphql-upload@^8.0.0": - version "8.0.3" - resolved "https://registry.yarnpkg.com/@types/graphql-upload/-/graphql-upload-8.0.3.tgz#b371edb5f305a2a1f7b7843a890a2a7adc55c3ec" - dependencies: - "@types/express" "*" - "@types/fs-capacitor" "*" - "@types/koa" "*" - graphql "^14.5.3" - -"@types/http-assert@*": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.1.tgz#d775e93630c2469c2f980fc27e3143240335db3b" - -"@types/keygrip@*": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" - -"@types/koa-compose@*": - version "3.2.5" - resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" - dependencies: - "@types/koa" "*" - -"@types/koa@*": - version "2.11.3" - resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.11.3.tgz#540ece376581b12beadf9a417dd1731bc31c16ce" - dependencies: - "@types/accepts" "*" - "@types/content-disposition" "*" - "@types/cookies" "*" - "@types/http-assert" "*" - "@types/keygrip" "*" - "@types/koa-compose" "*" - "@types/node" "*" - -"@types/long@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.0.tgz#719551d2352d301ac8b81db732acb6bdc28dbdef" - -"@types/mime@*": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.2.tgz#857a118d8634c84bba7ae14088e4508490cd5da5" - -"@types/node-fetch@2.5.7": - version "2.5.7" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.7.tgz#20a2afffa882ab04d44ca786449a276f9f6bbf3c" - dependencies: - "@types/node" "*" - form-data "^3.0.0" - -"@types/node@*": - version "12.6.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.2.tgz#a5ccec6abb6060d5f20d256fb03ed743e9774999" - -"@types/node@^10.1.0": - version "10.14.12" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.12.tgz#0eec3155a46e6c4db1f27c3e588a205f767d622f" - -"@types/qs@*": - version "6.9.3" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.3.tgz#b755a0934564a200d3efdf88546ec93c369abd03" - -"@types/range-parser@*": - version "1.2.3" - resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz#7ee330ba7caafb98090bece86a5ee44115904c2c" - -"@types/serve-static@*": - version "1.13.4" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.4.tgz#6662a93583e5a6cabca1b23592eb91e12fa80e7c" - dependencies: - "@types/express-serve-static-core" "*" - "@types/mime" "*" - -"@types/ws@^7.0.0": - version "7.2.5" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.2.5.tgz#513f28b04a1ea1aa9dc2cad3f26e8e37c88aae49" - dependencies: - "@types/node" "*" - -"@wry/equality@^0.1.2": - version "0.1.9" - resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.1.9.tgz#b13e18b7a8053c6858aa6c85b54911fb31e3a909" - dependencies: - tslib "^1.9.3" - -apollo-cache-control@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/apollo-cache-control/-/apollo-cache-control-0.11.0.tgz#7075492d04c5424e7c6769380b503e8f75b39d61" - dependencies: - apollo-server-env "^2.4.4" - apollo-server-plugin-base "^0.9.0" - -apollo-datasource@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/apollo-datasource/-/apollo-datasource-0.7.1.tgz#0b06da999ace50b7f5fe509f2a03f7de97974334" - dependencies: - apollo-server-caching "^0.5.1" - apollo-server-env "^2.4.4" - -apollo-engine-reporting-protobuf@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.5.1.tgz#b6e66e6e382f9bcdc2ac8ed168b047eb1470c1a8" - dependencies: - "@apollo/protobufjs" "^1.0.3" - -apollo-engine-reporting@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/apollo-engine-reporting/-/apollo-engine-reporting-2.0.0.tgz#af007b4a8a481fa97baef0eac51a7824f1ec3310" - dependencies: - apollo-engine-reporting-protobuf "^0.5.1" - apollo-graphql "^0.4.0" - apollo-server-caching "^0.5.1" - apollo-server-env "^2.4.4" - apollo-server-errors "^2.4.1" - apollo-server-plugin-base "^0.9.0" - apollo-server-types "^0.5.0" - async-retry "^1.2.1" - uuid "^8.0.0" - -apollo-env@^0.6.5: - version "0.6.5" - resolved "https://registry.yarnpkg.com/apollo-env/-/apollo-env-0.6.5.tgz#5a36e699d39e2356381f7203493187260fded9f3" - dependencies: - "@types/node-fetch" "2.5.7" - core-js "^3.0.1" - node-fetch "^2.2.0" - sha.js "^2.4.11" - -apollo-graphql@^0.4.0: - version "0.4.4" - resolved "https://registry.yarnpkg.com/apollo-graphql/-/apollo-graphql-0.4.4.tgz#25f456b28a4419bb6a42071f8a56e19e15bb80be" - dependencies: - apollo-env "^0.6.5" - lodash.sortby "^4.7.0" - -apollo-link-context@^1.0.17: - version "1.0.18" - resolved "https://registry.yarnpkg.com/apollo-link-context/-/apollo-link-context-1.0.18.tgz#9e700e3314da8ded50057fee0a18af2bfcedbfc3" - dependencies: - apollo-link "^1.2.12" - tslib "^1.9.3" - -apollo-link-http-common@^0.2.14: - version "0.2.14" - resolved "https://registry.yarnpkg.com/apollo-link-http-common/-/apollo-link-http-common-0.2.14.tgz#d3a195c12e00f4e311c417f121181dcc31f7d0c8" - dependencies: - apollo-link "^1.2.12" - ts-invariant "^0.4.0" - tslib "^1.9.3" - -apollo-link-http@^1.5.14: - version "1.5.15" - resolved "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.15.tgz#106ab23bb8997bd55965d05855736d33119652cf" - dependencies: - apollo-link "^1.2.12" - apollo-link-http-common "^0.2.14" - tslib "^1.9.3" - -apollo-link@^1.2.12, apollo-link@^1.2.3: - version "1.2.12" - resolved "https://registry.yarnpkg.com/apollo-link/-/apollo-link-1.2.12.tgz#014b514fba95f1945c38ad4c216f31bcfee68429" - dependencies: - apollo-utilities "^1.3.0" - ts-invariant "^0.4.0" - tslib "^1.9.3" - zen-observable-ts "^0.8.19" - -apollo-server-caching@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/apollo-server-caching/-/apollo-server-caching-0.5.1.tgz#5cd0536ad5473abb667cc82b59bc56b96fb35db6" - dependencies: - lru-cache "^5.0.0" - -apollo-server-core@^2.14.2: - version "2.14.2" - resolved "https://registry.yarnpkg.com/apollo-server-core/-/apollo-server-core-2.14.2.tgz#4ab055b96b8be7821a726c81e8aa412deb7f3644" - dependencies: - "@apollographql/apollo-tools" "^0.4.3" - "@apollographql/graphql-playground-html" "1.6.24" - "@types/graphql-upload" "^8.0.0" - "@types/ws" "^7.0.0" - apollo-cache-control "^0.11.0" - apollo-datasource "^0.7.1" - apollo-engine-reporting "^2.0.0" - apollo-server-caching "^0.5.1" - apollo-server-env "^2.4.4" - apollo-server-errors "^2.4.1" - apollo-server-plugin-base "^0.9.0" - apollo-server-types "^0.5.0" - apollo-tracing "^0.11.0" - fast-json-stable-stringify "^2.0.0" - graphql-extensions "^0.12.2" - graphql-tag "^2.9.2" - graphql-tools "^4.0.0" - graphql-upload "^8.0.2" - loglevel "^1.6.7" - sha.js "^2.4.11" - subscriptions-transport-ws "^0.9.11" - ws "^6.0.0" - -apollo-server-env@^2.4.4: - version "2.4.4" - resolved "https://registry.yarnpkg.com/apollo-server-env/-/apollo-server-env-2.4.4.tgz#12d2d0896dcb184478cba066c7a683ab18689ca1" - dependencies: - node-fetch "^2.1.2" - util.promisify "^1.0.0" - -apollo-server-errors@^2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/apollo-server-errors/-/apollo-server-errors-2.4.1.tgz#16ad49de6c9134bfb2b7dede9842e73bb239dbe2" - -apollo-server-lambda@^2.14.2: - version "2.14.2" - resolved "https://registry.yarnpkg.com/apollo-server-lambda/-/apollo-server-lambda-2.14.2.tgz#a1f4d372475ac31c7baeab9d503d3045a4f02095" - dependencies: - "@apollographql/graphql-playground-html" "1.6.24" - "@types/aws-lambda" "^8.10.31" - apollo-server-core "^2.14.2" - apollo-server-env "^2.4.4" - apollo-server-types "^0.5.0" - graphql-tools "^4.0.0" - -apollo-server-plugin-base@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/apollo-server-plugin-base/-/apollo-server-plugin-base-0.9.0.tgz#777f720a1ee827a66b8c159073ca30645f8bc625" - dependencies: - apollo-server-types "^0.5.0" - -apollo-server-types@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/apollo-server-types/-/apollo-server-types-0.5.0.tgz#51f39c5fa610ece8b07f1fbcf63c47d4ac150340" - dependencies: - apollo-engine-reporting-protobuf "^0.5.1" - apollo-server-caching "^0.5.1" - apollo-server-env "^2.4.4" - -apollo-tracing@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/apollo-tracing/-/apollo-tracing-0.11.0.tgz#8821eb60692f77c06660fb6bc147446f600aecfe" - dependencies: - apollo-server-env "^2.4.4" - apollo-server-plugin-base "^0.9.0" - -apollo-utilities@^1.0.1, apollo-utilities@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/apollo-utilities/-/apollo-utilities-1.3.2.tgz#8cbdcf8b012f664cd6cb5767f6130f5aed9115c9" - dependencies: - "@wry/equality" "^0.1.2" - fast-json-stable-stringify "^2.0.0" - ts-invariant "^0.4.0" - tslib "^1.9.3" - -async-limiter@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" - -async-retry@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.2.3.tgz#a6521f338358d322b1a0012b79030c6f411d1ce0" - dependencies: - retry "0.12.0" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - -backo2@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - -busboy@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b" - dependencies: - dicer "0.3.0" - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - dependencies: - delayed-stream "~1.0.0" - -core-js@^3.0.1: - version "3.1.4" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.1.4.tgz#3a2837fc48e582e1ae25907afcd6cf03b0cc7a07" - -define-properties@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - dependencies: - object-keys "^1.0.12" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - -deprecated-decorator@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/deprecated-decorator/-/deprecated-decorator-0.1.6.tgz#00966317b7a12fe92f3cc831f7583af329b86c37" - -dicer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872" - dependencies: - streamsearch "0.1.2" - -es-abstract@^1.5.1: - version "1.13.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9" - dependencies: - es-to-primitive "^1.2.0" - function-bind "^1.1.1" - has "^1.0.3" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-keys "^1.0.12" - -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -eventemitter3@^3.1.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - -fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - -form-data@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -fs-capacitor@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/fs-capacitor/-/fs-capacitor-2.0.4.tgz#5a22e72d40ae5078b4fe64fe4d08c0d3fc88ad3c" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - -graphql-extensions@^0.12.2: - version "0.12.2" - resolved "https://registry.yarnpkg.com/graphql-extensions/-/graphql-extensions-0.12.2.tgz#f22210e812939b7caa2127589f30e6a1c671540f" - dependencies: - "@apollographql/apollo-tools" "^0.4.3" - apollo-server-env "^2.4.4" - apollo-server-types "^0.5.0" - -graphql-tag@^2.9.2: - version "2.10.1" - resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.10.1.tgz#10aa41f1cd8fae5373eaf11f1f67260a3cad5e02" - -graphql-tools@^4.0.0, graphql-tools@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-4.0.5.tgz#d2b41ee0a330bfef833e5cdae7e1f0b0d86b1754" - dependencies: - apollo-link "^1.2.3" - apollo-utilities "^1.0.1" - deprecated-decorator "^0.1.6" - iterall "^1.1.3" - uuid "^3.1.0" - -graphql-upload@^8.0.2: - version "8.0.7" - resolved "https://registry.yarnpkg.com/graphql-upload/-/graphql-upload-8.0.7.tgz#8644264e241529552ea4b3797e7ee15809cf01a3" - dependencies: - busboy "^0.3.1" - fs-capacitor "^2.0.4" - http-errors "^1.7.2" - object-path "^0.11.4" - -graphql@^14.1.1: - version "14.4.2" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.4.2.tgz#553a7d546d524663eda49ed6df77577be3203ae3" - dependencies: - iterall "^1.2.2" - -graphql@^14.5.3: - version "14.6.0" - resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.6.0.tgz#57822297111e874ea12f5cd4419616930cd83e49" - dependencies: - iterall "^1.2.2" - -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - -has@^1.0.1, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - dependencies: - function-bind "^1.1.1" - -http-errors@^1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -inherits@2.0.4, inherits@^2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - -is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - -is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - dependencies: - has "^1.0.1" - -is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - dependencies: - has-symbols "^1.0.0" - -iterall@^1.1.3, iterall@^1.2.1, iterall@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.2.2.tgz#92d70deb8028e0c39ff3164fdbf4d8b088130cd7" - -jwt-decode@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-2.2.0.tgz#7d86bd56679f58ce6a84704a657dd392bba81a79" - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - -loglevel@^1.6.7: - version "1.6.8" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - -lru-cache@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - dependencies: - yallist "^3.0.2" - -mime-db@1.44.0: - version "1.44.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - -mime-types@^2.1.12: - version "2.1.27" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - dependencies: - mime-db "1.44.0" - -node-fetch@^2.1.2, node-fetch@^2.2.0, node-fetch@^2.3.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" - -object-keys@^1.0.12: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - -object-path@^0.11.4: - version "0.11.8" - resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.8.tgz#ed002c02bbdd0070b78a27455e8ae01fc14d4742" - -object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" - -retry@0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - -safe-buffer@^5.0.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - -sha.js@^2.4.11: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -"statuses@>= 1.5.0 < 2": - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - -streamsearch@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" - -subscriptions-transport-ws@^0.9.11: - version "0.9.16" - resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.16.tgz#90a422f0771d9c32069294c08608af2d47f596ec" - dependencies: - backo2 "^1.0.2" - eventemitter3 "^3.1.0" - iterall "^1.2.1" - symbol-observable "^1.0.4" - ws "^5.2.0" - -symbol-observable@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - -ts-invariant@^0.4.0: - version "0.4.4" - resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.4.4.tgz#97a523518688f93aafad01b0e80eb803eb2abd86" - dependencies: - tslib "^1.9.3" - -tslib@^1.9.3: - version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - -util.promisify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" - -uuid@^3.1.0: - version "3.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" - -uuid@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.1.0.tgz#6f1536eb43249f473abc6bd58ff983da1ca30d8d" - -ws@^5.2.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - dependencies: - async-limiter "~1.0.0" - -ws@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - dependencies: - async-limiter "~1.0.0" - -yallist@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" - -zen-observable-ts@^0.8.19: - version "0.8.19" - resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-0.8.19.tgz#c094cd20e83ddb02a11144a6e2a89706946b5694" - dependencies: - tslib "^1.9.3" - zen-observable "^0.8.0" - -zen-observable@^0.8.0: - version "0.8.14" - resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.14.tgz#d33058359d335bc0db1f0af66158b32872af3bf7" diff --git a/gallery-mock-data.json b/gallery-mock-data.json new file mode 100644 index 00000000..c1bedeb4 --- /dev/null +++ b/gallery-mock-data.json @@ -0,0 +1,38 @@ +[ + { + "id": "community-gallery/dqdaf7ib8ktxxrsrllvm", + "format": "jpg", + "resource_type": "image", + "created_at": "2024-11-17T18:05:33Z", + "width": 2826, + "height": 2120, + "url": "http://res.cloudinary.com/da6xak4vb/image/upload/v1731866733/community-gallery/dqdaf7ib8ktxxrsrllvm.jpg" + }, + { + "id": "community-gallery/rui3xxrwmm88wdq76phh", + "format": "jpg", + "resource_type": "image", + "created_at": "2024-11-17T18:05:33Z", + "width": 1440, + "height": 953, + "url": "http://res.cloudinary.com/da6xak4vb/image/upload/v1731866733/community-gallery/rui3xxrwmm88wdq76phh.jpg" + }, + { + "id": "community-gallery/c942w3brq2rgwcqulcdi", + "format": "jpg", + "resource_type": "image", + "created_at": "2024-11-17T18:05:33Z", + "width": 1316, + "height": 640, + "url": "http://res.cloudinary.com/da6xak4vb/image/upload/v1731866733/community-gallery/c942w3brq2rgwcqulcdi.jpg" + }, + { + "id": "community-gallery/nzrxswdn0zbvzgfghbld", + "format": "png", + "resource_type": "image", + "created_at": "2024-11-17T18:05:32Z", + "width": 2880, + "height": 1592, + "url": "http://res.cloudinary.com/da6xak4vb/image/upload/v1731866732/community-gallery/nzrxswdn0zbvzgfghbld.png" + } +] diff --git a/gatsby-browser.js b/gatsby-browser.js deleted file mode 100644 index 48a80542..00000000 --- a/gatsby-browser.js +++ /dev/null @@ -1,38 +0,0 @@ -import React from "react" -import { ModeProvider } from "./src/components/Mode/ModeContext" -import { ThemeProvider } from "./src/components/Theme/ThemeContext" -import "./src/styles/common.scss" - -// set Mode Provider -export const wrapRootElement = ({ element }) => ( - - {element} - -) - -// Load Lato typeface -require("typeface-lato") - -const w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0) - -// in gastby-browser.js -export const shouldUpdateScroll = ({ - prevRouterProps: { - location: { pathname: prevPathName }, - }, - routerProps: { - location: { pathname }, - }, -}) => { - if (w < 860) { - return true - } - if ( - prevPathName.indexOf("blabla") !== -1 && - pathname.indexOf("blabla") !== -1 - ) { - return false - } - - return true -} diff --git a/gatsby-config.js b/gatsby-config.js deleted file mode 100644 index 00f5bcd2..00000000 --- a/gatsby-config.js +++ /dev/null @@ -1,194 +0,0 @@ -const config = require("./config/website") -const pathPrefix = config.pathPrefix === "/" ? "" : config.pathPrefix -require("dotenv").config() - -module.exports = { - siteMetadata: { - siteUrl: config.siteUrl + pathPrefix, - title: config.siteTitle, - twitterHandle: config.twitterHandle, - description: config.siteDescription, - keywords: ["DevC_Casa", "Geeksblabla", "Podcast"], - canonicalUrl: config.siteUrl, - image: config.siteLogo, - banner: config.banner, - author: { - name: config.author, - minibio: `DevC Casablanca`, - }, - organization: { - name: config.organization, - url: config.siteUrl, - logo: config.siteLogo, - }, - social: { - twitter: config.twitterHandle, - fbAppID: "", - }, - }, - plugins: [ - `gatsby-plugin-react-helmet`, - `gatsby-transformer-yaml`, - `gatsby-plugin-preload-fonts`, - { - resolve: "gatsby-source-filesystem", - options: { - path: `${__dirname}/blablas`, - name: "blablas", - }, - }, - { - resolve: `gatsby-source-filesystem`, - options: { - name: `images`, - path: `${__dirname}/src/images`, - }, - }, - { - resolve: `gatsby-source-filesystem`, - options: { - path: `${__dirname}/reviews`, - name: "reviews", - }, - }, - { - resolve: `gatsby-plugin-mdx`, - options: { - extensions: [".mdx", ".md", ".markdown"], - gatsbyRemarkPlugins: [ - { - resolve: "gatsby-remark-images", - options: { - backgroundColor: "#fafafa", - maxWidth: 1035, - sizeByPixelDensity: true, - }, - }, - ], - }, - }, - `gatsby-transformer-sharp`, - `gatsby-plugin-sharp`, - `gatsby-plugin-sass`, - { - resolve: `gatsby-plugin-manifest`, - options: { - name: `GeeksBlabla Website`, - short_name: `GeeksBlabla`, - start_url: `/`, - background_color: `#663399`, - theme_color: `#663399`, - display: `minimal-ui`, - icons: [ - { - src: "/android-chrome-192x192.png", - sizes: "192x192", - type: "image/png", - }, - { - src: "/android-chrome-512x512.png", - sizes: "512x512", - type: "image/png", - }, - ], - }, - }, - { - resolve: `gatsby-plugin-google-analytics`, - options: { - trackingId: "UA-127901499-3", - }, - }, - { - resolve: `gatsby-plugin-feed`, - options: { - query: ` - { - site { - siteMetadata { - title - description - siteUrl - site_url: siteUrl - } - } - } - `, - feeds: [ - { - serialize: ({ query: { site, allMdx } }) => { - return allMdx.edges.map((edge) => { - return Object.assign({}, edge.node.frontmatter, { - description: edge.node.excerpt, - date: edge.node.fields.date, - url: site.siteMetadata.siteUrl + "/" + edge.node.fields.slug, - guid: site.siteMetadata.siteUrl + "/" + edge.node.fields.slug, - custom_elements: [{ tags: edge.node.fields.tags.join(",") }], - }) - }) - }, - query: ` - { - allMdx( - limit: 1000, - filter: { frontmatter: { published: { ne: false } } } - sort: { order: DESC, fields: [frontmatter___date] } - ) { - edges { - node { - excerpt(pruneLength: 250) - fields { - slug - date - tags - } - frontmatter { - title - } - } - } - } - } - `, - output: "/rss.xml", - title: "GeeksBlabla RSS Feed", - }, - ], - }, - }, - { - resolve: "gatsby-plugin-sentry", - options: { - dsn: "https://7048bf611200421abd4d4f0e4d873c8b@sentry.io/1452547", - // Optional settings, see https://docs.sentry.io/clients/node/config/#optional-settings - environment: process.env.NODE_ENV, - enabled: (() => ["production"].indexOf(process.env.NODE_ENV) !== -1)(), - }, - }, - { - resolve: "gatsby-plugin-react-svg", - options: { - rule: { - exclude: /\.back\.svg$/, - }, - }, - }, - // this (optional) plugin enables Progressive Web App + Offline functionality - // To learn more, visit: https://gatsby.dev/offline - `gatsby-plugin-offline`, - { - resolve: `gatsby-plugin-sitemap`, - options: { - exclude: ["/thanks/"], - }, - }, - { - resolve: `gatsby-plugin-algolia`, - options: { - appId: process.env.GATSBY_ALGOLIA_APP_ID, - apiKey: process.env.ALGOLIA_ADMIN_KEY, - queries: require("./src/utils/algolia"), - }, - }, - ], -} diff --git a/gatsby-node.js b/gatsby-node.js deleted file mode 100644 index 2d2ff520..00000000 --- a/gatsby-node.js +++ /dev/null @@ -1,300 +0,0 @@ -const path = require("path") - -const _ = require("lodash") -//const paginate = require("gatsby-awesome-pagination") -//const PAGINATION_OFFSET = 7 -const fs = require("fs") -//const contributers = require("./.all-contributorsrc") - -const createPosts = (createPage, createRedirect, edges) => { - edges.forEach(({ node }, i) => { - const prev = i === 0 ? null : edges[i - 1].node - const next = i === edges.length - 1 ? null : edges[i + 1].node - - const pagePath = node.fields.slug - - if (node.fields.redirects) { - node.fields.redirects.forEach((fromPath) => { - createRedirect({ - fromPath, - toPath: pagePath, - redirectInBrowser: true, - isPermanent: true, - }) - }) - } - - createPage({ - path: pagePath, - component: path.resolve(`./src/templates/blabla.js`), - context: { - id: node.id, - prev, - next, - }, - }) - }) -} - -/** - * Inspired from the createPosts method, the below method creates pages for each category. - * Furthermore, it also creates episode pages under each category i.e: `/${category}/${episodeTitle}/` - */ -const createCategories = (createPage, group) => { - group.forEach(({ category, edges }) => { - const pagePath = `/${_.kebabCase(category)}` - - createPage({ - path: pagePath, - component: path.resolve(`./src/templates/category.js`), - context: { - category, - slug: pagePath, - }, - }) - - edges.forEach(({ node }) => { - const episodeUnderCategoryPath = `${pagePath}/${_.kebabCase( - node.fields.title - )}` - createPage({ - path: episodeUnderCategoryPath, - component: path.resolve(`./src/templates/category-blabla.js`), - context: { - id: node.id, - category, - }, - }) - }) - }) -} - -exports.createPages = async ({ actions, graphql }) => { - const result = await graphql( - ` - { - episodes: allMdx( - filter: { frontmatter: { published: { ne: false } } } - sort: { order: DESC, fields: [frontmatter___date] } - ) { - edges { - node { - id - fileAbsolutePath - parent { - ... on File { - name - sourceInstanceName - } - } - excerpt(pruneLength: 250) - fields { - title - slug - date - } - } - } - } - categories: allMdx { - group(field: frontmatter___category) { - category: fieldValue - edges { - node { - id - fileAbsolutePath - parent { - ... on File { - name - sourceInstanceName - } - } - excerpt(pruneLength: 250) - fields { - title - slug - date - } - } - } - } - } - } - ` - ) - - if (result.errors) { - throw result.errors - } - - const { - episodes: { edges }, - categories: { group }, - } = result.data - const { createRedirect, createPage } = actions - - createPosts(createPage, createRedirect, edges) - createCategories(createPage, group) -} - -exports.onCreateNode = ({ node, getNode, actions }) => { - const { createNodeField } = actions - - if (node.internal.type === `Mdx`) { - const parent = getNode(node.parent) - const titleSlugged = _.join(_.drop(parent.name.split("-"), 3), "-") - - const slug = "blablas/" + _.kebabCase(node.frontmatter.title) - - createNodeField({ - name: "id", - node, - value: node.id, - }) - - createNodeField({ - name: "published", - node, - value: node.frontmatter.published, - }) - - createNodeField({ - name: "title", - node, - value: node.frontmatter.title, - }) - - createNodeField({ - name: "slug", - node, - value: slug, - }) - - createNodeField({ - name: "date", - node, - value: node.frontmatter.date ? node.frontmatter.date.split(" ")[0] : "", - }) - createNodeField({ - name: "duration", - node, - value: node.frontmatter.duration ? node.frontmatter.duration : "01:00:00", - }) - - createNodeField({ - name: "tags", - node, - value: node.frontmatter.tags || [], - }) - createNodeField({ - name: "category", - node, - value: node.frontmatter.category.toLowerCase() || "", - }) - createNodeField({ - name: "featured", - node, - value: node.frontmatter.featured || false, - }) - const path = - node.fileAbsolutePath.substring( - node.fileAbsolutePath.indexOf( - "/", - node.fileAbsolutePath.indexOf("blablas") - ) - ) || "" - - createNodeField({ - name: "repoLink", - node, - value: `https://github.com/DevC-Casa/geeksblabla.com/tree/master/blablas${path}`, - }) - createNodeField({ - name: "url", - node, - value: - node.frontmatter.url || - "https://www.facebook.com/groups/DevC.Casablanca/", - }) - createNodeField({ - name: "video", - node, - value: node.frontmatter.video || "", - }) - - createNodeField({ - name: "youtube", - node, - value: node.frontmatter.youtube || "", - }) - createNodeField({ - name: "audio", - node, - value: node.frontmatter.audio || "", - }) - } -} - -exports.onCreateWebpackConfig = ({ stage, loaders, actions }) => { - if (stage === "build-html") { - /* - * During the build step, `auth0-js` will break because it relies on - * browser-specific APIs. Fortunately, we donโ€™t need it during the build. - * Using Webpackโ€™s null loader, weโ€™re able to effectively ignore `auth0-js` - * during the build. (See `src/utils/auth.js` to see how we prevent this - * from breaking the app.) - */ - - actions.setWebpackConfig({ - module: { - rules: [ - { - test: /auth0-js/, - use: loaders.null(), - }, - ], - }, - }) - } -} - -exports.onCreateWebpackConfig = ({ actions }) => { - actions.setWebpackConfig({ - resolve: { - modules: [path.resolve(__dirname, "src"), "node_modules"], - alias: { - $components: path.resolve(__dirname, "src/components"), - }, - }, - }) -} - -exports.sourceNodes = async ({ - actions, - createNodeId, - createContentDigest, -}) => { - let data = JSON.parse(fs.readFileSync("./.all-contributorsrc", "utf-8")) - - data.contributors.forEach((contributor) => { - const name = contributor.name.replace(/\s+/g, " ").trim().split(" ") - const node = { - firstName: name[0], - lastName: - name.length === 3 - ? `${name[1]} ${name[2]}` - : name.length === 2 - ? name[1] - : "", - ...contributor, - id: createNodeId(`contributor-${contributor.login}`), - internal: { - type: "Contributor", - contentDigest: createContentDigest(contributor), - }, - } - - // Create the actual data node - actions.createNode(node) - }) -} diff --git a/gatsby-ssr.js b/gatsby-ssr.js deleted file mode 100644 index b17b8fc1..00000000 --- a/gatsby-ssr.js +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Implement Gatsby's SSR (Server Side Rendering) APIs in this file. - * - * See: https://www.gatsbyjs.org/docs/ssr-apis/ - */ - -// You can delete this file if you're not using it diff --git a/jest-preprocess.js b/jest-preprocess.js deleted file mode 100644 index 7540ebe8..00000000 --- a/jest-preprocess.js +++ /dev/null @@ -1,5 +0,0 @@ -const babelOptions = { - presets: ["babel-preset-gatsby"], -} - -module.exports = require("babel-jest").default.createTransformer(babelOptions) diff --git a/jest.config.js b/jest.config.js deleted file mode 100644 index f9128e98..00000000 --- a/jest.config.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - transform: { - "^.+\\.jsx?$": `/jest-preprocess.js`, - }, - moduleNameMapper: { - ".+\\.(css|styl|less|sass|scss)$": `identity-obj-proxy`, - ".+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": `/__mocks__/file-mock.js`, - }, - testPathIgnorePatterns: [`node_modules`, `\\.cache`, `.*/public`], - transformIgnorePatterns: [`node_modules/(?!(gatsby)/)`], - globals: { - __PATH_PREFIX__: ``, - }, - testURL: `http://localhost`, - setupFiles: [`/loadershim.js`], -} diff --git a/jsconfig.json b/jsconfig.json deleted file mode 100644 index 5875dc5b..00000000 --- a/jsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "compilerOptions": { - "baseUrl": "src" - }, - "include": ["src"] -} diff --git a/loadershim.js b/loadershim.js deleted file mode 100644 index 37084c74..00000000 --- a/loadershim.js +++ /dev/null @@ -1,3 +0,0 @@ -global.___loader = { - enqueue: jest.fn(), -} diff --git a/netlify.toml b/netlify.toml deleted file mode 100644 index 9fb8f69d..00000000 --- a/netlify.toml +++ /dev/null @@ -1,9 +0,0 @@ -[build] - publish = "public" - command = "npm run build && cd functions/db && yarn" - functions = "functions" - -[[headers]] - for = "/*" - [headers.values] - Permissions-Policy = "interest-cohort=()" \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index ff798d2b..00000000 --- a/package-lock.json +++ /dev/null @@ -1,28905 +0,0 @@ -{ - "name": "geeksblabla.com", - "version": "0.1.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@algolia/cache-browser-local-storage": { - "version": "4.10.5", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.10.5.tgz", - "integrity": "sha512-cfX2rEKOtuuljcGI5DMDHClwZHdDqd2nT2Ohsc8aHtBiz6bUxKVyIqxr2gaC6tU8AgPtrTVBzcxCA+UavXpKww==", - "requires": { - "@algolia/cache-common": "4.10.5" - } - }, - "@algolia/cache-common": { - "version": "4.10.5", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.10.5.tgz", - "integrity": "sha512-1mClwdmTHll+OnHkG+yeRoFM17kSxDs4qXkjf6rNZhoZGXDvfYLy3YcZ1FX4Kyz0DJv8aroq5RYGBDsWkHj6Tw==" - }, - "@algolia/cache-in-memory": { - "version": "4.10.5", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.10.5.tgz", - "integrity": "sha512-+ciQnfIGi5wjMk02XhEY8fmy2pzy+oY1nIIfu8LBOglaSipCRAtjk6WhHc7/KIbXPiYzIwuDbM2K1+YOwSGjwA==", - "requires": { - "@algolia/cache-common": "4.10.5" - } - }, - "@algolia/client-account": { - "version": "4.10.5", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.10.5.tgz", - "integrity": "sha512-I9UkSS2glXm7RBZYZIALjBMmXSQbw/fI/djPcBHxiwXIheNIlqIFl2SNPkvihpPF979BSkzjqdJNRPhE1vku3Q==", - "requires": { - "@algolia/client-common": "4.10.5", - "@algolia/client-search": "4.10.5", - "@algolia/transporter": "4.10.5" - } - }, - "@algolia/client-analytics": { - "version": "4.10.5", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.10.5.tgz", - "integrity": "sha512-h2owwJSkovPxzc+xIsjY1pMl0gj+jdVwP9rcnGjlaTY2fqHbSLrR9yvGyyr6305LvTppxsQnfAbRdE/5Z3eFxw==", - "requires": { - "@algolia/client-common": "4.10.5", - "@algolia/client-search": "4.10.5", - "@algolia/requester-common": "4.10.5", - "@algolia/transporter": "4.10.5" - } - }, - "@algolia/client-common": { - "version": "4.10.5", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.10.5.tgz", - "integrity": "sha512-21FAvIai5qm8DVmZHm2Gp4LssQ/a0nWwMchAx+1hIRj1TX7OcdW6oZDPyZ8asQdvTtK7rStQrRnD8a95SCUnzA==", - "requires": { - "@algolia/requester-common": "4.10.5", - "@algolia/transporter": "4.10.5" - } - }, - "@algolia/client-personalization": { - "version": "4.10.5", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.10.5.tgz", - "integrity": "sha512-nH+IyFKBi8tCyzGOanJTbXC5t4dspSovX3+ABfmwKWUYllYzmiQNFUadpb3qo+MLA3jFx5IwBesjneN6dD5o3w==", - "requires": { - "@algolia/client-common": "4.10.5", - "@algolia/requester-common": "4.10.5", - "@algolia/transporter": "4.10.5" - } - }, - "@algolia/client-search": { - "version": "4.10.5", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.10.5.tgz", - "integrity": "sha512-1eQFMz9uodrc5OM+9HeT+hHcfR1E1AsgFWXwyJ9Q3xejA2c1c4eObGgOgC9ZoshuHHdptaTN1m3rexqAxXRDBg==", - "requires": { - "@algolia/client-common": "4.10.5", - "@algolia/requester-common": "4.10.5", - "@algolia/transporter": "4.10.5" - } - }, - "@algolia/logger-common": { - "version": "4.10.5", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.10.5.tgz", - "integrity": "sha512-gRJo9zt1UYP4k3woEmZm4iuEBIQd/FrArIsjzsL/b+ihNoOqIxZKTSuGFU4UUZOEhvmxDReiA4gzvQXG+TMTmA==" - }, - "@algolia/logger-console": { - "version": "4.10.5", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.10.5.tgz", - "integrity": "sha512-4WfIbn4253EDU12u9UiYvz+QTvAXDv39mKNg9xSoMCjKE5szcQxfcSczw2byc6pYhahOJ9PmxPBfs1doqsdTKQ==", - "requires": { - "@algolia/logger-common": "4.10.5" - } - }, - "@algolia/requester-browser-xhr": { - "version": "4.10.5", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.10.5.tgz", - "integrity": "sha512-53/MURQEqtK+bGdfq4ITSPwTh5hnADU99qzvpAINGQveUFNSFGERipJxHjTJjIrjFz3vxj5kKwjtxDnU6ygO9g==", - "requires": { - "@algolia/requester-common": "4.10.5" - } - }, - "@algolia/requester-common": { - "version": "4.10.5", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.10.5.tgz", - "integrity": "sha512-UkVa1Oyuj6NPiAEt5ZvrbVopEv1m/mKqjs40KLB+dvfZnNcj+9Fry4Oxnt15HMy/HLORXsx4UwcthAvBuOXE9Q==" - }, - "@algolia/requester-node-http": { - "version": "4.10.5", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.10.5.tgz", - "integrity": "sha512-aNEKVKXL4fiiC+bS7yJwAHdxln81ieBwY3tsMCtM4zF9f5KwCzY2OtN4WKEZa5AAADVcghSAUdyjs4AcGUlO5w==", - "requires": { - "@algolia/requester-common": "4.10.5" - } - }, - "@algolia/transporter": { - "version": "4.10.5", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.10.5.tgz", - "integrity": "sha512-F8DLkmIlvCoMwSCZA3FKHtmdjH3o5clbt0pi2ktFStVNpC6ZDmY307HcK619bKP5xW6h8sVJhcvrLB775D2cyA==", - "requires": { - "@algolia/cache-common": "4.10.5", - "@algolia/logger-common": "4.10.5", - "@algolia/requester-common": "4.10.5" - } - }, - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@apollo/client": { - "version": "3.0.0-rc.2", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.0.0-rc.2.tgz", - "integrity": "sha512-bYr2JUVAebAj0C8vaR/OyETomagxi7/CikSwuzULmO4EokKG54ir+5o71FYtJijd9CnzSTjvwmeoxL4zQ70uAQ==", - "requires": { - "@types/zen-observable": "^0.8.0", - "@wry/equality": "^0.1.9", - "fast-json-stable-stringify": "^2.0.0", - "graphql-tag": "^2.10.2", - "optimism": "^0.12.1", - "symbol-observable": "^1.2.0", - "ts-invariant": "^0.4.4", - "tslib": "^1.10.0", - "zen-observable": "^0.8.14" - }, - "dependencies": { - "@wry/context": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.5.2.tgz", - "integrity": "sha512-B/JLuRZ/vbEKHRUiGj6xiMojST1kHhu4WcreLfNN7q9DqQFrb97cWgf/kiYsPSUCAMVN0HzfFc8XjJdzgZzfjw==", - "requires": { - "tslib": "^1.9.3" - } - }, - "optimism": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.12.1.tgz", - "integrity": "sha512-t8I7HM1dw0SECitBYAqFOVHoBAHEQBTeKjIL9y9ImHzAVkdyPK4ifTgM4VJRDtTUY4r/u5Eqxs4XcGPHaoPkeQ==", - "requires": { - "@wry/context": "^0.5.2" - } - } - } - }, - "@apollo/link-context": { - "version": "2.0.0-beta.3", - "resolved": "https://registry.npmjs.org/@apollo/link-context/-/link-context-2.0.0-beta.3.tgz", - "integrity": "sha512-oqdPayK9opMB80U+/vFiEwoSjtGLchys2vSysaCOE93LdotwQlmO0W0G2INN+tAgUfb+JEAj7rBwlBoXrHOy8A==", - "requires": { - "@apollo/client": "^3.0.0-beta.23", - "tslib": "^1.9.3" - } - }, - "@auth0/auth0-spa-js": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/@auth0/auth0-spa-js/-/auth0-spa-js-1.6.5.tgz", - "integrity": "sha512-pS5jF5DAHXeDssN9cJwOqAbgLYhJaXD2EBgeXkjfB3rrNcd7bYC9rOGckRTqyS2k2A05/N2aaRFnju81AgSDgQ==", - "requires": { - "browser-tabs-lock": "^1.2.7", - "core-js": "^3.6.4", - "es-cookie": "^1.3.2", - "fast-text-encoding": "^1.0.1", - "promise-polyfill": "^8.1.3", - "unfetch": "^4.1.0" - } - }, - "@babel/code-frame": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", - "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", - "requires": { - "@babel/highlight": "^7.8.3" - } - }, - "@babel/compat-data": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.0.tgz", - "integrity": "sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g==", - "requires": { - "browserslist": "^4.9.1", - "invariant": "^2.2.4", - "semver": "^5.5.0" - } - }, - "@babel/core": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.4.tgz", - "integrity": "sha512-0LiLrB2PwrVI+a2/IEskBopDYSd8BCb3rOvH7D5tzoWd696TBEduBvuLVm4Nx6rltrLZqvI3MCalB2K2aVzQjA==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.8.4", - "@babel/helpers": "^7.8.4", - "@babel/parser": "^7.8.4", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.4", - "@babel/types": "^7.8.3", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "@babel/generator": { - "version": "7.9.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz", - "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==", - "requires": { - "@babel/types": "^7.9.0", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", - "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", - "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-builder-react-jsx": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz", - "integrity": "sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/types": "^7.9.0" - } - }, - "@babel/helper-builder-react-jsx-experimental": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.0.tgz", - "integrity": "sha512-3xJEiyuYU4Q/Ar9BsHisgdxZsRlsShMe90URZ0e6przL26CCs8NJbDoxH94kKT17PcxlMhsCAwZd90evCo26VQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-module-imports": "^7.8.3", - "@babel/types": "^7.9.0" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz", - "integrity": "sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==", - "requires": { - "@babel/compat-data": "^7.8.6", - "browserslist": "^4.9.1", - "invariant": "^2.2.4", - "levenary": "^1.1.1", - "semver": "^5.5.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz", - "integrity": "sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/generator": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.10.tgz", - "integrity": "sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==", - "requires": { - "@babel/types": "^7.17.10", - "@jridgewell/gen-mapping": "^0.1.0", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", - "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", - "requires": { - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/highlight": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", - "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==" - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/traverse": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.10.tgz", - "integrity": "sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.10", - "@babel/types": "^7.17.10", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz", - "integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.8.8", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", - "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-regex": "^7.8.3", - "regexpu-core": "^4.7.0" - } - }, - "@babel/helper-define-map": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", - "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/types": "^7.8.3", - "lodash": "^4.17.13" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", - "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==" - }, - "@babel/generator": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.10.tgz", - "integrity": "sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==", - "requires": { - "@babel/types": "^7.17.10", - "@jridgewell/gen-mapping": "^0.1.0", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz", - "integrity": "sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==", - "requires": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - } - }, - "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", - "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/highlight": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", - "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==" - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/traverse": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.10.tgz", - "integrity": "sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==", - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.10", - "@babel/types": "^7.17.10", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz", - "integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", - "requires": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" - } - }, - "electron-to-chromium": { - "version": "1.4.137", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", - "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==" - }, - "node-releases": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", - "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "requires": { - "@babel/types": "^7.16.7" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz", - "integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", - "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", - "requires": { - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", - "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", - "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", - "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", - "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-module-imports": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", - "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-module-transforms": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", - "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-simple-access": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/template": "^7.8.6", - "@babel/types": "^7.9.0", - "lodash": "^4.17.13" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", - "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", - "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==" - }, - "@babel/helper-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", - "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", - "requires": { - "lodash": "^4.17.13" - } - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", - "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-wrap-function": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-replace-supers": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", - "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", - "requires": { - "@babel/helper-member-expression-to-functions": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/traverse": "^7.8.6", - "@babel/types": "^7.8.6" - } - }, - "@babel/helper-simple-access": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", - "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", - "requires": { - "@babel/template": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/types": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz", - "integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", - "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", - "requires": { - "@babel/types": "^7.8.3" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz", - "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==" - }, - "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==" - }, - "@babel/helper-wrap-function": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", - "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.8.3", - "@babel/types": "^7.8.3" - } - }, - "@babel/helpers": { - "version": "7.9.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz", - "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==", - "requires": { - "@babel/template": "^7.8.3", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0" - } - }, - "@babel/highlight": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", - "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", - "requires": { - "@babel/helper-validator-identifier": "^7.9.0", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.9.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", - "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==" - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "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.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - } - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - } - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", - "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - } - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - } - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", - "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - } - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", - "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - } - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", - "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-8qvuPwU/xxUCt78HocNlv0mXXo0wdh9VT1R04WU8HGOfaOob26pF+9P5/lYjN/q7DHOX1bvX60hnhOvuQUJdbA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", - "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - } - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "dependencies": { - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/types": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz", - "integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.8.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz", - "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.8", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@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==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - } - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - } - } - }, - "@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==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - } - } - }, - "@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==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", - "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - } - } - }, - "@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==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", - "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@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==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - } - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", - "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.17.10.tgz", - "integrity": "sha512-xJefea1DWXW09pW4Tm9bjwVlPDyYA2it3fWlmEjpYz6alPvTUjL0EOzNzI/FEOyI3r4/J7uVH5UqKgl1TQ5hqQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - } - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", - "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", - "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", - "requires": { - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-remap-async-to-generator": "^7.8.3" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", - "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", - "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "lodash": "^4.17.13" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.9.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz", - "integrity": "sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-define-map": "^7.8.3", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-optimise-call-expression": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.6", - "@babel/helper-split-export-declaration": "^7.8.3", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", - "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.8.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz", - "integrity": "sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", - "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", - "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", - "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz", - "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", - "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", - "requires": { - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", - "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", - "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz", - "integrity": "sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==", - "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz", - "integrity": "sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g==", - "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-simple-access": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz", - "integrity": "sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==", - "requires": { - "@babel/helper-hoist-variables": "^7.8.3", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "babel-plugin-dynamic-import-node": "^2.3.0" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz", - "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==", - "requires": { - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", - "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", - "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", - "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-replace-supers": "^7.8.3" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.9.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz", - "integrity": "sha512-fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg==", - "requires": { - "@babel/helper-get-function-arity": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", - "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz", - "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.9.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz", - "integrity": "sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw==", - "requires": { - "@babel/helper-builder-react-jsx": "^7.9.0", - "@babel/helper-builder-react-jsx-experimental": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.9.0.tgz", - "integrity": "sha512-tK8hWKrQncVvrhvtOiPpKrQjfNX3DtkNLSX4ObuGcpS9p0QrGetKmlySIGR07y48Zft8WVgPakqd/bk46JrMSw==", - "requires": { - "@babel/helper-builder-react-jsx-experimental": "^7.9.0", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3" - } - }, - "@babel/plugin-transform-react-jsx-self": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz", - "integrity": "sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3" - } - }, - "@babel/plugin-transform-react-jsx-source": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz", - "integrity": "sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-jsx": "^7.8.3" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/types": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz", - "integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz", - "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==", - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", - "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.10.tgz", - "integrity": "sha512-6jrMilUAJhktTr56kACL8LnWC5hx3Lf27BS0R0DSyW/OoJfb/iTHeE96V3b1dgKG3FSFdd/0culnYWMkjcKCig==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "semver": "^6.3.0" - }, - "dependencies": { - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==" - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" - }, - "@babel/types": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz", - "integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==", - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", - "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", - "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", - "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/helper-regex": "^7.8.3" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", - "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", - "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - } - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", - "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/polyfill": { - "version": "7.8.7", - "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.8.7.tgz", - "integrity": "sha512-LeSfP9bNZH2UOZgcGcZ0PIHUt1ZuHub1L3CVmEyqLxCeDLm4C5Gi8jRH8ZX2PNpDhQCo0z6y/+DIs2JlliXW8w==", - "requires": { - "core-js": "^2.6.5", - "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" - } - } - }, - "@babel/preset-env": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.0.tgz", - "integrity": "sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ==", - "requires": { - "@babel/compat-data": "^7.9.0", - "@babel/helper-compilation-targets": "^7.8.7", - "@babel/helper-module-imports": "^7.8.3", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-async-generator-functions": "^7.8.3", - "@babel/plugin-proposal-dynamic-import": "^7.8.3", - "@babel/plugin-proposal-json-strings": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-numeric-separator": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.9.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.9.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", - "@babel/plugin-syntax-json-strings": "^7.8.0", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", - "@babel/plugin-syntax-numeric-separator": "^7.8.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.8.3", - "@babel/plugin-transform-arrow-functions": "^7.8.3", - "@babel/plugin-transform-async-to-generator": "^7.8.3", - "@babel/plugin-transform-block-scoped-functions": "^7.8.3", - "@babel/plugin-transform-block-scoping": "^7.8.3", - "@babel/plugin-transform-classes": "^7.9.0", - "@babel/plugin-transform-computed-properties": "^7.8.3", - "@babel/plugin-transform-destructuring": "^7.8.3", - "@babel/plugin-transform-dotall-regex": "^7.8.3", - "@babel/plugin-transform-duplicate-keys": "^7.8.3", - "@babel/plugin-transform-exponentiation-operator": "^7.8.3", - "@babel/plugin-transform-for-of": "^7.9.0", - "@babel/plugin-transform-function-name": "^7.8.3", - "@babel/plugin-transform-literals": "^7.8.3", - "@babel/plugin-transform-member-expression-literals": "^7.8.3", - "@babel/plugin-transform-modules-amd": "^7.9.0", - "@babel/plugin-transform-modules-commonjs": "^7.9.0", - "@babel/plugin-transform-modules-systemjs": "^7.9.0", - "@babel/plugin-transform-modules-umd": "^7.9.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", - "@babel/plugin-transform-new-target": "^7.8.3", - "@babel/plugin-transform-object-super": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.8.7", - "@babel/plugin-transform-property-literals": "^7.8.3", - "@babel/plugin-transform-regenerator": "^7.8.7", - "@babel/plugin-transform-reserved-words": "^7.8.3", - "@babel/plugin-transform-shorthand-properties": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/plugin-transform-sticky-regex": "^7.8.3", - "@babel/plugin-transform-template-literals": "^7.8.3", - "@babel/plugin-transform-typeof-symbol": "^7.8.4", - "@babel/plugin-transform-unicode-regex": "^7.8.3", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.9.0", - "browserslist": "^4.9.1", - "core-js-compat": "^3.6.2", - "invariant": "^2.2.2", - "levenary": "^1.1.1", - "semver": "^5.5.0" - }, - "dependencies": { - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz", - "integrity": "sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0" - } - } - } - }, - "@babel/preset-modules": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", - "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-react": { - "version": "7.9.4", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.9.4.tgz", - "integrity": "sha512-AxylVB3FXeOTQXNXyiuAQJSvss62FEotbX2Pzx3K/7c+MKJMdSg6Ose6QYllkdCFA8EInCJVw7M/o5QbLuA4ZQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-transform-react-display-name": "^7.8.3", - "@babel/plugin-transform-react-jsx": "^7.9.4", - "@babel/plugin-transform-react-jsx-development": "^7.9.0", - "@babel/plugin-transform-react-jsx-self": "^7.9.0", - "@babel/plugin-transform-react-jsx-source": "^7.9.0" - } - }, - "@babel/runtime": { - "version": "7.9.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", - "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.9.2", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.9.2.tgz", - "integrity": "sha512-HHxmgxbIzOfFlZ+tdeRKtaxWOMUoCG5Mu3wKeUmOxjYrwb3AAHgnmtCUbPPK11/raIWLIBK250t8E2BPO0p7jA==", - "requires": { - "core-js-pure": "^3.0.0", - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", - "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/parser": "^7.8.6", - "@babel/types": "^7.8.6" - } - }, - "@babel/traverse": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", - "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.0", - "@babel/helper-function-name": "^7.8.3", - "@babel/helper-split-export-declaration": "^7.8.3", - "@babel/parser": "^7.9.0", - "@babel/types": "^7.9.0", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.13" - } - }, - "@babel/types": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", - "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", - "requires": { - "@babel/helper-validator-identifier": "^7.9.0", - "lodash": "^4.17.13", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@emotion/cache": { - "version": "10.0.29", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-10.0.29.tgz", - "integrity": "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ==", - "requires": { - "@emotion/sheet": "0.9.4", - "@emotion/stylis": "0.8.5", - "@emotion/utils": "0.11.3", - "@emotion/weak-memoize": "0.2.5" - } - }, - "@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" - }, - "@emotion/memoize": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz", - "integrity": "sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==" - }, - "@emotion/serialize": { - "version": "0.11.16", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-0.11.16.tgz", - "integrity": "sha512-G3J4o8by0VRrO+PFeSc3js2myYNOXVJ3Ya+RGVxnshRYgsvErfAOglKAiy1Eo1vhzxqtUvjCyS5gtewzkmvSSg==", - "requires": { - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/unitless": "0.7.5", - "@emotion/utils": "0.11.3", - "csstype": "^2.5.7" - } - }, - "@emotion/sheet": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-0.9.4.tgz", - "integrity": "sha512-zM9PFmgVSqBw4zL101Q0HrBVTGmpAxFZH/pYx/cjJT5advXguvcgjHFTCaIO3enL/xr89vK2bh0Mfyj9aa0ANA==" - }, - "@emotion/stylis": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz", - "integrity": "sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==" - }, - "@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" - }, - "@emotion/utils": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.11.3.tgz", - "integrity": "sha512-0o4l6pZC+hI88+bzuaX/6BgOvQVhbt2PfmxauVaYOGgbsAw14wdKyvMCZXnsnsHys94iadcF+RG/wZyx6+ZZBw==" - }, - "@emotion/weak-memoize": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", - "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" - }, - "@hapi/address": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", - "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" - }, - "@hapi/bourne": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", - "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" - }, - "@hapi/hoek": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", - "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" - }, - "@hapi/joi": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", - "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", - "requires": { - "@hapi/address": "2.x.x", - "@hapi/bourne": "1.x.x", - "@hapi/hoek": "8.x.x", - "@hapi/topo": "3.x.x" - } - }, - "@hapi/topo": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", - "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", - "requires": { - "@hapi/hoek": "^8.3.0" - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "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, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "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, - "requires": { - "p-locate": "^4.1.0" - } - }, - "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, - "requires": { - "p-limit": "^2.2.0" - } - }, - "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 - }, - "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 - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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 - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "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, - "requires": { - "type-fest": "^0.21.3" - } - }, - "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 - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "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" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "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 - }, - "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 - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "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, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "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" - } - }, - "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 - } - } - }, - "@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - } - }, - "@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - } - }, - "@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - } - }, - "@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "dependencies": { - "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 - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "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 - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "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 - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "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, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "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 - } - } - }, - "@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "dev": true, - "requires": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - } - } - }, - "@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "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" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "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 - }, - "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 - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "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 - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "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" - } - } - } - }, - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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 - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jimp/bmp": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.9.8.tgz", - "integrity": "sha512-CZYQPEC3iUBMuaGWrtIG+GKNl93q/PkdudrCKJR/B96dfNngsmoosEm3LuFgJHEcJIfvnJkNqKw74l+zEiqCbg==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "bmp-js": "^0.1.0", - "core-js": "^3.4.1" - } - }, - "@jimp/core": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.9.8.tgz", - "integrity": "sha512-N4GCjcXb0QwR5GBABDK2xQ3cKyaF7LlCYeJEG9mV7G/ynBoRqJe4JA6YKU9Ww9imGkci/4A594nQo8tUIqdcBw==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "any-base": "^1.1.0", - "buffer": "^5.2.0", - "core-js": "^3.4.1", - "exif-parser": "^0.1.12", - "file-type": "^9.0.0", - "load-bmfont": "^1.3.1", - "mkdirp": "^0.5.1", - "phin": "^2.9.1", - "pixelmatch": "^4.0.2", - "tinycolor2": "^1.4.1" - }, - "dependencies": { - "buffer": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.5.0.tgz", - "integrity": "sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "file-type": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", - "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==" - } - } - }, - "@jimp/custom": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.9.8.tgz", - "integrity": "sha512-1UpJjI7fhX02BWLJ/KEqPwkHH60eNkCNeD6hEd+IZdTwLXfZCfFiM5BVlpgiZYZJSsVoRiAL4ne2Q5mCiKPKyw==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/core": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/gif": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.9.8.tgz", - "integrity": "sha512-LEbfpcO1sBJIQCJHchZjNlyNxzPjZQQ4X32klpQHZJG58n9FvL7Uuh1rpkrJRbqv3cU3P0ENNtTrsBDxsYwcfA==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1", - "omggif": "^1.0.9" - } - }, - "@jimp/jpeg": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.9.8.tgz", - "integrity": "sha512-5u29SUzbZ32ZMmOaz3gO0hXatwSCnsvEAXRCKZoPPgbsPoyFAiZKVxjfLzjkeQF6awkvJ8hZni5chM15SNMg+g==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1", - "jpeg-js": "^0.3.4" - } - }, - "@jimp/plugin-blit": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.9.8.tgz", - "integrity": "sha512-6xTDomxJybhBcby1IUVaPydZFhxf+V0DRgfDlVK81kR9kSCoshJpzWqDuWrMqjNEPspPE7jRQwHMs0FdU7mVwQ==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-blur": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.9.8.tgz", - "integrity": "sha512-dqbxuNFBRbmt35iIRacdgma7nlXklmPThsKcGWNTDmqb/hniK5IC+0xSPzBV4qMI2fLGP39LWHqqDZ0xDz14dA==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-circle": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.9.8.tgz", - "integrity": "sha512-+UStXUPCzPqzTixLC8eVqcFcEa6TS+BEM/6/hyM11TDb9sbiMGeUtgpwZP/euR5H5gfpAQDA1Ppzqhh5fuMDlw==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-color": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.9.8.tgz", - "integrity": "sha512-SDHxOQsJHpt75hk6+sSlCPc2B3UJlXosFW+iLZ11xX1Qr0IdDtbfYlIoPmjKQFIDUNzqLSue/z7sKQ1OMZr/QA==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1", - "tinycolor2": "^1.4.1" - } - }, - "@jimp/plugin-contain": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.9.8.tgz", - "integrity": "sha512-oK52CPt7efozuLYCML7qOmpFeDt3zpU8qq8UZlnjsDs15reU6L8EiUbwYpJvzoEnEOh1ZqamB8F/gymViEO5og==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-cover": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.9.8.tgz", - "integrity": "sha512-nnamtHzMrNd5j5HRSPd1VzpZ8v9YYtUJPtvCdHOOiIjqG72jxJ2kTBlsS3oG5XS64h/2MJwpl/fmmMs1Tj1CmQ==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-crop": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.9.8.tgz", - "integrity": "sha512-Nv/6AIp4aJmbSIH2uiIqm+kSoShKM8eaX2fyrUTj811kio0hwD3f/vIxrWebvAqwDZjAFIAmMufFoFCVg6caoQ==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-displace": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.9.8.tgz", - "integrity": "sha512-0OgPjkOVa2xdbqI8P6gBKX/UK36RbaYVrFyXL8Jy9oNF69+LYWyTskuCu9YbGxzlCVjY/JFqQOvrKDbxgMYAKA==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-dither": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.9.8.tgz", - "integrity": "sha512-jGM/4ByniZJnmV2fv8hKwyyydXZe/YzvgBcnB8XxzCq8kVR3Imcn+qnd2PEPZzIPKOTH4Cig/zo9Vk9Bs+m5FQ==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-fisheye": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.9.8.tgz", - "integrity": "sha512-VnsalrD05f4pxG1msjnkwIFi5QveOqRm4y7VkoZKNX+iqs4TvRnH5+HpBnfdMzX/RXBi+Lf/kpTtuZgbOu/QWw==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-flip": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.9.8.tgz", - "integrity": "sha512-XbiZ4OfHD6woc0f6Sk7XxB6a7IyMjTRQ4pNU7APjaNxsl3L6qZC8qfCQphWVe3DHx7f3y7jEiPMvNnqRDP1xgA==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-gaussian": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.9.8.tgz", - "integrity": "sha512-ZBl5RA6+4XAD+mtqLfiG7u+qd8W5yqq3RBNca8eFqUSVo1v+eB2tzeLel0CWfVC/z6cw93Awm/nVnm6/CL2Oew==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-invert": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.9.8.tgz", - "integrity": "sha512-ESploqCoF6qUv5IWhVLaO5fEcrYZEsAWPFflh6ROiD2mmFKQxfeK+vHnk3IDLHtUwWTkAZQNbk89BVq7xvaNpQ==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-mask": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.9.8.tgz", - "integrity": "sha512-zSvEisTV4iGsBReitEdnQuGJq9/1xB5mPATadYZmIlp8r5HpD72HQb0WdEtb51/pu9Odt8KAxUf0ASg/PRVUiQ==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-normalize": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.9.8.tgz", - "integrity": "sha512-dPFBfwTa67K1tRw1leCidQT25R3ozrTUUOpO4jcGFHqXvBTWaR8sML1qxdfOBWs164mE5YpfdTvu6MM/junvCg==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-print": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.9.8.tgz", - "integrity": "sha512-nLLPv1/faehRsOjecXXUb6kzhRcZzImO55XuFZ0c90ZyoiHm4UFREwO5sKxHGvpLXS6RnkhvSav4+IWD2qGbEQ==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1", - "load-bmfont": "^1.4.0" - } - }, - "@jimp/plugin-resize": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.9.8.tgz", - "integrity": "sha512-L80NZ+HKsiKFyeDc6AfneC4+5XACrdL2vnyAVfAAsb3pmamgT/jDInWvvGhyI0Y76vx2w6XikplzEznW/QQvWg==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-rotate": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.9.8.tgz", - "integrity": "sha512-bpqzQheISYnBXKyU1lIj46uR7mRs0UhgEREWK70HnvFJSlRshdcoNMIrKamyrJeFdJrkYPSfR/a6D0d5zsWf1Q==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-scale": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.9.8.tgz", - "integrity": "sha512-QU3ZS4Lre8nN66U9dKCOC4FNfaOh/QJFYUmQPKpPS924oYbtnm4OlmsdfpK2hVMSVVyVOis8M+xpA1rDBnIp7w==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-shadow": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.9.8.tgz", - "integrity": "sha512-t/pE+QS3r1ZUxGIQNmwWDI3c5+/hLU+gxXD+C3EEC47/qk3gTBHpj/xDdGQBoObdT/HRjR048vC2BgBfzjj2hg==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugin-threshold": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.9.8.tgz", - "integrity": "sha512-WWmC3lnIwOTPvkKu55w4DUY8Ehlzf3nU98bY0QtIzkqxkAOZU5m+lvgC/JxO5FyGiA57j9FLMIf0LsWkjARj7g==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1" - } - }, - "@jimp/plugins": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.9.8.tgz", - "integrity": "sha512-tD+cxS9SuEZaQ1hhAkNKw9TkUAqfoBAhdWPBrEZDr/GvGPrvJR4pYmmpSYhc5IZmMbXfQayHTTGqjj8D18bToA==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/plugin-blit": "^0.9.8", - "@jimp/plugin-blur": "^0.9.8", - "@jimp/plugin-circle": "^0.9.8", - "@jimp/plugin-color": "^0.9.8", - "@jimp/plugin-contain": "^0.9.8", - "@jimp/plugin-cover": "^0.9.8", - "@jimp/plugin-crop": "^0.9.8", - "@jimp/plugin-displace": "^0.9.8", - "@jimp/plugin-dither": "^0.9.8", - "@jimp/plugin-fisheye": "^0.9.8", - "@jimp/plugin-flip": "^0.9.8", - "@jimp/plugin-gaussian": "^0.9.8", - "@jimp/plugin-invert": "^0.9.8", - "@jimp/plugin-mask": "^0.9.8", - "@jimp/plugin-normalize": "^0.9.8", - "@jimp/plugin-print": "^0.9.8", - "@jimp/plugin-resize": "^0.9.8", - "@jimp/plugin-rotate": "^0.9.8", - "@jimp/plugin-scale": "^0.9.8", - "@jimp/plugin-shadow": "^0.9.8", - "@jimp/plugin-threshold": "^0.9.8", - "core-js": "^3.4.1", - "timm": "^1.6.1" - } - }, - "@jimp/png": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.9.8.tgz", - "integrity": "sha512-9CqR8d40zQCDhbnXHqcwkAMnvlV0vk9xSyE6LHjkYHS7x18Unsz5txQdsaEkEcXxCrOQSoWyITfLezlrWXRJAA==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.9.8", - "core-js": "^3.4.1", - "pngjs": "^3.3.3" - } - }, - "@jimp/tiff": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.9.8.tgz", - "integrity": "sha512-eMxcpJivJqMByn2dZxUHLeh6qvVs5J/52kBF3TFa3C922OJ97D9l1C1h0WKUCBqFMWzMYapQQ4vwnLgpJ5tkow==", - "requires": { - "@babel/runtime": "^7.7.2", - "core-js": "^3.4.1", - "utif": "^2.0.1" - } - }, - "@jimp/types": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.9.8.tgz", - "integrity": "sha512-H5y/uqt0lqJ/ZN8pWqFG+pv8jPAppMKkTMByuC8YBIjWSsornwv44hjiWl93sbYhduLZY8ubz/CbX9jH2X6EwA==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/bmp": "^0.9.8", - "@jimp/gif": "^0.9.8", - "@jimp/jpeg": "^0.9.8", - "@jimp/png": "^0.9.8", - "@jimp/tiff": "^0.9.8", - "core-js": "^3.4.1", - "timm": "^1.6.1" - } - }, - "@jimp/utils": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.9.8.tgz", - "integrity": "sha512-UK0Fu0eevQlpRXq5ff4o/71HJlpX9wJMddJjMYg9vUqCCl8ZnumRAljfShHFhGyO+Vc9IzN6dd8Y5JZZTp1KOw==", - "requires": { - "@babel/runtime": "^7.7.2", - "core-js": "^3.4.1" - } - }, - "@jlengstorf/get-share-image": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@jlengstorf/get-share-image/-/get-share-image-0.5.0.tgz", - "integrity": "sha512-OWVBj5vGYUh7g+AziDhucSjNZ4XNOUNGB/pd0PlwYVkaykJnxnB+Djp2EzOVtDQwcxE5v9p1lCiAyBeCfzir7w==" - }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==" - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@mdx-js/mdx": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.5.7.tgz", - "integrity": "sha512-db1E3P0HCgSUX768Y/jIcr5h41VR5AsvaOmPTydltNM4R8Uh863IqDvnkpa7l829bY/tp6wrMBWM2NH0oLuxHw==", - "requires": { - "@babel/core": "7.8.4", - "@babel/plugin-syntax-jsx": "7.8.3", - "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "@mdx-js/util": "^1.5.7", - "babel-plugin-apply-mdx-type-prop": "^1.5.7", - "babel-plugin-extract-import-names": "^1.5.7", - "camelcase-css": "2.0.1", - "detab": "2.0.3", - "hast-util-raw": "5.0.1", - "lodash.uniq": "4.5.0", - "mdast-util-to-hast": "7.0.0", - "remark-mdx": "^1.5.7", - "remark-parse": "7.0.2", - "remark-squeeze-paragraphs": "3.0.4", - "style-to-object": "0.3.0", - "unified": "8.4.2", - "unist-builder": "2.0.3", - "unist-util-visit": "2.0.2" - } - }, - "@mdx-js/react": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.5.7.tgz", - "integrity": "sha512-OxX/GKyVlqY7WqyRcsIA/qr7i1Xq3kAVNUhSSnL1mfKKNKO+hwMWcZX4WS2OItLtoavA2/8TVDHpV/MWKWyfvw==" - }, - "@mdx-js/tag": { - "version": "0.20.3", - "resolved": "https://registry.npmjs.org/@mdx-js/tag/-/tag-0.20.3.tgz", - "integrity": "sha512-Co3gUFmNDv9z2LjuvLTpTj2NaOSHFxuoZjohcG0YK/KfECO+Ns9idzThMYjfEDe1vAf4c824rqlBYseedJdFNw==" - }, - "@mdx-js/util": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.5.7.tgz", - "integrity": "sha512-SV+V8A+Y33pmVT/LWk/2y51ixIyA/QH1XL+nrWAhoqre1rFtxOEZ4jr0W+bKZpeahOvkn/BQTheK+dRty9o/ig==" - }, - "@mikaelkristiansson/domready": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@mikaelkristiansson/domready/-/domready-1.0.10.tgz", - "integrity": "sha512-6cDuZeKSCSJ1KvfEQ25Y8OXUjqDJZ+HgUs6dhASWbAX8fxVraTfPsSeRe2bN+4QJDsgUaXaMWBYfRomCr04GGg==" - }, - "@mrmlnc/readdir-enhanced": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", - "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", - "requires": { - "call-me-maybe": "^1.0.1", - "glob-to-regexp": "^0.3.0" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", - "requires": { - "@nodelib/fs.stat": "2.0.3", - "run-parallel": "^1.1.9" - }, - "dependencies": { - "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" - } - } - }, - "@nodelib/fs.stat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", - "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" - }, - "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", - "requires": { - "@nodelib/fs.scandir": "2.1.3", - "fastq": "^1.6.0" - } - }, - "@pieh/friendly-errors-webpack-plugin": { - "version": "1.7.0-chalk-2", - "resolved": "https://registry.npmjs.org/@pieh/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0-chalk-2.tgz", - "integrity": "sha512-65+vYGuDkHBCWWjqzzR/Ck318+d6yTI00EqII9qe3aPD1J3Olhvw0X38uM5moQb1PK/ksDXwSoPGt/5QhCiotw==", - "requires": { - "chalk": "^2.4.2", - "error-stack-parser": "^2.0.0", - "string-width": "^2.0.0", - "strip-ansi": "^3" - } - }, - "@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.2.0.tgz", - "integrity": "sha512-rjdNzcWroULJeD/Y0+eETy9LhM7c5tbPF+wqT5G680rwDkh3iothIPEqGAuEE2WJlXEaAq293aO6ySzsIU518Q==", - "requires": { - "ansi-html": "^0.0.7", - "error-stack-parser": "^2.0.4", - "html-entities": "^1.2.1", - "lodash.debounce": "^4.0.8", - "react-dev-utils": "^9.1.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", - "requires": { - "@babel/highlight": "^7.0.0" - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "browserslist": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.7.0.tgz", - "integrity": "sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==", - "requires": { - "caniuse-lite": "^1.0.30000989", - "electron-to-chromium": "^1.3.247", - "node-releases": "^1.1.29" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "react-dev-utils": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.1.0.tgz", - "integrity": "sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg==", - "requires": { - "@babel/code-frame": "7.5.5", - "address": "1.1.2", - "browserslist": "4.7.0", - "chalk": "2.4.2", - "cross-spawn": "6.0.5", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "1.0.5", - "filesize": "3.6.1", - "find-up": "3.0.0", - "fork-ts-checker-webpack-plugin": "1.5.0", - "global-modules": "2.0.0", - "globby": "8.0.2", - "gzip-size": "5.1.1", - "immer": "1.10.0", - "inquirer": "6.5.0", - "is-root": "2.1.0", - "loader-utils": "1.2.3", - "open": "^6.3.0", - "pkg-up": "2.0.0", - "react-error-overlay": "^6.0.3", - "recursive-readdir": "2.2.2", - "shell-quote": "1.7.2", - "sockjs-client": "1.4.0", - "strip-ansi": "5.2.0", - "text-table": "0.2.0" - } - }, - "react-error-overlay": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.7.tgz", - "integrity": "sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA==" - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "@reach/router": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@reach/router/-/router-1.3.3.tgz", - "integrity": "sha512-gOIAiFhWdiVGSVjukKeNKkCRBLmnORoTPyBihI/jLunICPgxdP30DroAvPQuf1eVfQbfGJQDJkwhJXsNPMnVWw==", - "requires": { - "create-react-context": "0.3.0", - "invariant": "^2.2.3", - "prop-types": "^15.6.1", - "react-lifecycles-compat": "^3.0.4" - } - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@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 - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", - "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/cacheable-request": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", - "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", - "dev": true, - "requires": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, - "@types/color-name": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", - "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" - }, - "@types/configstore": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/configstore/-/configstore-2.1.1.tgz", - "integrity": "sha1-zR6FU2M60xhcPy8jns/10mQ+krY=" - }, - "@types/debug": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-0.0.30.tgz", - "integrity": "sha512-orGL5LXERPYsLov6CWs3Fh6203+dXzJkR7OnddIr2514Hsecwc8xRpzCapshBbKFImCsvS/mk6+FWiN5LyZJAQ==" - }, - "@types/eslint-visitor-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", - "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==" - }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" - }, - "@types/get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@types/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha512-TiNg8R1kjDde5Pub9F9vCwZA/BNW9HeXP5b9j7Qucqncy/McfPZ6xze/EyBdXS5FhMIGN6Fx3vg75l5KHy3V1Q==" - }, - "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", - "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/history": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.5.tgz", - "integrity": "sha512-wLD/Aq2VggCJXSjxEwrMafIP51Z+13H78nXIX0ABEuIGhmB5sNGbR113MOKo+yfw+RDo1ZU3DM6yfnnRF/+ouw==" - }, - "@types/http-cache-semantics": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", - "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==", - "dev": true - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz", - "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==" - }, - "@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/lodash": { - "version": "4.14.149", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.149.tgz", - "integrity": "sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ==" - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" - }, - "@types/mkdirp": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz", - "integrity": "sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==", - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "12.12.31", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.31.tgz", - "integrity": "sha512-T+wnJno8uh27G9c+1T+a1/WYCHzLeDqtsGJkoEdSp2X8RTh3oOCZQcUnjAx90CS8cmmADX51O0FI/tu9s0yssg==" - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - }, - "@types/prettier": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.1.tgz", - "integrity": "sha512-XFjFHmaLVifrAKaZ+EKghFHtHSUonyw8P2Qmy2/+osBnrKbH9UYtlK10zg8/kCt47MFilll/DEDKy3DHfJ0URw==", - "dev": true - }, - "@types/prop-types": { - "version": "15.7.3", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", - "integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==" - }, - "@types/q": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", - "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==" - }, - "@types/reach__router": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@types/reach__router/-/reach__router-1.3.1.tgz", - "integrity": "sha512-E51ntVeunnxofXmOoPFiOvElHWf+jBEs3B56gGx7XhPHOkJdjWxWDY4V1AsUiwhtOCXPM7atFy30wj7glyv2Fg==", - "requires": { - "@types/history": "*", - "@types/react": "*" - } - }, - "@types/react": { - "version": "16.9.25", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.25.tgz", - "integrity": "sha512-Dlj2V72cfYLPNscIG3/SMUOzhzj7GK3bpSrfefwt2YT9GLynvLCCZjbhyF6VsT0q0+aRACRX03TDJGb7cA0cqg==", - "requires": { - "@types/prop-types": "*", - "csstype": "^2.2.0" - } - }, - "@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/rimraf": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/rimraf/-/rimraf-2.0.4.tgz", - "integrity": "sha512-8gBudvllD2A/c0CcEX/BivIDorHFt5UI5m46TsNj8DjWCCTTZT74kEe4g+QsY7P/B9WdO98d82zZgXO/RQzu2Q==", - "requires": { - "@types/glob": "*", - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha1-EHPEvIJHVK49EM+riKsCN7qWTk0=" - }, - "@types/unist": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", - "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==" - }, - "@types/vfile": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/vfile/-/vfile-3.0.2.tgz", - "integrity": "sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==", - "requires": { - "@types/node": "*", - "@types/unist": "*", - "@types/vfile-message": "*" - } - }, - "@types/vfile-message": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/vfile-message/-/vfile-message-2.0.0.tgz", - "integrity": "sha512-GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==", - "requires": { - "vfile-message": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "@types/yauzl": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz", - "integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==", - "dev": true, - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "@types/yoga-layout": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/yoga-layout/-/yoga-layout-1.9.1.tgz", - "integrity": "sha512-OpfgQXWLZn5Dl7mOd8dBNcV8NywXbYYoHjUpa64vJ/RQABaxMzJ5bVicKLGIvIiMnQPtPgKNgXb5jkv9fkOQtw==", - "optional": true - }, - "@types/zen-observable": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.0.tgz", - "integrity": "sha512-te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg==" - }, - "@typescript-eslint/eslint-plugin": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.25.0.tgz", - "integrity": "sha512-W2YyMtjmlrOjtXc+FtTelVs9OhuR6OlYc4XKIslJ8PUJOqgYYAPRJhAqkYRQo3G4sjvG8jSodsNycEn4W2gHUw==", - "requires": { - "@typescript-eslint/experimental-utils": "2.25.0", - "functional-red-black-tree": "^1.0.1", - "regexpp": "^3.0.0", - "tsutils": "^3.17.1" - } - }, - "@typescript-eslint/experimental-utils": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.25.0.tgz", - "integrity": "sha512-0IZ4ZR5QkFYbaJk+8eJ2kYeA+1tzOE1sBjbwwtSV85oNWYUBep+EyhlZ7DLUCyhMUGuJpcCCFL0fDtYAP1zMZw==", - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.25.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - } - }, - "@typescript-eslint/parser": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.25.0.tgz", - "integrity": "sha512-mccBLaBSpNVgp191CP5W+8U1crTyXsRziWliCqzj02kpxdjKMvFHGJbK33NroquH3zB/gZ8H511HEsJBa2fNEg==", - "requires": { - "@types/eslint-visitor-keys": "^1.0.0", - "@typescript-eslint/experimental-utils": "2.25.0", - "@typescript-eslint/typescript-estree": "2.25.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "@typescript-eslint/typescript-estree": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.25.0.tgz", - "integrity": "sha512-VUksmx5lDxSi6GfmwSK7SSoIKSw9anukWWNitQPqt58LuYrKalzsgeuignbqnB+rK/xxGlSsCy8lYnwFfB6YJg==", - "requires": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^6.3.0", - "tsutils": "^3.17.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@urql/core": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/@urql/core/-/core-1.10.7.tgz", - "integrity": "sha512-KOeX6TpU0ui7WDaP3ZgXJnRRPbjPz31jECYixgc+vxo7rQVVFkRkB7qzfusYzeCYAruMz7vzoOPT22UTxKcU/g==", - "requires": { - "wonka": "^4.0.9" - } - }, - "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" - }, - "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" - }, - "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "requires": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" - }, - "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "requires": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" - }, - "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "@wry/equality": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.9.tgz", - "integrity": "sha512-mB6ceGjpMGz1ZTza8HYnrPGos2mC6So4NhS1PtZ8s4Qt0K7fBiIGhpSxUbQmhwcSWE3no+bYxmI2OL6KuXYmoQ==", - "requires": { - "tslib": "^1.9.3" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "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==", - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==" - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==" - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "address": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", - "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=" - }, - "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==", - "requires": { - "debug": "4" - } - }, - "aggregate-error": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", - "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", - "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" - }, - "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==" - }, - "algoliasearch": { - "version": "4.10.5", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.10.5.tgz", - "integrity": "sha512-KmH2XkiN+8FxhND4nWFbQDkIoU6g2OjfeU9kIv4Lb+EiOOs3Gpp7jvd+JnatsCisAZsnWQdjd7zVlW7I/85QvQ==", - "requires": { - "@algolia/cache-browser-local-storage": "4.10.5", - "@algolia/cache-common": "4.10.5", - "@algolia/cache-in-memory": "4.10.5", - "@algolia/client-account": "4.10.5", - "@algolia/client-analytics": "4.10.5", - "@algolia/client-common": "4.10.5", - "@algolia/client-personalization": "4.10.5", - "@algolia/client-search": "4.10.5", - "@algolia/logger-common": "4.10.5", - "@algolia/logger-console": "4.10.5", - "@algolia/requester-browser-xhr": "4.10.5", - "@algolia/requester-common": "4.10.5", - "@algolia/requester-node-http": "4.10.5", - "@algolia/transporter": "4.10.5" - } - }, - "algoliasearch-helper": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.5.5.tgz", - "integrity": "sha512-JDH14gMpSj8UzEaKwVkrqKOeAOyK0dDWsFlKvWhk0Xl5yw9FyafYf1xZPb4uSXaPBAFQtUouFlR1Zt68BCY0/w==", - "requires": { - "events": "^1.1.1" - }, - "dependencies": { - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" - } - } - }, - "all-contributors-cli": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/all-contributors-cli/-/all-contributors-cli-6.14.0.tgz", - "integrity": "sha512-rGpKRWXFaxAVWHLRBuJMvkI/86FIW7z2gvuEVTA60FPCw6Z/y0vDZgTATVEJQ4XV2+eSM5BHLZGW7YQTwTHCJQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.6", - "async": "^3.0.1", - "chalk": "^3.0.0", - "didyoumean": "^1.2.1", - "inquirer": "^7.0.4", - "json-fixer": "^1.4.0", - "lodash": "^4.11.2", - "pify": "^5.0.0", - "request": "^2.72.0", - "yargs": "^15.0.1" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", - "dev": true - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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 - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "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, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "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 - }, - "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.5.3", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - } - }, - "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 - }, - "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, - "requires": { - "p-locate": "^4.1.0" - } - }, - "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 - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "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, - "requires": { - "p-limit": "^2.2.0" - } - }, - "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 - }, - "pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", - "dev": true - }, - "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, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - }, - "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, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "yargs": { - "version": "15.3.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", - "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", - "dev": true, - "requires": { - "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.1" - } - }, - "yargs-parser": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.1.tgz", - "integrity": "sha512-KRHEsOM16IX7XuLnMOqImcPNbLVXMNHYAoFc3BKR8Ortl5gzDbtXvvEoGx9imk5E+X1VeNKNlcHr8B8vi+7ipA==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" - }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" - }, - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "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==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "any-base": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", - "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "application-config-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/application-config-path/-/application-config-path-0.1.0.tgz", - "integrity": "sha1-GTxfCoZUGkxm+6Hi3DhYM2LqXo8=" - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "arch": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", - "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==" - }, - "archive-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", - "integrity": "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=", - "requires": { - "file-type": "^4.2.0" - }, - "dependencies": { - "file-type": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", - "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=" - } - } - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", - "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", - "requires": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" - }, - "array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true - }, - "array-filter": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", - "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "array-includes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", - "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "is-string": "^1.0.5" - } - }, - "array-iterate": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-1.1.4.tgz", - "integrity": "sha512-sNRaPGh9nnmdC8Zf+pT3UqP8rnWj5Hf9wiFGsX3wUQ2yVSIhO2ShFwCoceIPpB41QF6i2OEmrHmCo36xronCVA==" - }, - "array-map": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", - "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" - }, - "array-reduce": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", - "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" - }, - "array.prototype.flat": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", - "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" - }, - "async-foreach": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=" - }, - "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==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "auth0-js": { - "version": "9.12.2", - "resolved": "https://registry.npmjs.org/auth0-js/-/auth0-js-9.12.2.tgz", - "integrity": "sha512-0VfPu5UcgkGKQc7Q8KPqgkqqhLgXGsDCro2tde7hHPYK9JEzOyq82v0szUTHWlwQE1VT8K2/qZAsGDf7hFjI7g==", - "requires": { - "base64-js": "^1.3.0", - "idtoken-verifier": "^2.0.1", - "js-cookie": "^2.2.0", - "qs": "^6.7.0", - "superagent": "^3.8.3", - "url-join": "^4.0.1", - "winchan": "^0.2.2" - } - }, - "auto-bind": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", - "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", - "optional": true - }, - "autoprefixer": { - "version": "9.7.5", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.5.tgz", - "integrity": "sha512-URo6Zvt7VYifomeAfJlMFnYDhow1rk2bufwkbamPEAtQFcL11moLk4PnR7n9vlu7M+BkXAZkHFA0mIcY7tjQFg==", - "requires": { - "browserslist": "^4.11.0", - "caniuse-lite": "^1.0.30001036", - "chalk": "^2.4.2", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.27", - "postcss-value-parser": "^4.0.3" - } - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", - "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" - }, - "axios": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", - "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", - "requires": { - "follow-redirects": "1.5.10" - } - }, - "axobject-query": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.1.2.tgz", - "integrity": "sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ==" - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "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==" - }, - "babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - } - }, - "babel-extract-comments": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz", - "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==", - "requires": { - "babylon": "^6.18.0" - } - }, - "babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "dev": true, - "requires": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "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 - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "babel-loader": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", - "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", - "requires": { - "find-cache-dir": "^2.1.0", - "loader-utils": "^1.4.0", - "mkdirp": "^0.5.3", - "pify": "^4.0.1", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "babel-plugin-add-module-exports": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.3.3.tgz", - "integrity": "sha512-hC37mm7aAdEb1n8SgggG8a1QuhZapsY/XLCi4ETSH6AVjXBCWEa50CXlOsAMPPWLnSx5Ns6mzz39uvuseh0Xjg==", - "requires": { - "chokidar": "^2.0.4" - }, - "dependencies": { - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "optional": true - } - } - }, - "babel-plugin-apply-mdx-type-prop": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.5.7.tgz", - "integrity": "sha512-SUDwTmMmxzaAZ1YfAPnL2UI3q/JEs+fekx/QTZYEgK+cVGMwS/PrCeK9UDlTHOYJr9b4mieR+iLhm43jrav2WA==", - "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@mdx-js/util": "^1.5.7" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", - "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-emotion": { - "version": "10.0.29", - "resolved": "https://registry.npmjs.org/babel-plugin-emotion/-/babel-plugin-emotion-10.0.29.tgz", - "integrity": "sha512-7Jpi1OCxjyz0k163lKtqP+LHMg5z3S6A7vMBfHnF06l2unmtsOmFDzZBpGf0CWo1G4m8UACfVcDJiSiRuu/cSw==", - "requires": { - "@babel/helper-module-imports": "^7.0.0", - "@emotion/hash": "0.8.0", - "@emotion/memoize": "0.7.4", - "@emotion/serialize": "^0.11.16", - "babel-plugin-macros": "^2.0.0", - "babel-plugin-syntax-jsx": "^6.18.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^1.0.5", - "find-root": "^1.1.0", - "source-map": "^0.5.7" - } - }, - "babel-plugin-extract-import-names": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.5.7.tgz", - "integrity": "sha512-kZX4g9ehTyxjdbq2rb8wW307+jNu5z3KllYs8cnbapSwclT9wBErJoqvKKZAkuiaufp0r+7WaIvjhKtJ7QlG3A==", - "requires": { - "@babel/helper-plugin-utils": "7.8.3" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", - "requires": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - }, - "dependencies": { - "@babel/compat-data": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", - "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - }, - "dependencies": { - "browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", - "requires": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" - } - }, - "core-js-compat": { - "version": "3.22.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.5.tgz", - "integrity": "sha512-rEF75n3QtInrYICvJjrAgV03HwKiYvtKHdPtaba1KucG+cNZ4NJnH9isqt979e67KZlhpbCOTwnsvnIr+CVeOg==", - "requires": { - "browserslist": "^4.20.3", - "semver": "7.0.0" - } - }, - "electron-to-chromium": { - "version": "1.4.137", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", - "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==" - }, - "node-releases": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", - "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==" - }, - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - }, - "babel-plugin-remove-graphql-queries": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.8.1.tgz", - "integrity": "sha512-c/JNri17WypqZNnMsX2PweMe8e5hsJcYNO/VnUBX9iUIvmKBjd143RaUQq0xYa6bpQF0kzpTFVR0sOp+cQlBOQ==" - }, - "babel-plugin-syntax-jsx": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz", - "integrity": "sha1-CvMqmm4Tyno/1QaeYtew9Y0NiUY=" - }, - "babel-plugin-syntax-object-rest-spread": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", - "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" - }, - "babel-plugin-transform-object-rest-spread": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", - "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", - "requires": { - "babel-plugin-syntax-object-rest-spread": "^6.8.0", - "babel-runtime": "^6.26.0" - } - }, - "babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@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-top-level-await": "^7.8.3" - } - }, - "babel-preset-gatsby": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-2.14.0.tgz", - "integrity": "sha512-IqPgd15jJfJvqvX0i78JwLT48ctb7MdIEqHeKOuo4N8qWmyRIY8xX1IVhhSfDZ3eq62j0rVoqzT7ACUWctikmw==", - "dev": true, - "requires": { - "@babel/plugin-proposal-class-properties": "^7.14.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", - "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-classes": "^7.15.4", - "@babel/plugin-transform-runtime": "^7.15.0", - "@babel/plugin-transform-spread": "^7.14.6", - "@babel/preset-env": "^7.15.4", - "@babel/preset-react": "^7.14.0", - "@babel/runtime": "^7.15.4", - "babel-plugin-dynamic-import-node": "^2.3.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "gatsby-core-utils": "^3.14.0", - "gatsby-legacy-polyfills": "^2.14.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", - "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", - "dev": true - }, - "@babel/generator": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.10.tgz", - "integrity": "sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==", - "dev": true, - "requires": { - "@babel/types": "^7.17.10", - "@jridgewell/gen-mapping": "^0.1.0", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz", - "integrity": "sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", - "dev": true, - "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", - "dev": true, - "requires": { - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", - "dev": true, - "requires": { - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/highlight": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", - "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@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, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz", - "integrity": "sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", - "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.10.tgz", - "integrity": "sha512-v54O6yLaJySCs6mGzaVOUw9T967GnH38T6CQSAtnzdNPwu84l2qAjssKzo/WSO8Yi7NF+7ekm5cVbF/5qiIgNA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.17.0" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", - "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", - "dev": true, - "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.7" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz", - "integrity": "sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ==", - "dev": true, - "requires": { - "regenerator-transform": "^0.15.0" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/preset-env": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.17.10.tgz", - "integrity": "sha512-YNgyBHZQpeoBSRBg0xixsZzfT58Ze1iZrajvv0lJc70qDDGuGfonEnMGfWeSY0mQ3JTuCWFbMkzFRVafOyJx4g==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.17.6", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.17.3", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@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-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-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.17.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.17.9", - "@babel/plugin-transform-modules-systemjs": "^7.17.8", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.10", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.17.9", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.17.10", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.22.1", - "semver": "^6.3.0" - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" - } - }, - "@babel/runtime": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", - "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/traverse": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.10.tgz", - "integrity": "sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.10", - "@babel/types": "^7.17.10", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz", - "integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "requires": { - "defer-to-connect": "^2.0.0" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - } - }, - "browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" - } - }, - "cacheable-request": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", - "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - } - }, - "core-js-compat": { - "version": "3.22.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.5.tgz", - "integrity": "sha512-rEF75n3QtInrYICvJjrAgV03HwKiYvtKHdPtaba1KucG+cNZ4NJnH9isqt979e67KZlhpbCOTwnsvnIr+CVeOg==", - "dev": true, - "requires": { - "browserslist": "^4.20.3", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "requires": { - "mimic-response": "^3.1.0" - } - }, - "defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.137", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", - "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "file-type": { - "version": "16.5.3", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.3.tgz", - "integrity": "sha512-uVsl7iFhHSOY4bEONLlTK47iAHtNsFHWP5YE4xJfZ4rnX7S1Q3wce09XgqSC7E/xh8Ncv/be1lNoyprlUH/x6A==", - "dev": true, - "requires": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - } - }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "gatsby-core-utils": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-3.14.0.tgz", - "integrity": "sha512-JavHwcX5L+ZRoL5FKhYex3JfbwwS0273YTpf8y8SRKsObD8H+bbLOUlbOjASpqy+IU3dW+r76gT1dQdaqeH9Og==", - "dev": true, - "requires": { - "@babel/runtime": "^7.15.4", - "ci-info": "2.0.0", - "configstore": "^5.0.1", - "fastq": "^1.13.0", - "file-type": "^16.5.3", - "fs-extra": "^10.1.0", - "got": "^11.8.3", - "import-from": "^4.0.0", - "lmdb": "^2.2.6", - "lock": "^1.1.0", - "node-object-hash": "^2.3.10", - "proper-lockfile": "^4.1.2", - "resolve-from": "^5.0.0", - "tmp": "^0.2.1", - "xdg-basedir": "^4.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "got": { - "version": "11.8.3", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", - "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", - "dev": true, - "requires": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - } - }, - "import-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-4.0.0.tgz", - "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", - "dev": true - }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "keyv": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.2.8.tgz", - "integrity": "sha512-IZZo6krhHWPhgsP5mBkEdPopVPN/stgCnBVuqi6dda/Nm5mDTOSVTrFMkWqlJsDum+B0YSe887tNxdjDWkO7aQ==", - "dev": true, - "requires": { - "compress-brotli": "^1.3.8", - "json-buffer": "3.0.1" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - }, - "mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true - }, - "node-object-hash": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.10.tgz", - "integrity": "sha512-jY5dPJzw6NHd/KPSfPKJ+IHoFS81/tJ43r34ZeNMXGzCOM8jwQDCD12HYayKIB6MuznrnqIYy2e891NA2g0ibA==", - "dev": true - }, - "node-releases": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", - "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", - "dev": true - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, - "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true - }, - "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 - }, - "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 - }, - "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "dev": true, - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, - "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } - } - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "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 - }, - "responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "dev": true, - "requires": { - "lowercase-keys": "^2.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dev": true, - "requires": { - "rimraf": "^3.0.0" - } - }, - "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 - }, - "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, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - } - } - }, - "babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - } - } - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=" - }, - "bail": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", - "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=" - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" - }, - "base64id": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", - "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "requires": { - "callsite": "1.0.0" - } - }, - "better-opn": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-1.0.0.tgz", - "integrity": "sha512-q3eO2se4sFbTERB1dFBDdjTiIIpRohMErpwBX21lhPvmgmQNNrcQj0zbWRhMREDesJvyod9kxBS3kOtdAvkB/A==", - "requires": { - "open": "^6.4.0" - } - }, - "better-queue": { - "version": "3.8.10", - "resolved": "https://registry.npmjs.org/better-queue/-/better-queue-3.8.10.tgz", - "integrity": "sha512-e3gwNZgDCnNWl0An0Tz6sUjKDV9m6aB+K9Xg//vYeo8+KiH8pWhLFxkawcXhm6FpM//GfD9IQv/kmvWCAVVpKA==", - "requires": { - "better-queue-memory": "^1.0.1", - "node-eta": "^0.9.0", - "uuid": "^3.0.0" - } - }, - "better-queue-memory": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/better-queue-memory/-/better-queue-memory-1.0.4.tgz", - "integrity": "sha512-SWg5wFIShYffEmJpI6LgbL8/3Dqhku7xI1oEiy6FroP9DbcZlG0ZDjxvPdP9t7hTGW40IpIcC6zVoGT1oxjOuA==" - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - }, - "bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" - }, - "bin-build": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz", - "integrity": "sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA==", - "requires": { - "decompress": "^4.0.0", - "download": "^6.2.2", - "execa": "^0.7.0", - "p-map-series": "^1.0.0", - "tempfile": "^2.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.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" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "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==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - } - } - }, - "bin-check": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz", - "integrity": "sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==", - "requires": { - "execa": "^0.7.0", - "executable": "^4.1.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.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" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "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==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - } - } - }, - "bin-version": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz", - "integrity": "sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ==", - "requires": { - "execa": "^1.0.0", - "find-versions": "^3.0.0" - }, - "dependencies": { - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "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" - } - } - } - }, - "bin-version-check": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz", - "integrity": "sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ==", - "requires": { - "bin-version": "^3.0.0", - "semver": "^5.6.0", - "semver-truncate": "^1.1.2" - } - }, - "bin-wrapper": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz", - "integrity": "sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q==", - "requires": { - "bin-check": "^4.1.0", - "bin-version-check": "^4.0.0", - "download": "^7.1.0", - "import-lazy": "^3.1.0", - "os-filter-obj": "^2.0.0", - "pify": "^4.0.1" - }, - "dependencies": { - "download": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz", - "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==", - "requires": { - "archive-type": "^4.0.0", - "caw": "^2.0.1", - "content-disposition": "^0.5.2", - "decompress": "^4.2.0", - "ext-name": "^5.0.0", - "file-type": "^8.1.0", - "filenamify": "^2.0.0", - "get-stream": "^3.0.0", - "got": "^8.3.1", - "make-dir": "^1.2.0", - "p-event": "^2.1.0", - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "file-type": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz", - "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==" - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "import-lazy": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", - "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==" - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "p-event": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", - "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", - "requires": { - "p-timeout": "^2.0.1" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bl": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz", - "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "buffer": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.5.0.tgz", - "integrity": "sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==" - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "requires": { - "inherits": "~2.0.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "bmp-js": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", - "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" - }, - "bn.js": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - }, - "dependencies": { - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - } - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "browser-tabs-lock": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/browser-tabs-lock/-/browser-tabs-lock-1.2.8.tgz", - "integrity": "sha512-Xrj33YUTltPDoGrD1KnaAn5ZuxnnlJFcIW9srVTPHbMNPd9MlcnBCWaGV0STlvGKu8Ok0ad5qxyx5sIwFTr/Ig==" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.0.tgz", - "integrity": "sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A==", - "requires": { - "caniuse-lite": "^1.0.30001035", - "electron-to-chromium": "^1.3.380", - "node-releases": "^1.1.52", - "pkg-up": "^3.1.0" - }, - "dependencies": { - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - } - } - } - }, - "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, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "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==", - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "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==" - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" - }, - "buffer-equal": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", - "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" - }, - "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": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" - }, - "builtin-modules": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", - "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==" - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - }, - "dependencies": { - "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==", - "requires": { - "yallist": "^3.0.2" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cache-manager": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/cache-manager/-/cache-manager-2.11.1.tgz", - "integrity": "sha512-XhUuc9eYwkzpK89iNewFwtvcDYMUsvtwzHeyEOPJna/WsVsXcrzsA1ft2M0QqPNunEzLhNCYPo05tEfG+YuNow==", - "requires": { - "async": "1.5.2", - "lodash.clonedeep": "4.5.0", - "lru-cache": "4.0.0" - } - }, - "cache-manager-fs-hash": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/cache-manager-fs-hash/-/cache-manager-fs-hash-0.0.7.tgz", - "integrity": "sha512-7X+FPItAJf1tKKqJx6ljDJQc0fgSR5B+KPxFQLj+vYSL4q9XdrCbZldgsNb6wueRuIooj01wt0FubB08zaefRg==", - "requires": { - "es6-promisify": "^6.0.0", - "lockfile": "^1.0.4" - } - }, - "cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "requires": { - "pump": "^3.0.0" - } - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "requires": { - "callsites": "^2.0.0" - }, - "dependencies": { - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" - } - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=" - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" - }, - "camelcase-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", - "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" - } - } - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001341", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001341.tgz", - "integrity": "sha512-2SodVrFFtvGENGCv0ChVJIDQ0KPaS1cg7/qtfMaICgeMolDdo/Z2OD32F0Aq9yl6F4YFwGPBS5AaPqNYiW4PoA==" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "caw": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz", - "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==", - "requires": { - "get-proxy": "^2.0.0", - "isurl": "^1.0.0-alpha5", - "tunnel-agent": "^0.6.0", - "url-to-options": "^1.0.1" - } - }, - "ccount": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.5.tgz", - "integrity": "sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw==" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "change-case": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", - "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", - "requires": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "character-entities": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", - "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" - }, - "character-entities-html4": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", - "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==" - }, - "character-entities-legacy": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", - "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" - }, - "character-reference-invalid": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", - "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=" - }, - "cheerio": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", - "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", - "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.0", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash.assignin": "^4.0.9", - "lodash.bind": "^4.1.4", - "lodash.defaults": "^4.0.1", - "lodash.filter": "^4.4.0", - "lodash.flatten": "^4.2.0", - "lodash.foreach": "^4.3.0", - "lodash.map": "^4.4.0", - "lodash.merge": "^4.4.0", - "lodash.pick": "^4.2.1", - "lodash.reduce": "^4.4.0", - "lodash.reject": "^4.4.0", - "lodash.some": "^4.4.0" - }, - "dependencies": { - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - } - } - }, - "chokidar": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", - "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", - "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.1.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.3.0" - }, - "dependencies": { - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", - "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==" - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "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==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "fsevents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz", - "integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==", - "optional": true - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "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==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "readdirp": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", - "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", - "requires": { - "picomatch": "^2.0.7" - } - }, - "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==", - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "requires": { - "tslib": "^1.9.0" - } - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "classnames": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", - "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "cli-boxes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", - "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==" - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-spinners": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz", - "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==", - "optional": true - }, - "cli-table3": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", - "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", - "requires": { - "colors": "^1.1.2", - "object-assign": "^4.1.0", - "string-width": "^2.1.1" - } - }, - "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "optional": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "optional": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "optional": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "optional": true - }, - "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==", - "optional": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "optional": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "optional": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "optional": true - }, - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "optional": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "optional": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "optional": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "cli-width": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" - }, - "clipboardy": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz", - "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==", - "requires": { - "arch": "^2.1.1", - "execa": "^1.0.0", - "is-wsl": "^2.1.1" - }, - "dependencies": { - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "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" - } - } - } - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "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==", - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" - }, - "collapse-white-space": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", - "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", - "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, - "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==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "color-string": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", - "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "optional": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "comma-separated-tokens": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", - "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==" - }, - "command-exists": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.8.tgz", - "integrity": "sha512-PM54PkseWbiiD/mMsbvW351/u+dafwTJ0ye2qB60G1aGQP9j3xK2gmMDc+R34L3nDtx4qMCitXT75mkbkGJDLw==" - }, - "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==" - }, - "common-tags": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", - "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "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 - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=" - }, - "compress-brotli": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", - "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", - "dev": true, - "requires": { - "@types/json-buffer": "~3.0.0", - "json-buffer": "~3.0.1" - }, - "dependencies": { - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - } - } - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "dependencies": { - "make-dir": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", - "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "confusing-browser-globals": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz", - "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==" - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "console-stream": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz", - "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=" - }, - "constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", - "requires": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" - } - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" - }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-hrtime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-3.0.0.tgz", - "integrity": "sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==" - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "cookiejar": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", - "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" - }, - "copyfiles": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.2.0.tgz", - "integrity": "sha512-iJbHJI+8OKqsq+4JF0rqgRkZzo++jqO6Wf4FUU1JM41cJF6JcY5968XyF4tm3Kkm7ZOMrqlljdm8N9oyY5raGw==", - "requires": { - "glob": "^7.0.5", - "minimatch": "^3.0.3", - "mkdirp": "^0.5.1", - "noms": "0.0.0", - "through2": "^2.0.1", - "yargs": "^13.2.4" - } - }, - "core-js": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", - "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==" - }, - "core-js-compat": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", - "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", - "requires": { - "browserslist": "^4.8.3", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" - } - } - }, - "core-js-pure": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.4.tgz", - "integrity": "sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw==" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "requires": { - "object-assign": "^4", - "vary": "^1" - } - }, - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "create-ecdh": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", - "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.0.0" - } - }, - "create-emotion": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/create-emotion/-/create-emotion-10.0.27.tgz", - "integrity": "sha512-fIK73w82HPPn/RsAij7+Zt8eCE8SptcJ3WoRMfxMtjteYxud8GDTKKld7MYwAX2TVhrw29uR1N/bVGxeStHILg==", - "requires": { - "@emotion/cache": "^10.0.27", - "@emotion/serialize": "^0.11.15", - "@emotion/sheet": "0.9.4", - "@emotion/utils": "0.11.3" - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "create-react-context": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz", - "integrity": "sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==", - "requires": { - "gud": "^1.0.0", - "warning": "^4.0.3" - } - }, - "cross-fetch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.2.tgz", - "integrity": "sha1-pH/09/xxLauo9qaVoRyUhEDUVyM=", - "requires": { - "node-fetch": "2.1.2", - "whatwg-fetch": "2.0.4" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=" - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "crypto-js": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz", - "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==" - }, - "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==" - }, - "css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" - }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - } - }, - "css-loader": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", - "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", - "requires": { - "babel-code-frame": "^6.26.0", - "css-selector-tokenizer": "^0.7.0", - "icss-utils": "^2.1.0", - "loader-utils": "^1.0.2", - "lodash": "^4.17.11", - "postcss": "^6.0.23", - "postcss-modules-extract-imports": "^1.2.0", - "postcss-modules-local-by-default": "^1.2.0", - "postcss-modules-scope": "^1.1.0", - "postcss-modules-values": "^1.3.0", - "postcss-value-parser": "^3.3.0", - "source-list-map": "^2.0.0" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "requires": { - "boolbase": "~1.0.0", - "css-what": "2.1", - "domutils": "1.5.1", - "nth-check": "~1.0.1" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" - }, - "css-selector-parser": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.3.0.tgz", - "integrity": "sha1-XxrUPi2O77/cME/NOaUhZklD4+s=" - }, - "css-selector-tokenizer": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz", - "integrity": "sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==", - "requires": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2", - "regexpu-core": "^4.6.0" - } - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "css-what": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", - "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", - "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } - } - }, - "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", - "postcss-unique-selectors": "^4.0.1" - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", - "requires": { - "postcss": "^7.0.0" - } - }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" - }, - "csso": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz", - "integrity": "sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==", - "requires": { - "css-tree": "1.0.0-alpha.39" - }, - "dependencies": { - "css-tree": { - "version": "1.0.0-alpha.39", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz", - "integrity": "sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==", - "requires": { - "mdn-data": "2.0.6", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz", - "integrity": "sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "csstype": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.9.tgz", - "integrity": "sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q==" - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "requires": { - "array-find-index": "^1.0.1" - } - }, - "cwebp-bin": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cwebp-bin/-/cwebp-bin-5.1.0.tgz", - "integrity": "sha512-BsPKStaNr98zfxwejWWLIGELbPERULJoD2v5ijvpeutSAGsegX7gmABgnkRK7MUucCPROXXfaPqkLAwI509JzA==", - "requires": { - "bin-build": "^3.0.0", - "bin-wrapper": "^4.0.1", - "logalot": "^2.1.0" - } - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" - }, - "damerau-levenshtein": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", - "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "dependencies": { - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - } - } - }, - "dataloader": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz", - "integrity": "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==" - }, - "date-fns": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.11.0.tgz", - "integrity": "sha512-8P1cDi8ebZyDxUyUprBXwidoEtiQAawYPGvpfb+Dg0G6JrQ+VozwOmm91xYC0vAv1+0VmLehEPb+isg4BGUFfA==" - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" - }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" - }, - "decompress": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.1.tgz", - "integrity": "sha512-e48kc2IjU+2Zw8cTb6VZcJQ3lgVbS4uuB1TfCHbiZIP/haNXm+SVyhu+87jts5/3ROpd82GSVCoNs/z8l4ZOaQ==", - "requires": { - "decompress-tar": "^4.0.0", - "decompress-tarbz2": "^4.0.0", - "decompress-targz": "^4.0.0", - "decompress-unzip": "^4.0.1", - "graceful-fs": "^4.1.10", - "make-dir": "^1.0.0", - "pify": "^2.3.0", - "strip-dirs": "^2.0.0" - }, - "dependencies": { - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "decompress-tar": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", - "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", - "requires": { - "file-type": "^5.2.0", - "is-stream": "^1.1.0", - "tar-stream": "^1.5.2" - }, - "dependencies": { - "bl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", - "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" - }, - "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", - "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", - "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - } - } - } - }, - "decompress-tarbz2": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", - "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", - "requires": { - "decompress-tar": "^4.1.0", - "file-type": "^6.1.0", - "is-stream": "^1.1.0", - "seek-bzip": "^1.0.5", - "unbzip2-stream": "^1.0.9" - }, - "dependencies": { - "file-type": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", - "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==" - } - } - }, - "decompress-targz": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", - "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", - "requires": { - "decompress-tar": "^4.1.1", - "file-type": "^5.2.0", - "is-stream": "^1.1.0" - }, - "dependencies": { - "file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" - } - } - }, - "decompress-unzip": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", - "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", - "requires": { - "file-type": "^3.8.0", - "get-stream": "^2.2.0", - "pify": "^2.3.0", - "yauzl": "^2.4.2" - }, - "dependencies": { - "file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" - }, - "get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", - "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "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==" - }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, - "dependencies": { - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "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" - } - } - } - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "del": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/del/-/del-5.1.0.tgz", - "integrity": "sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==", - "requires": { - "globby": "^10.0.1", - "graceful-fs": "^4.2.2", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.1", - "p-map": "^3.0.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0" - }, - "dependencies": { - "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" - }, - "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==" - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { - "path-type": "^4.0.0" - } - }, - "fast-glob": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz", - "integrity": "sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - } - }, - "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==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "globby": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", - "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", - "requires": { - "@types/glob": "^7.1.1", - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.0.3", - "glob": "^7.1.3", - "ignore": "^5.1.1", - "merge2": "^1.2.3", - "slash": "^3.0.0" - } - }, - "ignore": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", - "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "micromatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", - "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.0.5" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "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==", - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detab": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.3.tgz", - "integrity": "sha512-Up8P0clUVwq0FnFjDclzZsy9PadzRn5FFxrr47tQQvMHqyiFYVbpH8oXDzWtF0Q7pYy3l+RPmtBl+BsFF6wH0A==", - "requires": { - "repeat-string": "^1.5.4" - } - }, - "detect-indent": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", - "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==" - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" - }, - "detect-port": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", - "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "devcert": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/devcert/-/devcert-1.1.0.tgz", - "integrity": "sha512-ppyIBJueMMisYvJABaXESY10CwEm1pUXoLOm6TeBO2bbDUQE8ZjJPNADlu31I2InL7hduSgratzRG/dHUDF41w==", - "requires": { - "@types/configstore": "^2.1.1", - "@types/debug": "^0.0.30", - "@types/get-port": "^3.2.0", - "@types/glob": "^5.0.34", - "@types/lodash": "^4.14.92", - "@types/mkdirp": "^0.5.2", - "@types/node": "^8.5.7", - "@types/rimraf": "^2.0.2", - "@types/tmp": "^0.0.33", - "application-config-path": "^0.1.0", - "command-exists": "^1.2.4", - "configstore": "^3.0.0", - "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": "^1.10.0" - }, - "dependencies": { - "@types/glob": { - "version": "5.0.36", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-5.0.36.tgz", - "integrity": "sha512-KEzSKuP2+3oOjYYjujue6Z3Yqis5HKA1BsIC+jZ1v3lrRNdsqyNNtX0rQf6LSuI4DJJ2z5UV//zBZCcvM0xikg==", - "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/node": { - "version": "8.10.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.59.tgz", - "integrity": "sha512-8RkBivJrDCyPpBXhVZcjh7cQxVBSmRk9QM7hOketZzp6Tg79c0N8kkpAIito9bnJ3HCVCHVYz+KHTEbfQNfeVQ==" - }, - "configstore": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", - "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "requires": { - "is-obj": "^1.0.0" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "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==", - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" - } - } - }, - "devtools-protocol": { - "version": "0.0.901419", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.901419.tgz", - "integrity": "sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ==", - "dev": true - }, - "didyoumean": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.1.tgz", - "integrity": "sha1-6S7f2tplN9SE1zwBcv0eugxJdv8=", - "dev": true - }, - "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" - }, - "dependencies": { - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "requires": { - "pify": "^3.0.0" - } - } - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" - }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "requires": { - "utila": "~0.4" - } - }, - "dom-helpers": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", - "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", - "requires": { - "@babel/runtime": "^7.1.2" - } - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", - "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==" - } - } - }, - "dom-walk": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", - "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" - }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } - } - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", - "requires": { - "no-case": "^2.2.0" - } - }, - "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", - "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", - "requires": { - "is-obj": "^2.0.0" - } - }, - "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" - }, - "download": { - "version": "6.2.5", - "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz", - "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==", - "requires": { - "caw": "^2.0.0", - "content-disposition": "^0.5.2", - "decompress": "^4.0.0", - "ext-name": "^5.0.0", - "file-type": "5.2.0", - "filenamify": "^2.0.0", - "get-stream": "^3.0.0", - "got": "^7.0.0", - "make-dir": "^1.0.0", - "p-event": "^1.0.0", - "pify": "^3.0.0" - }, - "dependencies": { - "file-type": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", - "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=" - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - } - }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" - }, - "p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "requires": { - "p-finally": "^1.0.0" - } - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", - "requires": { - "prepend-http": "^1.0.1" - } - } - } - }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" - }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - } - } - }, - "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==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron-to-chromium": { - "version": "1.3.384", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.384.tgz", - "integrity": "sha512-9jGNF78o450ymPf63n7/j1HrRAD4xGTsDkKY2X6jtCAWaYgph2A9xQjwfwRpj+AovkARMO+JfZuVCFTdandD6w==" - }, - "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" - }, - "emotion": { - "version": "10.0.27", - "resolved": "https://registry.npmjs.org/emotion/-/emotion-10.0.27.tgz", - "integrity": "sha512-2xdDzdWWzue8R8lu4G76uWX5WhyQuzATon9LmNeCy/2BHVC6dsEpfhN1a0qhELgtDVdjyEA6J8Y/VlI5ZnaH0g==", - "requires": { - "babel-plugin-emotion": "^10.0.27", - "create-emotion": "^10.0.27" - } - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "encoding": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", - "requires": { - "iconv-lite": "~0.4.13" - } - }, - "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==", - "requires": { - "once": "^1.4.0" - } - }, - "engine.io": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.0.tgz", - "integrity": "sha512-XCyYVWzcHnK5cMz7G4VTu2W7zJS7SM1QkcelghyIk/FmobWBtXE7fwhBusEKvCSqc3bMh8fNFMlUkCKTFRxH2w==", - "requires": { - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "0.3.1", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "ws": "^7.1.2" - }, - "dependencies": { - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" - } - } - }, - "engine.io-client": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.0.tgz", - "integrity": "sha512-a4J5QO2k99CM2a0b12IznnyQndoEvtA4UAldhGzKqnHf42I3Qs2W5SPnDvatZRcMaNZs4IevVicBPayxYt6FwA==", - "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "~4.1.0", - "engine.io-parser": "~2.2.0", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~6.1.0", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "ws": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", - "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "engine.io-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.0.tgz", - "integrity": "sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w==", - "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "enhanced-resolve": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", - "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - } - } - }, - "entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", - "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" - }, - "envinfo": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.5.0.tgz", - "integrity": "sha512-jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ==" - }, - "eol": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/eol/-/eol-0.9.1.tgz", - "integrity": "sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg==" - }, - "errno": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", - "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", - "requires": { - "prr": "~1.0.1" - } - }, - "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==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "error-stack-parser": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", - "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", - "requires": { - "stackframe": "^1.1.1" - } - }, - "es-abstract": { - "version": "1.17.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", - "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.1.5", - "is-regex": "^1.0.5", - "object-inspect": "^1.7.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.0", - "string.prototype.trimleft": "^2.1.1", - "string.prototype.trimright": "^2.1.1" - } - }, - "es-cookie": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/es-cookie/-/es-cookie-1.3.2.tgz", - "integrity": "sha512-UTlYYhXGLOy05P/vKVT2Ui7WtC7NiRzGtJyAKKn32g5Gvcjn7KAClLPWlipCtxIus934dFg9o9jXiBL0nP+t9Q==" - }, - "es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - }, - "dependencies": { - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - } - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "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==" - }, - "es6-promisify": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.0.tgz", - "integrity": "sha512-jCsk2fpfEFusVv1MDkF4Uf0hAzIKNDMgR6LyOIw6a3jwkN1sCgWzuwgnsHY9YSQ8n8P31HoncvE0LC44cpWTrw==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "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 - } - } - }, - "eslint": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", - "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "requires": { - "type-fest": "^0.11.0" - }, - "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" - } - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "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==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "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==" - }, - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", - "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", - "requires": { - "type-fest": "^0.8.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" - }, - "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.5.3", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "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==" - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==" - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - } - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==" - } - } - }, - "eslint-config-react-app": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz", - "integrity": "sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ==", - "requires": { - "confusing-browser-globals": "^1.0.9" - } - }, - "eslint-import-resolver-node": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", - "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "eslint-loader": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz", - "integrity": "sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==", - "requires": { - "loader-fs-cache": "^1.0.0", - "loader-utils": "^1.0.2", - "object-assign": "^4.0.1", - "object-hash": "^1.1.4", - "rimraf": "^2.6.1" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "eslint-module-utils": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz", - "integrity": "sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q==", - "requires": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "requires": { - "find-up": "^2.1.0" - } - } - } - }, - "eslint-plugin-flowtype": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz", - "integrity": "sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw==", - "requires": { - "lodash": "^4.17.15" - } - }, - "eslint-plugin-graphql": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-graphql/-/eslint-plugin-graphql-3.1.1.tgz", - "integrity": "sha512-VNu2AipS8P1BAnE/tcJ2EmBWjFlCnG+1jKdUlFNDQjocWZlFiPpMu9xYNXePoEXK+q+jG51M/6PdhOjEgJZEaQ==", - "requires": { - "graphql-config": "^2.0.1", - "lodash": "^4.11.1" - } - }, - "eslint-plugin-import": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz", - "integrity": "sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw==", - "requires": { - "array-includes": "^3.0.3", - "array.prototype.flat": "^1.2.1", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.1", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.0", - "read-pkg-up": "^2.0.0", - "resolve": "^1.12.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz", - "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==", - "requires": { - "@babel/runtime": "^7.4.5", - "aria-query": "^3.0.0", - "array-includes": "^3.0.3", - "ast-types-flow": "^0.0.7", - "axobject-query": "^2.0.2", - "damerau-levenshtein": "^1.0.4", - "emoji-regex": "^7.0.2", - "has": "^1.0.3", - "jsx-ast-utils": "^2.2.1" - } - }, - "eslint-plugin-react": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz", - "integrity": "sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==", - "requires": { - "array-includes": "^3.1.1", - "doctrine": "^2.1.0", - "has": "^1.0.3", - "jsx-ast-utils": "^2.2.3", - "object.entries": "^1.1.1", - "object.fromentries": "^2.0.2", - "object.values": "^1.1.1", - "prop-types": "^15.7.2", - "resolve": "^1.15.1", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.2", - "xregexp": "^4.3.0" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "^2.0.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "eslint-plugin-react-hooks": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz", - "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==" - }, - "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", - "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==" - }, - "espree": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", - "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", - "requires": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esquery": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz", - "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==", - "requires": { - "estraverse": "^5.0.0" - }, - "dependencies": { - "estraverse": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz", - "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==" - } - } - }, - "esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", - "requires": { - "estraverse": "^4.1.0" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "eval": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.4.tgz", - "integrity": "sha512-npGsebJejyjMRnLdFu+T/97dnigqIU0Ov3IGrZ8ygd1v7RL1vGkEKtvyWZobqUH1AQgKlg0Yqqe2BtMA9/QZLw==", - "requires": { - "require-like": ">= 0.1.1" - } - }, - "event-source-polyfill": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/event-source-polyfill/-/event-source-polyfill-1.0.12.tgz", - "integrity": "sha512-WjOTn0LIbaN08z/8gNt3GYAomAdm6cZ2lr/QdvhTTEipr5KR6lds2ziUH+p/Iob4Lk6NClKhwPOmn1NjQEcJCg==" - }, - "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==" - }, - "eventemitter3": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz", - "integrity": "sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg==" - }, - "events": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz", - "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==" - }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "requires": { - "original": "^1.0.0" - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "exec-buffer": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz", - "integrity": "sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA==", - "requires": { - "execa": "^0.7.0", - "p-finally": "^1.0.0", - "pify": "^3.0.0", - "rimraf": "^2.5.4", - "tempfile": "^2.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.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" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "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==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "execa": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", - "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - }, - "dependencies": { - "cross-spawn": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", - "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "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==", - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "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==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "executable": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", - "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", - "requires": { - "pify": "^2.2.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "exenv": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" - }, - "exif-parser": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", - "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" - }, - "expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - } - } - }, - "express-graphql": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/express-graphql/-/express-graphql-0.9.0.tgz", - "integrity": "sha512-wccd9Lb6oeJ8yHpUs/8LcnGjFUUQYmOG9A5BNLybRdCzGw0PeUrtBxsIR8bfiur6uSW4OvPkVDoYH06z6/N9+w==", - "requires": { - "accepts": "^1.3.7", - "content-type": "^1.0.4", - "http-errors": "^1.7.3", - "raw-body": "^2.4.1" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "http-errors": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", - "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "raw-body": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", - "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.3", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - } - } - }, - "ext-list": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", - "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", - "requires": { - "mime-db": "^1.28.0" - } - }, - "ext-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", - "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", - "requires": { - "ext-list": "^2.0.0", - "sort-keys-length": "^1.0.0" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - } - }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dev": true, - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" - }, - "fast-glob": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", - "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", - "requires": { - "@mrmlnc/readdir-enhanced": "^2.2.1", - "@nodelib/fs.stat": "^1.1.2", - "glob-parent": "^3.1.0", - "is-glob": "^4.0.0", - "merge2": "^1.2.3", - "micromatch": "^3.1.10" - } - }, - "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==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fast-text-encoding": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.1.tgz", - "integrity": "sha512-x4FEgaz3zNRtJfLFqJmHWxkMDDvXVtaznj2V9jiP8ACUJrUgist4bP9FmDL2Vew2Y9mEQI/tG4GqabaitYp9CQ==" - }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==" - }, - "fastq": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.1.tgz", - "integrity": "sha512-mpIH5sKYueh3YyeJwqtVo8sORi0CgtmkVbK6kZStpQlZBYQuTzG2CZ7idSiJuA7bY0SFCWUc5WIs+oYumGCQNw==", - "requires": { - "reusify": "^1.0.4" - } - }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", - "requires": { - "pend": "~1.2.0" - } - }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", - "requires": { - "flat-cache": "^2.0.1" - } - }, - "file-loader": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", - "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", - "requires": { - "loader-utils": "^1.0.2", - "schema-utils": "^0.4.5" - }, - "dependencies": { - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "file-type": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz", - "integrity": "sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==" - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true - }, - "filename-reserved-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", - "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=" - }, - "filenamify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz", - "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==", - "requires": { - "filename-reserved-regex": "^2.0.0", - "strip-outer": "^1.0.0", - "trim-repeated": "^1.0.0" - } - }, - "filesize": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", - "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==" - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "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==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "find-versions": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", - "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", - "requires": { - "semver-regex": "^2.0.0" - } - }, - "flat": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", - "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", - "requires": { - "is-buffer": "~2.0.3" - } - }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz", - "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==" - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "follow-redirects": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", - "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", - "requires": { - "debug": "=3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "fork-ts-checker-webpack-plugin": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz", - "integrity": "sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA==", - "requires": { - "babel-code-frame": "^6.22.0", - "chalk": "^2.4.1", - "chokidar": "^2.0.4", - "micromatch": "^3.1.10", - "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0", - "worker-rpc": "^0.1.0" - }, - "dependencies": { - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - } - } - }, - "form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "formidable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz", - "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==" - }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "requires": { - "map-cache": "^0.2.2" - } - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "front-matter": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-3.2.1.tgz", - "integrity": "sha512-YUhgEhbL6tG+Ok3vTGIoSDKqcr47aSDvyhEqIv8B+YuBJFsPnOiArNXTPp2yO07NL+a0L4+2jXlKlKqyVcsRRA==", - "dev": true, - "requires": { - "js-yaml": "^3.13.1" - } - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "fs-exists-cached": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz", - "integrity": "sha1-zyVVTKBQ3EmuZla0HeQiWJidy84=" - }, - "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==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - } - }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz", - "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1", - "node-pre-gyp": "*" - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "bundled": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "optional": true - }, - "aproba": { - "version": "1.2.0", - "bundled": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.5", - "bundled": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "balanced-match": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "brace-expansion": { - "version": "1.1.11", - "bundled": true, - "optional": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chownr": { - "version": "1.1.4", - "bundled": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "optional": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "optional": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "debug": { - "version": "3.2.6", - "bundled": true, - "optional": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-extend": { - "version": "0.6.0", - "bundled": true, - "optional": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "detect-libc": { - "version": "1.0.3", - "bundled": true, - "optional": true - }, - "fs-minipass": { - "version": "1.2.7", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "glob": { - "version": "7.1.6", - "bundled": true, - "optional": true, - "requires": { - "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" - } - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-walk": { - "version": "3.0.3", - "bundled": true, - "optional": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "optional": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "bundled": true, - "optional": true - }, - "ini": { - "version": "1.3.5", - "bundled": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "optional": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "optional": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "bundled": true, - "optional": true - }, - "minipass": { - "version": "2.9.0", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "bundled": true, - "optional": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "mkdirp": { - "version": "0.5.3", - "bundled": true, - "optional": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "ms": { - "version": "2.1.2", - "bundled": true, - "optional": true - }, - "needle": { - "version": "2.3.3", - "bundled": true, - "optional": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - } - }, - "node-pre-gyp": { - "version": "0.14.0", - "bundled": true, - "optional": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4.4.2" - } - }, - "nopt": { - "version": "4.0.3", - "bundled": true, - "optional": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "npm-bundled": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "npm-packlist": { - "version": "1.4.8", - "bundled": true, - "optional": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npmlog": { - "version": "4.1.2", - "bundled": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "osenv": { - "version": "0.1.5", - "bundled": true, - "optional": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "optional": true - }, - "process-nextick-args": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "rc": { - "version": "1.2.8", - "bundled": true, - "optional": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "readable-stream": { - "version": "2.3.7", - "bundled": true, - "optional": true, - "requires": { - "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" - } - }, - "rimraf": { - "version": "2.7.1", - "bundled": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.1.2", - "bundled": true, - "optional": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "optional": true - }, - "sax": { - "version": "1.2.4", - "bundled": true, - "optional": true - }, - "semver": { - "version": "5.7.1", - "bundled": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "optional": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "string_decoder": { - "version": "1.1.1", - "bundled": true, - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "optional": true - }, - "tar": { - "version": "4.4.13", - "bundled": true, - "optional": true, - "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - } - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "wide-align": { - "version": "1.1.3", - "bundled": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "optional": true - }, - "yallist": { - "version": "3.1.1", - "bundled": true, - "optional": true - } - } - }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, - "gatsby": { - "version": "2.20.6", - "resolved": "https://registry.npmjs.org/gatsby/-/gatsby-2.20.6.tgz", - "integrity": "sha512-fuu30hEMGQA4iZd1WBdW0A+rIvwCpy5IbnOhPiIpw/EVusDGxMgim5ei1KWdiJ6DolHZ3zTnHlBi9U4Io7zIoQ==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/core": "^7.8.7", - "@babel/parser": "^7.8.8", - "@babel/polyfill": "^7.8.7", - "@babel/runtime": "^7.8.7", - "@babel/traverse": "^7.8.6", - "@hapi/joi": "^15.1.1", - "@mikaelkristiansson/domready": "^1.0.10", - "@pieh/friendly-errors-webpack-plugin": "1.7.0-chalk-2", - "@pmmmwh/react-refresh-webpack-plugin": "^0.2.0", - "@reach/router": "^1.3.3", - "@typescript-eslint/eslint-plugin": "^2.24.0", - "@typescript-eslint/parser": "^2.24.0", - "address": "1.1.2", - "autoprefixer": "^9.7.4", - "axios": "^0.19.2", - "babel-core": "7.0.0-bridge.0", - "babel-eslint": "^10.1.0", - "babel-loader": "^8.0.6", - "babel-plugin-add-module-exports": "^0.3.3", - "babel-plugin-dynamic-import-node": "^2.3.0", - "babel-plugin-remove-graphql-queries": "^2.8.1", - "babel-preset-gatsby": "^0.3.1", - "better-opn": "1.0.0", - "better-queue": "^3.8.10", - "bluebird": "^3.7.2", - "browserslist": "^4.9.1", - "cache-manager": "^2.11.1", - "cache-manager-fs-hash": "^0.0.7", - "chalk": "^2.4.2", - "chokidar": "3.3.1", - "common-tags": "^1.8.0", - "compression": "^1.7.4", - "convert-hrtime": "^3.0.0", - "copyfiles": "^2.2.0", - "core-js": "^2.6.11", - "cors": "^2.8.5", - "css-loader": "^1.0.1", - "date-fns": "^2.11.0", - "debug": "^3.2.6", - "del": "^5.1.0", - "detect-port": "^1.3.0", - "devcert": "^1.1.0", - "dotenv": "^8.2.0", - "eslint": "^6.8.0", - "eslint-config-react-app": "^5.2.0", - "eslint-loader": "^2.2.1", - "eslint-plugin-flowtype": "^3.13.0", - "eslint-plugin-graphql": "^3.1.1", - "eslint-plugin-import": "^2.20.1", - "eslint-plugin-jsx-a11y": "^6.2.3", - "eslint-plugin-react": "^7.19.0", - "eslint-plugin-react-hooks": "^1.7.0", - "event-source-polyfill": "^1.0.12", - "express": "^4.17.1", - "express-graphql": "^0.9.0", - "fast-levenshtein": "^2.0.6", - "file-loader": "^1.1.11", - "flat": "^4.1.0", - "fs-exists-cached": "1.0.0", - "fs-extra": "^8.1.0", - "gatsby-cli": "^2.11.2", - "gatsby-core-utils": "^1.1.1", - "gatsby-graphiql-explorer": "^0.3.1", - "gatsby-link": "^2.3.1", - "gatsby-plugin-page-creator": "^2.2.1", - "gatsby-react-router-scroll": "^2.2.1", - "gatsby-telemetry": "^1.2.2", - "glob": "^7.1.6", - "got": "8.3.2", - "graphql": "^14.6.0", - "graphql-compose": "^6.3.8", - "graphql-playground-middleware-express": "^1.7.12", - "hasha": "^5.2.0", - "invariant": "^2.2.4", - "is-relative": "^1.0.0", - "is-relative-url": "^3.0.0", - "is-wsl": "^2.1.1", - "jest-worker": "^24.9.0", - "json-loader": "^0.5.7", - "json-stringify-safe": "^5.0.1", - "latest-version": "5.1.0", - "lodash": "^4.17.15", - "lokijs": "^1.5.8", - "md5": "^2.2.1", - "md5-file": "^3.2.3", - "micromatch": "^3.1.10", - "mime": "^2.4.4", - "mini-css-extract-plugin": "^0.8.2", - "mitt": "^1.2.0", - "mkdirp": "^0.5.1", - "moment": "^2.24.0", - "name-all-modules-plugin": "^1.0.1", - "normalize-path": "^2.1.1", - "null-loader": "^3.0.0", - "opentracing": "^0.14.4", - "optimize-css-assets-webpack-plugin": "^5.0.3", - "p-defer": "^3.0.0", - "parseurl": "^1.3.3", - "physical-cpu-count": "^2.0.0", - "pnp-webpack-plugin": "^1.6.4", - "postcss-flexbugs-fixes": "^4.2.0", - "postcss-loader": "^3.0.0", - "prompts": "^2.3.1", - "prop-types": "^15.7.2", - "raw-loader": "^0.5.1", - "react-dev-utils": "^4.2.3", - "react-error-overlay": "^3.0.0", - "react-hot-loader": "^4.12.20", - "react-refresh": "^0.7.0", - "redux": "^4.0.5", - "redux-thunk": "^2.3.0", - "semver": "^5.7.1", - "shallow-compare": "^1.2.2", - "sift": "^5.1.0", - "signal-exit": "^3.0.2", - "slugify": "^1.4.0", - "socket.io": "^2.3.0", - "stack-trace": "^0.0.10", - "string-similarity": "^1.2.2", - "style-loader": "^0.23.1", - "terser-webpack-plugin": "^1.4.3", - "true-case-path": "^2.2.1", - "type-of": "^2.0.1", - "url-loader": "^1.1.2", - "util.promisify": "^1.0.1", - "uuid": "^3.4.0", - "v8-compile-cache": "^1.1.2", - "webpack": "~4.42.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-dev-server": "^3.10.3", - "webpack-hot-middleware": "^2.25.0", - "webpack-merge": "^4.2.2", - "webpack-stats-plugin": "^0.3.1", - "xstate": "^4.8.0", - "yaml-loader": "^0.5.0" - }, - "dependencies": { - "@babel/core": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", - "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.0", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.0", - "@babel/parser": "^7.9.0", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "babel-preset-gatsby": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/babel-preset-gatsby/-/babel-preset-gatsby-0.3.6.tgz", - "integrity": "sha512-3BZhFENS8KxP5Y0Y+XX8hntdfFkG3MRg5upwAeeM/P+k7wO0mBrUMNl+6ekYV1yEQabfMJq1sJG00w58r0KCMA==", - "requires": { - "@babel/plugin-proposal-class-properties": "^7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-proposal-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.8.3", - "@babel/plugin-transform-spread": "^7.8.3", - "@babel/preset-env": "^7.8.7", - "@babel/preset-react": "^7.8.3", - "@babel/runtime": "^7.8.7", - "babel-plugin-dynamic-import-node": "^2.3.0", - "babel-plugin-macros": "^2.8.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24", - "gatsby-core-utils": "^1.1.4" - }, - "dependencies": { - "gatsby-core-utils": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-1.10.1.tgz", - "integrity": "sha512-4P3feGCJckg+DRWWl2beFk7N9c63zmCryEGPaU1OHCp+ZT2bO0ihCBuXywDWuuEp6SYP9PZ1fs0YJ/Rt6q6lag==", - "requires": { - "ci-info": "2.0.0", - "configstore": "^5.0.1", - "fs-extra": "^8.1.0", - "node-object-hash": "^2.0.0", - "proper-lockfile": "^4.1.1", - "tmp": "^0.2.1", - "xdg-basedir": "^4.0.0" - } - } - } - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "gatsby-cli": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-2.11.2.tgz", - "integrity": "sha512-0LmoaILEZDK+YXjFgehT8UwxLvKN3hADx6ZFLABNkiUq1K93fzTqidFA3lh+Gr40cm0rEpBITgY/1FIJVgJ6Kg==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/runtime": "^7.8.7", - "@hapi/joi": "^15.1.1", - "better-opn": "^1.0.0", - "bluebird": "^3.7.2", - "chalk": "^2.4.2", - "clipboardy": "^2.2.0", - "common-tags": "^1.8.0", - "configstore": "^5.0.1", - "convert-hrtime": "^3.0.0", - "core-js": "^2.6.11", - "envinfo": "^7.5.0", - "execa": "^3.4.0", - "fs-exists-cached": "^1.0.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^1.1.1", - "gatsby-telemetry": "^1.2.2", - "hosted-git-info": "^3.0.4", - "ink": "^2.7.1", - "ink-spinner": "^3.0.1", - "is-valid-path": "^0.1.1", - "lodash": "^4.17.15", - "meant": "^1.0.1", - "node-fetch": "^2.6.0", - "object.entries": "^1.1.1", - "opentracing": "^0.14.4", - "pretty-error": "^2.1.1", - "progress": "^2.0.3", - "prompts": "^2.3.1", - "react": "^16.8.0", - "redux": "^4.0.5", - "resolve-cwd": "^2.0.0", - "semver": "^6.3.0", - "signal-exit": "^3.0.2", - "source-map": "0.7.3", - "stack-trace": "^0.0.10", - "strip-ansi": "^5.2.0", - "update-notifier": "^3.0.1", - "uuid": "3.4.0", - "yargs": "^12.0.5", - "yurnalist": "^1.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "hosted-git-info": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", - "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", - "requires": { - "lru-cache": "^5.1.1" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "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==", - "requires": { - "yallist": "^3.0.2" - } - }, - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" - }, - "node-fetch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "requires": { - "rimraf": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "gatsby-core-utils": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-1.1.1.tgz", - "integrity": "sha512-EboPcBx37YQVUKN9JH753S54nDxjRmOefbR0i08KTmaVgQ1lZnDXJr8JfrImmMqupZlOkPQX1mWlXfp+r1jGhA==", - "requires": { - "ci-info": "2.0.0", - "configstore": "^5.0.1", - "node-object-hash": "^2.0.0" - } - }, - "gatsby-graphiql-explorer": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-0.3.1.tgz", - "integrity": "sha512-HTW0ST3zQGxOORCpmRKhy4lO48SwA9QHBfVBTm8zUWh5jgJOtDZa+O0CLxEieQhdb54lRt/PuZlozJCYFLEkYA==", - "requires": { - "@babel/runtime": "^7.8.7" - } - }, - "gatsby-image": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/gatsby-image/-/gatsby-image-2.3.1.tgz", - "integrity": "sha512-VCJIb2Sp7Dcql+seZ14pqP2yL8oUlLin+HNEb5u8hcn3txkZhzIW3zwPQ3UwfPvi9Em3gBsEClCR6TQSw96J8g==", - "requires": { - "@babel/runtime": "^7.8.7", - "object-fit-images": "^3.2.4", - "prop-types": "^15.7.2" - } - }, - "gatsby-legacy-polyfills": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/gatsby-legacy-polyfills/-/gatsby-legacy-polyfills-2.14.0.tgz", - "integrity": "sha512-OcJrY9eqiHtU8bi1zOiaO+wXZv+W/HOR0oP+5IvmWBIiLl4M+ln/z6PJcqk2fnfIK51zyzARvhPXAakDs5JE4w==", - "dev": true, - "requires": { - "@babel/runtime": "^7.15.4", - "core-js-compat": "3.9.0" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", - "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" - } - }, - "core-js-compat": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.0.tgz", - "integrity": "sha512-YK6fwFjCOKWwGnjFUR3c544YsnA/7DoLL0ysncuOJ4pwbriAtOpvM2bygdlcXbvQCQZ7bBU9CL4t7tGl7ETRpQ==", - "dev": true, - "requires": { - "browserslist": "^4.16.3", - "semver": "7.0.0" - } - }, - "electron-to-chromium": { - "version": "1.4.137", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", - "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==", - "dev": true - }, - "node-releases": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", - "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", - "dev": true - }, - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "gatsby-link": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/gatsby-link/-/gatsby-link-2.3.1.tgz", - "integrity": "sha512-waVhJ7klcAOgAD3UjX5P3LWYCee4GwZ7jqJS7dj8tTeiumXV1NAur4gjNiUZF8w3+0HQ4uY0vBjy+TozRRVk6Q==", - "requires": { - "@babel/runtime": "^7.8.7", - "@types/reach__router": "^1.3.0", - "prop-types": "^15.7.2" - } - }, - "gatsby-mdx": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gatsby-mdx/-/gatsby-mdx-1.0.0.tgz", - "integrity": "sha512-GIB6EqtQKIEMYnNoh9+009WBn/QrwD+PH3caqaB6HqiIiAUh6ytsgS2NvJJiIwJ0Vu4g9ZSIk/ywgWNKQEGNog==" - }, - "gatsby-page-utils": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/gatsby-page-utils/-/gatsby-page-utils-0.1.1.tgz", - "integrity": "sha512-g4ETSZM7wlMycHPKwQ7QqxkqnwbXCgwg2Sqh2DyCsd5qwtPm6RrQht3cnbsKAeuo7gWsbqzv088YGa3krrIREw==", - "requires": { - "@babel/runtime": "^7.8.7", - "bluebird": "^3.7.2", - "chokidar": "3.3.1", - "fs-exists-cached": "^1.0.0", - "gatsby-core-utils": "^1.1.1", - "glob": "^7.1.6", - "lodash": "^4.17.15", - "micromatch": "^3.1.10" - } - }, - "gatsby-plugin-algolia": { - "version": "0.20.1", - "resolved": "https://registry.npmjs.org/gatsby-plugin-algolia/-/gatsby-plugin-algolia-0.20.1.tgz", - "integrity": "sha512-Kto1kpVoB31UmQIOqNTf+4Gy2Gn6gGd+2lCUgSNcXSp+zCGweeB0psozE5DMSw3RGedcHGNq+FPb2/B6aB/UVg==", - "requires": { - "algoliasearch": "^4.9.1", - "deep-equal": "^2.0.5", - "lodash.chunk": "^4.2.0" - }, - "dependencies": { - "deep-equal": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", - "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", - "requires": { - "call-bind": "^1.0.0", - "es-get-iterator": "^1.1.1", - "get-intrinsic": "^1.0.1", - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.2", - "is-regex": "^1.1.1", - "isarray": "^2.0.5", - "object-is": "^1.1.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.3", - "which-boxed-primitive": "^1.0.1", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.2" - } - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - } - } - }, - "gatsby-plugin-feed": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/gatsby-plugin-feed/-/gatsby-plugin-feed-2.5.7.tgz", - "integrity": "sha512-ifP1dHhgcCyL8w8U0K8VLQoSrw71k4BHzrhy5IP20dAHC9cTCDlQVT+13ns2sELaff4DR6nqHux7hpD6BPViXA==", - "requires": { - "@babel/runtime": "^7.10.3", - "@hapi/joi": "^15.1.1", - "fs-extra": "^8.1.0", - "lodash.merge": "^4.6.2", - "rss": "^1.2.2" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.10.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.3.tgz", - "integrity": "sha512-RzGO0RLSdokm9Ipe/YD+7ww8X2Ro79qiXZF3HU9ljrM+qnJmH1Vqth+hbiQZy761LnMJTMitHDuKVYTk3k4dLw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, - "gatsby-plugin-google-analytics": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/gatsby-plugin-google-analytics/-/gatsby-plugin-google-analytics-2.2.2.tgz", - "integrity": "sha512-at0eUPTyetGuPW1ceISAv58a9fwbwsLX9V5ucwKYShs98Spil/FWviukW0f1A2LUsWOGTiVJYReS7IVVw+FlIA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.7", - "minimatch": "3.0.4" - } - }, - "gatsby-plugin-manifest": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-2.3.2.tgz", - "integrity": "sha512-tJQbofNs41rbcZN3W3SDrAHwXc5sYaLrWB+nPc8GTjz5rXzh76uRMMgMBLBfx4DtFInXFmM3igBjW58rikWVeg==", - "requires": { - "@babel/runtime": "^7.8.7", - "gatsby-core-utils": "^1.1.1", - "semver": "^5.7.1", - "sharp": "^0.25.1" - } - }, - "gatsby-plugin-mdx": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gatsby-plugin-mdx/-/gatsby-plugin-mdx-1.1.3.tgz", - "integrity": "sha512-6U0dMsEFxiGGdd8k9j7EL8lSlMCrsTytrqDCGNdpKEyyPsPjPCroVmjuHFwG3nNeKwi0m/bPaVSOoIbkIcmPaw==", - "requires": { - "@babel/core": "^7.8.7", - "@babel/generator": "^7.8.8", - "@babel/helper-plugin-utils": "^7.8.3", - "@babel/plugin-proposal-object-rest-spread": "^7.8.3", - "@babel/preset-env": "^7.8.7", - "@babel/preset-react": "^7.8.3", - "@babel/types": "^7.8.7", - "camelcase-css": "^2.0.1", - "change-case": "^3.1.0", - "core-js": "2", - "dataloader": "^1.4.0", - "debug": "^4.1.1", - "escape-string-regexp": "^1.0.5", - "eval": "^0.1.4", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^1.1.1", - "gray-matter": "^4.0.2", - "json5": "^2.1.2", - "loader-utils": "^1.4.0", - "lodash": "^4.17.15", - "mdast-util-to-string": "^1.1.0", - "mdast-util-toc": "^3.1.0", - "mime": "^2.4.4", - "p-queue": "^5.0.0", - "pretty-bytes": "^5.3.0", - "remark": "^10.0.1", - "remark-retext": "^3.1.3", - "retext-english": "^3.0.4", - "static-site-generator-webpack-plugin": "^3.4.2", - "style-to-object": "^0.3.0", - "underscore.string": "^3.3.5", - "unified": "^8.4.2", - "unist-util-map": "^1.0.5", - "unist-util-remove": "^1.0.3", - "unist-util-visit": "^1.4.1" - }, - "dependencies": { - "@babel/core": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", - "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/generator": "^7.9.0", - "@babel/helper-module-transforms": "^7.9.0", - "@babel/helpers": "^7.9.0", - "@babel/parser": "^7.9.0", - "@babel/template": "^7.8.6", - "@babel/traverse": "^7.9.0", - "@babel/types": "^7.9.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", - "json5": "^2.1.2", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - } - }, - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" - }, - "unist-util-visit": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", - "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", - "requires": { - "unist-util-visit-parents": "^2.0.0" - } - } - } - }, - "gatsby-plugin-offline": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/gatsby-plugin-offline/-/gatsby-plugin-offline-3.1.1.tgz", - "integrity": "sha512-unW96BsWt5Hw5Mv8pcatv5F7rvqUgJnHxUAMVesbZUujX+W5EfCTr34hXqBTGyIdpxiKWC+BzwADLa8nZ+4PRw==", - "requires": { - "@babel/runtime": "^7.8.7", - "cheerio": "^1.0.0-rc.3", - "gatsby-core-utils": "^1.1.1", - "glob": "^7.1.6", - "idb-keyval": "^3.2.0", - "lodash": "^4.17.15", - "workbox-build": "^4.3.1" - }, - "dependencies": { - "cheerio": { - "version": "1.0.0-rc.3", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", - "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", - "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.1", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash": "^4.15.0", - "parse5": "^3.0.1" - } - }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "parse5": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", - "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", - "requires": { - "@types/node": "*" - } - } - } - }, - "gatsby-plugin-page-creator": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.2.1.tgz", - "integrity": "sha512-RRlk7FUScyEj1S6PlGpdj/lrJmps+rl7sQNauOBCIGt3Sod5alin0l8aQJa/ldpI6DIPbp4PWIpqkPsWxED/LA==", - "requires": { - "@babel/runtime": "^7.8.7", - "bluebird": "^3.7.2", - "fs-exists-cached": "^1.0.0", - "gatsby-page-utils": "^0.1.1", - "glob": "^7.1.6", - "lodash": "^4.17.15", - "micromatch": "^3.1.10" - } - }, - "gatsby-plugin-preload-fonts": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/gatsby-plugin-preload-fonts/-/gatsby-plugin-preload-fonts-1.1.1.tgz", - "integrity": "sha512-5JFcuA43M2SFXMWvxB1gKIMnNaw2v1pQA//Gr7Vk8bN4zo4P/XB9eYNPpGgmxkiSvtBiTXzU7wbRHOBTs0eG0g==", - "requires": { - "chalk": "^2.4.2", - "date-fns": "^2.11.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^1.1.1", - "graphql-request": "^1.8.2", - "progress": "^2.0.3", - "puppeteer": "^1.20.0" - }, - "dependencies": { - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "requires": { - "es6-promise": "^4.0.3" - } - }, - "extract-zip": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", - "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", - "requires": { - "concat-stream": "^1.6.2", - "debug": "^2.6.9", - "mkdirp": "^0.5.4", - "yauzl": "^2.10.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - } - } - }, - "https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "puppeteer": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.20.0.tgz", - "integrity": "sha512-bt48RDBy2eIwZPrkgbcwHtb51mj2nKvHOPMaSH2IsWiv7lOG9k9zhaRzpDZafrk05ajMc3cu+lSQYYOfH2DkVQ==", - "requires": { - "debug": "^4.1.0", - "extract-zip": "^1.6.6", - "https-proxy-agent": "^2.2.1", - "mime": "^2.0.3", - "progress": "^2.0.1", - "proxy-from-env": "^1.0.0", - "rimraf": "^2.6.1", - "ws": "^6.1.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "requires": { - "async-limiter": "~1.0.0" - } - } - } - }, - "gatsby-plugin-react-helmet": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-3.2.1.tgz", - "integrity": "sha512-5oarZdVvp3k3keG26eVFagVHLYw7wCGs/MXRYQg8MEyJewU3X4Uc0eo7qu4TM5EIuZ2ekaL14r86RB6RM5TORA==", - "requires": { - "@babel/runtime": "^7.8.7" - } - }, - "gatsby-plugin-react-svg": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/gatsby-plugin-react-svg/-/gatsby-plugin-react-svg-2.1.2.tgz", - "integrity": "sha512-y2vqiI/+bW8UPNL8628NwoX6kHtM4WJz6CiHPc9fhvSUa2Y8wriFJnGl1K249/9RXomOUQhl7r7JOuVhweSl1w==", - "requires": { - "svg-react-loader": "^0.4.4" - } - }, - "gatsby-plugin-sass": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/gatsby-plugin-sass/-/gatsby-plugin-sass-2.2.1.tgz", - "integrity": "sha512-YRzP5ZrGgABF/3ya9YJz80+pqLpVVuJf8gyBFjvC+GmM8kqbwm5w9k3HOf61kYcCDg5bje1CPNXu7ZQMkxu2mQ==", - "requires": { - "@babel/runtime": "^7.8.7", - "sass-loader": "^7.3.1" - } - }, - "gatsby-plugin-sentry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gatsby-plugin-sentry/-/gatsby-plugin-sentry-1.0.1.tgz", - "integrity": "sha512-rKIngbFbBwwGYJi1ayUtEz34tXxpLXvSMD3WWVmdtXs0wrYrlGs30nFJ4JJIxcA7fWtx3hQ2yd5O2ZyQ832G2g==", - "dev": true, - "requires": { - "@sentry/browser": "^5.15.4" - }, - "dependencies": { - "@sentry/browser": { - "version": "5.15.4", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-5.15.4.tgz", - "integrity": "sha512-l/auT1HtZM3KxjCGQHYO/K51ygnlcuOrM+7Ga8gUUbU9ZXDYw6jRi0+Af9aqXKmdDw1naNxr7OCSy6NBrLWVZw==", - "dev": true, - "requires": { - "@sentry/core": "5.15.4", - "@sentry/types": "5.15.4", - "@sentry/utils": "5.15.4", - "tslib": "^1.9.3" - } - }, - "@sentry/core": { - "version": "5.15.4", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.15.4.tgz", - "integrity": "sha512-9KP4NM4SqfV5NixpvAymC7Nvp36Zj4dU2fowmxiq7OIbzTxGXDhwuN/t0Uh8xiqlkpkQqSECZ1OjSFXrBldetQ==", - "dev": true, - "requires": { - "@sentry/hub": "5.15.4", - "@sentry/minimal": "5.15.4", - "@sentry/types": "5.15.4", - "@sentry/utils": "5.15.4", - "tslib": "^1.9.3" - } - }, - "@sentry/hub": { - "version": "5.15.4", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-5.15.4.tgz", - "integrity": "sha512-1XJ1SVqadkbUT4zLS0TVIVl99si7oHizLmghR8LMFl5wOkGEgehHSoOydQkIAX2C7sJmaF5TZ47ORBHgkqclUg==", - "dev": true, - "requires": { - "@sentry/types": "5.15.4", - "@sentry/utils": "5.15.4", - "tslib": "^1.9.3" - } - }, - "@sentry/minimal": { - "version": "5.15.4", - "resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-5.15.4.tgz", - "integrity": "sha512-GL4GZ3drS9ge+wmxkHBAMEwulaE7DMvAEfKQPDAjg2p3MfcCMhAYfuY4jJByAC9rg9OwBGGehz7UmhWMFjE0tw==", - "dev": true, - "requires": { - "@sentry/hub": "5.15.4", - "@sentry/types": "5.15.4", - "tslib": "^1.9.3" - } - }, - "@sentry/types": { - "version": "5.15.4", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-5.15.4.tgz", - "integrity": "sha512-quPHPpeAuwID48HLPmqBiyXE3xEiZLZ5D3CEbU3c3YuvvAg8qmfOOTI6z4Z3Eedi7flvYpnx3n7N3dXIEz30Eg==", - "dev": true - }, - "@sentry/utils": { - "version": "5.15.4", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-5.15.4.tgz", - "integrity": "sha512-lO8SLBjrUDGADl0LOkd55R5oL510d/1SaI08/IBHZCxCUwI4TiYo5EPECq8mrj3XGfgCyq9osw33bymRlIDuSQ==", - "dev": true, - "requires": { - "@sentry/types": "5.15.4", - "tslib": "^1.9.3" - } - } - } - }, - "gatsby-plugin-sharp": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/gatsby-plugin-sharp/-/gatsby-plugin-sharp-2.5.3.tgz", - "integrity": "sha512-/qx0QJNXsmHudEGlRm6oqkq+X228hGBJ6KjCJpJK5bUwWdhcZRJNar337g/2BXPchaxk1emJTUK9y+qSvVpPvw==", - "requires": { - "@babel/runtime": "^7.8.7", - "async": "^2.6.3", - "bluebird": "^3.7.2", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^1.1.1", - "got": "^8.3.2", - "imagemin": "^6.1.0", - "imagemin-mozjpeg": "^8.0.0", - "imagemin-pngquant": "^6.0.1", - "imagemin-webp": "^5.1.0", - "lodash": "^4.17.15", - "mini-svg-data-uri": "^1.1.3", - "potrace": "^2.1.2", - "probe-image-size": "^4.1.1", - "progress": "^2.0.3", - "semver": "^5.7.1", - "sharp": "^0.25.1", - "svgo": "1.3.2", - "uuid": "^3.4.0" - }, - "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - } - } - }, - "gatsby-plugin-sitemap": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/gatsby-plugin-sitemap/-/gatsby-plugin-sitemap-2.4.4.tgz", - "integrity": "sha512-KRWtUguJkjZx61gIdDswFCsKF8pnMVkKIe9z92+76z7wHkC0sgRqAqDEl5yWpacHy+CMFqw3KCzo+FuqmVp4xg==", - "requires": { - "@babel/runtime": "^7.10.2", - "minimatch": "^3.0.4", - "pify": "^3.0.0", - "sitemap": "^1.13.0" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.10.2", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.2.tgz", - "integrity": "sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - } - } - }, - "gatsby-react-router-scroll": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/gatsby-react-router-scroll/-/gatsby-react-router-scroll-2.2.1.tgz", - "integrity": "sha512-mkaG6NNIbWPNiU8Wj3aawUQa7AqI42Skrnh0VCLUCSDvUgCjOJOZfxM0FVPA/masNiVsCprq3a6xz7fmW93jgQ==", - "requires": { - "@babel/runtime": "^7.8.7", - "scroll-behavior": "^0.9.12", - "warning": "^3.0.0" - }, - "dependencies": { - "warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", - "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", - "requires": { - "loose-envify": "^1.0.0" - } - } - } - }, - "gatsby-remark-images": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/gatsby-remark-images/-/gatsby-remark-images-3.2.1.tgz", - "integrity": "sha512-3zzLRjfTiXG4u8kFK17tZYpu3FNIirfdaOt7ZtNyfaowLcB+Ok67KCweZlHlvr/+Zvj+gvXAHWycMnMQqlK0iw==", - "requires": { - "@babel/runtime": "^7.8.7", - "chalk": "^2.4.2", - "cheerio": "^1.0.0-rc.3", - "gatsby-core-utils": "^1.1.1", - "is-relative-url": "^3.0.0", - "lodash": "^4.17.15", - "mdast-util-definitions": "^1.2.5", - "potrace": "^2.1.2", - "query-string": "^6.11.1", - "unist-util-select": "^1.5.0", - "unist-util-visit-parents": "^2.1.2" - }, - "dependencies": { - "cheerio": { - "version": "1.0.0-rc.3", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.3.tgz", - "integrity": "sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==", - "requires": { - "css-select": "~1.2.0", - "dom-serializer": "~0.1.1", - "entities": "~1.1.1", - "htmlparser2": "^3.9.1", - "lodash": "^4.15.0", - "parse5": "^3.0.1" - } - }, - "dom-serializer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", - "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", - "requires": { - "domelementtype": "^1.3.0", - "entities": "^1.1.1" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "parse5": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", - "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", - "requires": { - "@types/node": "*" - } - }, - "query-string": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.11.1.tgz", - "integrity": "sha512-1ZvJOUl8ifkkBxu2ByVM/8GijMIPx+cef7u3yroO3Ogm4DOdZcF5dcrWTIlSHe3Pg/mtlt6/eFjObDfJureZZA==", - "requires": { - "decode-uri-component": "^0.2.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - } - }, - "strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=" - } - } - }, - "gatsby-source-filesystem": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/gatsby-source-filesystem/-/gatsby-source-filesystem-2.2.2.tgz", - "integrity": "sha512-uHHCiTp8/q9JF0Yr14Q5aJZ07jUJSV6HJSnrSVnEIF4PfRQkVJG5FHQULmxJUXWQhIoy17EGuzqVjxMsFY69QA==", - "requires": { - "@babel/runtime": "^7.8.7", - "better-queue": "^3.8.10", - "bluebird": "^3.7.2", - "chokidar": "3.3.1", - "file-type": "^12.4.2", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^1.1.1", - "got": "^9.6.0", - "md5-file": "^3.2.3", - "mime": "^2.4.4", - "pretty-bytes": "^5.3.0", - "progress": "^2.0.3", - "read-chunk": "^3.2.0", - "valid-url": "^1.0.9", - "xstate": "^4.8.0" - }, - "dependencies": { - "file-type": { - "version": "12.4.2", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", - "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==" - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" - } - } - }, - "gatsby-telemetry": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-1.2.2.tgz", - "integrity": "sha512-I1RkcbLIR7jg+SRu71FT5c7eEqDScmJ8/sZ/mfYVwARo6Kq6obB0VzlYHVYd+KjdeiuQb6YIHhlxUn37eGq7Vw==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@babel/runtime": "^7.8.7", - "bluebird": "^3.7.2", - "boxen": "^4.2.0", - "configstore": "^5.0.1", - "envinfo": "^7.5.0", - "fs-extra": "^8.1.0", - "gatsby-core-utils": "^1.1.1", - "git-up": "4.0.1", - "is-docker": "2.0.0", - "lodash": "^4.17.15", - "node-fetch": "2.6.0", - "resolve-cwd": "^2.0.0", - "source-map": "^0.7.3", - "stack-trace": "^0.0.10", - "stack-utils": "1.0.2", - "uuid": "3.4.0" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", - "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "gatsby-transformer-sharp": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/gatsby-transformer-sharp/-/gatsby-transformer-sharp-2.4.2.tgz", - "integrity": "sha512-y8p2eBXEkSft411jyR3KOzzPRbjJ7i4aJzopB1lCQrYgOoxRtA/DeiAaANziRhJWoJUDa7M30iElizUy7n9Kzw==", - "requires": { - "@babel/runtime": "^7.8.7", - "bluebird": "^3.7.2", - "fs-extra": "^8.1.0", - "potrace": "^2.1.2", - "probe-image-size": "^4.1.1", - "semver": "^5.7.1", - "sharp": "^0.25.1" - } - }, - "gatsby-transformer-yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/gatsby-transformer-yaml/-/gatsby-transformer-yaml-2.3.1.tgz", - "integrity": "sha512-vLbxiwK9OAl3YWgWE2Nq7s0vwsjCC4lWYTFBJuYz/XeeBXFmzYs9pu/Edq7PtTTsWU8W0jjuLDO3f0OdjOK7FQ==", - "requires": { - "@babel/runtime": "^7.8.7", - "js-yaml": "^3.13.1", - "lodash": "^4.17.15", - "unist-util-select": "^1.5.0" - } - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "gaxios": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.2.tgz", - "integrity": "sha512-T+ap6GM6UZ0c4E6yb1y/hy2UB6hTrqhglp3XfmU9qbLCGRYhLVV5aRPpC4EmoG8N8zOnkYCgoBz+ScvGAARY6Q==", - "requires": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.6.1" - }, - "dependencies": { - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", - "requires": { - "whatwg-url": "^5.0.0" - } - } - } - }, - "gaze": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", - "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "requires": { - "globule": "^1.0.0" - } - }, - "gcp-metadata": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", - "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", - "requires": { - "gaxios": "^4.0.0", - "json-bigint": "^1.0.0" - } - }, - "gensync": { - "version": "1.0.0-beta.1", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", - "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==" - }, - "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==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-port": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", - "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=" - }, - "get-proxy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz", - "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==", - "requires": { - "npm-conf": "^1.1.0" - } - }, - "get-stdin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "git-up": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz", - "integrity": "sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw==", - "requires": { - "is-ssh": "^1.3.0", - "parse-url": "^5.0.0" - } - }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" - }, - "github-slugger": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz", - "integrity": "sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==", - "requires": { - "emoji-regex": ">=6.0.0 <=6.1.1" - }, - "dependencies": { - "emoji-regex": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz", - "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=" - } - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "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" - } - }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - }, - "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "glob-to-regexp": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", - "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" - }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, - "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", - "requires": { - "ini": "^1.3.4" - } - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - } - }, - "globule": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz", - "integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==", - "requires": { - "glob": "~7.1.1", - "lodash": "~4.17.12", - "minimatch": "~3.0.2" - } - }, - "google-auth-library": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.11.0.tgz", - "integrity": "sha512-3S5jn2quRumvh9F/Ubf7GFrIq71HZ5a6vqosgdIu105kkk0WtSqc2jGCRqtWWOLRS8SX3AHACMOEDxhyWAQIcg==", - "requires": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^4.0.0", - "gcp-metadata": "^4.2.0", - "gtoken": "^5.0.4", - "jws": "^4.0.0", - "lru-cache": "^6.0.0" - }, - "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" - }, - "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==", - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "google-p12-pem": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.2.tgz", - "integrity": "sha512-tjf3IQIt7tWCDsa0ofDQ1qqSCNzahXDxdAGJDbruWqu3eCg5CKLYKN+hi0s6lfvzYZ1GDVr+oDF9OOWlDSdf0A==", - "requires": { - "node-forge": "^0.10.0" - }, - "dependencies": { - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" - } - } - }, - "googleapis": { - "version": "92.0.0", - "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-92.0.0.tgz", - "integrity": "sha512-5HgJg7XvqEEJ+GO+2gvnzd5cAcDuSS/VB6nW7thoyj2GMq9nH4VvJwncSevinjLCnv06a+VSxrXNiL5vePHojA==", - "requires": { - "google-auth-library": "^7.0.2", - "googleapis-common": "^5.0.2" - } - }, - "googleapis-common": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-5.0.5.tgz", - "integrity": "sha512-o2dgoW4x4fLIAN+IVAOccz3mEH8Lj1LP9c9BSSvkNJEn+U7UZh0WSr4fdH08x5VH7+sstIpd1lOYFZD0g7j4pw==", - "requires": { - "extend": "^3.0.2", - "gaxios": "^4.0.0", - "google-auth-library": "^7.0.2", - "qs": "^6.7.0", - "url-template": "^2.0.8", - "uuid": "^8.0.0" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - } - } - }, - "got": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", - "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", - "requires": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" - }, - "dependencies": { - "@sindresorhus/is": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", - "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==" - }, - "cacheable-request": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", - "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", - "requires": { - "clone-response": "1.0.2", - "get-stream": "3.0.0", - "http-cache-semantics": "3.8.1", - "keyv": "3.0.0", - "lowercase-keys": "1.0.0", - "normalize-url": "2.0.1", - "responselike": "1.0.2" - }, - "dependencies": { - "lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=" - } - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==" - }, - "keyv": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", - "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "requires": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" - } - }, - "p-cancelable": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", - "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==" - } - } - }, - "graceful-fs": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", - "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" - }, - "graphql": { - "version": "14.6.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-14.6.0.tgz", - "integrity": "sha512-VKzfvHEKybTKjQVpTFrA5yUq2S9ihcZvfJAtsDBBCuV6wauPu1xl/f9ehgVf0FcEJJs4vz6ysb/ZMkGigQZseg==", - "requires": { - "iterall": "^1.2.2" - } - }, - "graphql-compose": { - "version": "6.3.8", - "resolved": "https://registry.npmjs.org/graphql-compose/-/graphql-compose-6.3.8.tgz", - "integrity": "sha512-o0/jzQEMIpSjryLKwmD1vGrCubiPxD0LxlGTgWDSu38TBepu2GhugC9gYgTEbtiCZAHPtvkZ90SzzABOWZyQLA==", - "requires": { - "graphql-type-json": "^0.2.4", - "object-path": "^0.11.4" - } - }, - "graphql-config": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-2.2.2.tgz", - "integrity": "sha512-mtv1ejPyyR2mJUUZNhljggU+B/Xl8tJJWf+h145hB+1Y48acSghFalhNtXfPBcYl2tJzpb+lGxfj3O7OjaiMgw==", - "requires": { - "graphql-import": "^0.7.1", - "graphql-request": "^1.5.0", - "js-yaml": "^3.10.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.4" - } - }, - "graphql-import": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/graphql-import/-/graphql-import-0.7.1.tgz", - "integrity": "sha512-YpwpaPjRUVlw2SN3OPljpWbVRWAhMAyfSba5U47qGMOSsPLi2gYeJtngGpymjm9nk57RFWEpjqwh4+dpYuFAPw==", - "requires": { - "lodash": "^4.17.4", - "resolve-from": "^4.0.0" - } - }, - "graphql-playground-html": { - "version": "1.6.12", - "resolved": "https://registry.npmjs.org/graphql-playground-html/-/graphql-playground-html-1.6.12.tgz", - "integrity": "sha512-yOYFwwSMBL0MwufeL8bkrNDgRE7eF/kTHiwrqn9FiR9KLcNIl1xw9l9a+6yIRZM56JReQOHpbQFXTZn1IuSKRg==" - }, - "graphql-playground-middleware-express": { - "version": "1.7.12", - "resolved": "https://registry.npmjs.org/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.7.12.tgz", - "integrity": "sha512-17szgonnVSxWVrgblLRHHLjWnMUONfkULIwSunaMvYx8k5oG3yL86cyGCbHuDFUFkyr2swLhdfYl4mDfDXuvOA==", - "requires": { - "graphql-playground-html": "1.6.12" - } - }, - "graphql-request": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-1.8.2.tgz", - "integrity": "sha512-dDX2M+VMsxXFCmUX0Vo0TopIZIX4ggzOtiCsThgtrKR4niiaagsGTDIHj3fsOMFETpa064vzovI+4YV4QnMbcg==", - "requires": { - "cross-fetch": "2.2.2" - } - }, - "graphql-tag": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.10.3.tgz", - "integrity": "sha512-4FOv3ZKfA4WdOKJeHdz6B3F/vxBLSgmBcGeAFPf4n1F64ltJUvOOerNj0rsJxONQGdhUMynQIvd6LzB+1J5oKA==" - }, - "graphql-type-json": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/graphql-type-json/-/graphql-type-json-0.2.4.tgz", - "integrity": "sha512-/tq02ayMQjrG4oDFDRLLrPk0KvJXue0nVXoItBe7uAdbNXjQUu+HYCBdAmPLQoseVzUKKMzrhq2P/sfI76ON6w==" - }, - "gray-matter": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.2.tgz", - "integrity": "sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==", - "requires": { - "js-yaml": "^3.11.0", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - } - }, - "gtoken": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.1.tgz", - "integrity": "sha512-yqOREjzLHcbzz1UrQoxhBtpk8KjrVhuqPE7od1K2uhyxG2BHjKZetlbLw/SPZak/QqTIQW+addS+EcjqQsZbwQ==", - "requires": { - "gaxios": "^4.0.0", - "google-p12-pem": "^3.0.3", - "jws": "^4.0.0" - } - }, - "gud": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", - "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" - }, - "gzip-size": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", - "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", - "requires": { - "duplexer": "^0.1.1", - "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", - "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" - } - }, - "harmony-reflect": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", - "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" - }, - "has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" - }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" - }, - "dependencies": { - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - } - } - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" - }, - "hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hasha": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz", - "integrity": "sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==", - "requires": { - "is-stream": "^2.0.0", - "type-fest": "^0.8.0" - }, - "dependencies": { - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - } - } - }, - "hast-to-hyperscript": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-7.0.4.tgz", - "integrity": "sha512-vmwriQ2H0RPS9ho4Kkbf3n3lY436QKLq6VaGA1pzBh36hBi3tm1DO9bR+kaJIbpT10UqaANDkMjxvjVfr+cnOA==", - "requires": { - "comma-separated-tokens": "^1.0.0", - "property-information": "^5.3.0", - "space-separated-tokens": "^1.0.0", - "style-to-object": "^0.2.1", - "unist-util-is": "^3.0.0", - "web-namespaces": "^1.1.2" - }, - "dependencies": { - "style-to-object": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.2.3.tgz", - "integrity": "sha512-1d/k4EY2N7jVLOqf2j04dTc37TPOv/hHxZmvpg8Pdh8UYydxeu/C1W1U4vD8alzf5V2Gt7rLsmkr4dxAlDm9ng==", - "requires": { - "inline-style-parser": "0.1.1" - } - } - } - }, - "hast-util-from-parse5": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz", - "integrity": "sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==", - "requires": { - "ccount": "^1.0.3", - "hastscript": "^5.0.0", - "property-information": "^5.0.0", - "web-namespaces": "^1.1.2", - "xtend": "^4.0.1" - } - }, - "hast-util-parse-selector": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz", - "integrity": "sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA==" - }, - "hast-util-raw": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-5.0.1.tgz", - "integrity": "sha512-iHo7G6BjRc/GU1Yun5CIEXjil0wVnIbz11C6k0JdDichSDMtYi2+NNtk6YN7EOP0JfPstX30d3pRLfaJv5CkdA==", - "requires": { - "hast-util-from-parse5": "^5.0.0", - "hast-util-to-parse5": "^5.0.0", - "html-void-elements": "^1.0.1", - "parse5": "^5.0.0", - "unist-util-position": "^3.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.1", - "zwitch": "^1.0.0" - } - }, - "hast-util-to-parse5": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-5.1.2.tgz", - "integrity": "sha512-ZgYLJu9lYknMfsBY0rBV4TJn2xiwF1fXFFjbP6EE7S0s5mS8LIKBVWzhA1MeIs1SWW6GnnE4In6c3kPb+CWhog==", - "requires": { - "hast-to-hyperscript": "^7.0.0", - "property-information": "^5.0.0", - "web-namespaces": "^1.0.0", - "xtend": "^4.0.0", - "zwitch": "^1.0.0" - } - }, - "hastscript": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz", - "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==", - "requires": { - "comma-separated-tokens": "^1.0.0", - "hast-util-parse-selector": "^2.0.0", - "property-information": "^5.0.0", - "space-separated-tokens": "^1.0.0" - } - }, - "header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" - } - }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - }, - "homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "requires": { - "parse-passwd": "^1.0.0" - } - }, - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" - }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" - }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=" - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "html-void-elements": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", - "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==" - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "http-parser-js": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", - "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=" - }, - "http-proxy": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", - "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "requires": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - } - }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" - }, - "husky": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.3.tgz", - "integrity": "sha512-VxTsSTRwYveKXN4SaH1/FefRJYCtx+wx04sSVcOpD7N2zjoHxa+cEJ07Qg5NmV3HAK+IRKOyNVpi2YBIVccIfQ==", - "dev": true, - "requires": { - "chalk": "^3.0.0", - "ci-info": "^2.0.0", - "compare-versions": "^3.5.1", - "cosmiconfig": "^6.0.0", - "find-versions": "^3.2.0", - "opencollective-postinstall": "^2.0.2", - "pkg-dir": "^4.2.0", - "please-upgrade-node": "^3.2.0", - "slash": "^3.0.0", - "which-pm-runs": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "dev": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "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 - }, - "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, - "requires": { - "p-locate": "^4.1.0" - } - }, - "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, - "requires": { - "p-limit": "^2.2.0" - } - }, - "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 - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-replace-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", - "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" - }, - "icss-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", - "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", - "requires": { - "postcss": "^6.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "idb-keyval": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-3.2.0.tgz", - "integrity": "sha512-slx8Q6oywCCSfKgPgL0sEsXtPVnSbTLWpyiDcu6msHOyKOLari1TD1qocXVCft80umnkk3/Qqh3lwoFt8T/BPQ==" - }, - "identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", - "dev": true, - "requires": { - "harmony-reflect": "^1.4.6" - } - }, - "idtoken-verifier": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/idtoken-verifier/-/idtoken-verifier-2.0.2.tgz", - "integrity": "sha512-9UN83SKT9dtN3d7vNz3EMTqoaJi3D02Zg5XMqF6+bLrGL+Akbx4oj4SEWsgXtLF6cy46XrUcVzokFY+SWO+/MA==", - "requires": { - "base64-js": "^1.3.0", - "crypto-js": "^3.2.1", - "es6-promise": "^4.2.8", - "jsbn": "^1.1.0", - "unfetch": "^4.1.0", - "url-join": "^4.0.1" - } - }, - "ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" - }, - "imagemin": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-6.1.0.tgz", - "integrity": "sha512-8ryJBL1CN5uSHpiBMX0rJw79C9F9aJqMnjGnrd/1CafegpNuA81RBAAru/jQQEOWlOJJlpRnlcVFF6wq+Ist0A==", - "requires": { - "file-type": "^10.7.0", - "globby": "^8.0.1", - "make-dir": "^1.0.0", - "p-pipe": "^1.1.0", - "pify": "^4.0.1", - "replace-ext": "^1.0.0" - }, - "dependencies": { - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - } - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "imagemin-mozjpeg": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/imagemin-mozjpeg/-/imagemin-mozjpeg-8.0.0.tgz", - "integrity": "sha512-+EciPiIjCb8JWjQNr1q8sYWYf7GDCNDxPYnkD11TNIjjWNzaV+oTg4DpOPQjl5ZX/KRCPMEgS79zLYAQzLitIA==", - "requires": { - "execa": "^1.0.0", - "is-jpg": "^2.0.0", - "mozjpeg": "^6.0.0" - }, - "dependencies": { - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "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" - } - } - } - }, - "imagemin-pngquant": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/imagemin-pngquant/-/imagemin-pngquant-6.0.1.tgz", - "integrity": "sha512-Stk+fZCLxZznV8MFNA/T3AY/VRKevsiP9uZOLV0RCXoi0vUUFriySYuz/83IGp9D254EW8miGyyQ69zKouFr7w==", - "requires": { - "execa": "^0.10.0", - "is-png": "^1.0.0", - "is-stream": "^1.1.0", - "pngquant-bin": "^5.0.0" - }, - "dependencies": { - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^3.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" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - } - } - }, - "imagemin-webp": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/imagemin-webp/-/imagemin-webp-5.1.0.tgz", - "integrity": "sha512-BsPTpobgbDPFBBsI3UflnU/cpIVa15qInEDBcYBw16qI/6XiB4vDF/dGp9l4aM3pfFDDYqR0mANMcKpBD7wbCw==", - "requires": { - "cwebp-bin": "^5.0.0", - "exec-buffer": "^3.0.0", - "is-cwebp-readable": "^2.0.1" - } - }, - "immer": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", - "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==" - }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "requires": { - "import-from": "^2.1.0" - } - }, - "import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } - } - }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" - }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "in-publish": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", - "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==" - }, - "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==" - }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=" - }, - "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==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" - }, - "ink": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/ink/-/ink-2.7.1.tgz", - "integrity": "sha512-s7lJuQDJEdjqtaIWhp3KYHl6WV3J04U9zoQ6wVc+Xoa06XM27SXUY57qC5DO46xkF0CfgXMKkKNcgvSu/SAEpA==", - "optional": true, - "requires": { - "ansi-escapes": "^4.2.1", - "arrify": "^2.0.1", - "auto-bind": "^4.0.0", - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-truncate": "^2.1.0", - "is-ci": "^2.0.0", - "lodash.throttle": "^4.1.1", - "log-update": "^3.0.0", - "prop-types": "^15.6.2", - "react-reconciler": "^0.24.0", - "scheduler": "^0.18.0", - "signal-exit": "^3.0.2", - "slice-ansi": "^3.0.0", - "string-length": "^3.1.0", - "widest-line": "^3.1.0", - "wrap-ansi": "^6.2.0", - "yoga-layout-prebuilt": "^1.9.3" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "optional": true, - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "optional": true - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "optional": true, - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "optional": true - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "optional": true - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "optional": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "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==", - "optional": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "optional": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "optional": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "optional": true - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "optional": true - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "optional": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "optional": true, - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "optional": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "optional": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "optional": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "optional": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "optional": true - }, - "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==", - "optional": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "ink-spinner": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ink-spinner/-/ink-spinner-3.0.1.tgz", - "integrity": "sha512-AVR4Z/NXDQ7dT5ltWcCzFS9Dd4T8eaO//E2UO8VYNiJcZpPCSJ11o5A0UVPcMlZxGbGD6ikUFDR3ZgPUQk5haQ==", - "optional": true, - "requires": { - "cli-spinners": "^1.0.0", - "prop-types": "^15.5.10" - } - }, - "inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "inquirer": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", - "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - } - }, - "internal-slot": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", - "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", - "requires": { - "es-abstract": "^1.17.0-next.1", - "has": "^1.0.3", - "side-channel": "^1.0.2" - } - }, - "into-stream": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", - "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", - "requires": { - "from2": "^2.1.1", - "p-is-promise": "^1.1.0" - }, - "dependencies": { - "p-is-promise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", - "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=" - } - } - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" - }, - "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==" - }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==" - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" - }, - "is-alphanumeric": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", - "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=" - }, - "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, - "is-arguments": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", - "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", - "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" - }, - "is-builtin-module": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.0.0.tgz", - "integrity": "sha512-/93sDihsAD652hrMEbJGbMAVBf1qc96kyThHQ0CAOONHaE3aROLpTjDe4WQ5aoC5ITHFxEq1z8XqSU7km+8amw==", - "requires": { - "builtin-modules": "^3.0.0" - } - }, - "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-cwebp-readable": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-cwebp-readable/-/is-cwebp-readable-2.0.1.tgz", - "integrity": "sha1-r7k7DAq9CiUQEBauM66ort+SbSY=", - "requires": { - "file-type": "^4.3.0" - }, - "dependencies": { - "file-type": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", - "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=" - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" - }, - "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" - } - } - }, - "is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" - }, - "is-docker": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", - "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==" - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "is-finite": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", - "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" - }, - "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": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "is-function": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", - "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hexadecimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", - "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" - }, - "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", - "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" - }, - "dependencies": { - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "requires": { - "path-is-inside": "^1.0.1" - } - } - } - }, - "is-invalid-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", - "integrity": "sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ=", - "requires": { - "is-glob": "^2.0.0" - }, - "dependencies": { - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "requires": { - "is-extglob": "^1.0.0" - } - } - } - }, - "is-jpg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz", - "integrity": "sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc=" - }, - "is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", - "requires": { - "lower-case": "^1.1.0" - } - }, - "is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" - }, - "is-natural-number": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", - "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=" - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" - }, - "is-npm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", - "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==" - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - }, - "is-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", - "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" - }, - "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==" - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "requires": { - "is-path-inside": "^2.1.0" - }, - "dependencies": { - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "requires": { - "path-is-inside": "^1.0.2" - } - } - } - }, - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==" - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" - }, - "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==", - "requires": { - "isobject": "^3.0.1" - } - }, - "is-png": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz", - "integrity": "sha1-1XSxK/J1wDUEVVcLDltXqwYgd84=" - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" - }, - "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", - "requires": { - "has": "^1.0.3" - } - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-relative-url": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-relative-url/-/is-relative-url-3.0.0.tgz", - "integrity": "sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA==", - "requires": { - "is-absolute-url": "^3.0.0" - } - }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" - }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" - }, - "is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" - }, - "is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" - }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==" - }, - "is-ssh": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz", - "integrity": "sha512-0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg==", - "requires": { - "protocols": "^1.1.0" - } - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" - }, - "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" - }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", - "requires": { - "html-comment-regex": "^1.1.0" - } - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0" - }, - "dependencies": { - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - } - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", - "requires": { - "upper-case": "^1.1.0" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" - }, - "is-valid-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", - "integrity": "sha1-EQ+f90w39mPh7HkV60UfLbk6yd8=", - "requires": { - "is-invalid-path": "^0.1.0" - } - }, - "is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" - }, - "is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", - "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", - "requires": { - "call-bind": "^1.0.0" - } - }, - "is-weakset": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz", - "integrity": "sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==" - }, - "is-whitespace-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", - "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==" - }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" - }, - "is-word-character": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", - "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==" - }, - "is-wsl": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.1.1.tgz", - "integrity": "sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog==" - }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "isomorphic-fetch": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", - "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" - }, - "dependencies": { - "node-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", - "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", - "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" - } - } - } - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/compat-data": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", - "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", - "dev": true - }, - "@babel/core": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.10.tgz", - "integrity": "sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.10", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.10", - "@babel/types": "^7.17.10", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.10.tgz", - "integrity": "sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==", - "dev": true, - "requires": { - "@babel/types": "^7.17.10", - "@jridgewell/gen-mapping": "^0.1.0", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz", - "integrity": "sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - } - }, - "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", - "dev": true, - "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", - "dev": true, - "requires": { - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", - "dev": true, - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" - } - }, - "@babel/highlight": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", - "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==", - "dev": true - }, - "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/traverse": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.10.tgz", - "integrity": "sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/parser": "^7.17.10", - "@babel/types": "^7.17.10", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz", - "integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "to-fast-properties": "^2.0.0" - } - }, - "browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" - } - }, - "electron-to-chromium": { - "version": "1.4.137", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz", - "integrity": "sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA==", - "dev": true - }, - "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 - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true - }, - "node-releases": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", - "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "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 - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "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 - } - } - }, - "istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "iterall": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", - "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" - }, - "jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "dev": true, - "requires": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - }, - "dependencies": { - "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 - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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 - }, - "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, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "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 - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "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 - }, - "jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "dev": true, - "requires": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - } - }, - "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, - "requires": { - "p-locate": "^4.1.0" - } - }, - "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, - "requires": { - "p-limit": "^2.2.0" - } - }, - "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 - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "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 - }, - "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, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "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, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } - } - }, - "jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "dependencies": { - "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, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "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" - } - }, - "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 - }, - "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 - }, - "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 - }, - "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 - }, - "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, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "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 - }, - "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, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "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 - }, - "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 - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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 - }, - "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 - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - } - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "dev": true, - "requires": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "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" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz", - "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "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 - }, - "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 - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "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" - } - } - } - }, - "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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 - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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 - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - } - }, - "jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true - }, - "jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "dependencies": { - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "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" - } - }, - "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.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "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 - }, - "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 - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "dependencies": { - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "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 - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "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" - } - } - } - }, - "jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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 - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "dev": true, - "requires": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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 - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.7" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true - }, - "@babel/highlight": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz", - "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.16.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "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, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } - } - }, - "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" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "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 - }, - "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 - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "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 - } - } - }, - "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" - } - } - } - }, - "jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true - }, - "jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "dev": true - }, - "jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "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 - }, - "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 - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - } - }, - "jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "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 - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "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" - } - }, - "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 - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "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 - }, - "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 - }, - "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 - }, - "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 - }, - "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, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "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 - }, - "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, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "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 - }, - "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 - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - } - } - }, - "jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "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 - }, - "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, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - } - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "ci-info": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz", - "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "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 - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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 - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "dev": true, - "requires": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "dependencies": { - "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, - "requires": { - "type-fest": "^0.21.3" - } - }, - "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 - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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 - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "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, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "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 - } - } - }, - "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "dependencies": { - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "jimp": { - "version": "0.9.8", - "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.9.8.tgz", - "integrity": "sha512-DHN4apKMwLIvD/TKO9tFfPuankNuVK98vCwHm/Jv9z5cJnrd38xhi+4I7IAGmDU3jIDlrEVhzTkFH1Ymv5yTQQ==", - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/custom": "^0.9.8", - "@jimp/plugins": "^0.9.8", - "@jimp/types": "^0.9.8", - "core-js": "^3.4.1", - "regenerator-runtime": "^0.13.3" - } - }, - "jpeg-js": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.3.7.tgz", - "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==" - }, - "js-base64": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz", - "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==" - }, - "js-cookie": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", - "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" - }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true - }, - "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, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - } - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "dev": true - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "requires": { - "bignumber.js": "^9.0.0" - } - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" - }, - "json-fixer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/json-fixer/-/json-fixer-1.4.0.tgz", - "integrity": "sha512-9Nbl396T9eRPvrUxKnBQeiVgQjuBhvumptJfwSAdjQ+cjUqJ981O8Kts/A7ZEID3SbRr76uTOayxVTi+AbAf/A==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.6", - "chalk": "^2.4.2", - "pegjs": "^0.10.0" - } - }, - "json-loader": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", - "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==" - }, - "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==" - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "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==" - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" - }, - "json5": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", - "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsonp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/jsonp/-/jsonp-0.2.1.tgz", - "integrity": "sha1-pltPoPEL2nGaBUQep7lMVfPhW64=", - "requires": { - "debug": "^2.1.3" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jsx-ast-utils": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", - "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==", - "requires": { - "array-includes": "^3.0.3", - "object.assign": "^4.1.0" - } - }, - "jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "requires": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" - }, - "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==" - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "last-call-webpack-plugin": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", - "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", - "requires": { - "lodash": "^4.17.5", - "webpack-sources": "^1.1.0" - } - }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "requires": { - "package-json": "^6.3.0" - } - }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "requires": { - "invert-kv": "^2.0.0" - } - }, - "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==" - }, - "levenary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", - "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", - "requires": { - "leven": "^3.1.0" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" - }, - "lmdb": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.3.10.tgz", - "integrity": "sha512-GtH+nStn9V59CfYeQ5ddx6YTfuFCmu86UJojIjJAweG+/Fm0PDknuk3ovgYDtY/foMeMdZa8/P7oSljW/d5UPw==", - "dev": true, - "requires": { - "lmdb-darwin-arm64": "2.3.10", - "lmdb-darwin-x64": "2.3.10", - "lmdb-linux-arm": "2.3.10", - "lmdb-linux-arm64": "2.3.10", - "lmdb-linux-x64": "2.3.10", - "lmdb-win32-x64": "2.3.10", - "msgpackr": "^1.5.4", - "nan": "^2.14.2", - "node-addon-api": "^4.3.0", - "node-gyp-build-optional-packages": "^4.3.2", - "ordered-binary": "^1.2.4", - "weak-lru-cache": "^1.2.2" - }, - "dependencies": { - "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "dev": true - }, - "node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "dev": true - } - } - }, - "lmdb-darwin-arm64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.3.10.tgz", - "integrity": "sha512-LVXbH2MYu7/ZuQ8+P9rv+SwNyBKltxo7vHAGJS94HWyfwnCbKEYER9PImBvNBwzvgtaYk6x0RMX3oor6e6KdDQ==", - "dev": true, - "optional": true - }, - "lmdb-darwin-x64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-darwin-x64/-/lmdb-darwin-x64-2.3.10.tgz", - "integrity": "sha512-gAc/1b/FZOb9yVOT+o0huA+hdW82oxLo5r22dFTLoRUFG1JMzxdTjmnW6ONVOHdqC9a5bt3vBCEY3jmXNqV26A==", - "dev": true, - "optional": true - }, - "lmdb-linux-arm": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-linux-arm/-/lmdb-linux-arm-2.3.10.tgz", - "integrity": "sha512-Rb8+4JjsThuEcJ7GLLwFkCFnoiwv/3hAAbELWITz70buQFF+dCZvCWWgEgmDTxwn5r+wIkdUjmFv4dqqiKQFmQ==", - "dev": true, - "optional": true - }, - "lmdb-linux-arm64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-linux-arm64/-/lmdb-linux-arm64-2.3.10.tgz", - "integrity": "sha512-Ihr8mdICTK3jA4GXHxrXGK2oekn0mY6zuDSXQDNtyRSH19j3D2Y04A7SEI9S0EP/t5sjKSudYgZbiHDxRCsI5A==", - "dev": true, - "optional": true - }, - "lmdb-linux-x64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-linux-x64/-/lmdb-linux-x64-2.3.10.tgz", - "integrity": "sha512-E3l3pDiCA9uvnLf+t3qkmBGRO01dp1EHD0x0g0iRnfpAhV7wYbayJGfG93BUt22Tj3fnq4HDo4dQ6ZWaDI1nuw==", - "dev": true, - "optional": true - }, - "lmdb-win32-x64": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/lmdb-win32-x64/-/lmdb-win32-x64-2.3.10.tgz", - "integrity": "sha512-gspWk34tDANhjn+brdqZstJMptGiwj4qFNVg0Zey9ds+BUlif+Lgf5szrfOVzZ8gVRkk1Lgbz7i78+V7YK7SCA==", - "dev": true, - "optional": true - }, - "load-bmfont": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.0.tgz", - "integrity": "sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g==", - "requires": { - "buffer-equal": "0.0.1", - "mime": "^1.3.4", - "parse-bmfont-ascii": "^1.0.3", - "parse-bmfont-binary": "^1.0.5", - "parse-bmfont-xml": "^1.1.4", - "phin": "^2.9.1", - "xhr": "^2.0.1", - "xtend": "^4.0.0" - } - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "load-script": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/load-script/-/load-script-1.0.0.tgz", - "integrity": "sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ=" - }, - "loader-fs-cache": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", - "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", - "requires": { - "find-cache-dir": "^0.1.1", - "mkdirp": "^0.5.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "requires": { - "find-up": "^1.0.0" - } - } - } - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" - }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lock": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/lock/-/lock-1.1.0.tgz", - "integrity": "sha1-UxV0mdFlOxNspmRRBx/KYVcD+lU=", - "dev": true - }, - "lockfile": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz", - "integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==", - "requires": { - "signal-exit": "^3.0.2" - } - }, - "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" - }, - "lodash.assignin": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", - "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=" - }, - "lodash.bind": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", - "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=" - }, - "lodash.chunk": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", - "integrity": "sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw=" - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" - }, - "lodash.escape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", - "integrity": "sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg=" - }, - "lodash.every": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.every/-/lodash.every-4.6.0.tgz", - "integrity": "sha1-64mYS+vENkJ5uzrvu9HKGb+mxqc=" - }, - "lodash.filter": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", - "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "lodash.flattendeep": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", - "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=" - }, - "lodash.foreach": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=" - }, - "lodash.map": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", - "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=" - }, - "lodash.maxby": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.maxby/-/lodash.maxby-4.6.0.tgz", - "integrity": "sha1-CCJABo88eiJ6oAqDgOTzjPB4bj0=" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" - }, - "lodash.pick": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", - "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=" - }, - "lodash.reduce": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", - "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=" - }, - "lodash.reject": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", - "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=" - }, - "lodash.some": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", - "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=" - }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", - "optional": true - }, - "lodash.toarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" - }, - "lodash.unescape": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz", - "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=" - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "log-update": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-3.4.0.tgz", - "integrity": "sha512-ILKe88NeMt4gmDvk/eb615U/IVn7K9KWGkoYbdatQ69Z65nj1ZzjM6fHXfcs0Uge+e+EGnMW7DY4T9yko8vWFg==", - "optional": true, - "requires": { - "ansi-escapes": "^3.2.0", - "cli-cursor": "^2.1.0", - "wrap-ansi": "^5.0.0" - } - }, - "logalot": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", - "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=", - "requires": { - "figures": "^1.3.5", - "squeak": "^1.0.0" - }, - "dependencies": { - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - } - } - }, - "loglevel": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz", - "integrity": "sha512-cY2eLFrQSAfVPhCgH1s7JI73tMbg9YC3v3+ZHVW67sBS7UxWzNEk/ZBbSfLykBWHp33dqqtOv82gjhKEi81T/A==" - }, - "lokijs": { - "version": "1.5.8", - "resolved": "https://registry.npmjs.org/lokijs/-/lokijs-1.5.8.tgz", - "integrity": "sha512-D8E3TBrY35o1ELnonp2MF8b3wKu2tVNl2TqRjvS+95oPMMe7OoIAxNY1qr+5BEZwnWn2V4ErAjVt000DonM+FA==" - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" - }, - "longest-streak": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", - "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==" - }, - "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==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "loud-rejection": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-2.2.0.tgz", - "integrity": "sha512-S0FayMXku80toa5sZ6Ro4C+s+EtFDCsyJNG/AzFMfX3AxD5Si4dZsgzm/kKnbOxHl5Cv8jBlno8+3XYIh2pNjQ==", - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.2" - } - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" - }, - "lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", - "requires": { - "lower-case": "^1.1.2" - } - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "lpad-align": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz", - "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=", - "requires": { - "get-stdin": "^4.0.1", - "indent-string": "^2.1.0", - "longest": "^1.0.0", - "meow": "^3.3.0" - }, - "dependencies": { - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "requires": { - "repeating": "^2.0.0" - } - } - } - }, - "lru-cache": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.0.tgz", - "integrity": "sha1-tcvwFVbBaWb+vlTO7A+03JDfbCg=", - "requires": { - "pseudomap": "^1.0.1", - "yallist": "^2.0.0" - } - }, - "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==", - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "requires": { - "p-defer": "^1.0.0" - }, - "dependencies": { - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" - } - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" - }, - "map-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "requires": { - "object-visit": "^1.0.0" - } - }, - "markdown-escapes": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", - "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==" - }, - "markdown-table": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-1.1.3.tgz", - "integrity": "sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==" - }, - "markdown-to-txt": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/markdown-to-txt/-/markdown-to-txt-2.0.0.tgz", - "integrity": "sha512-H5DSAY6frUQ6/CR0nJMlGCEuSA3pvi14dYfICJPKLAvd/rDk6eb+cj84zU5XTNYzECyCcujoAL1PHhjmOgeqUw==", - "requires": { - "lodash.escape": "^4.0.1", - "lodash.unescape": "^4.0.1", - "marked": "^3.0.8" - }, - "dependencies": { - "marked": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/marked/-/marked-3.0.8.tgz", - "integrity": "sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==" - } - } - }, - "marked": { - "version": "4.0.15", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.15.tgz", - "integrity": "sha512-esX5lPdTfG4p8LDkv+obbRCyOKzB+820ZZyMOXJZygZBHrH9b3xXR64X4kT3sPe9Nx8qQXbmcz6kFSMt4Nfk6Q==", - "dev": true - }, - "md5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz", - "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=", - "requires": { - "charenc": "~0.0.1", - "crypt": "~0.0.1", - "is-buffer": "~1.1.1" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - } - } - }, - "md5-file": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-3.2.3.tgz", - "integrity": "sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw==", - "requires": { - "buffer-alloc": "^1.1.0" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdast-squeeze-paragraphs": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-3.0.5.tgz", - "integrity": "sha512-xX6Vbe348Y/rukQlG4W3xH+7v4ZlzUbSY4HUIQCuYrF2DrkcHx584mCaFxkWoDZKNUfyLZItHC9VAqX3kIP7XA==", - "requires": { - "unist-util-remove": "^1.0.0" - } - }, - "mdast-util-compact": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz", - "integrity": "sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==", - "requires": { - "unist-util-visit": "^1.1.0" - }, - "dependencies": { - "unist-util-visit": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", - "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", - "requires": { - "unist-util-visit-parents": "^2.0.0" - } - } - } - }, - "mdast-util-definitions": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-1.2.5.tgz", - "integrity": "sha512-CJXEdoLfiISCDc2JB6QLb79pYfI6+GcIH+W2ox9nMc7od0Pz+bovcHsiq29xAQY6ayqe/9CsK2VzkSJdg1pFYA==", - "requires": { - "unist-util-visit": "^1.0.0" - }, - "dependencies": { - "unist-util-visit": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", - "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", - "requires": { - "unist-util-visit-parents": "^2.0.0" - } - } - } - }, - "mdast-util-to-hast": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-7.0.0.tgz", - "integrity": "sha512-vxnXKSZgvPG2grZM3kxaF052pxsLtq8TPAkiMkqYj1nFTOazYUPXt3LFYIEB6Ws/IX7Uyvljzk64kD6DwZl/wQ==", - "requires": { - "collapse-white-space": "^1.0.0", - "detab": "^2.0.0", - "mdast-util-definitions": "^1.2.0", - "mdurl": "^1.0.1", - "trim-lines": "^1.0.0", - "unist-builder": "^2.0.0", - "unist-util-generated": "^1.0.0", - "unist-util-position": "^3.0.0", - "unist-util-visit": "^2.0.0" - } - }, - "mdast-util-to-nlcst": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/mdast-util-to-nlcst/-/mdast-util-to-nlcst-3.2.3.tgz", - "integrity": "sha512-hPIsgEg7zCvdU6/qvjcR6lCmJeRuIEpZGY5xBV+pqzuMOvQajyyF8b6f24f8k3Rw8u40GwkI3aAxUXr3bB2xag==", - "requires": { - "nlcst-to-string": "^2.0.0", - "repeat-string": "^1.5.2", - "unist-util-position": "^3.0.0", - "vfile-location": "^2.0.0" - } - }, - "mdast-util-to-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-1.1.0.tgz", - "integrity": "sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==" - }, - "mdast-util-toc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-toc/-/mdast-util-toc-3.1.0.tgz", - "integrity": "sha512-Za0hqL1PqWrvxGtA/3NH9D5nhGAUS9grMM4obEAz5+zsk1RIw/vWUchkaoDLNdrwk05A0CSC5eEXng36/1qE5w==", - "requires": { - "github-slugger": "^1.2.1", - "mdast-util-to-string": "^1.0.5", - "unist-util-is": "^2.1.2", - "unist-util-visit": "^1.1.0" - }, - "dependencies": { - "unist-util-is": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-2.1.3.tgz", - "integrity": "sha512-4WbQX2iwfr/+PfM4U3zd2VNXY+dWtZsN1fLnWEi2QQXA4qyDYAZcDMfXUX0Cu6XZUHHAO9q4nyxxLT4Awk1qUA==" - }, - "unist-util-visit": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", - "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", - "requires": { - "unist-util-visit-parents": "^2.0.0" - } - } - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "meant": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/meant/-/meant-1.0.1.tgz", - "integrity": "sha512-UakVLFjKkbbUwNWJ2frVLnnAtbb7D7DsloxRd3s/gDpI8rdv8W5Hp3NaDb+POBI1fQdeussER6NB8vpcRURvlg==" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "dependencies": { - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - } - } - }, - "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==" - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "meow": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", - "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" - }, - "dependencies": { - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "loud-rejection": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", - "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "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==" - }, - "merge2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", - "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "microevent.ts": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", - "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==" - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.43.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", - "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" - }, - "mime-types": { - "version": "2.1.26", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", - "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", - "requires": { - "mime-db": "1.43.0" - } - }, - "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==" - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "requires": { - "dom-walk": "^0.1.0" - } - }, - "mini-css-extract-plugin": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz", - "integrity": "sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw==", - "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - } - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" - }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "requires": { - "is-plain-obj": "^1.0.0" - } - } - } - }, - "mini-svg-data-uri": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.1.3.tgz", - "integrity": "sha512-EeKOmdzekjdPe53/GdxmUpNgDQFkNeSte6XkJmOBt4BfWL6FQ9G9RtLNh+JMjFS3LhdpSICMIkZdznjiecASHQ==" - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "minipass": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", - "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "minizlib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", - "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - } - }, - "mitt": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", - "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==" - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "requires": { - "is-plain-object": "^2.0.4" - } - } - } - }, - "mkdirp": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", - "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", - "requires": { - "minimist": "^1.2.5" - } - }, - "mkdirp-classic": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz", - "integrity": "sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g==" - }, - "moment": { - "version": "2.24.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", - "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" - }, - "moment-timezone": { - "version": "0.5.28", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.28.tgz", - "integrity": "sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw==", - "requires": { - "moment": ">= 2.9.0" - } - }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "mozjpeg": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/mozjpeg/-/mozjpeg-6.0.1.tgz", - "integrity": "sha512-9Z59pJMi8ni+IUvSH5xQwK5tNLw7p3dwDNCZ3o1xE+of3G5Hc/yOz6Ue/YuLiBXU3ZB5oaHPURyPdqfBX/QYJA==", - "requires": { - "bin-build": "^3.0.0", - "bin-wrapper": "^4.0.0", - "logalot": "^2.1.0" - } - }, - "mri": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.5.tgz", - "integrity": "sha512-d2RKzMD4JNyHMbnbWnznPaa8vbdlq/4pNZ3IgdaGrVbBhebBsGUUE/6qorTMYNS6TwuH3ilfOlD2bf4Igh8CKg==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "msgpackr": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.5.7.tgz", - "integrity": "sha512-Hsa80i8W4BiObSMHslfnwC+CC1CYHZzoXJZn0+3EvoCEOgt3c5QlXhdcjgFk2aZxMgpV8aUFZqJyQUCIp4UrzA==", - "dev": true, - "requires": { - "msgpackr-extract": "^1.1.4" - } - }, - "msgpackr-extract": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-1.1.4.tgz", - "integrity": "sha512-WQbHvsThprXh+EqZYy+SQFEs7z6bNM7a0vgirwUfwUcphWGT2mdPcpyLCNiRsN6w5q5VKJUMblHY+tNEyceb9Q==", - "dev": true, - "optional": true, - "requires": { - "msgpackr-extract-darwin-arm64": "1.1.0", - "msgpackr-extract-darwin-x64": "1.1.0", - "msgpackr-extract-linux-arm": "1.1.0", - "msgpackr-extract-linux-arm64": "1.1.0", - "msgpackr-extract-linux-x64": "1.1.0", - "msgpackr-extract-win32-x64": "1.1.0", - "node-gyp-build-optional-packages": "^4.3.2" - } - }, - "msgpackr-extract-darwin-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-1.1.0.tgz", - "integrity": "sha512-s1kHoT12tS2cCQOv+Wl3I+/cYNJXBPtwQqGA+dPYoXmchhXiE0Nso+BIfvQ5PxbmAyjj54Q5o7PnLTqVquNfZA==", - "dev": true, - "optional": true - }, - "msgpackr-extract-darwin-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-1.1.0.tgz", - "integrity": "sha512-yx/H/i12IKg4eWGu/eKdKzJD4jaYvvujQSaVmeOMCesbSQnWo5X6YR9TFjoiNoU9Aexk1KufzL9gW+1DozG1yw==", - "dev": true, - "optional": true - }, - "msgpackr-extract-linux-arm": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-1.1.0.tgz", - "integrity": "sha512-0VvSCqi12xpavxl14gMrauwIzHqHbmSChUijy/uo3mpjB1Pk4vlisKpZsaOZvNJyNKj0ACi5jYtbWnnOd7hYGw==", - "dev": true, - "optional": true - }, - "msgpackr-extract-linux-arm64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-1.1.0.tgz", - "integrity": "sha512-AxFle3fHNwz2V4CYDIGFxI6o/ZuI0lBKg0uHI8EcCMUmDE5mVAUWYge5WXmORVvb8sVWyVgFlmi3MTu4Ve6tNQ==", - "dev": true, - "optional": true - }, - "msgpackr-extract-linux-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-1.1.0.tgz", - "integrity": "sha512-O+XoyNFWpdB8oQL6O/YyzffPpmG5rTNrr1nKLW70HD2ENJUhcITzbV7eZimHPzkn8LAGls1tBaMTHQezTBpFOw==", - "dev": true, - "optional": true - }, - "msgpackr-extract-win32-x64": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-1.1.0.tgz", - "integrity": "sha512-6AJdM5rNsL4yrskRfhujVSPEd6IBpgvsnIT/TPowKNLQ62iIdryizPY2PJNFiW3AJcY249AHEiDBXS1cTDPxzA==", - "dev": true, - "optional": true - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, - "multimatch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", - "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", - "dev": true, - "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "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 - }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true - } - } - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "name-all-modules-plugin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/name-all-modules-plugin/-/name-all-modules-plugin-1.0.1.tgz", - "integrity": "sha1-Cr+2rYNXGLn7Te8GdOBmV6lUN1w=" - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - } - }, - "napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "neo-async": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", - "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==" - }, - "next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "nlcst-to-string": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-2.0.4.tgz", - "integrity": "sha512-3x3jwTd6UPG7vi5k4GEzvxJ5rDA7hVUIRNHPblKuMVP9Z3xmlsd9cgLcpAMkc5uPOBna82EeshROFhsPkbnTZg==" - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "requires": { - "lower-case": "^1.1.1" - } - }, - "node-abi": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.15.0.tgz", - "integrity": "sha512-FeLpTS0F39U7hHZU1srAK4Vx+5AHNVOTP+hxBNQknR/54laTHSFIJkDWDqiquY1LeLUgTfPN7sLPhMubx0PLAg==", - "requires": { - "semver": "^5.4.1" - } - }, - "node-addon-api": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.0.tgz", - "integrity": "sha512-ASCL5U13as7HhOExbT6OlWJJUV/lLzL2voOSP1UVehpRD8FbSrSDjfScK/KwAvVTI5AS6r4VwbOMlIqtvRidnA==" - }, - "node-emoji": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", - "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", - "requires": { - "lodash.toarray": "^4.4.0" - } - }, - "node-eta": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/node-eta/-/node-eta-0.9.0.tgz", - "integrity": "sha1-n7CwmbzSoCGUDmA8ZCVNwAPZp6g=" - }, - "node-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz", - "integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=" - }, - "node-forge": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", - "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==" - }, - "node-gyp": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" - }, - "tar": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } - } - } - }, - "node-gyp-build-optional-packages": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-4.3.2.tgz", - "integrity": "sha512-P5Ep3ISdmwcCkZIaBaQamQtWAG0facC89phWZgi5Z3hBU//J6S48OIvyZWSPPf6yQMklLZiqoosWAZUj7N+esA==", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } - } - }, - "node-object-hash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.0.0.tgz", - "integrity": "sha512-VZR0zroAusy1ETZMZiGeLkdu50LGjG5U1KHZqTruqtTyQ2wfWhHG2Ow4nsUbfTFGlaREgNHcCWoM/OzEm6p+NQ==" - }, - "node-releases": { - "version": "1.1.52", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.52.tgz", - "integrity": "sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ==", - "requires": { - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "node-sass": { - "version": "4.13.1", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz", - "integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==", - "requires": { - "async-foreach": "^0.1.3", - "chalk": "^1.1.1", - "cross-spawn": "^3.0.0", - "gaze": "^1.0.0", - "get-stdin": "^4.0.1", - "glob": "^7.0.3", - "in-publish": "^2.0.0", - "lodash": "^4.17.15", - "meow": "^3.7.0", - "mkdirp": "^0.5.1", - "nan": "^2.13.2", - "node-gyp": "^3.8.0", - "npmlog": "^4.0.0", - "request": "^2.88.0", - "sass-graph": "^2.2.4", - "stdout-stream": "^1.4.0", - "true-case-path": "^1.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cross-spawn": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", - "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "requires": { - "lru-cache": "^4.0.1", - "which": "^1.2.9" - } - }, - "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==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - }, - "true-case-path": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", - "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "requires": { - "glob": "^7.1.2" - } - } - } - }, - "noms": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", - "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "~1.0.31" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" - }, - "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" - }, - "npm-conf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", - "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", - "requires": { - "config-chain": "^1.1.11", - "pify": "^3.0.0" - } - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "requires": { - "path-key": "^2.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "requires": { - "boolbase": "~1.0.0" - } - }, - "null-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-3.0.0.tgz", - "integrity": "sha512-hf5sNLl8xdRho4UPBOOeoIwT3WhjYcMUQm0zj44EhD6UscMAz72o2udpoDFBgykucdEDGIcd6SXbc/G6zssbzw==", - "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-fit-images": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/object-fit-images/-/object-fit-images-3.2.4.tgz", - "integrity": "sha512-G+7LzpYfTfqUyrZlfrou/PLLLAPNC52FTy5y1CBywX+1/FkxIloOyQXBmZ3Zxa2AWO+lMF0JTuvqbr7G5e5CWg==" - }, - "object-hash": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", - "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==" - }, - "object-inspect": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", - "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" - }, - "object-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz", - "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object-path": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.4.tgz", - "integrity": "sha1-NwrnUvvzfePqcKhhwju6iRVpGUk=" - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "requires": { - "isobject": "^3.0.0" - } - }, - "object.assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", - "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", - "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" - } - }, - "object.entries": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", - "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "object.fromentries": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", - "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "requires": { - "isobject": "^3.0.1" - } - }, - "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", - "has": "^1.0.3" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "omggif": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", - "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "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==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "requires": { - "is-wsl": "^1.1.0" - }, - "dependencies": { - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - } - } - }, - "opencollective-postinstall": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz", - "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==", - "dev": true - }, - "opentracing": { - "version": "0.14.4", - "resolved": "https://registry.npmjs.org/opentracing/-/opentracing-0.14.4.tgz", - "integrity": "sha512-nNnZDkUNExBwEpb7LZaeMeQgvrlO8l4bgY/LvGNZCR0xG/dGWqHqjKrAmR5GUoYo0FIz38kxasvA1aevxWs2CA==" - }, - "opn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz", - "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==", - "requires": { - "is-wsl": "^1.1.0" - }, - "dependencies": { - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - } - } - }, - "optimize-css-assets-webpack-plugin": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz", - "integrity": "sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==", - "requires": { - "cssnano": "^4.1.10", - "last-call-webpack-plugin": "^3.0.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "ordered-binary": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.2.5.tgz", - "integrity": "sha512-djRmZoEpOGvIRW7ufsCDHtvcUa18UC9TxnPbHhSVFZHsoyg0dtut1bWtBZ/fmxdPN62oWXrV6adM7NoWU+CneA==", - "dev": true - }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "requires": { - "url-parse": "^1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" - }, - "os-filter-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz", - "integrity": "sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==", - "requires": { - "arch": "^2.1.0" - } - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "dependencies": { - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "requires": { - "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" - } - } - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, - "p-defer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", - "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==" - }, - "p-event": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz", - "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=", - "requires": { - "p-timeout": "^1.1.1" - }, - "dependencies": { - "p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", - "requires": { - "p-finally": "^1.0.0" - } - } - } - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" - }, - "p-limit": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", - "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", - "requires": { - "p-try": "^2.0.0" - } - }, - "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==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-map-series": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz", - "integrity": "sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=", - "requires": { - "p-reduce": "^1.0.0" - } - }, - "p-pipe": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz", - "integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=" - }, - "p-queue": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-5.0.0.tgz", - "integrity": "sha512-6QfeouDf236N+MAxHch0CVIy8o/KBnmhttKjxZoOkUlzqU+u9rZgEyXH3OdckhTgawbqf5rpzmyR+07+Lv0+zg==", - "requires": { - "eventemitter3": "^3.1.0" - }, - "dependencies": { - "eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" - } - } - }, - "p-reduce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", - "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=" - }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "requires": { - "retry": "^0.12.0" - } - }, - "p-timeout": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", - "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", - "requires": { - "p-finally": "^1.0.0" - } - }, - "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==" - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "dependencies": { - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", - "requires": { - "no-case": "^2.2.0" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-asn1": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", - "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", - "requires": { - "asn1.js": "^4.0.0", - "browserify-aes": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-bmfont-ascii": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", - "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" - }, - "parse-bmfont-binary": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", - "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=" - }, - "parse-bmfont-xml": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", - "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", - "requires": { - "xml-parse-from-string": "^1.0.0", - "xml2js": "^0.4.5" - } - }, - "parse-english": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/parse-english/-/parse-english-4.1.3.tgz", - "integrity": "sha512-IQl1v/ik9gw437T8083coohMihae0rozpc7JYC/9h6hi9xKBSxFwh5HWRpzVC2ZhEs2nUlze2aAktpNBJXdJKA==", - "requires": { - "nlcst-to-string": "^2.0.0", - "parse-latin": "^4.0.0", - "unist-util-modify-children": "^1.0.0", - "unist-util-visit-children": "^1.0.0" - } - }, - "parse-entities": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-1.2.2.tgz", - "integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==", - "requires": { - "character-entities": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "character-reference-invalid": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, - "parse-headers": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", - "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" - }, - "parse-json": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", - "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1", - "lines-and-columns": "^1.1.6" - } - }, - "parse-latin": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-4.2.1.tgz", - "integrity": "sha512-7T9g6mIsFFpLlo0Zzb2jLWdCt+H9Qtf/hRmMYFi/Mq6Ovi+YKo+AyDFX3OhFfu0vXX5Nid9FKJGKSSzNcTkWiA==", - "requires": { - "nlcst-to-string": "^2.0.0", - "unist-util-modify-children": "^1.0.0", - "unist-util-visit-children": "^1.0.0" - } - }, - "parse-passwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", - "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" - }, - "parse-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.1.tgz", - "integrity": "sha512-d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA==", - "requires": { - "is-ssh": "^1.3.0", - "protocols": "^1.4.0" - } - }, - "parse-url": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-5.0.1.tgz", - "integrity": "sha512-flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg==", - "requires": { - "is-ssh": "^1.3.0", - "normalize-url": "^3.3.0", - "parse-path": "^4.0.0", - "protocols": "^1.4.0" - } - }, - "parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "requires": { - "better-assert": "~1.0.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", - "requires": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" - }, - "password-prompt": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.2.tgz", - "integrity": "sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==", - "requires": { - "ansi-escapes": "^3.1.0", - "cross-spawn": "^6.0.5" - } - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" - }, - "path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", - "requires": { - "no-case": "^2.2.0" - } - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "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 - }, - "pegjs": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", - "integrity": "sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0=", - "dev": true - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "phin": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", - "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" - }, - "physical-cpu-count": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz", - "integrity": "sha1-GN4vl+S/epVRrXURlCtUlverpmA=" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "requires": { - "pinkie": "^2.0.0" - } - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "pixelmatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", - "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", - "requires": { - "pngjs": "^3.0.0" - } - }, - "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==", - "requires": { - "find-up": "^3.0.0" - } - }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "requires": { - "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - } - } - }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "requires": { - "semver-compare": "^1.0.0" - } - }, - "pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" - }, - "pngquant-bin": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/pngquant-bin/-/pngquant-bin-5.0.2.tgz", - "integrity": "sha512-OLdT+4JZx5BqE1CFJkrvomYV0aSsv6x2Bba+aWaVc0PMfWlE+ZByNKYAdKeIqsM4uvW1HOSEHnf8KcOnykPNxA==", - "requires": { - "bin-build": "^3.0.0", - "bin-wrapper": "^4.0.1", - "execa": "^0.10.0", - "logalot": "^2.0.0" - }, - "dependencies": { - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^3.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" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - } - } - }, - "pnp-webpack-plugin": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", - "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", - "requires": { - "ts-pnp": "^1.1.6" - } - }, - "portfinder": { - "version": "1.0.25", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", - "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.1" - }, - "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" - }, - "postcss": { - "version": "7.0.27", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", - "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", - "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "postcss-calc": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", - "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==", - "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-flexbugs-fixes": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.0.tgz", - "integrity": "sha512-QRE0n3hpkxxS/OGvzOa+PDuy4mh/Jg4o9ui22/ko5iGYOG3M5dfJabjnAZjTdh2G9F85c7Hv8hWcEDEKW/xceQ==", - "requires": { - "postcss": "^7.0.26" - } - }, - "postcss-load-config": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", - "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - }, - "dependencies": { - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - } - }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } - } - }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", - "requires": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "postcss-modules-extract-imports": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", - "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", - "requires": { - "postcss": "^6.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "postcss-modules-local-by-default": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", - "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "postcss-modules-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", - "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", - "requires": { - "css-selector-tokenizer": "^0.7.0", - "postcss": "^6.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "postcss-modules-values": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", - "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", - "requires": { - "icss-replace-symbols": "^1.1.0", - "postcss": "^6.0.1" - }, - "dependencies": { - "postcss": { - "version": "6.0.23", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", - "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", - "requires": { - "chalk": "^2.4.1", - "source-map": "^0.6.1", - "supports-color": "^5.4.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "requires": { - "postcss": "^7.0.0" - } - }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" - }, - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-selector-parser": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", - "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", - "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - }, - "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", - "requires": { - "is-svg": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" - } - } - }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - } - }, - "postcss-value-parser": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz", - "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==" - }, - "potrace": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/potrace/-/potrace-2.1.5.tgz", - "integrity": "sha512-huAWS0flSZttRm+WA5IGSFxHLXgVd9JCGU8+heDD3fAvFmW1Wf1Y7qq3Un2hH2xBNMwDY7vP1PYA0VQUh7CC+Q==", - "requires": { - "jimp": "^0.9.6" - } - }, - "prebuild-install": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.3.tgz", - "integrity": "sha512-GV+nsUXuPW2p8Zy7SarF/2W/oiK8bFQgJcncoJ0d7kRpekEA0ftChjfEaF9/Y+QJEc/wFR7RAEa8lYByuUIe2g==", - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.7.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" - }, - "prettier": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.0.4.tgz", - "integrity": "sha512-SVJIQ51spzFDvh4fIbCLvciiDMCrRhlN3mbZvv/+ycjvmF5E73bKdGfU8QDLNmjYJf+lsGnDBC4UUnvTe5OO0w==", - "dev": true - }, - "pretty-bytes": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz", - "integrity": "sha512-hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==" - }, - "pretty-error": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", - "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", - "requires": { - "renderkid": "^2.0.1", - "utila": "~0.4" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "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 - }, - "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 - }, - "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 - } - } - }, - "pretty-quick": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.1.tgz", - "integrity": "sha512-y7bJt77XadjUr+P1uKqZxFWLddvj3SKY6EU4BuQtMxmmEFSMpbN132pUWdSG1g1mtUfO0noBvn7wBf0BVeomHg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "execa": "^2.1.0", - "find-up": "^4.1.0", - "ignore": "^5.1.4", - "mri": "^1.1.4", - "multimatch": "^4.0.0" - }, - "dependencies": { - "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, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "execa": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", - "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "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, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", - "dev": true - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "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, - "requires": { - "p-locate": "^4.1.0" - } - }, - "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 - }, - "npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true - }, - "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, - "requires": { - "p-limit": "^2.2.0" - } - }, - "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 - }, - "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 - }, - "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, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "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 - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" - }, - "probe-image-size": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-4.1.1.tgz", - "integrity": "sha512-42LqKZqTLxH/UvAZ2/cKhAsR4G/Y6B7i7fI2qtQu9hRBK4YjS6gqO+QRtwTjvojUx4+/+JuOMzLoFyRecT9qRw==", - "requires": { - "any-promise": "^1.3.0", - "deepmerge": "^4.0.0", - "inherits": "^2.0.3", - "next-tick": "^1.0.0", - "request": "^2.83.0", - "stream-parser": "~0.3.1" - } - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" - }, - "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==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "promise-polyfill": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.3.tgz", - "integrity": "sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g==" - }, - "prompts": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", - "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.4" - } - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "proper-lockfile": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz", - "integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==", - "requires": { - "graceful-fs": "^4.2.4", - "retry": "^0.12.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - } - } - }, - "property-information": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.4.0.tgz", - "integrity": "sha512-nmMWAm/3vKFGmmOWOcdLjgq/Hlxa+hsuR/px1Lp/UGEyc5A22A6l78Shc2C0E71sPmAqglni+HrS7L7VJ7AUCA==", - "requires": { - "xtend": "^4.0.0" - } - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" - }, - "protocols": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.7.tgz", - "integrity": "sha512-Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg==" - }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "puppeteer": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-10.4.0.tgz", - "integrity": "sha512-2cP8mBoqnu5gzAVpbZ0fRaobBWZM8GEUF4I1F6WbgHrKV/rz7SX8PG2wMymZgD0wo0UBlg2FBPNxlF/xlqW6+w==", - "dev": true, - "requires": { - "debug": "4.3.1", - "devtools-protocol": "0.0.901419", - "extract-zip": "2.0.1", - "https-proxy-agent": "5.0.0", - "node-fetch": "2.6.1", - "pkg-dir": "4.2.0", - "progress": "2.0.1", - "proxy-from-env": "1.1.0", - "rimraf": "3.0.2", - "tar-fs": "2.0.0", - "unbzip2-stream": "1.3.3", - "ws": "7.4.6" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "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, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "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, - "requires": { - "p-locate": "^4.1.0" - } - }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true - }, - "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, - "requires": { - "p-limit": "^2.2.0" - } - }, - "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 - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "progress": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.1.tgz", - "integrity": "sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg==", - "dev": true - }, - "tar-fs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", - "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp": "^0.5.1", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - } - }, - "unbzip2-stream": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", - "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", - "dev": true, - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - } - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true - } - } - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" - }, - "qs": { - "version": "6.9.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", - "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==" - }, - "query-string": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", - "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", - "requires": { - "decode-uri-component": "^0.2.0", - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" - }, - "querystringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", - "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==" - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true - }, - "ramda": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.21.0.tgz", - "integrity": "sha1-oAGr7bP/YQd9T/HVd9RN536NCjU=" - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "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==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - } - } - }, - "raw-loader": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", - "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=" - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - } - } - }, - "react": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", - "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - }, - "react-add-to-calendar": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/react-add-to-calendar/-/react-add-to-calendar-0.1.5.tgz", - "integrity": "sha512-DI+q3vvHCiYhxgh+83sg9UrPD9sdyBYcuY77UMcfX3y1MUPMW+f/w/6EG0MZg7B07vLQ4R6nxqk6wtMtcXOicA==", - "requires": { - "moment": "^2.18.1" - } - }, - "react-add-to-calendar-hoc": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/react-add-to-calendar-hoc/-/react-add-to-calendar-hoc-1.0.9.tgz", - "integrity": "sha512-O9XF5TIcmqvMqnLZDd/4ydQhlc+wnso8822FpREtYsmI9uGTF+268Cj5bzMbNcBxJGa6RBIVp8Irvz9KyyBY4A==", - "requires": { - "core-js": "^2.5.7", - "prop-types": "^15.6.2" - }, - "dependencies": { - "core-js": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", - "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" - } - } - }, - "react-alice-carousel": { - "version": "1.17.3", - "resolved": "https://registry.npmjs.org/react-alice-carousel/-/react-alice-carousel-1.17.3.tgz", - "integrity": "sha512-b+ODgT//GTUORlkN01H5NFj3jugR0unwbCBBOgOibg2bkhJglmuADyXzEoQlCBSkIRJjs4PqCNUbpwdzaHcG5w==", - "requires": { - "prop-types": "^15.5.10", - "vanilla-swipe": "^1.0.0" - } - }, - "react-dev-utils": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-4.2.3.tgz", - "integrity": "sha512-uvmkwl5uMexCmC0GUv1XGQP0YjfYePJufGg4YYiukhqk2vN1tQxwWJIBERqhOmSi80cppZg8mZnPP/kOMf1sUQ==", - "requires": { - "address": "1.0.3", - "babel-code-frame": "6.26.0", - "chalk": "1.1.3", - "cross-spawn": "5.1.0", - "detect-port-alt": "1.1.3", - "escape-string-regexp": "1.0.5", - "filesize": "3.5.11", - "global-modules": "1.0.0", - "gzip-size": "3.0.0", - "inquirer": "3.3.0", - "is-root": "1.0.0", - "opn": "5.1.0", - "react-error-overlay": "^3.0.0", - "recursive-readdir": "2.2.1", - "shell-quote": "1.6.1", - "sockjs-client": "1.1.4", - "strip-ansi": "3.0.1", - "text-table": "0.2.0" - }, - "dependencies": { - "address": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz", - "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==" - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=" - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "detect-port-alt": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.3.tgz", - "integrity": "sha1-pNLwYddXoDTs83xRQmCph1DysTE=", - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - } - }, - "eventsource": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", - "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", - "requires": { - "original": ">=0.0.5" - } - }, - "external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - } - }, - "filesize": { - "version": "3.5.11", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.5.11.tgz", - "integrity": "sha512-ZH7loueKBoDb7yG9esn1U+fgq7BzlzW6NRi5/rMdxIZ05dj7GFD/Xc5rq2CDt5Yq86CyfSYVyx4242QQNZbx1g==" - }, - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - }, - "gzip-size": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-3.0.0.tgz", - "integrity": "sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA=", - "requires": { - "duplexer": "^0.1.1" - } - }, - "inquirer": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", - "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", - "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "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==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "is-root": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-1.0.0.tgz", - "integrity": "sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU=" - }, - "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==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", - "requires": { - "brace-expansion": "^1.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "recursive-readdir": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.1.tgz", - "integrity": "sha1-kO8jHQd4xc4JPJpI105cVCLROpk=", - "requires": { - "minimatch": "3.0.3" - } - }, - "shell-quote": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", - "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", - "requires": { - "array-filter": "~0.0.0", - "array-map": "~0.0.0", - "array-reduce": "~0.0.0", - "jsonify": "~0.0.0" - } - }, - "sockjs-client": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz", - "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", - "requires": { - "debug": "^2.6.6", - "eventsource": "0.1.6", - "faye-websocket": "~0.11.0", - "inherits": "^2.0.1", - "json3": "^3.3.2", - "url-parse": "^1.1.8" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "react-dom": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", - "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - }, - "dependencies": { - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } - } - }, - "react-error-overlay": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-3.0.0.tgz", - "integrity": "sha512-XzgvowFrwDo6TWcpJ/WTiarb9UI6lhA4PMzS7n1joK3sHfBBBOQHUc0U4u57D6DWO9vHv6lVSWx2Q/Ymfyv4hw==" - }, - "react-fast-compare": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", - "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" - }, - "react-helmet": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/react-helmet/-/react-helmet-5.2.1.tgz", - "integrity": "sha512-CnwD822LU8NDBnjCpZ4ySh8L6HYyngViTZLfBBb3NjtrpN8m49clH8hidHouq20I51Y6TpCTISCBbqiY5GamwA==", - "requires": { - "object-assign": "^4.1.1", - "prop-types": "^15.5.4", - "react-fast-compare": "^2.0.2", - "react-side-effect": "^1.1.0" - } - }, - "react-hot-loader": { - "version": "4.12.20", - "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.20.tgz", - "integrity": "sha512-lPlv1HVizi0lsi+UFACBJaydtRYILWkfHAC/lyCs6ZlAxlOZRQIfYHDqiGaRvL/GF7zyti+Qn9XpnDAUvdFA4A==", - "requires": { - "fast-levenshtein": "^2.0.6", - "global": "^4.3.0", - "hoist-non-react-statics": "^3.3.0", - "loader-utils": "^1.1.0", - "prop-types": "^15.6.1", - "react-lifecycles-compat": "^3.0.4", - "shallowequal": "^1.1.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "react-instantsearch-core": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/react-instantsearch-core/-/react-instantsearch-core-6.12.1.tgz", - "integrity": "sha512-X4OqakDI3DOcFiS1S46z+cciKEQcKBmH8HGQLztzW14hoHRqFfZzuqWydlSxfJZN5WksMMm78EmL2jvoqIHd/A==", - "requires": { - "@babel/runtime": "^7.1.2", - "algoliasearch-helper": "^3.5.3", - "prop-types": "^15.6.2", - "react-fast-compare": "^3.0.0" - }, - "dependencies": { - "react-fast-compare": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" - } - } - }, - "react-instantsearch-dom": { - "version": "6.12.1", - "resolved": "https://registry.npmjs.org/react-instantsearch-dom/-/react-instantsearch-dom-6.12.1.tgz", - "integrity": "sha512-KXk2UDmJ3OP9B57owPC0+7fdcVtmYAA6/UWimR9CXhvFGCMi11xlR/wscYMYxdPuxs9IkmnnLDIJSjSGADYnow==", - "requires": { - "@babel/runtime": "^7.1.2", - "algoliasearch-helper": "^3.5.3", - "classnames": "^2.2.5", - "prop-types": "^15.6.2", - "react-fast-compare": "^3.0.0", - "react-instantsearch-core": "^6.12.1" - }, - "dependencies": { - "react-fast-compare": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" - } - } - }, - "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==" - }, - "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "react-modal": { - "version": "3.11.2", - "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.11.2.tgz", - "integrity": "sha512-o8gvvCOFaG1T7W6JUvsYjRjMVToLZgLIsi5kdhFIQCtHxDkA47LznX62j+l6YQkpXDbvQegsDyxe/+JJsFQN7w==", - "requires": { - "exenv": "^1.2.0", - "prop-types": "^15.5.10", - "react-lifecycles-compat": "^3.0.0", - "warning": "^4.0.3" - } - }, - "react-player": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/react-player/-/react-player-2.9.0.tgz", - "integrity": "sha512-jNUkTfMmUhwPPAktAdIqiBcVUKsFKrVGH6Ocutj6535CNfM91yrvWxHg6fvIX8Y/fjYUPoejddwh7qboNV9vGA==", - "requires": { - "deepmerge": "^4.0.0", - "load-script": "^1.0.0", - "memoize-one": "^5.1.1", - "prop-types": "^15.7.2", - "react-fast-compare": "^3.0.1" - }, - "dependencies": { - "react-fast-compare": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", - "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" - } - } - }, - "react-reconciler": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.24.0.tgz", - "integrity": "sha512-gAGnwWkf+NOTig9oOowqid9O0HjTDC+XVGBCAmJYYJ2A2cN/O4gDdIuuUQjv8A4v6GDwVfJkagpBBLW5OW9HSw==", - "optional": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.18.0" - } - }, - "react-refresh": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.7.2.tgz", - "integrity": "sha512-u5l7fhAJXecWUJzVxzMRU2Zvw8m4QmDNHlTrT5uo3KBlYBhmChd7syAakBoay1yIiVhx/8Fi7a6v6kQZfsw81Q==" - }, - "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, - "requires": { - "object-assign": "^4.1.1", - "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" - } - }, - "react-share": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/react-share/-/react-share-3.0.1.tgz", - "integrity": "sha512-xo4zjYP78h6zrBN5rlC06bb877js7216KFeZELAZP6sYxVoqmU27ChrfnpKUCL9H8F5PwYXh6DLNdAp+0E17GA==", - "requires": { - "babel-runtime": "^6.26.0", - "classnames": "^2.2.5", - "jsonp": "^0.2.1", - "prop-types": "^15.5.8" - } - }, - "react-side-effect": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-1.2.0.tgz", - "integrity": "sha512-v1ht1aHg5k/thv56DRcjw+WtojuuDHFUgGfc+bFHOWsF4ZK6C2V57DO0Or0GPsg6+LSTE0M6Ry/gfzhzSwbc5w==", - "requires": { - "shallowequal": "^1.0.1" - } - }, - "react-test-renderer": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz", - "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "react-is": "^17.0.2", - "react-shallow-renderer": "^16.13.1", - "scheduler": "^0.20.2" - }, - "dependencies": { - "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 - }, - "scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "dev": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - } - } - }, - "reactjs-popup": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/reactjs-popup/-/reactjs-popup-1.5.0.tgz", - "integrity": "sha512-9uoxUAcUomnNoBtdYXBmgsF4w46llsogE3tOvLb5IkR5MMrD6UZJK20ip9kDKXCYubSxNkdfQKqSb/c95rf/qA==" - }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=", - "requires": { - "mute-stream": "~0.0.4" - } - }, - "read-chunk": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", - "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", - "requires": { - "pify": "^4.0.1", - "with-open-file": "^0.1.6" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "dependencies": { - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" - } - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "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" - } - }, - "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, - "requires": { - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "requires": { - "minimatch": "3.0.4" - } - }, - "redent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", - "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" - }, - "dependencies": { - "indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "requires": { - "repeating": "^2.0.0" - } - } - } - }, - "redux": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", - "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", - "requires": { - "loose-envify": "^1.4.0", - "symbol-observable": "^1.2.0" - } - }, - "redux-thunk": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz", - "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw==" - }, - "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" - }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "requires": { - "regenerate": "^1.4.0" - } - }, - "regenerator-runtime": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", - "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==" - }, - "regenerator-transform": { - "version": "0.14.4", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz", - "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==", - "requires": { - "@babel/runtime": "^7.8.4", - "private": "^0.1.8" - } - }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", - "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" - } - }, - "regexpp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz", - "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==" - }, - "regexpu-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", - "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } - }, - "registry-auth-token": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", - "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", - "requires": { - "rc": "^1.2.8" - } - }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "requires": { - "rc": "^1.2.8" - } - }, - "regjsgen": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz", - "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==" - }, - "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" - } - } - }, - "remark": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz", - "integrity": "sha512-E6lMuoLIy2TyiokHprMjcWNJ5UxfGQjaMSMhV+f4idM625UjjK4j798+gPs5mfjzDE6vL0oFKVeZM6gZVSVrzQ==", - "requires": { - "remark-parse": "^6.0.0", - "remark-stringify": "^6.0.0", - "unified": "^7.0.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "remark-parse": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-6.0.3.tgz", - "integrity": "sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==", - "requires": { - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^1.1.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^1.0.0", - "vfile-location": "^2.0.0", - "xtend": "^4.0.1" - } - }, - "unified": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-7.1.0.tgz", - "integrity": "sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==", - "requires": { - "@types/unist": "^2.0.0", - "@types/vfile": "^3.0.0", - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^1.1.0", - "trough": "^1.0.0", - "vfile": "^3.0.0", - "x-is-string": "^0.1.0" - } - }, - "unist-util-stringify-position": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", - "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==" - }, - "vfile": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz", - "integrity": "sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==", - "requires": { - "is-buffer": "^2.0.0", - "replace-ext": "1.0.0", - "unist-util-stringify-position": "^1.0.0", - "vfile-message": "^1.0.0" - } - }, - "vfile-message": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", - "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", - "requires": { - "unist-util-stringify-position": "^1.1.1" - } - } - } - }, - "remark-mdx": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.5.7.tgz", - "integrity": "sha512-f13ot+zaByDXYuOC4FWTpQCGP/rNbaxdhs2mLlW7ZBipm3JYR2ASFSL7RC3R7ytzm3n8v6hhcFxDKU+CwC2f4g==", - "requires": { - "@babel/core": "7.8.4", - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-proposal-object-rest-spread": "7.8.3", - "@babel/plugin-syntax-jsx": "7.8.3", - "@mdx-js/util": "^1.5.7", - "is-alphabetical": "1.0.4", - "remark-parse": "7.0.2", - "unified": "8.4.2" - } - }, - "remark-parse": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-7.0.2.tgz", - "integrity": "sha512-9+my0lQS80IQkYXsMA8Sg6m9QfXYJBnXjWYN5U+kFc5/n69t+XZVXU/ZBYr3cYH8FheEGf1v87rkFDhJ8bVgMA==", - "requires": { - "collapse-white-space": "^1.0.2", - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "is-word-character": "^1.0.0", - "markdown-escapes": "^1.0.0", - "parse-entities": "^1.1.0", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "trim": "0.0.1", - "trim-trailing-lines": "^1.0.0", - "unherit": "^1.0.4", - "unist-util-remove-position": "^1.0.0", - "vfile-location": "^2.0.0", - "xtend": "^4.0.1" - } - }, - "remark-retext": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/remark-retext/-/remark-retext-3.1.3.tgz", - "integrity": "sha512-UujXAm28u4lnUvtOZQFYfRIhxX+auKI9PuA2QpQVTT7gYk1OgX6o0OUrSo1KOa6GNrFX+OODOtS5PWIHPxM7qw==", - "requires": { - "mdast-util-to-nlcst": "^3.2.0" - } - }, - "remark-squeeze-paragraphs": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-3.0.4.tgz", - "integrity": "sha512-Wmz5Yj9q+W1oryo8BV17JrOXZgUKVcpJ2ApE2pwnoHwhFKSk4Wp2PmFNbmJMgYSqAdFwfkoe+TSYop5Fy8wMgA==", - "requires": { - "mdast-squeeze-paragraphs": "^3.0.0" - } - }, - "remark-stringify": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-6.0.4.tgz", - "integrity": "sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==", - "requires": { - "ccount": "^1.0.0", - "is-alphanumeric": "^1.0.0", - "is-decimal": "^1.0.0", - "is-whitespace-character": "^1.0.0", - "longest-streak": "^2.0.1", - "markdown-escapes": "^1.0.0", - "markdown-table": "^1.1.0", - "mdast-util-compact": "^1.0.0", - "parse-entities": "^1.0.2", - "repeat-string": "^1.5.4", - "state-toggle": "^1.0.0", - "stringify-entities": "^1.0.1", - "unherit": "^1.0.4", - "xtend": "^4.0.1" - } - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" - }, - "renderkid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", - "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", - "requires": { - "css-select": "^1.1.0", - "dom-converter": "^0.2", - "htmlparser2": "^3.3.0", - "strip-ansi": "^3.0.0", - "utila": "^0.4.0" - } - }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" - }, - "repeating": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "requires": { - "is-finite": "^1.0.0" - } - }, - "replace-ext": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", - "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "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" - }, - "dependencies": { - "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==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-like": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", - "integrity": "sha1-rW8wwTvs15cBDEaK+ndcDAprR/o=" - }, - "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==" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", - "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", - "requires": { - "path-parse": "^1.0.6" - } - }, - "resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true - }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "requires": { - "resolve-from": "^3.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" - } - } - }, - "resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", - "requires": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - } - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" - }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" - }, - "retext-english": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/retext-english/-/retext-english-3.0.4.tgz", - "integrity": "sha512-yr1PgaBDde+25aJXrnt3p1jvT8FVLVat2Bx8XeAWX13KXo8OT+3nWGU3HWxM4YFJvmfqvJYJZG2d7xxaO774gw==", - "requires": { - "parse-english": "^4.0.0", - "unherit": "^1.0.4" - } - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "rss": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/rss/-/rss-1.2.2.tgz", - "integrity": "sha1-UKFpiHYTgTOnT5oF0r3I240nqSE=", - "requires": { - "mime-types": "2.1.13", - "xml": "1.0.1" - }, - "dependencies": { - "mime-db": { - "version": "1.25.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.25.0.tgz", - "integrity": "sha1-wY29fHOl2/b0SgJNwNFloeexw5I=" - }, - "mime-types": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.13.tgz", - "integrity": "sha1-4HqqnGxrmnyjASxpADrSWjnpKog=", - "requires": { - "mime-db": "~1.25.0" - } - } - } - }, - "rss-parser": { - "version": "3.7.6", - "resolved": "https://registry.npmjs.org/rss-parser/-/rss-parser-3.7.6.tgz", - "integrity": "sha512-wWWh3/pPLAPgWyfkCC9jB83jSBenU6VPMymfXiysi8wJxaN7KNkW4vU3Jm8jQxExAribFvXREy+RtaL3XQubeA==", - "dev": true, - "requires": { - "entities": "^1.1.1", - "xml2js": "^0.4.19" - }, - "dependencies": { - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true - } - } - }, - "run-async": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", - "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", - "requires": { - "is-promise": "^2.1.0" - } - }, - "run-parallel": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", - "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "requires": { - "aproba": "^1.1.1" - } - }, - "rx": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=" - }, - "rx-lite": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", - "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=" - }, - "rx-lite-aggregates": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", - "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", - "requires": { - "rx-lite": "*" - } - }, - "rxjs": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", - "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", - "requires": { - "tslib": "^1.9.0" - } - }, - "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==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "requires": { - "ret": "~0.1.10" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", - "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^7.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "requires": { - "invert-kv": "^1.0.0" - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "requires": { - "lcid": "^1.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "requires": { - "error-ex": "^1.2.0" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - } - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - } - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "requires": { - "is-utf8": "^0.2.0" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" - }, - "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" - } - }, - "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "requires": { - "camelcase": "^3.0.0" - } - } - } - }, - "sass-loader": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.3.1.tgz", - "integrity": "sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA==", - "requires": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.0.1", - "neo-async": "^2.5.0", - "pify": "^4.0.1", - "semver": "^6.3.0" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "scheduler": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.18.0.tgz", - "integrity": "sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==", - "optional": true, - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz", - "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==", - "requires": { - "ajv": "^6.12.0", - "ajv-keywords": "^3.4.1" - } - }, - "scroll-behavior": { - "version": "0.9.12", - "resolved": "https://registry.npmjs.org/scroll-behavior/-/scroll-behavior-0.9.12.tgz", - "integrity": "sha512-18sirtyq1P/VsBX6O/vgw20Np+ngduFXEMO4/NDFXabdOKBL2kjPVUpz1y0+jm99EWwFJafxf5/tCyMeXt9Xyg==", - "requires": { - "dom-helpers": "^3.4.0", - "invariant": "^2.2.4" - } - }, - "scss-tokenizer": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", - "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "requires": { - "js-base64": "^2.1.8", - "source-map": "^0.4.2" - }, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, - "section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "requires": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "seek-bzip": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", - "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", - "requires": { - "commander": "~2.8.1" - }, - "dependencies": { - "commander": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", - "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", - "requires": { - "graceful-readlink": ">= 1.0.0" - } - } - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "selfsigned": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", - "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", - "requires": { - "node-forge": "0.9.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", - "dev": true - }, - "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", - "requires": { - "semver": "^5.0.3" - } - }, - "semver-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", - "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==" - }, - "semver-truncate": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz", - "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=", - "requires": { - "semver": "^5.3.0" - } - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", - "requires": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" - } - }, - "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==" - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "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==", - "requires": { - "kind-of": "^6.0.2" - } - }, - "shallow-compare": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/shallow-compare/-/shallow-compare-1.2.2.tgz", - "integrity": "sha512-LUMFi+RppPlrHzbqmFnINTrazo0lPNwhcgzuAXVVcfy/mqPDrQmHAyz5bvV0gDAuRFrk804V0HpQ6u9sZ0tBeg==" - }, - "shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" - }, - "sharp": { - "version": "0.25.2", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.25.2.tgz", - "integrity": "sha512-l1GN0kFNtJr3U9i9pt7a+vo2Ij0xv4tTKDIPx8W6G9WELhPwrMyZZJKAAQNBSI785XB4uZfS5Wpz8C9jWV4AFQ==", - "requires": { - "color": "^3.1.2", - "detect-libc": "^1.0.3", - "node-addon-api": "^2.0.0", - "npmlog": "^4.1.2", - "prebuild-install": "^5.3.3", - "semver": "^7.1.3", - "simple-get": "^3.1.0", - "tar": "^6.0.1", - "tunnel-agent": "^0.6.0" - }, - "dependencies": { - "semver": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", - "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==" - } - } - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" - }, - "showdown": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/showdown/-/showdown-1.9.1.tgz", - "integrity": "sha512-9cGuS382HcvExtf5AHk7Cb4pAeQQ+h0eTr33V1mu+crYWV4KvWAw6el92bDrqGEk5d46Ai/fhbEUwqJ/mTCNEA==", - "dev": true, - "requires": { - "yargs": "^14.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "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, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "yargs": { - "version": "14.2.3", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", - "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.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": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^15.0.1" - } - }, - "yargs-parser": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", - "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "side-channel": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz", - "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==", - "requires": { - "es-abstract": "^1.17.0-next.1", - "object-inspect": "^1.7.0" - } - }, - "sift": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/sift/-/sift-5.1.0.tgz", - "integrity": "sha1-G78t+w63HlbEzH+1Z/vRNRtlAV4=" - }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "simple-concat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz", - "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" - }, - "simple-get": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - }, - "dependencies": { - "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "requires": { - "mimic-response": "^2.0.0" - } - }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" - } - } - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - } - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "sitemap": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-1.13.0.tgz", - "integrity": "sha1-Vpy+IYAgKSamKiZs094Jyc60P4M=", - "requires": { - "underscore": "^1.7.0", - "url-join": "^1.1.0" - }, - "dependencies": { - "url-join": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-1.1.0.tgz", - "integrity": "sha1-dBxsL0WWxIMNZxhGCSDQySIC3Hg=" - } - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, - "slugify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.4.0.tgz", - "integrity": "sha512-FtLNsMGBSRB/0JOE2A0fxlqjI6fJsgHGS13iTuVT28kViI4JjUiNqp/vyis0ZXYcMnpR3fzGNkv+6vRlI2GwdQ==" - }, - "snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", - "requires": { - "no-case": "^2.2.0" - } - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "socket.io": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", - "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", - "requires": { - "debug": "~4.1.0", - "engine.io": "~3.4.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.3.0", - "socket.io-parser": "~3.4.0" - } - }, - "socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==" - }, - "socket.io-client": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", - "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "engine.io-client": "~3.4.0", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.3.0", - "to-array": "0.1.4" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "socket.io-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.0.tgz", - "integrity": "sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng==", - "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - } - } - } - } - }, - "socket.io-parser": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.0.tgz", - "integrity": "sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ==", - "requires": { - "component-emitter": "1.2.1", - "debug": "~4.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" - }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=" - } - } - }, - "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" - }, - "dependencies": { - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "requires": { - "websocket-driver": ">=0.5.1" - } - } - } - }, - "sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", - "requires": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", - "requires": { - "is-plain-obj": "^1.0.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - } - } - }, - "sort-keys-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", - "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", - "requires": { - "sort-keys": "^1.0.0" - }, - "dependencies": { - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" - }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "requires": { - "is-plain-obj": "^1.0.0" - } - } - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" - }, - "space-separated-tokens": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", - "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" - }, - "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==" - }, - "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", - "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==" - }, - "spdy": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz", - "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==", - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" - }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "squeak": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", - "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=", - "requires": { - "chalk": "^1.0.0", - "console-stream": "^0.1.1", - "lpad-align": "^1.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "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" - }, - "dependencies": { - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - } - } - }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "requires": { - "figgy-pudding": "^3.5.1" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=" - }, - "stack-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", - "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==" - }, - "stackframe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.1.1.tgz", - "integrity": "sha512-0PlYhdKh6AfFxRyK/v+6/k+/mMfyiEBbTM5L94D0ZytQnJ166wuwoTYLHFWGbs2dpA8Rgq763KGWmN1EQEYHRQ==" - }, - "state-toggle": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", - "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" - }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "static-site-generator-webpack-plugin": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-3.4.2.tgz", - "integrity": "sha512-39Kn+fZDVjolLYuX5y1rDvksJIW0QEUaEC/AVO/UewNXxGzoSQI1UYnRsL+ocAcN5Yti6d6rJgEL0qZ5tNXfdw==", - "requires": { - "bluebird": "^3.0.5", - "cheerio": "^0.22.0", - "eval": "^0.1.0", - "url": "^0.11.0", - "webpack-sources": "^0.2.0" - }, - "dependencies": { - "source-list-map": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-1.1.2.tgz", - "integrity": "sha1-mIkBnRAkzOVc3AaUmDN+9hhqEaE=" - }, - "webpack-sources": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.2.3.tgz", - "integrity": "sha1-F8Yr+vE8cH+dAsR54Nzd6DgGl/s=", - "requires": { - "source-list-map": "^1.1.1", - "source-map": "~0.5.3" - } - } - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "stdout-stream": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", - "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "requires": { - "readable-stream": "^2.0.1" - } - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "stream-parser": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz", - "integrity": "sha1-FhhUhpRCACGhGC/wrxkRwSl2F3M=", - "requires": { - "debug": "2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" - }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" - }, - "string-length": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", - "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", - "optional": true, - "requires": { - "astral-regex": "^1.0.0", - "strip-ansi": "^5.2.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "optional": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "optional": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "string-similarity": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/string-similarity/-/string-similarity-1.2.2.tgz", - "integrity": "sha512-IoHUjcw3Srl8nsPlW04U3qwWPk3oG2ffLM0tN853d/E/JlIvcmZmDY2Kz5HzKp4lEi2T7QD7Zuvjq/1rDw+XcQ==", - "requires": { - "lodash.every": "^4.6.0", - "lodash.flattendeep": "^4.4.0", - "lodash.foreach": "^4.5.0", - "lodash.map": "^4.6.0", - "lodash.maxby": "^4.6.0" - } - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "string.prototype.matchall": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz", - "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.0", - "has-symbols": "^1.0.1", - "internal-slot": "^1.0.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.2" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimleft": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", - "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimright": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", - "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", - "requires": { - "define-properties": "^1.1.3", - "function-bind": "^1.1.1" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "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==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "stringify-entities": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-1.3.2.tgz", - "integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==", - "requires": { - "character-entities-html4": "^1.0.0", - "character-entities-legacy": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-hexadecimal": "^1.0.0" - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "dependencies": { - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - } - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" - }, - "strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=" - }, - "strip-comments": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz", - "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==", - "requires": { - "babel-extract-comments": "^1.0.0", - "babel-plugin-transform-object-rest-spread": "^6.26.0" - } - }, - "strip-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", - "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", - "requires": { - "is-natural-number": "^4.0.1" - } - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" - }, - "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==" - }, - "strip-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", - "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "requires": { - "get-stdin": "^4.0.1" - } - }, - "strip-json-comments": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", - "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==" - }, - "strip-outer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", - "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", - "requires": { - "escape-string-regexp": "^1.0.2" - } - }, - "strtok3": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", - "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", - "dev": true, - "requires": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.1.0" - } - }, - "style-loader": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", - "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", - "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "style-to-object": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", - "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", - "requires": { - "inline-style-parser": "0.1.1" - } - }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - } - } - } - }, - "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==" - }, - "superagent": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz", - "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==", - "requires": { - "component-emitter": "^1.2.0", - "cookiejar": "^2.1.0", - "debug": "^3.1.0", - "extend": "^3.0.0", - "form-data": "^2.3.1", - "formidable": "^1.2.0", - "methods": "^1.1.1", - "mime": "^1.4.1", - "qs": "^6.5.1", - "readable-stream": "^2.3.5" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "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 - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "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 - }, - "svg-react-loader": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/svg-react-loader/-/svg-react-loader-0.4.6.tgz", - "integrity": "sha512-HVEypjWQsQuJdBIPzXGxpmQsQts7QwfQuYgK1rah6BVCMoLNSCh/ESKVNd7/tHq8DkWYHHTyaUMDA1FjqZYrgA==", - "requires": { - "css": "2.2.4", - "loader-utils": "1.1.0", - "ramda": "0.21.0", - "rx": "4.1.0", - "traverse": "0.6.6", - "xml2js": "0.4.17" - }, - "dependencies": { - "big.js": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - } - } - } - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "dependencies": { - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-what": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz", - "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==" - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - } - } - }, - "swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", - "requires": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - }, - "tar": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", - "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", - "requires": { - "chownr": "^1.1.3", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.0", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", - "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "tar-fs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz", - "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==", - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - } - }, - "tar-stream": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz", - "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==", - "requires": { - "bl": "^4.0.1", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "temp-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", - "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=" - }, - "tempfile": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz", - "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=", - "requires": { - "temp-dir": "^1.0.0", - "uuid": "^3.0.1" - } - }, - "term-size": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", - "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==" - }, - "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, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "dependencies": { - "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, - "requires": { - "type-fest": "^0.21.3" - } - }, - "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 - } - } - }, - "terser": { - "version": "4.6.7", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.7.tgz", - "integrity": "sha512-fmr7M1f7DBly5cX2+rFDvmGBAaaZyPrHYK4mMdHEDAdNTqXSZgSOfqsfGq2HqPGT/1V0foZZuCZFx8CHKgAk3g==", - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "terser-webpack-plugin": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", - "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", - "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^2.1.2", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "dependencies": { - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" - }, - "timers-browserify": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", - "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", - "requires": { - "setimmediate": "^1.0.4" - } - }, - "timm": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/timm/-/timm-1.6.2.tgz", - "integrity": "sha512-IH3DYDL1wMUwmIlVmMrmesw5lZD6N+ZOAFWEyLrtpoL9Bcrs9u7M/vyOnHzDD2SMs4irLkVjqxZbHrXStS/Nmw==" - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" - }, - "tinycolor2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", - "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" - }, - "title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=" - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" - }, - "to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "token-types": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.0.tgz", - "integrity": "sha512-P0rrp4wUpefLncNamWIef62J0v0kQR/GfDVji9WKY7GDCWy5YbVSrKUTam07iWPZQGy0zWNOfstYTykMmPNR7w==", - "dev": true, - "requires": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - }, - "dependencies": { - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - } - } - }, - "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==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "traverse": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", - "integrity": "sha1-y99WD9e5r2MlAv7UD5GMFX6pcTc=" - }, - "trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" - }, - "trim-lines": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-1.1.3.tgz", - "integrity": "sha512-E0ZosSWYK2mkSu+KEtQ9/KqarVjA9HztOSX+9FDdNacRAq29RRV6ZQNgob3iuW8Htar9vAfEa6yyt5qBAHZDBA==" - }, - "trim-newlines": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" - }, - "trim-repeated": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", - "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", - "requires": { - "escape-string-regexp": "^1.0.2" - } - }, - "trim-trailing-lines": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz", - "integrity": "sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA==" - }, - "trough": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", - "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" - }, - "true-case-path": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", - "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==" - }, - "ts-invariant": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz", - "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==", - "requires": { - "tslib": "^1.9.3" - } - }, - "ts-pnp": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.1.6.tgz", - "integrity": "sha512-CrG5GqAAzMT7144Cl+UIFP7mz/iIhiy+xQ6GGcnjTezhALT02uPMRw7tgDSESgB5MsfKt55+GPWw4ir1kVtMIQ==" - }, - "tslib": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", - "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==" - }, - "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", - "requires": { - "tslib": "^1.8.1" - } - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "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 - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "type-of": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/type-of/-/type-of-2.0.1.tgz", - "integrity": "sha1-5yoXQYllaOn2KDeNgW1pEvfyOXI=" - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typeface-lato": { - "version": "0.0.75", - "resolved": "https://registry.npmjs.org/typeface-lato/-/typeface-lato-0.0.75.tgz", - "integrity": "sha512-iA5uJD4PSTyIE4BDiSOexQeXkDkiJuX4Hu3wh3saJ06EB2TvJayab1Lbbmqq2je/LQv7KCQZHZmC0k4hedd8sw==" - }, - "typeface-open-sans": { - "version": "0.0.75", - "resolved": "https://registry.npmjs.org/typeface-open-sans/-/typeface-open-sans-0.0.75.tgz", - "integrity": "sha512-0lLmB7pfj113OP4T78SbpSmC4OCdFQ0vUxdSXQccsSb6qF76F92iEuC/DghFgmPswTyidk8+Hwf+PS/htiJoRQ==" - }, - "typeface-roboto": { - "version": "0.0.75", - "resolved": "https://registry.npmjs.org/typeface-roboto/-/typeface-roboto-0.0.75.tgz", - "integrity": "sha512-VrR/IiH00Z1tFP4vDGfwZ1esNqTiDMchBEXYY9kilT6wRGgFoCAlgkEUMHb1E3mB0FsfZhv756IF0+R+SFPfdg==" - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "dependencies": { - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - } - } - }, - "unbzip2-stream": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.0.tgz", - "integrity": "sha512-kVx7CDAsdBSWVf404Mw7oI9i09w5/mTT/Ruk+RWa64PLYKvsAucLLFHvQtnvjeADM4ZizxrvG5SHnF4Te4T2Cg==", - "requires": { - "buffer": "^5.2.1", - "through": "^2.3.8" - }, - "dependencies": { - "buffer": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.5.0.tgz", - "integrity": "sha512-9FTEDjLjwoAkEwyMGDjYJQN2gfRgOKBKRfiglhvibGbpeeU/pQn1bJxQqm32OD/AIeEuHxU9roxXxg34Byp/Ww==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - } - } - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" - }, - "underscore": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz", - "integrity": "sha512-N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==" - }, - "underscore.string": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz", - "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==", - "requires": { - "sprintf-js": "^1.0.3", - "util-deprecate": "^1.0.2" - } - }, - "unfetch": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.1.0.tgz", - "integrity": "sha512-crP/n3eAPUJxZXM9T80/yv0YhkTEx2K1D3h7D1AJM6fzsWZrxdyRuLN0JH/dkZh1LNH8LxCnBzoPFCPbb2iGpg==" - }, - "unherit": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", - "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", - "requires": { - "inherits": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" - }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" - }, - "unified": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz", - "integrity": "sha512-JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==", - "requires": { - "bail": "^1.0.0", - "extend": "^3.0.0", - "is-plain-obj": "^2.0.0", - "trough": "^1.0.0", - "vfile": "^4.0.0" - } - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "unist-builder": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", - "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==" - }, - "unist-util-generated": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.5.tgz", - "integrity": "sha512-1TC+NxQa4N9pNdayCYA1EGUOCAO0Le3fVp7Jzns6lnua/mYgwHo0tz5WUAfrdpNch1RZLHc61VZ1SDgrtNXLSw==" - }, - "unist-util-is": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", - "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==" - }, - "unist-util-map": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/unist-util-map/-/unist-util-map-1.0.5.tgz", - "integrity": "sha512-dFil/AN6vqhnQWNCZk0GF/G3+Q5YwsB+PqjnzvpO2wzdRtUJ1E8PN+XRE/PRr/G3FzKjRTJU0haqE0Ekl+O3Ag==", - "requires": { - "object-assign": "^4.0.1" - } - }, - "unist-util-modify-children": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-1.1.6.tgz", - "integrity": "sha512-TOA6W9QLil+BrHqIZNR4o6IA5QwGOveMbnQxnWYq+7EFORx9vz/CHrtzF36zWrW61E2UKw7sM1KPtIgeceVwXw==", - "requires": { - "array-iterate": "^1.0.0" - } - }, - "unist-util-position": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", - "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==" - }, - "unist-util-remove": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-1.0.3.tgz", - "integrity": "sha512-mB6nCHCQK0pQffUAcCVmKgIWzG/AXs/V8qpS8K72tMPtOSCMSjDeMc5yN+Ye8rB0FhcE+JvW++o1xRNc0R+++g==", - "requires": { - "unist-util-is": "^3.0.0" - } - }, - "unist-util-remove-position": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz", - "integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==", - "requires": { - "unist-util-visit": "^1.1.0" - }, - "dependencies": { - "unist-util-visit": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", - "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", - "requires": { - "unist-util-visit-parents": "^2.0.0" - } - } - } - }, - "unist-util-select": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/unist-util-select/-/unist-util-select-1.5.0.tgz", - "integrity": "sha1-qTwr6MD2U4J4A7gTMa3sKqJM2TM=", - "requires": { - "css-selector-parser": "^1.1.0", - "debug": "^2.2.0", - "nth-check": "^1.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "unist-util-stringify-position": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", - "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", - "requires": { - "@types/unist": "^2.0.2" - } - }, - "unist-util-visit": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.2.tgz", - "integrity": "sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0", - "unist-util-visit-parents": "^3.0.0" - }, - "dependencies": { - "unist-util-is": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz", - "integrity": "sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==" - }, - "unist-util-visit-parents": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz", - "integrity": "sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-is": "^4.0.0" - } - } - } - }, - "unist-util-visit-children": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-1.1.4.tgz", - "integrity": "sha512-sA/nXwYRCQVRwZU2/tQWUqJ9JSFM1X3x7JIOsIgSzrFHcfVt6NkzDtKzyxg2cZWkCwGF9CO8x4QNZRJRMK8FeQ==" - }, - "unist-util-visit-parents": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", - "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", - "requires": { - "unist-util-is": "^3.0.0" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "update-notifier": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", - "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", - "requires": { - "boxen": "^3.0.0", - "chalk": "^2.0.1", - "configstore": "^4.0.0", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.1.0", - "is-npm": "^3.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "boxen": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", - "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^2.4.2", - "cli-boxes": "^2.2.0", - "string-width": "^3.0.0", - "term-size": "^1.2.0", - "type-fest": "^0.3.0", - "widest-line": "^2.0.0" - } - }, - "configstore": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", - "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", - "requires": { - "dot-prop": "^4.1.0", - "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" - } - }, - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "requires": { - "is-obj": "^1.0.0" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.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" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "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==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", - "requires": { - "pify": "^3.0.0" - } - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "requires": { - "execa": "^0.7.0" - } - }, - "type-fest": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", - "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" - }, - "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", - "requires": { - "crypto-random-string": "^1.0.0" - } - }, - "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", - "requires": { - "string-width": "^2.1.1" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "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==", - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" - } - } - }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" - }, - "upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", - "requires": { - "upper-case": "^1.1.1" - } - }, - "uri-js": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", - "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", - "requires": { - "punycode": "^2.1.0" - } - }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - } - } - }, - "url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==" - }, - "url-loader": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", - "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", - "requires": { - "loader-utils": "^1.1.0", - "mime": "^2.0.3", - "schema-utils": "^1.0.0" - }, - "dependencies": { - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "url-parse": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", - "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "url-template": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", - "integrity": "sha1-/FZaPMy/93MMd19WQflVV5FDnyE=" - }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" - }, - "urql": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/urql/-/urql-1.9.5.tgz", - "integrity": "sha512-CzkOSAaS5KuP+Sx2rPLOrfMiziGhKwj9syaoG6/fqoCtUeAZaXirKYKSJPUu5u9WDvjJzcTqtpICaCw++cHZsA==", - "requires": { - "@urql/core": "^1.10.5", - "wonka": "^4.0.9" - } - }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" - }, - "utif": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", - "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", - "requires": { - "pako": "^1.0.5" - } - }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "v8-compile-cache": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz", - "integrity": "sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA==" - }, - "v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "valid-url": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "vanilla-swipe": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/vanilla-swipe/-/vanilla-swipe-1.2.0.tgz", - "integrity": "sha512-1yNnsfHcl67Y24HGJc/zrC9omRBzzxqvC6D5apOXMqGukuz0Zha1ydKJM7AUL/dB2w7Bd7UsI2Uw7+AE4soDaA==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "vfile": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.0.3.tgz", - "integrity": "sha512-lREgT5sF05TQk68LO6APy0In+TkFGnFEgKChK2+PHIaTrFQ9oHCKXznZ7VILwgYVBcl0gv4lGATFZBLhi2kVQg==", - "requires": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "replace-ext": "1.0.0", - "unist-util-stringify-position": "^2.0.0", - "vfile-message": "^2.0.0" - } - }, - "vfile-location": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz", - "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==" - }, - "vfile-message": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.3.tgz", - "integrity": "sha512-qQg/2z8qnnBHL0psXyF72kCjb9YioIynvyltuNKFaUhRtqTIcIMP3xnBaPzirVZNuBrUe1qwFciSx2yApa4byw==", - "requires": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^2.0.0" - } - }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "watchpack": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", - "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", - "requires": { - "chokidar": "^2.0.2", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "dependencies": { - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - } - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "weak-lru-cache": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", - "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", - "dev": true - }, - "web-namespaces": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", - "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "webpack": { - "version": "4.42.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.1.tgz", - "integrity": "sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg==", - "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.2.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.6.0", - "webpack-sources": "^1.4.1" - }, - "dependencies": { - "acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==" - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - } - } - }, - "webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", - "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "mime": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", - "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" - } - } - }, - "webpack-dev-server": { - "version": "3.10.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz", - "integrity": "sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ==", - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.2.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.6", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.25", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "0.3.19", - "sockjs-client": "1.4.0", - "spdy": "^4.0.1", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "12.0.5" - }, - "dependencies": { - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" - }, - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" - } - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "requires": { - "is-wsl": "^1.1.0" - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - } - } - }, - "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "requires": { - "async-limiter": "~1.0.0" - } - }, - "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "webpack-hot-middleware": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz", - "integrity": "sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA==", - "requires": { - "ansi-html": "0.0.7", - "html-entities": "^1.2.0", - "querystring": "^0.2.0", - "strip-ansi": "^3.0.0" - } - }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - } - }, - "webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "requires": { - "lodash": "^4.17.15" - } - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "webpack-stats-plugin": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/webpack-stats-plugin/-/webpack-stats-plugin-0.3.1.tgz", - "integrity": "sha512-pxqzFE055NlNTlNyfDG3xlB2QwT1EWdm/CF5dCJI/e+rRHVxrWhWg1rf1lfsWhI1/EePv8gi/A36YxO/+u0FgQ==" - }, - "websocket-driver": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", - "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", - "requires": { - "http-parser-js": ">=0.4.0 <0.4.11", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "requires": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - } - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" - }, - "which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" - }, - "which-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", - "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" - }, - "dependencies": { - "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - } - } - }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "requires": { - "string-width": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "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==" - }, - "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==" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "winchan": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/winchan/-/winchan-0.2.2.tgz", - "integrity": "sha512-pvN+IFAbRP74n/6mc6phNyCH8oVkzXsto4KCHPJ2AScniAnA1AmeLI03I2BzjePpaClGSI4GUMowzsD3qz5PRQ==" - }, - "with-open-file": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", - "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", - "requires": { - "p-finally": "^1.0.0", - "p-try": "^2.1.0", - "pify": "^4.0.1" - }, - "dependencies": { - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - } - } - }, - "wonka": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/wonka/-/wonka-4.0.9.tgz", - "integrity": "sha512-he7Nn1254ToUN03zLbJok6QxKdRJd46/QHm8nUcJNViXQnCutCuUgAbZvzoxrX+VXzGb4sCFolC4XhkHsmvdaA==" - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, - "workbox-background-sync": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz", - "integrity": "sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-broadcast-update": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz", - "integrity": "sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-build": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-4.3.1.tgz", - "integrity": "sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw==", - "requires": { - "@babel/runtime": "^7.3.4", - "@hapi/joi": "^15.0.0", - "common-tags": "^1.8.0", - "fs-extra": "^4.0.2", - "glob": "^7.1.3", - "lodash.template": "^4.4.0", - "pretty-bytes": "^5.1.0", - "stringify-object": "^3.3.0", - "strip-comments": "^1.0.2", - "workbox-background-sync": "^4.3.1", - "workbox-broadcast-update": "^4.3.1", - "workbox-cacheable-response": "^4.3.1", - "workbox-core": "^4.3.1", - "workbox-expiration": "^4.3.1", - "workbox-google-analytics": "^4.3.1", - "workbox-navigation-preload": "^4.3.1", - "workbox-precaching": "^4.3.1", - "workbox-range-requests": "^4.3.1", - "workbox-routing": "^4.3.1", - "workbox-strategies": "^4.3.1", - "workbox-streams": "^4.3.1", - "workbox-sw": "^4.3.1", - "workbox-window": "^4.3.1" - }, - "dependencies": { - "fs-extra": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", - "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - } - } - }, - "workbox-cacheable-response": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz", - "integrity": "sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-core": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz", - "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==" - }, - "workbox-expiration": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-4.3.1.tgz", - "integrity": "sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-google-analytics": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz", - "integrity": "sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg==", - "requires": { - "workbox-background-sync": "^4.3.1", - "workbox-core": "^4.3.1", - "workbox-routing": "^4.3.1", - "workbox-strategies": "^4.3.1" - } - }, - "workbox-navigation-preload": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz", - "integrity": "sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-precaching": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-4.3.1.tgz", - "integrity": "sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-range-requests": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz", - "integrity": "sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-routing": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-4.3.1.tgz", - "integrity": "sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-strategies": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-4.3.1.tgz", - "integrity": "sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-streams": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-4.3.1.tgz", - "integrity": "sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "workbox-sw": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-4.3.1.tgz", - "integrity": "sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w==" - }, - "workbox-window": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-4.3.1.tgz", - "integrity": "sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg==", - "requires": { - "workbox-core": "^4.3.1" - } - }, - "worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "requires": { - "errno": "~0.1.7" - } - }, - "worker-rpc": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", - "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", - "requires": { - "microevent.ts": "~0.1.1" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "requires": { - "mkdirp": "^0.5.1" - } - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz", - "integrity": "sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==" - }, - "x-is-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", - "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=" - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" - }, - "xhr": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.5.0.tgz", - "integrity": "sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==", - "requires": { - "global": "~4.3.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "global": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", - "requires": { - "min-document": "^2.19.0", - "process": "~0.5.1" - } - }, - "process": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" - } - } - }, - "xml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", - "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=" - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xml-parse-from-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", - "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=" - }, - "xml2js": { - "version": "0.4.17", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.17.tgz", - "integrity": "sha1-F76T6q4/O3eTWceVtBlwWogX6Gg=", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "^4.1.0" - } - }, - "xmlbuilder": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.2.1.tgz", - "integrity": "sha1-qlijBBoGb5DqoWwvU4n/GfP0YaU=", - "requires": { - "lodash": "^4.0.0" - } - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=" - }, - "xregexp": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz", - "integrity": "sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==", - "requires": { - "@babel/runtime-corejs3": "^7.8.3" - } - }, - "xstate": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/xstate/-/xstate-4.8.0.tgz", - "integrity": "sha512-xHSYQtCHLkcrFRxa5lK4Lp1rnKt00a80jcKFMQiMBuE+6MvTYv7twwqYpzjsJoKFjGZB3GGEpZAuY1dmlPTh/g==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - }, - "yaml": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.8.3.tgz", - "integrity": "sha512-X/v7VDnK+sxbQ2Imq4Jt2PRUsRsP7UcpSl3Llg6+NRRqWLIvxkMFYtH1FmvwNGYRKKPa+EPA4qDBlI9WVG1UKw==", - "requires": { - "@babel/runtime": "^7.8.7" - } - }, - "yaml-loader": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/yaml-loader/-/yaml-loader-0.5.0.tgz", - "integrity": "sha512-p9QIzcFSNm4mCw/m5NdyMfN4RE4aFZJWRRb01ERVNGCym8VNbKtw3OYZXnvUIkim6U/EjqE/2yIh9F/msShH9A==", - "requires": { - "js-yaml": "^3.5.2" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.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": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=" - }, - "yoga-layout-prebuilt": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/yoga-layout-prebuilt/-/yoga-layout-prebuilt-1.9.5.tgz", - "integrity": "sha512-+G5Ojl4/sG78mk5masCL3SRaZtkKXRBhMGf5c+4C1j32jN9KpS4lxVFdYyBi15EHN4gMeK5sIRf83T33TOaDkA==", - "optional": true, - "requires": { - "@types/yoga-layout": "1.9.1" - } - }, - "yurnalist": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/yurnalist/-/yurnalist-1.1.2.tgz", - "integrity": "sha512-y7bsTXqL+YMJQ2De2CBtSftJNLQnB7gWIzzKm10GDyC8Fg4Dsmd2LG5YhT8pudvUiuotic80WVXt/g1femRVQg==", - "requires": { - "babel-runtime": "^6.26.0", - "chalk": "^2.4.2", - "cli-table3": "^0.5.1", - "debug": "^4.1.1", - "deep-equal": "^1.1.0", - "detect-indent": "^6.0.0", - "inquirer": "^7.0.0", - "invariant": "^2.2.0", - "is-builtin-module": "^3.0.0", - "is-ci": "^2.0.0", - "leven": "^3.1.0", - "loud-rejection": "^2.2.0", - "node-emoji": "^1.10.0", - "object-path": "^0.11.2", - "read": "^1.0.7", - "rimraf": "^3.0.0", - "semver": "^6.3.0", - "strip-ansi": "^5.2.0", - "strip-bom": "^4.0.0" - }, - "dependencies": { - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" - }, - "ansi-styles": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", - "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", - "requires": { - "@types/color-name": "^1.1.1", - "color-convert": "^2.0.1" - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "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==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "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==" - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "inquirer": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", - "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^3.0.0", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.4.0", - "rxjs": "^6.5.3", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6" - }, - "dependencies": { - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "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==" - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" - } - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" - }, - "supports-color": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", - "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" - } - } - }, - "zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - }, - "zwitch": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", - "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==" - } - } -} diff --git a/package.json b/package.json index 41c3c3cb..8de1a712 100644 --- a/package.json +++ b/package.json @@ -1,112 +1,84 @@ { - "name": "geeksblabla.com", + "name": "geeksblabla-community", + "type": "module", + "version": "2.0.0", "private": true, - "description": "Geeksblabla website", - "version": "0.1.0", - "author": "Geeksblabla Team ", "scripts": { - "build": "gatsby build", - "preload-fonts": "gatsby-preload-fonts", - "develop": "gatsby develop", - "format": "prettier --write src/**/*.{js,jsx}", - "start": "npm run develop", - "serve": "gatsby serve", - "test": "jest", - "contributors:add": "all-contributors add", - "contributors:generate": "all-contributors generate", - "upload-to-anchor": "node ./podcast/index.js", - "generate-youtube-description": "node ./youtube/index.js" - }, - "husky": { - "hooks": { - "pre-commit": "pretty-quick --staged" - } + "dev": "astro dev", + "start": "astro dev", + "build": "astro build", + "preview": "astro preview", + "deploy": "astro build && wrangler deploy", + "sync": "astro sync", + "astro": "astro", + "check": "astro check", + "lint": "prettier --write \"**/*.{js,jsx,ts,tsx,md,mdx,astro}\" && eslint --fix \"src/**/*.{js,ts,jsx,tsx,astro}\"", + "lint:ci": "eslint \"src/**/*.{js,ts,jsx,tsx,astro}\"", + "prepare": "husky", + "check-all": "pnpm run lint && pnpm run check && pnpm run build" }, "dependencies": { - "@apollo/client": "^3.0.0-beta.50", - "@apollo/link-context": "^2.0.0-beta.3", - "@auth0/auth0-spa-js": "^1.6.0", - "@jlengstorf/get-share-image": "^0.5.0", - "@mdx-js/mdx": "^1.5.3", - "@mdx-js/react": "^1.5.3", - "@mdx-js/tag": "^0.20.3", - "algoliasearch": "^4.9.2", - "auth0-js": "^9.12.1", - "emotion": "^10.0.27", - "gatsby": "^2.18.17", - "gatsby-image": "^2.2.37", - "gatsby-mdx": "^1.0.0", - "gatsby-plugin-algolia": "^0.20.1", - "gatsby-plugin-feed": "^2.5.7", - "gatsby-plugin-manifest": "^2.2.34", - "gatsby-plugin-mdx": "^1.0.64", - "gatsby-plugin-offline": "^3.0.30", - "gatsby-plugin-preload-fonts": "^1.0.27", - "gatsby-plugin-react-helmet": "^3.1.18", - "gatsby-plugin-react-svg": "^2.1.2", - "gatsby-plugin-sass": "^2.1.26", - "gatsby-plugin-sharp": "^2.3.10", - "gatsby-plugin-sitemap": "^2.4.3", - "gatsby-remark-images": "^3.1.39", - "gatsby-source-filesystem": "^2.1.43", - "gatsby-transformer-sharp": "^2.3.9", - "gatsby-transformer-yaml": "^2.2.20", - "googleapis": "^92.0.0", - "graphql": "^14.5.8", - "graphql-tag": "^2.10.1", - "isomorphic-fetch": "^2.2.1", - "markdown-to-txt": "^2.0.0", - "moment": "^2.24.0", - "moment-timezone": "^0.5.27", - "node-sass": "^4.13.0", - "prop-types": "^15.7.2", - "react": "^16.12.0", - "react-add-to-calendar": "^0.1.5", - "react-add-to-calendar-hoc": "^1.0.9", - "react-alice-carousel": "^1.17.3", - "react-dom": "^16.12.0", - "react-helmet": "^5.2.0", - "react-instantsearch-dom": "^6.11.1", - "react-modal": "^3.11.1", - "react-player": "^2.9.0", - "react-share": "^3.0.1", - "reactjs-popup": "^1.5.0", - "typeface-lato": "^0.0.75", - "typeface-open-sans": "^0.0.75", - "typeface-roboto": "^0.0.75", - "urql": "^1.7.0" + "@astrojs/check": "^0.9.4", + "@astrojs/mdx": "^3.1.9", + "@astrojs/netlify": "^5.5.4", + "@astrojs/rss": "^4.0.9", + "@astrolib/seo": "1.0.0-beta.8", + "@astropub/md": "^1.0.0", + "@hookform/resolvers": "^3.9.1", + "@notionhq/client": "^2.2.15", + "@radix-ui/react-slot": "^1.1.0", + "@resvg/resvg-js": "^2.6.2", + "@rive-app/canvas": "^2.21.6", + "astro": "^4.16.13", + "astro-cloudinary": "^1.1.2", + "astro-icon": "^1.1.1", + "astro-pagefind": "^1.6.0", + "class-variance-authority": "^0.7.0", + "clsx": "^2.1.1", + "fuse.js": "^7.0.0", + "lodash.kebabcase": "^4.1.1", + "react-hook-form": "^7.53.2", + "reading-time": "^1.5.0", + "remark-collapse": "^0.1.2", + "remark-toc": "^9.0.0", + "satori": "^0.11.2", + "tailwindcss": "^3.4.11", + "typescript": "^5.5.3" }, "devDependencies": { - "all-contributors-cli": "^6.11.2", - "babel-jest": "^27.4.5", - "babel-preset-gatsby": "^2.4.0", - "eslint-plugin-graphql": "^3.1.1", - "front-matter": "^3.1.0", - "gatsby-plugin-google-analytics": "^2.1.31", - "gatsby-plugin-sentry": "^1.0.1", - "husky": "^4.2.3", - "identity-obj-proxy": "^3.0.0", - "jest": "^27.4.5", - "marked": "^4.0.8", - "prettier": "^2.0.4", - "pretty-quick": "^2.0.1", - "puppeteer": "^10.0.0", - "react-test-renderer": "^17.0.2", - "rss-parser": "^3.7.6", - "showdown": "^1.9.1" - }, - "keywords": [ - "gatsby" - ], - "resolutions": { - "sharp": "0.31.1" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/DevC-Casa/geeksblabla.com/" + "@astrojs/react": "^3.6.2", + "@astrojs/sitemap": "^3.2.1", + "@astrojs/tailwind": "^5.1.2", + "@tailwindcss/aspect-ratio": "^0.4.2", + "@tailwindcss/typography": "^0.5.15", + "@types/github-slugger": "^1.3.0", + "@types/lodash.kebabcase": "^4.1.9", + "@types/react": "^18.3.6", + "@typescript-eslint/parser": "^8.5.0", + "astro-eslint-parser": "^1.0.3", + "eslint": "^9.10.0", + "eslint-plugin-astro": "^1.2.4", + "eslint-plugin-unicorn": "^56.0.0", + "globals": "^15.9.0", + "husky": "^9.1.6", + "lint-staged": "^15.2.10", + "prettier": "^3.3.3", + "prettier-plugin-astro": "^0.14.1", + "prettier-plugin-tailwindcss": "^0.6.6", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "tailwind-merge": "^2.5.3", + "tailwindcss-motion": "0.4.1-beta", + "tsx": "^4.19.1", + "typescript-eslint": "^8.5.0" }, - "bugs": { - "url": "https://github.com/gatsbyjs/gatsby/issues" + "lint-staged": { + "*.{js,jsx,ts,tsx,astro}": [ + "eslint --fix", + "prettier --write" + ], + "*.{md,mdx}": [ + "prettier --write" + ] } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..b942c741 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,9100 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@astrojs/check': + specifier: ^0.9.4 + version: 0.9.4(prettier-plugin-astro@0.14.1)(prettier@3.3.3)(typescript@5.6.3) + '@astrojs/mdx': + specifier: ^3.1.9 + version: 3.1.9(astro@4.16.13(rollup@4.24.0)(typescript@5.6.3)) + '@astrojs/netlify': + specifier: ^5.5.4 + version: 5.5.4(astro@4.16.13(rollup@4.24.0)(typescript@5.6.3)) + '@astrojs/rss': + specifier: ^4.0.9 + version: 4.0.9 + '@astrolib/seo': + specifier: 1.0.0-beta.8 + version: 1.0.0-beta.8(astro@4.16.13(rollup@4.24.0)(typescript@5.6.3)) + '@astropub/md': + specifier: ^1.0.0 + version: 1.0.0(@astrojs/markdown-remark@6.0.0-beta.2) + '@hookform/resolvers': + specifier: ^3.9.1 + version: 3.9.1(react-hook-form@7.53.2(react@18.3.1)) + '@notionhq/client': + specifier: ^2.2.15 + version: 2.2.15 + '@radix-ui/react-slot': + specifier: ^1.1.0 + version: 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@resvg/resvg-js': + specifier: ^2.6.2 + version: 2.6.2 + '@rive-app/canvas': + specifier: ^2.21.6 + version: 2.21.6 + astro: + specifier: ^4.16.13 + version: 4.16.13(rollup@4.24.0)(typescript@5.6.3) + astro-cloudinary: + specifier: ^1.1.2 + version: 1.1.2(astro@4.16.13(rollup@4.24.0)(typescript@5.6.3))(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.6.3)(yaml@2.5.1) + astro-icon: + specifier: ^1.1.1 + version: 1.1.1 + astro-pagefind: + specifier: ^1.6.0 + version: 1.6.0(astro@4.16.13(rollup@4.24.0)(typescript@5.6.3)) + class-variance-authority: + specifier: ^0.7.0 + version: 0.7.0 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + fuse.js: + specifier: ^7.0.0 + version: 7.0.0 + lodash.kebabcase: + specifier: ^4.1.1 + version: 4.1.1 + react-hook-form: + specifier: ^7.53.2 + version: 7.53.2(react@18.3.1) + reading-time: + specifier: ^1.5.0 + version: 1.5.0 + remark-collapse: + specifier: ^0.1.2 + version: 0.1.2 + remark-toc: + specifier: ^9.0.0 + version: 9.0.0 + satori: + specifier: ^0.11.2 + version: 0.11.2 + tailwindcss: + specifier: ^3.4.11 + version: 3.4.13 + typescript: + specifier: ^5.5.3 + version: 5.6.3 + devDependencies: + '@astrojs/react': + specifier: ^3.6.2 + version: 3.6.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.11) + '@astrojs/sitemap': + specifier: ^3.2.1 + version: 3.2.1 + '@astrojs/tailwind': + specifier: ^5.1.2 + version: 5.1.2(astro@4.16.13(rollup@4.24.0)(typescript@5.6.3))(tailwindcss@3.4.13) + '@tailwindcss/aspect-ratio': + specifier: ^0.4.2 + version: 0.4.2(tailwindcss@3.4.13) + '@tailwindcss/typography': + specifier: ^0.5.15 + version: 0.5.15(tailwindcss@3.4.13) + '@types/github-slugger': + specifier: ^1.3.0 + version: 1.3.0 + '@types/lodash.kebabcase': + specifier: ^4.1.9 + version: 4.1.9 + '@types/react': + specifier: ^18.3.6 + version: 18.3.11 + '@typescript-eslint/parser': + specifier: ^8.5.0 + version: 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + astro-eslint-parser: + specifier: ^1.0.3 + version: 1.0.3(typescript@5.6.3) + eslint: + specifier: ^9.10.0 + version: 9.12.0(jiti@1.21.6) + eslint-plugin-astro: + specifier: ^1.2.4 + version: 1.2.4(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + eslint-plugin-unicorn: + specifier: ^56.0.0 + version: 56.0.0(eslint@9.12.0(jiti@1.21.6)) + globals: + specifier: ^15.9.0 + version: 15.11.0 + husky: + specifier: ^9.1.6 + version: 9.1.6 + lint-staged: + specifier: ^15.2.10 + version: 15.2.10 + prettier: + specifier: ^3.3.3 + version: 3.3.3 + prettier-plugin-astro: + specifier: ^0.14.1 + version: 0.14.1 + prettier-plugin-tailwindcss: + specifier: ^0.6.6 + version: 0.6.8(prettier-plugin-astro@0.14.1)(prettier@3.3.3) + react: + specifier: ^18.3.1 + version: 18.3.1 + react-dom: + specifier: ^18.3.1 + version: 18.3.1(react@18.3.1) + tailwind-merge: + specifier: ^2.5.3 + version: 2.5.3 + tailwindcss-motion: + specifier: 0.4.1-beta + version: 0.4.1-beta(tailwindcss@3.4.13) + tsx: + specifier: ^4.19.1 + version: 4.19.1 + typescript-eslint: + specifier: ^8.5.0 + version: 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + +packages: + + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@antfu/install-pkg@0.4.1': + resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==} + + '@antfu/utils@0.7.10': + resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} + + '@astrojs/check@0.9.4': + resolution: {integrity: sha512-IOheHwCtpUfvogHHsvu0AbeRZEnjJg3MopdLddkJE70mULItS/Vh37BHcI00mcOJcH1vhD3odbpvWokpxam7xA==} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + + '@astrojs/compiler@2.10.3': + resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==} + + '@astrojs/internal-helpers@0.4.1': + resolution: {integrity: sha512-bMf9jFihO8YP940uD70SI/RDzIhUHJAolWVcO1v5PUivxGKvfLZTLTVVxEYzGYyPsA3ivdLNqMnL5VgmQySa+g==} + + '@astrojs/language-server@2.15.0': + resolution: {integrity: sha512-wJHSjGApm5X8Rg1GvkevoatZBfvaFizY4kCPvuSYgs3jGCobuY3KstJGKC1yNLsRJlDweHruP+J54iKn9vEKoA==} + hasBin: true + peerDependencies: + prettier: ^3.0.0 + prettier-plugin-astro: '>=0.11.0' + peerDependenciesMeta: + prettier: + optional: true + prettier-plugin-astro: + optional: true + + '@astrojs/markdown-remark@5.3.0': + resolution: {integrity: sha512-r0Ikqr0e6ozPb5bvhup1qdWnSPUvQu6tub4ZLYaKyG50BXZ0ej6FhGz3GpChKpH7kglRFPObJd/bDyf2VM9pkg==} + + '@astrojs/markdown-remark@6.0.0-beta.2': + resolution: {integrity: sha512-XHadnf3c+hb2A0kWBuwKA3TqBKi7bIF3bpRt49DTnE3dVlsHDPmByn0Wj3CZij1HvXL/ODmPiOJt2JGXMeivuQ==} + + '@astrojs/mdx@3.1.9': + resolution: {integrity: sha512-3jPD4Bff6lIA20RQoonnZkRtZ9T3i0HFm6fcDF7BMsKIZ+xBP2KXzQWiuGu62lrVCmU612N+SQVGl5e0fI+zWg==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + peerDependencies: + astro: ^4.8.0 + + '@astrojs/netlify@5.5.4': + resolution: {integrity: sha512-nIjD8cC/lGCxTtBUDrG50YEwmsgNxGB1nMZS0wwT7tFlmT2iBpYkTz3G+wmpxH89Hzs1xuMs1s21IcITyuKqEw==} + peerDependencies: + astro: ^4.2.0 + + '@astrojs/prism@3.1.0': + resolution: {integrity: sha512-Z9IYjuXSArkAUx3N6xj6+Bnvx8OdUSHA8YoOgyepp3+zJmtVYJIl/I18GozdJVW1p5u/CNpl3Km7/gwTJK85cw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + + '@astrojs/react@3.6.2': + resolution: {integrity: sha512-fK29lYI7zK/KG4ZBy956x4dmauZcZ18osFkuyGa8r3gmmCQa2NZ9XNu9WaVYEUm0j89f4Gii4tbxLoyM8nk2MA==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + peerDependencies: + '@types/react': ^17.0.50 || ^18.0.21 + '@types/react-dom': ^17.0.17 || ^18.0.6 + react: ^17.0.2 || ^18.0.0 || ^19.0.0-beta + react-dom: ^17.0.2 || ^18.0.0 || ^19.0.0-beta + + '@astrojs/rss@4.0.9': + resolution: {integrity: sha512-W1qeLc/WP1vMS5xXa+BnaLU0paeSeGjN8RJVAoBaOIkQuKXjIUA9hvPno89heo73in5i67g40gy70oeeHMqp6A==} + + '@astrojs/sitemap@3.2.1': + resolution: {integrity: sha512-uxMfO8f7pALq0ADL6Lk68UV6dNYjJ2xGUzyjjVj60JLBs5a6smtlkBYv3tQ0DzoqwS7c9n4FUx5lgv0yPo/fgA==} + + '@astrojs/tailwind@5.1.2': + resolution: {integrity: sha512-IvOF0W/dtHElcXvhrPR35nHmhyV3cfz1EzPitMGtU7sYy9Hci3BNK1To6FWmVuuNKPxza1IgCGetSynJZL7fOg==} + peerDependencies: + astro: ^3.0.0 || ^4.0.0 || ^5.0.0-beta.0 + tailwindcss: ^3.0.24 + + '@astrojs/telemetry@3.1.0': + resolution: {integrity: sha512-/ca/+D8MIKEC8/A9cSaPUqQNZm+Es/ZinRv0ZAzvu2ios7POQSsVD+VOj7/hypWNsNM3T7RpfgNq7H2TU1KEHA==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0} + + '@astrojs/underscore-redirects@0.3.4': + resolution: {integrity: sha512-vYuYtIrTwxFlDRIhuekscorsHdLL8Hr3mgOczfM1tRWVPn54dDNcKG0DmfL4DlC5YJRoqVaVdUs508Hw643NTw==} + + '@astrojs/yaml2ts@0.2.1': + resolution: {integrity: sha512-CBaNwDQJz20E5WxzQh4thLVfhB3JEEGz72wRA+oJp6fQR37QLAqXZJU0mHC+yqMOQ6oj0GfRPJrz6hjf+zm6zA==} + + '@astrolib/seo@1.0.0-beta.8': + resolution: {integrity: sha512-SpNycspjcjnz6um4Vph0k+SAKgUib7/8qJRCaaahJD1UfLuXKK7E+bmKbnv8QPBTRPZkQW6zFVaZRl5VvnyDfg==} + peerDependencies: + astro: ^1.2.1 || ^2.0.0 || ^3.0.0-beta.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-beta.0 || ^5.0.0 + + '@astropub/md@1.0.0': + resolution: {integrity: sha512-++urcyulQogbLAF0VC2rEp6qLUfnRX9iaDREAkN1su9fF8V84DVaMHbQXn7qqQ27wYT5AVVeoK+4+vggYYVbQg==} + peerDependencies: + '@astrojs/markdown-remark': ^5 + + '@babel/code-frame@7.25.7': + resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} + engines: {node: '>=6.9.0'} + + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.25.7': + resolution: {integrity: sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.26.2': + resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.25.7': + resolution: {integrity: sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.26.0': + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.25.7': + resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.26.2': + resolution: {integrity: sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.25.9': + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.25.7': + resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.25.9': + resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.25.7': + resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.25.7': + resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-plugin-utils@7.25.7': + resolution: {integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.25.9': + resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-simple-access@7.25.7': + resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.25.7': + resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.7': + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.25.7': + resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.25.7': + resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.26.0': + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.25.7': + resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.25.7': + resolution: {integrity: sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/parser@7.26.2': + resolution: {integrity: sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-self@7.25.7': + resolution: {integrity: sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQE635VgtCFeg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-source@7.25.7': + resolution: {integrity: sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMios9i+xT/uv9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx@7.25.9': + resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/template@7.25.7': + resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.25.7': + resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.25.9': + resolution: {integrity: sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.25.7': + resolution: {integrity: sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.26.0': + resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} + engines: {node: '>=6.9.0'} + + '@cloudinary-util/types@1.5.10': + resolution: {integrity: sha512-n5lrm7SdAXhgWEbkSJKHZGnaoO9G/g4WYS6HYnq/k4nLj79sYfQZOoKjyR8hF2iyLRdLkT+qlk68RNFFv5tKew==} + + '@cloudinary-util/types@1.5.7': + resolution: {integrity: sha512-utxS2K+E3f0m4OD5YmrIEHO41x/YKgq6t13JIi94wT47gnQ7kWVW67AVhtgfWq1C6ege6XEreIDcef3dWG4eLA==} + + '@cloudinary-util/url-loader@5.10.5': + resolution: {integrity: sha512-HqngrSNCRVQVoMF3S2WxqzMXCS5pQflGMlGbPh7LJ240zl0OTIObDFyaUfVwF+x9d/+fb2lKR3nPCkpwd8MQ8w==} + + '@cloudinary-util/util@3.3.2': + resolution: {integrity: sha512-Cc0iFxzfl7fcOXuznpeZFGYC885Of/vDgccRDnhTe/8Rf8YKv2PjLtezyo0VgmdA/CpeZy29NCXAsf6liokbwg==} + + '@cloudinary/transformation-builder-sdk@1.15.2': + resolution: {integrity: sha512-oXYaW/whGaQVlR1O/ocp7vYcxaMAy3uGcQ8+8xjbfDCy/+c+zFIuP6JKI8L05kzqw7Wjh0cqzG+4u0X1UpPh+A==} + + '@cloudinary/url-gen@1.15.0': + resolution: {integrity: sha512-bjU67eZxLUgoRy/Plli4TQio7q6P31OYqnEgXxeN9TKXrzr6h0DeEdIUhKI9gy3HkEBWXWWJIPh7j7gkOJPnyA==} + + '@cloudinary/url-gen@1.21.0': + resolution: {integrity: sha512-ctYcCzX3G3vcgnESTU2ET3K1XsBiXcEnBddCGV0QbR3fJhLLrIShjSMEwZoepgh4LAFOHJu9DzvLFr+E8R7c7g==} + + '@emmetio/abbreviation@2.3.3': + resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} + + '@emmetio/css-abbreviation@2.1.8': + resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} + + '@emmetio/css-parser@0.4.0': + resolution: {integrity: sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==} + + '@emmetio/html-matcher@1.3.0': + resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} + + '@emmetio/scanner@1.0.4': + resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} + + '@emmetio/stream-reader-utils@0.1.0': + resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} + + '@emmetio/stream-reader@2.2.0': + resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} + + '@emnapi/runtime@1.3.0': + resolution: {integrity: sha512-XMBySMuNZs3DM96xcJmLW4EfGnf+uGmFNjzpehMjuX5PLB5j87ar2Zc4e3PVeZ3I5g3tYtAqskB28manlF69Zw==} + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.4.0': + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.11.1': + resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.18.0': + resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.6.0': + resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.1.0': + resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.12.0': + resolution: {integrity: sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.4': + resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.0': + resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@hookform/resolvers@3.9.1': + resolution: {integrity: sha512-ud2HqmGBM0P0IABqoskKWI6PEf6ZDDBZkFqe2Vnl+mTHCEHzr3ISjjZyCwTjC/qpL25JC9aIDkloQejvMeq0ug==} + peerDependencies: + react-hook-form: ^7.0.0 + + '@humanfs/core@0.19.0': + resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.5': + resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@iconify/tools@4.0.7': + resolution: {integrity: sha512-zOJxKIfZn96ZRGGvIWzDRLD9vb2CsxjcLuM+QIdvwWbv6SWhm49gECzUnd4d2P0sq9sfodT7yCNobWK8nvavxQ==} + + '@iconify/types@2.0.0': + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + + '@iconify/utils@2.1.33': + resolution: {integrity: sha512-jP9h6v/g0BIZx0p7XGJJVtkVnydtbgTgt9mVNcGDYwaa7UhdHdI9dvoq+gKj9sijMSJKxUPEG2JyjsgXjxL7Kw==} + + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@mapbox/node-pre-gyp@1.0.11': + resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} + hasBin: true + + '@mdx-js/mdx@3.1.0': + resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} + + '@netlify/functions@2.8.2': + resolution: {integrity: sha512-DeoAQh8LuNPvBE4qsKlezjKj0PyXDryOFJfJKo3Z1qZLKzQ21sT314KQKPVjfvw6knqijj+IO+0kHXy/TJiqNA==} + engines: {node: '>=14.0.0'} + + '@netlify/node-cookies@0.1.0': + resolution: {integrity: sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==} + engines: {node: ^14.16.0 || >=16.0.0} + + '@netlify/serverless-functions-api@1.26.1': + resolution: {integrity: sha512-q3L9i3HoNfz0SGpTIS4zTcKBbRkxzCRpd169eyiTuk3IwcPC3/85mzLHranlKo2b+HYT0gu37YxGB45aD8A3Tw==} + engines: {node: '>=18.0.0'} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@notionhq/client@2.2.15': + resolution: {integrity: sha512-XhdSY/4B1D34tSco/GION+23GMjaS9S2zszcqYkMHo8RcWInymF6L1x+Gk7EmHdrSxNFva2WM8orhC4BwQCwgw==} + engines: {node: '>=12'} + + '@oslojs/encoding@1.1.0': + resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + + '@pagefind/darwin-arm64@1.1.1': + resolution: {integrity: sha512-tZ9tysUmQpFs2EqWG2+E1gc+opDAhSyZSsgKmFzhnWfkK02YHZhvL5XJXEZDqYy3s1FAKhwjTg8XDxneuBlDZQ==} + cpu: [arm64] + os: [darwin] + + '@pagefind/darwin-x64@1.1.1': + resolution: {integrity: sha512-ChohLQ39dLwaxQv0jIQB/SavP3TM5K5ENfDTqIdzLkmfs3+JlzSDyQKcJFjTHYcCzQOZVeieeGq8PdqvLJxJxQ==} + cpu: [x64] + os: [darwin] + + '@pagefind/default-ui@1.1.1': + resolution: {integrity: sha512-ZM0zDatWDnac/VGHhQCiM7UgA4ca8jpjA+VfuTJyHJBaxGqZMQnm4WoTz9E0KFcue1Bh9kxpu7uWFZfwpZZk0A==} + + '@pagefind/linux-arm64@1.1.1': + resolution: {integrity: sha512-H5P6wDoCoAbdsWp0Zx0DxnLUrwTGWGLu/VI1rcN2CyFdY2EGSvPQsbGBMrseKRNuIrJDFtxHHHyjZ7UbzaM9EA==} + cpu: [arm64] + os: [linux] + + '@pagefind/linux-x64@1.1.1': + resolution: {integrity: sha512-yJs7tTYbL2MI3HT+ngs9E1BfUbY9M4/YzA0yEM5xBo4Xl8Yu8Qg2xZTOQ1/F6gwvMrjCUFo8EoACs6LRDhtMrQ==} + cpu: [x64] + os: [linux] + + '@pagefind/windows-x64@1.1.1': + resolution: {integrity: sha512-b7/qPqgIl+lMzkQ8fJt51SfguB396xbIIR+VZ3YrL2tLuyifDJ1wL5mEm+ddmHxJ2Fki340paPcDan9en5OmAw==} + cpu: [x64] + os: [win32] + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pkgr/core@0.1.1': + resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@polka/url@1.0.0-next.28': + resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} + + '@radix-ui/react-compose-refs@1.1.0': + resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-slot@1.1.0': + resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@resvg/resvg-js-android-arm-eabi@2.6.2': + resolution: {integrity: sha512-FrJibrAk6v29eabIPgcTUMPXiEz8ssrAk7TXxsiZzww9UTQ1Z5KAbFJs+Z0Ez+VZTYgnE5IQJqBcoSiMebtPHA==} + engines: {node: '>= 10'} + cpu: [arm] + os: [android] + + '@resvg/resvg-js-android-arm64@2.6.2': + resolution: {integrity: sha512-VcOKezEhm2VqzXpcIJoITuvUS/fcjIw5NA/w3tjzWyzmvoCdd+QXIqy3FBGulWdClvp4g+IfUemigrkLThSjAQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@resvg/resvg-js-darwin-arm64@2.6.2': + resolution: {integrity: sha512-nmok2LnAd6nLUKI16aEB9ydMC6Lidiiq2m1nEBDR1LaaP7FGs4AJ90qDraxX+CWlVuRlvNjyYJTNv8qFjtL9+A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@resvg/resvg-js-darwin-x64@2.6.2': + resolution: {integrity: sha512-GInyZLjgWDfsVT6+SHxQVRwNzV0AuA1uqGsOAW+0th56J7Nh6bHHKXHBWzUrihxMetcFDmQMAX1tZ1fZDYSRsw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@resvg/resvg-js-linux-arm-gnueabihf@2.6.2': + resolution: {integrity: sha512-YIV3u/R9zJbpqTTNwTZM5/ocWetDKGsro0SWp70eGEM9eV2MerWyBRZnQIgzU3YBnSBQ1RcxRZvY/UxwESfZIw==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@resvg/resvg-js-linux-arm64-gnu@2.6.2': + resolution: {integrity: sha512-zc2BlJSim7YR4FZDQ8OUoJg5holYzdiYMeobb9pJuGDidGL9KZUv7SbiD4E8oZogtYY42UZEap7dqkkYuA91pg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@resvg/resvg-js-linux-arm64-musl@2.6.2': + resolution: {integrity: sha512-3h3dLPWNgSsD4lQBJPb4f+kvdOSJHa5PjTYVsWHxLUzH4IFTJUAnmuWpw4KqyQ3NA5QCyhw4TWgxk3jRkQxEKg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@resvg/resvg-js-linux-x64-gnu@2.6.2': + resolution: {integrity: sha512-IVUe+ckIerA7xMZ50duAZzwf1U7khQe2E0QpUxu5MBJNao5RqC0zwV/Zm965vw6D3gGFUl7j4m+oJjubBVoftw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@resvg/resvg-js-linux-x64-musl@2.6.2': + resolution: {integrity: sha512-UOf83vqTzoYQO9SZ0fPl2ZIFtNIz/Rr/y+7X8XRX1ZnBYsQ/tTb+cj9TE+KHOdmlTFBxhYzVkP2lRByCzqi4jQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@resvg/resvg-js-win32-arm64-msvc@2.6.2': + resolution: {integrity: sha512-7C/RSgCa+7vqZ7qAbItfiaAWhyRSoD4l4BQAbVDqRRsRgY+S+hgS3in0Rxr7IorKUpGE69X48q6/nOAuTJQxeQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@resvg/resvg-js-win32-ia32-msvc@2.6.2': + resolution: {integrity: sha512-har4aPAlvjnLcil40AC77YDIk6loMawuJwFINEM7n0pZviwMkMvjb2W5ZirsNOZY4aDbo5tLx0wNMREp5Brk+w==} + engines: {node: '>= 10'} + cpu: [ia32] + os: [win32] + + '@resvg/resvg-js-win32-x64-msvc@2.6.2': + resolution: {integrity: sha512-ZXtYhtUr5SSaBrUDq7DiyjOFJqBVL/dOBN7N/qmi/pO0IgiWW/f/ue3nbvu9joWE5aAKDoIzy/CxsY0suwGosQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@resvg/resvg-js@2.6.2': + resolution: {integrity: sha512-xBaJish5OeGmniDj9cW5PRa/PtmuVU3ziqrbr5xJj901ZDN4TosrVaNZpEiLZAxdfnhAe7uQ7QFWfjPe9d9K2Q==} + engines: {node: '>= 10'} + + '@rive-app/canvas@2.21.6': + resolution: {integrity: sha512-4AKFgGCC38zmembwYzZVLAo2655caQrh+ju96SrAJWXHdAvO1mPgrDNDLv+FSNdlpoPhwBKivfESayIpWMls6g==} + + '@rollup/pluginutils@4.2.1': + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + + '@rollup/pluginutils@5.1.3': + resolution: {integrity: sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.24.0': + resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.24.0': + resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.24.0': + resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.24.0': + resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.24.0': + resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.24.0': + resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.24.0': + resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.24.0': + resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} + cpu: [x64] + os: [win32] + + '@shikijs/core@1.22.2': + resolution: {integrity: sha512-bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg==} + + '@shikijs/engine-javascript@1.22.2': + resolution: {integrity: sha512-iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw==} + + '@shikijs/engine-oniguruma@1.22.2': + resolution: {integrity: sha512-GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA==} + + '@shikijs/types@1.22.2': + resolution: {integrity: sha512-NCWDa6LGZqTuzjsGfXOBWfjS/fDIbDdmVDug+7ykVe1IKT4c1gakrvlfFYp5NhAXH/lyqLM8wsAPo5wNy73Feg==} + + '@shikijs/vscode-textmate@9.3.0': + resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} + + '@shuding/opentype.js@1.4.0-beta.0': + resolution: {integrity: sha512-3NgmNyH3l/Hv6EvsWJbsvpcpUba6R8IREQ83nH83cyakCw7uM1arZKNfHwv1Wz6jgqrF/j4x5ELvR6PnK9nTcA==} + engines: {node: '>= 8.0.0'} + hasBin: true + + '@tailwindcss/aspect-ratio@0.4.2': + resolution: {integrity: sha512-8QPrypskfBa7QIMuKHg2TA7BqES6vhBrDLOv8Unb6FcFyd3TjKbc6lcmb9UPQHxfl24sXoJ41ux/H7qQQvfaSQ==} + peerDependencies: + tailwindcss: '>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1' + + '@tailwindcss/typography@0.5.15': + resolution: {integrity: sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20' + + '@trysound/sax@0.2.0': + resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} + engines: {node: '>=10.13.0'} + + '@types/acorn@4.0.6': + resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/github-slugger@1.3.0': + resolution: {integrity: sha512-J/rMZa7RqiH/rT29TEVZO4nBoDP9XJOjnbbIofg7GQKs4JIduEO3WLpte+6WeUz/TcrXKlY+bM7FYrp8yFB+3g==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/lodash.kebabcase@4.1.9': + resolution: {integrity: sha512-kPrrmcVOhSsjAVRovN0lRfrbuidfg0wYsrQa5IYuoQO1fpHHGSme66oyiYA/5eQPVl8Z95OA3HG0+d2SvYC85w==} + + '@types/lodash@4.17.10': + resolution: {integrity: sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + + '@types/ms@0.7.34': + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + + '@types/nlcst@2.0.3': + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} + + '@types/node-fetch@2.6.11': + resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} + + '@types/node@17.0.45': + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/prop-types@15.7.13': + resolution: {integrity: sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==} + + '@types/react-dom@18.3.0': + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} + + '@types/react@18.3.11': + resolution: {integrity: sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==} + + '@types/sax@1.2.7': + resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==} + + '@types/tar@6.1.13': + resolution: {integrity: sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==} + + '@types/ungap__structured-clone@1.2.0': + resolution: {integrity: sha512-ZoaihZNLeZSxESbk9PUAPZOlSpcKx81I1+4emtULDVmBLkYutTcMlCj2K9VNlf9EWODxdO6gkAqEaLorXwZQVA==} + + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + + '@typescript-eslint/eslint-plugin@8.8.1': + resolution: {integrity: sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@8.8.1': + resolution: {integrity: sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@8.8.1': + resolution: {integrity: sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.8.1': + resolution: {integrity: sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@8.8.1': + resolution: {integrity: sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.8.1': + resolution: {integrity: sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@8.8.1': + resolution: {integrity: sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + + '@typescript-eslint/visitor-keys@8.8.1': + resolution: {integrity: sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@ungap/structured-clone@1.2.0': + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + + '@unpic/astro@0.0.47': + resolution: {integrity: sha512-V35x+L8hzJ0w+VnoaCNjXOMYbm5B+WTKa3RQxYUw2/hJZ4Jo4a1uqYbiORJO77eGSaJGQBOGB9RT0BWMOmEz9Q==} + peerDependencies: + astro: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + + '@unpic/core@0.0.49': + resolution: {integrity: sha512-tAqeJRMPF2TrZbSQe74OZ9O5DzKDDUoFwFbZUpjvLcgwGQ/8aleDCb2Iy3bHFJfzzYZ9iHN0hN1VpTlAGQd+ZA==} + + '@unpic/pixels@1.2.2': + resolution: {integrity: sha512-zQWLcz/HX6IF1xQPyo1RtxW5aBkK470p8ZpRTtPidOZ26YAoxJhcW8Y59KzwRQSLdQV9B50V4m30TMgdFNxq1A==} + + '@unpic/placeholder@0.1.2': + resolution: {integrity: sha512-O++tS97biojo5sqn5TeTt+jUjl5gWOdIQuOXe8YluTJWq4L0GM6VuTkaspNpsmxHfioJw/6YBirzOpG4t87l8Q==} + + '@vercel/nft@0.27.6': + resolution: {integrity: sha512-mwuyUxskdcV8dd7N7JnxBgvFEz1D9UOePI/WyLLzktv6HSCwgPNQGit/UJ2IykAWGlypKw4pBQjOKWvIbXITSg==} + engines: {node: '>=16'} + hasBin: true + + '@vitejs/plugin-react@4.3.2': + resolution: {integrity: sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + + '@volar/kit@2.4.6': + resolution: {integrity: sha512-OaMtpmLns6IYD1nOSd0NdG/F5KzJ7Jr4B7TLeb4byPzu+ExuuRVeO56Dn1C7Frnw6bGudUQd90cpQAmxdB+RlQ==} + peerDependencies: + typescript: '*' + + '@volar/language-core@2.4.6': + resolution: {integrity: sha512-FxUfxaB8sCqvY46YjyAAV6c3mMIq/NWQMVvJ+uS4yxr1KzOvyg61gAuOnNvgCvO4TZ7HcLExBEsWcDu4+K4E8A==} + + '@volar/language-server@2.4.6': + resolution: {integrity: sha512-ARIbMXapEUPj9UFbZqWqw/iZ+ZuxUcY+vY212+2uutZVo/jrdzhLPu2TfZd9oB9akX8XXuslinT3051DyHLLRA==} + + '@volar/language-service@2.4.6': + resolution: {integrity: sha512-wNeEVBgBKgpP1MfMYPrgTf1K8nhOGEh3ac0+9n6ECyk2N03+j0pWCpQ2i99mRWT/POvo1PgizDmYFH8S67bZOA==} + + '@volar/source-map@2.4.6': + resolution: {integrity: sha512-Nsh7UW2ruK+uURIPzjJgF0YRGP5CX9nQHypA2OMqdM2FKy7rh+uv3XgPnWPw30JADbKvZ5HuBzG4gSbVDYVtiw==} + + '@volar/typescript@2.4.6': + resolution: {integrity: sha512-NMIrA7y5OOqddL9VtngPWYmdQU03htNKFtAYidbYfWA0TOhyGVd9tfcP4TsLWQ+RBWDZCbBqsr8xzU0ZOxYTCQ==} + + '@vscode/emmet-helper@2.9.3': + resolution: {integrity: sha512-rB39LHWWPQYYlYfpv9qCoZOVioPCftKXXqrsyqN1mTWZM6dTnONT63Db+03vgrBbHzJN45IrgS/AGxw9iiqfEw==} + + '@vscode/l10n@0.0.18': + resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} + + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.12.1: + resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + ansi-align@3.0.1: + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + + are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-iterate@2.0.1: + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true + + astro-cloudinary@1.1.2: + resolution: {integrity: sha512-cbZtrzT/2nLPz26nnZXt9hWzfhT2sqKFVDm9lUJydM3tKIVIT4xKmSP+qXD2r3LV99O4ikp8mmY+A4/KUZukBg==} + peerDependencies: + astro: ^3.2.0 || ^4.0.0 + + astro-eslint-parser@1.0.3: + resolution: {integrity: sha512-AGsGgcg7Jg9UpyCDgvl/EkdYpe1oMkFdmC2Zl+KWneoieLCtQIFjmcY8yt41gcNx4mby0w8BBJQcBmPuf8UAoQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + astro-icon@1.1.1: + resolution: {integrity: sha512-HKBesWk2Faw/0+klLX+epQVqdTfSzZz/9+5vxXUjTJaN/HnpDf608gRPgHh7ZtwBPNJMEFoU5GLegxoDcT56OQ==} + + astro-pagefind@1.6.0: + resolution: {integrity: sha512-U/WuE0ktkZkoFJf6yopWO4DjIJ3+wrnopE2L3kUYiyqNTJpqmp13bFLR8gir6B+KzQ5dsXQtJZYTQtKJg1FxIA==} + peerDependencies: + astro: ^2.0.4 || ^3.0.0 || ^4.0.0 + + astro@4.16.13: + resolution: {integrity: sha512-Mtd76+BC0zLWqoXpf9xc731AhdH4MNh5JFHYdLRvSH0Nqn48hA64dPGh/cWsJvh/DZFmC0NTZusM1Qq2gyNaVg==} + engines: {node: ^18.17.1 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} + hasBin: true + + astrojs-compiler-sync@1.0.0: + resolution: {integrity: sha512-IM6FxpMoBxkGGdKppkFHNQIC9Wge7jspG2MIJff8DOhG41USNJLxJfxRm7wnkTKWlYK5Y1YFFNYr2vUUKkI8sw==} + engines: {node: ^18.18.0 || >=20.9.0} + peerDependencies: + '@astrojs/compiler': '>=0.27.0' + + async-sema@3.1.1: + resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base-64@1.0.0: + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + + base64-js@0.0.8: + resolution: {integrity: sha512-3XSA2cR/h/73EzlXXdU6YNycmYI7+kicTxks4eJg2g39biHR84slg2+des+p7iHYhbRg/udIS4TD53WabcOUkw==} + engines: {node: '>= 0.4'} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + + blurhash@2.0.5: + resolution: {integrity: sha512-cRygWd7kGBQO3VEhPiTgq4Wc43ctsM+o46urrmPOiuAe+07fzlSB9OJVdpgDL0jPqXUVQ9ht7aq7kxOeJHRK+w==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + boxen@8.0.1: + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} + engines: {node: '>=18'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + bundle-require@5.0.0: + resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + esbuild: '>=0.18' + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} + + camelize@1.0.1: + resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==} + + caniuse-lite@1.0.30001667: + resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.3.0: + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + + cheerio-select@2.1.0: + resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} + + cheerio@1.0.0: + resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} + engines: {node: '>=18.17'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + ci-info@4.0.0: + resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + engines: {node: '>=8'} + + class-variance-authority@0.7.0: + resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} + + clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + + cli-boxes@3.0.0: + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} + + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clsx@2.0.0: + resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} + engines: {node: '>=6'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + + commander@7.2.0: + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} + + common-ancestor-path@1.0.1: + resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + + core-js-compat@3.38.1: + resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + css-background-parser@0.1.0: + resolution: {integrity: sha512-2EZLisiZQ+7m4wwur/qiYJRniHX4K5Tc9w93MT3AS0WS1u5kaZ4FKXlOTBhOjc+CgEgPiGY+fX1yWD8UwpEqUA==} + + css-box-shadow@1.0.0-3: + resolution: {integrity: sha512-9jaqR6e7Ohds+aWwmhe6wILJ99xYQbfmK9QQB9CcMjDbTxPZjwEmUQpU91OG05Xgm8BahT5fW+svbsQGjS/zPg==} + + css-color-keywords@1.0.0: + resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==} + engines: {node: '>=4'} + + css-gradient-parser@0.0.16: + resolution: {integrity: sha512-3O5QdqgFRUbXvK1x5INf1YkBz1UKSWqrd63vWsum8MNHDBYD5urm3QtxZbKU259OrEXNM26lP/MPY3d1IGkBgA==} + engines: {node: '>=16'} + + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-to-react-native@3.2.0: + resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==} + + css-tree@2.2.1: + resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + css-tree@2.3.1: + resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csso@5.0.5: + resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + + deterministic-object-hash@2.0.2: + resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} + engines: {node: '>=18'} + + devalue@5.1.1: + resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} + engines: {node: '>=0.3.1'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + + dset@3.1.4: + resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} + engines: {node: '>=4'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + electron-to-chromium@1.5.33: + resolution: {integrity: sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==} + + emmet@2.4.11: + resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} + + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + encoding-sniffer@0.2.0: + resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + + esast-util-from-estree@2.0.0: + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + + esast-util-from-js@2.0.1: + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escape-string-regexp@5.0.0: + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} + + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + + eslint-plugin-astro@1.2.4: + resolution: {integrity: sha512-45uXKW6lxmYEa8Gkh5lCfwAnOyQD90AaMS2Bu9ans88f+pFkliqjGeexiKv73oiTcY3I0vlzTUk5GlqvYlkjyA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.57.0' + + eslint-plugin-unicorn@56.0.0: + resolution: {integrity: sha512-aXpddVz/PQMmd69uxO98PA4iidiVNvA0xOtbpUoz1WhBd4RxOQQYqN618v68drY0hmy5uU2jy1bheKEVWBjlPw==} + engines: {node: '>=18.18'} + peerDependencies: + eslint: '>=8.56.0' + + eslint-scope@8.1.0: + resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.1.0: + resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.12.0: + resolution: {integrity: sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.2.0: + resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-scope@1.0.0: + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-uri@3.0.2: + resolution: {integrity: sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==} + + fast-xml-parser@4.5.0: + resolution: {integrity: sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==} + hasBin: true + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + + fdir@6.4.0: + resolution: {integrity: sha512-3oB133prH1o4j/L5lLW7uOCF1PlD+/It2L0eL/iAqWMB91RBbqTewABqxhj0ibBd90EEmWZq7ntIWzVaWcXTGQ==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fflate@0.7.4: + resolution: {integrity: sha512-5u2V/CDW15QM1XbbgS+0DfPxVB+jUKhWEKuuFuHncbk3tEEqzmoXL+2KyOFuKGqOnmdIy0/davWF1CkuwtibCw==} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + flattie@1.1.1: + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} + engines: {node: '>=8'} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + fuse.js@7.0.0: + resolution: {integrity: sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==} + engines: {node: '>=10'} + + gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.2.0: + resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + engines: {node: '>=18'} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + globals@15.11.0: + resolution: {integrity: sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==} + engines: {node: '>=18'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + gray-matter@4.0.3: + resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} + engines: {node: '>=6.0'} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} + + hast-util-from-parse5@8.0.1: + resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} + + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + + hast-util-raw@9.0.4: + resolution: {integrity: sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==} + + hast-util-to-estree@3.1.0: + resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} + + hast-util-to-html@9.0.3: + resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} + + hast-util-to-jsx-runtime@2.3.2: + resolution: {integrity: sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==} + + hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@8.0.0: + resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} + + hex-rgb@4.3.0: + resolution: {integrity: sha512-Ox1pJVrDCyGHMG9CFg1tmrRUMRPRsAWYc/PinY0XzJU4K7y7vjNoLKIQ7BR5UJMCxNN8EM1MNDmHWA/B3aZUuw==} + engines: {node: '>=6'} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + html-escaper@3.0.3: + resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + + htmlparser2@9.1.0: + resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + husky@9.1.6: + resolution: {integrity: sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==} + engines: {node: '>=18'} + hasBin: true + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + import-meta-resolve@4.1.0: + resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + inline-style-parser@0.1.1: + resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} + + inline-style-parser@0.2.4: + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-interactive@2.0.0: + resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} + engines: {node: '>=12'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-unicode-supported@1.3.0: + resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} + engines: {node: '>=12'} + + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + + jpeg-js@0.4.4: + resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-parser@2.3.1: + resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} + + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + kolorist@1.8.0: + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + + lilconfig@3.1.2: + resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + engines: {node: '>=14'} + + linebreak@1.1.0: + resolution: {integrity: sha512-MHp03UImeVhB7XZtjd0E4n6+3xr5Dq/9xI/5FptGk5FrbDR3zagPa2DS6U8ks/3HjbKWG9Q1M2ufOzxV2qLYSQ==} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + lint-staged@15.2.10: + resolution: {integrity: sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==} + engines: {node: '>=18.12.0'} + hasBin: true + + listr2@8.2.5: + resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} + engines: {node: '>=18.0.0'} + + load-tsconfig@0.2.5: + resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + + local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.castarray@4.4.0: + resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.kebabcase@4.1.1: + resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-symbols@6.0.0: + resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + engines: {node: '>=18'} + + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + magic-string@0.30.12: + resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} + + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + + markdown-table@3.0.3: + resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + + mdast-util-definitions@6.0.0: + resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} + + mdast-util-find-and-replace@3.0.1: + resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} + + mdast-util-from-markdown@2.0.1: + resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} + + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + + mdast-util-gfm-footnote@2.0.0: + resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} + + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + + mdast-util-gfm@3.0.0: + resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} + + mdast-util-heading-range@2.1.5: + resolution: {integrity: sha512-jXbFD0C+MfRkwsaze+btzG9CmVrxnc5kpcJLtx3SvSlPWnNdGMlDRHKDB9/TIPEq9nRHnkixppT8yvaUJ5agJg==} + + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + + mdast-util-mdx-jsx@3.1.3: + resolution: {integrity: sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==} + + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + + mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + + mdast-util-to-string@1.1.0: + resolution: {integrity: sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdast-util-toc@7.1.0: + resolution: {integrity: sha512-2TVKotOQzqdY7THOdn2gGzS9d1Sdd66bvxUyw3aNpWfcPXCLYSJCCgfPy30sEtuzkDraJgqF35dzgmz6xlvH/w==} + + mdn-data@2.0.28: + resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} + + mdn-data@2.0.30: + resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromark-core-commonmark@2.0.1: + resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} + + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + + micromark-extension-gfm-table@2.1.0: + resolution: {integrity: sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==} + + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + + micromark-extension-mdx-expression@3.0.0: + resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} + + micromark-extension-mdx-jsx@3.0.1: + resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + + micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + + micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + + micromark-factory-mdx-expression@2.0.2: + resolution: {integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==} + + micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + + micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + + micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + + micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + + micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + + micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + + micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + + micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + + micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + + micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + + micromark-util-events-to-acorn@2.0.2: + resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} + + micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + + micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + + micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + + micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + + micromark-util-subtokenize@2.0.1: + resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} + + micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + + micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + + micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@4.2.8: + resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mlly@1.7.2: + resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==} + + mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + muggle-string@0.4.1: + resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + neotraverse@0.6.18: + resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} + engines: {node: '>= 10'} + + nlcst-to-string@4.0.0: + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + + node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-gyp-build@4.8.3: + resolution: {integrity: sha512-EMS95CMJzdoSKoIiXo8pxKoL8DYxwIZXYlLmgPb8KUv794abpnLK6ynsCAWNliOjREKruYKdzbh76HHYUHX7nw==} + hasBin: true + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + deprecated: This package is no longer supported. + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + + ofetch@1.3.3: + resolution: {integrity: sha512-s1ZCMmQWXy4b5K/TW9i/DtiN8Ku+xCiHcjQ6/J/nDdssirrQNOoB165Zu8EqLMA2lln1JUth9a0aW9Ap2ctrUg==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + + oniguruma-to-js@0.4.3: + resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + ora@8.1.1: + resolution: {integrity: sha512-YWielGi1XzG1UTvOaCFaNgEnuhZVMSHYkW/FQ7UX8O26PtlpdM84c0f7wLPlkvx2RfiQmnzd61d/MGxmpQeJPw==} + engines: {node: '>=18'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-limit@6.1.0: + resolution: {integrity: sha512-H0jc0q1vOzlEk0TqAKXKZxdl7kX3OFUzCnNVUnq5Pc3DGo0kpeaMuPqxQn235HibwBEb0/pm9dgKTjXy66fBkg==} + engines: {node: '>=18'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-queue@8.0.1: + resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} + engines: {node: '>=18'} + + p-timeout@6.1.2: + resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} + engines: {node: '>=14.16'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + package-manager-detector@0.2.2: + resolution: {integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==} + + pagefind@1.1.1: + resolution: {integrity: sha512-U2YR0dQN5B2fbIXrLtt/UXNS0yWSSYfePaad1KcBPTi0p+zRtsVjwmoPaMQgTks5DnHNbmDxyJUL5TGaLljK3A==} + hasBin: true + + pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-css-color@0.2.1: + resolution: {integrity: sha512-bwS/GGIFV3b6KS4uwpzCFj4w297Yl3uqnSgIPsoQkx7GMLROXfMnWvxfNkL0oh8HVhZA4hvJoEoEIqonfJ3BWg==} + + parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-latin@7.0.0: + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} + + parse5-htmlparser2-tree-adapter@7.0.0: + resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} + + parse5-parser-stream@7.1.2: + resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + + parse5@7.1.2: + resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + picocolors@1.1.0: + resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pkg-types@1.2.1: + resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + pngjs@7.0.0: + resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==} + engines: {node: '>=14.19.0'} + + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + + postcss-load-config@6.0.1: + resolution: {integrity: sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==} + engines: {node: '>= 18'} + peerDependencies: + jiti: '>=1.21.0' + postcss: '>=8.0.9' + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + jiti: + optional: true + postcss: + optional: true + tsx: + optional: true + yaml: + optional: true + + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + + postcss-selector-parser@6.0.10: + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + engines: {node: ^10 || ^12 || >=14} + + preferred-pm@4.0.0: + resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==} + engines: {node: '>=18.12'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-plugin-astro@0.14.1: + resolution: {integrity: sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==} + engines: {node: ^14.15.0 || >=16.0.0} + + prettier-plugin-tailwindcss@0.6.8: + resolution: {integrity: sha512-dGu3kdm7SXPkiW4nzeWKCl3uoImdd5CTZEJGxyypEPL37Wj0HT2pLqjrvSei1nTeuQfO4PUfjeW5cTUNRLZ4sA==} + engines: {node: '>=14.21.3'} + peerDependencies: + '@ianvs/prettier-plugin-sort-imports': '*' + '@prettier/plugin-pug': '*' + '@shopify/prettier-plugin-liquid': '*' + '@trivago/prettier-plugin-sort-imports': '*' + '@zackad/prettier-plugin-twig-melody': '*' + prettier: ^3.0 + prettier-plugin-astro: '*' + prettier-plugin-css-order: '*' + prettier-plugin-import-sort: '*' + prettier-plugin-jsdoc: '*' + prettier-plugin-marko: '*' + prettier-plugin-multiline-arrays: '*' + prettier-plugin-organize-attributes: '*' + prettier-plugin-organize-imports: '*' + prettier-plugin-sort-imports: '*' + prettier-plugin-style-order: '*' + prettier-plugin-svelte: '*' + peerDependenciesMeta: + '@ianvs/prettier-plugin-sort-imports': + optional: true + '@prettier/plugin-pug': + optional: true + '@shopify/prettier-plugin-liquid': + optional: true + '@trivago/prettier-plugin-sort-imports': + optional: true + '@zackad/prettier-plugin-twig-melody': + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-css-order: + optional: true + prettier-plugin-import-sort: + optional: true + prettier-plugin-jsdoc: + optional: true + prettier-plugin-marko: + optional: true + prettier-plugin-multiline-arrays: + optional: true + prettier-plugin-organize-attributes: + optional: true + prettier-plugin-organize-imports: + optional: true + prettier-plugin-sort-imports: + optional: true + prettier-plugin-style-order: + optional: true + prettier-plugin-svelte: + optional: true + + prettier@2.8.7: + resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} + engines: {node: '>=10.13.0'} + hasBin: true + + prettier@3.3.3: + resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==} + engines: {node: '>=14'} + hasBin: true + + prismjs@1.29.0: + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.3.1 + + react-hook-form@7.53.2: + resolution: {integrity: sha512-YVel6fW5sOeedd1524pltpHX+jgU2u3DSDtXEaBORNdqiNrsX/nUI/iGXONegttg0mJVnfrIkiV0cmTU6Oo2xw==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^16.8.0 || ^17 || ^18 || ^19 + + react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + engines: {node: '>=0.10.0'} + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + + reading-time@1.5.0: + resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} + + recma-build-jsx@1.0.0: + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + + recma-jsx@1.0.0: + resolution: {integrity: sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==} + + recma-parse@1.0.0: + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + + recma-stringify@1.0.0: + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + + regex@4.3.3: + resolution: {integrity: sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + + rehype-parse@9.0.1: + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} + + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + + rehype-recma@1.0.0: + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + + rehype-stringify@10.0.1: + resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} + + rehype@13.0.2: + resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} + + remark-collapse@0.1.2: + resolution: {integrity: sha512-x2lhtaT4nR1Tkp/hftoeiMHbdAntxu5Q9D6lymwMqUtoF2pg3bqNaa8NO/8yyOVhddYk0d0dkhGc+avGUf0lZA==} + + remark-gfm@4.0.0: + resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} + + remark-mdx@3.0.1: + resolution: {integrity: sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.1: + resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} + + remark-smartypants@3.0.2: + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} + engines: {node: '>=16.0.0'} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + remark-toc@9.0.0: + resolution: {integrity: sha512-KJ9txbo33GjDAV1baHFze7ij4G8c7SGYoY8Kzsm2gzFpbhL/bSoVpMMzGa3vrNDSWASNd/3ppAqL7cP2zD6JIA==} + + request-light@0.5.8: + resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==} + + request-light@0.7.0: + resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + retext-latin@4.0.0: + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} + + retext-smartypants@6.1.1: + resolution: {integrity: sha512-onsHf34i/GzgElJgtT1K2V+31yEhWs7NJboKNxXJcmVMMPxLpgxZ9iADoMdydd6j/bHic5F/aNq0CGqElEtu2g==} + + retext-stringify@4.0.0: + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} + + retext@9.0.0: + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rollup@4.24.0: + resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + s.color@0.0.15: + resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sass-formatter@0.7.9: + resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==} + + satori@0.11.2: + resolution: {integrity: sha512-uEPLbx89BfwzJroECvnTg8IQ+XxqkMl0apvB41mm8fmc6brzHA8bu9Etu43UoUF4ECnACPiDDFz6PfYDG0S46Q==} + engines: {node: '>=16'} + + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + section-matter@1.0.0: + resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} + engines: {node: '>=4'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shiki@1.22.2: + resolution: {integrity: sha512-3IZau0NdGKXhH2bBlUk4w1IHNxPh6A5B2sUpyY+8utLu2j/h1QpFkAaUA1bAMxOWWGtTWcAh531vnS4NJKS/lA==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + + sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + sitemap@8.0.0: + resolution: {integrity: sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A==} + engines: {node: '>=14.0.0', npm: '>=6.0.0'} + hasBin: true + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + stdin-discarder@0.2.2: + resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} + engines: {node: '>=18'} + + stream-replace-string@2.0.0: + resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} + + string-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string.prototype.codepointat@0.2.1: + resolution: {integrity: sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom-string@1.0.0: + resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} + engines: {node: '>=0.10.0'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strnum@1.0.5: + resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} + + style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} + + style-to-object@1.0.8: + resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + + suf-log@2.5.3: + resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + svgo@3.3.2: + resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==} + engines: {node: '>=14.0.0'} + hasBin: true + + synckit@0.9.2: + resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} + engines: {node: ^14.18.0 || >=16.0.0} + + tailwind-merge@2.5.3: + resolution: {integrity: sha512-d9ZolCAIzom1nf/5p4LdD5zvjmgSxY0BGgdSvmXIoMYAiPdAW/dSpP7joCDYFY7r/HkEa2qmPtkgsu0xjQeQtw==} + + tailwindcss-motion@0.4.1-beta: + resolution: {integrity: sha512-yCybZsy6Vq4mgKS4KN41mGKfsOQVzgcapUEQ7Rws1gfN7zZUEm2gji6x6KAWNYf64lstVXPmZuxMmPaQp4XyLA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + + tailwindcss@3.4.13: + resolution: {integrity: sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==} + engines: {node: '>=14.0.0'} + hasBin: true + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + + tinyexec@0.3.0: + resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} + + tinyexec@0.3.1: + resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} + + tinyglobby@0.2.9: + resolution: {integrity: sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==} + engines: {node: '>=12.0.0'} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + ts-api-utils@1.3.0: + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + + tsconfck@3.1.4: + resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + tsup@8.3.0: + resolution: {integrity: sha512-ALscEeyS03IomcuNdFdc0YWGVIkwH1Ws7nfTbAPuoILvEV2hpGQAY72LIOjglGo4ShWpZfpBqP/jpQVCzqYQag==} + engines: {node: '>=18'} + hasBin: true + peerDependencies: + '@microsoft/api-extractor': ^7.36.0 + '@swc/core': ^1 + postcss: ^8.4.12 + typescript: '>=4.5.0' + peerDependenciesMeta: + '@microsoft/api-extractor': + optional: true + '@swc/core': + optional: true + postcss: + optional: true + typescript: + optional: true + + tsx@4.19.1: + resolution: {integrity: sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==} + engines: {node: '>=18.0.0'} + hasBin: true + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@4.26.1: + resolution: {integrity: sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==} + engines: {node: '>=16'} + + typesafe-path@0.2.2: + resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} + + typescript-auto-import-cache@0.3.3: + resolution: {integrity: sha512-ojEC7+Ci1ij9eE6hp8Jl9VUNnsEKzztktP5gtYNRMrTmfXVwA1PITYYAkpxCvvupdSYa/Re51B6KMcv1CTZEUA==} + + typescript-eslint@8.8.1: + resolution: {integrity: sha512-R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4PbQMQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + ultrahtml@1.5.3: + resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} + + undici@6.20.0: + resolution: {integrity: sha512-AITZfPuxubm31Sx0vr8bteSalEbs9wQb/BOBi9FPlD9Qpd6HxZ4Q0+hI742jBhkPb4RT2v5MQzaW5VhRVyj+9A==} + engines: {node: '>=18.17'} + + unicode-trie@2.0.0: + resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-modify-children@4.0.0: + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} + + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-children@3.0.0: + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + unpic@3.18.0: + resolution: {integrity: sha512-JemzuG3nyKpEQ/DArrYM0l+LDSLLPYiUQvDfGXJY35+r0J0C984vPB4Zh8DyMVip102YSnTeZtZ6Q8OQegQDRQ==} + + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + urlpattern-polyfill@8.0.2: + resolution: {integrity: sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vite@5.4.11: + resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vitefu@1.0.3: + resolution: {integrity: sha512-iKKfOMBHob2WxEJbqbJjHAkmYgvFDPhuqrO82om83S8RLk+17FtyMBfcyeH8GqD0ihShtkMW/zzJgiA51hCNCQ==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0-beta.0 + peerDependenciesMeta: + vite: + optional: true + + volar-service-css@0.0.61: + resolution: {integrity: sha512-Ct9L/w+IB1JU8F4jofcNCGoHy6TF83aiapfZq9A0qYYpq+Kk5dH+ONS+rVZSsuhsunq8UvAuF8Gk6B8IFLfniw==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-emmet@0.0.61: + resolution: {integrity: sha512-iiYqBxjjcekqrRruw4COQHZME6EZYWVbkHjHDbULpml3g8HGJHzpAMkj9tXNCPxf36A+f1oUYjsvZt36qPg4cg==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-html@0.0.61: + resolution: {integrity: sha512-yFE+YmmgqIL5HI4ORqP++IYb1QaGcv+xBboI0WkCxJJ/M35HZj7f5rbT3eQ24ECLXFbFCFanckwyWJVz5KmN3Q==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-prettier@0.0.61: + resolution: {integrity: sha512-F612nql5I0IS8HxXemCGvOR2Uxd4XooIwqYVUvk7WSBxP/+xu1jYvE3QJ7EVpl8Ty3S4SxPXYiYTsG3bi+gzIQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + prettier: ^2.2 || ^3.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + prettier: + optional: true + + volar-service-typescript-twoslash-queries@0.0.61: + resolution: {integrity: sha512-99FICGrEF0r1E2tV+SvprHPw9Knyg7BdW2fUch0tf59kG+KG+Tj4tL6tUg+cy8f23O/VXlmsWFMIE+bx1dXPnQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-typescript@0.0.61: + resolution: {integrity: sha512-4kRHxVbW7wFBHZWRU6yWxTgiKETBDIJNwmJUAWeP0mHaKpnDGj/astdRFKqGFRYVeEYl45lcUPhdJyrzanjsdQ==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + volar-service-yaml@0.0.61: + resolution: {integrity: sha512-L+gbDiLDQQ1rZUbJ3mf3doDsoQUa8OZM/xdpk/unMg1Vz24Zmi2Ign8GrZyBD7bRoIQDwOH9gdktGDKzRPpUNw==} + peerDependencies: + '@volar/language-service': ~2.4.0 + peerDependenciesMeta: + '@volar/language-service': + optional: true + + vscode-css-languageservice@6.3.1: + resolution: {integrity: sha512-1BzTBuJfwMc3A0uX4JBdJgoxp74cjj4q2mDJdp49yD/GuAq4X0k5WtK6fNcMYr+FfJ9nqgR6lpfCSZDkARJ5qQ==} + + vscode-html-languageservice@5.3.1: + resolution: {integrity: sha512-ysUh4hFeW/WOWz/TO9gm08xigiSsV/FOAZ+DolgJfeLftna54YdmZ4A+lIn46RbdO3/Qv5QHTn1ZGqmrXQhZyA==} + + vscode-json-languageservice@4.1.8: + resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} + engines: {npm: '>=7.0.0'} + + vscode-jsonrpc@6.0.0: + resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} + engines: {node: '>=8.0.0 || >=10.0.0'} + + vscode-jsonrpc@8.2.0: + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.16.0: + resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} + + vscode-languageserver-protocol@3.17.5: + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + + vscode-languageserver-textdocument@1.0.12: + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + + vscode-languageserver-types@3.16.0: + resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} + + vscode-languageserver-types@3.17.5: + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + + vscode-languageserver@7.0.0: + resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} + hasBin: true + + vscode-languageserver@9.0.1: + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + hasBin: true + + vscode-nls@5.2.0: + resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} + + vscode-uri@2.1.2: + resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} + + vscode-uri@3.0.8: + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + + whatwg-encoding@3.1.1: + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + + whatwg-mimetype@4.0.0: + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + + which-pm-runs@1.1.0: + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} + + which-pm@3.0.0: + resolution: {integrity: sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==} + engines: {node: '>=18.12'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + + widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + xxhash-wasm@1.0.2: + resolution: {integrity: sha512-ibF0Or+FivM9lNrg+HGJfVX8WJqgo+kCLDc4vx6xMeTce7Aj+DLttKbxxRR/gNLSAelRc1omAPlJ77N/Jem07A==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml-language-server@1.15.0: + resolution: {integrity: sha512-N47AqBDCMQmh6mBLmI6oqxryHRzi33aPFPsJhYy3VTUGCdLHYjGh4FZzpUjRlphaADBBkDmnkM/++KNIOHi5Rw==} + hasBin: true + + yaml@2.2.2: + resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} + engines: {node: '>= 14'} + + yaml@2.5.1: + resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} + engines: {node: '>=12.20'} + + yoga-wasm-web@0.3.3: + resolution: {integrity: sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==} + + zod-to-json-schema@3.23.5: + resolution: {integrity: sha512-5wlSS0bXfF/BrL4jPAbz9da5hDlDptdEppYfe+x4eIJ7jioqKG9uUxOwPzqof09u/XeVdrgFu29lZi+8XNDJtA==} + peerDependencies: + zod: ^3.23.3 + + zod-to-ts@1.2.0: + resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} + peerDependencies: + typescript: ^4.9.4 || ^5.0.2 + zod: ^3 + + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@alloc/quick-lru@5.2.0': {} + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@antfu/install-pkg@0.4.1': + dependencies: + package-manager-detector: 0.2.2 + tinyexec: 0.3.0 + + '@antfu/utils@0.7.10': {} + + '@astrojs/check@0.9.4(prettier-plugin-astro@0.14.1)(prettier@3.3.3)(typescript@5.6.3)': + dependencies: + '@astrojs/language-server': 2.15.0(prettier-plugin-astro@0.14.1)(prettier@3.3.3)(typescript@5.6.3) + chokidar: 4.0.1 + kleur: 4.1.5 + typescript: 5.6.3 + yargs: 17.7.2 + transitivePeerDependencies: + - prettier + - prettier-plugin-astro + + '@astrojs/compiler@2.10.3': {} + + '@astrojs/internal-helpers@0.4.1': {} + + '@astrojs/language-server@2.15.0(prettier-plugin-astro@0.14.1)(prettier@3.3.3)(typescript@5.6.3)': + dependencies: + '@astrojs/compiler': 2.10.3 + '@astrojs/yaml2ts': 0.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@volar/kit': 2.4.6(typescript@5.6.3) + '@volar/language-core': 2.4.6 + '@volar/language-server': 2.4.6 + '@volar/language-service': 2.4.6 + fast-glob: 3.3.2 + muggle-string: 0.4.1 + volar-service-css: 0.0.61(@volar/language-service@2.4.6) + volar-service-emmet: 0.0.61(@volar/language-service@2.4.6) + volar-service-html: 0.0.61(@volar/language-service@2.4.6) + volar-service-prettier: 0.0.61(@volar/language-service@2.4.6)(prettier@3.3.3) + volar-service-typescript: 0.0.61(@volar/language-service@2.4.6) + volar-service-typescript-twoslash-queries: 0.0.61(@volar/language-service@2.4.6) + volar-service-yaml: 0.0.61(@volar/language-service@2.4.6) + vscode-html-languageservice: 5.3.1 + vscode-uri: 3.0.8 + optionalDependencies: + prettier: 3.3.3 + prettier-plugin-astro: 0.14.1 + transitivePeerDependencies: + - typescript + + '@astrojs/markdown-remark@5.3.0': + dependencies: + '@astrojs/prism': 3.1.0 + github-slugger: 2.0.0 + hast-util-from-html: 2.0.3 + hast-util-to-text: 4.0.2 + import-meta-resolve: 4.1.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 7.0.0 + rehype-stringify: 10.0.1 + remark-gfm: 4.0.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.1 + remark-smartypants: 3.0.2 + shiki: 1.22.2 + unified: 11.0.5 + unist-util-remove-position: 5.0.0 + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/markdown-remark@6.0.0-beta.2': + dependencies: + '@astrojs/prism': 3.1.0 + github-slugger: 2.0.0 + hast-util-from-html: 2.0.3 + hast-util-to-text: 4.0.2 + import-meta-resolve: 4.1.0 + js-yaml: 4.1.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 7.0.0 + rehype-stringify: 10.0.1 + remark-gfm: 4.0.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.1 + remark-smartypants: 3.0.2 + shiki: 1.22.2 + unified: 11.0.5 + unist-util-remove-position: 5.0.0 + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/mdx@3.1.9(astro@4.16.13(rollup@4.24.0)(typescript@5.6.3))': + dependencies: + '@astrojs/markdown-remark': 5.3.0 + '@mdx-js/mdx': 3.1.0(acorn@8.14.0) + acorn: 8.14.0 + astro: 4.16.13(rollup@4.24.0)(typescript@5.6.3) + es-module-lexer: 1.5.4 + estree-util-visit: 2.0.0 + gray-matter: 4.0.3 + hast-util-to-html: 9.0.3 + kleur: 4.1.5 + rehype-raw: 7.0.0 + remark-gfm: 4.0.0 + remark-smartypants: 3.0.2 + source-map: 0.7.4 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/netlify@5.5.4(astro@4.16.13(rollup@4.24.0)(typescript@5.6.3))': + dependencies: + '@astrojs/internal-helpers': 0.4.1 + '@astrojs/underscore-redirects': 0.3.4 + '@netlify/functions': 2.8.2 + '@vercel/nft': 0.27.6 + astro: 4.16.13(rollup@4.24.0)(typescript@5.6.3) + esbuild: 0.21.5 + vite: 5.4.11 + transitivePeerDependencies: + - '@types/node' + - encoding + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + '@astrojs/prism@3.1.0': + dependencies: + prismjs: 1.29.0 + + '@astrojs/react@3.6.2(@types/react-dom@18.3.0)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(vite@5.4.11)': + dependencies: + '@types/react': 18.3.11 + '@types/react-dom': 18.3.0 + '@vitejs/plugin-react': 4.3.2(vite@5.4.11) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + ultrahtml: 1.5.3 + transitivePeerDependencies: + - supports-color + - vite + + '@astrojs/rss@4.0.9': + dependencies: + fast-xml-parser: 4.5.0 + kleur: 4.1.5 + + '@astrojs/sitemap@3.2.1': + dependencies: + sitemap: 8.0.0 + stream-replace-string: 2.0.0 + zod: 3.23.8 + + '@astrojs/tailwind@5.1.2(astro@4.16.13(rollup@4.24.0)(typescript@5.6.3))(tailwindcss@3.4.13)': + dependencies: + astro: 4.16.13(rollup@4.24.0)(typescript@5.6.3) + autoprefixer: 10.4.20(postcss@8.4.47) + postcss: 8.4.47 + postcss-load-config: 4.0.2(postcss@8.4.47) + tailwindcss: 3.4.13 + transitivePeerDependencies: + - ts-node + + '@astrojs/telemetry@3.1.0': + dependencies: + ci-info: 4.0.0 + debug: 4.3.7 + dlv: 1.1.3 + dset: 3.1.4 + is-docker: 3.0.0 + is-wsl: 3.1.0 + which-pm-runs: 1.1.0 + transitivePeerDependencies: + - supports-color + + '@astrojs/underscore-redirects@0.3.4': {} + + '@astrojs/yaml2ts@0.2.1': + dependencies: + yaml: 2.5.1 + + '@astrolib/seo@1.0.0-beta.8(astro@4.16.13(rollup@4.24.0)(typescript@5.6.3))': + dependencies: + astro: 4.16.13(rollup@4.24.0)(typescript@5.6.3) + + '@astropub/md@1.0.0(@astrojs/markdown-remark@6.0.0-beta.2)': + dependencies: + '@astrojs/markdown-remark': 6.0.0-beta.2 + + '@babel/code-frame@7.25.7': + dependencies: + '@babel/highlight': 7.25.7 + picocolors: 1.1.0 + + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.0 + + '@babel/compat-data@7.25.7': {} + + '@babel/compat-data@7.26.2': {} + + '@babel/core@7.25.7': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.7) + '@babel/helpers': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 + convert-source-map: 2.0.0 + debug: 4.3.7 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/core@7.26.0': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + convert-source-map: 2.0.0 + debug: 4.3.7 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.25.7': + dependencies: + '@babel/types': 7.25.7 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + + '@babel/generator@7.26.2': + dependencies: + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + + '@babel/helper-annotate-as-pure@7.25.9': + dependencies: + '@babel/types': 7.26.0 + + '@babel/helper-compilation-targets@7.25.7': + dependencies: + '@babel/compat-data': 7.25.7 + '@babel/helper-validator-option': 7.25.7 + browserslist: 4.24.0 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-compilation-targets@7.25.9': + dependencies: + '@babel/compat-data': 7.26.2 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.0 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-module-imports@7.25.7': + dependencies: + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.25.9': + dependencies: + '@babel/traverse': 7.25.9 + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.7)': + dependencies: + '@babel/core': 7.25.7 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-simple-access': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + '@babel/traverse': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-plugin-utils@7.25.7': {} + + '@babel/helper-plugin-utils@7.25.9': {} + + '@babel/helper-simple-access@7.25.7': + dependencies: + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.25.7': {} + + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.7': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/helper-validator-option@7.25.7': {} + + '@babel/helper-validator-option@7.25.9': {} + + '@babel/helpers@7.25.7': + dependencies: + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 + + '@babel/helpers@7.26.0': + dependencies: + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + + '@babel/highlight@7.25.7': + dependencies: + '@babel/helper-validator-identifier': 7.25.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.1.0 + + '@babel/parser@7.25.7': + dependencies: + '@babel/types': 7.25.7 + + '@babel/parser@7.26.2': + dependencies: + '@babel/types': 7.26.0 + + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + + '@babel/plugin-transform-react-jsx-self@7.25.7(@babel/core@7.25.7)': + dependencies: + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-react-jsx-source@7.25.7(@babel/core@7.25.7)': + dependencies: + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/types': 7.26.0 + transitivePeerDependencies: + - supports-color + + '@babel/template@7.25.7': + dependencies: + '@babel/code-frame': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 + + '@babel/template@7.25.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + + '@babel/traverse@7.25.7': + dependencies: + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 + debug: 4.3.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/traverse@7.25.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.2 + '@babel/parser': 7.26.2 + '@babel/template': 7.25.9 + '@babel/types': 7.26.0 + debug: 4.3.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.25.7': + dependencies: + '@babel/helper-string-parser': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + to-fast-properties: 2.0.0 + + '@babel/types@7.26.0': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@cloudinary-util/types@1.5.10': {} + + '@cloudinary-util/types@1.5.7': {} + + '@cloudinary-util/url-loader@5.10.5': + dependencies: + '@cloudinary-util/types': 1.5.10 + '@cloudinary-util/util': 3.3.2 + '@cloudinary/url-gen': 1.15.0 + zod: 3.23.8 + + '@cloudinary-util/util@3.3.2': {} + + '@cloudinary/transformation-builder-sdk@1.15.2': + dependencies: + '@cloudinary/url-gen': 1.21.0 + + '@cloudinary/url-gen@1.15.0': + dependencies: + '@cloudinary/transformation-builder-sdk': 1.15.2 + + '@cloudinary/url-gen@1.21.0': + dependencies: + '@cloudinary/transformation-builder-sdk': 1.15.2 + + '@emmetio/abbreviation@2.3.3': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-abbreviation@2.1.8': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/css-parser@0.4.0': + dependencies: + '@emmetio/stream-reader': 2.2.0 + '@emmetio/stream-reader-utils': 0.1.0 + + '@emmetio/html-matcher@1.3.0': + dependencies: + '@emmetio/scanner': 1.0.4 + + '@emmetio/scanner@1.0.4': {} + + '@emmetio/stream-reader-utils@0.1.0': {} + + '@emmetio/stream-reader@2.2.0': {} + + '@emnapi/runtime@1.3.0': + dependencies: + tslib: 2.7.0 + optional: true + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/aix-ppc64@0.23.1': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.23.1': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-arm@0.23.1': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/android-x64@0.23.1': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.23.1': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.23.1': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.23.1': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.23.1': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.23.1': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-arm@0.23.1': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.23.1': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.23.1': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.23.1': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.23.1': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.23.1': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.23.1': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/linux-x64@0.23.1': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.23.1': + optional: true + + '@esbuild/openbsd-arm64@0.23.1': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.23.1': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.23.1': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.23.1': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.23.1': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@esbuild/win32-x64@0.23.1': + optional: true + + '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0(jiti@1.21.6))': + dependencies: + eslint: 9.12.0(jiti@1.21.6) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.11.1': {} + + '@eslint/config-array@0.18.0': + dependencies: + '@eslint/object-schema': 2.1.4 + debug: 4.3.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/core@0.6.0': {} + + '@eslint/eslintrc@3.1.0': + dependencies: + ajv: 6.12.6 + debug: 4.3.7 + espree: 10.2.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.12.0': {} + + '@eslint/object-schema@2.1.4': {} + + '@eslint/plugin-kit@0.2.0': + dependencies: + levn: 0.4.1 + + '@hookform/resolvers@3.9.1(react-hook-form@7.53.2(react@18.3.1))': + dependencies: + react-hook-form: 7.53.2(react@18.3.1) + + '@humanfs/core@0.19.0': {} + + '@humanfs/node@0.16.5': + dependencies: + '@humanfs/core': 0.19.0 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@iconify/tools@4.0.7': + dependencies: + '@iconify/types': 2.0.0 + '@iconify/utils': 2.1.33 + '@types/tar': 6.1.13 + axios: 1.7.7 + cheerio: 1.0.0 + domhandler: 5.0.3 + extract-zip: 2.0.1 + local-pkg: 0.5.0 + pathe: 1.1.2 + svgo: 3.3.2 + tar: 6.2.1 + transitivePeerDependencies: + - debug + - supports-color + + '@iconify/types@2.0.0': {} + + '@iconify/utils@2.1.33': + dependencies: + '@antfu/install-pkg': 0.4.1 + '@antfu/utils': 0.7.10 + '@iconify/types': 2.0.0 + debug: 4.3.7 + kolorist: 1.8.0 + local-pkg: 0.5.0 + mlly: 1.7.2 + transitivePeerDependencies: + - supports-color + + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.3.0 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@mapbox/node-pre-gyp@1.0.11': + dependencies: + detect-libc: 2.0.3 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.7.0 + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.6.3 + tar: 6.2.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@mdx-js/mdx@3.1.0(acorn@8.14.0)': + dependencies: + '@types/estree': 1.0.6 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + hast-util-to-jsx-runtime: 2.3.2 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.0(acorn@8.14.0) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.0.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.1 + source-map: 0.7.4 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - acorn + - supports-color + + '@netlify/functions@2.8.2': + dependencies: + '@netlify/serverless-functions-api': 1.26.1 + + '@netlify/node-cookies@0.1.0': {} + + '@netlify/serverless-functions-api@1.26.1': + dependencies: + '@netlify/node-cookies': 0.1.0 + urlpattern-polyfill: 8.0.2 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@notionhq/client@2.2.15': + dependencies: + '@types/node-fetch': 2.6.11 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + '@oslojs/encoding@1.1.0': {} + + '@pagefind/darwin-arm64@1.1.1': + optional: true + + '@pagefind/darwin-x64@1.1.1': + optional: true + + '@pagefind/default-ui@1.1.1': {} + + '@pagefind/linux-arm64@1.1.1': + optional: true + + '@pagefind/linux-x64@1.1.1': + optional: true + + '@pagefind/windows-x64@1.1.1': + optional: true + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.1.1': {} + + '@polka/url@1.0.0-next.28': {} + + '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@radix-ui/react-slot@1.1.0(@types/react@18.3.11)(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.11 + + '@resvg/resvg-js-android-arm-eabi@2.6.2': + optional: true + + '@resvg/resvg-js-android-arm64@2.6.2': + optional: true + + '@resvg/resvg-js-darwin-arm64@2.6.2': + optional: true + + '@resvg/resvg-js-darwin-x64@2.6.2': + optional: true + + '@resvg/resvg-js-linux-arm-gnueabihf@2.6.2': + optional: true + + '@resvg/resvg-js-linux-arm64-gnu@2.6.2': + optional: true + + '@resvg/resvg-js-linux-arm64-musl@2.6.2': + optional: true + + '@resvg/resvg-js-linux-x64-gnu@2.6.2': + optional: true + + '@resvg/resvg-js-linux-x64-musl@2.6.2': + optional: true + + '@resvg/resvg-js-win32-arm64-msvc@2.6.2': + optional: true + + '@resvg/resvg-js-win32-ia32-msvc@2.6.2': + optional: true + + '@resvg/resvg-js-win32-x64-msvc@2.6.2': + optional: true + + '@resvg/resvg-js@2.6.2': + optionalDependencies: + '@resvg/resvg-js-android-arm-eabi': 2.6.2 + '@resvg/resvg-js-android-arm64': 2.6.2 + '@resvg/resvg-js-darwin-arm64': 2.6.2 + '@resvg/resvg-js-darwin-x64': 2.6.2 + '@resvg/resvg-js-linux-arm-gnueabihf': 2.6.2 + '@resvg/resvg-js-linux-arm64-gnu': 2.6.2 + '@resvg/resvg-js-linux-arm64-musl': 2.6.2 + '@resvg/resvg-js-linux-x64-gnu': 2.6.2 + '@resvg/resvg-js-linux-x64-musl': 2.6.2 + '@resvg/resvg-js-win32-arm64-msvc': 2.6.2 + '@resvg/resvg-js-win32-ia32-msvc': 2.6.2 + '@resvg/resvg-js-win32-x64-msvc': 2.6.2 + + '@rive-app/canvas@2.21.6': {} + + '@rollup/pluginutils@4.2.1': + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.1 + + '@rollup/pluginutils@5.1.3(rollup@4.24.0)': + dependencies: + '@types/estree': 1.0.6 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.24.0 + + '@rollup/rollup-android-arm-eabi@4.24.0': + optional: true + + '@rollup/rollup-android-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-x64@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.24.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.24.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.24.0': + optional: true + + '@shikijs/core@1.22.2': + dependencies: + '@shikijs/engine-javascript': 1.22.2 + '@shikijs/engine-oniguruma': 1.22.2 + '@shikijs/types': 1.22.2 + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.3 + + '@shikijs/engine-javascript@1.22.2': + dependencies: + '@shikijs/types': 1.22.2 + '@shikijs/vscode-textmate': 9.3.0 + oniguruma-to-js: 0.4.3 + + '@shikijs/engine-oniguruma@1.22.2': + dependencies: + '@shikijs/types': 1.22.2 + '@shikijs/vscode-textmate': 9.3.0 + + '@shikijs/types@1.22.2': + dependencies: + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@9.3.0': {} + + '@shuding/opentype.js@1.4.0-beta.0': + dependencies: + fflate: 0.7.4 + string.prototype.codepointat: 0.2.1 + + '@tailwindcss/aspect-ratio@0.4.2(tailwindcss@3.4.13)': + dependencies: + tailwindcss: 3.4.13 + + '@tailwindcss/typography@0.5.15(tailwindcss@3.4.13)': + dependencies: + lodash.castarray: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + postcss-selector-parser: 6.0.10 + tailwindcss: 3.4.13 + + '@trysound/sax@0.2.0': {} + + '@types/acorn@4.0.6': + dependencies: + '@types/estree': 1.0.6 + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 + + '@types/babel__generator@7.6.8': + dependencies: + '@babel/types': 7.26.0 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + + '@types/babel__traverse@7.20.6': + dependencies: + '@babel/types': 7.26.0 + + '@types/cookie@0.6.0': {} + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 0.7.34 + + '@types/estree-jsx@1.0.5': + dependencies: + '@types/estree': 1.0.6 + + '@types/estree@1.0.6': {} + + '@types/github-slugger@1.3.0': {} + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/json-schema@7.0.15': {} + + '@types/lodash.kebabcase@4.1.9': + dependencies: + '@types/lodash': 4.17.10 + + '@types/lodash@4.17.10': {} + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdx@2.0.13': {} + + '@types/ms@0.7.34': {} + + '@types/nlcst@2.0.3': + dependencies: + '@types/unist': 3.0.3 + + '@types/node-fetch@2.6.11': + dependencies: + '@types/node': 17.0.45 + form-data: 4.0.1 + + '@types/node@17.0.45': {} + + '@types/normalize-package-data@2.4.4': {} + + '@types/prop-types@15.7.13': {} + + '@types/react-dom@18.3.0': + dependencies: + '@types/react': 18.3.11 + + '@types/react@18.3.11': + dependencies: + '@types/prop-types': 15.7.13 + csstype: 3.1.3 + + '@types/sax@1.2.7': + dependencies: + '@types/node': 17.0.45 + + '@types/tar@6.1.13': + dependencies: + '@types/node': 17.0.45 + minipass: 4.2.8 + + '@types/ungap__structured-clone@1.2.0': {} + + '@types/unist@2.0.11': {} + + '@types/unist@3.0.3': {} + + '@types/yauzl@2.10.3': + dependencies: + '@types/node': 17.0.45 + optional: true + + '@typescript-eslint/eslint-plugin@8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': + dependencies: + '@eslint-community/regexpp': 4.11.1 + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/scope-manager': 8.8.1 + '@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.8.1 + eslint: 9.12.0(jiti@1.21.6) + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.8.1 + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) + '@typescript-eslint/visitor-keys': 8.8.1 + debug: 4.3.7 + eslint: 9.12.0(jiti@1.21.6) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.8.1': + dependencies: + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/visitor-keys': 8.8.1 + + '@typescript-eslint/type-utils@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + debug: 4.3.7 + ts-api-utils: 1.3.0(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - eslint + - supports-color + + '@typescript-eslint/types@8.8.1': {} + + '@typescript-eslint/typescript-estree@8.8.1(typescript@5.6.3)': + dependencies: + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/visitor-keys': 8.8.1 + debug: 4.3.7 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@1.21.6)) + '@typescript-eslint/scope-manager': 8.8.1 + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) + eslint: 9.12.0(jiti@1.21.6) + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@8.8.1': + dependencies: + '@typescript-eslint/types': 8.8.1 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.2.0': {} + + '@unpic/astro@0.0.47(astro@4.16.13(rollup@4.24.0)(typescript@5.6.3))': + dependencies: + '@unpic/core': 0.0.49 + '@unpic/pixels': 1.2.2 + '@unpic/placeholder': 0.1.2 + astro: 4.16.13(rollup@4.24.0)(typescript@5.6.3) + blurhash: 2.0.5 + + '@unpic/core@0.0.49': + dependencies: + unpic: 3.18.0 + + '@unpic/pixels@1.2.2': + dependencies: + jpeg-js: 0.4.4 + ofetch: 1.3.3 + pngjs: 7.0.0 + + '@unpic/placeholder@0.1.2': + dependencies: + blurhash: 2.0.5 + + '@vercel/nft@0.27.6': + dependencies: + '@mapbox/node-pre-gyp': 1.0.11 + '@rollup/pluginutils': 4.2.1 + acorn: 8.14.0 + acorn-import-attributes: 1.9.5(acorn@8.14.0) + async-sema: 3.1.1 + bindings: 1.5.0 + estree-walker: 2.0.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + node-gyp-build: 4.8.3 + resolve-from: 5.0.0 + transitivePeerDependencies: + - encoding + - supports-color + + '@vitejs/plugin-react@4.3.2(vite@5.4.11)': + dependencies: + '@babel/core': 7.25.7 + '@babel/plugin-transform-react-jsx-self': 7.25.7(@babel/core@7.25.7) + '@babel/plugin-transform-react-jsx-source': 7.25.7(@babel/core@7.25.7) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 5.4.11 + transitivePeerDependencies: + - supports-color + + '@volar/kit@2.4.6(typescript@5.6.3)': + dependencies: + '@volar/language-service': 2.4.6 + '@volar/typescript': 2.4.6 + typesafe-path: 0.2.2 + typescript: 5.6.3 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + + '@volar/language-core@2.4.6': + dependencies: + '@volar/source-map': 2.4.6 + + '@volar/language-server@2.4.6': + dependencies: + '@volar/language-core': 2.4.6 + '@volar/language-service': 2.4.6 + '@volar/typescript': 2.4.6 + path-browserify: 1.0.1 + request-light: 0.7.0 + vscode-languageserver: 9.0.1 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + + '@volar/language-service@2.4.6': + dependencies: + '@volar/language-core': 2.4.6 + vscode-languageserver-protocol: 3.17.5 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + + '@volar/source-map@2.4.6': {} + + '@volar/typescript@2.4.6': + dependencies: + '@volar/language-core': 2.4.6 + path-browserify: 1.0.1 + vscode-uri: 3.0.8 + + '@vscode/emmet-helper@2.9.3': + dependencies: + emmet: 2.4.11 + jsonc-parser: 2.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 2.1.2 + + '@vscode/l10n@0.0.18': {} + + abbrev@1.1.1: {} + + acorn-import-attributes@1.9.5(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + + acorn-jsx@5.3.2(acorn@8.12.1): + dependencies: + acorn: 8.12.1 + + acorn-jsx@5.3.2(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + + acorn@8.12.1: {} + + acorn@8.14.0: {} + + agent-base@6.0.2: + dependencies: + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.2 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 + + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + aproba@2.0.0: {} + + are-we-there-yet@2.0.0: + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + + arg@5.0.2: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + aria-query@5.3.2: {} + + array-iterate@2.0.1: {} + + array-union@2.1.0: {} + + astring@1.9.0: {} + + astro-cloudinary@1.1.2(astro@4.16.13(rollup@4.24.0)(typescript@5.6.3))(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.6.3)(yaml@2.5.1): + dependencies: + '@cloudinary-util/types': 1.5.7 + '@cloudinary-util/url-loader': 5.10.5 + '@cloudinary-util/util': 3.3.2 + '@cloudinary/url-gen': 1.21.0 + '@unpic/astro': 0.0.47(astro@4.16.13(rollup@4.24.0)(typescript@5.6.3)) + '@unpic/core': 0.0.49 + astro: 4.16.13(rollup@4.24.0)(typescript@5.6.3) + tsup: 8.3.0(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.6.3)(yaml@2.5.1) + unpic: 3.18.0 + transitivePeerDependencies: + - '@microsoft/api-extractor' + - '@swc/core' + - jiti + - postcss + - supports-color + - tsx + - typescript + - yaml + + astro-eslint-parser@1.0.3(typescript@5.6.3): + dependencies: + '@astrojs/compiler': 2.10.3 + '@typescript-eslint/scope-manager': 8.8.1 + '@typescript-eslint/types': 8.8.1 + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) + astrojs-compiler-sync: 1.0.0(@astrojs/compiler@2.10.3) + debug: 4.3.7 + entities: 4.5.0 + eslint-scope: 8.1.0 + eslint-visitor-keys: 4.1.0 + espree: 10.2.0 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + - typescript + + astro-icon@1.1.1: + dependencies: + '@iconify/tools': 4.0.7 + '@iconify/types': 2.0.0 + '@iconify/utils': 2.1.33 + transitivePeerDependencies: + - debug + - supports-color + + astro-pagefind@1.6.0(astro@4.16.13(rollup@4.24.0)(typescript@5.6.3)): + dependencies: + '@pagefind/default-ui': 1.1.1 + astro: 4.16.13(rollup@4.24.0)(typescript@5.6.3) + pagefind: 1.1.1 + sirv: 2.0.4 + + astro@4.16.13(rollup@4.24.0)(typescript@5.6.3): + dependencies: + '@astrojs/compiler': 2.10.3 + '@astrojs/internal-helpers': 0.4.1 + '@astrojs/markdown-remark': 5.3.0 + '@astrojs/telemetry': 3.1.0 + '@babel/core': 7.26.0 + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/types': 7.26.0 + '@oslojs/encoding': 1.1.0 + '@rollup/pluginutils': 5.1.3(rollup@4.24.0) + '@types/babel__core': 7.20.5 + '@types/cookie': 0.6.0 + acorn: 8.14.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + boxen: 8.0.1 + ci-info: 4.0.0 + clsx: 2.1.1 + common-ancestor-path: 1.0.1 + cookie: 0.7.2 + cssesc: 3.0.0 + debug: 4.3.7 + deterministic-object-hash: 2.0.2 + devalue: 5.1.1 + diff: 5.2.0 + dlv: 1.1.3 + dset: 3.1.4 + es-module-lexer: 1.5.4 + esbuild: 0.21.5 + estree-walker: 3.0.3 + fast-glob: 3.3.2 + flattie: 1.1.1 + github-slugger: 2.0.0 + gray-matter: 4.0.3 + html-escaper: 3.0.3 + http-cache-semantics: 4.1.1 + js-yaml: 4.1.0 + kleur: 4.1.5 + magic-string: 0.30.12 + magicast: 0.3.5 + micromatch: 4.0.8 + mrmime: 2.0.0 + neotraverse: 0.6.18 + ora: 8.1.1 + p-limit: 6.1.0 + p-queue: 8.0.1 + preferred-pm: 4.0.0 + prompts: 2.4.2 + rehype: 13.0.2 + semver: 7.6.3 + shiki: 1.22.2 + tinyexec: 0.3.1 + tsconfck: 3.1.4(typescript@5.6.3) + unist-util-visit: 5.0.0 + vfile: 6.0.3 + vite: 5.4.11 + vitefu: 1.0.3(vite@5.4.11) + which-pm: 3.0.0 + xxhash-wasm: 1.0.2 + yargs-parser: 21.1.1 + zod: 3.23.8 + zod-to-json-schema: 3.23.5(zod@3.23.8) + zod-to-ts: 1.2.0(typescript@5.6.3)(zod@3.23.8) + optionalDependencies: + sharp: 0.33.5 + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - rollup + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - typescript + + astrojs-compiler-sync@1.0.0(@astrojs/compiler@2.10.3): + dependencies: + '@astrojs/compiler': 2.10.3 + synckit: 0.9.2 + + async-sema@3.1.1: {} + + asynckit@0.4.0: {} + + autoprefixer@10.4.20(postcss@8.4.47): + dependencies: + browserslist: 4.24.0 + caniuse-lite: 1.0.30001667 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.0 + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + + axios@1.7.7: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + axobject-query@4.1.0: {} + + bail@2.0.2: {} + + balanced-match@1.0.2: {} + + base-64@1.0.0: {} + + base64-js@0.0.8: {} + + binary-extensions@2.3.0: {} + + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + + blurhash@2.0.5: {} + + boolbase@1.0.0: {} + + boxen@8.0.1: + dependencies: + ansi-align: 3.0.1 + camelcase: 8.0.0 + chalk: 5.3.0 + cli-boxes: 3.0.0 + string-width: 7.2.0 + type-fest: 4.26.1 + widest-line: 5.0.0 + wrap-ansi: 9.0.0 + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.24.0: + dependencies: + caniuse-lite: 1.0.30001667 + electron-to-chromium: 1.5.33 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.0) + + buffer-crc32@0.2.13: {} + + builtin-modules@3.3.0: {} + + bundle-require@5.0.0(esbuild@0.23.1): + dependencies: + esbuild: 0.23.1 + load-tsconfig: 0.2.5 + + cac@6.7.14: {} + + callsites@3.1.0: {} + + camelcase-css@2.0.1: {} + + camelcase@8.0.0: {} + + camelize@1.0.1: {} + + caniuse-lite@1.0.30001667: {} + + ccount@2.0.1: {} + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.3.0: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + character-reference-invalid@2.0.1: {} + + cheerio-select@2.1.0: + dependencies: + boolbase: 1.0.0 + css-select: 5.1.0 + css-what: 6.1.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + + cheerio@1.0.0: + dependencies: + cheerio-select: 2.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + domutils: 3.1.0 + encoding-sniffer: 0.2.0 + htmlparser2: 9.1.0 + parse5: 7.1.2 + parse5-htmlparser2-tree-adapter: 7.0.0 + parse5-parser-stream: 7.1.2 + undici: 6.20.0 + whatwg-mimetype: 4.0.0 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chokidar@4.0.1: + dependencies: + readdirp: 4.0.2 + + chownr@2.0.0: {} + + ci-info@4.0.0: {} + + class-variance-authority@0.7.0: + dependencies: + clsx: 2.0.0 + + clean-regexp@1.0.0: + dependencies: + escape-string-regexp: 1.0.5 + + cli-boxes@3.0.0: {} + + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-spinners@2.9.2: {} + + cli-truncate@4.0.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 7.2.0 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clsx@2.0.0: {} + + clsx@2.1.1: {} + + collapse-white-space@2.1.0: {} + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + optional: true + + color-support@1.1.3: {} + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + optional: true + + colorette@2.0.20: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + comma-separated-tokens@2.0.3: {} + + commander@12.1.0: {} + + commander@4.1.1: {} + + commander@7.2.0: {} + + common-ancestor-path@1.0.1: {} + + concat-map@0.0.1: {} + + confbox@0.1.8: {} + + consola@3.2.3: {} + + console-control-strings@1.1.0: {} + + convert-source-map@2.0.0: {} + + cookie@0.7.2: {} + + core-js-compat@3.38.1: + dependencies: + browserslist: 4.24.0 + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + css-background-parser@0.1.0: {} + + css-box-shadow@1.0.0-3: {} + + css-color-keywords@1.0.0: {} + + css-gradient-parser@0.0.16: {} + + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + + css-to-react-native@3.2.0: + dependencies: + camelize: 1.0.1 + css-color-keywords: 1.0.0 + postcss-value-parser: 4.2.0 + + css-tree@2.2.1: + dependencies: + mdn-data: 2.0.28 + source-map-js: 1.2.1 + + css-tree@2.3.1: + dependencies: + mdn-data: 2.0.30 + source-map-js: 1.2.1 + + css-what@6.1.0: {} + + cssesc@3.0.0: {} + + csso@5.0.5: + dependencies: + css-tree: 2.2.1 + + csstype@3.1.3: {} + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + decode-named-character-reference@1.0.2: + dependencies: + character-entities: 2.0.2 + + deep-is@0.1.4: {} + + delayed-stream@1.0.0: {} + + delegates@1.0.0: {} + + dequal@2.0.3: {} + + destr@2.0.3: {} + + detect-libc@2.0.3: {} + + deterministic-object-hash@2.0.2: + dependencies: + base-64: 1.0.0 + + devalue@5.1.1: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + didyoumean@1.2.2: {} + + diff@5.2.0: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dlv@1.1.3: {} + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dset@3.1.4: {} + + eastasianwidth@0.2.0: {} + + electron-to-chromium@1.5.33: {} + + emmet@2.4.11: + dependencies: + '@emmetio/abbreviation': 2.3.3 + '@emmetio/css-abbreviation': 2.1.8 + + emoji-regex@10.4.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + encoding-sniffer@0.2.0: + dependencies: + iconv-lite: 0.6.3 + whatwg-encoding: 3.1.1 + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + entities@4.5.0: {} + + environment@1.1.0: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + es-module-lexer@1.5.4: {} + + esast-util-from-estree@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + unist-util-position-from-estree: 2.0.0 + + esast-util-from-js@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + acorn: 8.14.0 + esast-util-from-estree: 2.0.0 + vfile-message: 4.0.2 + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + esbuild@0.23.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + eslint-compat-utils@0.5.1(eslint@9.12.0(jiti@1.21.6)): + dependencies: + eslint: 9.12.0(jiti@1.21.6) + semver: 7.6.3 + + eslint-plugin-astro@1.2.4(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@1.21.6)) + '@jridgewell/sourcemap-codec': 1.5.0 + '@typescript-eslint/types': 8.8.1 + astro-eslint-parser: 1.0.3(typescript@5.6.3) + eslint: 9.12.0(jiti@1.21.6) + eslint-compat-utils: 0.5.1(eslint@9.12.0(jiti@1.21.6)) + globals: 15.11.0 + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + transitivePeerDependencies: + - supports-color + - typescript + + eslint-plugin-unicorn@56.0.0(eslint@9.12.0(jiti@1.21.6)): + dependencies: + '@babel/helper-validator-identifier': 7.25.7 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@1.21.6)) + ci-info: 4.0.0 + clean-regexp: 1.0.0 + core-js-compat: 3.38.1 + eslint: 9.12.0(jiti@1.21.6) + esquery: 1.6.0 + globals: 15.11.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.0.2 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + regjsparser: 0.10.0 + semver: 7.6.3 + strip-indent: 3.0.0 + + eslint-scope@8.1.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.1.0: {} + + eslint@9.12.0(jiti@1.21.6): + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@1.21.6)) + '@eslint-community/regexpp': 4.11.1 + '@eslint/config-array': 0.18.0 + '@eslint/core': 0.6.0 + '@eslint/eslintrc': 3.1.0 + '@eslint/js': 9.12.0 + '@eslint/plugin-kit': 0.2.0 + '@humanfs/node': 0.16.5 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.3.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.7 + escape-string-regexp: 4.0.0 + eslint-scope: 8.1.0 + eslint-visitor-keys: 4.1.0 + espree: 10.2.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + text-table: 0.2.0 + optionalDependencies: + jiti: 1.21.6 + transitivePeerDependencies: + - supports-color + + espree@10.2.0: + dependencies: + acorn: 8.12.1 + acorn-jsx: 5.3.2(acorn@8.12.1) + eslint-visitor-keys: 4.1.0 + + esprima@4.0.1: {} + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-util-attach-comments@3.0.0: + dependencies: + '@types/estree': 1.0.6 + + estree-util-build-jsx@3.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + + estree-util-is-identifier-name@3.0.0: {} + + estree-util-scope@1.0.0: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + + estree-util-to-js@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.4 + + estree-util-visit@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.3 + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.6 + + esutils@2.0.3: {} + + eventemitter3@5.0.1: {} + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + extend@3.0.2: {} + + extract-zip@2.0.1: + dependencies: + debug: 4.3.7 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-uri@3.0.2: {} + + fast-xml-parser@4.5.0: + dependencies: + strnum: 1.0.5 + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + + fdir@6.4.0(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + + fflate@0.7.4: {} + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + file-uri-to-path@1.0.0: {} + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up-simple@1.0.0: {} + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + find-yarn-workspace-root2@1.2.16: + dependencies: + micromatch: 4.0.8 + pkg-dir: 4.2.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.1 + keyv: 4.5.4 + + flatted@3.3.1: {} + + flattie@1.1.1: {} + + follow-redirects@1.15.9: {} + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + fraction.js@4.3.7: {} + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + fuse.js@7.0.0: {} + + gauge@3.0.2: + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.2.0: {} + + get-stream@5.2.0: + dependencies: + pump: 3.0.2 + + get-stream@6.0.1: {} + + get-stream@8.0.1: {} + + get-tsconfig@4.8.1: + dependencies: + resolve-pkg-maps: 1.0.0 + + github-slugger@2.0.0: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@11.12.0: {} + + globals@14.0.0: {} + + globals@15.11.0: {} + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + gray-matter@4.0.3: + dependencies: + js-yaml: 3.14.1 + kind-of: 6.0.3 + section-matter: 1.0.0 + strip-bom-string: 1.0.0 + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-unicode@2.0.1: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hast-util-from-html@2.0.3: + dependencies: + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.1 + parse5: 7.1.2 + vfile: 6.0.3 + vfile-message: 4.0.2 + + hast-util-from-parse5@8.0.1: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + hastscript: 8.0.0 + property-information: 6.5.0 + vfile: 6.0.3 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 + + hast-util-is-element@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-raw@9.0.4: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + '@ungap/structured-clone': 1.2.0 + hast-util-from-parse5: 8.0.1 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + parse5: 7.1.2 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-estree@3.1.0: + dependencies: + '@types/estree': 1.0.6 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 0.4.4 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + + hast-util-to-html@9.0.3: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-to-jsx-runtime@2.3.2: + dependencies: + '@types/estree': 1.0.6 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 1.0.8 + unist-util-position: 5.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + + hast-util-to-parse5@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-text@4.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hastscript@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + + hex-rgb@4.3.0: {} + + hosted-git-info@2.8.9: {} + + html-escaper@3.0.3: {} + + html-void-elements@3.0.0: {} + + htmlparser2@9.1.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + + http-cache-semantics@4.1.1: {} + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + human-signals@2.1.0: {} + + human-signals@5.0.0: {} + + husky@9.1.6: {} + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + ignore@5.3.2: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-meta-resolve@4.1.0: {} + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + inline-style-parser@0.1.1: {} + + inline-style-parser@0.2.4: {} + + is-alphabetical@2.0.1: {} + + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + + is-arrayish@0.2.1: {} + + is-arrayish@0.3.2: + optional: true + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-builtin-module@3.2.1: + dependencies: + builtin-modules: 3.3.0 + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-decimal@2.0.1: {} + + is-docker@3.0.0: {} + + is-extendable@0.1.1: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@4.0.0: {} + + is-fullwidth-code-point@5.0.0: + dependencies: + get-east-asian-width: 1.2.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hexadecimal@2.0.1: {} + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-interactive@2.0.0: {} + + is-number@7.0.0: {} + + is-plain-obj@4.1.0: {} + + is-stream@2.0.1: {} + + is-stream@3.0.0: {} + + is-unicode-supported@1.3.0: {} + + is-unicode-supported@2.1.0: {} + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + isexe@2.0.0: {} + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jiti@1.21.6: {} + + joycon@3.1.1: {} + + jpeg-js@0.4.4: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsesc@0.5.0: {} + + jsesc@3.0.2: {} + + json-buffer@3.0.1: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json5@2.2.3: {} + + jsonc-parser@2.3.1: {} + + jsonc-parser@3.3.1: {} + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@6.0.3: {} + + kleur@3.0.3: {} + + kleur@4.1.5: {} + + kolorist@1.8.0: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lilconfig@2.1.0: {} + + lilconfig@3.1.2: {} + + linebreak@1.1.0: + dependencies: + base64-js: 0.0.8 + unicode-trie: 2.0.0 + + lines-and-columns@1.2.4: {} + + lint-staged@15.2.10: + dependencies: + chalk: 5.3.0 + commander: 12.1.0 + debug: 4.3.7 + execa: 8.0.1 + lilconfig: 3.1.2 + listr2: 8.2.5 + micromatch: 4.0.8 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.5.1 + transitivePeerDependencies: + - supports-color + + listr2@8.2.5: + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.0 + + load-tsconfig@0.2.5: {} + + load-yaml-file@0.2.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + + local-pkg@0.5.0: + dependencies: + mlly: 1.7.2 + pkg-types: 1.2.1 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.castarray@4.4.0: {} + + lodash.isplainobject@4.0.6: {} + + lodash.kebabcase@4.1.1: {} + + lodash.merge@4.6.2: {} + + lodash.sortby@4.7.0: {} + + lodash@4.17.21: {} + + log-symbols@6.0.0: + dependencies: + chalk: 5.3.0 + is-unicode-supported: 1.3.0 + + log-update@6.1.0: + dependencies: + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + + longest-streak@3.1.0: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + lru-cache@10.4.3: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + magic-string@0.30.12: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + magicast@0.3.5: + dependencies: + '@babel/parser': 7.26.2 + '@babel/types': 7.26.0 + source-map-js: 1.2.1 + + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + + markdown-extensions@2.0.0: {} + + markdown-table@3.0.3: {} + + mdast-util-definitions@6.0.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + unist-util-visit: 5.0.0 + + mdast-util-find-and-replace@3.0.1: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + mdast-util-from-markdown@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.1 + micromark-util-character: 2.1.0 + + mdast-util-gfm-footnote@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.3 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.1 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-heading-range@2.1.5: + dependencies: + mdast-util-to-string: 1.1.0 + + mdast-util-mdx-expression@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-jsx@3.1.3: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.1 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.1.3 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdxjs-esm@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@1.1.0: {} + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + mdast-util-toc@7.1.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/ungap__structured-clone': 1.2.0 + '@ungap/structured-clone': 1.2.0 + github-slugger: 2.0.0 + mdast-util-to-string: 4.0.0 + unist-util-is: 6.0.0 + unist-util-visit: 5.0.0 + + mdn-data@2.0.28: {} + + mdn-data@2.0.30: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + micromark-core-commonmark@2.0.1: + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-table@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.0 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-mdx-expression@3.0.0: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-extension-mdx-jsx@3.0.1: + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.6 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.2 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 + + micromark-extension-mdx-md@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-extension-mdxjs-esm@3.0.0: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + + micromark-extension-mdxjs@3.0.0: + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + micromark-extension-mdx-expression: 3.0.0 + micromark-extension-mdx-jsx: 3.0.1 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-destination@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-label@2.0.0: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-mdx-expression@2.0.2: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + + micromark-factory-space@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 + + micromark-factory-title@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-factory-whitespace@2.0.0: + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-character@2.1.0: + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-chunked@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-classify-character@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-combine-extensions@2.0.0: + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-decode-numeric-character-reference@2.0.1: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-decode-string@2.0.0: + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 + + micromark-util-encode@2.0.0: {} + + micromark-util-events-to-acorn@2.0.2: + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.6 + '@types/unist': 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + vfile-message: 4.0.2 + + micromark-util-html-tag-name@2.0.0: {} + + micromark-util-normalize-identifier@2.0.0: + dependencies: + micromark-util-symbol: 2.0.0 + + micromark-util-resolve-all@2.0.0: + dependencies: + micromark-util-types: 2.0.0 + + micromark-util-sanitize-uri@2.0.0: + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + + micromark-util-subtokenize@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + + micromark-util-symbol@2.0.0: {} + + micromark-util-types@2.0.0: {} + + micromark@4.0.0: + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.7 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mimic-fn@2.1.0: {} + + mimic-fn@4.0.0: {} + + mimic-function@5.0.1: {} + + min-indent@1.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@4.2.8: {} + + minipass@5.0.0: {} + + minipass@7.1.2: {} + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mkdirp@1.0.4: {} + + mlly@1.7.2: + dependencies: + acorn: 8.12.1 + pathe: 1.1.2 + pkg-types: 1.2.1 + ufo: 1.5.4 + + mrmime@2.0.0: {} + + ms@2.1.3: {} + + muggle-string@0.4.1: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.7: {} + + natural-compare@1.4.0: {} + + neotraverse@0.6.18: {} + + nlcst-to-string@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + + node-fetch-native@1.6.4: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-gyp-build@4.8.3: {} + + node-releases@2.0.18: {} + + nopt@5.0.0: + dependencies: + abbrev: 1.1.1 + + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + npmlog@5.0.1: + dependencies: + are-we-there-yet: 2.0.0 + console-control-strings: 1.1.0 + gauge: 3.0.2 + set-blocking: 2.0.0 + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + ofetch@1.3.3: + dependencies: + destr: 2.0.3 + node-fetch-native: 1.6.4 + ufo: 1.5.4 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + oniguruma-to-js@0.4.3: + dependencies: + regex: 4.3.3 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + ora@8.1.1: + dependencies: + chalk: 5.3.0 + cli-cursor: 5.0.0 + cli-spinners: 2.9.2 + is-interactive: 2.0.0 + is-unicode-supported: 2.1.0 + log-symbols: 6.0.0 + stdin-discarder: 0.2.2 + string-width: 7.2.0 + strip-ansi: 7.1.0 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-limit@6.1.0: + dependencies: + yocto-queue: 1.1.1 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-queue@8.0.1: + dependencies: + eventemitter3: 5.0.1 + p-timeout: 6.1.2 + + p-timeout@6.1.2: {} + + p-try@2.2.0: {} + + package-json-from-dist@1.0.1: {} + + package-manager-detector@0.2.2: {} + + pagefind@1.1.1: + optionalDependencies: + '@pagefind/darwin-arm64': 1.1.1 + '@pagefind/darwin-x64': 1.1.1 + '@pagefind/linux-arm64': 1.1.1 + '@pagefind/linux-x64': 1.1.1 + '@pagefind/windows-x64': 1.1.1 + + pako@0.2.9: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-css-color@0.2.1: + dependencies: + color-name: 1.1.4 + hex-rgb: 4.3.0 + + parse-entities@4.0.1: + dependencies: + '@types/unist': 2.0.11 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.25.7 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-latin@7.0.0: + dependencies: + '@types/nlcst': 2.0.3 + '@types/unist': 3.0.3 + nlcst-to-string: 4.0.0 + unist-util-modify-children: 4.0.0 + unist-util-visit-children: 3.0.0 + vfile: 6.0.3 + + parse5-htmlparser2-tree-adapter@7.0.0: + dependencies: + domhandler: 5.0.3 + parse5: 7.1.2 + + parse5-parser-stream@7.1.2: + dependencies: + parse5: 7.1.2 + + parse5@7.1.2: + dependencies: + entities: 4.5.0 + + path-browserify@1.0.1: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-type@4.0.0: {} + + pathe@1.1.2: {} + + pend@1.2.0: {} + + picocolors@1.1.0: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + pidtree@0.6.0: {} + + pify@2.3.0: {} + + pify@4.0.1: {} + + pirates@4.0.6: {} + + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + pkg-types@1.2.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.2 + pathe: 1.1.2 + + pluralize@8.0.0: {} + + pngjs@7.0.0: {} + + postcss-import@15.1.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + + postcss-js@4.0.1(postcss@8.4.47): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.47 + + postcss-load-config@4.0.2(postcss@8.4.47): + dependencies: + lilconfig: 3.1.2 + yaml: 2.5.1 + optionalDependencies: + postcss: 8.4.47 + + postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.5.1): + dependencies: + lilconfig: 3.1.2 + optionalDependencies: + jiti: 1.21.6 + postcss: 8.4.47 + tsx: 4.19.1 + yaml: 2.5.1 + + postcss-nested@6.2.0(postcss@8.4.47): + dependencies: + postcss: 8.4.47 + postcss-selector-parser: 6.1.2 + + postcss-selector-parser@6.0.10: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.0 + source-map-js: 1.2.1 + + preferred-pm@4.0.0: + dependencies: + find-up-simple: 1.0.0 + find-yarn-workspace-root2: 1.2.16 + which-pm: 3.0.0 + + prelude-ls@1.2.1: {} + + prettier-plugin-astro@0.14.1: + dependencies: + '@astrojs/compiler': 2.10.3 + prettier: 3.3.3 + sass-formatter: 0.7.9 + + prettier-plugin-tailwindcss@0.6.8(prettier-plugin-astro@0.14.1)(prettier@3.3.3): + dependencies: + prettier: 3.3.3 + optionalDependencies: + prettier-plugin-astro: 0.14.1 + + prettier@2.8.7: + optional: true + + prettier@3.3.3: {} + + prismjs@1.29.0: {} + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + property-information@6.5.0: {} + + proxy-from-env@1.1.0: {} + + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-hook-form@7.53.2(react@18.3.1): + dependencies: + react: 18.3.1 + + react-refresh@0.14.2: {} + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + read-pkg-up@7.0.1: + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + readdirp@4.0.2: {} + + reading-time@1.5.0: {} + + recma-build-jsx@1.0.0: + dependencies: + '@types/estree': 1.0.6 + estree-util-build-jsx: 3.0.1 + vfile: 6.0.3 + + recma-jsx@1.0.0(acorn@8.14.0): + dependencies: + acorn-jsx: 5.3.2(acorn@8.14.0) + estree-util-to-js: 2.0.0 + recma-parse: 1.0.0 + recma-stringify: 1.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - acorn + + recma-parse@1.0.0: + dependencies: + '@types/estree': 1.0.6 + esast-util-from-js: 2.0.1 + unified: 11.0.5 + vfile: 6.0.3 + + recma-stringify@1.0.0: + dependencies: + '@types/estree': 1.0.6 + estree-util-to-js: 2.0.0 + unified: 11.0.5 + vfile: 6.0.3 + + regex@4.3.3: {} + + regexp-tree@0.1.27: {} + + regjsparser@0.10.0: + dependencies: + jsesc: 0.5.0 + + rehype-parse@9.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-from-html: 2.0.3 + unified: 11.0.5 + + rehype-raw@7.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.0.4 + vfile: 6.0.3 + + rehype-recma@1.0.0: + dependencies: + '@types/estree': 1.0.6 + '@types/hast': 3.0.4 + hast-util-to-estree: 3.1.0 + transitivePeerDependencies: + - supports-color + + rehype-stringify@10.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.3 + unified: 11.0.5 + + rehype@13.0.2: + dependencies: + '@types/hast': 3.0.4 + rehype-parse: 9.0.1 + rehype-stringify: 10.0.1 + unified: 11.0.5 + + remark-collapse@0.1.2: + dependencies: + mdast-util-heading-range: 2.1.5 + mdast-util-to-string: 1.1.0 + + remark-gfm@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-mdx@3.0.1: + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + micromark-util-types: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.3 + + remark-smartypants@3.0.2: + dependencies: + retext: 9.0.0 + retext-smartypants: 6.1.1 + unified: 11.0.5 + unist-util-visit: 5.0.0 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.0 + unified: 11.0.5 + + remark-toc@9.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-toc: 7.1.0 + + request-light@0.5.8: {} + + request-light@0.7.0: {} + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + + retext-latin@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + parse-latin: 7.0.0 + unified: 11.0.5 + + retext-smartypants@6.1.1: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unist-util-visit: 5.0.0 + + retext-stringify@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unified: 11.0.5 + + retext@9.0.0: + dependencies: + '@types/nlcst': 2.0.3 + retext-latin: 4.0.0 + retext-stringify: 4.0.0 + unified: 11.0.5 + + reusify@1.0.4: {} + + rfdc@1.4.1: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rollup@4.24.0: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.24.0 + '@rollup/rollup-android-arm64': 4.24.0 + '@rollup/rollup-darwin-arm64': 4.24.0 + '@rollup/rollup-darwin-x64': 4.24.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 + '@rollup/rollup-linux-arm-musleabihf': 4.24.0 + '@rollup/rollup-linux-arm64-gnu': 4.24.0 + '@rollup/rollup-linux-arm64-musl': 4.24.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 + '@rollup/rollup-linux-riscv64-gnu': 4.24.0 + '@rollup/rollup-linux-s390x-gnu': 4.24.0 + '@rollup/rollup-linux-x64-gnu': 4.24.0 + '@rollup/rollup-linux-x64-musl': 4.24.0 + '@rollup/rollup-win32-arm64-msvc': 4.24.0 + '@rollup/rollup-win32-ia32-msvc': 4.24.0 + '@rollup/rollup-win32-x64-msvc': 4.24.0 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + s.color@0.0.15: {} + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + sass-formatter@0.7.9: + dependencies: + suf-log: 2.5.3 + + satori@0.11.2: + dependencies: + '@shuding/opentype.js': 1.4.0-beta.0 + css-background-parser: 0.1.0 + css-box-shadow: 1.0.0-3 + css-gradient-parser: 0.0.16 + css-to-react-native: 3.2.0 + emoji-regex: 10.4.0 + escape-html: 1.0.3 + linebreak: 1.1.0 + parse-css-color: 0.2.1 + postcss-value-parser: 4.2.0 + yoga-wasm-web: 0.3.3 + + sax@1.4.1: {} + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + section-matter@1.0.0: + dependencies: + extend-shallow: 2.0.1 + kind-of: 6.0.3 + + semver@5.7.2: {} + + semver@6.3.1: {} + + semver@7.6.3: {} + + set-blocking@2.0.0: {} + + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.6.3 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + optional: true + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shiki@1.22.2: + dependencies: + '@shikijs/core': 1.22.2 + '@shikijs/engine-javascript': 1.22.2 + '@shikijs/engine-oniguruma': 1.22.2 + '@shikijs/types': 1.22.2 + '@shikijs/vscode-textmate': 9.3.0 + '@types/hast': 3.0.4 + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + optional: true + + sirv@2.0.4: + dependencies: + '@polka/url': 1.0.0-next.28 + mrmime: 2.0.0 + totalist: 3.0.1 + + sisteransi@1.0.5: {} + + sitemap@8.0.0: + dependencies: + '@types/node': 17.0.45 + '@types/sax': 1.2.7 + arg: 5.0.2 + sax: 1.4.1 + + slash@3.0.0: {} + + slice-ansi@5.0.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + + slice-ansi@7.1.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + + source-map-js@1.2.1: {} + + source-map@0.7.4: {} + + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + + space-separated-tokens@2.0.2: {} + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.20 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.20 + + spdx-license-ids@3.0.20: {} + + sprintf-js@1.0.3: {} + + stdin-discarder@0.2.2: {} + + stream-replace-string@2.0.0: {} + + string-argv@0.3.2: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.2.0 + strip-ansi: 7.1.0 + + string.prototype.codepointat@0.2.1: {} + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-bom-string@1.0.0: {} + + strip-bom@3.0.0: {} + + strip-final-newline@2.0.0: {} + + strip-final-newline@3.0.0: {} + + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@3.1.1: {} + + strnum@1.0.5: {} + + style-to-object@0.4.4: + dependencies: + inline-style-parser: 0.1.1 + + style-to-object@1.0.8: + dependencies: + inline-style-parser: 0.2.4 + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + suf-log@2.5.3: + dependencies: + s.color: 0.0.15 + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + svgo@3.3.2: + dependencies: + '@trysound/sax': 0.2.0 + commander: 7.2.0 + css-select: 5.1.0 + css-tree: 2.3.1 + css-what: 6.1.0 + csso: 5.0.5 + picocolors: 1.1.0 + + synckit@0.9.2: + dependencies: + '@pkgr/core': 0.1.1 + tslib: 2.7.0 + + tailwind-merge@2.5.3: {} + + tailwindcss-motion@0.4.1-beta(tailwindcss@3.4.13): + dependencies: + tailwindcss: 3.4.13 + + tailwindcss@3.4.13: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.6 + lilconfig: 2.1.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.0 + postcss: 8.4.47 + postcss-import: 15.1.0(postcss@8.4.47) + postcss-js: 4.0.1(postcss@8.4.47) + postcss-load-config: 4.0.2(postcss@8.4.47) + postcss-nested: 6.2.0(postcss@8.4.47) + postcss-selector-parser: 6.1.2 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + text-table@0.2.0: {} + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + tiny-inflate@1.0.3: {} + + tinyexec@0.3.0: {} + + tinyexec@0.3.1: {} + + tinyglobby@0.2.9: + dependencies: + fdir: 6.4.0(picomatch@4.0.2) + picomatch: 4.0.2 + + to-fast-properties@2.0.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + totalist@3.0.1: {} + + tr46@0.0.3: {} + + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tree-kill@1.2.2: {} + + trim-lines@3.0.1: {} + + trough@2.2.0: {} + + ts-api-utils@1.3.0(typescript@5.6.3): + dependencies: + typescript: 5.6.3 + + ts-interface-checker@0.1.13: {} + + tsconfck@3.1.4(typescript@5.6.3): + optionalDependencies: + typescript: 5.6.3 + + tslib@2.7.0: {} + + tsup@8.3.0(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.6.3)(yaml@2.5.1): + dependencies: + bundle-require: 5.0.0(esbuild@0.23.1) + cac: 6.7.14 + chokidar: 3.6.0 + consola: 3.2.3 + debug: 4.3.7 + esbuild: 0.23.1 + execa: 5.1.1 + joycon: 3.1.1 + picocolors: 1.1.0 + postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.5.1) + resolve-from: 5.0.0 + rollup: 4.24.0 + source-map: 0.8.0-beta.0 + sucrase: 3.35.0 + tinyglobby: 0.2.9 + tree-kill: 1.2.2 + optionalDependencies: + postcss: 8.4.47 + typescript: 5.6.3 + transitivePeerDependencies: + - jiti + - supports-color + - tsx + - yaml + + tsx@4.19.1: + dependencies: + esbuild: 0.23.1 + get-tsconfig: 4.8.1 + optionalDependencies: + fsevents: 2.3.3 + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.6.0: {} + + type-fest@0.8.1: {} + + type-fest@4.26.1: {} + + typesafe-path@0.2.2: {} + + typescript-auto-import-cache@0.3.3: + dependencies: + semver: 7.6.3 + + typescript-eslint@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + optionalDependencies: + typescript: 5.6.3 + transitivePeerDependencies: + - eslint + - supports-color + + typescript@5.6.3: {} + + ufo@1.5.4: {} + + ultrahtml@1.5.3: {} + + undici@6.20.0: {} + + unicode-trie@2.0.0: + dependencies: + pako: 0.2.9 + tiny-inflate: 1.0.3 + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unist-util-find-after@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-modify-children@4.0.0: + dependencies: + '@types/unist': 3.0.3 + array-iterate: 2.0.1 + + unist-util-position-from-estree@2.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-remove-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-visit: 5.0.0 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-children@3.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + unpic@3.18.0: {} + + update-browserslist-db@1.1.1(browserslist@4.24.0): + dependencies: + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.0 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + urlpattern-polyfill@8.0.2: {} + + util-deprecate@1.0.2: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + vfile-location@5.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile: 6.0.3 + + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + + vite@5.4.11: + dependencies: + esbuild: 0.21.5 + postcss: 8.4.47 + rollup: 4.24.0 + optionalDependencies: + fsevents: 2.3.3 + + vitefu@1.0.3(vite@5.4.11): + optionalDependencies: + vite: 5.4.11 + + volar-service-css@0.0.61(@volar/language-service@2.4.6): + dependencies: + vscode-css-languageservice: 6.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + + volar-service-emmet@0.0.61(@volar/language-service@2.4.6): + dependencies: + '@emmetio/css-parser': 0.4.0 + '@emmetio/html-matcher': 1.3.0 + '@vscode/emmet-helper': 2.9.3 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + + volar-service-html@0.0.61(@volar/language-service@2.4.6): + dependencies: + vscode-html-languageservice: 5.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + + volar-service-prettier@0.0.61(@volar/language-service@2.4.6)(prettier@3.3.3): + dependencies: + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + prettier: 3.3.3 + + volar-service-typescript-twoslash-queries@0.0.61(@volar/language-service@2.4.6): + dependencies: + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + + volar-service-typescript@0.0.61(@volar/language-service@2.4.6): + dependencies: + path-browserify: 1.0.1 + semver: 7.6.3 + typescript-auto-import-cache: 0.3.3 + vscode-languageserver-textdocument: 1.0.12 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + optionalDependencies: + '@volar/language-service': 2.4.6 + + volar-service-yaml@0.0.61(@volar/language-service@2.4.6): + dependencies: + vscode-uri: 3.0.8 + yaml-language-server: 1.15.0 + optionalDependencies: + '@volar/language-service': 2.4.6 + + vscode-css-languageservice@6.3.1: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + + vscode-html-languageservice@5.3.1: + dependencies: + '@vscode/l10n': 0.0.18 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-uri: 3.0.8 + + vscode-json-languageservice@4.1.8: + dependencies: + jsonc-parser: 3.3.1 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + + vscode-jsonrpc@6.0.0: {} + + vscode-jsonrpc@8.2.0: {} + + vscode-languageserver-protocol@3.16.0: + dependencies: + vscode-jsonrpc: 6.0.0 + vscode-languageserver-types: 3.16.0 + + vscode-languageserver-protocol@3.17.5: + dependencies: + vscode-jsonrpc: 8.2.0 + vscode-languageserver-types: 3.17.5 + + vscode-languageserver-textdocument@1.0.12: {} + + vscode-languageserver-types@3.16.0: {} + + vscode-languageserver-types@3.17.5: {} + + vscode-languageserver@7.0.0: + dependencies: + vscode-languageserver-protocol: 3.16.0 + + vscode-languageserver@9.0.1: + dependencies: + vscode-languageserver-protocol: 3.17.5 + + vscode-nls@5.2.0: {} + + vscode-uri@2.1.2: {} + + vscode-uri@3.0.8: {} + + web-namespaces@2.0.1: {} + + webidl-conversions@3.0.1: {} + + webidl-conversions@4.0.2: {} + + whatwg-encoding@3.1.1: + dependencies: + iconv-lite: 0.6.3 + + whatwg-mimetype@4.0.0: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + + which-pm-runs@1.1.0: {} + + which-pm@3.0.0: + dependencies: + load-yaml-file: 0.2.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + wide-align@1.1.5: + dependencies: + string-width: 4.2.3 + + widest-line@5.0.0: + dependencies: + string-width: 7.2.0 + + word-wrap@1.2.5: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + xxhash-wasm@1.0.2: {} + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yallist@4.0.0: {} + + yaml-language-server@1.15.0: + dependencies: + ajv: 8.17.1 + lodash: 4.17.21 + request-light: 0.5.8 + vscode-json-languageservice: 4.1.8 + vscode-languageserver: 7.0.0 + vscode-languageserver-textdocument: 1.0.12 + vscode-languageserver-types: 3.17.5 + vscode-nls: 5.2.0 + vscode-uri: 3.0.8 + yaml: 2.2.2 + optionalDependencies: + prettier: 2.8.7 + + yaml@2.2.2: {} + + yaml@2.5.1: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + + yocto-queue@0.1.0: {} + + yocto-queue@1.1.1: {} + + yoga-wasm-web@0.3.3: {} + + zod-to-json-schema@3.23.5(zod@3.23.8): + dependencies: + zod: 3.23.8 + + zod-to-ts@1.2.0(typescript@5.6.3)(zod@3.23.8): + dependencies: + typescript: 5.6.3 + zod: 3.23.8 + + zod@3.23.8: {} + + zwitch@2.0.4: {} diff --git a/public/about/images/team/Afaf.jpg b/public/about/images/team/Afaf.jpg new file mode 100644 index 00000000..beb92a3d Binary files /dev/null and b/public/about/images/team/Afaf.jpg differ diff --git a/public/about/images/team/adnan.jpg b/public/about/images/team/adnan.jpg new file mode 100644 index 00000000..06a0c748 Binary files /dev/null and b/public/about/images/team/adnan.jpg differ diff --git a/public/about/images/team/amine.jpg b/public/about/images/team/amine.jpg new file mode 100644 index 00000000..b9abd308 Binary files /dev/null and b/public/about/images/team/amine.jpg differ diff --git a/public/about/images/team/britel.jpg b/public/about/images/team/britel.jpg new file mode 100644 index 00000000..6515ebf0 Binary files /dev/null and b/public/about/images/team/britel.jpg differ diff --git a/public/about/images/team/daoudi.jpg b/public/about/images/team/daoudi.jpg new file mode 100644 index 00000000..e2088424 Binary files /dev/null and b/public/about/images/team/daoudi.jpg differ diff --git a/public/about/images/team/default.jpg b/public/about/images/team/default.jpg new file mode 100644 index 00000000..b08c3b0a Binary files /dev/null and b/public/about/images/team/default.jpg differ diff --git a/public/about/images/team/ez-zarghili.jpg b/public/about/images/team/ez-zarghili.jpg new file mode 100644 index 00000000..b7cd58fe Binary files /dev/null and b/public/about/images/team/ez-zarghili.jpg differ diff --git a/public/about/images/team/hamza.jpg b/public/about/images/team/hamza.jpg new file mode 100644 index 00000000..d65711d6 Binary files /dev/null and b/public/about/images/team/hamza.jpg differ diff --git a/public/about/images/team/hanane.jpg b/public/about/images/team/hanane.jpg new file mode 100644 index 00000000..4d5667b7 Binary files /dev/null and b/public/about/images/team/hanane.jpg differ diff --git a/public/about/images/team/imeriem.jpg b/public/about/images/team/imeriem.jpg new file mode 100644 index 00000000..46b15e30 Binary files /dev/null and b/public/about/images/team/imeriem.jpg differ diff --git a/public/about/images/team/ismail.jpg b/public/about/images/team/ismail.jpg new file mode 100644 index 00000000..78ff89cc Binary files /dev/null and b/public/about/images/team/ismail.jpg differ diff --git a/public/about/images/team/isoubei.jpg b/public/about/images/team/isoubei.jpg new file mode 100644 index 00000000..2221b966 Binary files /dev/null and b/public/about/images/team/isoubei.jpg differ diff --git a/public/about/images/team/kaizendae.jpg b/public/about/images/team/kaizendae.jpg new file mode 100644 index 00000000..bf6a2c36 Binary files /dev/null and b/public/about/images/team/kaizendae.jpg differ diff --git a/public/about/images/team/laytoun.jpg b/public/about/images/team/laytoun.jpg new file mode 100644 index 00000000..11cb21cc Binary files /dev/null and b/public/about/images/team/laytoun.jpg differ diff --git a/public/about/images/team/maarouf.jpg b/public/about/images/team/maarouf.jpg new file mode 100644 index 00000000..e39499d3 Binary files /dev/null and b/public/about/images/team/maarouf.jpg differ diff --git a/public/about/images/team/mourad.jpg b/public/about/images/team/mourad.jpg new file mode 100644 index 00000000..1421fa7a Binary files /dev/null and b/public/about/images/team/mourad.jpg differ diff --git a/public/about/images/team/nouamane.jpg b/public/about/images/team/nouamane.jpg new file mode 100644 index 00000000..ec185537 Binary files /dev/null and b/public/about/images/team/nouamane.jpg differ diff --git a/public/about/images/team/ofettal.jpg b/public/about/images/team/ofettal.jpg new file mode 100644 index 00000000..41891a44 Binary files /dev/null and b/public/about/images/team/ofettal.jpg differ diff --git a/public/about/images/team/omaima.jpg b/public/about/images/team/omaima.jpg new file mode 100644 index 00000000..21fdb13b Binary files /dev/null and b/public/about/images/team/omaima.jpg differ diff --git a/public/about/images/team/oumaima.jpg b/public/about/images/team/oumaima.jpg new file mode 100644 index 00000000..6a0ef67c Binary files /dev/null and b/public/about/images/team/oumaima.jpg differ diff --git a/public/about/images/team/oussama.jpg b/public/about/images/team/oussama.jpg new file mode 100644 index 00000000..18bd2edc Binary files /dev/null and b/public/about/images/team/oussama.jpg differ diff --git a/public/about/images/team/redouane.jpg b/public/about/images/team/redouane.jpg new file mode 100644 index 00000000..e76ce439 Binary files /dev/null and b/public/about/images/team/redouane.jpg differ diff --git a/public/about/images/team/soufyan.jpg b/public/about/images/team/soufyan.jpg new file mode 100644 index 00000000..fb8ceebc Binary files /dev/null and b/public/about/images/team/soufyan.jpg differ diff --git a/public/about/images/team/telmcani.jpg b/public/about/images/team/telmcani.jpg new file mode 100644 index 00000000..97df66f1 Binary files /dev/null and b/public/about/images/team/telmcani.jpg differ diff --git a/public/about/images/team/wewantu.jpg b/public/about/images/team/wewantu.jpg new file mode 100644 index 00000000..30670776 Binary files /dev/null and b/public/about/images/team/wewantu.jpg differ diff --git a/public/about/images/team/yosef.jpg b/public/about/images/team/yosef.jpg new file mode 100644 index 00000000..da2e0533 Binary files /dev/null and b/public/about/images/team/yosef.jpg differ diff --git a/public/about/path.png b/public/about/path.png new file mode 100644 index 00000000..c4486983 Binary files /dev/null and b/public/about/path.png differ diff --git a/public/animations/ai_episodes.riv b/public/animations/ai_episodes.riv new file mode 100644 index 00000000..d02b9892 Binary files /dev/null and b/public/animations/ai_episodes.riv differ diff --git a/public/animations/ama_tech_news.riv b/public/animations/ama_tech_news.riv new file mode 100644 index 00000000..2a499596 Binary files /dev/null and b/public/animations/ama_tech_news.riv differ diff --git a/public/animations/awesome-morocco.riv b/public/animations/awesome-morocco.riv new file mode 100644 index 00000000..cade314e Binary files /dev/null and b/public/animations/awesome-morocco.riv differ diff --git a/public/animations/books_reviews.riv b/public/animations/books_reviews.riv new file mode 100644 index 00000000..d93a36de Binary files /dev/null and b/public/animations/books_reviews.riv differ diff --git a/public/animations/career_episodes.riv b/public/animations/career_episodes.riv new file mode 100644 index 00000000..c3ad7bb6 Binary files /dev/null and b/public/animations/career_episodes.riv differ diff --git a/public/animations/community-hero-mobile.riv b/public/animations/community-hero-mobile.riv new file mode 100644 index 00000000..e2024c4f Binary files /dev/null and b/public/animations/community-hero-mobile.riv differ diff --git a/public/animations/community-hero-tablet.riv b/public/animations/community-hero-tablet.riv new file mode 100644 index 00000000..24162e5b Binary files /dev/null and b/public/animations/community-hero-tablet.riv differ diff --git a/public/animations/community-hero.riv b/public/animations/community-hero.riv new file mode 100644 index 00000000..53b402d0 Binary files /dev/null and b/public/animations/community-hero.riv differ diff --git a/public/animations/conf.riv b/public/animations/conf.riv new file mode 100644 index 00000000..c6c65944 Binary files /dev/null and b/public/animations/conf.riv differ diff --git a/public/animations/dev_episodes.riv b/public/animations/dev_episodes.riv new file mode 100644 index 00000000..e80a5512 Binary files /dev/null and b/public/animations/dev_episodes.riv differ diff --git a/public/animations/mss-episodes.riv b/public/animations/mss-episodes.riv new file mode 100644 index 00000000..9dc879c2 Binary files /dev/null and b/public/animations/mss-episodes.riv differ diff --git a/public/animations/podcast-hero-mobile.riv b/public/animations/podcast-hero-mobile.riv new file mode 100644 index 00000000..afa60734 Binary files /dev/null and b/public/animations/podcast-hero-mobile.riv differ diff --git a/public/animations/podcast-hero-tablet.riv b/public/animations/podcast-hero-tablet.riv new file mode 100644 index 00000000..7c37638e Binary files /dev/null and b/public/animations/podcast-hero-tablet.riv differ diff --git a/public/animations/podcast-hero.riv b/public/animations/podcast-hero.riv new file mode 100644 index 00000000..2e6ecd96 Binary files /dev/null and b/public/animations/podcast-hero.riv differ diff --git a/public/animations/podcast.riv b/public/animations/podcast.riv new file mode 100644 index 00000000..55bc622b Binary files /dev/null and b/public/animations/podcast.riv differ diff --git a/public/animations/podcast_hero_graphic.riv b/public/animations/podcast_hero_graphic.riv new file mode 100644 index 00000000..39914087 Binary files /dev/null and b/public/animations/podcast_hero_graphic.riv differ diff --git a/public/animations/state-of-dev.riv b/public/animations/state-of-dev.riv new file mode 100644 index 00000000..87ddb674 Binary files /dev/null and b/public/animations/state-of-dev.riv differ diff --git a/public/avatars/default-avatar.svg b/public/avatars/default-avatar.svg new file mode 100644 index 00000000..d0a988d4 --- /dev/null +++ b/public/avatars/default-avatar.svg @@ -0,0 +1,13 @@ + + + + + + + + + + \ No newline at end of file diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 00000000..c9f2f04f --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/fonts/CommitMono-400-Italic.otf b/public/fonts/CommitMono-400-Italic.otf new file mode 100644 index 00000000..94a5a765 Binary files /dev/null and b/public/fonts/CommitMono-400-Italic.otf differ diff --git a/public/fonts/CommitMono-400-Regular.otf b/public/fonts/CommitMono-400-Regular.otf new file mode 100644 index 00000000..9984c708 Binary files /dev/null and b/public/fonts/CommitMono-400-Regular.otf differ diff --git a/public/fonts/CommitMono-700-Italic.otf b/public/fonts/CommitMono-700-Italic.otf new file mode 100644 index 00000000..90aabfa5 Binary files /dev/null and b/public/fonts/CommitMono-700-Italic.otf differ diff --git a/public/fonts/CommitMono-700-Regular.otf b/public/fonts/CommitMono-700-Regular.otf new file mode 100644 index 00000000..4e6e24e9 Binary files /dev/null and b/public/fonts/CommitMono-700-Regular.otf differ diff --git a/reviews/images/afaf.jpg b/public/reviews/images/afaf.jpg similarity index 100% rename from reviews/images/afaf.jpg rename to public/reviews/images/afaf.jpg diff --git a/public/reviews/images/ahmed.jpg b/public/reviews/images/ahmed.jpg new file mode 100644 index 00000000..300aed9b Binary files /dev/null and b/public/reviews/images/ahmed.jpg differ diff --git a/public/reviews/images/anas.jpg b/public/reviews/images/anas.jpg new file mode 100644 index 00000000..84456899 Binary files /dev/null and b/public/reviews/images/anas.jpg differ diff --git a/public/reviews/images/arbaoui.jpg b/public/reviews/images/arbaoui.jpg new file mode 100644 index 00000000..46a08cb9 Binary files /dev/null and b/public/reviews/images/arbaoui.jpg differ diff --git a/reviews/images/badr.png b/public/reviews/images/badr.png similarity index 100% rename from reviews/images/badr.png rename to public/reviews/images/badr.png diff --git a/public/reviews/images/daoudi.jpg b/public/reviews/images/daoudi.jpg new file mode 100644 index 00000000..a6b90f45 Binary files /dev/null and b/public/reviews/images/daoudi.jpg differ diff --git a/reviews/images/elbarchany.jpg b/public/reviews/images/elbarchany.jpg similarity index 100% rename from reviews/images/elbarchany.jpg rename to public/reviews/images/elbarchany.jpg diff --git a/public/reviews/images/ilias.jpeg b/public/reviews/images/ilias.jpeg new file mode 100644 index 00000000..93176d81 Binary files /dev/null and b/public/reviews/images/ilias.jpeg differ diff --git a/reviews/images/othmane.png b/public/reviews/images/othmane.png similarity index 100% rename from reviews/images/othmane.png rename to public/reviews/images/othmane.png diff --git a/reviews/images/oumaima.png b/public/reviews/images/oumaima.png similarity index 100% rename from reviews/images/oumaima.png rename to public/reviews/images/oumaima.png diff --git a/reviews/images/adam.png b/reviews/images/adam.png deleted file mode 100644 index 98f0338a..00000000 Binary files a/reviews/images/adam.png and /dev/null differ diff --git a/reviews/images/ahmed.jpg b/reviews/images/ahmed.jpg deleted file mode 100644 index 50ac34ba..00000000 Binary files a/reviews/images/ahmed.jpg and /dev/null differ diff --git a/reviews/images/anas.jpg b/reviews/images/anas.jpg deleted file mode 100644 index 6532f8b1..00000000 Binary files a/reviews/images/anas.jpg and /dev/null differ diff --git a/reviews/images/arbaoui.jpg b/reviews/images/arbaoui.jpg deleted file mode 100644 index 1e3dbc23..00000000 Binary files a/reviews/images/arbaoui.jpg and /dev/null differ diff --git a/reviews/images/daoudi.jpg b/reviews/images/daoudi.jpg deleted file mode 100644 index a34d5d88..00000000 Binary files a/reviews/images/daoudi.jpg and /dev/null differ diff --git a/reviews/images/diaa.jpg b/reviews/images/diaa.jpg deleted file mode 100644 index 129adb75..00000000 Binary files a/reviews/images/diaa.jpg and /dev/null differ diff --git a/reviews/images/ilias.jpeg b/reviews/images/ilias.jpeg deleted file mode 100644 index fc9a15e3..00000000 Binary files a/reviews/images/ilias.jpeg and /dev/null differ diff --git a/reviews/images/jaafari.jpg b/reviews/images/jaafari.jpg deleted file mode 100644 index cb2f66ee..00000000 Binary files a/reviews/images/jaafari.jpg and /dev/null differ diff --git a/reviews/images/zaboub.jpeg b/reviews/images/zaboub.jpeg deleted file mode 100644 index 45d4704b..00000000 Binary files a/reviews/images/zaboub.jpeg and /dev/null differ diff --git a/reviews/index.yml b/reviews/index.yml deleted file mode 100644 index b78c0e87..00000000 --- a/reviews/index.yml +++ /dev/null @@ -1,77 +0,0 @@ -- name: Oumaima Makhlouk - avatar: ./images/oumaima.png - review: | - Unique, Rich & high quality content!! I have learned a lot of things, thank you for your efforts ! - role: Student, - organization: Universiapolis -- name: Othmane Kinane - avatar: ./images/othmane.png - review: | - One of the few darija speaking tech podcast. Always a pleasure to listen to, and was honored to be a guest in one of the episodes. I discovered some amazing people from around - role: Manager, - organization: SGA Technologies & Services -- name: Anas AIT BAHA - avatar: ./images/anas.jpg - review: | - Geeks BlaBla is the best place where you can have an idea about whatever IT topic you want from experts, simplified enough! - role: Software Engineer, - organization: Oracle Labs -- name: El Housseine Jaafari - avatar: ./images/jaafari.jpg - review: | - I love the concept and the way you guys discuss each subject. Informative, educative and full of fun. - role: Software Engineer, - organization: Instacraft LLC -- name: Diaa Alhak EL Fallous - avatar: ./images/diaa.jpg - review: | - Keep going! - role: Freelancer, - organization: Owner -- name: Badr Bellaj - avatar: ./images/badr.png - review: | - Geeksblabla is an excellent live streaming program for developers. I had the pleasure to be a guest therein. Honestly, I liked the decontracted atmosphere and the ability to interact live with other developers, it was realy cool, fun and constructive. - role: CTO, - organization: Mchain -- name: Ahmed NFAIHI - avatar: ./images/ahmed.jpg - review: | - Honestly, Geeksblabla is a great concept to share knowledge and experiences in Tech between developers. Organized and presented by a fabulous team where its members share the same passion. - role: Student, - organization: ENSET-M -- name: Afaf RIDAOUI - avatar: ./images/afaf.jpg - review: | - Personally, I find it so beneficial and the way of choosing topics and stuff is amazing. good job โค๐Ÿ‘. - role: Student, - organization: ENSA Berrechid -- name: Mohamed Lazybob - avatar: ./images/zaboub.jpeg - review: | - I really like the podcast. You guys give me an insight of the developers life here in Morocco which is rare. Thanks for listening to us. โ™ก - role: Student, - organization: "1337" -- name: Mohamed ELBARCHANY - avatar: ./images/elbarchany.jpg - review: | - GeeksBlabla is one of the few Podcasts I'm addicted to. Love the variety of topics and guests. Thanks to this kind of initiatives, Moroccan dev community is more active than ever! - role: Team Leader, - organization: SG Africa Technologies & Services -- name: Ilias Haddad - avatar: ./images/ilias.jpeg - review: | - One of my favorite darija speaking tech podcast . Keep up the great work and thank you for your efforts ! - role: Indie Maker, Freelancer, - organization: Ibn Tofail -- name: Mohammed Daoudi - avatar: ./images/daoudi.jpg - review: ุดูƒุฑุง ู„ูุฑูŠู‚ ุงู„ุฅุนุฏุงุฏ ูˆ ู„ู„ู†ุงุณ ู„ูŠ ุฌุงูˆ ูˆ ู„ุฌู…ูŠุน ุงู„ู†ุงุณ ู„ูŠ ุณุงู‡ู…ูˆุง ููŠ ุงู„ู†ุฌุงุญ ุฏูŠุงู„ ุงู„ุจุฑู†ุงู…ุฌ. ู…ู† ุฃูุถู„ ุงู„ุจูˆุฏูƒุงุณุชุงุช ููŠ ุงู„ู…ุบุฑุจุŒ ุชุนู„ู…ุช ุจุฒุงู ุฏูŠุงู„ ุงู„ุญูˆุงูŠุฌ ู…ู†ูˆ ูˆ ู…ุงุฒุงู„ ุชุงู†ุชุนู„ู… ู…ุน ูƒู„ ุญู„ู‚ุฉ. - role: Student, - organization: ENSAK -- name: Arbaoui Mehdi - avatar: ./images/arbaoui.jpg - review: | - I enjoy listening to the podcasts, plus I love how you approach subjects in a natural and fun way. THANKS FOR LETTING US HEARING YOUR VOICE. - role: JS Developer & Online Instructor, - organization: Sinj.app, FullStackLibrary diff --git a/scripts/download-audio-format.js b/scripts/download-audio-format.js deleted file mode 100644 index 7035bd85..00000000 --- a/scripts/download-audio-format.js +++ /dev/null @@ -1,28 +0,0 @@ -const util = require("util") -const { audioFileBasePath } = require("./utils") - -const exec = util.promisify(require("child_process").exec) - -const audioFilePath = `${audioFileBasePath}/episode.m4a` - -/* - -download audio format form youtube - -*/ - -const downloadAudioFormat = async (episode) => { - const videoUrl = episode.videoUrl - const youtubeDlCommand = `yt-dlp -o ${audioFilePath} -f 'bestaudio[ext=m4a]' '${videoUrl}'` - console.log(`๐Ÿ‘‰ Downloading ${videoUrl} ...... ๐Ÿƒโ€โ™‚๏ธ๐Ÿƒโ€โ™‚๏ธ๐Ÿƒโ€โ™‚๏ธ `) - console.log( - `yt-dlp -o ${audioFilePath} -f 'bestaudio[ext=m4a]' '${videoUrl}'` - ) - const { stdout, stderr } = await exec(youtubeDlCommand) - if (stderr) { - console.error(`error: ${stderr}`) - } - console.log(`๐Ÿ‘‰ Audio file Downloaded successfully โœ…`) -} - -module.exports = downloadAudioFormat diff --git a/scripts/get-episode-data.js b/scripts/get-episode-data.js deleted file mode 100644 index 5fa41008..00000000 --- a/scripts/get-episode-data.js +++ /dev/null @@ -1,46 +0,0 @@ -const path = require("path") -const fs = require("fs") -const fm = require("front-matter") - -const showdown = require("showdown") - -const converter = new showdown.Converter() -converter.setOption("metadata", true) - -/* -this function will check anchor rss and compare it to blabla folder episode -will return last episode data in case number of episode are not equal - -should covert markdown to HTML format for anchor description -*/ -const getEpisodeData = async (epNum) => { - try { - const missedEpisodeFile = `../blablas/ep${epNum}/index.md` - try { - const fileContent = fs.readFileSync( - path.resolve(__dirname, missedEpisodeFile), - "utf8" - ) - - const description = converter.makeHtml(fileContent) - // read file meta - const meta = fm(fileContent) - const title = `#${epNum} - ${meta.attributes.title.replace( - /"/g, - "" - )}` - const videoUrl = meta.attributes.youtube - const episode = { title, videoUrl, description } - console.log(`๐Ÿ‘‰ Episode Data collected Successfully โœ… `) - return episode - } catch (error) { - console.log("๐Ÿ‘‰ No episode") - return null - } - } catch (error) { - console.log(error) - return null - } -} - -module.exports = getEpisodeData diff --git a/scripts/get-missed-episode.js b/scripts/get-missed-episode.js deleted file mode 100644 index 3e74be6b..00000000 --- a/scripts/get-missed-episode.js +++ /dev/null @@ -1,25 +0,0 @@ -const Parser = require("rss-parser") -const showdown = require("showdown") - -const parser = new Parser() -const converter = new showdown.Converter() -converter.setOption("metadata", true) - -/* -this function will check anchor rss and compare and get the last episode number -*/ -const getMissedEpisodeNumber = async () => { - console.log(`๐Ÿ‘‰ Fetch Missed Episode ...... ๐Ÿƒโ€โ™‚๏ธ๐Ÿƒโ€โ™‚๏ธ๐Ÿƒโ€โ™‚๏ธ `) - try { - const AnchorEpisodes = await parser.parseURL( - "https://anchor.fm/s/88e3048/podcast/rss" - ) - const epNum = AnchorEpisodes.items.length - return epNum - } catch (error) { - console.log(error) - return null - } -} - -module.exports = getMissedEpisodeNumber diff --git a/scripts/index.js b/scripts/index.js deleted file mode 100644 index 017623c8..00000000 --- a/scripts/index.js +++ /dev/null @@ -1,31 +0,0 @@ -const downloadAudioFormat = require("./download-audio-format") -const getEpisodeData = require("./get-episode-data") -const getMissedEpisodeNumber = require("./get-missed-episode") -const upload = require("./puppeteer-upload") - -/* -- Check missed Episode ( usually should be One or Zero) : using the anchor geeksBalaba rss -const episode = { - title: "#Num - Episode Title", - videoUrl: "youtube url", - description: " Html Format " -} -- Download Audio file from youtube using youtube-dl - -- Upload Audio File using pruppeteer -*/ - -const upload_to_anchor = async () => { - try { - const episodeNumber = await getMissedEpisodeNumber() - const episode = await getEpisodeData(episodeNumber) - if (episode === null) return - await downloadAudioFormat(episode) - await upload({ episode }) - } catch (error) { - console.log("๐Ÿšจ error uploading to anchor", error) - process.exit() - } -} - -upload_to_anchor() diff --git a/scripts/package.json b/scripts/package.json deleted file mode 100644 index 4745a9e8..00000000 --- a/scripts/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "geeksblabla-scripts", - "private": true, - "description": "Geeksblala Scripts", - "version": "0.1.0", - "author": "Geeksblabla Team ", - "scripts": { - "upload-to-anchor": "node ./index.js", - "test-upload-to-anchor": "node ./test-puppeteer-upload.js" - }, - "dependencies": {}, - "devDependencies": { - "marked": "^4.0.8", - "puppeteer": "^10.0.0", - "rss-parser": "^3.7.6", - "showdown": "^1.9.1", - "front-matter": "^3.1.0" - }, - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/DevC-Casa/geeksblabla.com/" - }, - "bugs": { - "url": "https://github.com/gatsbyjs/gatsby/issues" - } -} diff --git a/scripts/puppeteer-upload.js b/scripts/puppeteer-upload.js deleted file mode 100644 index 579b9dc9..00000000 --- a/scripts/puppeteer-upload.js +++ /dev/null @@ -1,111 +0,0 @@ -// inspired by https://github.com/Schrodinger-Hat/youtube-to-anchorfm/blob/main/index.js -const puppeteer = require("puppeteer") -const { audioFileBasePath } = require("./utils") - -/* -upload to anchor using puppeteer -*/ - -const email = process.env.ANCHOR_EMAIL -const password = process.env.ANCHOR_PASSWORD -const UPLOAD_TIMEOUT = process.env.UPLOAD_TIMEOUT || 60 * 7 * 1000 - -async function clickDom(page, domBtn) { - await page.evaluate((elem) => { - elem.click() - }, domBtn) -} - -async function clickXpath(page, xpath, options = {}) { - await page.waitForXPath(xpath, options) - const [xpathBtn] = await page.$x(xpath) - await clickDom(page, xpathBtn) -} - -const uploadToAnchor = async ({ - episode, - audioFile = "episode.m4a", - debug = false, -}) => { - console.log("๐Ÿ‘‰ Launching puppeteer") - let browser = null - if (debug) { - browser = await puppeteer.launch({ devtools: true }) - } else { - browser = await puppeteer.launch({ args: ["--no-sandbox"] }) - } - const page = await browser.newPage() - - const navigationPromise = page.waitForNavigation() - - await page.goto("https://podcasters.spotify.com/pod/dashboard/episode/new") - await page.setViewport({ width: 1600, height: 789 }) - await new Promise((r) => { - setTimeout(r, 5 * 1000) - }) - await navigationPromise - await clickXpath(page, '//button[text()="Continue"]') - await new Promise((r) => { - setTimeout(r, 20 * 1000) - }) - - //*[@id="app-content"]/div/div[3]/div[2]/button - await page.waitForSelector("#email") - await page.type("#email", email) - await page.type("#password", password) - await page.click("button[type=submit]") - await navigationPromise - console.log("๐Ÿ‘‰ Logged in") - await page.waitForSelector("input[type=file]") - - const inputFile = await page.$("input[type=file]") - const audioFilepath = `${audioFileBasePath}/${audioFile}` - await inputFile.uploadFile(audioFilepath) - - console.log("๐Ÿ‘‰ Uploading audio file") - console.log("Waiting for upload to finish") - await new Promise((r) => { - setTimeout(r, 25 * 1000) - }) - - await clickXpath( - page, - '//span[contains(text(),"Save")]/parent::button[not(boolean(@disabled))]', - { timeout: UPLOAD_TIMEOUT } - ) - await navigationPromise - - console.log("๐Ÿ‘‰ Adding title and description") - await page.waitForSelector("#title", { visible: true }) - // Wait some time so any field refresh doesn't mess up with our input - await new Promise((r) => { - setTimeout(r, 2000) - }) - await page.type("#title", episode.title) - - // await page.click("label[for='description'] > div > div > button") - const [switchToHTMLButton] = await page.$x("//button[contains(., 'HTML')]") - if (switchToHTMLButton) { - await switchToHTMLButton.click() - } else { - console.log("โŒ No switch to HTML button") - } - - await page.waitForSelector("textarea[name=description]", { visible: true }) - await page.type("textarea[name=description]", episode.description) - - console.log("๐Ÿ‘‰ Save as Draft") - const [saveAsDraftButton] = await page.$x("//button[contains(., 'draft')]") - if (saveAsDraftButton) { - await saveAsDraftButton.click() - } - // await page.click("div.css-1bfy0s > button.styles__button___2oNPe.css-1w1qxic") - await navigationPromise - - await browser.close() - console.log( - "๐Ÿ‘‰ The episode has been successfully submitted as draft to Anchor โœ…" - ) -} - -module.exports = uploadToAnchor diff --git a/scripts/readme.md b/scripts/readme.md deleted file mode 100644 index 9386e81a..00000000 --- a/scripts/readme.md +++ /dev/null @@ -1,27 +0,0 @@ -## Upload new episode to podcast - -We are using anchor to host our podcast. Anchor is a free service that allows you to record and host your podcast. Anchor will distribute your podcast for you so it can be heard on Spotify, Apple Podcasts and many more. - -To automate the process we worked on building a simple script that will do the following: - -1. The script will run as part of github actions workflow and should be triggered when even there is a new update that change the content of `blablas` file, check `.github/workflows/upload_episode.yaml` file for more details. - -2. The script will read the content of `blablas` file and and compare it with podcast rss feed to find if there is any missing episode. - -3. If there is a missing episode, the script will download the episode from youtube as m4a file and put it in `podcast` folder as well as convert the episode markdown file to html to make it ready for anchor. - -4. We wrote a puppeteer script to automate the process of uploading the episode to anchor, check `scripts/puppeteer_episode.js` file for more details. The script is mainly an end to end simulation of the process of uploading the episode to anchor as anchor doesn't provide any API to automate the process. - -## How to test the process locally - -The simplest way to test the process locally is to select the function you want to test locally and work with right test file for that function. - -For example, if you want to test the process of uploading the episode to anchor, which the script that need maintenance the most you can use `test-puppeteer-upload` script: - -```bash -cd scripts -yarn install - -ANCHOR_EMAIL=your-anchor-email@gmail.com ANCHOR_PASSWORD=your-anchor-password yarn test-upload-to-anchor - -``` diff --git a/scripts/test-puppeteer-upload.js b/scripts/test-puppeteer-upload.js deleted file mode 100644 index 8c65625b..00000000 --- a/scripts/test-puppeteer-upload.js +++ /dev/null @@ -1,21 +0,0 @@ -const uploadToAnchor = require("./puppeteer-upload") - -const testEpisodeData = { - title: "This is a test episode title", - description: "This is a test episode description", -} - -const run_script = async () => { - try { - await uploadToAnchor({ - episode: testEpisodeData, - audioFile: "test.m4a", - debug: true, - }) - } catch (error) { - console.log("๐Ÿšจ error uploading to anchor", error) - process.exit() - } -} - -run_script() diff --git a/scripts/test.m4a b/scripts/test.m4a deleted file mode 100644 index 65688f05..00000000 Binary files a/scripts/test.m4a and /dev/null differ diff --git a/scripts/utils.js b/scripts/utils.js deleted file mode 100644 index 98908b0b..00000000 --- a/scripts/utils.js +++ /dev/null @@ -1,5 +0,0 @@ -const path = require("path") -const basePath = path.resolve(__dirname, "../") -const audioFileBasePath = `${basePath}/scripts` - -exports.audioFileBasePath = audioFileBasePath diff --git a/scripts/yarn.lock b/scripts/yarn.lock deleted file mode 100644 index caa3bc61..00000000 --- a/scripts/yarn.lock +++ /dev/null @@ -1,853 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@types/minimatch@^3.0.3": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" - integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== - -"@types/node@*": - version "18.15.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.1.tgz#41dc2bf78e8085a250d4670d95edb7fba621dd29" - integrity sha512-U2TWca8AeHSmbpi314QBESRk7oPjSZjDsR+c+H4ECC1l+kFgpZf8Ydhv3SJpPy51VyZHHqxlb6mTTqYNNRVAIw== - -"@types/yauzl@^2.9.1": - version "2.10.0" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599" - integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw== - dependencies: - "@types/node" "*" - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -array-differ@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" - integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -arrify@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" - integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -bl@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== - -buffer@^5.2.1, buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - -camelcase@^5.0.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -cross-spawn@^7.0.0: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -debug@4, debug@^4.1.1: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - -devtools-protocol@0.0.901419: - version "0.0.901419" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.901419.tgz#79b5459c48fe7e1c5563c02bd72f8fec3e0cebcd" - integrity sha512-4INMPwNm9XRpBukhNbF7OB6fNTTCaI8pzy/fXg0xQzAy5h3zL1P8xT3QazgKqBrb/hAYwIBizqDBZ7GtJE74QQ== - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -entities@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -execa@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-2.1.0.tgz#e5d3ecd837d2a60ec50f3da78fd39767747bbe99" - integrity sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw== - dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^3.0.0" - onetime "^5.1.0" - p-finally "^2.0.0" - signal-exit "^3.0.2" - strip-final-newline "^2.0.0" - -extract-zip@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" - integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== - dependencies: - debug "^4.1.1" - get-stream "^5.1.0" - yauzl "^2.10.0" - optionalDependencies: - "@types/yauzl" "^2.9.1" - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== - dependencies: - pend "~1.2.0" - -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -front-matter@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-3.2.1.tgz#88be839638f397bbbcb0d61ac03bd08abb4f0a40" - integrity sha512-YUhgEhbL6tG+Ok3vTGIoSDKqcr47aSDvyhEqIv8B+YuBJFsPnOiArNXTPp2yO07NL+a0L4+2jXlKlKqyVcsRRA== - dependencies: - js-yaml "^3.13.1" - -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -get-caller-file@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-stream@^5.0.0, get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - 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" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -https-proxy-agent@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore@^5.1.4: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@^2.0.3, inherits@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -"js-tokens@^3.0.0 || ^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -loose-envify@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -marked@^4.0.8: - version "4.2.12" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.12.tgz#d69a64e21d71b06250da995dcd065c11083bebb5" - integrity sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minimatch@^3.0.4, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -mkdirp@^0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mri@^1.1.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" - integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -multimatch@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" - integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== - dependencies: - "@types/minimatch" "^3.0.3" - array-differ "^3.0.0" - array-union "^2.1.0" - arrify "^2.0.1" - minimatch "^3.0.4" - -node-fetch@2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" - integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== - -npm-run-path@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-3.1.0.tgz#7f91be317f6a466efed3c9f2980ad8a4ee8b0fa5" - integrity sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg== - dependencies: - path-key "^3.0.0" - -object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -p-finally@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" - integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== - -p-limit@^2.0.0, p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== - -pkg-dir@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -prettier@^2.0.4: - version "2.8.4" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" - integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== - -pretty-quick@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/pretty-quick/-/pretty-quick-2.0.2.tgz#4e44d6489ed513ef111bee501f63688d854584e6" - integrity sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A== - dependencies: - chalk "^2.4.2" - execa "^2.1.0" - find-up "^4.1.0" - ignore "^5.1.4" - mri "^1.1.4" - multimatch "^4.0.0" - -progress@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.1.tgz#c9242169342b1c29d275889c95734621b1952e31" - integrity sha512-OE+a6vzqazc+K6LxJrX5UPyKFvGnL5CYmq2jFGNIBWHpc4QyE49/YOumcrpQFJpfejmvRtbJzgO1zPmMCqlbBg== - -proxy-from-env@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -puppeteer@^10.0.0: - version "10.4.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-10.4.0.tgz#a6465ff97fda0576c4ac29601406f67e6fea3dc7" - integrity sha512-2cP8mBoqnu5gzAVpbZ0fRaobBWZM8GEUF4I1F6WbgHrKV/rz7SX8PG2wMymZgD0wo0UBlg2FBPNxlF/xlqW6+w== - dependencies: - debug "4.3.1" - devtools-protocol "0.0.901419" - extract-zip "2.0.1" - https-proxy-agent "5.0.0" - node-fetch "2.6.1" - pkg-dir "4.2.0" - progress "2.0.1" - proxy-from-env "1.1.0" - rimraf "3.0.2" - tar-fs "2.0.0" - unbzip2-stream "1.3.3" - ws "7.4.6" - -"react-is@^16.12.0 || ^17.0.0 || ^18.0.0": - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== - -react-is@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -react-shallow-renderer@^16.13.1: - version "16.15.0" - resolved "https://registry.yarnpkg.com/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz#48fb2cf9b23d23cde96708fe5273a7d3446f4457" - integrity sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA== - dependencies: - object-assign "^4.1.1" - react-is "^16.12.0 || ^17.0.0 || ^18.0.0" - -react-test-renderer@^17.0.2: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-17.0.2.tgz#4cd4ae5ef1ad5670fc0ef776e8cc7e1231d9866c" - integrity sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ== - dependencies: - object-assign "^4.1.1" - react-is "^17.0.2" - react-shallow-renderer "^16.13.1" - scheduler "^0.20.2" - -readable-stream@^3.1.1, readable-stream@^3.4.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - -rimraf@3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rss-parser@^3.7.6: - version "3.12.0" - resolved "https://registry.yarnpkg.com/rss-parser/-/rss-parser-3.12.0.tgz#b8888699ea46304a74363fbd8144671b2997984c" - integrity sha512-aqD3E8iavcCdkhVxNDIdg1nkBI17jgqF+9OqPS1orwNaOgySdpvq6B+DoONLhzjzwV8mWg37sb60e4bmLK117A== - dependencies: - entities "^2.0.3" - xml2js "^0.4.19" - -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -sax@>=0.6.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -scheduler@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91" - integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ== - dependencies: - loose-envify "^1.1.0" - object-assign "^4.1.1" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -showdown@^1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/showdown/-/showdown-1.9.1.tgz#134e148e75cd4623e09c21b0511977d79b5ad0ef" - integrity sha512-9cGuS382HcvExtf5AHk7Cb4pAeQQ+h0eTr33V1mu+crYWV4KvWAw6el92bDrqGEk5d46Ai/fhbEUwqJ/mTCNEA== - dependencies: - yargs "^14.2" - -signal-exit@^3.0.2: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -tar-fs@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.0.tgz#677700fc0c8b337a78bee3623fdc235f21d7afad" - integrity sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA== - dependencies: - chownr "^1.1.1" - mkdirp "^0.5.1" - pump "^3.0.0" - tar-stream "^2.0.0" - -tar-stream@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - -through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -unbzip2-stream@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz#d156d205e670d8d8c393e1c02ebd506422873f6a" - integrity sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg== - dependencies: - buffer "^5.2.1" - through "^2.3.8" - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -ws@7.4.6: - version "7.4.6" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" - integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== - -xml2js@^0.4.19: - version "0.4.23" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" - integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - -xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== - -y18n@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - -yargs-parser@^15.0.1: - version "15.0.3" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.3.tgz#316e263d5febe8b38eef61ac092b33dfcc9b1115" - integrity sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs@^14.2: - version "14.2.3" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" - integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== - dependencies: - cliui "^5.0.0" - decamelize "^1.2.0" - find-up "^3.0.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 "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^15.0.1" - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" diff --git a/src/actions/get-episode-details.ts b/src/actions/get-episode-details.ts new file mode 100644 index 00000000..5b5ef0d7 --- /dev/null +++ b/src/actions/get-episode-details.ts @@ -0,0 +1,36 @@ +import { getEpisodeDetails as getNotionEpisodeDetails } from "@/lib/notion"; +import { getYoutubeVideoDetails } from "@/lib/youtube"; +import { defineAction, ActionError } from "astro:actions"; +import { z } from "astro:schema"; + +export const getEpisodeDetails = defineAction({ + accept: "json", + input: z.object({ + url: z.string(), + }), + handler: async ({ url }) => { + const episodeId = url.split("-").pop(); + if (!episodeId) { + throw new ActionError({ + code: "BAD_REQUEST", + message: "Invalid URL", + }); + } + try { + const episodeDetails = await getNotionEpisodeDetails(episodeId); + const youtubeDetails = await getYoutubeVideoDetails( + episodeDetails.youtube + ); + return { + ...episodeDetails, + ...youtubeDetails, + }; + } catch (error) { + console.error("Error getting episode details:", error); + throw new ActionError({ + code: "INTERNAL_SERVER_ERROR", + message: "Error getting episode details", + }); + } + }, +}); diff --git a/src/actions/get-links-titles.ts b/src/actions/get-links-titles.ts new file mode 100644 index 00000000..55dc0a94 --- /dev/null +++ b/src/actions/get-links-titles.ts @@ -0,0 +1,37 @@ +import { getEpisodeDetails as getNotionEpisodeDetails } from "@/lib/notion"; +import { getYoutubeVideoDetails } from "@/lib/youtube"; +import { defineAction, ActionError } from "astro:actions"; +import { z } from "astro:schema"; + +export const getEpisodeDetails = defineAction({ + accept: "json", + input: z.object({ + url: z.string(), + }), + handler: async ({ url }) => { + const episodeId = url.split("-").pop(); + if (!episodeId) { + throw new ActionError({ + code: "BAD_REQUEST", + message: "Invalid URL", + }); + } + try { + const episodeDetails = await getNotionEpisodeDetails(episodeId); + const youtubeDetails = await getYoutubeVideoDetails( + episodeDetails.youtube + ); + console.log(youtubeDetails); + return { + ...episodeDetails, + ...youtubeDetails, + }; + } catch (error) { + console.error("Error getting episode details:", error); + throw new ActionError({ + code: "INTERNAL_SERVER_ERROR", + message: "Error getting episode details", + }); + } + }, +}); diff --git a/src/actions/get-page-titles.ts b/src/actions/get-page-titles.ts new file mode 100644 index 00000000..2e60d578 --- /dev/null +++ b/src/actions/get-page-titles.ts @@ -0,0 +1,42 @@ +import { defineAction, ActionError } from "astro:actions"; +import { z } from "astro:schema"; + +export const getPageTitles = defineAction({ + accept: "json", + input: z.object({ + urls: z.union([z.string(), z.array(z.string())]), + }), + handler: async ({ urls }) => { + try { + const urlList = Array.isArray(urls) ? urls : [urls]; + + const results = await Promise.all( + urlList.map(async url => { + try { + const response = await fetch(url); + if (!response.ok) { + console.warn(`Failed to fetch ${url}`); + return { url, title: "Not found" }; + } + const text = await response.text(); + const titleMatch = text.match(/(.*?)<\/title>/i); + const title = titleMatch ? titleMatch[1] : "No title found"; + return { url, title }; + } catch (error) { + console.warn(`Error fetching ${url}:`, error); + return { url, title: "Not found" }; + } + }) + ); + + // Filter out any null results (failed fetches) + return results.filter(result => result !== null); + } catch (error) { + console.error("Unexpected error:", error); + throw new ActionError({ + code: "INTERNAL_SERVER_ERROR", + message: "An unexpected error occurred while fetching page titles.", + }); + } + }, +}); diff --git a/src/actions/index.ts b/src/actions/index.ts new file mode 100644 index 00000000..1cebc615 --- /dev/null +++ b/src/actions/index.ts @@ -0,0 +1,11 @@ +import { getEpisodeDetails } from "./get-episode-details"; +import { getPageTitles } from "./get-page-titles"; +import { submitSuggestion } from "./submit-suggestion"; +import { submitNewEpisode } from "./submit-new-episode"; + +export const server = { + getEpisodeDetails, + getPageTitles, + submitSuggestion, + submitNewEpisode, +}; diff --git a/src/actions/submit-new-episode.ts b/src/actions/submit-new-episode.ts new file mode 100644 index 00000000..ece63471 --- /dev/null +++ b/src/actions/submit-new-episode.ts @@ -0,0 +1,33 @@ +import { defineAction, ActionError } from "astro:actions"; +import { z } from "astro:schema"; +import { addNewEpisodeToNotion } from "@/lib/notion"; + +export const submitNewEpisode = defineAction({ + accept: "form", + input: z.object({ + title: z.string().min(3), + description: z.string().min(10), + submittedBy: z.string().min(2), + }), + handler: async ({ title, description, submittedBy }) => { + try { + await addNewEpisodeToNotion({ + title, + description, + submittedBy, + }); + + return { + success: true, + message: + "Thank you! Your episode suggestion has been submitted successfully!", + }; + } catch (error) { + console.error("Error submitting new episode:", error); + throw new ActionError({ + code: "INTERNAL_SERVER_ERROR", + message: "Failed to submit new episode suggestion", + }); + } + }, +}); diff --git a/src/actions/submit-suggestion.ts b/src/actions/submit-suggestion.ts new file mode 100644 index 00000000..39dce9b8 --- /dev/null +++ b/src/actions/submit-suggestion.ts @@ -0,0 +1,32 @@ +import { defineAction, ActionError } from "astro:actions"; +import { z } from "astro:schema"; +import { addSuggestionToNotionEpisode } from "@/lib/notion"; + +export const submitSuggestion = defineAction({ + accept: "form", + input: z.object({ + episodeId: z.string(), + submittedBy: z.string().min(2), + content: z.string().min(3), + }), + handler: async ({ episodeId, submittedBy, content }) => { + try { + await addSuggestionToNotionEpisode({ + episodeId, + submittedBy, + content, + }); + + return { + success: true, + message: "Thank you! Your suggestion has been submitted successfully!", + }; + } catch (error) { + console.error("Error submitting suggestion:", error); + throw new ActionError({ + code: "INTERNAL_SERVER_ERROR", + message: "Failed to submit suggestion", + }); + } + }, +}); diff --git a/src/assets/about/1-jan-17-1024.png b/src/assets/about/1-jan-17-1024.png new file mode 100644 index 00000000..d7431dfb Binary files /dev/null and b/src/assets/about/1-jan-17-1024.png differ diff --git a/src/assets/about/1-jan-17-768.png b/src/assets/about/1-jan-17-768.png new file mode 100644 index 00000000..10d55fc1 Binary files /dev/null and b/src/assets/about/1-jan-17-768.png differ diff --git a/src/assets/about/1-jan-17.png b/src/assets/about/1-jan-17.png new file mode 100644 index 00000000..e870bf56 Binary files /dev/null and b/src/assets/about/1-jan-17.png differ diff --git a/src/assets/about/2-may-18-1024.png b/src/assets/about/2-may-18-1024.png new file mode 100644 index 00000000..2f038ccc Binary files /dev/null and b/src/assets/about/2-may-18-1024.png differ diff --git a/src/assets/about/2-may-18-768.png b/src/assets/about/2-may-18-768.png new file mode 100644 index 00000000..28064d24 Binary files /dev/null and b/src/assets/about/2-may-18-768.png differ diff --git a/src/assets/about/2-may-18.png b/src/assets/about/2-may-18.png new file mode 100644 index 00000000..0e6c0e90 Binary files /dev/null and b/src/assets/about/2-may-18.png differ diff --git a/src/assets/about/3-jul-19-1024.png b/src/assets/about/3-jul-19-1024.png new file mode 100644 index 00000000..4fa46ba8 Binary files /dev/null and b/src/assets/about/3-jul-19-1024.png differ diff --git a/src/assets/about/3-jul-19-768.png b/src/assets/about/3-jul-19-768.png new file mode 100644 index 00000000..001a2a60 Binary files /dev/null and b/src/assets/about/3-jul-19-768.png differ diff --git a/src/assets/about/3-jul-19.png b/src/assets/about/3-jul-19.png new file mode 100644 index 00000000..46c180ed Binary files /dev/null and b/src/assets/about/3-jul-19.png differ diff --git a/src/assets/about/4-oct-20-1024.png b/src/assets/about/4-oct-20-1024.png new file mode 100644 index 00000000..23de91c2 Binary files /dev/null and b/src/assets/about/4-oct-20-1024.png differ diff --git a/src/assets/about/4-oct-20-768.png b/src/assets/about/4-oct-20-768.png new file mode 100644 index 00000000..fcf531d5 Binary files /dev/null and b/src/assets/about/4-oct-20-768.png differ diff --git a/src/assets/about/4-oct-20.png b/src/assets/about/4-oct-20.png new file mode 100644 index 00000000..346d503d Binary files /dev/null and b/src/assets/about/4-oct-20.png differ diff --git a/src/assets/about/5-dec-21-1024.png b/src/assets/about/5-dec-21-1024.png new file mode 100644 index 00000000..d42ba15c Binary files /dev/null and b/src/assets/about/5-dec-21-1024.png differ diff --git a/src/assets/about/5-dec-21-768.png b/src/assets/about/5-dec-21-768.png new file mode 100644 index 00000000..a6596212 Binary files /dev/null and b/src/assets/about/5-dec-21-768.png differ diff --git a/src/assets/about/5-dec-21.png b/src/assets/about/5-dec-21.png new file mode 100644 index 00000000..66479ecf Binary files /dev/null and b/src/assets/about/5-dec-21.png differ diff --git a/src/assets/about/6-jan-24-1024.png b/src/assets/about/6-jan-24-1024.png new file mode 100644 index 00000000..23ce043b Binary files /dev/null and b/src/assets/about/6-jan-24-1024.png differ diff --git a/src/assets/about/6-jan-24-768.png b/src/assets/about/6-jan-24-768.png new file mode 100644 index 00000000..21c9d60c Binary files /dev/null and b/src/assets/about/6-jan-24-768.png differ diff --git a/src/assets/about/6-jan-24.png b/src/assets/about/6-jan-24.png new file mode 100644 index 00000000..7a319bb6 Binary files /dev/null and b/src/assets/about/6-jan-24.png differ diff --git a/src/assets/about/7-next-1024.png b/src/assets/about/7-next-1024.png new file mode 100644 index 00000000..ca6a1863 Binary files /dev/null and b/src/assets/about/7-next-1024.png differ diff --git a/src/assets/about/7-next-768.png b/src/assets/about/7-next-768.png new file mode 100644 index 00000000..a995f5fa Binary files /dev/null and b/src/assets/about/7-next-768.png differ diff --git a/src/assets/about/7-next.png b/src/assets/about/7-next.png new file mode 100644 index 00000000..68123550 Binary files /dev/null and b/src/assets/about/7-next.png differ diff --git a/src/assets/apple-podcast.svg b/src/assets/apple-podcast.svg deleted file mode 100644 index 6811b926..00000000 --- a/src/assets/apple-podcast.svg +++ /dev/null @@ -1,7 +0,0 @@ -<svg width="22" height="22" viewBox="0 0 22 22" fill="none" xmlns="http://www.w3.org/2000/svg"> -<title>apple podcast - - - - - diff --git a/src/assets/auth0.svg b/src/assets/auth0.svg deleted file mode 100644 index 6a409862..00000000 --- a/src/assets/auth0.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/contact.svg b/src/assets/contact.svg deleted file mode 100644 index 03b3b128..00000000 --- a/src/assets/contact.svg +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/contact_light.svg b/src/assets/contact_light.svg deleted file mode 100644 index 723e3cb2..00000000 --- a/src/assets/contact_light.svg +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/episodes.svg b/src/assets/episodes.svg deleted file mode 100644 index 2d1f31db..00000000 --- a/src/assets/episodes.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/src/assets/episodes_light.svg b/src/assets/episodes_light.svg deleted file mode 100644 index 77bc0d32..00000000 --- a/src/assets/episodes_light.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/src/assets/facebook.svg b/src/assets/facebook.svg deleted file mode 100644 index 43ffc0e3..00000000 --- a/src/assets/facebook.svg +++ /dev/null @@ -1 +0,0 @@ -geeksblabla facebook page \ No newline at end of file diff --git a/src/assets/figma.svg b/src/assets/figma.svg deleted file mode 100644 index 9c551ada..00000000 --- a/src/assets/figma.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/assets/funadb.svg b/src/assets/funadb.svg deleted file mode 100644 index 5399e472..00000000 --- a/src/assets/funadb.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/gatsby.svg b/src/assets/gatsby.svg deleted file mode 100644 index c4ac76c2..00000000 --- a/src/assets/gatsby.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/github.svg b/src/assets/github.svg deleted file mode 100644 index a9a1bb96..00000000 --- a/src/assets/github.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/src/assets/google-podcast.svg b/src/assets/google-podcast.svg deleted file mode 100644 index e01d599b..00000000 --- a/src/assets/google-podcast.svg +++ /dev/null @@ -1,10 +0,0 @@ - -google podcast - - - - - - - - diff --git a/src/assets/guest.svg b/src/assets/guest.svg deleted file mode 100644 index dccfdf34..00000000 --- a/src/assets/guest.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/guest_light.svg b/src/assets/guest_light.svg deleted file mode 100644 index 0c8e3765..00000000 --- a/src/assets/guest_light.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/hero.svg b/src/assets/hero.svg deleted file mode 100644 index 2ed85d33..00000000 --- a/src/assets/hero.svg +++ /dev/null @@ -1,774 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/hero_light.svg b/src/assets/hero_light.svg deleted file mode 100644 index f7da6057..00000000 --- a/src/assets/hero_light.svg +++ /dev/null @@ -1,820 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/hero_mobile.svg b/src/assets/hero_mobile.svg deleted file mode 100644 index 34a73100..00000000 --- a/src/assets/hero_mobile.svg +++ /dev/null @@ -1,641 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/hero_mobile_light.svg b/src/assets/hero_mobile_light.svg deleted file mode 100644 index a09d1e7b..00000000 --- a/src/assets/hero_mobile_light.svg +++ /dev/null @@ -1,540 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/logo-light.svg b/src/assets/logo-light.svg new file mode 100644 index 00000000..1d0ef421 --- /dev/null +++ b/src/assets/logo-light.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/logo.svg b/src/assets/logo.svg index d60eb6a8..5d3fbfc9 100644 --- a/src/assets/logo.svg +++ b/src/assets/logo.svg @@ -1,154 +1,17 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/src/assets/minutes.svg b/src/assets/minutes.svg deleted file mode 100644 index 85596013..00000000 --- a/src/assets/minutes.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/minutes_light.svg b/src/assets/minutes_light.svg deleted file mode 100644 index 1f720271..00000000 --- a/src/assets/minutes_light.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/moon.svg b/src/assets/moon.svg deleted file mode 100644 index 5606e7d4..00000000 --- a/src/assets/moon.svg +++ /dev/null @@ -1,4 +0,0 @@ - -Toggle Dark Mode - - diff --git a/src/assets/morocco.svg b/src/assets/morocco.svg new file mode 100644 index 00000000..fd09ccb2 --- /dev/null +++ b/src/assets/morocco.svg @@ -0,0 +1,880 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/mss.svg b/src/assets/mss.svg deleted file mode 100644 index 64ba4ef2..00000000 --- a/src/assets/mss.svg +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/mss_light.svg b/src/assets/mss_light.svg deleted file mode 100644 index a82f4113..00000000 --- a/src/assets/mss_light.svg +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/netlify.svg b/src/assets/netlify.svg deleted file mode 100644 index 9c70dccf..00000000 --- a/src/assets/netlify.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/src/assets/notif.svg b/src/assets/notif.svg deleted file mode 100755 index 8c1e6d1d..00000000 --- a/src/assets/notif.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/assets/notification.svg b/src/assets/notification.svg deleted file mode 100644 index 307ea57a..00000000 --- a/src/assets/notification.svg +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/notification_light.svg b/src/assets/notification_light.svg deleted file mode 100644 index 895802a8..00000000 --- a/src/assets/notification_light.svg +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/assets/pattern.svg b/src/assets/pattern.svg deleted file mode 100644 index de538087..00000000 --- a/src/assets/pattern.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/src/assets/patterns/1.back.svg b/src/assets/patterns/1.back.svg deleted file mode 100644 index 85f5dddd..00000000 --- a/src/assets/patterns/1.back.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/patterns/2.back.svg b/src/assets/patterns/2.back.svg deleted file mode 100644 index 7b3a6de4..00000000 --- a/src/assets/patterns/2.back.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/patterns/3.back.svg b/src/assets/patterns/3.back.svg deleted file mode 100644 index c07592fc..00000000 --- a/src/assets/patterns/3.back.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/patterns/4.back.svg b/src/assets/patterns/4.back.svg deleted file mode 100644 index f5e263a5..00000000 --- a/src/assets/patterns/4.back.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/patterns/5.back.svg b/src/assets/patterns/5.back.svg deleted file mode 100644 index d0a28546..00000000 --- a/src/assets/patterns/5.back.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/patterns/6.back.svg b/src/assets/patterns/6.back.svg deleted file mode 100644 index 30c470da..00000000 --- a/src/assets/patterns/6.back.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/play-icon.svg b/src/assets/play-icon.svg deleted file mode 100644 index 0e4f3797..00000000 --- a/src/assets/play-icon.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/src/assets/play.svg b/src/assets/play.svg deleted file mode 100755 index e2e5c5dd..00000000 --- a/src/assets/play.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/assets/podcast/ama-episode.svg b/src/assets/podcast/ama-episode.svg new file mode 100644 index 00000000..02a024cb --- /dev/null +++ b/src/assets/podcast/ama-episode.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/podcast/books-episode.svg b/src/assets/podcast/books-episode.svg new file mode 100644 index 00000000..2dce0fb8 --- /dev/null +++ b/src/assets/podcast/books-episode.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/podcast/career-episode.svg b/src/assets/podcast/career-episode.svg new file mode 100644 index 00000000..f0034094 --- /dev/null +++ b/src/assets/podcast/career-episode.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/podcast/dev-episode.svg b/src/assets/podcast/dev-episode.svg new file mode 100644 index 00000000..4119aabe --- /dev/null +++ b/src/assets/podcast/dev-episode.svg @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/podcast/guests.png b/src/assets/podcast/guests.png new file mode 100644 index 00000000..23dc4df6 Binary files /dev/null and b/src/assets/podcast/guests.png differ diff --git a/src/assets/podcast/guests.svg b/src/assets/podcast/guests.svg new file mode 100644 index 00000000..7a0a8d4f --- /dev/null +++ b/src/assets/podcast/guests.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/podcast/hero-image.png b/src/assets/podcast/hero-image.png new file mode 100644 index 00000000..a6fdee1a Binary files /dev/null and b/src/assets/podcast/hero-image.png differ diff --git a/src/assets/podcast/hours.png b/src/assets/podcast/hours.png new file mode 100644 index 00000000..742b9362 Binary files /dev/null and b/src/assets/podcast/hours.png differ diff --git a/src/assets/podcast/hours.svg b/src/assets/podcast/hours.svg new file mode 100644 index 00000000..5aa4f976 --- /dev/null +++ b/src/assets/podcast/hours.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/podcast/mss-episode.svg b/src/assets/podcast/mss-episode.svg new file mode 100644 index 00000000..4f951567 --- /dev/null +++ b/src/assets/podcast/mss-episode.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/podcast/planning.png b/src/assets/podcast/planning.png new file mode 100644 index 00000000..1851a1bd Binary files /dev/null and b/src/assets/podcast/planning.png differ diff --git a/src/assets/podcast/views.png b/src/assets/podcast/views.png new file mode 100644 index 00000000..12a69f3e Binary files /dev/null and b/src/assets/podcast/views.png differ diff --git a/src/assets/podcast/views.svg b/src/assets/podcast/views.svg new file mode 100644 index 00000000..bfa32d7d --- /dev/null +++ b/src/assets/podcast/views.svg @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/projects/awesome-morocco.svg b/src/assets/projects/awesome-morocco.svg new file mode 100644 index 00000000..674dd855 --- /dev/null +++ b/src/assets/projects/awesome-morocco.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/projects/blablaconf.svg b/src/assets/projects/blablaconf.svg new file mode 100644 index 00000000..d6c5735f --- /dev/null +++ b/src/assets/projects/blablaconf.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/projects/geeksblabla-podcast.svg b/src/assets/projects/geeksblabla-podcast.svg new file mode 100644 index 00000000..d8c7514f --- /dev/null +++ b/src/assets/projects/geeksblabla-podcast.svg @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/projects/state-of-dev.svg b/src/assets/projects/state-of-dev.svg new file mode 100644 index 00000000..00f9ca80 --- /dev/null +++ b/src/assets/projects/state-of-dev.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/react-icon.svg b/src/assets/react-icon.svg deleted file mode 100644 index e7039664..00000000 --- a/src/assets/react-icon.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/src/assets/rect.svg b/src/assets/rect.svg deleted file mode 100644 index 5838769c..00000000 --- a/src/assets/rect.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/src/assets/rss.svg b/src/assets/rss.svg deleted file mode 100644 index 694565b0..00000000 --- a/src/assets/rss.svg +++ /dev/null @@ -1 +0,0 @@ -geeksblabla rss \ No newline at end of file diff --git a/src/assets/search.svg b/src/assets/search.svg deleted file mode 100644 index 9c4c20a8..00000000 --- a/src/assets/search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/send.svg b/src/assets/send.svg deleted file mode 100755 index 7dbcc8ff..00000000 --- a/src/assets/send.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/social-icons.ts b/src/assets/social-icons.ts new file mode 100644 index 00000000..a126abde --- /dev/null +++ b/src/assets/social-icons.ts @@ -0,0 +1,211 @@ +const socialIcons = { + Github: ` + + + `, + Facebook: ` + + + `, + Instagram: ` + + + + + `, + LinkedIn: ` + + + + + + + `, + Mail: ` + + + + `, + Twitter: ` + + + `, + Twitch: ` + + `, + YouTube: ` + + + `, + WhatsApp: ` + + + + `, + Snapchat: ` + + + `, + Pinterest: ` + + + + + `, + TikTok: ` + + + `, + CodePen: ` + + + + + + + + `, + Discord: ` + + + + + + + + `, + GitLab: ` + + + `, + Reddit: ` + + + + + + + + `, + Skype: ` + + + + `, + Steam: ` + + + + `, + Telegram: ` + + + `, + Mastodon: ` + + `, +}; + +export default socialIcons; diff --git a/src/assets/spotify.svg b/src/assets/spotify.svg deleted file mode 100644 index 3fa57f9a..00000000 --- a/src/assets/spotify.svg +++ /dev/null @@ -1,4 +0,0 @@ - -spotify - - diff --git a/src/assets/stats_item.back.svg b/src/assets/stats_item.back.svg deleted file mode 100644 index 3170151d..00000000 --- a/src/assets/stats_item.back.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/stats_item.svg b/src/assets/stats_item.svg deleted file mode 100644 index 3170151d..00000000 --- a/src/assets/stats_item.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/stats_light.back.svg b/src/assets/stats_light.back.svg deleted file mode 100644 index 63e00569..00000000 --- a/src/assets/stats_light.back.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/sun.svg b/src/assets/sun.svg deleted file mode 100644 index 8de227c4..00000000 --- a/src/assets/sun.svg +++ /dev/null @@ -1,4 +0,0 @@ - -Toggle Light Mode - - diff --git a/src/assets/tech.svg b/src/assets/tech.svg deleted file mode 100644 index 5d0224c2..00000000 --- a/src/assets/tech.svg +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/tech_light.svg b/src/assets/tech_light.svg deleted file mode 100644 index 162e3f6a..00000000 --- a/src/assets/tech_light.svg +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/testimonials/avatar.png b/src/assets/testimonials/avatar.png new file mode 100644 index 00000000..96bdb90b Binary files /dev/null and b/src/assets/testimonials/avatar.png differ diff --git a/src/assets/twitter.svg b/src/assets/twitter.svg deleted file mode 100644 index 40ef0e54..00000000 --- a/src/assets/twitter.svg +++ /dev/null @@ -1 +0,0 @@ -geeksblabla twitter page \ No newline at end of file diff --git a/src/assets/values/accountability.png b/src/assets/values/accountability.png new file mode 100644 index 00000000..b20f429c Binary files /dev/null and b/src/assets/values/accountability.png differ diff --git a/src/assets/values/consistency.png b/src/assets/values/consistency.png new file mode 100644 index 00000000..9fe3150f Binary files /dev/null and b/src/assets/values/consistency.png differ diff --git a/src/assets/values/empathy.png b/src/assets/values/empathy.png new file mode 100644 index 00000000..97ea73ba Binary files /dev/null and b/src/assets/values/empathy.png differ diff --git a/src/assets/values/inclusiveness.png b/src/assets/values/inclusiveness.png new file mode 100644 index 00000000..7aed5af3 Binary files /dev/null and b/src/assets/values/inclusiveness.png differ diff --git a/src/assets/values/simplicity.png b/src/assets/values/simplicity.png new file mode 100644 index 00000000..42168426 Binary files /dev/null and b/src/assets/values/simplicity.png differ diff --git a/src/assets/values/transparency.png b/src/assets/values/transparency.png new file mode 100644 index 00000000..aed71ff1 Binary files /dev/null and b/src/assets/values/transparency.png differ diff --git a/src/assets/youtube.svg b/src/assets/youtube.svg deleted file mode 100644 index 0ef6b1a3..00000000 --- a/src/assets/youtube.svg +++ /dev/null @@ -1 +0,0 @@ -geeksblabla youtube page \ No newline at end of file diff --git a/src/components/About/ContactUs.js b/src/components/About/ContactUs.js deleted file mode 100644 index 56ffa485..00000000 --- a/src/components/About/ContactUs.js +++ /dev/null @@ -1,48 +0,0 @@ -import React from "react" -import { useTheme } from "../Theme/ThemeContext" -import Contact from "assets/contact.svg" -import ContactLight from "assets/contact_light.svg" -import Send from "assets/send.svg" - -export default () => { - const { dark } = useTheme() - - return ( -
- {dark ? ( - - ) : ( - - )} - -
-

Contact us

-

We love to hear from you, reach out to us

-
- - - - - -
- -
-
-
-
- ) -} diff --git a/src/components/About/Contributors.js b/src/components/About/Contributors.js deleted file mode 100644 index 12436d69..00000000 --- a/src/components/About/Contributors.js +++ /dev/null @@ -1,73 +0,0 @@ -import React from "react" -import { useStaticQuery, graphql } from "gatsby" -import patternDark from "assets/patterns/1.back.svg" -import patternLight from "assets/patterns/4.back.svg" -import { useTheme } from "../Theme/ThemeContext" - -const contributorsQuery = graphql` - { - allContributor { - edges { - node { - id - login - name - profile - avatar_url - contributions - firstName - lastName - } - } - } - } -` - -export default () => { - const { dark } = useTheme() - - const data = useStaticQuery(contributorsQuery) - const contributors = data.allContributor.edges - return ( -
- {/*

Contributors

*/} -

- Join our contributors family and help us coding, fixing bugs, writing - episodes notes and much more ...{" "} -

- -
- {contributors.map(({ node: { id, ...node } }) => ( - - ))} -
-
- ) -} - -const Contributor = ({ firstName, lastName, avatar_url, profile }) => ( - -
- {lastName} -
-

- {firstName} {lastName} -

-
-
-
-) diff --git a/src/components/About/Hero.js b/src/components/About/Hero.js deleted file mode 100644 index 393d4fef..00000000 --- a/src/components/About/Hero.js +++ /dev/null @@ -1,36 +0,0 @@ -import React from "react" -import AboutImage from "components/Images/AboutImage" - -export default () => { - return ( -
-
-

We Believe

-

Community Matters

-

- Geeksblabla is a webinar where we meet to share and learn about - awesome topics from the best. -

-

- We Invite knowledgable and interesting people who are not always known - to the public so that they can share their experiences. -

-

- We talk about the hottest new topics and explain it to the community - in a way that is simple and approachable. -

- -
- -
- ) -} diff --git a/src/components/About/index.js b/src/components/About/index.js deleted file mode 100644 index dacf1f01..00000000 --- a/src/components/About/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import "./index.scss" - -export { default as Hero } from "./Hero" -export { default as Contributors } from "./Contributors" -export { default as ContactUs } from "./ContactUs" diff --git a/src/components/About/index.scss b/src/components/About/index.scss deleted file mode 100644 index e9bfe622..00000000 --- a/src/components/About/index.scss +++ /dev/null @@ -1,144 +0,0 @@ -@import "styles/index"; - -// about page - -.about-hero { - display: flex; - flex-direction: row; - text-align: left; - align-items: center; - margin-bottom: 2rem; - @include breakpoint(mobileonly) { - margin-bottom: 3rem; - flex-wrap: wrap; - flex-direction: column-reverse; - justify-content: center; - } - h1 { - @include fluid-type($min_width, $max_width, 33px, 55px); - font-weight: 500; - } - p { - margin-bottom: 1rem; - padding-right: 1rem; - @include breakpoint(mobileonly) { - padding-right: 0rem; - } - } - .b { - font-weight: 300; - } - .description { - max-width: 550px; - @include breakpoint(mobileonly) { - text-align: center; - margin-top: 4rem; - } - } - .actions { - display: flex; - flex-direction: row; - justify-content: flex-start; - flex-wrap: wrap; - width: 100%; - @include breakpoint(mobileonly) { - justify-content: center; - } - } - .gatsby-image-wrapper { - flex: 1; - @include breakpoint(mobileonly) { - width: 100%; - margin-right: 0px; - } - } -} -.contributors { - background-position-y: -1px; - background-position-y: -1px; - background-repeat: no-repeat; - background-size: contain; - background-color: var(--secondary-bg-color); - display: flex; - align-items: center; - margin: auto; - flex-direction: column; - text-align: center; - padding-top: 10rem; - @include breakpoint(mobileonly) { - padding-top: 6rem; - } - h4 { - width: 40rem; - color: var(--text-color); - @include breakpoint(mobileonly) { - width: 80%; - } - } - - .list { - display: flex; - flex-wrap: wrap; - justify-content: center; - margin-top: 2rem; - margin-bottom: 2rem; - @include breakpoint(mobileonly) { - padding-right: 0px; - padding-left: 0px; - } - } - .contributor { - margin: 1rem; - img { - border-radius: 15px; - height: 70px; - width: 70px; - margin-left: -28px; - } - p { - text-align: left; - - margin-left: 20px; - color: var(--text-color); - span { - display: block; - word-wrap: break-word; - } - } - .back { - margin-top: -35px; - padding-top: 40px; - background: var(--main-bg-color); - min-height: 60px; - width: 130px; - border-radius: 16px; - box-shadow: var(--contributor-shadow); - } - } -} - -.contact-form { - display: flex; - flex-direction: column; - align-items: stretch; - font-size: 1.2rem; - max-width: 650px; - width: 90%; - padding-top: 2rem; - input, - textarea { - color: var(--heading-color); - background: var(--secondary-bg-color); - margin-bottom: 2rem; - padding: 16px; - border-radius: 7px; - border: none; - &::placeholder { - color: var(--text-color); - } - } - .actions { - display: flex; - justify-content: center; - } -} diff --git a/src/components/Blabla/Actions/index.js b/src/components/Blabla/Actions/index.js deleted file mode 100644 index 3a812a88..00000000 --- a/src/components/Blabla/Actions/index.js +++ /dev/null @@ -1,40 +0,0 @@ -import React from "react" -import "./index.scss" -import { - FacebookShareButton, - LinkedinShareButton, - TwitterShareButton, - WhatsappShareButton, - FacebookIcon, - TwitterIcon, - LinkedinIcon, - WhatsappIcon, -} from "react-share" - -export default ({ shareUrl, title: t }) => { - const title = t + "#GeeksBalala #DevC_Casa" - - return ( -
-
- {/*

Share Episode On :

*/} - - - - - - - - - - - - -
-
- ) -} diff --git a/src/components/Blabla/Actions/index.scss b/src/components/Blabla/Actions/index.scss deleted file mode 100644 index 5eb1d133..00000000 --- a/src/components/Blabla/Actions/index.scss +++ /dev/null @@ -1,24 +0,0 @@ -@import "styles/index"; - -.episode-actions { - margin-top: 1rem; - margin-bottom: 1rem; - align-items: center; - display: flex; - flex-direction: row; - justify-items: flex-end; - justify-content: flex-end; - .edit { - min-width: 100px; - text-align: right; - } - .share { - display: flex; - justify-content: flex-end; - - .SocialMediaShareButton { - width: 40px !important; - cursor: pointer; - } - } -} diff --git a/src/components/Blabla/AllEpisodesMenu/index.js b/src/components/Blabla/AllEpisodesMenu/index.js deleted file mode 100644 index 8bf2c9fd..00000000 --- a/src/components/Blabla/AllEpisodesMenu/index.js +++ /dev/null @@ -1,44 +0,0 @@ -import React from "react" -import { StaticQuery, graphql } from "gatsby" -import EpisodeItem from "../EpisodeItem" - -/** - * This component behaves the same as the old EpisodesMenu - * Check the EpisodesMenu.js file for an explanation why this component exists. - */ - -export default ({ selectedEpisode }) => ( - - allMdx.edges.map(({ node }) => ( - - )) - } - /> -) diff --git a/src/components/Blabla/AudioPlayer/Audio.js b/src/components/Blabla/AudioPlayer/Audio.js deleted file mode 100644 index 74d4a5c2..00000000 --- a/src/components/Blabla/AudioPlayer/Audio.js +++ /dev/null @@ -1,43 +0,0 @@ -/* eslint-disable jsx-a11y/media-has-caption */ -// import Title from "./Song" -import React from "react" -import Play from "./Play" -import Pause from "./Pause" -import Bar from "./Bar" - -import useAudioPlayer from "./useAudioPlayer" - -export default ({ - audio = "https://d3ctxlq1ktw2nl.cloudfront.net/production/2019-11-8/37064067-48000-2-7061c427555f3.m4a", - // title = "Episode Title ", -}) => { - const { - curTime, - duration, - playing, - setPlaying, - setClickedTime, - } = useAudioPlayer() - - return ( -
- - {/* {title} */} -
- {playing ? ( - setPlaying(false)} /> - ) : ( - setPlaying(true)} /> - )} - setClickedTime(time)} - /> -
-
- ) -} diff --git a/src/components/Blabla/AudioPlayer/Bar.js b/src/components/Blabla/AudioPlayer/Bar.js deleted file mode 100644 index e8543c8f..00000000 --- a/src/components/Blabla/AudioPlayer/Bar.js +++ /dev/null @@ -1,84 +0,0 @@ -/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */ -import React from "react" -// import moment from "moment" -// import momentDurationFormatSetup from "moment-duration-format" - -export default function Bar(props) { - const { duration, curTime, onTimeUpdate } = props - - const curPercentage = (curTime / duration) * 100 - - // function formatDuration(duration) { - // return moment.duration(duration, "seconds").format("mm:ss", { trim: false }) - // } - - function calcClickedTime(e) { - const clickPositionInPage = e.pageX - const bar = document.querySelector(".bar__progress") - const barStart = bar.getBoundingClientRect().left + window.scrollX - const barWidth = bar.offsetWidth - const clickPositionInBar = clickPositionInPage - barStart - const timePerPixel = duration / barWidth - return timePerPixel * clickPositionInBar - } - - function handleTimeDrag(e) { - onTimeUpdate(calcClickedTime(e)) - - const updateTimeOnMove = eMove => { - onTimeUpdate(calcClickedTime(eMove)) - } - - document.addEventListener("mousemove", updateTimeOnMove) - - document.addEventListener("mouseup", () => { - document.removeEventListener("mousemove", updateTimeOnMove) - }) - } - - return ( -
- {formatDuration(curTime)} -
handleTimeDrag(e)} - > - -
- - {duration === 0 ? "Loading ..." : formatDuration(duration)} - -
- ) -} - -const formatDuration = secondsCount => { - let hours = Math.floor(secondsCount / 3600) - let minutes = Math.floor((secondsCount - hours * 3600) / 60) - let seconds = parseInt(secondsCount - hours * 3600 - minutes * 60) - let time = "" - - if (hours !== 0) { - time = hours + ":" - } - if (minutes !== 0 || time !== "") { - minutes = minutes < 10 && time !== "" ? "0" + minutes : String(minutes) - time += minutes + ":" - } - if (time === "") { - time = secondsCount + "s" - } else { - time += seconds < 10 ? "0" + seconds : String(seconds) - } - return time -} diff --git a/src/components/Blabla/AudioPlayer/Pause.js b/src/components/Blabla/AudioPlayer/Pause.js deleted file mode 100644 index ce036c79..00000000 --- a/src/components/Blabla/AudioPlayer/Pause.js +++ /dev/null @@ -1,12 +0,0 @@ -import React from "react" -import PlayIcon from "assets/play-icon.svg" - -export default function Play(props) { - const { handleClick } = props - - return ( - - ) -} diff --git a/src/components/Blabla/AudioPlayer/Play.js b/src/components/Blabla/AudioPlayer/Play.js deleted file mode 100644 index e69744ec..00000000 --- a/src/components/Blabla/AudioPlayer/Play.js +++ /dev/null @@ -1,12 +0,0 @@ -import React from "react" -import PlayIcon from "assets/play.svg" - -export default function Play(props) { - const { handleClick } = props - - return ( - - ) -} diff --git a/src/components/Blabla/AudioPlayer/Song.js b/src/components/Blabla/AudioPlayer/Song.js deleted file mode 100644 index d4acd3a0..00000000 --- a/src/components/Blabla/AudioPlayer/Song.js +++ /dev/null @@ -1,9 +0,0 @@ -import React from "react" - -export default ({ children }) => { - return ( -
-

{children}

-
- ) -} diff --git a/src/components/Blabla/AudioPlayer/index.js b/src/components/Blabla/AudioPlayer/index.js deleted file mode 100644 index 3cf34ad3..00000000 --- a/src/components/Blabla/AudioPlayer/index.js +++ /dev/null @@ -1,2 +0,0 @@ -import "./index.scss" -export { default as AudioPlayer } from "./Audio" diff --git a/src/components/Blabla/AudioPlayer/index.scss b/src/components/Blabla/AudioPlayer/index.scss deleted file mode 100644 index c760ac3f..00000000 --- a/src/components/Blabla/AudioPlayer/index.scss +++ /dev/null @@ -1,94 +0,0 @@ -@import "styles/index"; - -.player { - display: flex; - justify-content: space-between; - align-items: center; - padding: 0.5rem 0; - background-color: var(--secondary-bg-color); - position: sticky; - top: 0px; - .controls { - flex-grow: 1; - margin: 0 20px; - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - } - - .player__button { - width: fit-content; - padding-right: 15px; - background-color: transparent; - border: none; - - &:focus { - outline: none; - } - &:hover { - cursor: pointer; - } - - svg { - height: 4em; - color: white; - } - } - - .bar { - user-select: none; - width: 100%; - display: flex; - align-items: center; - - .bar__time { - color: white; - font-size: 16px; - } - - .bar__progress { - flex: 1; - border-radius: 5px; - margin: 0 20px; - height: 10px; - display: flex; - align-items: center; - cursor: pointer; - - .bar__progress__knob { - position: relative; - height: 16px; - width: 16px; - border: 1.5px solid white; - border-radius: 50%; - background-color: #a109d5; - } - } - } - - @media screen and (max-width: 800px) { - flex-direction: column; - - .controls { - width: 100%; - //margin-top: 20px; - } - - .bar { - width: 90%; - } - } - - @media screen and (max-width: 500px) { - .song { - .song__title { - font-size: 2.5em; - } - - .song__artist { - font-size: 0.8em; - } - } - } -} diff --git a/src/components/Blabla/AudioPlayer/useAudioPlayer.js b/src/components/Blabla/AudioPlayer/useAudioPlayer.js deleted file mode 100644 index f780e959..00000000 --- a/src/components/Blabla/AudioPlayer/useAudioPlayer.js +++ /dev/null @@ -1,48 +0,0 @@ -import { useState, useEffect } from "react" - -const useAudioPlayer = () => { - const [duration, setDuration] = useState(0) - const [curTime, setCurTime] = useState(0) - const [playing, setPlaying] = useState(false) - const [clickedTime, setClickedTime] = useState() - - useEffect(() => { - const audio = document.getElementById("audio") - // state setters wrappers - const setAudioData = () => { - setDuration(audio.duration) - setCurTime(audio.currentTime) - } - - const setAudioTime = () => setCurTime(audio.currentTime) - - // DOM listeners: update React state on DOM events - audio.addEventListener("loadeddata", setAudioData) - - audio.addEventListener("timeupdate", setAudioTime) - - // React state listeners: update DOM on React state changes - playing ? audio.play() : audio.pause() - - if (clickedTime && clickedTime !== curTime) { - audio.currentTime = clickedTime - setClickedTime(null) - } - - // effect cleanup - return () => { - audio.removeEventListener("loadeddata", setAudioData) - audio.removeEventListener("timeupdate", setAudioTime) - } - }, [playing, clickedTime, curTime]) - - return { - curTime, - duration, - playing, - setPlaying, - setClickedTime, - } -} - -export default useAudioPlayer diff --git a/src/components/Blabla/Categories/index.js b/src/components/Blabla/Categories/index.js deleted file mode 100644 index 2e6c802c..00000000 --- a/src/components/Blabla/Categories/index.js +++ /dev/null @@ -1,33 +0,0 @@ -import React from "react" -import { StaticQuery, graphql } from "gatsby" -import CategoryItem from "../CategoryItem" -import "./index.scss" - -export default ({ selectedCategory }) => ( - ( -
    - {allMdx.group - .sort((a, b) => b.totalCount - a.totalCount) - .map(({ category, totalCount }) => ( - - ))} -
- )} - /> -) diff --git a/src/components/Blabla/Categories/index.scss b/src/components/Blabla/Categories/index.scss deleted file mode 100644 index 0f114943..00000000 --- a/src/components/Blabla/Categories/index.scss +++ /dev/null @@ -1,12 +0,0 @@ -@import "styles/index"; - -.categories-list { - padding: 5px 0px; - display: flex; - flex-wrap: wrap; - justify-content: center; - @include breakpoint(mobileonly) { - padding: 0px 5px; - justify-content: stretch; - } -} diff --git a/src/components/Blabla/CategoryItem/index.js b/src/components/Blabla/CategoryItem/index.js deleted file mode 100644 index f819775e..00000000 --- a/src/components/Blabla/CategoryItem/index.js +++ /dev/null @@ -1,23 +0,0 @@ -import React from "react" -import { Link } from "gatsby" -import "./index.scss" -import kebabCase from "lodash/kebabCase" - -export default ({ category, active, totalCount }) => { - const categoryName = category.charAt(0).toUpperCase() + category.slice(1) - return ( - -
-

- {categoryName} - {totalCount} -

-
- - ) -} diff --git a/src/components/Blabla/CategoryItem/index.scss b/src/components/Blabla/CategoryItem/index.scss deleted file mode 100644 index d7a7459f..00000000 --- a/src/components/Blabla/CategoryItem/index.scss +++ /dev/null @@ -1,41 +0,0 @@ -@import "styles/index"; - -.category-item { - list-style: none; - background: var(--secondary-bg-color); - border-radius: 45px; - color: var(--heading-color); - text-decoration: none; - margin-right: 24px; - margin-bottom: 16px; - padding: 0 14px; - display: flex; - justify-content: center; - align-items: center; - text-transform: capitalize; - white-space: nowrap; - @include breakpoint(mobileonly) { - margin-right: 8px; - } - &.active, - &:hover { - color: #ffffff; - background: linear-gradient(270deg, #a109d5 0%, #d9147d 100%); - } - &.active span { - color: #fff; - } - &:hover span { - color: #ffffff; - } - p { - font-size: 1rem; - display: flex; - align-items: center; - span { - font-size: 0.8rem; - margin-left: 8px; - color: var(--text-color); - } - } -} diff --git a/src/components/Blabla/Episode/index.js b/src/components/Blabla/Episode/index.js deleted file mode 100644 index 9e1e2033..00000000 --- a/src/components/Blabla/Episode/index.js +++ /dev/null @@ -1,38 +0,0 @@ -import React from "react" -import VideoPlayer from "../VideoPlayer" -import { AudioPlayer } from "../AudioPlayer" -import "./index.scss" -import Notes from "../Notes" -import Actions from "../Actions" -import { ModeContext } from "components/Mode/ModeContext" - -const Episode = ({ - title, - slug, - date, - youtube, - audio, - description, - repoLink, -}) => ( -
- -
-
-

{date}

-

{title}

- -
- -
-
-) - -export default Episode - -const Player = ({ audio, url }) => { - const { isVideo } = React.useContext(ModeContext) - return ( - <>{isVideo ? : } - ) -} diff --git a/src/components/Blabla/Episode/index.scss b/src/components/Blabla/Episode/index.scss deleted file mode 100644 index bd3695c1..00000000 --- a/src/components/Blabla/Episode/index.scss +++ /dev/null @@ -1,75 +0,0 @@ -@import "styles/index"; -.episode { - //width: 60%; - // for scrolling experience - flex: 1; - position: sticky; - top: 10px; - height: calc(100vh - 10px); - - overflow-y: scroll; - - @include breakpoint(mobileonly) { - width: 100%; - position: static; - top: 10px; - height: fit-content; - overflow-y: auto; - } - .label { - background: rgba(0, 0, 0, 0.6); - font-family: "Open sans"; - font-size: 14px; - line-height: 18px; - color: #d9147d; - padding: 4px 8px; - border-radius: 5px 5px 0px 0px; - } - - .video { - position: relative; - .placeholder { - background: rgba(255, 255, 255, 0.1); - position: absolute; - top: 0; - left: 0; - width: 100%; - } - } - - .info { - margin-top: 24px; - display: flex; - flex-direction: column; - &.placeholder { - flex-direction: column; - flex-wrap: wrap; - div { - width: 100%; - } - } - @include breakpoint(mobileonly) { - flex-wrap: wrap; - } - .title { - p { - text-align: right; - margin-bottom: 10px; - } - h1 { - border-bottom: 1px solid var(--text-color); - padding-bottom: 0.7rem; - margin-top: -1rem; - margin-bottom: 0rem; - } - } - } - - .notes { - h4 { - border-bottom: 1px solid rgba(117, 119, 166, 0.5); - padding-bottom: 0.7rem; - } - padding-bottom: 5rem; - } -} diff --git a/src/components/Blabla/EpisodeItem/index.js b/src/components/Blabla/EpisodeItem/index.js deleted file mode 100644 index 99a4f528..00000000 --- a/src/components/Blabla/EpisodeItem/index.js +++ /dev/null @@ -1,36 +0,0 @@ -import React from "react" -import { Link } from "gatsby" -import PlayIcon from "assets/play.svg" - -import "./index.scss" - -export default ({ title, date, slug, duration, active }) => ( - -
- -
-
-

{title}

-

- {duration} | {date} -

-
- -) - -// const PlayIcon = () => ( -// -// -// -// ) diff --git a/src/components/Blabla/EpisodeItem/index.scss b/src/components/Blabla/EpisodeItem/index.scss deleted file mode 100644 index 7b3cfa4f..00000000 --- a/src/components/Blabla/EpisodeItem/index.scss +++ /dev/null @@ -1,74 +0,0 @@ -@import "styles/index"; - -.episode-item { - list-style: none; - display: flex; - //justify-content: center; - align-items: center; - background: var(--secondary-bg-color); // #0d0d0d; - border-radius: 8px; - color: var(--text-color); - padding: 12px; - display: flex; - // align-items: flex-start; - margin: -5px 0px 12px 0px; - text-decoration: none; - cursor: pointer; - - $border: 5px; - position: relative; - background-clip: padding-box; - border: solid $border transparent; - &:before { - content: ""; - position: absolute; - box-shadow: var(--eps-shadow); - top: 7px; - right: 2px; - bottom: 2px; - left: -2px; - z-index: -1; - margin-top: -$border; - border-radius: inherit; - } - - &.active, - &:hover { - //color: #ffffff; - //background: #171717; - - &:before { - background: linear-gradient(0deg, #a109d5 0%, #d9147d 100%); - } - - .placeholder { - background: rgba(255, 255, 255, 0.3); - } - } - svg { - margin-right: 12px; - } - .icon { - display: block; - align-self: center; - - svg path { - fill: var(--play-icon-color-secondary); - } - - svg rect { - fill: var(--play-icon-color-primary); - } - } - h2 { - margin-top: 0px; - font-size: 1.2rem; - margin-bottom: 8px; - line-height: 1.6rem; - } - p { - font-size: 0.8rem; - display: flex; - align-items: center; - } -} diff --git a/src/components/Blabla/EpisodesMenu/index.js b/src/components/Blabla/EpisodesMenu/index.js deleted file mode 100644 index 6bb80789..00000000 --- a/src/components/Blabla/EpisodesMenu/index.js +++ /dev/null @@ -1,24 +0,0 @@ -import React from "react" -import AllEpisodesMenu from "../AllEpisodesMenu" -import FilteredEpisodes from "../FilteredEpisodes" -import "./index.scss" - -/** - * The EpisodesMenu is now only responsible for making one of the two decisions: - * 1. Render the FilteredEpisodes component that contains the list of "filtered" episodes based on the category selected by the user - * 2. Render the AllEpisodesMenu component that makes a static GraphQL query to fetch all episodes and display them ... - * ...(just like it was implemented before supporting categories). - * The above decision is made based on whether the component receives a `category` prop. - * The idea is to reuse both the markup and styles of the EpisodesMenu component, because in both cases, episode items have... - * ...the same styling and markup. - */ - -export default (props) => ( -
    - {props.category ? ( - - ) : ( - - )} -
-) diff --git a/src/components/Blabla/EpisodesMenu/index.scss b/src/components/Blabla/EpisodesMenu/index.scss deleted file mode 100644 index 7a2c6fef..00000000 --- a/src/components/Blabla/EpisodesMenu/index.scss +++ /dev/null @@ -1,19 +0,0 @@ -@import "styles/index"; - -.episodes-list { - align-self: flex-start; - padding-right: 20px; - max-width: 380px; - // Give a minimum width so that episodes with short title don't appear ... too short x) - min-width: 320px; - //max-height: 600px; - //overflow: scroll; - @include breakpoint(mobileonly) { - width: 100%; - padding: 0px 0px; - min-width: 100%; - max-height: 460px; - overflow: scroll; - margin: 0px 0px 20px 0px; - } -} diff --git a/src/components/Blabla/FilteredEpisodes/index.js b/src/components/Blabla/FilteredEpisodes/index.js deleted file mode 100644 index 18a7acee..00000000 --- a/src/components/Blabla/FilteredEpisodes/index.js +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react" -import EpisodeItem from "../EpisodeItem" -import kebabCase from "lodash/kebabCase" - -/** - * This component maps over the filtered episodes and makes a new slug - * The slug is constructed by converting the category and title to kebab-case - * We then override the slug we get from mdx by the new slug. - * This is done so that we can fully reuse the EpisodeItem component, which eventually renders a Link component... - * ... with the slug as its `to` prop. - * Other fields like the title, date, duration, etc. are passed down as well. - */ - -export default ({ filteredEpisodes, selectedEpisode, category }) => - filteredEpisodes.edges.map(({ node }) => { - const newSlug = `${kebabCase(category)}/${kebabCase(node.fields.title)}` - const newFields = { ...node.fields, slug: newSlug } - return ( - - ) - }) diff --git a/src/components/Blabla/Notes.js b/src/components/Blabla/Notes.js deleted file mode 100644 index 42344223..00000000 --- a/src/components/Blabla/Notes.js +++ /dev/null @@ -1,32 +0,0 @@ -import React from "react" -import { MDXProvider } from "@mdx-js/react" -import { MDXRenderer } from "gatsby-plugin-mdx" -import mdxComponents from "components/mdx" - -export default ({ content, repoLink }) => ( - -) diff --git a/src/components/Blabla/VideoPlayer/index.js b/src/components/Blabla/VideoPlayer/index.js deleted file mode 100644 index 3c1b9547..00000000 --- a/src/components/Blabla/VideoPlayer/index.js +++ /dev/null @@ -1,38 +0,0 @@ -import React, { useState, useRef, useEffect } from "react" -import ReactPlayer from "react-player/youtube" -import "./index.scss" - -const VideoPlayer = ({ url }) => { - const player = useRef(null) - - const seekToHash = () => { - const hash = window.location.hash.substring(1) //Puts hash in variable, and removes the # character - player.current.seekTo(parseFloat(hash), "seconds") - } - useEffect(() => { - window.addEventListener("hashchange", seekToHash, false) - return () => { - window.removeEventListener("hashchange", seekToHash, false) - } - }, []) - - const onError = (e) => { - console.log("facebook video player error ", e) - } - return ( -
- -
- ) -} - -export default VideoPlayer diff --git a/src/components/Blabla/VideoPlayer/index.scss b/src/components/Blabla/VideoPlayer/index.scss deleted file mode 100644 index 40ae42e4..00000000 --- a/src/components/Blabla/VideoPlayer/index.scss +++ /dev/null @@ -1,19 +0,0 @@ -.video-player { - // min-height: calc(100vw / 2 * 0.5); - // max-height: 500px; - position: relative; - .loader { - position: absolute; - top: 0; - left: 0; - } - - position: relative; - padding-top: 56.25%; /* Player ratio: 100 / (1280 / 720) */ -} - -.react-player { - position: absolute; - top: 0; - left: 0; -} diff --git a/src/components/Blabla/index.js b/src/components/Blabla/index.js deleted file mode 100644 index ed3ea954..00000000 --- a/src/components/Blabla/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import "./index.scss" -export { default as Episode } from "./Episode" -export { default as EpisodeItem } from "./EpisodeItem" -export { default as EpisodesMenu } from "./EpisodesMenu" -export { default as Categories } from "./Categories" diff --git a/src/components/Blabla/index.scss b/src/components/Blabla/index.scss deleted file mode 100644 index 8ef48d9e..00000000 --- a/src/components/Blabla/index.scss +++ /dev/null @@ -1,26 +0,0 @@ -@import "styles/index"; - -// blabla page - -.blablas { - display: flex; - align-self: flex-start; - flex-grow: 1; - flex-grow: 1; - justify-content: center; - align-items: flex-start; - margin-top: 50px; - @include breakpoint(mobileonly) { - flex-direction: column-reverse; - flex-wrap: wrap; - margin-top: 0px; - } -} - -.categories { - margin-top: 25px; - @include breakpoint(mobileonly) { - margin-top: 0px; - margin-bottom: 20px; - } -} diff --git a/src/components/Calendar/Button.js b/src/components/Calendar/Button.js deleted file mode 100644 index 44bf019d..00000000 --- a/src/components/Calendar/Button.js +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; - -export default function Button({ children, onClick }) { - return ( - - ); -} \ No newline at end of file diff --git a/src/components/Calendar/Modal.js b/src/components/Calendar/Modal.js deleted file mode 100644 index 5274ae1b..00000000 --- a/src/components/Calendar/Modal.js +++ /dev/null @@ -1,45 +0,0 @@ -import React from 'react'; -import Button from './Button'; -import Modal from 'react-modal'; -import { css } from 'emotion'; - -const containerStyles = css` - display: flex; - flex-direction: column; - align-items: center; - justify-content: space-between; - width: 450px; - height: 375px; - margin: 0 auto; - top: 50%; - left: 0; - right: 0; - transform: translateY(-50%); - position: absolute; - box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.3); - padding: 30px; - background-color: #000; - - &:focus { - outline: none; - } -`; - -export default function CalendarModal({ - children, - isOpen, - onRequestClose, -}) { - return ( - -

Add to Calendar

-
{children}
- -
- ); -} \ No newline at end of file diff --git a/src/components/ErrorBoundary.js b/src/components/ErrorBoundary.js deleted file mode 100644 index c769506c..00000000 --- a/src/components/ErrorBoundary.js +++ /dev/null @@ -1,22 +0,0 @@ -import React from "react" - -export default class ErrorBoundary extends React.Component { - constructor(props) { - super(props) - this.state = { error: null } - } - - componentDidCatch(error, errorInfo) { - this.setState({ error }) - window.Sentry.configureScope(scope => { - Object.keys(errorInfo).forEach(key => { - scope.setExtra(key, errorInfo[key]) - }) - }) - window.Sentry.captureException(error) - } - - render() { - return this.props.children - } -} diff --git a/src/components/Footer/index.js b/src/components/Footer/index.js deleted file mode 100644 index d0fc00c5..00000000 --- a/src/components/Footer/index.js +++ /dev/null @@ -1,133 +0,0 @@ -// import Github from "assets/github.svg" -import React from "react" -import "./index.scss" -import Auth0 from "assets/auth0.svg" -import GatsbyJs from "assets/gatsby.svg" -import ReactIcon from "assets/react-icon.svg" -import Figma from "assets/figma.svg" -import Netlify from "assets/netlify.svg" -import FunaDB from "assets/funadb.svg" -import { Link } from "gatsby" -import Logo from "../../assets/logo.svg" - -export default ({ style }) => ( -
-
-
-
- - - -
- - - -
-

- - Want to Contribute? - -

- -

- This Website is made with{" "} - - โค๏ธ - {" "} -

-

using

-

- {" "} - - -

-

- Sourced on{" "} - - GitHub - -

-
-
- -
-

ยฉ Geeksblabla 2018 - {new Date().getFullYear()}

-
-
-
-) diff --git a/src/components/Footer/index.scss b/src/components/Footer/index.scss deleted file mode 100644 index cd1e85e9..00000000 --- a/src/components/Footer/index.scss +++ /dev/null @@ -1,112 +0,0 @@ -@import "styles/index"; - -.Footer { - background: var(--secondary-bg-color); - color: var(--text-color); - padding: 0 4rem; - text-align: center; - display: flex; - justify-content: center; - - &-container { - display: flex; - flex-direction: column; - max-width: 1240px; - width: 100%; - } - - &-main { - display: flex; - flex-wrap: wrap; - justify-content: space-between; - align-items: center; - padding: 4rem 0; - gap: 25px; - - &-links { - display: flex; - justify-content: center; - text-align: left; - gap: 20%; - flex: 1; - } - - &-bloc { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - text-align: left; - box-sizing: border-box; - } - - &-contribution { - margin: auto; - } - - &-logo { - svg { - height: 90px; - width: auto; - margin: 0.4rem; - } - } - } - &-copyright { - display: flex; - justify-content: flex-start; - padding: 0.5rem; - - p { - margin: 0; - font-size: 0.8em; - } - } - - @media screen and (max-width: 60em) { - &-main { - flex-direction: row; - gap: 50px 25px; - - &-logo { - width: 100%; - } - - &-links { - flex-direction: row; - text-align: left; - flex: 1; - gap: 50px; - } - - &-contribution { - flex: 1; - } - } - } - - @media screen and (max-width: 650px) { - &-main { - flex-direction: column; - gap: 50px; - - &-logo { - width: 100%; - } - - &-links { - flex-direction: column; - text-align: center; - gap: 25px; - } - - &-contribution { - flex: 1; - } - } - &-copyright { - text-align: center; - justify-content: center; - } - } -} diff --git a/src/components/Header/Links.js b/src/components/Header/Links.js deleted file mode 100644 index 01c3731f..00000000 --- a/src/components/Header/Links.js +++ /dev/null @@ -1,80 +0,0 @@ -// import { ToggleMode } from "components/Mode" -import React from "react" -import ThemeToggle from "components/Theme/ThemeToggle" -import { Link } from "gatsby" -import Spotify from "assets/spotify.svg" -import ApplePodcast from "assets/apple-podcast.svg" -import GooglePodcast from "assets/google-podcast.svg" -import Search from "components/Search" - -const searchIndices = [{ name: `Blablas`, title: `Blablas` }] - -export default ({ id }) => ( - <> - - Home - - - Blablas - - - Suggest Blabla - - - About - - - - - - - - - - - - {/* */} -
- - -
- -) diff --git a/src/components/Header/MobileNav/index.js b/src/components/Header/MobileNav/index.js deleted file mode 100644 index 39d9672f..00000000 --- a/src/components/Header/MobileNav/index.js +++ /dev/null @@ -1,26 +0,0 @@ -import React, { useState } from "react" -import Links from "../Links" - -import "./index.scss" - -export default ({ color = "white" }) => { - const [isToggledOn, setToggle] = useState(false) - const toggle = () => setToggle(!isToggledOn) - return ( -
- - {isToggledOn && ( -
-
- -
-
- )} -
- ) -} diff --git a/src/components/Header/MobileNav/index.scss b/src/components/Header/MobileNav/index.scss deleted file mode 100644 index bd3b59e5..00000000 --- a/src/components/Header/MobileNav/index.scss +++ /dev/null @@ -1,91 +0,0 @@ -@import "styles/index"; - -.mobile-menu { - display: none; - @include breakpoint(mobileonly) { - display: block; - } - button { - z-index: 30; - top: -5px; - position: relative; - background: transparent; - border: none; - color: var(--loader-color); - cursor: pointer; - padding: 15px; - } - .menu-icon { - width: 24px; - height: 2px; - background: var(--loader-color); - position: absolute; - left: 0; - transition: all 250ms cubic-bezier(0.86, 0, 0.07, 1); - - &::before { - content: ""; - top: -8px; - width: 24px; - height: 2px; - background: var(--loader-color); - position: absolute; - left: 0; - transform: rotate(0); - transition: all 250ms cubic-bezier(0.86, 0, 0.07, 1); - } - &::after { - top: 8px; - content: ""; - width: 24px; - height: 2px; - background: var(--loader-color); - position: absolute; - left: 0; - transform: rotate(0); - transition: all 250ms cubic-bezier(0.86, 0, 0.07, 1); - } - &.open { - background: transparent; - &::before { - transform: rotate(45deg); - top: 0; - } - &::after { - transform: rotate(-45deg); - top: 0; - } - } - } -} - -.mobile-nav-container { - position: absolute; - z-index: 20; - left: 0; - top: 0; - width: 100vw; - height: 100vh; - display: flex; - align-items: center; - background: var(--main-bg-color); - display: flex; - justify-content: center; -} - -.mobile-nav { - display: flex; - flex-direction: column; - align-items: center; - justify-content: space-evenly; - a { - font-size: 18px; - line-height: 24px; - margin: 20px; - //color: rgba(255, 255, 255, 0.5); - text-decoration: none; - &.active { - color: rgb(255, 255, 255); - } - } -} diff --git a/src/components/Header/index.js b/src/components/Header/index.js deleted file mode 100644 index bd852bbb..00000000 --- a/src/components/Header/index.js +++ /dev/null @@ -1,26 +0,0 @@ -import React from "react" -import { Link } from "gatsby" -import MobileNav from "./MobileNav" -import Links from "./Links" -import Logo from "assets/logo.svg" -import "./index.scss" - -//const logo = require("../../images/logo.png") - -//const GeeksBlablaLogo = () => - -const Header = () => ( -
-
- - - -
- -
- -
-
-) - -export default Header diff --git a/src/components/Header/index.scss b/src/components/Header/index.scss deleted file mode 100644 index 3b5a6a70..00000000 --- a/src/components/Header/index.scss +++ /dev/null @@ -1,67 +0,0 @@ -@import "styles/index"; - -.header { - background: transparent; - padding: 1.45rem 0px; - @include breakpoint(mobileonly) { - padding: 2.45rem 20px; - } -} - -.header-container { - @include breakpoint(mobileonly) { - //margin: 0 20px; - } - display: flex; - justify-content: space-between; - align-items: center; - color: var(--text-color); - .item { - font-size: 18px; - line-height: 24px; - margin: 20px; - color: var(--text-color); - text-decoration: none; - - &.active { - color: var(--heading-color); - } - &:hover { - color: var(--heading-color); - } - } - .menu { - display: flex; - align-items: center; - @include breakpoint(mobileonly) { - display: none; - } - } - - .podcast-icon { - width: 28px; - height: 28px; - margin: 0px 12px; - transform: matrix(-1, 0, 0, 1, 0, 0); - color: #5f6089; - &:hover { - color: var(--heading-color); - } - } -} - -.logo { - height: 64px; - margin: 0; -} - -.icon-links { - display: flex; - @include breakpoint(mobileonly) { - flex-direction: column; - justify-content: center; - .theme-toggle { - margin: auto auto; - } - } -} diff --git a/src/components/Home/EpisodesType/index.js b/src/components/Home/EpisodesType/index.js deleted file mode 100644 index 9851e726..00000000 --- a/src/components/Home/EpisodesType/index.js +++ /dev/null @@ -1,48 +0,0 @@ -import React from "react" -// import { Link } from "gatsby" -import MssLight from "assets/mss_light.svg" -import Mss from "assets/mss.svg" -import Tech from "assets/tech.svg" -import TechLight from "assets/tech_light.svg" -import "./index.scss" -import pattern from "assets/patterns/5.back.svg" -import patternDark from "assets/patterns/2.back.svg" -import { useTheme } from "../../Theme/ThemeContext" - -export default () => { - const { dark } = useTheme() - - return ( -
-
-
-
-

MSS Episodes

-

- In Moroccan Success Story episodes, we invite a Moroccan icon in - the IT and related fields, to share their experiences, lessons - learned and knowledge with the Moroccan community. -

-
- {dark ? : } -
-
- {dark ? : } -
-

Tech Episodes

-

- An open, deep dive discussion around anything and everything - related to programming & software engineering, Tech and everything - in between. -

-
-
-
-
- ) -} diff --git a/src/components/Home/EpisodesType/index.scss b/src/components/Home/EpisodesType/index.scss deleted file mode 100644 index fde4097b..00000000 --- a/src/components/Home/EpisodesType/index.scss +++ /dev/null @@ -1,61 +0,0 @@ -@import "styles/index"; -// Episodes Types Component - -.episodes-types { - background-position-y: -1px; - background-repeat: no-repeat; - background-size: contain; - padding-top: 12rem; - //padding-bottom: 3rem; - @include breakpoint(mobileonly) { - padding-top: 5rem; - } - //background-color: $secondary-bg-color; - .item { - display: flex; - max-width: 1000px; - margin: auto; - justify-content: space-between; - flex-direction: row; - flex-wrap: wrap; - &:first-child { - margin-bottom: 5rem; - } - @include breakpoint(mobileonly) { - text-align: center; - justify-content: center; - } - &.reverse { - @include breakpoint(mobileonly) { - flex-direction: column-reverse; - width: fit-content; - } - } - .crea { - @include breakpoint(mobileonly) { - width: 100%; - } - } - div { - margin: 5rem 0px; - } - h1 { - position: relative; - } - h1::after { - content: ""; - height: 3px; - width: 50px; - display: block; - background: $main-gradient; - top: -10px; - position: absolute; - @include breakpoint(mobileonly) { - left: calc(50% - 25px); - } - } - p { - max-width: 400px; - } - } -} diff --git a/src/components/Home/Hero/index.js b/src/components/Home/Hero/index.js deleted file mode 100644 index 697aac59..00000000 --- a/src/components/Home/Hero/index.js +++ /dev/null @@ -1,44 +0,0 @@ -import React from "react" -import { useTheme } from "../../Theme/ThemeContext" -import { Link } from "gatsby" -import PlayIcon from "assets/play.svg" -import HeroImageLight from "assets/hero_light.svg" -import HeroImage from "assets/hero.svg" -import HeroImageMobile from "assets/hero_mobile.svg" -import HeroImageMobileLight from "assets/hero_mobile_light.svg" -import "./index.scss" - -export default () => { - const { dark } = useTheme() - - return ( -
-
-

Hottest technology trends, In Darija!

-

- GeeksBlaBla is a community initiative, to discuss, highlight and share - the latest IT topics in Moroccan Darija. -

-
- - Start Watching - - {/* - Suggest a topic - */} -
-
- {dark ? ( - <> - - - - ) : ( - <> - - - - )} -
- ) -} diff --git a/src/components/Home/Hero/index.scss b/src/components/Home/Hero/index.scss deleted file mode 100644 index 9cfac3db..00000000 --- a/src/components/Home/Hero/index.scss +++ /dev/null @@ -1,107 +0,0 @@ -@import "styles/index"; - -.hero { - @include breakpoint(mobileonly) { - margin-bottom: 3rem; - flex-direction: column; - justify-content: center; - align-items: center; - margin-top: 1rem; - } - margin: 3rem auto 3rem auto; - text-align: left; - display: flex; - margin-bottom: 0; - .crea { - height: 100%; - width: 100%; - overflow: visible; - g[clip-path*="cliphero"] { - opacity: 0; - } - } - .mobile-only { - display: none; - @include breakpoint(mobileonly) { - display: block; - } - } - .desktop-only { - display: block; - @include breakpoint(mobileonly) { - display: none; - } - } - .description { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - max-width: 45rem; - @include breakpoint(mobileonly) { - max-width: 100%; - text-align: center; - } - } - h1 { - @include fluid-type($min_width, $max_width, 33px, 52px); - font-weight: 600; - line-height: 115%; - } - p { - @include breakpoint(mobileonly) { - max-width: 30rem; - padding-right: 1rem; - padding-left: 1rem; - } - max-width: 30rem; - - padding-right: 3rem; - margin-left: 0px; - color: var(--text-color); - } - .actions { - display: flex; - flex-direction: row; - justify-content: flex-start; - flex-wrap: wrap; - margin-top: 1rem; - width: 100%; - @include breakpoint(mobileonly) { - justify-content: center; - } - } -} - -// animations - -@keyframes infinite-spinning { - 0% { - opacity: 0; - transform: scale(0.4) translateY(40px); - } - 10% { - opacity: 1; - } - - 90% { - opacity: 1; - } - 100% { - opacity: 0; - transform: scale(1.2) translateY(-60px); - } -} - -@for $i from 0 through 36 { - g[clip-path*="cliphero#{$i}"] { - transform-origin: #{random(100)}% #{70 - random(30)}% !important; - animation: infinite-spinning 10s infinite; - animation-delay: #{random(1000) * 0.01}s; - } - g[clip-path*="clipherom#{$i}"] { - transform-origin: #{random(100)}% #{70 - random(30)}% !important; - animation: infinite-spinning 12s infinite; - animation-delay: #{random(800) * 0.01}s; - } -} diff --git a/src/components/Home/Notification/index.js b/src/components/Home/Notification/index.js deleted file mode 100644 index fb6a0221..00000000 --- a/src/components/Home/Notification/index.js +++ /dev/null @@ -1,72 +0,0 @@ -// import { Link } from "gatsby" -// import NotifIcon from "assets/notif.svg" -import React from "react" -import { useTheme } from "../../Theme/ThemeContext" -import Notif from "assets/notification.svg" -import NotifLight from "assets/notification_light.svg" -import Facebook from "assets/facebook.svg" -import Twitter from "assets/twitter.svg" -import Youtube from "assets/youtube.svg" -import Rss from "assets/rss.svg" - -import "./index.scss" - -export default () => { - const { dark } = useTheme() - - return ( -
- {dark ? : } -
-

Get Notified

-

- To get live streams notifications subscribe to our Youtube Channel and - Facebook Page (Make sure to enable notifications ๐Ÿ˜‰) -

- - -

- Or you can subscribe to our{" "} - - Mailing List - {" "} - to get updates about GeeksBlaBla, StateOfDev.ma, Awesome Morocco, and BlaBlaConf events -

-
-
- ) -} diff --git a/src/components/Home/Notification/index.scss b/src/components/Home/Notification/index.scss deleted file mode 100644 index e0960019..00000000 --- a/src/components/Home/Notification/index.scss +++ /dev/null @@ -1,70 +0,0 @@ -@import "styles/index"; - -.notification { - padding: 8rem 2rem; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - background: var(--main-bg-color); - @include breakpoint(mobileonly) { - padding: 6rem 0rem; - } - .icons { - padding: 20px 10px; - display: flex; - flex-direction: row; - align-items: center; - justify-content: space-between; - width: 50%; - @include breakpoint(mobileonly) { - width: 80%; - } - } - .content { - box-shadow: 0px 4px 7px rgba(0, 0, 0, 0.25); - - position: relative; - z-index: 2; - background: var(--main-bg-color); - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - justify-self: stretch; - max-width: 35rem; - min-width: 35rem; - padding: 2rem; - @include breakpoint(mobileonly) { - width: auto; - } - padding-top: 3rem; - padding-bottom: 3rem; - border-radius: 16px; - background-clip: padding-box; - &::before { - content: ""; - background: var(--notif-banner); - top: -10px; - height: 20px; - width: 90%; - position: absolute; - top: -20px; - height: 20px; - border-radius: 26px 26px 0px 0px; - } - - @include breakpoint(mobileonly) { - min-width: auto; - } - } - - text-align: center; - h1 { - font-size: 2rem; - } - .notif { - max-width: 800px; - z-index: 5; - } -} diff --git a/src/components/Home/Reviews/index.js b/src/components/Home/Reviews/index.js deleted file mode 100644 index dd083bcf..00000000 --- a/src/components/Home/Reviews/index.js +++ /dev/null @@ -1,81 +0,0 @@ -import React, { useEffect } from "react" -import { useTheme } from "../../Theme/ThemeContext" -import { useStaticQuery, graphql } from "gatsby" -import "./index.scss" -import patternDark from "assets/patterns/3.back.svg" -import patternLight from "assets/patterns/6.back.svg" -const isBrowser = typeof window !== "undefined" - -export const query = graphql` - { - allIndexYaml { - edges { - node { - id - name - review - role - organization - avatar { - childImageSharp { - fixed(width: 200) { - src - } - } - } - } - } - } - } -` - -export default () => { - const { dark } = useTheme() - const data = useStaticQuery(query) - const reviews = data.allIndexYaml.edges - const rs = Math.random() >= 0.5 ? reviews.slice(0, 7) : reviews.slice(7, 14) - useEffect(() => { - document.getElementById("review-scroll").scrollLeft = 80 - return () => {} - }, []) - - return ( -
-
-
What People say about GeeksBalabla
-
- - {isBrowser && ( -
-
- {rs.map(({ node }) => ( - - ))} - {rs.map(({ node }) => ( - - ))} -
-
- )} -
- ) -} - -const Review = ({ name, review, avatar, role, organization }) => ( -
- {`${name} -
-

{review}

- -

{name}

-

- {role} {organization} -

-
-
-) diff --git a/src/components/Home/Reviews/index.scss b/src/components/Home/Reviews/index.scss deleted file mode 100644 index b9358fc5..00000000 --- a/src/components/Home/Reviews/index.scss +++ /dev/null @@ -1,113 +0,0 @@ -@import "styles/index"; - -.reviews { - background-position-y: -1px; - background-repeat: no-repeat; - background-size: contain; - padding-top: 15rem; - @include breakpoint(mobileonly) { - padding-top: 5rem; - } - //margin-top: 2rem; - width: 100%; - background-color: var(--main-bg-color); - text-align: center; - h5 { - color: var(--text-color); - text-align: center; - opacity: 0.5; - } - - .list { - display: flex; - flex-wrap: wrap; - align-items: center; - //width: 100%; - @include breakpoint(mobileonly) { - display: block; - overflow-x: scroll; - } - - &::-webkit-scrollbar { - width: 0px; - } - - &::-webkit-scrollbar-track { - box-shadow: none; - } - - &::-webkit-scrollbar-thumb { - background-color: transparent; - outline: none; - } - } - .review { - margin: 10px; - width: 370px; - - img { - display: block !important; - margin-left: 30px; - border-radius: 15px; - height: 100px; - width: 100px; - } - p { - text-align: left; - margin-left: 20px; - span { - display: block; - } - } - - .back { - margin-top: -35px; - padding: 50px 10px 10px 10px; - background: var(--secondary-bg-color); - min-height: 60px; - border-radius: 16px; - min-height: 180px; - display: flex; - flex-direction: column; - } - .text { - flex: 1; - } - .name { - margin-top: 1rem; - margin-bottom: 0rem; - color: var(--heading-color); - } - } -} - -$animationSpeed: 45s; - -// Animation -@keyframes scroll { - 0% { - transform: translateX(0px); - } - 100% { - transform: translateX(calc(-370px * 7)); - } -} - -// Styling -.slider { - margin: auto; - overflow: hidden; - position: relative; - - .slide-track { - animation: scroll $animationSpeed linear infinite; - display: flex; - width: calc(370px * 14); - &:hover { - animation-play-state: paused; - } - @include breakpoint(mobileonly) { - animation: none; - } - } -} diff --git a/src/components/Home/Statistics/index.js b/src/components/Home/Statistics/index.js deleted file mode 100644 index 54cb3f12..00000000 --- a/src/components/Home/Statistics/index.js +++ /dev/null @@ -1,73 +0,0 @@ -import React from "react" -import { useStaticQuery, graphql } from "gatsby" -import EpisodesIcon from "assets/episodes.svg" -import EpisodesIconLight from "assets/episodes_light.svg" -import MinutesIcon from "assets/minutes.svg" -import MinutesIconLight from "assets/minutes_light.svg" -import GuestIcon from "assets/guest.svg" -import GuestIconLight from "assets/guest_light.svg" -import patternDark from "assets/patterns/1.back.svg" -import patternLight from "assets/patterns/4.back.svg" -import backGroundLight from "assets/stats_light.back.svg" -import backGroundDark from "assets/stats_item.back.svg" -import { useTheme } from "../../Theme/ThemeContext" -import "./index.scss" - -const query = graphql` - { - allMdx( - filter: { - frontmatter: { published: { eq: true }, isNext: { eq: false } } - } - ) { - edges { - node { - id - } - } - } - } -` - -export default () => { - const { dark } = useTheme() - const data = useStaticQuery(query) - const episodes = data.allMdx.edges - - const backGroundShape = { - backgroundImage: `url(${dark ? backGroundDark : backGroundLight})`, - } - - return ( -
-
-
- {dark ? : } -
-

{episodes.length}+

-

Episodes

-
-
-
- {dark ? : } -
-

{episodes.length * 93}+

-

Minutes of Blabla

-
-
-
- {dark ? : } -
-

{parseInt(episodes.length * 1.5)}+

-

Guests

-
-
-
-
- ) -} diff --git a/src/components/Home/Statistics/index.scss b/src/components/Home/Statistics/index.scss deleted file mode 100644 index 5a798340..00000000 --- a/src/components/Home/Statistics/index.scss +++ /dev/null @@ -1,50 +0,0 @@ -@import "styles/index"; - -// Statistics Component - -.statistics { - // background-image: url(../../../assets/patterns/1.back.svg); - background-position-y: -1px; - background-repeat: no-repeat; - background-size: contain; - background-color: var(--secondary-bg-color); - padding-top: 15rem; - @include breakpoint(mobileonly) { - padding-top: 5rem; - } - .container { - display: flex; - justify-content: center; - flex-wrap: wrap; - } - .item { - margin: 1rem 1.5rem; - padding: 0rem 1rem; - height: 156px; - width: 320px; - display: flex; - justify-content: center; - align-items: center; - - // background-image: url(../../../assets/stats_item.back.svg); - background-size: 100%; - background-repeat: no-repeat; - @include breakpoint(mobileonly) { - background-position-y: 11px; - } - } - h1 { - font-size: 2.6rem; - margin-bottom: 2px; - margin-top: 2px; - font-weight: normal !important; - } - svg { - margin-right: 30px; - } - p { - display: flex; - align-items: center; - font-weight: 500; - } -} diff --git a/src/components/Home/TopEpisodes/index.js b/src/components/Home/TopEpisodes/index.js deleted file mode 100644 index a2994b0e..00000000 --- a/src/components/Home/TopEpisodes/index.js +++ /dev/null @@ -1,121 +0,0 @@ -import React from "react" -import { navigate, useStaticQuery, graphql } from "gatsby" -import { useTheme } from "../../Theme/ThemeContext" -import patternLight from "assets/patterns/4.back.svg" -import patternDark from "assets/patterns/1.back.svg" -import "./index.scss" - -const FEATURED_EPISODES = graphql` - { - allMdx( - filter: { fields: { featured: { eq: true } } } - sort: { fields: [frontmatter___date], order: DESC } - limit: 3 - ) { - edges { - node { - id - excerpt(pruneLength: 100) - fields { - title - slug - } - } - } - } - } -` - -const colors = [ - ["#A109D5", "#D9147D"], - ["#9a0ecf", "#6146BD"], - ["#09D0AF", "#4695BD"], -] - -export default React.memo(() => { - const { dark } = useTheme() - - const { - allMdx: { edges }, - } = useStaticQuery(FEATURED_EPISODES) - return ( -
-
-

Top episodes

-
- {edges.map(({ node: { fields, excerpt } }, i) => ( - - ))} -
-
-
- ) -}) - -const EpisodeCard = React.memo(({ title, description, slug, item }) => { - const navigateTo = (e) => { - if (e.keyCode === 13) navigate(slug) - } - - return ( -
navigate(slug)} - onKeyDown={navigateTo} - > - -

{title}

-

{description}

-
- ) -}) - -const PlayIcon = React.memo(({ item }) => { - const stop1 = colors[item][0] - const stop2 = colors[item][1] - return ( - - - - - - - - - - - ) -}) diff --git a/src/components/Home/TopEpisodes/index.scss b/src/components/Home/TopEpisodes/index.scss deleted file mode 100644 index 51f9c2f9..00000000 --- a/src/components/Home/TopEpisodes/index.scss +++ /dev/null @@ -1,95 +0,0 @@ -@import "styles/index"; - -// top episodes component - -$gradient-1: linear-gradient(90deg, #a109d5 0%, #d9147d 100%); -$gradient-2: linear-gradient(90deg, #9d09d0 0%, #6146bd 100%); -$gradient-3: linear-gradient(90deg, #09d0af 0%, #4695bd 100%); - -.top-episodes { - background-position-y: -1px; - background-position-y: -1px; - background-repeat: no-repeat; - background-size: contain; - background-color: var(--secondary-bg-color); - padding-top: 10rem; - @include breakpoint(mobileonly) { - padding-top: 5rem; - } - @include breakpoint(mobileonly) { - padding-top: 5rem; - } - .container { - padding: 2rem 0rem; - } - - .episodes { - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: center; - } - - h2 { - text-transform: uppercase; - color: var(--text-color); - text-align: center; - opacity: 0.5; - } - .item { - svg { - margin: 8px; - } - - cursor: pointer; - background: var(--main-bg-color); - width: 300px; - margin: 1rem; - padding: 2rem; - display: flex; - justify-content: center; - flex-direction: column; - align-items: center; - text-align: center; - border-radius: 16px; - $border: 5px; - position: relative; - background-clip: padding-box; - //border: solid $border transparent; - box-shadow: 0px 4px 7px rgba(0, 0, 0, 0.25); - transition: all 100ms ease-in; - - &:focus, - &:hover { - transform: translateY(-2%) scale(1.02); - box-shadow: 0px 20px 14px rgba(0, 0, 0, 0.25); - } - - &:before { - content: ""; - position: absolute; - //height: 5px; - top: -6px; - height: 6px; - width: 95%; - - //margin-top: -$border; - border-radius: 10px 10px 0px 0px; - } - } - .item-1 { - &:before { - background: $gradient-1; - } - } - .item-2 { - &:before { - background: $gradient-2; - } - } - .item-3 { - &:before { - background: $gradient-3; - } - } -} diff --git a/src/components/Home/index.js b/src/components/Home/index.js deleted file mode 100644 index ea6e08a8..00000000 --- a/src/components/Home/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import "./index.scss" -export { default as Hero } from "./Hero/" -export { default as Statistics } from "./Statistics/" -export { default as EpisodesTypes } from "./EpisodesType/" -export { default as TopEpisodes } from "./TopEpisodes/" -export { default as Reviews } from "./Reviews" -export { default as Notification } from "./Notification/" diff --git a/src/components/Home/index.scss b/src/components/Home/index.scss deleted file mode 100644 index 0bf64cfb..00000000 --- a/src/components/Home/index.scss +++ /dev/null @@ -1 +0,0 @@ -@import "styles/index"; diff --git a/src/components/Images/AboutImage.js b/src/components/Images/AboutImage.js deleted file mode 100644 index 9d60e79d..00000000 --- a/src/components/Images/AboutImage.js +++ /dev/null @@ -1,32 +0,0 @@ -import React from "react" -import { StaticQuery, graphql } from "gatsby" -import Img from "gatsby-image" - -/* - * This component is built using `gatsby-image` to automatically serve optimized - * images with lazy loading and reduced file sizes. The image is loaded using a - * `StaticQuery`, which allows us to load the image from directly within this - * component, rather than having to pass the image data down from pages. - * - * For more information, see the docs: - * - `gatsby-image`: https://gatsby.dev/gatsby-image - * - `StaticQuery`: https://gatsby.dev/staticquery - */ - -const Image = () => ( - } - /> -) -export default Image diff --git a/src/components/Images/VideoPlaceHolder.js b/src/components/Images/VideoPlaceHolder.js deleted file mode 100644 index 07d273f6..00000000 --- a/src/components/Images/VideoPlaceHolder.js +++ /dev/null @@ -1,32 +0,0 @@ -import React from "react" -import { StaticQuery, graphql } from "gatsby" -import Img from "gatsby-image" - -/* - * This component is built using `gatsby-image` to automatically serve optimized - * images with lazy loading and reduced file sizes. The image is loaded using a - * `StaticQuery`, which allows us to load the image from directly within this - * component, rather than having to pass the image data down from pages. - * - * For more information, see the docs: - * - `gatsby-image`: https://gatsby.dev/gatsby-image - * - `StaticQuery`: https://gatsby.dev/staticquery - */ - -const Image = () => ( - } - /> -) -export default Image diff --git a/src/components/Layout/index.js b/src/components/Layout/index.js deleted file mode 100644 index 805182b8..00000000 --- a/src/components/Layout/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import React from "react" -import ErrorBoundary from "../ErrorBoundary" - -import Header from "../Header" -import Footer from "../Footer" - -export default ({ children }) => ( - -
- {children} -