├── .all-contributorsrc ├── .github ├── FUNDING.yml └── workflows │ ├── buildtest.yml │ └── codeql-analysis.yml ├── .gitignore ├── .vercelignore ├── LICENSE ├── Procfile ├── README.md ├── app.json ├── data ├── chinese │ └── words.json ├── dutch │ └── words.json ├── french │ └── words.json ├── japanese │ └── words.json ├── spanish │ └── words.json └── turkish │ └── words.json ├── index.js ├── jsconfig.json ├── package.json ├── pnpm-lock.yaml ├── renovate.json ├── routes ├── english.js ├── home.js └── language.js ├── swagger-ui.js ├── swagger.js ├── test ├── api.rest ├── proxy.js └── test.js ├── utils └── index.js ├── vercel.json └── yarn.lock /.all-contributorsrc: -------------------------------------------------------------------------------- 1 | { 2 | "files": [ 3 | "README.md" 4 | ], 5 | "imageSize": 100, 6 | "commit": false, 7 | "contributors": [ 8 | { 9 | "login": "mcnaveen", 10 | "name": "MC Naveen", 11 | "avatar_url": "https://avatars.githubusercontent.com/u/8493007?v=4", 12 | "profile": "https://github.com/mcnaveen", 13 | "contributions": [ 14 | "bug", 15 | "code", 16 | "data", 17 | "doc", 18 | "example", 19 | "ideas", 20 | "maintenance", 21 | "review" 22 | ] 23 | }, 24 | { 25 | "login": "jonah-butler", 26 | "name": "jonah-butler", 27 | "avatar_url": "https://avatars.githubusercontent.com/u/18040568?v=4", 28 | "profile": "https://github.com/jonah-butler", 29 | "contributions": [ 30 | "code", 31 | "doc" 32 | ] 33 | }, 34 | { 35 | "login": "mskian", 36 | "name": "Santhosh Veer", 37 | "avatar_url": "https://avatars.githubusercontent.com/u/10300271?v=4", 38 | "profile": "https://santhoshveer.com/", 39 | "contributions": [ 40 | "code", 41 | "doc", 42 | "ideas", 43 | "maintenance", 44 | "bug", 45 | "review" 46 | ] 47 | } 48 | ], 49 | "contributorsPerLine": 7, 50 | "projectName": "Random-Words-API", 51 | "projectOwner": "mcnaveen", 52 | "repoType": "github", 53 | "repoHost": "https://github.com", 54 | "skipCi": true, 55 | "commitConvention": "none" 56 | } -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: mcnaveen 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: https://www.buymeacoffee.com/mcnaveen 13 | -------------------------------------------------------------------------------- /.github/workflows/buildtest.yml: -------------------------------------------------------------------------------- 1 | name: build-test 2 | 3 | on: 4 | pull_request: 5 | push: 6 | branches: 7 | - main 8 | 9 | jobs: 10 | build: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v3.0.2 14 | - uses: actions/setup-node@v3.4.1 15 | with: 16 | node-version: '18.x' 17 | - name: use node 18 | run: | 19 | npm install 20 | npm run action 21 | -------------------------------------------------------------------------------- /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- 1 | # For most projects, this workflow file will not need changing; you simply need 2 | # to commit it to your repository. 3 | # 4 | # You may wish to alter this file to override the set of languages analyzed, 5 | # or to provide custom queries or build logic. 6 | # 7 | # ******** NOTE ******** 8 | # We have attempted to detect the languages in your repository. Please check 9 | # the `language` matrix defined below to confirm you have the correct set of 10 | # supported CodeQL languages. 11 | # 12 | name: "CodeQL" 13 | 14 | on: 15 | push: 16 | branches: [ main ] 17 | pull_request: 18 | # The branches below must be a subset of the branches above 19 | branches: [ main ] 20 | schedule: 21 | - cron: '33 8 * * 6' 22 | 23 | jobs: 24 | analyze: 25 | name: Analyze 26 | runs-on: ubuntu-latest 27 | permissions: 28 | actions: read 29 | contents: read 30 | security-events: write 31 | 32 | strategy: 33 | fail-fast: false 34 | matrix: 35 | language: [ 'javascript' ] 36 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] 37 | # Learn more about CodeQL language support at https://git.io/codeql-language-support 38 | 39 | steps: 40 | - name: Checkout repository 41 | uses: actions/checkout@v3 42 | 43 | # Initializes the CodeQL tools for scanning. 44 | - name: Initialize CodeQL 45 | uses: github/codeql-action/init@v2 46 | with: 47 | languages: ${{ matrix.language }} 48 | # If you wish to specify custom queries, you can do so here or in a config file. 49 | # By default, queries listed here will override any specified in a config file. 50 | # Prefix the list here with "+" to use these queries and those in the config file. 51 | # queries: ./path/to/local/query, your-org/your-repo/queries@main 52 | 53 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). 54 | # If this step fails, then you should remove it and run the build manually (see below) 55 | - name: Autobuild 56 | uses: github/codeql-action/autobuild@v2 57 | 58 | # ℹ️ Command-line programs to run using the OS shell. 59 | # 📚 https://git.io/JvXDl 60 | 61 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines 62 | # and modify them (or add more) to build your code if your project 63 | # uses a compiled language 64 | 65 | #- run: | 66 | # make bootstrap 67 | # make release 68 | 69 | - name: Perform CodeQL Analysis 70 | uses: github/codeql-action/analyze@v2 71 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | npm-debug.log 3 | .DS_Store 4 | /*.env 5 | .env -------------------------------------------------------------------------------- /.vercelignore: -------------------------------------------------------------------------------- 1 | .vercel 2 | vendor 3 | composer.json 4 | composer.lock 5 | procfile 6 | app.json 7 | LICENSE 8 | README.md 9 | .github 10 | .gitignore 11 | test.js 12 | app.js 13 | renovate.json 14 | proxy.js 15 | .env 16 | test 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 MC Naveen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Procfile: -------------------------------------------------------------------------------- 1 | web: node index.js 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Random Words API 2 | 3 | 4 | 5 | [![All Contributors](https://img.shields.io/badge/all_contributors-3-orange.svg?style=flat-square)](#contributors-) 6 | 7 | 8 | 9 | ![build-test](https://github.com/mcnaveen/Random-Words-API/workflows/build-test/badge.svg) 10 | 11 | 🦄 Get Random Words (with pronunciation) for Free using this API 12 | 13 | ## 🌍 Languages 14 | 15 | - English 16 | - Dutch 17 | - Spanish 18 | - French 19 | - Chinese 20 | - Japanese 21 | 22 | ## 🚀 API 23 | 24 | - English Random Words - `https://random-words-api.vercel.app/word` 25 | - Dutch Random Words - `https://random-words-api.vercel.app/word/dutch` 26 | - Spanish Random Words - `https://random-words-api.vercel.app/word/spanish` 27 | - French Random Words - `https://random-words-api.vercel.app/word/french` 28 | - Chinese Random Words - `https://random-words-api.vercel.app/word/chinese` 29 | - Japanese Random Words - `https://random-words-api.vercel.app/word/japanese` 30 | - Turkish Random Words - `https://random-words-api.vercel.app/word/turkish` 31 | 32 | - PWA Demo - [Check Here](https://words.sanweb.info/) 33 | 34 | ## 🎛 Route Options (English Only) 35 | - Base URL: `https://random-words-api.vercel.app/word/english` 36 | ```text 37 | - /noun 38 | - /sentence 39 | - /question 40 | - /adjective 41 | - /idiom 42 | - /verb 43 | - /letter 44 | - /paragraph 45 | - /vocabulary 46 | - /1-word-quotes 47 | - /2-word-quotes 48 | - /3-word-quotes 49 | - /affirmation 50 | ``` 51 | 52 | ## 🌐 Sample API Response 53 | 54 | - API: `https://random-words-api.vercel.app/word/` 55 | - Method: `GET` 56 | 57 | ```json 58 | [ 59 | { 60 | "word": "Exactor", 61 | "definition": "One who exacts; extortioner; claimer of rights ", 62 | "pronunciation": "Eksaktor" 63 | } 64 | ] 65 | ``` 66 | 67 | ## 🌐 Sample Dutch Response 68 | 69 | - API: `https://random-words-api.vercel.app/word/dutch` 70 | - Method: `GET` 71 | 72 | ```json 73 | [ 74 | { 75 | "word": "Perfect", 76 | "definition": "Perfect", 77 | "pronunciation": "Perfekt" 78 | } 79 | ] 80 | ``` 81 | 82 | - Check [api.rest](/test/api.rest) file for more details 83 | 84 | ## 💡 Learn New word 85 | 86 | - [Join Telegram Channel](https://t.me/learnwordoftheday) 87 | - [Learn Online](https://words.sanweb.info/) 88 | 89 | ## ✨ Installation (Development) 90 | 91 | ```sh 92 | # Clone the Repo 93 | git clone https://github.com/mcnaveen/random-words-api random-words-api 94 | 95 | # Cd into Directory 96 | cd random-words 97 | 98 | # Install Dependencies 99 | npm install 100 | 101 | # Start the Development Server 102 | npm run dev 103 | ``` 104 | 105 | ## 🔀 Deploying to Heroku 106 | 107 | OneClick Deploy on Heroku 108 | 109 | [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/mcnaveen/Random-Words-API) 110 | 111 | ## 🔀 Deploying to Vercel 112 | 113 | OneClick Deploy on Vercel 114 | 115 | [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/git/external?repository-url=https%3A%2F%2Fgithub.com%2Fmcnaveen%2FRandom-Words-API.git) 116 | 117 | OR 118 | 119 | ```html 120 | - Fork the Repo - Login to Vercel (https://vercel.com/dashboard) - Click Import 121 | Project - Give Forked Repo URL - Go Live 122 | ``` 123 | 124 | ## 🔐 Rate Limit 125 | 126 | - To configure the rate limit, edit the `utils/index.js` file 127 | - Look for `limiter` variable 128 | - `max` is the maximum number of requests allowed in a given time window 129 | - `windowMs` is the time window in milliseconds 130 | - `message` is the message to be returned when the rate limit is exceeded 131 | 132 | ## 😇 Add New Language 133 | - Create a new folder in `data` with the full language name `ex: english` 134 | - Add the words in the `words.json` file 135 | - It should be an array of objects with `id`, `word`, and `definition` properties 136 | - The `id` should be a unique number for each word 137 | - The `word` should be the word in the language 138 | - The `definition` should be the definition of the word in English 139 | - The `pronunciation` should be the pronunciation of the word in the language (Optional) 140 | 141 | ## :question: How to Contribute? 142 | 143 | Make your changes and follow the below instructions. We follow conventional commits. 144 | 145 | ### ✍️ Commit 146 | 147 | - Stage all changes 148 | 149 | ```sh 150 | git add . 151 | ``` 152 | 153 | - Commit the changes 154 | 155 | ```sh 156 | yarn commit 157 | ``` 158 | 159 | - Push the changes to GitHub 160 | 161 | ```sh 162 | git push 163 | ``` 164 | 165 | ## ⚛ USED BY 166 | 167 | | Project Name | Demo/Preview | Source Code | Author | 168 | | :---------------------: | :--------------------------------------------------------: | :-------------------------------------------------------: | ---------------------------------------- | 169 | | Vue Random Words | [Demo](https://words.sanweb.info/) | [Source](https://github.com/mskian/vue-random-words) | [@mskian](https://github.com/mskian) | 170 | | Speak & Spell Elm | [Demo](https://speak-and-spell.vercel.app/) | [Source](https://github.com/gacallea/elm_speakandspell) | [@gacallea](https://github.com/gacallea) | 171 | | Random Words CLI | [Showcase](https://www.npmjs.com/package/random-words-cli) | [Source](https://github.com/mcnaveen/random-words-cli) | [@mcnaveen](https://github.com/mcnaveen) | 172 | | Random Words CLI (Deno) | [Showcase](https://deno.land/x/randomwords) | [Source](https://github.com/mskian/deno-random-words-cli) | [@mskian](https://github.com/mskian) | 173 | 174 | ## ☑ License 175 | 176 | - MIT 177 | 178 | ## ⚠ Disclaimer 179 | 180 | We don't own any data or word. All belongs to the owner of Website. Use it for educational purpose only. 181 | 182 | ## Contributors ✨ 183 | 184 | Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 |

MC Naveen

🐛 💻 🔣 📖 💡 🤔 🚧 👀

jonah-butler

💻 📖

Santhosh Veer

💻 📖 🤔 🚧 🐛 👀
196 | 197 | 198 | 199 | 200 | 201 | 202 | This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! 203 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "random-words-api", 3 | "description": "API for getting random words in different languages", 4 | "repository": "https://github.com/mcnaveen/Random-Words-API", 5 | "keywords": ["expressjs", "nodejs", "json", "random-words", "api"] 6 | } -------------------------------------------------------------------------------- /data/chinese/words.json: -------------------------------------------------------------------------------- 1 | [ 2 | {"id": 1, "word": "爱", "definition": "love"}, 3 | {"id": 2, "word": "朋友", "definition": "friend"}, 4 | {"id": 3, "word": "学校", "definition": "school"}, 5 | {"id": 4, "word": "书", "definition": "book"}, 6 | {"id": 5, "word": "电脑", "definition": "computer"}, 7 | {"id": 6, "word": "家庭", "definition": "family"}, 8 | {"id": 7, "word": "工作", "definition": "work"}, 9 | {"id": 8, "word": "幸福", "definition": "happiness"}, 10 | {"id": 9, "word": "水", "definition": "water"}, 11 | {"id": 10, "word": "食物", "definition": "food"}, 12 | {"id": 11, "word": "汽车", "definition": "car"}, 13 | {"id": 12, "word": "电影", "definition": "movie"}, 14 | {"id": 13, "word": "音乐", "definition": "music"}, 15 | {"id": 14, "word": "城市", "definition": "city"}, 16 | {"id": 15, "word": "旅行", "definition": "travel"}, 17 | {"id": 16, "word": "健康", "definition": "health"}, 18 | {"id": 17, "word": "运动", "definition": "exercise"}, 19 | {"id": 18, "word": "老师", "definition": "teacher"}, 20 | {"id": 19, "word": "学生", "definition": "student"}, 21 | {"id": 20, "word": "电话", "definition": "telephone"}, 22 | {"id": 21, "word": "电影", "definition": "film"}, 23 | {"id": 22, "word": "艺术", "definition": "art"}, 24 | {"id": 23, "word": "文化", "definition": "culture"}, 25 | {"id": 24, "word": "语言", "definition": "language"}, 26 | {"id": 25, "word": "历史", "definition": "history"}, 27 | {"id": 26, "word": "科学", "definition": "science"}, 28 | {"id": 27, "word": "数学", "definition": "mathematics"}, 29 | {"id": 28, "word": "经济", "definition": "economics"}, 30 | {"id": 29, "word": "政治", "definition": "politics"}, 31 | {"id": 30, "word": "社会", "definition": "society"}, 32 | {"id": 31, "word": "文学", "definition": "literature"}, 33 | {"id": 32, "word": "哲学", "definition": "philosophy"}, 34 | {"id": 33, "word": "法律", "definition": "law"}, 35 | {"id": 34, "word": "医学", "definition": "medicine"}, 36 | {"id": 35, "word": "工程", "definition": "engineering"}, 37 | {"id": 36, "word": "计算机", "definition": "computer science"}, 38 | {"id": 37, "word": "互联网", "definition": "internet"}, 39 | {"id": 38, "word": "技术", "definition": "technology"}, 40 | {"id": 39, "word": "交通", "definition": "transportation"}, 41 | {"id": 40, "word": "自然", "definition": "nature"}, 42 | {"id": 41, "word": "环境", "definition": "environment"}, 43 | {"id": 42, "word": "空气", "definition": "air"}, 44 | {"id": 43, "word": "土地", "definition": "land"}, 45 | {"id": 44, "word": "能源", "definition": "energy"}, 46 | {"id": 45, "word": "气候", "definition": "climate"}, 47 | {"id": 46, "word": "动物", "definition": "animal"}, 48 | {"id": 47, "word": "植物", "definition": "plant"}, 49 | {"id": 48, "word": "海洋", "definition": "ocean"}, 50 | {"id": 49, "word": "山", "definition": "mountain"}, 51 | {"id": 50, "word": "河流", "definition": "river"}, 52 | {"id": 51, "word": "湖泊", "definition": "lake"}, 53 | {"id": 52, "word": "天气", "definition": "weather"}, 54 | {"id": 53, "word": "风", "definition": "wind"}, 55 | {"id": 54, "word": "雨", "definition": "rain"}, 56 | {"id": 55, "word": "雪", "definition": "snow"}, 57 | {"id": 56, "word": "太阳", "definition": "sun"}, 58 | {"id": 57, "word": "月亮", "definition": "moon"}, 59 | {"id": 58, "word": "星星", "definition": "star"}, 60 | {"id": 59, "word": "宇宙", "definition": "universe"}, 61 | {"id": 60, "word": "银河", "definition": "galaxy"}, 62 | {"id": 61, "word": "太空", "definition": "space"}, 63 | {"id": 62, "word": "星座", "definition": "constellation"}, 64 | {"id": 63, "word": "地球", "definition": "Earth"}, 65 | {"id": 64, "word": "太阳系", "definition": "solar system"}, 66 | {"id": 65, "word": "黑洞", "definition": "black hole"}, 67 | {"id": 66, "word": "星球", "definition": "planet"}, 68 | {"id": 67, "word": "卫星", "definition": "satellite"}, 69 | {"id": 68, "word": "宇航员", "definition": "astronaut"}, 70 | {"id": 69, "word": "火箭", "definition": "rocket"}, 71 | {"id": 70, "word": "飞船", "definition": "spaceship"}, 72 | {"id": 71, "word": "探测器", "definition": "probe"}, 73 | {"id": 72, "word": "任务", "definition": "mission"}, 74 | {"id": 73, "word": "实验", "definition": "experiment"}, 75 | {"id": 74, "word": "理论", "definition": "theory"}, 76 | {"id": 75, "word": "发现", "definition": "discovery"}, 77 | {"id": 76, "word": "研究", "definition": "research"}, 78 | {"id": 77, "word": "数据", "definition": "data"}, 79 | {"id": 78, "word": "信息", "definition": "information"}, 80 | {"id": 79, "word": "知识", "definition": "knowledge"}, 81 | {"id": 80, "word": "智慧", "definition": "wisdom"}, 82 | {"id": 81, "word": "思考", "definition": "thinking"}, 83 | {"id": 82, "word": "解决", "definition": "solve"}, 84 | {"id": 83, "word": "创新", "definition": "innovation"}, 85 | {"id": 84, "word": "发明", "definition": "invention"}, 86 | {"id": 85, "word": "创造", "definition": "create"}, 87 | {"id": 86, "word": "艺术家", "definition": "artist"}, 88 | {"id": 87, "word": "画家", "definition": "painter"}, 89 | {"id": 88, "word": "音乐家", "definition": "musician"}, 90 | {"id": 89, "word": "作家", "definition": "writer"}, 91 | {"id": 90, "word": "导演", "definition": "director"}, 92 | {"id": 91, "word": "演员", "definition": "actor"}, 93 | {"id": 92, "word": "舞蹈", "definition": "dance"}, 94 | {"id": 93, "word": "戏剧", "definition": "drama"}, 95 | {"id": 94, "word": "文学作品", "definition": "literary work"}, 96 | {"id": 95, "word": "小说", "definition": "novel"}, 97 | {"id": 96, "word": "诗歌", "definition": "poetry"}, 98 | {"id": 97, "word": "散文", "definition": "prose"}, 99 | {"id": 98, "word": "历史书", "definition": "history book"}, 100 | {"id": 99, "word": "百科全书", "definition": "encyclopedia"}, 101 | {"id": 100, "word": "字典", "definition": "dictionary"} 102 | ] 103 | -------------------------------------------------------------------------------- /data/dutch/words.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": 1, 4 | "word": "raakte", 5 | "definition": "hit" 6 | }, 7 | { 8 | "id": 2, 9 | "word": "reken", 10 | "definition": "accounting" 11 | }, 12 | { 13 | "id": 3, 14 | "word": "amerikaanse", 15 | "definition": "American" 16 | }, 17 | { 18 | "id": 4, 19 | "word": "niet", 20 | "definition": "not" 21 | }, 22 | { 23 | "id": 5, 24 | "word": "alsof", 25 | "definition": "as if" 26 | }, 27 | { 28 | "id": 6, 29 | "word": "liedje", 30 | "definition": "tune" 31 | }, 32 | { 33 | "id": 7, 34 | "word": "geleden", 35 | "definition": "ago" 36 | }, 37 | { 38 | "id": 8, 39 | "word": "vorige", 40 | "definition": "previous" 41 | }, 42 | { 43 | "id": 9, 44 | "word": "km", 45 | "definition": "km" 46 | }, 47 | { 48 | "id": 10, 49 | "word": "zouden", 50 | "definition": "would" 51 | }, 52 | { 53 | "id": 11, 54 | "word": "ha", 55 | "definition": "ha" 56 | }, 57 | { 58 | "id": 12, 59 | "word": "echt", 60 | "definition": "really" 61 | }, 62 | { 63 | "id": 13, 64 | "word": "stop", 65 | "definition": "Stop" 66 | }, 67 | { 68 | "id": 14, 69 | "word": "want", 70 | "definition": "because" 71 | }, 72 | { 73 | "id": 15, 74 | "word": "onderzoek", 75 | "definition": "research" 76 | }, 77 | { 78 | "id": 16, 79 | "word": "blanke", 80 | "definition": "White person" 81 | }, 82 | { 83 | "id": 17, 84 | "word": "jezelf", 85 | "definition": "yourself" 86 | }, 87 | { 88 | "id": 18, 89 | "word": "steken", 90 | "definition": "stabbing" 91 | }, 92 | { 93 | "id": 19, 94 | "word": "echtgenoot", 95 | "definition": "husband" 96 | }, 97 | { 98 | "id": 20, 99 | "word": "gesprek", 100 | "definition": "conversation" 101 | }, 102 | { 103 | "id": 21, 104 | "word": "joe", 105 | "definition": "joe" 106 | }, 107 | { 108 | "id": 22, 109 | "word": "nerveus", 110 | "definition": "nervous" 111 | }, 112 | { 113 | "id": 23, 114 | "word": "camera", 115 | "definition": "camera" 116 | }, 117 | { 118 | "id": 24, 119 | "word": "gebruik", 120 | "definition": "use" 121 | }, 122 | { 123 | "id": 25, 124 | "word": "waarschijnlijk", 125 | "definition": "probably" 126 | }, 127 | { 128 | "id": 26, 129 | "word": "sam", 130 | "definition": "sam" 131 | }, 132 | { 133 | "id": 27, 134 | "word": "welke", 135 | "definition": "which" 136 | }, 137 | { 138 | "id": 28, 139 | "word": "harde", 140 | "definition": "tough" 141 | }, 142 | { 143 | "id": 29, 144 | "word": "liegen", 145 | "definition": "to lie" 146 | }, 147 | { 148 | "id": 30, 149 | "word": "werk", 150 | "definition": "work" 151 | }, 152 | { 153 | "id": 31, 154 | "word": "probeer", 155 | "definition": "try" 156 | }, 157 | { 158 | "id": 32, 159 | "word": "alsjeblieft", 160 | "definition": "please" 161 | }, 162 | { 163 | "id": 33, 164 | "word": "kont", 165 | "definition": "ass" 166 | }, 167 | { 168 | "id": 34, 169 | "word": "vannacht", 170 | "definition": "tonight" 171 | }, 172 | { 173 | "id": 35, 174 | "word": "mijne", 175 | "definition": "mine" 176 | }, 177 | { 178 | "id": 36, 179 | "word": "hand", 180 | "definition": "hand" 181 | }, 182 | { 183 | "id": 37, 184 | "word": "kinderen", 185 | "definition": "children" 186 | }, 187 | { 188 | "id": 38, 189 | "word": "veranderen", 190 | "definition": "change" 191 | }, 192 | { 193 | "id": 39, 194 | "word": "werken", 195 | "definition": "to work" 196 | }, 197 | { 198 | "id": 40, 199 | "word": "ervaring", 200 | "definition": "experience" 201 | }, 202 | { 203 | "id": 41, 204 | "word": "gepakt", 205 | "definition": "caught" 206 | }, 207 | { 208 | "id": 42, 209 | "word": "frankrijk", 210 | "definition": "France" 211 | }, 212 | { 213 | "id": 43, 214 | "word": "is", 215 | "definition": "is" 216 | }, 217 | { 218 | "id": 44, 219 | "word": "duivel", 220 | "definition": "devil" 221 | }, 222 | { 223 | "id": 45, 224 | "word": "weer", 225 | "definition": "again" 226 | }, 227 | { 228 | "id": 46, 229 | "word": "licht", 230 | "definition": "light" 231 | }, 232 | { 233 | "id": 47, 234 | "word": "tom", 235 | "definition": "Tom" 236 | }, 237 | { 238 | "id": 48, 239 | "word": "nog", 240 | "definition": "yet" 241 | }, 242 | { 243 | "id": 49, 244 | "word": "schip", 245 | "definition": "ship" 246 | }, 247 | { 248 | "id": 50, 249 | "word": "loop", 250 | "definition": "course" 251 | }, 252 | { 253 | "id": 51, 254 | "word": "wow", 255 | "definition": "wow" 256 | }, 257 | { 258 | "id": 52, 259 | "word": "k", 260 | "definition": "k" 261 | }, 262 | { 263 | "id": 53, 264 | "word": "lee", 265 | "definition": "lee" 266 | }, 267 | { 268 | "id": 54, 269 | "word": "collega", 270 | "definition": "colleague" 271 | }, 272 | { 273 | "id": 55, 274 | "word": "new", 275 | "definition": "new" 276 | }, 277 | { 278 | "id": 56, 279 | "word": "eenmaal", 280 | "definition": "once" 281 | }, 282 | { 283 | "id": 57, 284 | "word": "grote", 285 | "definition": "great" 286 | }, 287 | { 288 | "id": 58, 289 | "word": "moe", 290 | "definition": "tired" 291 | }, 292 | { 293 | "id": 59, 294 | "word": "hadden", 295 | "definition": "had" 296 | }, 297 | { 298 | "id": 60, 299 | "word": "schuldig", 300 | "definition": "guilty" 301 | }, 302 | { 303 | "id": 61, 304 | "word": "gebruikte", 305 | "definition": "used" 306 | }, 307 | { 308 | "id": 62, 309 | "word": "voelt", 310 | "definition": "feels" 311 | }, 312 | { 313 | "id": 63, 314 | "word": "trots", 315 | "definition": "pride" 316 | }, 317 | { 318 | "id": 64, 319 | "word": "stellen", 320 | "definition": "set" 321 | }, 322 | { 323 | "id": 65, 324 | "word": "thuis", 325 | "definition": "home" 326 | }, 327 | { 328 | "id": 66, 329 | "word": "hoofd", 330 | "definition": "head" 331 | }, 332 | { 333 | "id": 67, 334 | "word": "eerst", 335 | "definition": "first" 336 | }, 337 | { 338 | "id": 68, 339 | "word": "vriendin", 340 | "definition": "girlfriend" 341 | }, 342 | { 343 | "id": 69, 344 | "word": "zes", 345 | "definition": "six" 346 | }, 347 | { 348 | "id": 70, 349 | "word": "wanneer", 350 | "definition": "when" 351 | }, 352 | { 353 | "id": 71, 354 | "word": "allen", 355 | "definition": "all" 356 | }, 357 | { 358 | "id": 72, 359 | "word": "anderen", 360 | "definition": "others" 361 | }, 362 | { 363 | "id": 73, 364 | "word": "naast", 365 | "definition": "next" 366 | }, 367 | { 368 | "id": 74, 369 | "word": "mooi", 370 | "definition": "beautiful" 371 | }, 372 | { 373 | "id": 75, 374 | "word": "lot", 375 | "definition": "lot" 376 | }, 377 | { 378 | "id": 76, 379 | "word": "programma", 380 | "definition": "program" 381 | }, 382 | { 383 | "id": 77, 384 | "word": "stierf", 385 | "definition": "died" 386 | }, 387 | { 388 | "id": 78, 389 | "word": "lol", 390 | "definition": "LOL" 391 | }, 392 | { 393 | "id": 79, 394 | "word": "gewone", 395 | "definition": "ordinary" 396 | }, 397 | { 398 | "id": 80, 399 | "word": "uitgenodigd", 400 | "definition": "invited" 401 | }, 402 | { 403 | "id": 81, 404 | "word": "wist", 405 | "definition": "knew" 406 | }, 407 | { 408 | "id": 82, 409 | "word": "ga", 410 | "definition": "ga" 411 | }, 412 | { 413 | "id": 83, 414 | "word": "past", 415 | "definition": "suits" 416 | }, 417 | { 418 | "id": 84, 419 | "word": "show", 420 | "definition": "show" 421 | }, 422 | { 423 | "id": 85, 424 | "word": "breken", 425 | "definition": "break" 426 | }, 427 | { 428 | "id": 86, 429 | "word": "hoeveel", 430 | "definition": "How much" 431 | }, 432 | { 433 | "id": 87, 434 | "word": "jagen", 435 | "definition": "to hunt" 436 | }, 437 | { 438 | "id": 88, 439 | "word": "b", 440 | "definition": "b" 441 | }, 442 | { 443 | "id": 89, 444 | "word": "professor", 445 | "definition": "professor" 446 | }, 447 | { 448 | "id": 90, 449 | "word": "vrolijk", 450 | "definition": "cheerful" 451 | }, 452 | { 453 | "id": 91, 454 | "word": "broers", 455 | "definition": "brothers" 456 | }, 457 | { 458 | "id": 92, 459 | "word": "lijkt", 460 | "definition": "seems" 461 | }, 462 | { 463 | "id": 93, 464 | "word": "opnemen", 465 | "definition": "record" 466 | }, 467 | { 468 | "id": 94, 469 | "word": "vaders", 470 | "definition": "fathers" 471 | }, 472 | { 473 | "id": 95, 474 | "word": "boos", 475 | "definition": "angry" 476 | }, 477 | { 478 | "id": 96, 479 | "word": "it", 480 | "definition": "it" 481 | }, 482 | { 483 | "id": 97, 484 | "word": "gehaald", 485 | "definition": "achieved" 486 | }, 487 | { 488 | "id": 98, 489 | "word": "hopen", 490 | "definition": "to hope" 491 | }, 492 | { 493 | "id": 99, 494 | "word": "simon", 495 | "definition": "simon" 496 | }, 497 | { 498 | "id": 100, 499 | "word": "draagt", 500 | "definition": "wear" 501 | }, 502 | { 503 | "id": 101, 504 | "word": "avond", 505 | "definition": "evening" 506 | }, 507 | { 508 | "id": 102, 509 | "word": "wind", 510 | "definition": "wind" 511 | }, 512 | { 513 | "id": 103, 514 | "word": "adres", 515 | "definition": "address" 516 | }, 517 | { 518 | "id": 104, 519 | "word": "negen", 520 | "definition": "nine" 521 | }, 522 | { 523 | "id": 105, 524 | "word": "waarmee", 525 | "definition": "by which" 526 | }, 527 | { 528 | "id": 106, 529 | "word": "baby", 530 | "definition": "baby" 531 | }, 532 | { 533 | "id": 107, 534 | "word": "eieren", 535 | "definition": "Eggs" 536 | }, 537 | { 538 | "id": 108, 539 | "word": "soms", 540 | "definition": "sometimes" 541 | }, 542 | { 543 | "id": 109, 544 | "word": "ligt", 545 | "definition": "lies" 546 | }, 547 | { 548 | "id": 110, 549 | "word": "spreken", 550 | "definition": "to speak" 551 | }, 552 | { 553 | "id": 111, 554 | "word": "heeft", 555 | "definition": "has" 556 | }, 557 | { 558 | "id": 112, 559 | "word": "heer", 560 | "definition": "lord" 561 | }, 562 | { 563 | "id": 113, 564 | "word": "vrij", 565 | "definition": "free" 566 | }, 567 | { 568 | "id": 114, 569 | "word": "gestopt", 570 | "definition": "stopped" 571 | }, 572 | { 573 | "id": 115, 574 | "word": "inderdaad", 575 | "definition": "indeed" 576 | }, 577 | { 578 | "id": 116, 579 | "word": "doos", 580 | "definition": "box" 581 | }, 582 | { 583 | "id": 117, 584 | "word": "noemde", 585 | "definition": "named" 586 | }, 587 | { 588 | "id": 118, 589 | "word": "samen", 590 | "definition": "together" 591 | }, 592 | { 593 | "id": 119, 594 | "word": "kolonel", 595 | "definition": "colonel" 596 | }, 597 | { 598 | "id": 120, 599 | "word": "mag", 600 | "definition": "allowed" 601 | }, 602 | { 603 | "id": 121, 604 | "word": "verkocht", 605 | "definition": "sold" 606 | }, 607 | { 608 | "id": 122, 609 | "word": "gelul", 610 | "definition": "bullshit" 611 | }, 612 | { 613 | "id": 123, 614 | "word": "halen", 615 | "definition": "get" 616 | }, 617 | { 618 | "id": 124, 619 | "word": "gezin", 620 | "definition": "family" 621 | }, 622 | { 623 | "id": 125, 624 | "word": "tong", 625 | "definition": "tongue" 626 | }, 627 | { 628 | "id": 126, 629 | "word": "ik", 630 | "definition": "I" 631 | }, 632 | { 633 | "id": 127, 634 | "word": "vaak", 635 | "definition": "often" 636 | }, 637 | { 638 | "id": 128, 639 | "word": "rare", 640 | "definition": "weird" 641 | }, 642 | { 643 | "id": 129, 644 | "word": "vraagt", 645 | "definition": "asks" 646 | }, 647 | { 648 | "id": 130, 649 | "word": "gezegd", 650 | "definition": "said" 651 | }, 652 | { 653 | "id": 131, 654 | "word": "later", 655 | "definition": "later" 656 | }, 657 | { 658 | "id": 132, 659 | "word": "zonde", 660 | "definition": "sin" 661 | }, 662 | { 663 | "id": 133, 664 | "word": "elkaar", 665 | "definition": "each other" 666 | }, 667 | { 668 | "id": 134, 669 | "word": "kiezen", 670 | "definition": "select" 671 | }, 672 | { 673 | "id": 135, 674 | "word": "bepaalde", 675 | "definition": "particular" 676 | }, 677 | { 678 | "id": 136, 679 | "word": "zelfs", 680 | "definition": "even" 681 | }, 682 | { 683 | "id": 137, 684 | "word": "brood", 685 | "definition": "bread" 686 | }, 687 | { 688 | "id": 138, 689 | "word": "nadenken", 690 | "definition": "reflect" 691 | }, 692 | { 693 | "id": 139, 694 | "word": "baas", 695 | "definition": "boss" 696 | }, 697 | { 698 | "id": 140, 699 | "word": "bewerkt", 700 | "definition": "edited" 701 | }, 702 | { 703 | "id": 141, 704 | "word": "max", 705 | "definition": "max" 706 | }, 707 | { 708 | "id": 142, 709 | "word": "hi", 710 | "definition": "Hi" 711 | }, 712 | { 713 | "id": 143, 714 | "word": "wei", 715 | "definition": "whey" 716 | }, 717 | { 718 | "id": 144, 719 | "word": "systeem", 720 | "definition": "system" 721 | }, 722 | { 723 | "id": 145, 724 | "word": "c", 725 | "definition": "c" 726 | }, 727 | { 728 | "id": 146, 729 | "word": "vliegtuig", 730 | "definition": "plane" 731 | }, 732 | { 733 | "id": 147, 734 | "word": "nieuws", 735 | "definition": "news" 736 | }, 737 | { 738 | "id": 148, 739 | "word": "schrijven", 740 | "definition": "to write" 741 | }, 742 | { 743 | "id": 149, 744 | "word": "pistool", 745 | "definition": "pistol" 746 | }, 747 | { 748 | "id": 150, 749 | "word": "nat", 750 | "definition": "wet" 751 | }, 752 | { 753 | "id": 151, 754 | "word": "gesloten", 755 | "definition": "closed" 756 | }, 757 | { 758 | "id": 152, 759 | "word": "relatie", 760 | "definition": "relation" 761 | }, 762 | { 763 | "id": 153, 764 | "word": "neuken", 765 | "definition": "fuck" 766 | }, 767 | { 768 | "id": 154, 769 | "word": "noorden", 770 | "definition": "north" 771 | }, 772 | { 773 | "id": 155, 774 | "word": "trein", 775 | "definition": "train" 776 | }, 777 | { 778 | "id": 156, 779 | "word": "gekozen", 780 | "definition": "chosen" 781 | }, 782 | { 783 | "id": 157, 784 | "word": "bang", 785 | "definition": "anxious" 786 | }, 787 | { 788 | "id": 158, 789 | "word": "onschuldig", 790 | "definition": "innocent" 791 | }, 792 | { 793 | "id": 159, 794 | "word": "klote", 795 | "definition": "sucks" 796 | }, 797 | { 798 | "id": 160, 799 | "word": "rechercheur", 800 | "definition": "detective" 801 | }, 802 | { 803 | "id": 161, 804 | "word": "twijfel", 805 | "definition": "doubt" 806 | }, 807 | { 808 | "id": 162, 809 | "word": "man", 810 | "definition": "man" 811 | }, 812 | { 813 | "id": 163, 814 | "word": "louis", 815 | "definition": "louis" 816 | }, 817 | { 818 | "id": 164, 819 | "word": "kampioen", 820 | "definition": "champion" 821 | }, 822 | { 823 | "id": 165, 824 | "word": "spul", 825 | "definition": "stuff" 826 | }, 827 | { 828 | "id": 166, 829 | "word": "verdwenen", 830 | "definition": "disappeared" 831 | }, 832 | { 833 | "id": 167, 834 | "word": "zet", 835 | "definition": "move" 836 | }, 837 | { 838 | "id": 168, 839 | "word": "ster", 840 | "definition": "star" 841 | }, 842 | { 843 | "id": 169, 844 | "word": "appartement", 845 | "definition": "apartment" 846 | }, 847 | { 848 | "id": 170, 849 | "word": "stom", 850 | "definition": "stupid" 851 | }, 852 | { 853 | "id": 171, 854 | "word": "vliegveld", 855 | "definition": "airport" 856 | }, 857 | { 858 | "id": 172, 859 | "word": "mocht", 860 | "definition": "if" 861 | }, 862 | { 863 | "id": 173, 864 | "word": "angst", 865 | "definition": "fear" 866 | }, 867 | { 868 | "id": 174, 869 | "word": "veiligheid", 870 | "definition": "safety" 871 | }, 872 | { 873 | "id": 175, 874 | "word": "voorzichtig", 875 | "definition": "cautious" 876 | }, 877 | { 878 | "id": 176, 879 | "word": "vaker", 880 | "definition": "more often" 881 | }, 882 | { 883 | "id": 177, 884 | "word": "sterft", 885 | "definition": "dies" 886 | }, 887 | { 888 | "id": 178, 889 | "word": "papier", 890 | "definition": "paper" 891 | }, 892 | { 893 | "id": 179, 894 | "word": "verder", 895 | "definition": "further" 896 | }, 897 | { 898 | "id": 180, 899 | "word": "open", 900 | "definition": "Open" 901 | }, 902 | { 903 | "id": 181, 904 | "word": "zwijg", 905 | "definition": "be silent" 906 | }, 907 | { 908 | "id": 182, 909 | "word": "andy", 910 | "definition": "andy" 911 | }, 912 | { 913 | "id": 183, 914 | "word": "gooi", 915 | "definition": "throw" 916 | }, 917 | { 918 | "id": 184, 919 | "word": "geniet", 920 | "definition": "enjoy" 921 | }, 922 | { 923 | "id": 185, 924 | "word": "nee", 925 | "definition": "No" 926 | }, 927 | { 928 | "id": 186, 929 | "word": "paniek", 930 | "definition": "panic" 931 | }, 932 | { 933 | "id": 187, 934 | "word": "schoonheid", 935 | "definition": "beauty" 936 | }, 937 | { 938 | "id": 188, 939 | "word": "twaalf", 940 | "definition": "twelve" 941 | }, 942 | { 943 | "id": 189, 944 | "word": "groene", 945 | "definition": "green" 946 | }, 947 | { 948 | "id": 190, 949 | "word": "perfect", 950 | "definition": "perfect" 951 | }, 952 | { 953 | "id": 191, 954 | "word": "wed", 955 | "definition": "wed" 956 | }, 957 | { 958 | "id": 192, 959 | "word": "denkt", 960 | "definition": "think" 961 | }, 962 | { 963 | "id": 193, 964 | "word": "west", 965 | "definition": "west" 966 | }, 967 | { 968 | "id": 194, 969 | "word": "san", 970 | "definition": "san" 971 | }, 972 | { 973 | "id": 195, 974 | "word": "contract", 975 | "definition": "contract" 976 | }, 977 | { 978 | "id": 196, 979 | "word": "nick", 980 | "definition": "Nick" 981 | }, 982 | { 983 | "id": 197, 984 | "word": "me", 985 | "definition": "me" 986 | }, 987 | { 988 | "id": 198, 989 | "word": "tuurlijk", 990 | "definition": "of course" 991 | }, 992 | { 993 | "id": 199, 994 | "word": "zomaar", 995 | "definition": "No reason" 996 | }, 997 | { 998 | "id": 200, 999 | "word": "hond", 1000 | "definition": "dog" 1001 | }, 1002 | { 1003 | "id": 201, 1004 | "word": "kerstman", 1005 | "definition": "Santa Claus" 1006 | }, 1007 | { 1008 | "id": 202, 1009 | "word": "staan", 1010 | "definition": "stand" 1011 | }, 1012 | { 1013 | "id": 203, 1014 | "word": "bekend", 1015 | "definition": "known" 1016 | }, 1017 | { 1018 | "id": 204, 1019 | "word": "wensen", 1020 | "definition": "to wish" 1021 | }, 1022 | { 1023 | "id": 205, 1024 | "word": "richting", 1025 | "definition": "direction" 1026 | }, 1027 | { 1028 | "id": 206, 1029 | "word": "stappen", 1030 | "definition": "to step" 1031 | }, 1032 | { 1033 | "id": 207, 1034 | "word": "teken", 1035 | "definition": "sign" 1036 | }, 1037 | { 1038 | "id": 208, 1039 | "word": "engeland", 1040 | "definition": "England" 1041 | }, 1042 | { 1043 | "id": 209, 1044 | "word": "iedere", 1045 | "definition": "every" 1046 | }, 1047 | { 1048 | "id": 210, 1049 | "word": "noemen", 1050 | "definition": "to mention" 1051 | }, 1052 | { 1053 | "id": 211, 1054 | "word": "groter", 1055 | "definition": "taller" 1056 | }, 1057 | { 1058 | "id": 212, 1059 | "word": "vorig", 1060 | "definition": "last" 1061 | }, 1062 | { 1063 | "id": 213, 1064 | "word": "gauw", 1065 | "definition": "soon" 1066 | }, 1067 | { 1068 | "id": 214, 1069 | "word": "tegenwoordig", 1070 | "definition": "nowadays" 1071 | }, 1072 | { 1073 | "id": 215, 1074 | "word": "been", 1075 | "definition": "leg" 1076 | }, 1077 | { 1078 | "id": 216, 1079 | "word": "hield", 1080 | "definition": "held" 1081 | }, 1082 | { 1083 | "id": 217, 1084 | "word": "terug", 1085 | "definition": "back" 1086 | }, 1087 | { 1088 | "id": 218, 1089 | "word": "slecht", 1090 | "definition": "bad" 1091 | }, 1092 | { 1093 | "id": 219, 1094 | "word": "verhaal", 1095 | "definition": "story" 1096 | }, 1097 | { 1098 | "id": 220, 1099 | "word": "officier", 1100 | "definition": "officer" 1101 | }, 1102 | { 1103 | "id": 221, 1104 | "word": "drank", 1105 | "definition": "drink" 1106 | }, 1107 | { 1108 | "id": 222, 1109 | "word": "vrede", 1110 | "definition": "peace" 1111 | }, 1112 | { 1113 | "id": 223, 1114 | "word": "klanten", 1115 | "definition": "customers" 1116 | }, 1117 | { 1118 | "id": 224, 1119 | "word": "hoed", 1120 | "definition": "hat" 1121 | }, 1122 | { 1123 | "id": 225, 1124 | "word": "zorgen", 1125 | "definition": "to care" 1126 | }, 1127 | { 1128 | "id": 226, 1129 | "word": "gast", 1130 | "definition": "guest" 1131 | }, 1132 | { 1133 | "id": 227, 1134 | "word": "kapot", 1135 | "definition": "Broken" 1136 | }, 1137 | { 1138 | "id": 228, 1139 | "word": "keek", 1140 | "definition": "watched" 1141 | }, 1142 | { 1143 | "id": 229, 1144 | "word": "groot", 1145 | "definition": "big" 1146 | }, 1147 | { 1148 | "id": 230, 1149 | "word": "andere", 1150 | "definition": "Others" 1151 | }, 1152 | { 1153 | "id": 231, 1154 | "word": "keer", 1155 | "definition": "time" 1156 | }, 1157 | { 1158 | "id": 232, 1159 | "word": "ervan", 1160 | "definition": "it" 1161 | }, 1162 | { 1163 | "id": 233, 1164 | "word": "gevonden", 1165 | "definition": "found it" 1166 | }, 1167 | { 1168 | "id": 234, 1169 | "word": "aanval", 1170 | "definition": "attack" 1171 | }, 1172 | { 1173 | "id": 235, 1174 | "word": "lijst", 1175 | "definition": "list" 1176 | }, 1177 | { 1178 | "id": 236, 1179 | "word": "best", 1180 | "definition": "best" 1181 | }, 1182 | { 1183 | "id": 237, 1184 | "word": "vele", 1185 | "definition": "many" 1186 | }, 1187 | { 1188 | "id": 238, 1189 | "word": "peter", 1190 | "definition": "Peter" 1191 | }, 1192 | { 1193 | "id": 239, 1194 | "word": "moest", 1195 | "definition": "had to" 1196 | }, 1197 | { 1198 | "id": 240, 1199 | "word": "gooien", 1200 | "definition": "throw" 1201 | }, 1202 | { 1203 | "id": 241, 1204 | "word": "stuk", 1205 | "definition": "piece" 1206 | }, 1207 | { 1208 | "id": 242, 1209 | "word": "volk", 1210 | "definition": "people" 1211 | }, 1212 | { 1213 | "id": 243, 1214 | "word": "gelukkig", 1215 | "definition": "happy" 1216 | }, 1217 | { 1218 | "id": 244, 1219 | "word": "schelen", 1220 | "definition": "care" 1221 | }, 1222 | { 1223 | "id": 245, 1224 | "word": "kwalijk", 1225 | "definition": "ill" 1226 | }, 1227 | { 1228 | "id": 246, 1229 | "word": "gebied", 1230 | "definition": "area" 1231 | }, 1232 | { 1233 | "id": 247, 1234 | "word": "lachen", 1235 | "definition": "laugh" 1236 | }, 1237 | { 1238 | "id": 248, 1239 | "word": "half", 1240 | "definition": "half" 1241 | }, 1242 | { 1243 | "id": 249, 1244 | "word": "vrienden", 1245 | "definition": "friends" 1246 | }, 1247 | { 1248 | "id": 250, 1249 | "word": "sterren", 1250 | "definition": "stars" 1251 | }, 1252 | { 1253 | "id": 251, 1254 | "word": "bal", 1255 | "definition": "ball" 1256 | }, 1257 | { 1258 | "id": 252, 1259 | "word": "of", 1260 | "definition": "or" 1261 | }, 1262 | { 1263 | "id": 253, 1264 | "word": "vooruit", 1265 | "definition": "forward" 1266 | }, 1267 | { 1268 | "id": 254, 1269 | "word": "stukken", 1270 | "definition": "pieces" 1271 | }, 1272 | { 1273 | "id": 255, 1274 | "word": "ons", 1275 | "definition": "U.S" 1276 | }, 1277 | { 1278 | "id": 256, 1279 | "word": "kracht", 1280 | "definition": "power" 1281 | }, 1282 | { 1283 | "id": 257, 1284 | "word": "oplossen", 1285 | "definition": "to resolve" 1286 | }, 1287 | { 1288 | "id": 258, 1289 | "word": "anna", 1290 | "definition": "anna" 1291 | }, 1292 | { 1293 | "id": 259, 1294 | "word": "zichzelf", 1295 | "definition": "himself" 1296 | }, 1297 | { 1298 | "id": 260, 1299 | "word": "jake", 1300 | "definition": "jake" 1301 | }, 1302 | { 1303 | "id": 261, 1304 | "word": "afspraak", 1305 | "definition": "appointment" 1306 | }, 1307 | { 1308 | "id": 262, 1309 | "word": "eraf", 1310 | "definition": "off" 1311 | }, 1312 | { 1313 | "id": 263, 1314 | "word": "kun", 1315 | "definition": "you" 1316 | }, 1317 | { 1318 | "id": 264, 1319 | "word": "computer", 1320 | "definition": "computer" 1321 | }, 1322 | { 1323 | "id": 265, 1324 | "word": "politie", 1325 | "definition": "law enforcement" 1326 | }, 1327 | { 1328 | "id": 266, 1329 | "word": "juffrouw", 1330 | "definition": "miss" 1331 | }, 1332 | { 1333 | "id": 267, 1334 | "word": "af", 1335 | "definition": "down" 1336 | }, 1337 | { 1338 | "id": 268, 1339 | "word": "reet", 1340 | "definition": "crack" 1341 | }, 1342 | { 1343 | "id": 269, 1344 | "word": "johnny", 1345 | "definition": "Johnny" 1346 | }, 1347 | { 1348 | "id": 270, 1349 | "word": "welk", 1350 | "definition": "which" 1351 | }, 1352 | { 1353 | "id": 271, 1354 | "word": "vrijheid", 1355 | "definition": "freedom" 1356 | }, 1357 | { 1358 | "id": 272, 1359 | "word": "slechte", 1360 | "definition": "poor" 1361 | }, 1362 | { 1363 | "id": 273, 1364 | "word": "brug", 1365 | "definition": "bridge" 1366 | }, 1367 | { 1368 | "id": 274, 1369 | "word": "kalm", 1370 | "definition": "calm" 1371 | }, 1372 | { 1373 | "id": 275, 1374 | "word": "zelfmoord", 1375 | "definition": "suicide" 1376 | }, 1377 | { 1378 | "id": 276, 1379 | "word": "vuile", 1380 | "definition": "dirty" 1381 | }, 1382 | { 1383 | "id": 277, 1384 | "word": "verwacht", 1385 | "definition": "expected" 1386 | }, 1387 | { 1388 | "id": 278, 1389 | "word": "zocht", 1390 | "definition": "sought" 1391 | }, 1392 | { 1393 | "id": 279, 1394 | "word": "erbij", 1395 | "definition": "there" 1396 | }, 1397 | { 1398 | "id": 280, 1399 | "word": "hangt", 1400 | "definition": "depends" 1401 | }, 1402 | { 1403 | "id": 281, 1404 | "word": "gevecht", 1405 | "definition": "fight" 1406 | }, 1407 | { 1408 | "id": 282, 1409 | "word": "bureau", 1410 | "definition": "desk" 1411 | }, 1412 | { 1413 | "id": 283, 1414 | "word": "kom", 1415 | "definition": "bowl" 1416 | }, 1417 | { 1418 | "id": 284, 1419 | "word": "overkomen", 1420 | "definition": "befall" 1421 | }, 1422 | { 1423 | "id": 285, 1424 | "word": "verandert", 1425 | "definition": "changes" 1426 | }, 1427 | { 1428 | "id": 286, 1429 | "word": "vond", 1430 | "definition": "found" 1431 | }, 1432 | { 1433 | "id": 287, 1434 | "word": "pardon", 1435 | "definition": "excuse me" 1436 | }, 1437 | { 1438 | "id": 288, 1439 | "word": "meisjes", 1440 | "definition": "girls" 1441 | }, 1442 | { 1443 | "id": 289, 1444 | "word": "wou", 1445 | "definition": "wanted" 1446 | }, 1447 | { 1448 | "id": 290, 1449 | "word": "frank", 1450 | "definition": "frank" 1451 | }, 1452 | { 1453 | "id": 291, 1454 | "word": "leeftijd", 1455 | "definition": "age" 1456 | }, 1457 | { 1458 | "id": 292, 1459 | "word": "ruzie", 1460 | "definition": "fight" 1461 | }, 1462 | { 1463 | "id": 293, 1464 | "word": "bracht", 1465 | "definition": "brought" 1466 | }, 1467 | { 1468 | "id": 294, 1469 | "word": "prinses", 1470 | "definition": "princess" 1471 | }, 1472 | { 1473 | "id": 295, 1474 | "word": "wel", 1475 | "definition": "well" 1476 | }, 1477 | { 1478 | "id": 296, 1479 | "word": "deel", 1480 | "definition": "part" 1481 | }, 1482 | { 1483 | "id": 297, 1484 | "word": "drie", 1485 | "definition": "three" 1486 | }, 1487 | { 1488 | "id": 298, 1489 | "word": "dak", 1490 | "definition": "roof" 1491 | }, 1492 | { 1493 | "id": 299, 1494 | "word": "ogen", 1495 | "definition": "eyes" 1496 | }, 1497 | { 1498 | "id": 300, 1499 | "word": "gezocht", 1500 | "definition": "wanted" 1501 | }, 1502 | { 1503 | "id": 301, 1504 | "word": "koffer", 1505 | "definition": "Suitcase" 1506 | }, 1507 | { 1508 | "id": 302, 1509 | "word": "lieverd", 1510 | "definition": "darling" 1511 | }, 1512 | { 1513 | "id": 303, 1514 | "word": "snap", 1515 | "definition": "snap" 1516 | }, 1517 | { 1518 | "id": 304, 1519 | "word": "betere", 1520 | "definition": "better" 1521 | }, 1522 | { 1523 | "id": 305, 1524 | "word": "vandaag", 1525 | "definition": "today" 1526 | }, 1527 | { 1528 | "id": 306, 1529 | "word": "loopt", 1530 | "definition": "runs" 1531 | }, 1532 | { 1533 | "id": 307, 1534 | "word": "vriendelijk", 1535 | "definition": "friendly" 1536 | }, 1537 | { 1538 | "id": 308, 1539 | "word": "der", 1540 | "definition": "der" 1541 | }, 1542 | { 1543 | "id": 309, 1544 | "word": "geschreven", 1545 | "definition": "written" 1546 | }, 1547 | { 1548 | "id": 310, 1549 | "word": "bedacht", 1550 | "definition": "conceived" 1551 | }, 1552 | { 1553 | "id": 311, 1554 | "word": "indruk", 1555 | "definition": "impression" 1556 | }, 1557 | { 1558 | "id": 312, 1559 | "word": "leiding", 1560 | "definition": "conduit" 1561 | }, 1562 | { 1563 | "id": 313, 1564 | "word": "raar", 1565 | "definition": "weird" 1566 | }, 1567 | { 1568 | "id": 314, 1569 | "word": "beurt", 1570 | "definition": "turn" 1571 | }, 1572 | { 1573 | "id": 315, 1574 | "word": "geld", 1575 | "definition": "money" 1576 | }, 1577 | { 1578 | "id": 316, 1579 | "word": "elf", 1580 | "definition": "eleven" 1581 | }, 1582 | { 1583 | "id": 317, 1584 | "word": "hiermee", 1585 | "definition": "with this" 1586 | }, 1587 | { 1588 | "id": 318, 1589 | "word": "jezus", 1590 | "definition": "Jesus" 1591 | }, 1592 | { 1593 | "id": 319, 1594 | "word": "vingers", 1595 | "definition": "fingers" 1596 | }, 1597 | { 1598 | "id": 320, 1599 | "word": "echte", 1600 | "definition": "real" 1601 | }, 1602 | { 1603 | "id": 321, 1604 | "word": "komt", 1605 | "definition": "coming" 1606 | }, 1607 | { 1608 | "id": 322, 1609 | "word": "job", 1610 | "definition": "Job" 1611 | }, 1612 | { 1613 | "id": 323, 1614 | "word": "langs", 1615 | "definition": "along" 1616 | }, 1617 | { 1618 | "id": 324, 1619 | "word": "okay", 1620 | "definition": "Okay" 1621 | }, 1622 | { 1623 | "id": 325, 1624 | "word": "vijanden", 1625 | "definition": "enemies" 1626 | }, 1627 | { 1628 | "id": 326, 1629 | "word": "maan", 1630 | "definition": "Moon" 1631 | }, 1632 | { 1633 | "id": 327, 1634 | "word": "erover", 1635 | "definition": "about" 1636 | }, 1637 | { 1638 | "id": 328, 1639 | "word": "meteen", 1640 | "definition": "right away" 1641 | }, 1642 | { 1643 | "id": 329, 1644 | "word": "uitzoeken", 1645 | "definition": "investigate" 1646 | }, 1647 | { 1648 | "id": 330, 1649 | "word": "robert", 1650 | "definition": "robert" 1651 | }, 1652 | { 1653 | "id": 331, 1654 | "word": "mensen", 1655 | "definition": "people" 1656 | }, 1657 | { 1658 | "id": 332, 1659 | "word": "grapje", 1660 | "definition": "just kidding" 1661 | }, 1662 | { 1663 | "id": 333, 1664 | "word": "hulp", 1665 | "definition": "help" 1666 | }, 1667 | { 1668 | "id": 334, 1669 | "word": "daniel", 1670 | "definition": "daniel" 1671 | }, 1672 | { 1673 | "id": 335, 1674 | "word": "problemen", 1675 | "definition": "issues" 1676 | }, 1677 | { 1678 | "id": 336, 1679 | "word": "proces", 1680 | "definition": "process" 1681 | }, 1682 | { 1683 | "id": 337, 1684 | "word": "passen", 1685 | "definition": "to suit" 1686 | }, 1687 | { 1688 | "id": 338, 1689 | "word": "veranderd", 1690 | "definition": "changed" 1691 | }, 1692 | { 1693 | "id": 339, 1694 | "word": "hoewel", 1695 | "definition": "although" 1696 | }, 1697 | { 1698 | "id": 340, 1699 | "word": "ene", 1700 | "definition": "one" 1701 | }, 1702 | { 1703 | "id": 341, 1704 | "word": "dankbaar", 1705 | "definition": "grateful" 1706 | }, 1707 | { 1708 | "id": 342, 1709 | "word": "in", 1710 | "definition": "in" 1711 | }, 1712 | { 1713 | "id": 343, 1714 | "word": "rapport", 1715 | "definition": "report" 1716 | }, 1717 | { 1718 | "id": 344, 1719 | "word": "waarover", 1720 | "definition": "about what" 1721 | }, 1722 | { 1723 | "id": 345, 1724 | "word": "niks", 1725 | "definition": "nothing" 1726 | }, 1727 | { 1728 | "id": 346, 1729 | "word": "duur", 1730 | "definition": "expensive" 1731 | }, 1732 | { 1733 | "id": 347, 1734 | "word": "zak", 1735 | "definition": "bag" 1736 | }, 1737 | { 1738 | "id": 348, 1739 | "word": "vertrouwen", 1740 | "definition": "trust" 1741 | }, 1742 | { 1743 | "id": 349, 1744 | "word": "dans", 1745 | "definition": "dance" 1746 | }, 1747 | { 1748 | "id": 350, 1749 | "word": "waarheid", 1750 | "definition": "truth" 1751 | }, 1752 | { 1753 | "id": 351, 1754 | "word": "hoeven", 1755 | "definition": "hooves" 1756 | }, 1757 | { 1758 | "id": 352, 1759 | "word": "zoveel", 1760 | "definition": "this much" 1761 | }, 1762 | { 1763 | "id": 353, 1764 | "word": "behoorlijk", 1765 | "definition": "fairly" 1766 | }, 1767 | { 1768 | "id": 354, 1769 | "word": "leek", 1770 | "definition": "layman" 1771 | }, 1772 | { 1773 | "id": 355, 1774 | "word": "boven", 1775 | "definition": "above" 1776 | }, 1777 | { 1778 | "id": 356, 1779 | "word": "persoonlijk", 1780 | "definition": "in person" 1781 | }, 1782 | { 1783 | "id": 357, 1784 | "word": "helpen", 1785 | "definition": "help out" 1786 | }, 1787 | { 1788 | "id": 358, 1789 | "word": "cool", 1790 | "definition": "cool" 1791 | }, 1792 | { 1793 | "id": 359, 1794 | "word": "nooit", 1795 | "definition": "never" 1796 | }, 1797 | { 1798 | "id": 360, 1799 | "word": "mrs", 1800 | "definition": "mrs" 1801 | }, 1802 | { 1803 | "id": 361, 1804 | "word": "ergste", 1805 | "definition": "worst" 1806 | }, 1807 | { 1808 | "id": 362, 1809 | "word": "spreek", 1810 | "definition": "speak" 1811 | }, 1812 | { 1813 | "id": 363, 1814 | "word": "bestaan", 1815 | "definition": "to exist" 1816 | }, 1817 | { 1818 | "id": 364, 1819 | "word": "film", 1820 | "definition": "movie" 1821 | }, 1822 | { 1823 | "id": 365, 1824 | "word": "spel", 1825 | "definition": "game" 1826 | }, 1827 | { 1828 | "id": 366, 1829 | "word": "begon", 1830 | "definition": "began" 1831 | }, 1832 | { 1833 | "id": 367, 1834 | "word": "heerlijk", 1835 | "definition": "delicious" 1836 | }, 1837 | { 1838 | "id": 368, 1839 | "word": "jammer", 1840 | "definition": "Unfortunately" 1841 | }, 1842 | { 1843 | "id": 369, 1844 | "word": "springen", 1845 | "definition": "to jump" 1846 | }, 1847 | { 1848 | "id": 370, 1849 | "word": "helaas", 1850 | "definition": "unfortunately" 1851 | }, 1852 | { 1853 | "id": 371, 1854 | "word": "zingen", 1855 | "definition": "to sing" 1856 | }, 1857 | { 1858 | "id": 372, 1859 | "word": "ziek", 1860 | "definition": "ill" 1861 | }, 1862 | { 1863 | "id": 373, 1864 | "word": "trekken", 1865 | "definition": "to pull" 1866 | }, 1867 | { 1868 | "id": 374, 1869 | "word": "brian", 1870 | "definition": "brian" 1871 | }, 1872 | { 1873 | "id": 375, 1874 | "word": "city", 1875 | "definition": "City" 1876 | }, 1877 | { 1878 | "id": 376, 1879 | "word": "naartoe", 1880 | "definition": "more" 1881 | }, 1882 | { 1883 | "id": 377, 1884 | "word": "strijd", 1885 | "definition": "fight" 1886 | }, 1887 | { 1888 | "id": 378, 1889 | "word": "meneer", 1890 | "definition": "Mr." 1891 | }, 1892 | { 1893 | "id": 379, 1894 | "word": "gevoelens", 1895 | "definition": "feelings" 1896 | }, 1897 | { 1898 | "id": 380, 1899 | "word": "liefde", 1900 | "definition": "love" 1901 | }, 1902 | { 1903 | "id": 381, 1904 | "word": "toevallig", 1905 | "definition": "accidentally" 1906 | }, 1907 | { 1908 | "id": 382, 1909 | "word": "raken", 1910 | "definition": "touch" 1911 | }, 1912 | { 1913 | "id": 383, 1914 | "word": "geprobeerd", 1915 | "definition": "tried" 1916 | }, 1917 | { 1918 | "id": 384, 1919 | "word": "bed", 1920 | "definition": "bed" 1921 | }, 1922 | { 1923 | "id": 385, 1924 | "word": "extra", 1925 | "definition": "additional" 1926 | }, 1927 | { 1928 | "id": 386, 1929 | "word": "hoor", 1930 | "definition": "hear" 1931 | }, 1932 | { 1933 | "id": 387, 1934 | "word": "uitleggen", 1935 | "definition": "to explain" 1936 | }, 1937 | { 1938 | "id": 388, 1939 | "word": "verdachte", 1940 | "definition": "suspect" 1941 | }, 1942 | { 1943 | "id": 389, 1944 | "word": "hoe", 1945 | "definition": "how" 1946 | }, 1947 | { 1948 | "id": 390, 1949 | "word": "feest", 1950 | "definition": "party" 1951 | }, 1952 | { 1953 | "id": 391, 1954 | "word": "ziet", 1955 | "definition": "sees" 1956 | }, 1957 | { 1958 | "id": 392, 1959 | "word": "vernietigen", 1960 | "definition": "destroy" 1961 | }, 1962 | { 1963 | "id": 393, 1964 | "word": "kussen", 1965 | "definition": "To kiss" 1966 | }, 1967 | { 1968 | "id": 394, 1969 | "word": "wijs", 1970 | "definition": "wise" 1971 | }, 1972 | { 1973 | "id": 395, 1974 | "word": "hoog", 1975 | "definition": "high" 1976 | }, 1977 | { 1978 | "id": 396, 1979 | "word": "kunt", 1980 | "definition": "can" 1981 | }, 1982 | { 1983 | "id": 397, 1984 | "word": "vuur", 1985 | "definition": "fire" 1986 | }, 1987 | { 1988 | "id": 398, 1989 | "word": "speelde", 1990 | "definition": "played" 1991 | }, 1992 | { 1993 | "id": 399, 1994 | "word": "tegenover", 1995 | "definition": "opposite" 1996 | }, 1997 | { 1998 | "id": 400, 1999 | "word": "gaten", 2000 | "definition": "holes" 2001 | }, 2002 | { 2003 | "id": 401, 2004 | "word": "misschien", 2005 | "definition": "perhaps" 2006 | }, 2007 | { 2008 | "id": 402, 2009 | "word": "kind", 2010 | "definition": "child" 2011 | }, 2012 | { 2013 | "id": 403, 2014 | "word": "krachten", 2015 | "definition": "forces" 2016 | }, 2017 | { 2018 | "id": 404, 2019 | "word": "kilo", 2020 | "definition": "kilo" 2021 | }, 2022 | { 2023 | "id": 405, 2024 | "word": "manieren", 2025 | "definition": "manners" 2026 | }, 2027 | { 2028 | "id": 406, 2029 | "word": "koud", 2030 | "definition": "cold" 2031 | }, 2032 | { 2033 | "id": 407, 2034 | "word": "koken", 2035 | "definition": "Cook" 2036 | }, 2037 | { 2038 | "id": 408, 2039 | "word": "maat", 2040 | "definition": "measure" 2041 | }, 2042 | { 2043 | "id": 409, 2044 | "word": "leg", 2045 | "definition": "put" 2046 | }, 2047 | { 2048 | "id": 410, 2049 | "word": "zolang", 2050 | "definition": "so long" 2051 | }, 2052 | { 2053 | "id": 411, 2054 | "word": "spijt", 2055 | "definition": "regret" 2056 | }, 2057 | { 2058 | "id": 412, 2059 | "word": "rotzooi", 2060 | "definition": "shit" 2061 | }, 2062 | { 2063 | "id": 413, 2064 | "word": "coach", 2065 | "definition": "coach" 2066 | }, 2067 | { 2068 | "id": 414, 2069 | "word": "we", 2070 | "definition": "we" 2071 | }, 2072 | { 2073 | "id": 415, 2074 | "word": "ray", 2075 | "definition": "ray" 2076 | }, 2077 | { 2078 | "id": 416, 2079 | "word": "eeuwig", 2080 | "definition": "everlasting" 2081 | }, 2082 | { 2083 | "id": 417, 2084 | "word": "koop", 2085 | "definition": "buy" 2086 | }, 2087 | { 2088 | "id": 418, 2089 | "word": "aantal", 2090 | "definition": "number" 2091 | }, 2092 | { 2093 | "id": 419, 2094 | "word": "eigenaar", 2095 | "definition": "owner" 2096 | }, 2097 | { 2098 | "id": 420, 2099 | "word": "rekening", 2100 | "definition": "bill" 2101 | }, 2102 | { 2103 | "id": 421, 2104 | "word": "publiek", 2105 | "definition": "audience" 2106 | }, 2107 | { 2108 | "id": 422, 2109 | "word": "gekregen", 2110 | "definition": "got" 2111 | }, 2112 | { 2113 | "id": 423, 2114 | "word": "oorlog", 2115 | "definition": "war" 2116 | }, 2117 | { 2118 | "id": 424, 2119 | "word": "ervoor", 2120 | "definition": "before" 2121 | }, 2122 | { 2123 | "id": 425, 2124 | "word": "dan", 2125 | "definition": "then" 2126 | }, 2127 | { 2128 | "id": 426, 2129 | "word": "krijgt", 2130 | "definition": "gets" 2131 | }, 2132 | { 2133 | "id": 427, 2134 | "word": "baan", 2135 | "definition": "job" 2136 | }, 2137 | { 2138 | "id": 428, 2139 | "word": "deur", 2140 | "definition": "door" 2141 | }, 2142 | { 2143 | "id": 429, 2144 | "word": "schreef", 2145 | "definition": "wrote" 2146 | }, 2147 | { 2148 | "id": 430, 2149 | "word": "diep", 2150 | "definition": "deep" 2151 | }, 2152 | { 2153 | "id": 431, 2154 | "word": "chef", 2155 | "definition": "chef" 2156 | }, 2157 | { 2158 | "id": 432, 2159 | "word": "vertelde", 2160 | "definition": "told" 2161 | }, 2162 | { 2163 | "id": 433, 2164 | "word": "leef", 2165 | "definition": "live" 2166 | }, 2167 | { 2168 | "id": 434, 2169 | "word": "generaal", 2170 | "definition": "general" 2171 | }, 2172 | { 2173 | "id": 435, 2174 | "word": "erachter", 2175 | "definition": "out" 2176 | }, 2177 | { 2178 | "id": 436, 2179 | "word": "last", 2180 | "definition": "load" 2181 | }, 2182 | { 2183 | "id": 437, 2184 | "word": "zwaard", 2185 | "definition": "sword" 2186 | }, 2187 | { 2188 | "id": 438, 2189 | "word": "wonder", 2190 | "definition": "miracle" 2191 | }, 2192 | { 2193 | "id": 439, 2194 | "word": "chicago", 2195 | "definition": "chicago" 2196 | }, 2197 | { 2198 | "id": 440, 2199 | "word": "volgende", 2200 | "definition": "next one" 2201 | }, 2202 | { 2203 | "id": 441, 2204 | "word": "enige", 2205 | "definition": "some" 2206 | }, 2207 | { 2208 | "id": 442, 2209 | "word": "op", 2210 | "definition": "on" 2211 | }, 2212 | { 2213 | "id": 443, 2214 | "word": "z", 2215 | "definition": "z" 2216 | }, 2217 | { 2218 | "id": 444, 2219 | "word": "des", 2220 | "definition": "des" 2221 | }, 2222 | { 2223 | "id": 445, 2224 | "word": "geslapen", 2225 | "definition": "slept" 2226 | }, 2227 | { 2228 | "id": 446, 2229 | "word": "trut", 2230 | "definition": "bitch" 2231 | }, 2232 | { 2233 | "id": 447, 2234 | "word": "o", 2235 | "definition": "O" 2236 | }, 2237 | { 2238 | "id": 448, 2239 | "word": "will", 2240 | "definition": "will" 2241 | }, 2242 | { 2243 | "id": 449, 2244 | "word": "speelt", 2245 | "definition": "plays" 2246 | }, 2247 | { 2248 | "id": 450, 2249 | "word": "verschillende", 2250 | "definition": "various" 2251 | }, 2252 | { 2253 | "id": 451, 2254 | "word": "eén", 2255 | "definition": "a" 2256 | }, 2257 | { 2258 | "id": 452, 2259 | "word": "geen", 2260 | "definition": "no" 2261 | }, 2262 | { 2263 | "id": 453, 2264 | "word": "machine", 2265 | "definition": "machine" 2266 | }, 2267 | { 2268 | "id": 454, 2269 | "word": "verloren", 2270 | "definition": "lost" 2271 | }, 2272 | { 2273 | "id": 455, 2274 | "word": "opnieuw", 2275 | "definition": "again" 2276 | }, 2277 | { 2278 | "id": 456, 2279 | "word": "yeah", 2280 | "definition": "yeah" 2281 | }, 2282 | { 2283 | "id": 457, 2284 | "word": "gebeurt", 2285 | "definition": "happens" 2286 | }, 2287 | { 2288 | "id": 458, 2289 | "word": "tenzij", 2290 | "definition": "unless" 2291 | }, 2292 | { 2293 | "id": 459, 2294 | "word": "kwamen", 2295 | "definition": "came" 2296 | }, 2297 | { 2298 | "id": 460, 2299 | "word": "vast", 2300 | "definition": "fixed" 2301 | }, 2302 | { 2303 | "id": 461, 2304 | "word": "iemand", 2305 | "definition": "someone" 2306 | }, 2307 | { 2308 | "id": 462, 2309 | "word": "pas", 2310 | "definition": "only" 2311 | }, 2312 | { 2313 | "id": 463, 2314 | "word": "bill", 2315 | "definition": "Bill" 2316 | }, 2317 | { 2318 | "id": 464, 2319 | "word": "bank", 2320 | "definition": "Bank" 2321 | }, 2322 | { 2323 | "id": 465, 2324 | "word": "aardige", 2325 | "definition": "nice" 2326 | }, 2327 | { 2328 | "id": 466, 2329 | "word": "motor", 2330 | "definition": "engine" 2331 | }, 2332 | { 2333 | "id": 467, 2334 | "word": "gisteren", 2335 | "definition": "yesterday" 2336 | }, 2337 | { 2338 | "id": 468, 2339 | "word": "stel", 2340 | "definition": "set" 2341 | }, 2342 | { 2343 | "id": 469, 2344 | "word": "broek", 2345 | "definition": "pants" 2346 | }, 2347 | { 2348 | "id": 470, 2349 | "word": "klinkt", 2350 | "definition": "sounds" 2351 | }, 2352 | { 2353 | "id": 471, 2354 | "word": "persoonlijke", 2355 | "definition": "personal" 2356 | }, 2357 | { 2358 | "id": 472, 2359 | "word": "schoot", 2360 | "definition": "lap" 2361 | }, 2362 | { 2363 | "id": 473, 2364 | "word": "vanaf", 2365 | "definition": "from" 2366 | }, 2367 | { 2368 | "id": 474, 2369 | "word": "draai", 2370 | "definition": "twist" 2371 | }, 2372 | { 2373 | "id": 475, 2374 | "word": "jongen", 2375 | "definition": "boy" 2376 | }, 2377 | { 2378 | "id": 476, 2379 | "word": "beide", 2380 | "definition": "both" 2381 | }, 2382 | { 2383 | "id": 477, 2384 | "word": "directeur", 2385 | "definition": "director" 2386 | }, 2387 | { 2388 | "id": 478, 2389 | "word": "verteld", 2390 | "definition": "told" 2391 | }, 2392 | { 2393 | "id": 479, 2394 | "word": "dromen", 2395 | "definition": "to dream" 2396 | }, 2397 | { 2398 | "id": 480, 2399 | "word": "kent", 2400 | "definition": "knows" 2401 | }, 2402 | { 2403 | "id": 481, 2404 | "word": "joey", 2405 | "definition": "Joey" 2406 | }, 2407 | { 2408 | "id": 482, 2409 | "word": "draait", 2410 | "definition": "runs" 2411 | }, 2412 | { 2413 | "id": 483, 2414 | "word": "zal", 2415 | "definition": "shall" 2416 | }, 2417 | { 2418 | "id": 484, 2419 | "word": "handen", 2420 | "definition": "hands" 2421 | }, 2422 | { 2423 | "id": 485, 2424 | "word": "monster", 2425 | "definition": "sample" 2426 | }, 2427 | { 2428 | "id": 486, 2429 | "word": "gewerkt", 2430 | "definition": "worked" 2431 | }, 2432 | { 2433 | "id": 487, 2434 | "word": "meestal", 2435 | "definition": "mostly" 2436 | }, 2437 | { 2438 | "id": 488, 2439 | "word": "gedrag", 2440 | "definition": "behaviour" 2441 | }, 2442 | { 2443 | "id": 489, 2444 | "word": "schrijf", 2445 | "definition": "write" 2446 | }, 2447 | { 2448 | "id": 490, 2449 | "word": "antwoord", 2450 | "definition": "answer" 2451 | }, 2452 | { 2453 | "id": 491, 2454 | "word": "ongelooflijk", 2455 | "definition": "incredible" 2456 | }, 2457 | { 2458 | "id": 492, 2459 | "word": "zuster", 2460 | "definition": "sister" 2461 | }, 2462 | { 2463 | "id": 493, 2464 | "word": "schat", 2465 | "definition": "treasure" 2466 | }, 2467 | { 2468 | "id": 494, 2469 | "word": "bewijs", 2470 | "definition": "proof" 2471 | }, 2472 | { 2473 | "id": 495, 2474 | "word": "dr", 2475 | "definition": "dr" 2476 | }, 2477 | { 2478 | "id": 496, 2479 | "word": "fbi", 2480 | "definition": "fbi" 2481 | }, 2482 | { 2483 | "id": 497, 2484 | "word": "volledig", 2485 | "definition": "fully" 2486 | }, 2487 | { 2488 | "id": 498, 2489 | "word": "lichaam", 2490 | "definition": "body" 2491 | }, 2492 | { 2493 | "id": 499, 2494 | "word": "punten", 2495 | "definition": "points" 2496 | }, 2497 | { 2498 | "id": 500, 2499 | "word": "zaken", 2500 | "definition": "Affairs" 2501 | } 2502 | ] 2503 | -------------------------------------------------------------------------------- /data/french/words.json: -------------------------------------------------------------------------------- 1 | [ 2 | { "id": 1, "word": "amour", "definition": "love" }, 3 | { "id": 2, "word": "ami", "definition": "friend" }, 4 | { "id": 3, "word": "école", "definition": "school" }, 5 | { "id": 4, "word": "livre", "definition": "book" }, 6 | { "id": 5, "word": "ordinateur", "definition": "computer" }, 7 | { "id": 6, "word": "famille", "definition": "family" }, 8 | { "id": 7, "word": "travail", "definition": "work" }, 9 | { "id": 8, "word": "bonheur", "definition": "happiness" }, 10 | { "id": 9, "word": "eau", "definition": "water" }, 11 | { "id": 10, "word": "nourriture", "definition": "food" }, 12 | { "id": 11, "word": "voiture", "definition": "car" }, 13 | { "id": 12, "word": "film", "definition": "movie" }, 14 | { "id": 13, "word": "musique", "definition": "music" }, 15 | { "id": 14, "word": "ville", "definition": "city" }, 16 | { "id": 15, "word": "voyage", "definition": "travel" }, 17 | { "id": 16, "word": "santé", "definition": "health" }, 18 | { "id": 17, "word": "exercice", "definition": "exercise" }, 19 | { "id": 18, "word": "enseignant", "definition": "teacher" }, 20 | { "id": 19, "word": "élève", "definition": "student" }, 21 | { "id": 20, "word": "téléphone", "definition": "telephone" }, 22 | { "id": 21, "word": "maison", "definition": "house" }, 23 | { "id": 22, "word": "porte", "definition": "door" }, 24 | { "id": 23, "word": "fenêtre", "definition": "window" }, 25 | { "id": 24, "word": "chaise", "definition": "chair" }, 26 | { "id": 25, "word": "table", "definition": "table" }, 27 | { "id": 26, "word": "soupe", "definition": "soup" }, 28 | { "id": 27, "word": "pain", "definition": "bread" }, 29 | { "id": 28, "word": "lait", "definition": "milk" }, 30 | { "id": 29, "word": "fruit", "definition": "fruit" }, 31 | { "id": 30, "word": "légume", "definition": "vegetable" }, 32 | { "id": 31, "word": "enfant", "definition": "child" }, 33 | { "id": 32, "word": "adulte", "definition": "adult" }, 34 | { "id": 33, "word": "étoile", "definition": "star" }, 35 | { "id": 34, "word": "lune", "definition": "moon" }, 36 | { "id": 35, "word": "soleil", "definition": "sun" }, 37 | { "id": 36, "word": "nuage", "definition": "cloud" }, 38 | { "id": 37, "word": "pluie", "definition": "rain" }, 39 | { "id": 38, "word": "vent", "definition": "wind" }, 40 | { "id": 39, "word": "neige", "definition": "snow" }, 41 | { "id": 40, "word": "mer", "definition": "sea" }, 42 | { "id": 41, "word": "montagne", "definition": "mountain" }, 43 | { "id": 42, "word": "rivière", "definition": "river" }, 44 | { "id": 43, "word": "lac", "definition": "lake" }, 45 | { "id": 44, "word": "plage", "definition": "beach" }, 46 | { "id": 45, "word": "forêt", "definition": "forest" }, 47 | { "id": 46, "word": "désert", "definition": "desert" }, 48 | { "id": 47, "word": "île", "definition": "island" }, 49 | { "id": 48, "word": "village", "definition": "village" }, 50 | { "id": 49, "word": "citoyen", "definition": "citizen" }, 51 | { "id": 50, "word": "gens", "definition": "people" } 52 | ] 53 | -------------------------------------------------------------------------------- /data/japanese/words.json: -------------------------------------------------------------------------------- 1 | [ 2 | { "id": 1, "word": "こんにちは", "definition": "Hello" }, 3 | { "id": 2, "word": "さようなら", "definition": "Goodbye" }, 4 | { "id": 3, "word": "ありがとう", "definition": "Thank you" }, 5 | { "id": 4, "word": "はい", "definition": "Yes" }, 6 | { "id": 5, "word": "いいえ", "definition": "No" }, 7 | { "id": 6, "word": "おはよう", "definition": "Good morning" }, 8 | { "id": 7, "word": "こんばんは", "definition": "Good evening" }, 9 | { "id": 8, "word": "おやすみ", "definition": "Good night" }, 10 | { "id": 9, "word": "すみません", "definition": "Excuse me" }, 11 | { "id": 10, "word": "どういたしまして", "definition": "You're welcome" }, 12 | { "id": 11, "word": "はい、そうです", "definition": "Yes, that's right" }, 13 | { "id": 12, "word": "いいえ、違います", "definition": "No, that's wrong" }, 14 | { "id": 13, "word": "お元気ですか", "definition": "How are you?" }, 15 | { "id": 14, "word": "元気です", "definition": "I am fine" }, 16 | { "id": 15, "word": "お名前は何ですか", "definition": "What is your name?" }, 17 | { "id": 16, "word": "私の名前は", "definition": "My name is" }, 18 | { "id": 17, "word": "どこですか", "definition": "Where is it?" }, 19 | { "id": 18, "word": "ここ", "definition": "Here" }, 20 | { "id": 19, "word": "そこ", "definition": "There" }, 21 | { "id": 20, "word": "あそこ", "definition": "Over there" }, 22 | { "id": 21, "word": "何時ですか", "definition": "What time is it?" }, 23 | { "id": 22, "word": "今", "definition": "Now" }, 24 | { "id": 23, "word": "朝", "definition": "Morning" }, 25 | { "id": 24, "word": "昼", "definition": "Afternoon" }, 26 | { "id": 25, "word": "夜", "definition": "Night" }, 27 | { "id": 26, "word": "月曜日", "definition": "Monday" }, 28 | { "id": 27, "word": "火曜日", "definition": "Tuesday" }, 29 | { "id": 28, "word": "水曜日", "definition": "Wednesday" }, 30 | { "id": 29, "word": "木曜日", "definition": "Thursday" }, 31 | { "id": 30, "word": "金曜日", "definition": "Friday" }, 32 | { "id": 31, "word": "土曜日", "definition": "Saturday" }, 33 | { "id": 32, "word": "日曜日", "definition": "Sunday" }, 34 | { "id": 33, "word": "春", "definition": "Spring" }, 35 | { "id": 34, "word": "夏", "definition": "Summer" }, 36 | { "id": 35, "word": "秋", "definition": "Autumn" }, 37 | { "id": 36, "word": "冬", "definition": "Winter" }, 38 | { "id": 37, "word": "天気", "definition": "Weather" }, 39 | { "id": 38, "word": "晴れ", "definition": "Sunny" }, 40 | { "id": 39, "word": "雨", "definition": "Rain" }, 41 | { "id": 40, "word": "雪", "definition": "Snow" }, 42 | { "id": 41, "word": "風", "definition": "Wind" }, 43 | { "id": 42, "word": "雲", "definition": "Cloud" }, 44 | { "id": 43, "word": "気温", "definition": "Temperature" }, 45 | { "id": 44, "word": "寒い", "definition": "Cold" }, 46 | { "id": 45, "word": "暑い", "definition": "Hot" }, 47 | { "id": 46, "word": "涼しい", "definition": "Cool" }, 48 | { "id": 47, "word": "暖かい", "definition": "Warm" }, 49 | { "id": 48, "word": "食べる", "definition": "To eat" }, 50 | { "id": 49, "word": "飲む", "definition": "To drink" }, 51 | { "id": 50, "word": "見る", "definition": "To see" }, 52 | { "id": 51, "word": "聞く", "definition": "To listen" }, 53 | { "id": 52, "word": "話す", "definition": "To speak" }, 54 | { "id": 53, "word": "読む", "definition": "To read" }, 55 | { "id": 54, "word": "書く", "definition": "To write" }, 56 | { "id": 55, "word": "行く", "definition": "To go" }, 57 | { "id": 56, "word": "来る", "definition": "To come" }, 58 | { "id": 57, "word": "買う", "definition": "To buy" }, 59 | { "id": 58, "word": "売る", "definition": "To sell" }, 60 | { "id": 59, "word": "作る", "definition": "To make" }, 61 | { "id": 60, "word": "使う", "definition": "To use" }, 62 | { "id": 61, "word": "遊ぶ", "definition": "To play" }, 63 | { "id": 62, "word": "働く", "definition": "To work" }, 64 | { "id": 63, "word": "休む", "definition": "To rest" }, 65 | { "id": 64, "word": "学ぶ", "definition": "To learn" }, 66 | { "id": 65, "word": "教える", "definition": "To teach" }, 67 | { "id": 66, "word": "知る", "definition": "To know" }, 68 | { "id": 67, "word": "思う", "definition": "To think" }, 69 | { "id": 68, "word": "感じる", "definition": "To feel" }, 70 | { "id": 69, "word": "信じる", "definition": "To believe" }, 71 | { "id": 70, "word": "待つ", "definition": "To wait" }, 72 | { "id": 71, "word": "走る", "definition": "To run" }, 73 | { "id": 72, "word": "泳ぐ", "definition": "To swim" }, 74 | { "id": 73, "word": "飛ぶ", "definition": "To fly" }, 75 | { "id": 74, "word": "乗る", "definition": "To ride" }, 76 | { "id": 75, "word": "降りる", "definition": "To get off" }, 77 | { "id": 76, "word": "入る", "definition": "To enter" }, 78 | { "id": 77, "word": "出る", "definition": "To exit" }, 79 | { "id": 78, "word": "見る", "definition": "To watch" }, 80 | { "id": 79, "word": "聞こえる", "definition": "To be heard" }, 81 | { "id": 80, "word": "話せる", "definition": "To be able to speak" }, 82 | { "id": 81, "word": "知っている", "definition": "To know" }, 83 | { "id": 82, "word": "理解する", "definition": "To understand" }, 84 | { "id": 83, "word": "忘れる", "definition": "To forget" }, 85 | { "id": 84, "word": "思い出す", "definition": "To remember" }, 86 | { "id": 85, "word": "選ぶ", "definition": "To choose" }, 87 | { "id": 86, "word": "決める", "definition": "To decide" }, 88 | { "id": 87, "word": "始める", "definition": "To start" }, 89 | { "id": 88, "word": "終わる", "definition": "To finish" }, 90 | { "id": 89, "word": "続ける", "definition": "To continue" }, 91 | { "id": 90, "word": "変える", "definition": "To change" }, 92 | { "id": 91, "word": "直す", "definition": "To fix" }, 93 | { "id": 92, "word": "選択する", "definition": "To select" }, 94 | { "id": 93, "word": "計画する", "definition": "To plan" }, 95 | { "id": 94, "word": "準備する", "definition": "To prepare" }, 96 | { "id": 95, "word": "掃除する", "definition": "To clean" }, 97 | { "id": 96, "word": "洗う", "definition": "To wash" }, 98 | { "id": 97, "word": "料理する", "definition": "To cook" }, 99 | { "id": 98, "word": "食事する", "definition": "To dine" }, 100 | { "id": 99, "word": "運転する", "definition": "To drive" }, 101 | { "id": 100, "word": "旅行する", "definition": "To travel" }, 102 | { "id": 101, "word": "遊びに行く", "definition": "To go out to play" }, 103 | { "id": 102, "word": "買い物する", "definition": "To go shopping" }, 104 | { "id": 103, "word": "散歩する", "definition": "To take a walk" }, 105 | { "id": 104, "word": "運動する", "definition": "To exercise" }, 106 | { "id": 105, "word": "勉強する", "definition": "To study" }, 107 | { "id": 106, "word": "仕事をする", "definition": "To work" }, 108 | { "id": 107, "word": "休暇を取る", "definition": "To take a vacation" }, 109 | { "id": 108, "word": "遊ぶ", "definition": "To have fun" }, 110 | { "id": 109, "word": "楽しむ", "definition": "To enjoy" }, 111 | { "id": 110, "word": "笑う", "definition": "To laugh" }, 112 | { "id": 111, "word": "泣く", "definition": "To cry" }, 113 | { "id": 112, "word": "怒る", "definition": "To get angry" }, 114 | { "id": 113, "word": "驚く", "definition": "To be surprised" }, 115 | { "id": 114, "word": "喜ぶ", "definition": "To be happy" }, 116 | { "id": 115, "word": "悲しむ", "definition": "To be sad" }, 117 | { "id": 116, "word": "愛する", "definition": "To love" }, 118 | { "id": 117, "word": "嫌う", "definition": "To hate" }, 119 | { "id": 118, "word": "信じる", "definition": "To trust" }, 120 | { "id": 119, "word": "疑う", "definition": "To doubt" }, 121 | { "id": 120, "word": "助ける", "definition": "To help" }, 122 | { "id": 121, "word": "支える", "definition": "To support" }, 123 | { "id": 122, "word": "守る", "definition": "To protect" }, 124 | { "id": 123, "word": "攻撃する", "definition": "To attack" }, 125 | { "id": 124, "word": "戦う", "definition": "To fight" }, 126 | { "id": 125, "word": "勝つ", "definition": "To win" }, 127 | { "id": 126, "word": "負ける", "definition": "To lose" }, 128 | { "id": 127, "word": "競争する", "definition": "To compete" }, 129 | { "id": 128, "word": "協力する", "definition": "To cooperate" }, 130 | { "id": 129, "word": "約束する", "definition": "To promise" }, 131 | { "id": 130, "word": "信頼する", "definition": "To rely on" }, 132 | { "id": 131, "word": "感謝する", "definition": "To appreciate" }, 133 | { "id": 132, "word": "謝る", "definition": "To apologize" }, 134 | { "id": 133, "word": "許す", "definition": "To forgive" }, 135 | { "id": 134, "word": "理解する", "definition": "To comprehend" }, 136 | { "id": 135, "word": "説明する", "definition": "To explain" }, 137 | { "id": 136, "word": "示す", "definition": "To show" }, 138 | { "id": 137, "word": "教える", "definition": "To inform" }, 139 | { "id": 138, "word": "伝える", "definition": "To convey" }, 140 | { "id": 139, "word": "表現する", "definition": "To express" }, 141 | { "id": 140, "word": "描く", "definition": "To draw" }, 142 | { "id": 141, "word": "作成する", "definition": "To create" }, 143 | { "id": 142, "word": "発表する", "definition": "To present" }, 144 | { "id": 143, "word": "発見する", "definition": "To discover" }, 145 | { "id": 144, "word": "発展する", "definition": "To develop" }, 146 | { "id": 145, "word": "進む", "definition": "To advance" }, 147 | { "id": 146, "word": "成長する", "definition": "To grow" }, 148 | { "id": 147, "word": "変化する", "definition": "To change" }, 149 | { "id": 148, "word": "進化する", "definition": "To evolve" }, 150 | { "id": 149, "word": "改善する", "definition": "To improve" }, 151 | { "id": 150, "word": "修正する", "definition": "To correct" }, 152 | { "id": 151, "word": "更新する", "definition": "To update" }, 153 | { "id": 152, "word": "調整する", "definition": "To adjust" }, 154 | { "id": 153, "word": "整理する", "definition": "To organize" }, 155 | { "id": 154, "word": "計画する", "definition": "To plan" }, 156 | { "id": 155, "word": "準備する", "definition": "To prepare" }, 157 | { "id": 156, "word": "実行する", "definition": "To execute" }, 158 | { "id": 157, "word": "確認する", "definition": "To confirm" }, 159 | { "id": 158, "word": "評価する", "definition": "To evaluate" }, 160 | { "id": 159, "word": "分析する", "definition": "To analyze" }, 161 | { "id": 160, "word": "調査する", "definition": "To investigate" }, 162 | { "id": 161, "word": "研究する", "definition": "To research" }, 163 | { "id": 162, "word": "発表する", "definition": "To announce" }, 164 | { "id": 163, "word": "報告する", "definition": "To report" }, 165 | { "id": 164, "word": "記録する", "definition": "To record" }, 166 | { "id": 165, "word": "保存する", "definition": "To save" }, 167 | { "id": 166, "word": "共有する", "definition": "To share" }, 168 | { "id": 167, "word": "配布する", "definition": "To distribute" }, 169 | { "id": 168, "word": "提供する", "definition": "To provide" }, 170 | { "id": 169, "word": "支援する", "definition": "To assist" }, 171 | { "id": 170, "word": "協力する", "definition": "To collaborate" }, 172 | { "id": 171, "word": "参加する", "definition": "To participate" }, 173 | { "id": 172, "word": "出席する", "definition": "To attend" }, 174 | { "id": 173, "word": "退席する", "definition": "To leave" }, 175 | { "id": 174, "word": "連絡する", "definition": "To contact" }, 176 | { "id": 175, "word": "相談する", "definition": "To consult" }, 177 | { "id": 176, "word": "提案する", "definition": "To suggest" }, 178 | { "id": 177, "word": "依頼する", "definition": "To request" }, 179 | { "id": 178, "word": "承認する", "definition": "To approve" }, 180 | { "id": 179, "word": "拒否する", "definition": "To reject" }, 181 | { "id": 180, "word": "確認する", "definition": "To verify" }, 182 | { "id": 181, "word": "承諾する", "definition": "To consent" }, 183 | { "id": 182, "word": "約束する", "definition": "To promise" }, 184 | { "id": 183, "word": "契約する", "definition": "To contract" }, 185 | { "id": 184, "word": "解決する", "definition": "To resolve" }, 186 | { "id": 185, "word": "解決策", "definition": "Solution" }, 187 | { "id": 186, "word": "問題", "definition": "Problem" }, 188 | { "id": 187, "word": "課題", "definition": "Challenge" }, 189 | { "id": 188, "word": "目標", "definition": "Goal" }, 190 | { "id": 189, "word": "目的", "definition": "Objective" }, 191 | { "id": 190, "word": "計画", "definition": "Plan" }, 192 | { "id": 191, "word": "戦略", "definition": "Strategy" }, 193 | { "id": 192, "word": "方針", "definition": "Policy" }, 194 | { "id": 193, "word": "手段", "definition": "Means" }, 195 | { "id": 194, "word": "方法", "definition": "Method" }, 196 | { "id": 195, "word": "技術", "definition": "Technology" }, 197 | { "id": 196, "word": "知識", "definition": "Knowledge" }, 198 | { "id": 197, "word": "情報", "definition": "Information" }, 199 | { "id": 198, "word": "データ", "definition": "Data" }, 200 | { "id": 199, "word": "分析", "definition": "Analysis" }, 201 | { "id": 200, "word": "結果", "definition": "Result" }, 202 | { "id": 201, "word": "成果", "definition": "Achievement" }, 203 | { "id": 202, "word": "評価", "definition": "Evaluation" }, 204 | { "id": 203, "word": "改善", "definition": "Improvement" }, 205 | { "id": 204, "word": "進展", "definition": "Progress" }, 206 | { "id": 205, "word": "発展", "definition": "Development" }, 207 | { "id": 206, "word": "成長", "definition": "Growth" }, 208 | { "id": 207, "word": "変化", "definition": "Change" }, 209 | { "id": 208, "word": "進化", "definition": "Evolution" }, 210 | { "id": 209, "word": "革新", "definition": "Innovation" }, 211 | { "id": 210, "word": "創造", "definition": "Creation" }, 212 | { "id": 211, "word": "発明", "definition": "Invention" }, 213 | { "id": 212, "word": "発見", "definition": "Discovery" }, 214 | { "id": 213, "word": "探求", "definition": "Exploration" }, 215 | { "id": 214, "word": "研究", "definition": "Research" }, 216 | { "id": 215, "word": "調査", "definition": "Investigation" }, 217 | { "id": 216, "word": "分析", "definition": "Analysis" }, 218 | { "id": 217, "word": "評価", "definition": "Assessment" }, 219 | { "id": 218, "word": "報告", "definition": "Report" }, 220 | { "id": 219, "word": "記録", "definition": "Record" }, 221 | { "id": 220, "word": "保存", "definition": "Preservation" }, 222 | { "id": 221, "word": "共有", "definition": "Sharing" }, 223 | { "id": 222, "word": "配布", "definition": "Distribution" }, 224 | { "id": 223, "word": "提供", "definition": "Provision" }, 225 | { "id": 224, "word": "支援", "definition": "Support" }, 226 | { "id": 225, "word": "協力", "definition": "Cooperation" }, 227 | { "id": 226, "word": "参加", "definition": "Participation" }, 228 | { "id": 227, "word": "出席", "definition": "Attendance" }, 229 | { "id": 228, "word": "退席", "definition": "Absence" }, 230 | { "id": 229, "word": "連絡", "definition": "Contact" }, 231 | { "id": 230, "word": "相談", "definition": "Consultation" }, 232 | { "id": 231, "word": "提案", "definition": "Proposal" }, 233 | { "id": 232, "word": "依頼", "definition": "Request" }, 234 | { "id": 233, "word": "承認", "definition": "Approval" }, 235 | { "id": 234, "word": "拒否", "definition": "Rejection" }, 236 | { "id": 235, "word": "確認", "definition": "Confirmation" }, 237 | { "id": 236, "word": "承諾", "definition": "Consent" }, 238 | { "id": 237, "word": "約束", "definition": "Promise" }, 239 | { "id": 238, "word": "契約", "definition": "Contract" }, 240 | { "id": 239, "word": "解決", "definition": "Resolution" }, 241 | { "id": 240, "word": "問題", "definition": "Issue" }, 242 | { "id": 241, "word": "課題", "definition": "Task" }, 243 | { "id": 242, "word": "目標", "definition": "Target" }, 244 | { "id": 243, "word": "目的", "definition": "Aim" }, 245 | { "id": 244, "word": "計画", "definition": "Scheme" }, 246 | { "id": 245, "word": "戦略", "definition": "Tactics" }, 247 | { "id": 246, "word": "方針", "definition": "Guideline" }, 248 | { "id": 247, "word": "手段", "definition": "Method" }, 249 | { "id": 248, "word": "方法", "definition": "Procedure" }, 250 | { "id": 249, "word": "技術", "definition": "Skill" }, 251 | { "id": 250, "word": "知識", "definition": "Wisdom" }, 252 | { "id": 251, "word": "情報", "definition": "Intelligence" }, 253 | { "id": 252, "word": "データ", "definition": "Statistics" }, 254 | { "id": 253, "word": "分析", "definition": "Examination" }, 255 | { "id": 254, "word": "結果", "definition": "Outcome" }, 256 | { "id": 255, "word": "成果", "definition": "Success" }, 257 | { "id": 256, "word": "評価", "definition": "Review" }, 258 | { "id": 257, "word": "改善", "definition": "Enhancement" }, 259 | { "id": 258, "word": "進展", "definition": "Advancement" }, 260 | { "id": 259, "word": "発展", "definition": "Progression" }, 261 | { "id": 260, "word": "成長", "definition": "Development" }, 262 | { "id": 261, "word": "変化", "definition": "Transformation" }, 263 | { "id": 262, "word": "進化", "definition": "Metamorphosis" }, 264 | { "id": 263, "word": "革新", "definition": "Revolution" }, 265 | { "id": 264, "word": "創造", "definition": "Creation" }, 266 | { "id": 265, "word": "発明", "definition": "Invention" }, 267 | { "id": 266, "word": "発見", "definition": "Discovery" }, 268 | { "id": 267, "word": "探求", "definition": "Quest" }, 269 | { "id": 268, "word": "研究", "definition": "Study" }, 270 | { "id": 269, "word": "調査", "definition": "Survey" }, 271 | { "id": 270, "word": "分析", "definition": "Scrutiny" }, 272 | { "id": 271, "word": "評価", "definition": "Assessment" }, 273 | { "id": 272, "word": "報告", "definition": "Report" }, 274 | { "id": 273, "word": "記録", "definition": "Documentation" }, 275 | { "id": 274, "word": "保存", "definition": "Conservation" }, 276 | { "id": 275, "word": "共有", "definition": "Distribution" }, 277 | { "id": 276, "word": "配布", "definition": "Dispersion" }, 278 | { "id": 277, "word": "提供", "definition": "Supply" }, 279 | { "id": 278, "word": "支援", "definition": "Aid" }, 280 | { "id": 279, "word": "協力", "definition": "Collaboration" }, 281 | { "id": 280, "word": "参加", "definition": "Engagement" }, 282 | { "id": 281, "word": "出席", "definition": "Presence" }, 283 | { "id": 282, "word": "退席", "definition": "Departure" }, 284 | { "id": 283, "word": "連絡", "definition": "Communication" }, 285 | { "id": 284, "word": "相談", "definition": "Advice" }, 286 | { "id": 285, "word": "提案", "definition": "Suggestion" }, 287 | { "id": 286, "word": "依頼", "definition": "Solicitation" }, 288 | { "id": 287, "word": "承認", "definition": "Validation" }, 289 | { "id": 288, "word": "拒否", "definition": "Denial" }, 290 | { "id": 289, "word": "確認", "definition": "Verification" }, 291 | { "id": 290, "word": "承諾", "definition": "Agreement" }, 292 | { "id": 291, "word": "約束", "definition": "Commitment" }, 293 | { "id": 292, "word": "契約", "definition": "Pact" }, 294 | { "id": 293, "word": "解決", "definition": "Solution" }, 295 | { "id": 294, "word": "問題", "definition": "Challenge" }, 296 | { "id": 295, "word": "課題", "definition": "Issue" }, 297 | { "id": 296, "word": "目標", "definition": "Aim" }, 298 | { "id": 297, "word": "目的", "definition": "Intention" }, 299 | { "id": 298, "word": "計画", "definition": "Blueprint" }, 300 | { "id": 299, "word": "戦略", "definition": "Plan" }, 301 | { "id": 300, "word": "方針", "definition": "Direction" }, 302 | { "id": 301, "word": "手段", "definition": "Approach" }, 303 | { "id": 302, "word": "方法", "definition": "Technique" }, 304 | { "id": 303, "word": "技術", "definition": "Expertise" }, 305 | { "id": 304, "word": "知識", "definition": "Insight" }, 306 | { "id": 305, "word": "情報", "definition": "Data" }, 307 | { "id": 306, "word": "データ", "definition": "Information" }, 308 | { "id": 307, "word": "分析", "definition": "Examination" }, 309 | { "id": 308, "word": "結果", "definition": "Outcome" }, 310 | { "id": 309, "word": "成果", "definition": "Result" }, 311 | { "id": 310, "word": "評価", "definition": "Review" }, 312 | { "id": 311, "word": "改善", "definition": "Enhancement" }, 313 | { "id": 312, "word": "進展", "definition": "Progress" }, 314 | { "id": 313, "word": "発展", "definition": "Growth" }, 315 | { "id": 314, "word": "成長", "definition": "Development" }, 316 | { "id": 315, "word": "変化", "definition": "Alteration" }, 317 | { "id": 316, "word": "進化", "definition": "Evolution" }, 318 | { "id": 317, "word": "革新", "definition": "Innovation" }, 319 | { "id": 318, "word": "創造", "definition": "Creation" }, 320 | { "id": 319, "word": "発明", "definition": "Invention" }, 321 | { "id": 320, "word": "発見", "definition": "Discovery" }, 322 | { "id": 321, "word": "探求", "definition": "Exploration" }, 323 | { "id": 322, "word": "研究", "definition": "Research" }, 324 | { "id": 323, "word": "調査", "definition": "Investigation" }, 325 | { "id": 324, "word": "分析", "definition": "Analysis" }, 326 | { "id": 325, "word": "評価", "definition": "Assessment" }, 327 | { "id": 326, "word": "報告", "definition": "Report" }, 328 | { "id": 327, "word": "記録", "definition": "Record" }, 329 | { "id": 328, "word": "保存", "definition": "Preservation" }, 330 | { "id": 329, "word": "共有", "definition": "Sharing" }, 331 | { "id": 330, "word": "配布", "definition": "Distribution" }, 332 | { "id": 331, "word": "提供", "definition": "Provision" }, 333 | { "id": 332, "word": "支援", "definition": "Support" }, 334 | { "id": 333, "word": "協力", "definition": "Cooperation" }, 335 | { "id": 334, "word": "参加", "definition": "Participation" }, 336 | { "id": 335, "word": "出席", "definition": "Attendance" }, 337 | { "id": 336, "word": "退席", "definition": "Absence" }, 338 | { "id": 337, "word": "連絡", "definition": "Contact" }, 339 | { "id": 338, "word": "相談", "definition": "Consultation" }, 340 | { "id": 339, "word": "提案", "definition": "Proposal" }, 341 | { "id": 340, "word": "依頼", "definition": "Request" }, 342 | { "id": 341, "word": "承認", "definition": "Approval" }, 343 | { "id": 342, "word": "拒否", "definition": "Rejection" }, 344 | { "id": 343, "word": "確認", "definition": "Confirmation" }, 345 | { "id": 344, "word": "承諾", "definition": "Consent" }, 346 | { "id": 345, "word": "約束", "definition": "Promise" }, 347 | { "id": 346, "word": "契約", "definition": "Contract" }, 348 | { "id": 347, "word": "解決", "definition": "Solution" }, 349 | { "id": 348, "word": "問題", "definition": "Challenge" }, 350 | { "id": 349, "word": "課題", "definition": "Issue" }, 351 | { "id": 350, "word": "目標", "definition": "Aim" }, 352 | { "id": 351, "word": "目的", "definition": "Intention" }, 353 | { "id": 352, "word": "計画", "definition": "Blueprint" }, 354 | { "id": 353, "word": "戦略", "definition": "Plan" }, 355 | { "id": 354, "word": "方針", "definition": "Direction" }, 356 | { "id": 355, "word": "手段", "definition": "Approach" }, 357 | { "id": 356, "word": "方法", "definition": "Technique" }, 358 | { "id": 357, "word": "技術", "definition": "Expertise" }, 359 | { "id": 358, "word": "知識", "definition": "Insight" }, 360 | { "id": 359, "word": "情報", "definition": "Data" }, 361 | { "id": 360, "word": "データ", "definition": "Information" }, 362 | { "id": 361, "word": "分析", "definition": "Examination" }, 363 | { "id": 362, "word": "結果", "definition": "Outcome" }, 364 | { "id": 363, "word": "成果", "definition": "Result" }, 365 | { "id": 364, "word": "評価", "definition": "Review" }, 366 | { "id": 365, "word": "改善", "definition": "Enhancement" }, 367 | { "id": 366, "word": "進展", "definition": "Progress" }, 368 | { "id": 367, "word": "発展", "definition": "Growth" }, 369 | { "id": 368, "word": "成長", "definition": "Development" }, 370 | { "id": 369, "word": "変化", "definition": "Alteration" }, 371 | { "id": 370, "word": "進化", "definition": "Evolution" }, 372 | { "id": 371, "word": "革新", "definition": "Innovation" }, 373 | { "id": 372, "word": "創造", "definition": "Creation" }, 374 | { "id": 373, "word": "発明", "definition": "Invention" }, 375 | { "id": 374, "word": "発見", "definition": "Discovery" }, 376 | { "id": 375, "word": "探求", "definition": "Exploration" }, 377 | { "id": 376, "word": "研究", "definition": "Research" }, 378 | { "id": 377, "word": "調査", "definition": "Investigation" }, 379 | { "id": 378, "word": "分析", "definition": "Analysis" }, 380 | { "id": 379, "word": "評価", "definition": "Assessment" }, 381 | { "id": 380, "word": "報告", "definition": "Report" }, 382 | { "id": 381, "word": "記録", "definition": "Record" }, 383 | { "id": 382, "word": "保存", "definition": "Preservation" }, 384 | { "id": 383, "word": "共有", "definition": "Sharing" }, 385 | { "id": 384, "word": "配布", "definition": "Distribution" }, 386 | { "id": 385, "word": "提供", "definition": "Provision" }, 387 | { "id": 386, "word": "支援", "definition": "Support" }, 388 | { "id": 387, "word": "協力", "definition": "Cooperation" }, 389 | { "id": 388, "word": "参加", "definition": "Participation" }, 390 | { "id": 389, "word": "出席", "definition": "Attendance" }, 391 | { "id": 390, "word": "退席", "definition": "Absence" }, 392 | { "id": 391, "word": "連絡", "definition": "Contact" }, 393 | { "id": 392, "word": "相談", "definition": "Consultation" }, 394 | { "id": 393, "word": "提案", "definition": "Proposal" }, 395 | { "id": 394, "word": "依頼", "definition": "Request" }, 396 | { "id": 395, "word": "承認", "definition": "Approval" }, 397 | { "id": 396, "word": "拒否", "definition": "Rejection" }, 398 | { "id": 397, "word": "確認", "definition": "Confirmation" }, 399 | { "id": 398, "word": "承諾", "definition": "Consent" }, 400 | { "id": 399, "word": "約束", "definition": "Promise" }, 401 | { "id": 400, "word": "契約", "definition": "Contract" }, 402 | { "id": 401, "word": "解決", "definition": "Solution" }, 403 | { "id": 402, "word": "問題", "definition": "Challenge" }, 404 | { "id": 403, "word": "課題", "definition": "Issue" }, 405 | { "id": 404, "word": "目標", "definition": "Aim" }, 406 | { "id": 405, "word": "目的", "definition": "Intention" }, 407 | { "id": 406, "word": "計画", "definition": "Blueprint" }, 408 | { "id": 407, "word": "戦略", "definition": "Plan" }, 409 | { "id": 408, "word": "方針", "definition": "Direction" }, 410 | { "id": 409, "word": "手段", "definition": "Approach" }, 411 | { "id": 410, "word": "方法", "definition": "Technique" }, 412 | { "id": 411, "word": "技術", "definition": "Expertise" }, 413 | { "id": 412, "word": "知識", "definition": "Insight" }, 414 | { "id": 413, "word": "情報", "definition": "Data" }, 415 | { "id": 414, "word": "データ", "definition": "Information" }, 416 | { "id": 415, "word": "分析", "definition": "Examination" }, 417 | { "id": 416, "word": "結果", "definition": "Outcome" }, 418 | { "id": 417, "word": "成果", "definition": "Result" }, 419 | { "id": 418, "word": "評価", "definition": "Review" }, 420 | { "id": 419, "word": "改善", "definition": "Enhancement" }, 421 | { "id": 420, "word": "進展", "definition": "Progress" }, 422 | { "id": 421, "word": "発展", "definition": "Growth" }, 423 | { "id": 422, "word": "成長", "definition": "Development" }, 424 | { "id": 423, "word": "変化", "definition": "Alteration" }, 425 | { "id": 424, "word": "進化", "definition": "Evolution" }, 426 | { "id": 425, "word": "革新", "definition": "Innovation" }, 427 | { "id": 426, "word": "創造", "definition": "Creation" }, 428 | { "id": 427, "word": "発明", "definition": "Invention" }, 429 | { "id": 428, "word": "発見", "definition": "Discovery" }, 430 | { "id": 429, "word": "探求", "definition": "Exploration" }, 431 | { "id": 430, "word": "研究", "definition": "Research" }, 432 | { "id": 431, "word": "調査", "definition": "Investigation" }, 433 | { "id": 432, "word": "分析", "definition": "Analysis" }, 434 | { "id": 433, "word": "評価", "definition": "Assessment" }, 435 | { "id": 434, "word": "報告", "definition": "Report" }, 436 | { "id": 435, "word": "記録", "definition": "Record" }, 437 | { "id": 436, "word": "保存", "definition": "Preservation" }, 438 | { "id": 437, "word": "共有", "definition": "Sharing" }, 439 | { "id": 438, "word": "配布", "definition": "Distribution" }, 440 | { "id": 439, "word": "提供", "definition": "Provision" }, 441 | { "id": 440, "word": "支援", "definition": "Support" }, 442 | { "id": 441, "word": "協力", "definition": "Cooperation" }, 443 | { "id": 442, "word": "参加", "definition": "Participation" }, 444 | { "id": 443, "word": "出席", "definition": "Attendance" }, 445 | { "id": 444, "word": "退席", "definition": "Absence" }, 446 | { "id": 445, "word": "連絡", "definition": "Contact" }, 447 | { "id": 446, "word": "相談", "definition": "Consultation" }, 448 | { "id": 447, "word": "提案", "definition": "Proposal" }, 449 | { "id": 448, "word": "依頼", "definition": "Request" }, 450 | { "id": 449, "word": "承認", "definition": "Approval" }, 451 | { "id": 450, "word": "拒否", "definition": "Rejection" }, 452 | { "id": 451, "word": "確認", "definition": "Confirmation" }, 453 | { "id": 452, "word": "承諾", "definition": "Consent" }, 454 | { "id": 453, "word": "約束", "definition": "Promise" }, 455 | { "id": 454, "word": "契約", "definition": "Contract" }, 456 | { "id": 455, "word": "解決", "definition": "Solution" }, 457 | { "id": 456, "word": "問題", "definition": "Challenge" }, 458 | { "id": 457, "word": "課題", "definition": "Issue" }, 459 | { "id": 458, "word": "目標", "definition": "Aim" }, 460 | { "id": 459, "word": "目的", "definition": "Intention" }, 461 | { "id": 460, "word": "計画", "definition": "Blueprint" }, 462 | { "id": 461, "word": "戦略", "definition": "Plan" }, 463 | { "id": 462, "word": "方針", "definition": "Direction" }, 464 | { "id": 463, "word": "手段", "definition": "Approach" }, 465 | { "id": 464, "word": "方法", "definition": "Technique" }, 466 | { "id": 465, "word": "技術", "definition": "Expertise" }, 467 | { "id": 466, "word": "知識", "definition": "Insight" }, 468 | { "id": 467, "word": "情報", "definition": "Data" }, 469 | { "id": 468, "word": "データ", "definition": "Information" }, 470 | { "id": 469, "word": "分析", "definition": "Examination" }, 471 | { "id": 470, "word": "結果", "definition": "Outcome" }, 472 | { "id": 471, "word": "成果", "definition": "Result" }, 473 | { "id": 472, "word": "評価", "definition": "Review" }, 474 | { "id": 473, "word": "改善", "definition": "Enhancement" }, 475 | { "id": 474, "word": "進展", "definition": "Progress" }, 476 | { "id": 475, "word": "発展", "definition": "Growth" }, 477 | { "id": 476, "word": "成長", "definition": "Development" }, 478 | { "id": 477, "word": "変化", "definition": "Alteration" }, 479 | { "id": 478, "word": "進化", "definition": "Evolution" }, 480 | { "id": 479, "word": "革新", "definition": "Innovation" }, 481 | { "id": 480, "word": "創造", "definition": "Creation" }, 482 | { "id": 481, "word": "発明", "definition": "Invention" }, 483 | { "id": 482, "word": "発見", "definition": "Discovery" }, 484 | { "id": 483, "word": "探求", "definition": "Exploration" }, 485 | { "id": 484, "word": "研究", "definition": "Research" }, 486 | { "id": 485, "word": "調査", "definition": "Investigation" }, 487 | { "id": 486, "word": "分析", "definition": "Analysis" }, 488 | { "id": 487, "word": "評価", "definition": "Assessment" }, 489 | { "id": 488, "word": "報告", "definition": "Report" }, 490 | { "id": 489, "word": "記録", "definition": "Record" }, 491 | { "id": 490, "word": "保存", "definition": "Preservation" }, 492 | { "id": 491, "word": "共有", "definition": "Sharing" }, 493 | { "id": 492, "word": "配布", "definition": "Distribution" }, 494 | { "id": 493, "word": "提供", "definition": "Provision" }, 495 | { "id": 494, "word": "支援", "definition": "Support" }, 496 | { "id": 495, "word": "協力", "definition": "Cooperation" }, 497 | { "id": 496, "word": "参加", "definition": "Participation" }, 498 | { "id": 497, "word": "出席", "definition": "Attendance" }, 499 | { "id": 498, "word": "退席", "definition": "Absence" }, 500 | { "id": 499, "word": "連絡", "definition": "Contact" }, 501 | { "id": 500, "word": "相談", "definition": "Consultation" } 502 | ] 503 | -------------------------------------------------------------------------------- /data/spanish/words.json: -------------------------------------------------------------------------------- 1 | [ 2 | {"id": 1, "word": "amor", "definition": "love"}, 3 | {"id": 2, "word": "amigo", "definition": "friend"}, 4 | {"id": 3, "word": "escuela", "definition": "school"}, 5 | {"id": 4, "word": "libro", "definition": "book"}, 6 | {"id": 5, "word": "computadora", "definition": "computer"}, 7 | {"id": 6, "word": "familia", "definition": "family"}, 8 | {"id": 7, "word": "trabajo", "definition": "work"}, 9 | {"id": 8, "word": "felicidad", "definition": "happiness"}, 10 | {"id": 9, "word": "agua", "definition": "water"}, 11 | {"id": 10, "word": "comida", "definition": "food"}, 12 | {"id": 11, "word": "automóvil", "definition": "car"}, 13 | {"id": 12, "word": "película", "definition": "movie"}, 14 | {"id": 13, "word": "música", "definition": "music"}, 15 | {"id": 14, "word": "ciudad", "definition": "city"}, 16 | {"id": 15, "word": "viaje", "definition": "travel"}, 17 | {"id": 16, "word": "salud", "definition": "health"}, 18 | {"id": 17, "word": "ejercicio", "definition": "exercise"}, 19 | {"id": 18, "word": "profesor", "definition": "teacher"}, 20 | {"id": 19, "word": "estudiante", "definition": "student"}, 21 | {"id": 20, "word": "teléfono", "definition": "telephone"}, 22 | {"id": 21, "word": "casa", "definition": "house"}, 23 | {"id": 22, "word": "puerta", "definition": "door"}, 24 | {"id": 23, "word": "ventana", "definition": "window"}, 25 | {"id": 24, "word": "silla", "definition": "chair"}, 26 | {"id": 25, "word": "mesa", "definition": "table"}, 27 | {"id": 26, "word": "sopa", "definition": "soup"}, 28 | {"id": 27, "word": "pan", "definition": "bread"}, 29 | {"id": 28, "word": "leche", "definition": "milk"}, 30 | {"id": 29, "word": "fruta", "definition": "fruit"}, 31 | {"id": 30, "word": "verdura", "definition": "vegetable"}, 32 | {"id": 31, "word": "niño", "definition": "child"}, 33 | {"id": 32, "word": "adulto", "definition": "adult"}, 34 | {"id": 33, "word": "estrella", "definition": "star"}, 35 | {"id": 34, "word": "luna", "definition": "moon"}, 36 | {"id": 35, "word": "sol", "definition": "sun"}, 37 | {"id": 36, "word": "nube", "definition": "cloud"}, 38 | {"id": 37, "word": "lluvia", "definition": "rain"}, 39 | {"id": 38, "word": "viento", "definition": "wind"}, 40 | {"id": 39, "word": "nieve", "definition": "snow"}, 41 | {"id": 40, "word": "mar", "definition": "sea"}, 42 | {"id": 41, "word": "montaña", "definition": "mountain"}, 43 | {"id": 42, "word": "río", "definition": "river"}, 44 | {"id": 43, "word": "lago", "definition": "lake"}, 45 | {"id": 44, "word": "playa", "definition": "beach"}, 46 | {"id": 45, "word": "bosque", "definition": "forest"}, 47 | {"id": 46, "word": "desierto", "definition": "desert"}, 48 | {"id": 47, "word": "isla", "definition": "island"}, 49 | {"id": 48, "word": "pueblo", "definition": "town"}, 50 | {"id": 49, "word": "ciudadano", "definition": "citizen"}, 51 | {"id": 50, "word": "gente", "definition": "people"} 52 | ] 53 | -------------------------------------------------------------------------------- /data/turkish/words.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": 1, 4 | "word": "Merhaba", 5 | "definition": "Hello" 6 | }, 7 | { 8 | "id": 2, 9 | "word": "Ev", 10 | "definition": "House" 11 | }, 12 | { 13 | "id": 3, 14 | "word": "Su", 15 | "definition": "Water" 16 | }, 17 | { 18 | "id": 4, 19 | "word": "Kitap", 20 | "definition": "Book" 21 | }, 22 | { 23 | "id": 5, 24 | "word": "Arkadaş", 25 | "definition": "Friend" 26 | }, 27 | { 28 | "id": 6, 29 | "word": "Güneş", 30 | "definition": "Sun" 31 | }, 32 | { 33 | "id": 7, 34 | "word": "Ay", 35 | "definition": "Moon" 36 | }, 37 | { 38 | "id": 8, 39 | "word": "Yıldız", 40 | "definition": "Star" 41 | }, 42 | { 43 | "id": 9, 44 | "word": "Ağaç", 45 | "definition": "Tree" 46 | }, 47 | { 48 | "id": 10, 49 | "word": "Çiçek", 50 | "definition": "Flower" 51 | }, 52 | { 53 | "id": 11, 54 | "word": "Araba", 55 | "definition": "Car" 56 | }, 57 | { 58 | "id": 12, 59 | "word": "Okul", 60 | "definition": "School" 61 | }, 62 | { 63 | "id": 13, 64 | "word": "Öğretmen", 65 | "definition": "Teacher" 66 | }, 67 | { 68 | "id": 14, 69 | "word": "Öğrenci", 70 | "definition": "Student" 71 | }, 72 | { 73 | "id": 15, 74 | "word": "Aile", 75 | "definition": "Family" 76 | }, 77 | { 78 | "id": 16, 79 | "word": "Anne", 80 | "definition": "Mother" 81 | }, 82 | { 83 | "id": 17, 84 | "word": "Baba", 85 | "definition": "Father" 86 | }, 87 | { 88 | "id": 18, 89 | "word": "Kardeş", 90 | "definition": "Sibling" 91 | }, 92 | { 93 | "id": 19, 94 | "word": "Sevgi", 95 | "definition": "Love" 96 | }, 97 | { 98 | "id": 20, 99 | "word": "Mutluluk", 100 | "definition": "Happiness" 101 | }, 102 | { 103 | "id": 21, 104 | "word": "Zaman", 105 | "definition": "Time" 106 | }, 107 | { 108 | "id": 22, 109 | "word": "Yemek", 110 | "definition": "Food" 111 | }, 112 | { 113 | "id": 23, 114 | "word": "İçmek", 115 | "definition": "To drink" 116 | }, 117 | { 118 | "id": 24, 119 | "word": "Uyumak", 120 | "definition": "To sleep" 121 | }, 122 | { 123 | "id": 25, 124 | "word": "Çalışmak", 125 | "definition": "To work" 126 | }, 127 | { 128 | "id": 26, 129 | "word": "Oyun", 130 | "definition": "Game" 131 | }, 132 | { 133 | "id": 27, 134 | "word": "Müzik", 135 | "definition": "Music" 136 | }, 137 | { 138 | "id": 28, 139 | "word": "Dans", 140 | "definition": "Dance" 141 | }, 142 | { 143 | "id": 29, 144 | "word": "Spor", 145 | "definition": "Sport" 146 | }, 147 | { 148 | "id": 30, 149 | "word": "Renk", 150 | "definition": "Color" 151 | }, 152 | { 153 | "id": 31, 154 | "word": "Kırmızı", 155 | "definition": "Red" 156 | }, 157 | { 158 | "id": 32, 159 | "word": "Mavi", 160 | "definition": "Blue" 161 | }, 162 | { 163 | "id": 33, 164 | "word": "Yeşil", 165 | "definition": "Green" 166 | }, 167 | { 168 | "id": 34, 169 | "word": "Sarı", 170 | "definition": "Yellow" 171 | }, 172 | { 173 | "id": 35, 174 | "word": "Siyah", 175 | "definition": "Black" 176 | }, 177 | { 178 | "id": 36, 179 | "word": "Beyaz", 180 | "definition": "White" 181 | }, 182 | { 183 | "id": 37, 184 | "word": "Gün", 185 | "definition": "Day" 186 | }, 187 | { 188 | "id": 38, 189 | "word": "Gece", 190 | "definition": "Night" 191 | }, 192 | { 193 | "id": 39, 194 | "word": "Sabah", 195 | "definition": "Morning" 196 | }, 197 | { 198 | "id": 40, 199 | "word": "Akşam", 200 | "definition": "Evening" 201 | }, 202 | { 203 | "id": 41, 204 | "word": "Yıl", 205 | "definition": "Year" 206 | }, 207 | { 208 | "id": 42, 209 | "word": "Ay", 210 | "definition": "Month" 211 | }, 212 | { 213 | "id": 43, 214 | "word": "Hafta", 215 | "definition": "Week" 216 | }, 217 | { 218 | "id": 44, 219 | "word": "Saat", 220 | "definition": "Hour" 221 | }, 222 | { 223 | "id": 45, 224 | "word": "Dakika", 225 | "definition": "Minute" 226 | }, 227 | { 228 | "id": 46, 229 | "word": "Saniye", 230 | "definition": "Second" 231 | }, 232 | { 233 | "id": 47, 234 | "word": "Dil", 235 | "definition": "Language" 236 | }, 237 | { 238 | "id": 48, 239 | "word": "Kelime", 240 | "definition": "Word" 241 | }, 242 | { 243 | "id": 49, 244 | "word": "Cümle", 245 | "definition": "Sentence" 246 | }, 247 | { 248 | "id": 50, 249 | "word": "Paragraf", 250 | "definition": "Paragraph" 251 | }, 252 | { 253 | "id": 51, 254 | "word": "Sayı", 255 | "definition": "Number" 256 | }, 257 | { 258 | "id": 52, 259 | "word": "Bir", 260 | "definition": "One" 261 | }, 262 | { 263 | "id": 53, 264 | "word": "İki", 265 | "definition": "Two" 266 | }, 267 | { 268 | "id": 54, 269 | "word": "Üç", 270 | "definition": "Three" 271 | }, 272 | { 273 | "id": 55, 274 | "word": "Dört", 275 | "definition": "Four" 276 | }, 277 | { 278 | "id": 56, 279 | "word": "Beş", 280 | "definition": "Five" 281 | }, 282 | { 283 | "id": 57, 284 | "word": "On", 285 | "definition": "Ten" 286 | }, 287 | { 288 | "id": 58, 289 | "word": "Yüz", 290 | "definition": "Hundred" 291 | }, 292 | { 293 | "id": 59, 294 | "word": "Bin", 295 | "definition": "Thousand" 296 | }, 297 | { 298 | "id": 60, 299 | "word": "Milyon", 300 | "definition": "Million" 301 | }, 302 | { 303 | "id": 61, 304 | "word": "Hayvan", 305 | "definition": "Animal" 306 | }, 307 | { 308 | "id": 62, 309 | "word": "Köpek", 310 | "definition": "Dog" 311 | }, 312 | { 313 | "id": 63, 314 | "word": "Kedi", 315 | "definition": "Cat" 316 | }, 317 | { 318 | "id": 64, 319 | "word": "Kuş", 320 | "definition": "Bird" 321 | }, 322 | { 323 | "id": 65, 324 | "word": "Balık", 325 | "definition": "Fish" 326 | }, 327 | { 328 | "id": 66, 329 | "word": "At", 330 | "definition": "Horse" 331 | }, 332 | { 333 | "id": 67, 334 | "word": "İnek", 335 | "definition": "Cow" 336 | }, 337 | { 338 | "id": 68, 339 | "word": "Tavuk", 340 | "definition": "Chicken" 341 | }, 342 | { 343 | "id": 69, 344 | "word": "Koyun", 345 | "definition": "Sheep" 346 | }, 347 | { 348 | "id": 70, 349 | "word": "Aslan", 350 | "definition": "Lion" 351 | }, 352 | { 353 | "id": 71, 354 | "word": "Kaplan", 355 | "definition": "Tiger" 356 | }, 357 | { 358 | "id": 72, 359 | "word": "Fil", 360 | "definition": "Elephant" 361 | }, 362 | { 363 | "id": 73, 364 | "word": "Maymun", 365 | "definition": "Monkey" 366 | }, 367 | { 368 | "id": 74, 369 | "word": "Yılan", 370 | "definition": "Snake" 371 | }, 372 | { 373 | "id": 75, 374 | "word": "Kurbağa", 375 | "definition": "Frog" 376 | }, 377 | { 378 | "id": 76, 379 | "word": "Böcek", 380 | "definition": "Insect" 381 | }, 382 | { 383 | "id": 77, 384 | "word": "Arı", 385 | "definition": "Bee" 386 | }, 387 | { 388 | "id": 78, 389 | "word": "Kelebek", 390 | "definition": "Butterfly" 391 | }, 392 | { 393 | "id": 79, 394 | "word": "Karınca", 395 | "definition": "Ant" 396 | }, 397 | { 398 | "id": 80, 399 | "word": "Örümcek", 400 | "definition": "Spider" 401 | }, 402 | { 403 | "id": 81, 404 | "word": "Vücut", 405 | "definition": "Body" 406 | }, 407 | { 408 | "id": 82, 409 | "word": "Baş", 410 | "definition": "Head" 411 | }, 412 | { 413 | "id": 83, 414 | "word": "Göz", 415 | "definition": "Eye" 416 | }, 417 | { 418 | "id": 84, 419 | "word": "Kulak", 420 | "definition": "Ear" 421 | }, 422 | { 423 | "id": 85, 424 | "word": "Burun", 425 | "definition": "Nose" 426 | }, 427 | { 428 | "id": 86, 429 | "word": "Ağız", 430 | "definition": "Mouth" 431 | }, 432 | { 433 | "id": 87, 434 | "word": "Diş", 435 | "definition": "Tooth" 436 | }, 437 | { 438 | "id": 88, 439 | "word": "Saç", 440 | "definition": "Hair" 441 | }, 442 | { 443 | "id": 89, 444 | "word": "El", 445 | "definition": "Hand" 446 | }, 447 | { 448 | "id": 90, 449 | "word": "Ayak", 450 | "definition": "Foot" 451 | }, 452 | { 453 | "id": 91, 454 | "word": "Bacak", 455 | "definition": "Leg" 456 | }, 457 | { 458 | "id": 92, 459 | "word": "Kol", 460 | "definition": "Arm" 461 | }, 462 | { 463 | "id": 93, 464 | "word": "Parmak", 465 | "definition": "Finger" 466 | }, 467 | { 468 | "id": 94, 469 | "word": "Tırnak", 470 | "definition": "Nail" 471 | }, 472 | { 473 | "id": 95, 474 | "word": "Kalp", 475 | "definition": "Heart" 476 | }, 477 | { 478 | "id": 96, 479 | "word": "Beyin", 480 | "definition": "Brain" 481 | }, 482 | { 483 | "id": 97, 484 | "word": "Akciğer", 485 | "definition": "Lung" 486 | }, 487 | { 488 | "id": 98, 489 | "word": "Mide", 490 | "definition": "Stomach" 491 | }, 492 | { 493 | "id": 99, 494 | "word": "Karaciğer", 495 | "definition": "Liver" 496 | }, 497 | { 498 | "id": 100, 499 | "word": "Böbrek", 500 | "definition": "Kidney" 501 | }, 502 | { 503 | "id": 101, 504 | "word": "Giysi", 505 | "definition": "Clothing" 506 | }, 507 | { 508 | "id": 102, 509 | "word": "Gömlek", 510 | "definition": "Shirt" 511 | }, 512 | { 513 | "id": 103, 514 | "word": "Pantolon", 515 | "definition": "Pants" 516 | }, 517 | { 518 | "id": 104, 519 | "word": "Elbise", 520 | "definition": "Dress" 521 | }, 522 | { 523 | "id": 105, 524 | "word": "Ceket", 525 | "definition": "Jacket" 526 | }, 527 | { 528 | "id": 106, 529 | "word": "Ayakkabı", 530 | "definition": "Shoe" 531 | }, 532 | { 533 | "id": 107, 534 | "word": "Çorap", 535 | "definition": "Sock" 536 | }, 537 | { 538 | "id": 108, 539 | "word": "Şapka", 540 | "definition": "Hat" 541 | }, 542 | { 543 | "id": 109, 544 | "word": "Eldiven", 545 | "definition": "Glove" 546 | }, 547 | { 548 | "id": 110, 549 | "word": "Kemer", 550 | "definition": "Belt" 551 | }, 552 | { 553 | "id": 111, 554 | "word": "Yiyecek", 555 | "definition": "Food" 556 | }, 557 | { 558 | "id": 112, 559 | "word": "Ekmek", 560 | "definition": "Bread" 561 | }, 562 | { 563 | "id": 113, 564 | "word": "Süt", 565 | "definition": "Milk" 566 | }, 567 | { 568 | "id": 114, 569 | "word": "Peynir", 570 | "definition": "Cheese" 571 | }, 572 | { 573 | "id": 115, 574 | "word": "Yumurta", 575 | "definition": "Egg" 576 | }, 577 | { 578 | "id": 116, 579 | "word": "Et", 580 | "definition": "Meat" 581 | }, 582 | { 583 | "id": 117, 584 | "word": "Tavuk", 585 | "definition": "Chicken" 586 | }, 587 | { 588 | "id": 118, 589 | "word": "Balık", 590 | "definition": "Fish" 591 | }, 592 | { 593 | "id": 119, 594 | "word": "Pirinç", 595 | "definition": "Rice" 596 | }, 597 | { 598 | "id": 120, 599 | "word": "Makarna", 600 | "definition": "Pasta" 601 | }, 602 | { 603 | "id": 121, 604 | "word": "Sebze", 605 | "definition": "Vegetable" 606 | }, 607 | { 608 | "id": 122, 609 | "word": "Meyve", 610 | "definition": "Fruit" 611 | }, 612 | { 613 | "id": 123, 614 | "word": "Elma", 615 | "definition": "Apple" 616 | }, 617 | { 618 | "id": 124, 619 | "word": "Muz", 620 | "definition": "Banana" 621 | } 622 | ] 623 | 624 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | import express from "express"; 2 | const app = express(); 3 | 4 | import english from './routes/english.js'; 5 | import language from './routes/language.js'; 6 | import swaggerUi from './swagger-ui.js'; 7 | import { limiter } from "./utils/index.js"; 8 | 9 | // Apply rate limiter to all routes except root 10 | app.use((req, res, next) => { 11 | if (req.path !== '/') { 12 | return limiter(req, res, next); 13 | } 14 | next(); 15 | }); 16 | 17 | app.use('/', swaggerUi); 18 | app.use('/word', english); 19 | app.use('/word', language); 20 | app.use('/api-docs', swaggerUi); 21 | 22 | app.use('/', function(_req, res) { 23 | res.status(404).json({ 24 | error: 1, 25 | message: 'Page or Data not Found' 26 | }); 27 | }) 28 | 29 | app.use((err, req, res, next) => { 30 | if (!err) return next(); 31 | return res.status(403).json({ 32 | error: 1, 33 | message: 'Page or Data not Found' 34 | }); 35 | }); 36 | 37 | const port = process.env.PORT || 3002; 38 | app.listen(port, function() { 39 | console.log('listening on port ' + port); 40 | }); -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": ".", 4 | "paths": { 5 | "@/data/*": [ 6 | "data/*" 7 | ], 8 | "@/utils/*": [ 9 | "utils/*" 10 | ] 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "random-words-api", 3 | "version": "1.0.0", 4 | "description": "API for getting random words in different languages", 5 | "private": true, 6 | "main": "index.js", 7 | "dependencies": { 8 | "axios": "^1.1.3", 9 | "cheerio": "^1.0.0-rc.12", 10 | "express": "^4.18.2", 11 | "express-rate-limit": "^7.4.0", 12 | "node-pronounce": "^0.0.4", 13 | "random-array-item": "^0.0.2", 14 | "random-useragent": "^0.5.0", 15 | "swagger-jsdoc": "^6.2.8", 16 | "swagger-ui-express": "^5.0.1" 17 | }, 18 | "scripts": { 19 | "test": "echo \"Error: no test specified\" && exit 1", 20 | "start": "node index.js", 21 | "action": "node ./test/test.js", 22 | "dev": "nodemon index.js --ext '*'", 23 | "commit": "gacp", 24 | "contributors:add": "all-contributors add", 25 | "contributors:generate": "all-contributors generate" 26 | }, 27 | "type": "module", 28 | "keywords": [ 29 | "Word", 30 | "of", 31 | "the", 32 | "Day" 33 | ], 34 | "repository": { 35 | "type": "git", 36 | "url": "git+https://github.com/mcnaveen/Random-Words-API.git" 37 | }, 38 | "bugs": { 39 | "url": "https://github.com/mcnaveen/Random-Words-API/issues" 40 | }, 41 | "homepage": "https://github.com/mcnaveen/Random-Words-API/#readme", 42 | "author": "MC Naveen", 43 | "license": "MIT", 44 | "devDependencies": { 45 | "all-contributors-cli": "^6.20.0", 46 | "gacp": "^3.0.3", 47 | "nodemon": "^2.0.19" 48 | }, 49 | "gacp": { 50 | "add": false, 51 | "push": false, 52 | "emoji": "emoji", 53 | "editor": false 54 | } 55 | } -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | axios: 9 | specifier: ^1.1.3 10 | version: 1.7.5 11 | cheerio: 12 | specifier: ^1.0.0-rc.12 13 | version: 1.0.0 14 | express: 15 | specifier: ^4.18.2 16 | version: 4.19.2 17 | express-rate-limit: 18 | specifier: ^7.4.0 19 | version: 7.4.0(express@4.19.2) 20 | node-pronounce: 21 | specifier: ^0.0.4 22 | version: 0.0.4 23 | random-array-item: 24 | specifier: ^0.0.2 25 | version: 0.0.2 26 | random-useragent: 27 | specifier: ^0.5.0 28 | version: 0.5.0 29 | swagger-jsdoc: 30 | specifier: ^6.2.8 31 | version: 6.2.8(openapi-types@12.1.3) 32 | swagger-ui-express: 33 | specifier: ^5.0.1 34 | version: 5.0.1(express@4.19.2) 35 | 36 | devDependencies: 37 | all-contributors-cli: 38 | specifier: ^6.20.0 39 | version: 6.26.1 40 | gacp: 41 | specifier: ^3.0.3 42 | version: 3.0.3 43 | nodemon: 44 | specifier: ^2.0.19 45 | version: 2.0.22 46 | 47 | packages: 48 | 49 | /@apidevtools/json-schema-ref-parser@9.1.2: 50 | resolution: {integrity: sha512-r1w81DpR+KyRWd3f+rk6TNqMgedmAxZP5v5KWlXQWlgMUUtyEJch0DKEci1SorPMiSeM8XPl7MZ3miJ60JIpQg==} 51 | dependencies: 52 | '@jsdevtools/ono': 7.1.3 53 | '@types/json-schema': 7.0.15 54 | call-me-maybe: 1.0.2 55 | js-yaml: 4.1.0 56 | dev: false 57 | 58 | /@apidevtools/openapi-schemas@2.1.0: 59 | resolution: {integrity: sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==} 60 | engines: {node: '>=10'} 61 | dev: false 62 | 63 | /@apidevtools/swagger-methods@3.0.2: 64 | resolution: {integrity: sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==} 65 | dev: false 66 | 67 | /@apidevtools/swagger-parser@10.0.3(openapi-types@12.1.3): 68 | resolution: {integrity: sha512-sNiLY51vZOmSPFZA5TF35KZ2HbgYklQnTSDnkghamzLb3EkNtcQnrBQEj5AOCxHpTtXpqMCRM1CrmV2rG6nw4g==} 69 | peerDependencies: 70 | openapi-types: '>=7' 71 | dependencies: 72 | '@apidevtools/json-schema-ref-parser': 9.1.2 73 | '@apidevtools/openapi-schemas': 2.1.0 74 | '@apidevtools/swagger-methods': 3.0.2 75 | '@jsdevtools/ono': 7.1.3 76 | call-me-maybe: 1.0.2 77 | openapi-types: 12.1.3 78 | z-schema: 5.0.5 79 | dev: false 80 | 81 | /@babel/code-frame@7.24.7: 82 | resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} 83 | engines: {node: '>=6.9.0'} 84 | dependencies: 85 | '@babel/highlight': 7.24.7 86 | picocolors: 1.0.1 87 | dev: true 88 | 89 | /@babel/helper-validator-identifier@7.24.7: 90 | resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} 91 | engines: {node: '>=6.9.0'} 92 | dev: true 93 | 94 | /@babel/highlight@7.24.7: 95 | resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} 96 | engines: {node: '>=6.9.0'} 97 | dependencies: 98 | '@babel/helper-validator-identifier': 7.24.7 99 | chalk: 2.4.2 100 | js-tokens: 4.0.0 101 | picocolors: 1.0.1 102 | dev: true 103 | 104 | /@babel/runtime@7.25.4: 105 | resolution: {integrity: sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w==} 106 | engines: {node: '>=6.9.0'} 107 | dependencies: 108 | regenerator-runtime: 0.14.1 109 | dev: true 110 | 111 | /@commitlint/execute-rule@12.1.4: 112 | resolution: {integrity: sha512-h2S1j8SXyNeABb27q2Ok2vD1WfxJiXvOttKuRA9Or7LN6OQoC/KtT3844CIhhWNteNMu/wE0gkTqGxDVAnJiHg==} 113 | engines: {node: '>=v10'} 114 | dev: true 115 | 116 | /@commitlint/load@12.1.4: 117 | resolution: {integrity: sha512-Keszi0IOjRzKfxT+qES/n+KZyLrxy79RQz8wWgssCboYjKEp+wC+fLCgbiMCYjI5k31CIzIOq/16J7Ycr0C0EA==} 118 | engines: {node: '>=v10'} 119 | dependencies: 120 | '@commitlint/execute-rule': 12.1.4 121 | '@commitlint/resolve-extends': 12.1.4 122 | '@commitlint/types': 12.1.4 123 | chalk: 4.1.2 124 | cosmiconfig: 7.1.0 125 | lodash: 4.17.21 126 | resolve-from: 5.0.0 127 | dev: true 128 | 129 | /@commitlint/resolve-extends@12.1.4: 130 | resolution: {integrity: sha512-R9CoUtsXLd6KSCfsZly04grsH6JVnWFmVtWgWs1KdDpdV+G3TSs37tColMFqglpkx3dsWu8dsPD56+D9YnJfqg==} 131 | engines: {node: '>=v10'} 132 | dependencies: 133 | import-fresh: 3.3.0 134 | lodash: 4.17.21 135 | resolve-from: 5.0.0 136 | resolve-global: 1.0.0 137 | dev: true 138 | 139 | /@commitlint/types@12.1.4: 140 | resolution: {integrity: sha512-KRIjdnWNUx6ywz+SJvjmNCbQKcKP6KArhjZhY2l+CWKxak0d77SOjggkMwFTiSgLODOwmuLTbarR2ZfWPiPMlw==} 141 | engines: {node: '>=v10'} 142 | dependencies: 143 | chalk: 4.1.2 144 | dev: true 145 | 146 | /@jsdevtools/ono@7.1.3: 147 | resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} 148 | dev: false 149 | 150 | /@sindresorhus/is@0.14.0: 151 | resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} 152 | engines: {node: '>=6'} 153 | dev: true 154 | 155 | /@szmarczak/http-timer@1.1.2: 156 | resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} 157 | engines: {node: '>=6'} 158 | dependencies: 159 | defer-to-connect: 1.1.3 160 | dev: true 161 | 162 | /@types/json-schema@7.0.15: 163 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 164 | dev: false 165 | 166 | /@types/keyv@3.1.4: 167 | resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} 168 | dependencies: 169 | '@types/node': 22.5.0 170 | dev: true 171 | 172 | /@types/node@22.5.0: 173 | resolution: {integrity: sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg==} 174 | dependencies: 175 | undici-types: 6.19.8 176 | dev: true 177 | 178 | /@types/parse-json@4.0.2: 179 | resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} 180 | dev: true 181 | 182 | /@types/responselike@1.0.3: 183 | resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} 184 | dependencies: 185 | '@types/node': 22.5.0 186 | dev: true 187 | 188 | /@vivaxy/git@4.2.1: 189 | resolution: {integrity: sha512-Gpnne7sk3oTd0fyw1J3clVX2ZBkJjNRduccDbOcgYv31M35nBzUHSzQ56eFiJsOTNfdVadL2bo0ICw5oilGfEA==} 190 | dependencies: 191 | execa: 5.1.1 192 | fs-extra: 10.1.0 193 | dev: true 194 | 195 | /accepts@1.3.8: 196 | resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} 197 | engines: {node: '>= 0.6'} 198 | dependencies: 199 | mime-types: 2.1.35 200 | negotiator: 0.6.3 201 | dev: false 202 | 203 | /all-contributors-cli@6.26.1: 204 | resolution: {integrity: sha512-Ymgo3FJACRBEd1eE653FD1J/+uD0kqpUNYfr9zNC1Qby0LgbhDBzB3EF6uvkAbYpycStkk41J+0oo37Lc02yEw==} 205 | engines: {node: '>=4'} 206 | hasBin: true 207 | dependencies: 208 | '@babel/runtime': 7.25.4 209 | async: 3.2.6 210 | chalk: 4.1.2 211 | didyoumean: 1.2.2 212 | inquirer: 7.3.3 213 | json-fixer: 1.6.15 214 | lodash: 4.17.21 215 | node-fetch: 2.7.0 216 | pify: 5.0.0 217 | yargs: 15.4.1 218 | optionalDependencies: 219 | prettier: 2.8.8 220 | transitivePeerDependencies: 221 | - encoding 222 | dev: true 223 | 224 | /ansi-align@3.0.1: 225 | resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} 226 | dependencies: 227 | string-width: 4.2.3 228 | dev: true 229 | 230 | /ansi-escapes@4.3.2: 231 | resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} 232 | engines: {node: '>=8'} 233 | dependencies: 234 | type-fest: 0.21.3 235 | dev: true 236 | 237 | /ansi-regex@5.0.1: 238 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 239 | engines: {node: '>=8'} 240 | dev: true 241 | 242 | /ansi-styles@3.2.1: 243 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 244 | engines: {node: '>=4'} 245 | dependencies: 246 | color-convert: 1.9.3 247 | dev: true 248 | 249 | /ansi-styles@4.3.0: 250 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 251 | engines: {node: '>=8'} 252 | dependencies: 253 | color-convert: 2.0.1 254 | dev: true 255 | 256 | /anymatch@3.1.3: 257 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 258 | engines: {node: '>= 8'} 259 | dependencies: 260 | normalize-path: 3.0.0 261 | picomatch: 2.3.1 262 | dev: true 263 | 264 | /argparse@2.0.1: 265 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 266 | dev: false 267 | 268 | /array-flatten@1.1.1: 269 | resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} 270 | dev: false 271 | 272 | /async@3.2.6: 273 | resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} 274 | dev: true 275 | 276 | /asynckit@0.4.0: 277 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 278 | dev: false 279 | 280 | /axios@1.7.5: 281 | resolution: {integrity: sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==} 282 | dependencies: 283 | follow-redirects: 1.15.6 284 | form-data: 4.0.0 285 | proxy-from-env: 1.1.0 286 | transitivePeerDependencies: 287 | - debug 288 | dev: false 289 | 290 | /balanced-match@1.0.2: 291 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 292 | 293 | /binary-extensions@2.3.0: 294 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 295 | engines: {node: '>=8'} 296 | dev: true 297 | 298 | /body-parser@1.20.2: 299 | resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} 300 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 301 | dependencies: 302 | bytes: 3.1.2 303 | content-type: 1.0.5 304 | debug: 2.6.9 305 | depd: 2.0.0 306 | destroy: 1.2.0 307 | http-errors: 2.0.0 308 | iconv-lite: 0.4.24 309 | on-finished: 2.4.1 310 | qs: 6.11.0 311 | raw-body: 2.5.2 312 | type-is: 1.6.18 313 | unpipe: 1.0.0 314 | transitivePeerDependencies: 315 | - supports-color 316 | dev: false 317 | 318 | /boolbase@1.0.0: 319 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 320 | dev: false 321 | 322 | /boxen@5.1.2: 323 | resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} 324 | engines: {node: '>=10'} 325 | dependencies: 326 | ansi-align: 3.0.1 327 | camelcase: 6.3.0 328 | chalk: 4.1.2 329 | cli-boxes: 2.2.1 330 | string-width: 4.2.3 331 | type-fest: 0.20.2 332 | widest-line: 3.1.0 333 | wrap-ansi: 7.0.0 334 | dev: true 335 | 336 | /brace-expansion@1.1.11: 337 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 338 | dependencies: 339 | balanced-match: 1.0.2 340 | concat-map: 0.0.1 341 | 342 | /braces@3.0.3: 343 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 344 | engines: {node: '>=8'} 345 | dependencies: 346 | fill-range: 7.1.1 347 | dev: true 348 | 349 | /bytes@3.1.2: 350 | resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} 351 | engines: {node: '>= 0.8'} 352 | dev: false 353 | 354 | /cacheable-request@6.1.0: 355 | resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} 356 | engines: {node: '>=8'} 357 | dependencies: 358 | clone-response: 1.0.3 359 | get-stream: 5.2.0 360 | http-cache-semantics: 4.1.1 361 | keyv: 3.1.0 362 | lowercase-keys: 2.0.0 363 | normalize-url: 4.5.1 364 | responselike: 1.0.2 365 | dev: true 366 | 367 | /call-bind@1.0.7: 368 | resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} 369 | engines: {node: '>= 0.4'} 370 | dependencies: 371 | es-define-property: 1.0.0 372 | es-errors: 1.3.0 373 | function-bind: 1.1.2 374 | get-intrinsic: 1.2.4 375 | set-function-length: 1.2.2 376 | dev: false 377 | 378 | /call-me-maybe@1.0.2: 379 | resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==} 380 | dev: false 381 | 382 | /callsites@3.1.0: 383 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 384 | engines: {node: '>=6'} 385 | dev: true 386 | 387 | /camelcase@5.3.1: 388 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 389 | engines: {node: '>=6'} 390 | dev: true 391 | 392 | /camelcase@6.3.0: 393 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} 394 | engines: {node: '>=10'} 395 | dev: true 396 | 397 | /chalk@2.4.2: 398 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 399 | engines: {node: '>=4'} 400 | dependencies: 401 | ansi-styles: 3.2.1 402 | escape-string-regexp: 1.0.5 403 | supports-color: 5.5.0 404 | dev: true 405 | 406 | /chalk@4.1.2: 407 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 408 | engines: {node: '>=10'} 409 | dependencies: 410 | ansi-styles: 4.3.0 411 | supports-color: 7.2.0 412 | dev: true 413 | 414 | /chardet@0.7.0: 415 | resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} 416 | dev: true 417 | 418 | /cheerio-select@2.1.0: 419 | resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} 420 | dependencies: 421 | boolbase: 1.0.0 422 | css-select: 5.1.0 423 | css-what: 6.1.0 424 | domelementtype: 2.3.0 425 | domhandler: 5.0.3 426 | domutils: 3.1.0 427 | dev: false 428 | 429 | /cheerio@1.0.0: 430 | resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==} 431 | engines: {node: '>=18.17'} 432 | dependencies: 433 | cheerio-select: 2.1.0 434 | dom-serializer: 2.0.0 435 | domhandler: 5.0.3 436 | domutils: 3.1.0 437 | encoding-sniffer: 0.2.0 438 | htmlparser2: 9.1.0 439 | parse5: 7.1.2 440 | parse5-htmlparser2-tree-adapter: 7.0.0 441 | parse5-parser-stream: 7.1.2 442 | undici: 6.19.8 443 | whatwg-mimetype: 4.0.0 444 | dev: false 445 | 446 | /chokidar@3.6.0: 447 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 448 | engines: {node: '>= 8.10.0'} 449 | dependencies: 450 | anymatch: 3.1.3 451 | braces: 3.0.3 452 | glob-parent: 5.1.2 453 | is-binary-path: 2.1.0 454 | is-glob: 4.0.3 455 | normalize-path: 3.0.0 456 | readdirp: 3.6.0 457 | optionalDependencies: 458 | fsevents: 2.3.3 459 | dev: true 460 | 461 | /ci-info@2.0.0: 462 | resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} 463 | dev: true 464 | 465 | /cli-boxes@2.2.1: 466 | resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} 467 | engines: {node: '>=6'} 468 | dev: true 469 | 470 | /cli-cursor@3.1.0: 471 | resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} 472 | engines: {node: '>=8'} 473 | dependencies: 474 | restore-cursor: 3.1.0 475 | dev: true 476 | 477 | /cli-width@3.0.0: 478 | resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} 479 | engines: {node: '>= 10'} 480 | dev: true 481 | 482 | /cliui@6.0.0: 483 | resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} 484 | dependencies: 485 | string-width: 4.2.3 486 | strip-ansi: 6.0.1 487 | wrap-ansi: 6.2.0 488 | dev: true 489 | 490 | /cliui@8.0.1: 491 | resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} 492 | engines: {node: '>=12'} 493 | dependencies: 494 | string-width: 4.2.3 495 | strip-ansi: 6.0.1 496 | wrap-ansi: 7.0.0 497 | dev: true 498 | 499 | /clone-response@1.0.3: 500 | resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} 501 | dependencies: 502 | mimic-response: 1.0.1 503 | dev: true 504 | 505 | /color-convert@1.9.3: 506 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 507 | dependencies: 508 | color-name: 1.1.3 509 | dev: true 510 | 511 | /color-convert@2.0.1: 512 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 513 | engines: {node: '>=7.0.0'} 514 | dependencies: 515 | color-name: 1.1.4 516 | dev: true 517 | 518 | /color-name@1.1.3: 519 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 520 | dev: true 521 | 522 | /color-name@1.1.4: 523 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 524 | dev: true 525 | 526 | /combined-stream@1.0.8: 527 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 528 | engines: {node: '>= 0.8'} 529 | dependencies: 530 | delayed-stream: 1.0.0 531 | dev: false 532 | 533 | /commander@6.2.0: 534 | resolution: {integrity: sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==} 535 | engines: {node: '>= 6'} 536 | dev: false 537 | 538 | /commander@9.5.0: 539 | resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} 540 | engines: {node: ^12.20.0 || >=14} 541 | requiresBuild: true 542 | dev: false 543 | optional: true 544 | 545 | /compromise-speech@0.1.0(compromise@14.14.0): 546 | resolution: {integrity: sha512-+2KS/8T3SH5Hcd6tsCBVfxrkdi7sbJfKAeXGYimQdKGgweDMt0FT03wVCDZ6EgLYxReftkRKp1pxLx2pQLj4Kg==} 547 | peerDependencies: 548 | compromise: '>=14.0.0' 549 | dependencies: 550 | compromise: 14.14.0 551 | dev: false 552 | 553 | /compromise@14.14.0: 554 | resolution: {integrity: sha512-0plNVaC0bGWZY3TeijP1xndyaAmjqBY1SSfsc/7ruVLTIfRCSHFLSd/uuK7ZTcaT/4y2u0lVn0et4tmmC98mRg==} 555 | engines: {node: '>=12.0.0'} 556 | dependencies: 557 | efrt: 2.7.0 558 | grad-school: 0.0.5 559 | suffix-thumb: 5.0.2 560 | dev: false 561 | 562 | /concat-map@0.0.1: 563 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 564 | 565 | /configstore@5.0.1: 566 | resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} 567 | engines: {node: '>=8'} 568 | dependencies: 569 | dot-prop: 5.3.0 570 | graceful-fs: 4.2.11 571 | make-dir: 3.1.0 572 | unique-string: 2.0.0 573 | write-file-atomic: 3.0.3 574 | xdg-basedir: 4.0.0 575 | dev: true 576 | 577 | /content-disposition@0.5.4: 578 | resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} 579 | engines: {node: '>= 0.6'} 580 | dependencies: 581 | safe-buffer: 5.2.1 582 | dev: false 583 | 584 | /content-type@1.0.5: 585 | resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} 586 | engines: {node: '>= 0.6'} 587 | dev: false 588 | 589 | /conventional-commit-types@3.0.0: 590 | resolution: {integrity: sha512-SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==} 591 | dev: true 592 | 593 | /cookie-signature@1.0.6: 594 | resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} 595 | dev: false 596 | 597 | /cookie@0.6.0: 598 | resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} 599 | engines: {node: '>= 0.6'} 600 | dev: false 601 | 602 | /cosmiconfig@7.1.0: 603 | resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} 604 | engines: {node: '>=10'} 605 | dependencies: 606 | '@types/parse-json': 4.0.2 607 | import-fresh: 3.3.0 608 | parse-json: 5.2.0 609 | path-type: 4.0.0 610 | yaml: 1.10.2 611 | dev: true 612 | 613 | /cross-spawn@7.0.3: 614 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 615 | engines: {node: '>= 8'} 616 | dependencies: 617 | path-key: 3.1.1 618 | shebang-command: 2.0.0 619 | which: 2.0.2 620 | dev: true 621 | 622 | /crypto-random-string@2.0.0: 623 | resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} 624 | engines: {node: '>=8'} 625 | dev: true 626 | 627 | /css-select@5.1.0: 628 | resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} 629 | dependencies: 630 | boolbase: 1.0.0 631 | css-what: 6.1.0 632 | domhandler: 5.0.3 633 | domutils: 3.1.0 634 | nth-check: 2.1.1 635 | dev: false 636 | 637 | /css-what@6.1.0: 638 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} 639 | engines: {node: '>= 6'} 640 | dev: false 641 | 642 | /debug@2.6.9: 643 | resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} 644 | peerDependencies: 645 | supports-color: '*' 646 | peerDependenciesMeta: 647 | supports-color: 648 | optional: true 649 | dependencies: 650 | ms: 2.0.0 651 | dev: false 652 | 653 | /debug@3.2.7(supports-color@5.5.0): 654 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 655 | peerDependencies: 656 | supports-color: '*' 657 | peerDependenciesMeta: 658 | supports-color: 659 | optional: true 660 | dependencies: 661 | ms: 2.1.3 662 | supports-color: 5.5.0 663 | dev: true 664 | 665 | /decamelize@1.2.0: 666 | resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} 667 | engines: {node: '>=0.10.0'} 668 | dev: true 669 | 670 | /decompress-response@3.3.0: 671 | resolution: {integrity: sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==} 672 | engines: {node: '>=4'} 673 | dependencies: 674 | mimic-response: 1.0.1 675 | dev: true 676 | 677 | /deep-extend@0.6.0: 678 | resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} 679 | engines: {node: '>=4.0.0'} 680 | dev: true 681 | 682 | /defer-to-connect@1.1.3: 683 | resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} 684 | dev: true 685 | 686 | /define-data-property@1.1.4: 687 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 688 | engines: {node: '>= 0.4'} 689 | dependencies: 690 | es-define-property: 1.0.0 691 | es-errors: 1.3.0 692 | gopd: 1.0.1 693 | dev: false 694 | 695 | /delayed-stream@1.0.0: 696 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 697 | engines: {node: '>=0.4.0'} 698 | dev: false 699 | 700 | /depd@2.0.0: 701 | resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} 702 | engines: {node: '>= 0.8'} 703 | dev: false 704 | 705 | /destroy@1.2.0: 706 | resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} 707 | engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} 708 | dev: false 709 | 710 | /didyoumean@1.2.2: 711 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 712 | dev: true 713 | 714 | /doctrine@3.0.0: 715 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 716 | engines: {node: '>=6.0.0'} 717 | dependencies: 718 | esutils: 2.0.3 719 | dev: false 720 | 721 | /dom-serializer@2.0.0: 722 | resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} 723 | dependencies: 724 | domelementtype: 2.3.0 725 | domhandler: 5.0.3 726 | entities: 4.5.0 727 | dev: false 728 | 729 | /domelementtype@2.3.0: 730 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 731 | dev: false 732 | 733 | /domhandler@5.0.3: 734 | resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} 735 | engines: {node: '>= 4'} 736 | dependencies: 737 | domelementtype: 2.3.0 738 | dev: false 739 | 740 | /domutils@3.1.0: 741 | resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} 742 | dependencies: 743 | dom-serializer: 2.0.0 744 | domelementtype: 2.3.0 745 | domhandler: 5.0.3 746 | dev: false 747 | 748 | /dot-prop@5.3.0: 749 | resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} 750 | engines: {node: '>=8'} 751 | dependencies: 752 | is-obj: 2.0.0 753 | dev: true 754 | 755 | /duplexer3@0.1.5: 756 | resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} 757 | dev: true 758 | 759 | /ee-first@1.1.1: 760 | resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} 761 | dev: false 762 | 763 | /efrt@2.7.0: 764 | resolution: {integrity: sha512-/RInbCy1d4P6Zdfa+TMVsf/ufZVotat5hCw3QXmWtjU+3pFEOvOQ7ibo3aIxyCJw2leIeAMjmPj+1SLJiCpdrQ==} 765 | engines: {node: '>=12.0.0'} 766 | dev: false 767 | 768 | /emoji-regex@8.0.0: 769 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 770 | dev: true 771 | 772 | /encodeurl@1.0.2: 773 | resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} 774 | engines: {node: '>= 0.8'} 775 | dev: false 776 | 777 | /encoding-sniffer@0.2.0: 778 | resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==} 779 | dependencies: 780 | iconv-lite: 0.6.3 781 | whatwg-encoding: 3.1.1 782 | dev: false 783 | 784 | /end-of-stream@1.4.4: 785 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 786 | dependencies: 787 | once: 1.4.0 788 | dev: true 789 | 790 | /entities@4.5.0: 791 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 792 | engines: {node: '>=0.12'} 793 | dev: false 794 | 795 | /error-ex@1.3.2: 796 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 797 | dependencies: 798 | is-arrayish: 0.2.1 799 | dev: true 800 | 801 | /es-define-property@1.0.0: 802 | resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} 803 | engines: {node: '>= 0.4'} 804 | dependencies: 805 | get-intrinsic: 1.2.4 806 | dev: false 807 | 808 | /es-errors@1.3.0: 809 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 810 | engines: {node: '>= 0.4'} 811 | dev: false 812 | 813 | /escalade@3.1.2: 814 | resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} 815 | engines: {node: '>=6'} 816 | dev: true 817 | 818 | /escape-goat@2.1.1: 819 | resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} 820 | engines: {node: '>=8'} 821 | dev: true 822 | 823 | /escape-html@1.0.3: 824 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 825 | dev: false 826 | 827 | /escape-string-regexp@1.0.5: 828 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 829 | engines: {node: '>=0.8.0'} 830 | dev: true 831 | 832 | /esutils@2.0.3: 833 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 834 | engines: {node: '>=0.10.0'} 835 | dev: false 836 | 837 | /etag@1.8.1: 838 | resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} 839 | engines: {node: '>= 0.6'} 840 | dev: false 841 | 842 | /execa@5.1.1: 843 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 844 | engines: {node: '>=10'} 845 | dependencies: 846 | cross-spawn: 7.0.3 847 | get-stream: 6.0.1 848 | human-signals: 2.1.0 849 | is-stream: 2.0.1 850 | merge-stream: 2.0.0 851 | npm-run-path: 4.0.1 852 | onetime: 5.1.2 853 | signal-exit: 3.0.7 854 | strip-final-newline: 2.0.0 855 | dev: true 856 | 857 | /express-rate-limit@7.4.0(express@4.19.2): 858 | resolution: {integrity: sha512-v1204w3cXu5gCDmAvgvzI6qjzZzoMWKnyVDk3ACgfswTQLYiGen+r8w0VnXnGMmzEN/g8fwIQ4JrFFd4ZP6ssg==} 859 | engines: {node: '>= 16'} 860 | peerDependencies: 861 | express: 4 || 5 || ^5.0.0-beta.1 862 | dependencies: 863 | express: 4.19.2 864 | dev: false 865 | 866 | /express@4.19.2: 867 | resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} 868 | engines: {node: '>= 0.10.0'} 869 | dependencies: 870 | accepts: 1.3.8 871 | array-flatten: 1.1.1 872 | body-parser: 1.20.2 873 | content-disposition: 0.5.4 874 | content-type: 1.0.5 875 | cookie: 0.6.0 876 | cookie-signature: 1.0.6 877 | debug: 2.6.9 878 | depd: 2.0.0 879 | encodeurl: 1.0.2 880 | escape-html: 1.0.3 881 | etag: 1.8.1 882 | finalhandler: 1.2.0 883 | fresh: 0.5.2 884 | http-errors: 2.0.0 885 | merge-descriptors: 1.0.1 886 | methods: 1.1.2 887 | on-finished: 2.4.1 888 | parseurl: 1.3.3 889 | path-to-regexp: 0.1.7 890 | proxy-addr: 2.0.7 891 | qs: 6.11.0 892 | range-parser: 1.2.1 893 | safe-buffer: 5.2.1 894 | send: 0.18.0 895 | serve-static: 1.15.0 896 | setprototypeof: 1.2.0 897 | statuses: 2.0.1 898 | type-is: 1.6.18 899 | utils-merge: 1.0.1 900 | vary: 1.1.2 901 | transitivePeerDependencies: 902 | - supports-color 903 | dev: false 904 | 905 | /external-editor@3.1.0: 906 | resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} 907 | engines: {node: '>=4'} 908 | dependencies: 909 | chardet: 0.7.0 910 | iconv-lite: 0.4.24 911 | tmp: 0.0.33 912 | dev: true 913 | 914 | /figures@3.2.0: 915 | resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} 916 | engines: {node: '>=8'} 917 | dependencies: 918 | escape-string-regexp: 1.0.5 919 | dev: true 920 | 921 | /fill-range@7.1.1: 922 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 923 | engines: {node: '>=8'} 924 | dependencies: 925 | to-regex-range: 5.0.1 926 | dev: true 927 | 928 | /finalhandler@1.2.0: 929 | resolution: {integrity: sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==} 930 | engines: {node: '>= 0.8'} 931 | dependencies: 932 | debug: 2.6.9 933 | encodeurl: 1.0.2 934 | escape-html: 1.0.3 935 | on-finished: 2.4.1 936 | parseurl: 1.3.3 937 | statuses: 2.0.1 938 | unpipe: 1.0.0 939 | transitivePeerDependencies: 940 | - supports-color 941 | dev: false 942 | 943 | /find-up@4.1.0: 944 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 945 | engines: {node: '>=8'} 946 | dependencies: 947 | locate-path: 5.0.0 948 | path-exists: 4.0.0 949 | dev: true 950 | 951 | /follow-redirects@1.15.6: 952 | resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} 953 | engines: {node: '>=4.0'} 954 | peerDependencies: 955 | debug: '*' 956 | peerDependenciesMeta: 957 | debug: 958 | optional: true 959 | dev: false 960 | 961 | /form-data@4.0.0: 962 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 963 | engines: {node: '>= 6'} 964 | dependencies: 965 | asynckit: 0.4.0 966 | combined-stream: 1.0.8 967 | mime-types: 2.1.35 968 | dev: false 969 | 970 | /forwarded@0.2.0: 971 | resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} 972 | engines: {node: '>= 0.6'} 973 | dev: false 974 | 975 | /fresh@0.5.2: 976 | resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} 977 | engines: {node: '>= 0.6'} 978 | dev: false 979 | 980 | /fs-extra@10.1.0: 981 | resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} 982 | engines: {node: '>=12'} 983 | dependencies: 984 | graceful-fs: 4.2.11 985 | jsonfile: 6.1.0 986 | universalify: 2.0.1 987 | dev: true 988 | 989 | /fs.realpath@1.0.0: 990 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 991 | dev: false 992 | 993 | /fsevents@2.3.3: 994 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 995 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 996 | os: [darwin] 997 | requiresBuild: true 998 | dev: true 999 | optional: true 1000 | 1001 | /function-bind@1.1.2: 1002 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1003 | dev: false 1004 | 1005 | /gacp@3.0.3: 1006 | resolution: {integrity: sha512-ncBb1MI/TRWhGVIRHJYl2MkLfVzrKHdy+9YlqzbdpAx0/yOktJQjrNeH0ublga49Jzk7VoSU8QdUfEexDJOd6g==} 1007 | hasBin: true 1008 | dependencies: 1009 | '@commitlint/load': 12.1.4 1010 | '@commitlint/types': 12.1.4 1011 | '@vivaxy/git': 4.2.1 1012 | chalk: 4.1.2 1013 | conventional-commit-types: 3.0.0 1014 | cosmiconfig: 7.1.0 1015 | execa: 5.1.1 1016 | external-editor: 3.1.0 1017 | figures: 3.2.0 1018 | fs-extra: 10.1.0 1019 | log-util: 2.3.0 1020 | prompts: 2.4.2 1021 | right-pad: 1.0.1 1022 | update-notifier: 5.1.0 1023 | word-wrap: 1.2.5 1024 | yargs: 17.7.2 1025 | dev: true 1026 | 1027 | /get-caller-file@2.0.5: 1028 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1029 | engines: {node: 6.* || 8.* || >= 10.*} 1030 | dev: true 1031 | 1032 | /get-intrinsic@1.2.4: 1033 | resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} 1034 | engines: {node: '>= 0.4'} 1035 | dependencies: 1036 | es-errors: 1.3.0 1037 | function-bind: 1.1.2 1038 | has-proto: 1.0.3 1039 | has-symbols: 1.0.3 1040 | hasown: 2.0.2 1041 | dev: false 1042 | 1043 | /get-stream@4.1.0: 1044 | resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} 1045 | engines: {node: '>=6'} 1046 | dependencies: 1047 | pump: 3.0.0 1048 | dev: true 1049 | 1050 | /get-stream@5.2.0: 1051 | resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} 1052 | engines: {node: '>=8'} 1053 | dependencies: 1054 | pump: 3.0.0 1055 | dev: true 1056 | 1057 | /get-stream@6.0.1: 1058 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 1059 | engines: {node: '>=10'} 1060 | dev: true 1061 | 1062 | /glob-parent@5.1.2: 1063 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1064 | engines: {node: '>= 6'} 1065 | dependencies: 1066 | is-glob: 4.0.3 1067 | dev: true 1068 | 1069 | /glob@7.1.6: 1070 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 1071 | deprecated: Glob versions prior to v9 are no longer supported 1072 | dependencies: 1073 | fs.realpath: 1.0.0 1074 | inflight: 1.0.6 1075 | inherits: 2.0.4 1076 | minimatch: 3.1.2 1077 | once: 1.4.0 1078 | path-is-absolute: 1.0.1 1079 | dev: false 1080 | 1081 | /global-dirs@0.1.1: 1082 | resolution: {integrity: sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg==} 1083 | engines: {node: '>=4'} 1084 | dependencies: 1085 | ini: 1.3.8 1086 | dev: true 1087 | 1088 | /global-dirs@3.0.1: 1089 | resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} 1090 | engines: {node: '>=10'} 1091 | dependencies: 1092 | ini: 2.0.0 1093 | dev: true 1094 | 1095 | /gopd@1.0.1: 1096 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1097 | dependencies: 1098 | get-intrinsic: 1.2.4 1099 | dev: false 1100 | 1101 | /got@9.6.0: 1102 | resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} 1103 | engines: {node: '>=8.6'} 1104 | dependencies: 1105 | '@sindresorhus/is': 0.14.0 1106 | '@szmarczak/http-timer': 1.1.2 1107 | '@types/keyv': 3.1.4 1108 | '@types/responselike': 1.0.3 1109 | cacheable-request: 6.1.0 1110 | decompress-response: 3.3.0 1111 | duplexer3: 0.1.5 1112 | get-stream: 4.1.0 1113 | lowercase-keys: 1.0.1 1114 | mimic-response: 1.0.1 1115 | p-cancelable: 1.1.0 1116 | to-readable-stream: 1.0.0 1117 | url-parse-lax: 3.0.0 1118 | dev: true 1119 | 1120 | /graceful-fs@4.2.11: 1121 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1122 | dev: true 1123 | 1124 | /grad-school@0.0.5: 1125 | resolution: {integrity: sha512-rXunEHF9M9EkMydTBux7+IryYXEZinRk6g8OBOGDBzo/qWJjhTxy86i5q7lQYpCLHN8Sqv1XX3OIOc7ka2gtvQ==} 1126 | engines: {node: '>=8.0.0'} 1127 | dev: false 1128 | 1129 | /has-flag@3.0.0: 1130 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1131 | engines: {node: '>=4'} 1132 | dev: true 1133 | 1134 | /has-flag@4.0.0: 1135 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1136 | engines: {node: '>=8'} 1137 | dev: true 1138 | 1139 | /has-property-descriptors@1.0.2: 1140 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 1141 | dependencies: 1142 | es-define-property: 1.0.0 1143 | dev: false 1144 | 1145 | /has-proto@1.0.3: 1146 | resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} 1147 | engines: {node: '>= 0.4'} 1148 | dev: false 1149 | 1150 | /has-symbols@1.0.3: 1151 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1152 | engines: {node: '>= 0.4'} 1153 | dev: false 1154 | 1155 | /has-yarn@2.1.0: 1156 | resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} 1157 | engines: {node: '>=8'} 1158 | dev: true 1159 | 1160 | /hasown@2.0.2: 1161 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1162 | engines: {node: '>= 0.4'} 1163 | dependencies: 1164 | function-bind: 1.1.2 1165 | dev: false 1166 | 1167 | /htmlparser2@9.1.0: 1168 | resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==} 1169 | dependencies: 1170 | domelementtype: 2.3.0 1171 | domhandler: 5.0.3 1172 | domutils: 3.1.0 1173 | entities: 4.5.0 1174 | dev: false 1175 | 1176 | /http-cache-semantics@4.1.1: 1177 | resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} 1178 | dev: true 1179 | 1180 | /http-errors@2.0.0: 1181 | resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 1182 | engines: {node: '>= 0.8'} 1183 | dependencies: 1184 | depd: 2.0.0 1185 | inherits: 2.0.4 1186 | setprototypeof: 1.2.0 1187 | statuses: 2.0.1 1188 | toidentifier: 1.0.1 1189 | dev: false 1190 | 1191 | /human-signals@2.1.0: 1192 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 1193 | engines: {node: '>=10.17.0'} 1194 | dev: true 1195 | 1196 | /iconv-lite@0.4.24: 1197 | resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} 1198 | engines: {node: '>=0.10.0'} 1199 | dependencies: 1200 | safer-buffer: 2.1.2 1201 | 1202 | /iconv-lite@0.6.3: 1203 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 1204 | engines: {node: '>=0.10.0'} 1205 | dependencies: 1206 | safer-buffer: 2.1.2 1207 | dev: false 1208 | 1209 | /ignore-by-default@1.0.1: 1210 | resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==} 1211 | dev: true 1212 | 1213 | /import-fresh@3.3.0: 1214 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1215 | engines: {node: '>=6'} 1216 | dependencies: 1217 | parent-module: 1.0.1 1218 | resolve-from: 4.0.0 1219 | dev: true 1220 | 1221 | /import-lazy@2.1.0: 1222 | resolution: {integrity: sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==} 1223 | engines: {node: '>=4'} 1224 | dev: true 1225 | 1226 | /imurmurhash@0.1.4: 1227 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1228 | engines: {node: '>=0.8.19'} 1229 | dev: true 1230 | 1231 | /inflight@1.0.6: 1232 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1233 | 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. 1234 | dependencies: 1235 | once: 1.4.0 1236 | wrappy: 1.0.2 1237 | dev: false 1238 | 1239 | /inherits@2.0.4: 1240 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1241 | dev: false 1242 | 1243 | /ini@1.3.8: 1244 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 1245 | dev: true 1246 | 1247 | /ini@2.0.0: 1248 | resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} 1249 | engines: {node: '>=10'} 1250 | dev: true 1251 | 1252 | /inquirer@7.3.3: 1253 | resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} 1254 | engines: {node: '>=8.0.0'} 1255 | dependencies: 1256 | ansi-escapes: 4.3.2 1257 | chalk: 4.1.2 1258 | cli-cursor: 3.1.0 1259 | cli-width: 3.0.0 1260 | external-editor: 3.1.0 1261 | figures: 3.2.0 1262 | lodash: 4.17.21 1263 | mute-stream: 0.0.8 1264 | run-async: 2.4.1 1265 | rxjs: 6.6.7 1266 | string-width: 4.2.3 1267 | strip-ansi: 6.0.1 1268 | through: 2.3.8 1269 | dev: true 1270 | 1271 | /ipaddr.js@1.9.1: 1272 | resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} 1273 | engines: {node: '>= 0.10'} 1274 | dev: false 1275 | 1276 | /is-arrayish@0.2.1: 1277 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 1278 | dev: true 1279 | 1280 | /is-binary-path@2.1.0: 1281 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1282 | engines: {node: '>=8'} 1283 | dependencies: 1284 | binary-extensions: 2.3.0 1285 | dev: true 1286 | 1287 | /is-ci@2.0.0: 1288 | resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} 1289 | hasBin: true 1290 | dependencies: 1291 | ci-info: 2.0.0 1292 | dev: true 1293 | 1294 | /is-extglob@2.1.1: 1295 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1296 | engines: {node: '>=0.10.0'} 1297 | dev: true 1298 | 1299 | /is-fullwidth-code-point@3.0.0: 1300 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1301 | engines: {node: '>=8'} 1302 | dev: true 1303 | 1304 | /is-glob@4.0.3: 1305 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1306 | engines: {node: '>=0.10.0'} 1307 | dependencies: 1308 | is-extglob: 2.1.1 1309 | dev: true 1310 | 1311 | /is-installed-globally@0.4.0: 1312 | resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} 1313 | engines: {node: '>=10'} 1314 | dependencies: 1315 | global-dirs: 3.0.1 1316 | is-path-inside: 3.0.3 1317 | dev: true 1318 | 1319 | /is-npm@5.0.0: 1320 | resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} 1321 | engines: {node: '>=10'} 1322 | dev: true 1323 | 1324 | /is-number@7.0.0: 1325 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1326 | engines: {node: '>=0.12.0'} 1327 | dev: true 1328 | 1329 | /is-obj@2.0.0: 1330 | resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} 1331 | engines: {node: '>=8'} 1332 | dev: true 1333 | 1334 | /is-path-inside@3.0.3: 1335 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1336 | engines: {node: '>=8'} 1337 | dev: true 1338 | 1339 | /is-stream@2.0.1: 1340 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 1341 | engines: {node: '>=8'} 1342 | dev: true 1343 | 1344 | /is-typedarray@1.0.0: 1345 | resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} 1346 | dev: true 1347 | 1348 | /is-yarn-global@0.3.0: 1349 | resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} 1350 | dev: true 1351 | 1352 | /isexe@2.0.0: 1353 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1354 | dev: true 1355 | 1356 | /js-tokens@4.0.0: 1357 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1358 | dev: true 1359 | 1360 | /js-yaml@4.1.0: 1361 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1362 | hasBin: true 1363 | dependencies: 1364 | argparse: 2.0.1 1365 | dev: false 1366 | 1367 | /json-buffer@3.0.0: 1368 | resolution: {integrity: sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==} 1369 | dev: true 1370 | 1371 | /json-fixer@1.6.15: 1372 | resolution: {integrity: sha512-TuDuZ5KrgyjoCIppdPXBMqiGfota55+odM+j2cQ5rt/XKyKmqGB3Whz1F8SN8+60yYGy/Nu5lbRZ+rx8kBIvBw==} 1373 | engines: {node: '>=10'} 1374 | dependencies: 1375 | '@babel/runtime': 7.25.4 1376 | chalk: 4.1.2 1377 | pegjs: 0.10.0 1378 | dev: true 1379 | 1380 | /json-parse-even-better-errors@2.3.1: 1381 | resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} 1382 | dev: true 1383 | 1384 | /json-stringify-safe@5.0.1: 1385 | resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} 1386 | dev: false 1387 | 1388 | /jsonfile@6.1.0: 1389 | resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} 1390 | dependencies: 1391 | universalify: 2.0.1 1392 | optionalDependencies: 1393 | graceful-fs: 4.2.11 1394 | dev: true 1395 | 1396 | /keyv@3.1.0: 1397 | resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} 1398 | dependencies: 1399 | json-buffer: 3.0.0 1400 | dev: true 1401 | 1402 | /kleur@3.0.3: 1403 | resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} 1404 | engines: {node: '>=6'} 1405 | dev: true 1406 | 1407 | /latest-version@5.1.0: 1408 | resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} 1409 | engines: {node: '>=8'} 1410 | dependencies: 1411 | package-json: 6.5.0 1412 | dev: true 1413 | 1414 | /lines-and-columns@1.2.4: 1415 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1416 | dev: true 1417 | 1418 | /locate-path@5.0.0: 1419 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1420 | engines: {node: '>=8'} 1421 | dependencies: 1422 | p-locate: 4.1.0 1423 | dev: true 1424 | 1425 | /lodash.get@4.4.2: 1426 | resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} 1427 | dev: false 1428 | 1429 | /lodash.isequal@4.5.0: 1430 | resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} 1431 | dev: false 1432 | 1433 | /lodash.mergewith@4.6.2: 1434 | resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} 1435 | dev: false 1436 | 1437 | /lodash@4.17.21: 1438 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1439 | dev: true 1440 | 1441 | /log-symbols@3.0.0: 1442 | resolution: {integrity: sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==} 1443 | engines: {node: '>=8'} 1444 | dependencies: 1445 | chalk: 2.4.2 1446 | dev: true 1447 | 1448 | /log-util@2.3.0: 1449 | resolution: {integrity: sha512-ZFjjNKfCGicmPGUlcQX32TvOP/72qNpjgKha5MCsYPHj1rdQI4Cn6QSNGUpdzmG1KYAX3v/76oRG0df2M9nOKQ==} 1450 | dependencies: 1451 | chalk: 2.4.2 1452 | figures: 3.2.0 1453 | log-symbols: 3.0.0 1454 | dev: true 1455 | 1456 | /lowercase-keys@1.0.1: 1457 | resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} 1458 | engines: {node: '>=0.10.0'} 1459 | dev: true 1460 | 1461 | /lowercase-keys@2.0.0: 1462 | resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} 1463 | engines: {node: '>=8'} 1464 | dev: true 1465 | 1466 | /make-dir@3.1.0: 1467 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} 1468 | engines: {node: '>=8'} 1469 | dependencies: 1470 | semver: 6.3.1 1471 | dev: true 1472 | 1473 | /media-typer@0.3.0: 1474 | resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} 1475 | engines: {node: '>= 0.6'} 1476 | dev: false 1477 | 1478 | /merge-descriptors@1.0.1: 1479 | resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==} 1480 | dev: false 1481 | 1482 | /merge-stream@2.0.0: 1483 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1484 | dev: true 1485 | 1486 | /methods@1.1.2: 1487 | resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} 1488 | engines: {node: '>= 0.6'} 1489 | dev: false 1490 | 1491 | /mime-db@1.52.0: 1492 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1493 | engines: {node: '>= 0.6'} 1494 | dev: false 1495 | 1496 | /mime-types@2.1.35: 1497 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1498 | engines: {node: '>= 0.6'} 1499 | dependencies: 1500 | mime-db: 1.52.0 1501 | dev: false 1502 | 1503 | /mime@1.6.0: 1504 | resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} 1505 | engines: {node: '>=4'} 1506 | hasBin: true 1507 | dev: false 1508 | 1509 | /mimic-fn@2.1.0: 1510 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 1511 | engines: {node: '>=6'} 1512 | dev: true 1513 | 1514 | /mimic-response@1.0.1: 1515 | resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} 1516 | engines: {node: '>=4'} 1517 | dev: true 1518 | 1519 | /minimatch@3.1.2: 1520 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1521 | dependencies: 1522 | brace-expansion: 1.1.11 1523 | 1524 | /minimist@1.2.8: 1525 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1526 | dev: true 1527 | 1528 | /ms@2.0.0: 1529 | resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} 1530 | dev: false 1531 | 1532 | /ms@2.1.3: 1533 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1534 | 1535 | /mute-stream@0.0.8: 1536 | resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} 1537 | dev: true 1538 | 1539 | /negotiator@0.6.3: 1540 | resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} 1541 | engines: {node: '>= 0.6'} 1542 | dev: false 1543 | 1544 | /node-fetch@2.7.0: 1545 | resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} 1546 | engines: {node: 4.x || >=6.0.0} 1547 | peerDependencies: 1548 | encoding: ^0.1.0 1549 | peerDependenciesMeta: 1550 | encoding: 1551 | optional: true 1552 | dependencies: 1553 | whatwg-url: 5.0.0 1554 | dev: true 1555 | 1556 | /node-pronounce@0.0.4: 1557 | resolution: {integrity: sha512-rX8YDCHU2uXMVklgaZ2OsuEzpp9Vg4ms1qnn6qTTA1wrU596N5rJv8Q+62xvLPj70jPJ8S+K24XiTTprecj0rQ==} 1558 | dependencies: 1559 | compromise: 14.14.0 1560 | compromise-speech: 0.1.0(compromise@14.14.0) 1561 | dev: false 1562 | 1563 | /nodemon@2.0.22: 1564 | resolution: {integrity: sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==} 1565 | engines: {node: '>=8.10.0'} 1566 | hasBin: true 1567 | dependencies: 1568 | chokidar: 3.6.0 1569 | debug: 3.2.7(supports-color@5.5.0) 1570 | ignore-by-default: 1.0.1 1571 | minimatch: 3.1.2 1572 | pstree.remy: 1.1.8 1573 | semver: 5.7.2 1574 | simple-update-notifier: 1.1.0 1575 | supports-color: 5.5.0 1576 | touch: 3.1.1 1577 | undefsafe: 2.0.5 1578 | dev: true 1579 | 1580 | /normalize-path@3.0.0: 1581 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1582 | engines: {node: '>=0.10.0'} 1583 | dev: true 1584 | 1585 | /normalize-url@4.5.1: 1586 | resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} 1587 | engines: {node: '>=8'} 1588 | dev: true 1589 | 1590 | /npm-run-path@4.0.1: 1591 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 1592 | engines: {node: '>=8'} 1593 | dependencies: 1594 | path-key: 3.1.1 1595 | dev: true 1596 | 1597 | /nth-check@2.1.1: 1598 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 1599 | dependencies: 1600 | boolbase: 1.0.0 1601 | dev: false 1602 | 1603 | /object-inspect@1.13.2: 1604 | resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} 1605 | engines: {node: '>= 0.4'} 1606 | dev: false 1607 | 1608 | /on-finished@2.4.1: 1609 | resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} 1610 | engines: {node: '>= 0.8'} 1611 | dependencies: 1612 | ee-first: 1.1.1 1613 | dev: false 1614 | 1615 | /once@1.4.0: 1616 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1617 | dependencies: 1618 | wrappy: 1.0.2 1619 | 1620 | /onetime@5.1.2: 1621 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 1622 | engines: {node: '>=6'} 1623 | dependencies: 1624 | mimic-fn: 2.1.0 1625 | dev: true 1626 | 1627 | /openapi-types@12.1.3: 1628 | resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} 1629 | dev: false 1630 | 1631 | /os-tmpdir@1.0.2: 1632 | resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} 1633 | engines: {node: '>=0.10.0'} 1634 | dev: true 1635 | 1636 | /p-cancelable@1.1.0: 1637 | resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} 1638 | engines: {node: '>=6'} 1639 | dev: true 1640 | 1641 | /p-limit@2.3.0: 1642 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 1643 | engines: {node: '>=6'} 1644 | dependencies: 1645 | p-try: 2.2.0 1646 | dev: true 1647 | 1648 | /p-locate@4.1.0: 1649 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 1650 | engines: {node: '>=8'} 1651 | dependencies: 1652 | p-limit: 2.3.0 1653 | dev: true 1654 | 1655 | /p-try@2.2.0: 1656 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 1657 | engines: {node: '>=6'} 1658 | dev: true 1659 | 1660 | /package-json@6.5.0: 1661 | resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} 1662 | engines: {node: '>=8'} 1663 | dependencies: 1664 | got: 9.6.0 1665 | registry-auth-token: 4.2.2 1666 | registry-url: 5.1.0 1667 | semver: 6.3.1 1668 | dev: true 1669 | 1670 | /parent-module@1.0.1: 1671 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1672 | engines: {node: '>=6'} 1673 | dependencies: 1674 | callsites: 3.1.0 1675 | dev: true 1676 | 1677 | /parse-json@5.2.0: 1678 | resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} 1679 | engines: {node: '>=8'} 1680 | dependencies: 1681 | '@babel/code-frame': 7.24.7 1682 | error-ex: 1.3.2 1683 | json-parse-even-better-errors: 2.3.1 1684 | lines-and-columns: 1.2.4 1685 | dev: true 1686 | 1687 | /parse5-htmlparser2-tree-adapter@7.0.0: 1688 | resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} 1689 | dependencies: 1690 | domhandler: 5.0.3 1691 | parse5: 7.1.2 1692 | dev: false 1693 | 1694 | /parse5-parser-stream@7.1.2: 1695 | resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} 1696 | dependencies: 1697 | parse5: 7.1.2 1698 | dev: false 1699 | 1700 | /parse5@7.1.2: 1701 | resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} 1702 | dependencies: 1703 | entities: 4.5.0 1704 | dev: false 1705 | 1706 | /parseurl@1.3.3: 1707 | resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} 1708 | engines: {node: '>= 0.8'} 1709 | dev: false 1710 | 1711 | /path-exists@4.0.0: 1712 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1713 | engines: {node: '>=8'} 1714 | dev: true 1715 | 1716 | /path-is-absolute@1.0.1: 1717 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1718 | engines: {node: '>=0.10.0'} 1719 | dev: false 1720 | 1721 | /path-key@3.1.1: 1722 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1723 | engines: {node: '>=8'} 1724 | dev: true 1725 | 1726 | /path-to-regexp@0.1.7: 1727 | resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} 1728 | dev: false 1729 | 1730 | /path-type@4.0.0: 1731 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1732 | engines: {node: '>=8'} 1733 | dev: true 1734 | 1735 | /pegjs@0.10.0: 1736 | resolution: {integrity: sha512-qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow==} 1737 | engines: {node: '>=0.10'} 1738 | hasBin: true 1739 | dev: true 1740 | 1741 | /picocolors@1.0.1: 1742 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} 1743 | dev: true 1744 | 1745 | /picomatch@2.3.1: 1746 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1747 | engines: {node: '>=8.6'} 1748 | dev: true 1749 | 1750 | /pify@5.0.0: 1751 | resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} 1752 | engines: {node: '>=10'} 1753 | dev: true 1754 | 1755 | /prepend-http@2.0.0: 1756 | resolution: {integrity: sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==} 1757 | engines: {node: '>=4'} 1758 | dev: true 1759 | 1760 | /prettier@2.8.8: 1761 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 1762 | engines: {node: '>=10.13.0'} 1763 | hasBin: true 1764 | requiresBuild: true 1765 | dev: true 1766 | optional: true 1767 | 1768 | /prompts@2.4.2: 1769 | resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} 1770 | engines: {node: '>= 6'} 1771 | dependencies: 1772 | kleur: 3.0.3 1773 | sisteransi: 1.0.5 1774 | dev: true 1775 | 1776 | /proxy-addr@2.0.7: 1777 | resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} 1778 | engines: {node: '>= 0.10'} 1779 | dependencies: 1780 | forwarded: 0.2.0 1781 | ipaddr.js: 1.9.1 1782 | dev: false 1783 | 1784 | /proxy-from-env@1.1.0: 1785 | resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} 1786 | dev: false 1787 | 1788 | /pstree.remy@1.1.8: 1789 | resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} 1790 | dev: true 1791 | 1792 | /pump@3.0.0: 1793 | resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} 1794 | dependencies: 1795 | end-of-stream: 1.4.4 1796 | once: 1.4.0 1797 | dev: true 1798 | 1799 | /pupa@2.1.1: 1800 | resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} 1801 | engines: {node: '>=8'} 1802 | dependencies: 1803 | escape-goat: 2.1.1 1804 | dev: true 1805 | 1806 | /qs@6.11.0: 1807 | resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} 1808 | engines: {node: '>=0.6'} 1809 | dependencies: 1810 | side-channel: 1.0.6 1811 | dev: false 1812 | 1813 | /random-array-item@0.0.2: 1814 | resolution: {integrity: sha512-MF6cmiF8hApGJC/HcGdszIcwjhzNjVKsO7ytgqLgyMHpmiqF0keIvxi/2wvd7LraAnCM34khUZb0QhSh6NDIFA==} 1815 | dev: false 1816 | 1817 | /random-seed@0.3.0: 1818 | resolution: {integrity: sha512-y13xtn3kcTlLub3HKWXxJNeC2qK4mB59evwZ5EkeRlolx+Bp2ztF7LbcZmyCnOqlHQrLnfuNbi1sVmm9lPDlDA==} 1819 | engines: {node: '>= 0.6.0'} 1820 | dependencies: 1821 | json-stringify-safe: 5.0.1 1822 | dev: false 1823 | 1824 | /random-useragent@0.5.0: 1825 | resolution: {integrity: sha512-FUMkqVdZeoSff5tErNL3FFGYXElDWZ1bEuedhm5u9MdCFwANriJWbHvDRYrLTOzp/fBsBGu5J1cWtDgifa97aQ==} 1826 | dependencies: 1827 | random-seed: 0.3.0 1828 | dev: false 1829 | 1830 | /range-parser@1.2.1: 1831 | resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} 1832 | engines: {node: '>= 0.6'} 1833 | dev: false 1834 | 1835 | /raw-body@2.5.2: 1836 | resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} 1837 | engines: {node: '>= 0.8'} 1838 | dependencies: 1839 | bytes: 3.1.2 1840 | http-errors: 2.0.0 1841 | iconv-lite: 0.4.24 1842 | unpipe: 1.0.0 1843 | dev: false 1844 | 1845 | /rc@1.2.8: 1846 | resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} 1847 | hasBin: true 1848 | dependencies: 1849 | deep-extend: 0.6.0 1850 | ini: 1.3.8 1851 | minimist: 1.2.8 1852 | strip-json-comments: 2.0.1 1853 | dev: true 1854 | 1855 | /readdirp@3.6.0: 1856 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1857 | engines: {node: '>=8.10.0'} 1858 | dependencies: 1859 | picomatch: 2.3.1 1860 | dev: true 1861 | 1862 | /regenerator-runtime@0.14.1: 1863 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 1864 | dev: true 1865 | 1866 | /registry-auth-token@4.2.2: 1867 | resolution: {integrity: sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==} 1868 | engines: {node: '>=6.0.0'} 1869 | dependencies: 1870 | rc: 1.2.8 1871 | dev: true 1872 | 1873 | /registry-url@5.1.0: 1874 | resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} 1875 | engines: {node: '>=8'} 1876 | dependencies: 1877 | rc: 1.2.8 1878 | dev: true 1879 | 1880 | /require-directory@2.1.1: 1881 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 1882 | engines: {node: '>=0.10.0'} 1883 | dev: true 1884 | 1885 | /require-main-filename@2.0.0: 1886 | resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} 1887 | dev: true 1888 | 1889 | /resolve-from@4.0.0: 1890 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1891 | engines: {node: '>=4'} 1892 | dev: true 1893 | 1894 | /resolve-from@5.0.0: 1895 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1896 | engines: {node: '>=8'} 1897 | dev: true 1898 | 1899 | /resolve-global@1.0.0: 1900 | resolution: {integrity: sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==} 1901 | engines: {node: '>=8'} 1902 | dependencies: 1903 | global-dirs: 0.1.1 1904 | dev: true 1905 | 1906 | /responselike@1.0.2: 1907 | resolution: {integrity: sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==} 1908 | dependencies: 1909 | lowercase-keys: 1.0.1 1910 | dev: true 1911 | 1912 | /restore-cursor@3.1.0: 1913 | resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} 1914 | engines: {node: '>=8'} 1915 | dependencies: 1916 | onetime: 5.1.2 1917 | signal-exit: 3.0.7 1918 | dev: true 1919 | 1920 | /right-pad@1.0.1: 1921 | resolution: {integrity: sha512-bYBjgxmkvTAfgIYy328fmkwhp39v8lwVgWhhrzxPV3yHtcSqyYKe9/XOhvW48UFjATg3VuJbpsp5822ACNvkmw==} 1922 | engines: {node: '>= 0.10'} 1923 | deprecated: Please use String.prototype.padEnd() over this package. 1924 | dev: true 1925 | 1926 | /run-async@2.4.1: 1927 | resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} 1928 | engines: {node: '>=0.12.0'} 1929 | dev: true 1930 | 1931 | /rxjs@6.6.7: 1932 | resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} 1933 | engines: {npm: '>=2.0.0'} 1934 | dependencies: 1935 | tslib: 1.14.1 1936 | dev: true 1937 | 1938 | /safe-buffer@5.2.1: 1939 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1940 | dev: false 1941 | 1942 | /safer-buffer@2.1.2: 1943 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1944 | 1945 | /semver-diff@3.1.1: 1946 | resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} 1947 | engines: {node: '>=8'} 1948 | dependencies: 1949 | semver: 6.3.1 1950 | dev: true 1951 | 1952 | /semver@5.7.2: 1953 | resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} 1954 | hasBin: true 1955 | dev: true 1956 | 1957 | /semver@6.3.1: 1958 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1959 | hasBin: true 1960 | dev: true 1961 | 1962 | /semver@7.0.0: 1963 | resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} 1964 | hasBin: true 1965 | dev: true 1966 | 1967 | /semver@7.6.3: 1968 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 1969 | engines: {node: '>=10'} 1970 | hasBin: true 1971 | dev: true 1972 | 1973 | /send@0.18.0: 1974 | resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} 1975 | engines: {node: '>= 0.8.0'} 1976 | dependencies: 1977 | debug: 2.6.9 1978 | depd: 2.0.0 1979 | destroy: 1.2.0 1980 | encodeurl: 1.0.2 1981 | escape-html: 1.0.3 1982 | etag: 1.8.1 1983 | fresh: 0.5.2 1984 | http-errors: 2.0.0 1985 | mime: 1.6.0 1986 | ms: 2.1.3 1987 | on-finished: 2.4.1 1988 | range-parser: 1.2.1 1989 | statuses: 2.0.1 1990 | transitivePeerDependencies: 1991 | - supports-color 1992 | dev: false 1993 | 1994 | /serve-static@1.15.0: 1995 | resolution: {integrity: sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==} 1996 | engines: {node: '>= 0.8.0'} 1997 | dependencies: 1998 | encodeurl: 1.0.2 1999 | escape-html: 1.0.3 2000 | parseurl: 1.3.3 2001 | send: 0.18.0 2002 | transitivePeerDependencies: 2003 | - supports-color 2004 | dev: false 2005 | 2006 | /set-blocking@2.0.0: 2007 | resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} 2008 | dev: true 2009 | 2010 | /set-function-length@1.2.2: 2011 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 2012 | engines: {node: '>= 0.4'} 2013 | dependencies: 2014 | define-data-property: 1.1.4 2015 | es-errors: 1.3.0 2016 | function-bind: 1.1.2 2017 | get-intrinsic: 1.2.4 2018 | gopd: 1.0.1 2019 | has-property-descriptors: 1.0.2 2020 | dev: false 2021 | 2022 | /setprototypeof@1.2.0: 2023 | resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} 2024 | dev: false 2025 | 2026 | /shebang-command@2.0.0: 2027 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2028 | engines: {node: '>=8'} 2029 | dependencies: 2030 | shebang-regex: 3.0.0 2031 | dev: true 2032 | 2033 | /shebang-regex@3.0.0: 2034 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2035 | engines: {node: '>=8'} 2036 | dev: true 2037 | 2038 | /side-channel@1.0.6: 2039 | resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} 2040 | engines: {node: '>= 0.4'} 2041 | dependencies: 2042 | call-bind: 1.0.7 2043 | es-errors: 1.3.0 2044 | get-intrinsic: 1.2.4 2045 | object-inspect: 1.13.2 2046 | dev: false 2047 | 2048 | /signal-exit@3.0.7: 2049 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 2050 | dev: true 2051 | 2052 | /simple-update-notifier@1.1.0: 2053 | resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==} 2054 | engines: {node: '>=8.10.0'} 2055 | dependencies: 2056 | semver: 7.0.0 2057 | dev: true 2058 | 2059 | /sisteransi@1.0.5: 2060 | resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} 2061 | dev: true 2062 | 2063 | /statuses@2.0.1: 2064 | resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} 2065 | engines: {node: '>= 0.8'} 2066 | dev: false 2067 | 2068 | /string-width@4.2.3: 2069 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 2070 | engines: {node: '>=8'} 2071 | dependencies: 2072 | emoji-regex: 8.0.0 2073 | is-fullwidth-code-point: 3.0.0 2074 | strip-ansi: 6.0.1 2075 | dev: true 2076 | 2077 | /strip-ansi@6.0.1: 2078 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2079 | engines: {node: '>=8'} 2080 | dependencies: 2081 | ansi-regex: 5.0.1 2082 | dev: true 2083 | 2084 | /strip-final-newline@2.0.0: 2085 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 2086 | engines: {node: '>=6'} 2087 | dev: true 2088 | 2089 | /strip-json-comments@2.0.1: 2090 | resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} 2091 | engines: {node: '>=0.10.0'} 2092 | dev: true 2093 | 2094 | /suffix-thumb@5.0.2: 2095 | resolution: {integrity: sha512-I5PWXAFKx3FYnI9a+dQMWNqTxoRt6vdBdb0O+BJ1sxXCWtSoQCusc13E58f+9p4MYx/qCnEMkD5jac6K2j3dgA==} 2096 | dev: false 2097 | 2098 | /supports-color@5.5.0: 2099 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 2100 | engines: {node: '>=4'} 2101 | dependencies: 2102 | has-flag: 3.0.0 2103 | dev: true 2104 | 2105 | /supports-color@7.2.0: 2106 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2107 | engines: {node: '>=8'} 2108 | dependencies: 2109 | has-flag: 4.0.0 2110 | dev: true 2111 | 2112 | /swagger-jsdoc@6.2.8(openapi-types@12.1.3): 2113 | resolution: {integrity: sha512-VPvil1+JRpmJ55CgAtn8DIcpBs0bL5L3q5bVQvF4tAW/k/9JYSj7dCpaYCAv5rufe0vcCbBRQXGvzpkWjvLklQ==} 2114 | engines: {node: '>=12.0.0'} 2115 | hasBin: true 2116 | dependencies: 2117 | commander: 6.2.0 2118 | doctrine: 3.0.0 2119 | glob: 7.1.6 2120 | lodash.mergewith: 4.6.2 2121 | swagger-parser: 10.0.3(openapi-types@12.1.3) 2122 | yaml: 2.0.0-1 2123 | transitivePeerDependencies: 2124 | - openapi-types 2125 | dev: false 2126 | 2127 | /swagger-parser@10.0.3(openapi-types@12.1.3): 2128 | resolution: {integrity: sha512-nF7oMeL4KypldrQhac8RyHerJeGPD1p2xDh900GPvc+Nk7nWP6jX2FcC7WmkinMoAmoO774+AFXcWsW8gMWEIg==} 2129 | engines: {node: '>=10'} 2130 | dependencies: 2131 | '@apidevtools/swagger-parser': 10.0.3(openapi-types@12.1.3) 2132 | transitivePeerDependencies: 2133 | - openapi-types 2134 | dev: false 2135 | 2136 | /swagger-ui-dist@5.17.14: 2137 | resolution: {integrity: sha512-CVbSfaLpstV65OnSjbXfVd6Sta3q3F7Cj/yYuvHMp1P90LztOLs6PfUnKEVAeiIVQt9u2SaPwv0LiH/OyMjHRw==} 2138 | dev: false 2139 | 2140 | /swagger-ui-express@5.0.1(express@4.19.2): 2141 | resolution: {integrity: sha512-SrNU3RiBGTLLmFU8GIJdOdanJTl4TOmT27tt3bWWHppqYmAZ6IDuEuBvMU6nZq0zLEe6b/1rACXCgLZqO6ZfrA==} 2142 | engines: {node: '>= v0.10.32'} 2143 | peerDependencies: 2144 | express: '>=4.0.0 || >=5.0.0-beta' 2145 | dependencies: 2146 | express: 4.19.2 2147 | swagger-ui-dist: 5.17.14 2148 | dev: false 2149 | 2150 | /through@2.3.8: 2151 | resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} 2152 | dev: true 2153 | 2154 | /tmp@0.0.33: 2155 | resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} 2156 | engines: {node: '>=0.6.0'} 2157 | dependencies: 2158 | os-tmpdir: 1.0.2 2159 | dev: true 2160 | 2161 | /to-readable-stream@1.0.0: 2162 | resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} 2163 | engines: {node: '>=6'} 2164 | dev: true 2165 | 2166 | /to-regex-range@5.0.1: 2167 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2168 | engines: {node: '>=8.0'} 2169 | dependencies: 2170 | is-number: 7.0.0 2171 | dev: true 2172 | 2173 | /toidentifier@1.0.1: 2174 | resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} 2175 | engines: {node: '>=0.6'} 2176 | dev: false 2177 | 2178 | /touch@3.1.1: 2179 | resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} 2180 | hasBin: true 2181 | dev: true 2182 | 2183 | /tr46@0.0.3: 2184 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 2185 | dev: true 2186 | 2187 | /tslib@1.14.1: 2188 | resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} 2189 | dev: true 2190 | 2191 | /type-fest@0.20.2: 2192 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2193 | engines: {node: '>=10'} 2194 | dev: true 2195 | 2196 | /type-fest@0.21.3: 2197 | resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} 2198 | engines: {node: '>=10'} 2199 | dev: true 2200 | 2201 | /type-is@1.6.18: 2202 | resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} 2203 | engines: {node: '>= 0.6'} 2204 | dependencies: 2205 | media-typer: 0.3.0 2206 | mime-types: 2.1.35 2207 | dev: false 2208 | 2209 | /typedarray-to-buffer@3.1.5: 2210 | resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} 2211 | dependencies: 2212 | is-typedarray: 1.0.0 2213 | dev: true 2214 | 2215 | /undefsafe@2.0.5: 2216 | resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==} 2217 | dev: true 2218 | 2219 | /undici-types@6.19.8: 2220 | resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} 2221 | dev: true 2222 | 2223 | /undici@6.19.8: 2224 | resolution: {integrity: sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==} 2225 | engines: {node: '>=18.17'} 2226 | dev: false 2227 | 2228 | /unique-string@2.0.0: 2229 | resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} 2230 | engines: {node: '>=8'} 2231 | dependencies: 2232 | crypto-random-string: 2.0.0 2233 | dev: true 2234 | 2235 | /universalify@2.0.1: 2236 | resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} 2237 | engines: {node: '>= 10.0.0'} 2238 | dev: true 2239 | 2240 | /unpipe@1.0.0: 2241 | resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} 2242 | engines: {node: '>= 0.8'} 2243 | dev: false 2244 | 2245 | /update-notifier@5.1.0: 2246 | resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} 2247 | engines: {node: '>=10'} 2248 | dependencies: 2249 | boxen: 5.1.2 2250 | chalk: 4.1.2 2251 | configstore: 5.0.1 2252 | has-yarn: 2.1.0 2253 | import-lazy: 2.1.0 2254 | is-ci: 2.0.0 2255 | is-installed-globally: 0.4.0 2256 | is-npm: 5.0.0 2257 | is-yarn-global: 0.3.0 2258 | latest-version: 5.1.0 2259 | pupa: 2.1.1 2260 | semver: 7.6.3 2261 | semver-diff: 3.1.1 2262 | xdg-basedir: 4.0.0 2263 | dev: true 2264 | 2265 | /url-parse-lax@3.0.0: 2266 | resolution: {integrity: sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==} 2267 | engines: {node: '>=4'} 2268 | dependencies: 2269 | prepend-http: 2.0.0 2270 | dev: true 2271 | 2272 | /utils-merge@1.0.1: 2273 | resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} 2274 | engines: {node: '>= 0.4.0'} 2275 | dev: false 2276 | 2277 | /validator@13.12.0: 2278 | resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} 2279 | engines: {node: '>= 0.10'} 2280 | dev: false 2281 | 2282 | /vary@1.1.2: 2283 | resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} 2284 | engines: {node: '>= 0.8'} 2285 | dev: false 2286 | 2287 | /webidl-conversions@3.0.1: 2288 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 2289 | dev: true 2290 | 2291 | /whatwg-encoding@3.1.1: 2292 | resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} 2293 | engines: {node: '>=18'} 2294 | dependencies: 2295 | iconv-lite: 0.6.3 2296 | dev: false 2297 | 2298 | /whatwg-mimetype@4.0.0: 2299 | resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} 2300 | engines: {node: '>=18'} 2301 | dev: false 2302 | 2303 | /whatwg-url@5.0.0: 2304 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 2305 | dependencies: 2306 | tr46: 0.0.3 2307 | webidl-conversions: 3.0.1 2308 | dev: true 2309 | 2310 | /which-module@2.0.1: 2311 | resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} 2312 | dev: true 2313 | 2314 | /which@2.0.2: 2315 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2316 | engines: {node: '>= 8'} 2317 | hasBin: true 2318 | dependencies: 2319 | isexe: 2.0.0 2320 | dev: true 2321 | 2322 | /widest-line@3.1.0: 2323 | resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} 2324 | engines: {node: '>=8'} 2325 | dependencies: 2326 | string-width: 4.2.3 2327 | dev: true 2328 | 2329 | /word-wrap@1.2.5: 2330 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 2331 | engines: {node: '>=0.10.0'} 2332 | dev: true 2333 | 2334 | /wrap-ansi@6.2.0: 2335 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 2336 | engines: {node: '>=8'} 2337 | dependencies: 2338 | ansi-styles: 4.3.0 2339 | string-width: 4.2.3 2340 | strip-ansi: 6.0.1 2341 | dev: true 2342 | 2343 | /wrap-ansi@7.0.0: 2344 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2345 | engines: {node: '>=10'} 2346 | dependencies: 2347 | ansi-styles: 4.3.0 2348 | string-width: 4.2.3 2349 | strip-ansi: 6.0.1 2350 | dev: true 2351 | 2352 | /wrappy@1.0.2: 2353 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2354 | 2355 | /write-file-atomic@3.0.3: 2356 | resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} 2357 | dependencies: 2358 | imurmurhash: 0.1.4 2359 | is-typedarray: 1.0.0 2360 | signal-exit: 3.0.7 2361 | typedarray-to-buffer: 3.1.5 2362 | dev: true 2363 | 2364 | /xdg-basedir@4.0.0: 2365 | resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} 2366 | engines: {node: '>=8'} 2367 | dev: true 2368 | 2369 | /y18n@4.0.3: 2370 | resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} 2371 | dev: true 2372 | 2373 | /y18n@5.0.8: 2374 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 2375 | engines: {node: '>=10'} 2376 | dev: true 2377 | 2378 | /yaml@1.10.2: 2379 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 2380 | engines: {node: '>= 6'} 2381 | dev: true 2382 | 2383 | /yaml@2.0.0-1: 2384 | resolution: {integrity: sha512-W7h5dEhywMKenDJh2iX/LABkbFnBxasD27oyXWDS/feDsxiw0dD5ncXdYXgkvAsXIY2MpW/ZKkr9IU30DBdMNQ==} 2385 | engines: {node: '>= 6'} 2386 | dev: false 2387 | 2388 | /yargs-parser@18.1.3: 2389 | resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} 2390 | engines: {node: '>=6'} 2391 | dependencies: 2392 | camelcase: 5.3.1 2393 | decamelize: 1.2.0 2394 | dev: true 2395 | 2396 | /yargs-parser@21.1.1: 2397 | resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 2398 | engines: {node: '>=12'} 2399 | dev: true 2400 | 2401 | /yargs@15.4.1: 2402 | resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} 2403 | engines: {node: '>=8'} 2404 | dependencies: 2405 | cliui: 6.0.0 2406 | decamelize: 1.2.0 2407 | find-up: 4.1.0 2408 | get-caller-file: 2.0.5 2409 | require-directory: 2.1.1 2410 | require-main-filename: 2.0.0 2411 | set-blocking: 2.0.0 2412 | string-width: 4.2.3 2413 | which-module: 2.0.1 2414 | y18n: 4.0.3 2415 | yargs-parser: 18.1.3 2416 | dev: true 2417 | 2418 | /yargs@17.7.2: 2419 | resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} 2420 | engines: {node: '>=12'} 2421 | dependencies: 2422 | cliui: 8.0.1 2423 | escalade: 3.1.2 2424 | get-caller-file: 2.0.5 2425 | require-directory: 2.1.1 2426 | string-width: 4.2.3 2427 | y18n: 5.0.8 2428 | yargs-parser: 21.1.1 2429 | dev: true 2430 | 2431 | /z-schema@5.0.5: 2432 | resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==} 2433 | engines: {node: '>=8.0.0'} 2434 | hasBin: true 2435 | dependencies: 2436 | lodash.get: 4.4.2 2437 | lodash.isequal: 4.5.0 2438 | validator: 13.12.0 2439 | optionalDependencies: 2440 | commander: 9.5.0 2441 | dev: false 2442 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["config:base"], 3 | "automerge": false, 4 | "major": { 5 | "automerge": false 6 | }, 7 | "lockFileMaintenance": { 8 | "enabled": false, 9 | "automerge": false 10 | }, 11 | "labels": ["renovate"], 12 | "rangeStrategy": "bump", 13 | "bumpVersion": null, 14 | "semanticCommits": true, 15 | "timezone": "Asia/Kolkata", 16 | "schedule": "on saturday and sunday" 17 | } 18 | -------------------------------------------------------------------------------- /routes/english.js: -------------------------------------------------------------------------------- 1 | import express from "express"; 2 | import { defaultHeaders } from "../utils/index.js"; 3 | import { fetcher } from "../utils/index.js"; 4 | 5 | const router = express.Router(); 6 | const baseUrl = "https://randomword.com"; 7 | 8 | const validPos = ['noun', 'verb', 'adjective', 'adverb', 'sentence', 'question', 'idiom', 'letter', 'paragraph', 'vocabulary', '1-word-quotes', '2-word-quotes', '3-word-quotes', 'affirmation']; 9 | 10 | /** 11 | * @swagger 12 | * /word: 13 | * get: 14 | * summary: Get a random English word 15 | * description: Retrieve a random English word with its definition and pronunciation 16 | * responses: 17 | * 200: 18 | * description: Successful response 19 | * content: 20 | * application/json: 21 | * schema: 22 | * type: object 23 | * properties: 24 | * word: 25 | * type: string 26 | * definition: 27 | * type: string 28 | * pronunciation: 29 | * type: string 30 | * 500: 31 | * description: Server error 32 | */ 33 | router.get("/", async (req, res) => { 34 | defaultHeaders(res); 35 | try { 36 | const word = await fetcher({ 37 | url: baseUrl, 38 | container: ".section", 39 | containerId: "#shared_section", 40 | wordId: "#random_word", 41 | definitionId: "#random_word_definition", 42 | }); 43 | res.json(word); 44 | } catch (error) { 45 | console.error(error.message); 46 | res.status(500).json({ error: error.message }); 47 | } 48 | }); 49 | 50 | /** 51 | * @swagger 52 | * /word/english/{pos}: 53 | * get: 54 | * summary: Get a random English word by part of speech 55 | * description: Retrieve a random English word with its definition and pronunciation for a specific part of speech 56 | * parameters: 57 | * - in: path 58 | * name: pos 59 | * required: true 60 | * schema: 61 | * type: string 62 | * description: Part of speech (noun, verb, adjective, etc.) 63 | * responses: 64 | * 200: 65 | * description: Successful response 66 | * content: 67 | * application/json: 68 | * schema: 69 | * type: object 70 | * properties: 71 | * word: 72 | * type: string 73 | * definition: 74 | * type: string 75 | * pronunciation: 76 | * type: string 77 | * 500: 78 | * description: Server error 79 | */ 80 | router.get("/english/:pos", async (req, res, next) => { 81 | const partOfSpeech = req.params.pos.toLowerCase(); 82 | 83 | if (!validPos.includes(partOfSpeech)) { 84 | return next(); 85 | } 86 | 87 | defaultHeaders(res); 88 | try { 89 | const word = await fetcher({ 90 | url: `${baseUrl}/${partOfSpeech}`, 91 | container: ".section", 92 | containerId: "#shared_section", 93 | wordId: "#random_word", 94 | definitionId: "#random_word_definition", 95 | }); 96 | res.json(word); 97 | } catch (error) { 98 | console.error(error.message); 99 | res.status(500).json({ error: error.message }); 100 | } 101 | }); 102 | 103 | export default router; -------------------------------------------------------------------------------- /routes/home.js: -------------------------------------------------------------------------------- 1 | import express from "express"; 2 | const router = express.Router(); 3 | 4 | router.get("/", function (req, res) { 5 | res.header("Access-Control-Allow-Origin", "*"); 6 | res.header('Access-Control-Allow-Headers', 'Access-Control-Allow-Headers,Content-Type,Access-Control-Allow-Methods, Authorization, X-Requested-With'); 7 | res.header("Access-Control-Allow-Methods", "GET"); 8 | res.header("X-Frame-Options", "DENY"); 9 | res.header("X-XSS-Protection", "1; mode=block"); 10 | res.header("X-Content-Type-Options", "nosniff"); 11 | res.header("Strict-Transport-Security", "max-age=63072000"); 12 | res.json({ 13 | message: "Welcome to the Random Words API", 14 | docs: "https://github.com/mcnaveen/random-words-api" 15 | }); 16 | }); 17 | 18 | export default router; -------------------------------------------------------------------------------- /routes/language.js: -------------------------------------------------------------------------------- 1 | import express from "express"; 2 | import fs from "fs/promises"; 3 | import path from "path"; 4 | import { fileURLToPath } from "url"; 5 | import { randomArrayItem } from "random-array-item"; 6 | import { defaultHeaders } from "../utils/index.js"; 7 | 8 | const router = express.Router(); 9 | const __filename = fileURLToPath(import.meta.url); 10 | const __dirname = path.dirname(__filename); 11 | 12 | /** 13 | * @swagger 14 | * /word/{language}: 15 | * get: 16 | * summary: Get a random word in a specific language 17 | * description: Retrieve a random word with its definition in a specified language 18 | * parameters: 19 | * - in: path 20 | * name: language 21 | * required: true 22 | * schema: 23 | * $ref: '#/components/schemas/Language' 24 | * responses: 25 | * 200: 26 | * description: Successful response 27 | * content: 28 | * application/json: 29 | * schema: 30 | * type: array 31 | * items: 32 | * type: object 33 | * properties: 34 | * id: 35 | * type: integer 36 | * word: 37 | * type: string 38 | * definition: 39 | * type: string 40 | * 404: 41 | * description: Language not supported 42 | * 500: 43 | * description: Server error 44 | */ 45 | router.get("/:language", async function (req, res) { 46 | defaultHeaders(res); 47 | const language = req.params.language.toLowerCase(); 48 | const wordsFilePath = path.join(__dirname, "..", "data", language, "words.json"); 49 | 50 | try { 51 | await fs.access(wordsFilePath); 52 | 53 | const fileContent = await fs.readFile(wordsFilePath, "utf-8"); 54 | 55 | if (fileContent.trim()) { 56 | const words = JSON.parse(fileContent); 57 | const randomWord = randomArrayItem(words); 58 | res.status(200).json([randomWord]); 59 | } else { 60 | throw new Error("Empty file"); 61 | } 62 | } catch (error) { 63 | if (error.code === "ENOENT" || error.message === "Empty file") { 64 | res.status(404).json({ 65 | error: 1, 66 | message: "Language not supported yet" 67 | }); 68 | } else { 69 | console.error("Error reading words file:", error); 70 | res.status(500).json({ 71 | error: 1, 72 | message: "Internal server error" 73 | }); 74 | } 75 | } 76 | }); 77 | 78 | export default router; -------------------------------------------------------------------------------- /swagger-ui.js: -------------------------------------------------------------------------------- 1 | import express from 'express'; 2 | import swaggerUi from 'swagger-ui-express'; 3 | import specs from './swagger.js'; 4 | 5 | const router = express.Router(); 6 | 7 | router.use('/', swaggerUi.serve); 8 | router.get('/', swaggerUi.setup(specs, { explorer: true })); 9 | 10 | export default router; -------------------------------------------------------------------------------- /swagger.js: -------------------------------------------------------------------------------- 1 | import swaggerJsdoc from 'swagger-jsdoc'; 2 | 3 | const options = { 4 | definition: { 5 | openapi: '3.0.0', 6 | info: { 7 | title: 'Random Words API', 8 | version: '1.0.0', 9 | description: 'API for getting random words in different languages', 10 | contact: { 11 | name: 'Source Code', 12 | url: 'https://github.com/mcnaveen/random-words-api', 13 | }, 14 | }, 15 | servers: [ 16 | { 17 | url: 'http://localhost:3000', 18 | description: 'Development server', 19 | }, 20 | ], 21 | components: { 22 | schemas: { 23 | Language: { 24 | type: 'string', 25 | enum: ['spanish', 'french', 'dutch', 'japanese', 'chinese', 'turkish'], 26 | description: 'Available languages for random words', 27 | }, 28 | }, 29 | }, 30 | }, 31 | apis: ['./routes/*.js'], 32 | }; 33 | 34 | const specs = swaggerJsdoc(options); 35 | 36 | export default specs; -------------------------------------------------------------------------------- /test/api.rest: -------------------------------------------------------------------------------- 1 | POST http://localhost:3000/pronounce 2 | Content-Type: application/json 3 | 4 | { 5 | "word": "This is amazing" 6 | } -------------------------------------------------------------------------------- /test/proxy.js: -------------------------------------------------------------------------------- 1 | const randomUseragent = require('random-useragent'); 2 | const axios = require('axios'); 3 | const rua = randomUseragent.getRandom(); 4 | 5 | function proxyGenerator() { 6 | let ip_addresses = []; 7 | let port_numbers = []; 8 | let proxy; 9 | 10 | axios({ 11 | method: 'GET', 12 | url: 'https://sslproxies.org/', 13 | headers: { 14 | 'User-Agent': rua 15 | } 16 | }) .then(function(response) { 17 | const $ = cheerio.load(response.data); 18 | 19 | $("td:nth-child(1)").each(function(index, value) { 20 | ip_addresses[index] = $(this).text(); 21 | }); 22 | 23 | $("td:nth-child(2)").each(function(index, value) { 24 | port_numbers[index] = $(this).text(); 25 | }); 26 | 27 | ip_addresses.join(", "); 28 | port_numbers.join(", "); 29 | 30 | }).catch(function(error) { 31 | if (!error.response) { 32 | console.log('API URL is Missing'); 33 | } else { 34 | console.log('Something Went Wrong - Enter the Correct API URL'); 35 | } 36 | }); 37 | } -------------------------------------------------------------------------------- /test/test.js: -------------------------------------------------------------------------------- 1 | import axios from "axios"; 2 | import * as cheerio from "cheerio"; 3 | import { pronounce } from "node-pronounce"; 4 | import randomUseragent from "random-useragent"; 5 | const rua = randomUseragent.getRandom(); 6 | var wordOfDay = []; 7 | const baseUrl = 'https://randomword.com'; 8 | 9 | axios({ 10 | method: "GET", 11 | url: baseUrl, 12 | headers: { 13 | "User-Agent": rua, 14 | }, 15 | }) 16 | .then(function (response) { 17 | const $ = cheerio.load(response.data); 18 | if (wordOfDay.length > 0) { 19 | wordOfDay = []; 20 | } 21 | 22 | var post = $(".section #shared_section"); 23 | var word = post 24 | .find("#random_word") 25 | .eq(0) 26 | .text() 27 | .replace("\r\n\t\t\t\t\t", "") 28 | .replace("\r\n\t\t\t\t", "") 29 | .replace("\n\t\t\t\t\t", "") 30 | .replace("\n\t\t\t\t", ""); 31 | var definition = post 32 | .find("#random_word_definition") 33 | .eq(0) 34 | .text() 35 | .replace("\n", ""); 36 | var pronounceword = pronounce(word).replace(",", ""); 37 | 38 | wordOfDay.push({ 39 | word: decodeURI(word.charAt(0).toUpperCase() + word.slice(1)), 40 | definition: decodeURI( 41 | definition.charAt(0).toUpperCase() + definition.slice(1) 42 | ), 43 | pronunciation: decodeURI( 44 | pronounceword.charAt(0).toUpperCase() + pronounceword.slice(1) 45 | ), 46 | }); 47 | console.log(JSON.stringify(wordOfDay, null, 2)); 48 | }) 49 | .catch(function (error) { 50 | if (!error.response) { 51 | console.log("API URL is Missing"); 52 | } else { 53 | console.log("Something Went Wrong - Enter the Correct API URL"); 54 | } 55 | }); -------------------------------------------------------------------------------- /utils/index.js: -------------------------------------------------------------------------------- 1 | import axios from "axios"; 2 | import * as cheerio from "cheerio"; 3 | import rateLimit from "express-rate-limit"; 4 | import { pronounce } from "node-pronounce"; 5 | import randomUseragent from "random-useragent"; 6 | 7 | const rua = randomUseragent.getRandom(); 8 | 9 | export const limiter = rateLimit({ 10 | windowMs: 15 * 60 * 1000, // 15 minutes 11 | max: 30, // Limit each IP to 100 requests per windowMs 12 | standardHeaders: true, // Return rate limit info in the `RateLimit-*` headers 13 | legacyHeaders: false, // Disable the `X-RateLimit-*` headers 14 | message: { 15 | error: 1, 16 | message: 'Too many requests, please try again later.' 17 | } 18 | }); 19 | 20 | export const fetcher = async ({ 21 | url, 22 | container = ".section", 23 | containerId = "#shared_section", 24 | wordId = "#random_word", 25 | definitionId = "#random_word_definition" 26 | }) => { 27 | try { 28 | const response = await axios({ 29 | method: "GET", 30 | url, 31 | headers: { "User-Agent": rua }, 32 | }); 33 | 34 | const $ = cheerio.load(response.data); 35 | const post = $(`${container} ${containerId}`); 36 | const word = post.find(wordId).eq(0).text().replace(/[\r\n\t]+/g, ""); 37 | const definition = post.find(definitionId).eq(0).text().replace("\n", ""); 38 | const pronounceword = pronounce(word).replace(",", ""); 39 | 40 | return { 41 | word: decodeURI(`${word.charAt(0).toUpperCase()}${word.slice(1)}`), 42 | definition: decodeURI(`${definition.charAt(0).toUpperCase()}${definition.slice(1)}`), 43 | pronunciation: decodeURI(`${pronounceword.charAt(0).toUpperCase()}${pronounceword.slice(1)}`), 44 | }; 45 | } catch (error) { 46 | if (!error.response) { 47 | throw new Error("API URL is Missing"); 48 | } 49 | throw new Error("Something Went Wrong - Enter the Correct API URL"); 50 | } 51 | } 52 | 53 | export const defaultHeaders = (response) => { 54 | response.header("Access-Control-Allow-Origin", "*"); 55 | response.header('Access-Control-Allow-Headers', 'Access-Control-Allow-Headers,Content-Type,Access-Control-Allow-Methods, Authorization, X-Requested-With'); 56 | response.header("Access-Control-Allow-Methods", "GET"); 57 | response.header("X-Frame-Options", "DENY"); 58 | response.header("X-XSS-Protection", "1; mode=block"); 59 | response.header("X-Content-Type-Options", "nosniff"); 60 | response.header("Strict-Transport-Security", "max-age=63072000"); 61 | response.setHeader("Content-Type", "application/json"); 62 | } 63 | -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "builds": [ 4 | { 5 | "src": "./index.js", 6 | "use": "@vercel/node" 7 | } 8 | ], 9 | "routes": [ 10 | { 11 | "src": "/(.*)", 12 | "dest": "/" 13 | } 14 | ] 15 | } 16 | --------------------------------------------------------------------------------