{"id":18563401,"url":"https://github.com/compulim/botframework-webchat-chat-adapter","last_synced_at":"2025-05-15T18:13:20.450Z","repository":{"id":41618802,"uuid":"250488446","full_name":"compulim/botframework-webchat-chat-adapter","owner":"compulim","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-05T21:49:36.000Z","size":2446,"stargazers_count":1,"open_issues_count":18,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-02-17T13:11:44.511Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/compulim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-27T09:08:31.000Z","updated_at":"2020-06-24T18:56:20.000Z","dependencies_parsed_at":"2023-02-04T18:00:44.924Z","dependency_job_id":null,"html_url":"https://github.com/compulim/botframework-webchat-chat-adapter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compulim%2Fbotframework-webchat-chat-adapter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compulim%2Fbotframework-webchat-chat-adapter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compulim%2Fbotframework-webchat-chat-adapter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/compulim%2Fbotframework-webchat-chat-adapter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/compulim","download_url":"https://codeload.github.com/compulim/botframework-webchat-chat-adapter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254394726,"owners_count":22063984,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-06T22:12:31.678Z","updated_at":"2025-05-15T18:13:20.431Z","avatar_url":"https://github.com/compulim.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"```\n      _           _               _             _                              _        _                    \n  ___| |__   __ _| |_    __ _  __| | __ _ _ __ | |_ ___ _ __   _ __  _ __ ___ | |_ ___ | |_ _   _ _ __   ___ \n / __| '_ \\ / _` | __|  / _` |/ _` |/ _` | '_ \\| __/ _ \\ '__| | '_ \\| '__/ _ \\| __/ _ \\| __| | | | '_ \\ / _ \\\n| (__| | | | (_| | |_  | (_| | (_| | (_| | |_) | ||  __/ |    | |_) | | | (_) | || (_) | |_| |_| | |_) |  __/\n \\___|_| |_|\\__,_|\\__|  \\__,_|\\__,_|\\__,_| .__/ \\__\\___|_|    | .__/|_|  \\___/ \\__\\___/ \\__|\\__, | .__/ \\___|\n                                         |_|                  |_|                           |___/|_|         \n```\n\n\u003c!--\nStandard by Glenn Chappell \u0026 Ian Chai 3/93 -- based on .sig of Frank Sheeran\nFiglet release 2.0 -- August 5, 1993\n--\u003e\n\n# Etqiuette\n\n## Test for every fix and feature\n\n\u003e This section is not completed yet.\n\nAll fix and feature work must come with integration tests. This is to protect your code and make sure your investment will not be broken by others.\n\nPlease review our tests under [`__tests__/stories`](__tests__/stories). These tests are user stories. They include both \"today's requirements\" and \"tomorrow's dreams\". We try to push this adapter design to as far as 2 years ahead.\n\nFor every new feature, a user story is required. The user story need to be coded as an end-to-end test and placed under this folder for POR.\n\n# Design\n\n## Egress design\n\n### Goals\n\n\u003e TODO: Add links to user stories\n\n- Middleware/enhancer can patch/skip/fork egress activities\n   - Asynchronous patch\n   - Can be skipped\n   - Can be forked into 2+ activities\n\n## Ingress design\n\n### Goals\n\n\u003e TODO: Add links to user stories\n\n- Anyone who have public access to adapter can send ingress\n- Middleware/enhancer can stop ingress of another middleware/enhancer\n   - Web Socket can pause/resume REST API (protocol fallback)\n   - Connection manager can stop downstream ingress\n- Middleware can patch/skip/fork the activity of another middleware doing the ingress\n\n### Optional goals\n\n- Easy to ingress a static transcript\n\n## Other designs\n\n- Event target and async iterables are recommended, Observable is welcomed\n- Do not use any operators on Observable\n   - Observable operators (for example, `flatMap` and `retryWhen` in RxJS) are not welcomed because they are very difficult to debug\n\n# Related articles\n\n- [`applyMiddleware`](https://redux.js.org/api/applymiddleware)\n- [`Store creator`](https://redux.js.org/glossary#store-creator)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompulim%2Fbotframework-webchat-chat-adapter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcompulim%2Fbotframework-webchat-chat-adapter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcompulim%2Fbotframework-webchat-chat-adapter/lists"}