{"id":21769936,"url":"https://github.com/mideind/emblacorejs","last_synced_at":"2026-05-01T17:35:57.768Z","repository":{"id":174730866,"uuid":"611192638","full_name":"mideind/EmblaCoreJS","owner":"mideind","description":"Embla core session functionality in the form of a JavaScript library","archived":false,"fork":false,"pushed_at":"2024-08-08T10:23:30.000Z","size":3430,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-19T07:47:04.144Z","etag":null,"topics":["icelandic","icelandic-language","javascript-library","voice-assistant"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mideind.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-03-08T10:09:29.000Z","updated_at":"2024-08-08T10:19:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"4ce65874-8a75-46b4-b619-0ccd74bd0224","html_url":"https://github.com/mideind/EmblaCoreJS","commit_stats":null,"previous_names":["mideind/emblacorejs"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/mideind/EmblaCoreJS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mideind%2FEmblaCoreJS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mideind%2FEmblaCoreJS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mideind%2FEmblaCoreJS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mideind%2FEmblaCoreJS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mideind","download_url":"https://codeload.github.com/mideind/EmblaCoreJS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mideind%2FEmblaCoreJS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32507091,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["icelandic","icelandic-language","javascript-library","voice-assistant"],"created_at":"2024-11-26T14:10:41.452Z","updated_at":"2026-05-01T17:35:57.750Z","avatar_url":"https://github.com/mideind.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![Language](https://img.shields.io/badge/language-javascript-yellow)]()\n[![Release](https://shields.io/github/v/release/mideind/EmblaCoreJS?display_name=tag)]()\n[![NPM](https://img.shields.io/npm/v/@mideind/embla-core.svg?logo=npm)](https://www.npmjs.com/package/@mideind/embla-core)\n[![Build](https://github.com/mideind/EmblaCoreJS/actions/workflows/main.yml/badge.svg)]()\n\n\u003cimg src=\"./img/emblacore_icon.png\" align=\"right\" width=\"200\" height=\"200\" style=\"margin-left:20px;\"\u003e\n\n# EmblaCoreJS\n\nEmblaCoreJS is a TypeScript/JavaScript library containing the core session functionality in [Embla](https://github.com/mideind/EmblaFlutterApp), a cross-platform mobile Icelandic-language voice assistant client. EmblaCoreJS is packaged both for modern browser and React Native environments.\n\nFor the Dart/Flutter library see [EmblaCoreFlutter](https://github.com/mideind/EmblaCoreFlutter).\n\n## Browser usage\n\nThe bundled web version of EmblaCoreJS, along with a minified version, can be found in the releases.\nSee the [browser example](./example/web/README.md) for example usage.\n\n\u003e **Important note:**\n\u003e\n\u003e Using the library requires an API key for the Ratatoskur server instance you wish to communicate with.\n\u003e To prevent the Ratatoskur API key from being sent to clients, it is recommended you set up an API endpoint which\n\u003e proxies the Ratatoskur authentication token endpoint. See endpoint documentation [here](https://api.greynir.is/docs).\n\n### Installation\n\nUse npm or yarn to install dependencies:\n\n```sh\nnpm install\n# Needed for web version\nnpm install recordrtc\n# Needed for React Native version\nnpm install react-native-sound-player @dr.pogodin/react-native-audio\n```\n\nTo build the project run:\n\n```sh\nnpm run build\n```\n\nThis compiles the code into JavaScript libraries found in `lib/web/` and `lib/react-native`.\n\n## Documentation\n\nDocumentation can be generated by running:\n\n```sh\nnpm run docs\n```\n\nDocumentation is then found in `docs/` (open `docs/index.html` in a browser).\n\n## Testing\n\nTests can be run with:\n\n```bash\nnpm run test\n```\n\n## Example usage\n\nExamples can be found in the directories `example/web` and `example/react-native`.\n\nInformation on running them is found in the corresponding `README.md` files.\n\n## React Native usage\n\nThe React Native version of EmblaCoreJS is published to `npm` as `@mideind/embla-core`.\n\nIn order to work, apps making use of EmblaCoreJS must have permission to record audio.\niOS apps must add the following to their `Info.plist` file:\n\n```xml\n\u003ckey\u003eNSMicrophoneUsageDescription\u003c/key\u003e\n\u003cstring\u003eMicrophone permission is required for speech recognition.\u003c/string\u003e\n```\n\nAndroid apps must have the following in their `AndroidManifest.xml` file:\n\n```xml\n\u003cuses-permission android:name=\"android.permission.RECORD_AUDIO\" /\u003e\n```\n\nThe app must also request permission to record audio from the user. This can be done using\ne.g. the [react-native-permissions](https://www.npmjs.com/package/react-native-permissions)\nlibrary.\n\n## License\n\nEmblaCoreJS is Copyright \u0026copy; 2023 [Miðeind ehf.](https://mideind.is)\n\n\u003ca href=\"https://mideind.is\"\u003e\u003cimg src=\"./img/mideind_logo.png\" alt=\"Miðeind ehf.\"\nwidth=\"214\" height=\"66\" align=\"right\" style=\"margin-left:20px; margin-bottom: 20px;\"\u003e\u003c/a\u003e\n\nThis set of programs is free software: you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the Free\nSoftware Foundation, either version 3 of the License, or (at your option) any later\nversion.\n\nThis set of programs is distributed in the hope that it will be useful, but WITHOUT\nANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\nA PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n\u003ca href=\"https://www.gnu.org/licenses/gpl-3.0.html\"\u003e\u003cimg src=\"./img/GPLv3.png\"\nalign=\"right\" style=\"margin-left:15px;\" width=\"180\" height=\"60\"\u003e\u003c/a\u003e\n\nThe full text of the GNU General Public License v3 is\n[included here](./LICENSE)\nand also available here:\n[https://www.gnu.org/licenses/gpl-3.0.html](https://www.gnu.org/licenses/gpl-3.0.html).\n\nIf you wish to use this set of programs in ways that are not covered under the\nGNU GPLv3 license, please contact us at [mideind@mideind.is](mailto:mideind@mideind.is)\nto negotiate a custom license. This applies for instance if you want to include or use\nthis software, in part or in full, in other software that is not licensed under\nGNU GPLv3 or other compatible licenses.\n\n## Attributions\n\nEmblaCoreJS bundles the following libraries:\n\n- [RecordRTC](http://recordrtc.org/), Copyright \u0026copy; [Muaz Khan](https://github.com/muaz-khan).\n\nThe following libraries are peer dependencies (not included when bundled):\n\n- [react-native-sound-player](https://github.com/johnsonsu/react-native-sound-player), Copyright \u0026copy; [Johnson Su](https://github.com/johnsonsu).\n- [@dr.pogodin/react-native-audio](https://github.com/birdofpreyru/react-native-audio), Copyright \u0026copy; [Dr. Sergey Pogodin](https://dr.pogodin.studio)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmideind%2Femblacorejs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmideind%2Femblacorejs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmideind%2Femblacorejs/lists"}