* Apps.engine.ui (#131)
* Add interfaces IExternalComponent and IExternalComponentExtend
* Add externalComponents property for IConfigurationExtend
* export IExternalComponent
* Add interface IExternalComponentLocationOptions
* implement the interface IExternalComponentsExtend
* export ExternalComponentsExtend
* Add externalComponentManager for AppManager
* implement AppExternalComponentManager
* Implement IExternalComponentBridge
* Add getExternalComponentBridge method for AppBridges
* export AppExternalComponentManager
* Update getConfigurationExtend method for AppAccessorManager
* [TEST] Update appBridge and add externalComponentBridge
* Update related test scripts
* Remove IExternalComponentBridge interface
* AppExternalComponentManager maintains the list of all registered components itself
* Update test scripts
* Add webhooks interface for the external component
* Update the interface IExternalComponent
* Add description field to the interface IExternalComponent
* Apps.engine.ui.sdk (#132)
* update IWebHooks interface
* Add util randomString
* add AppEmbeddedSDK
* move constants to src/client/constants directory
* separate initListener from call method
* rename initListener to init
* Bump alpha version
* Change version checking function to allow pre-release tags
* Add go-publish-alpha npm script
* Bump alpha version
* Add options for http requests
* Add Livechat functionality
* Add further integration with Livechat
* Refactor minor inconsistency
* Formatting improvement
* Add createToken method to LivechatCreator
* Add file property to message interface
* Add types to compiler option to allow usage of Buffer type
* Add livechat reader getter to read interface
* Add Upload reader
* Update visitor interface
* 1.6.0-beta.0
* Validate the LIVE_CHAT rooms correctly
* Update version for CI
* Access livechat room’s deparment data (#142)
* Revert "Change version checking function to allow pre-release tags"
This reverts commit 0b88a18.
* 1.7.0-alpha
* Add missing unregister component method (#144)
* chore: change comment style to obtain VS Code Intellisense
* feat: add unregisterComponent method
We made follwing changes for the AppExternalComponentManager:
* add new private property - appTouchedComponents
* add new public method unregisterComponent
* add new public method getExternalComponent
* Add unregisterComponent in the lifecycle methods
We need to call unregisterComponent method to remove the corresponding external components from the providedComponents when following AppManager's methods are called:
* `unload` is called
* `disable` is called <-> Disable an app
* `remove` is called <-> Uninstall an app
* `updateAppsMarketplaceInfo` is called and validateLicense not pass
* `initializeApp` is called and validateLicense not pass
* `enableApp` is called but is not success
* Add new AppExternalComponentManager method purgeComponent
when remove an app from the system, we need delete its external component from both providedComponents map set and appTouchedCompoents map set.
* fix: new deployed app registers externalComponents automatically
since the new deployed app will try to register their externalComponent when the `initializeApp` method of AppManager is called. This is not expected behavior. We introduce a new parameter `addToProvidedComponents` for the method `registerComponent` to handle the above problem. Without specifying `registerComponent` to true, the app only "declares" it touched the external component when it is initialized. Only if the `enableApp` method is called, the external component will truly added to providedComponents map set, which means we can access it in the `Game Center`.
* Add new location to the external components called MODAL (#137)
* Add new location to external components
* MODAL (new)
* update enum ExternalComponentLocation
* Update external component configration (#134)
* update IWebHooks interface
* Add util randomString
* add AppEmbeddedSDK
* move constants to src/client/constants directory
* separate initListener from call method
* rename initListener to init
* add appId to IExternalComponent interface
* Rename the client sdk to state what it is and improve the documentation
* Add interfaces IUserInfo and IRoomInfo
* Add documentation for the public methods
* getUserInfo
* getRoomInfo
* Rename AppEmbeddedSDK to AppClientEmbeddedSDK
* rename to make sure others can see that it's for client-side
* add the class documentation for the AppClientEmbeddedSDK
* Rename the AppClientEmbeddedSDK methods
* Rename to make sure others can see it's for client-side
* Add documentation for the IClientRoomInfo and IClientInfo interfaces
* Rename external component pieces to be consistent in wording & logic
* remove tests externalComponentBridge
* remove the extra blank line
* fix typos and add necessary blank lines
* fix a grammar error in comments
* Rename names to avoid confusions
* rename IExternalComponentsExtend to IExternalComponentExtend
* rename externalComponents to externalComponent
* Add documentation to register external components method (#156)
* Add documentation to register method
* wording changes for IExternalComponentExtend
* Merge from 'master' and bump to 1.8.0-beta
* Bump to 1.8.0-alpha
* Support multiple external components per app (#150)
* Revert "Rename names to avoid confusions"
This reverts commit d444646.
* support multiple external components per app
* Add error handlers for AppExternalComponentManager
* Add unit tests for two new errors
* ExternalComponentAlreadyTouchedError
* ExternalComponentNotMatchWithAppError
* Add getters for AppExternalComponentManager
* Add unit tests for AppExternalComponentManager
* did some changes to AppExternalComponentManager according to tests
* fix a serious logic error
* compare objects after serialization
* add space before parenttheses
* Modify documentation to state the name unique
* Redesign getExternalComponents
* Rename providedExternalComponents to registeredExternalComponents
* Redesign getExternalComponents
* Remove ExternalComponentAlreadyTouchedError
* overwrite an external component with the same name
* Remove ExternalComponentNotMatchWithAppError
* Because of the caller of the method addExternalComponent is apps-engine. So we can trust the appId provided.
* Always overwrite the externalComponent.appId to the appId via the method addExternalComponent
* Add external components only if it is not empty
* Add a new public method getProvidedComponents
* Make sure the return is an array
* Move external component host logic (#169)
* [ALPHA] Move host logic into apps-engine repo
* Rename EClientEmbeddedSDKActions
* Remove the word `embedded` from client SDK files
* Rename the client SDK to AppsEngineClient
* Redesign external component webhooks (#168)
* Remove IWebHooks
* Remove IWebHooks
* Remove webhooks options from IExternalComponentOptions and redesign it
Introduce state for external components
Add IPreExternalComponentOpenedPrevent handler
Add IPostExternalComponentOpened handler
* add accessors for IPreExternalComponentOpenedPrevent handler
* Add IPostExternalComponentOpened handler
Add IPostExternalComponentClosed handler
Remove IPreExternalComponentOpenedPrevent
* export modules
* Update metadata AppMethod
* Update AppImplements
* Add methods to AppListenerManager
* Remove IWebHooks
* Remove IWebHooks
* Remove webhooks options from IExternalComponentOptions and redesign it
Introduce state for external components
Add IPreExternalComponentOpenedPrevent handler
Add IPostExternalComponentOpened handler
* add accessors for IPreExternalComponentOpenedPrevent handler
* Add IPostExternalComponentOpened handler
Add IPostExternalComponentClosed handler
Remove IPreExternalComponentOpenedPrevent
* export modules
* Update metadata AppMethod
* Update AppImplements
* Add methods to AppListenerManager
* rebase onto move-host-logic
* Remove check methods from event handlers
* Rename a few interfaces
* Rename a few interfaces
* Renamings
* Refactor
* Remove unused files
* Make AppsEngineUIClient use the MESSAGE_ID constant
* Add the command `bundle` for bundling apps engine ui client (#182)
* Add the command `bundle` for bundling SDK
* Bundle sdk before publishing
* Update circleci node version to the same as Rocket.Chat
* Bump beta version
* Bump version
* Definition bump
* Beta version
* Add beta publishing script
* 1.9.0
* 1.10.0-beta
* 1.10.0-alpha
* Bump beta version
* Fix lint
* Fix errors
* Bump alpha version
* Bump definition version
* Bump version to 1.13.0-alpha
* Beta (1.12.0) (#205)
* UIKit (#184)
* Auto create user for app during installation
Co-authored-by: Shiqi Mei <shiqi.mei@lolimay.cn>
Co-authored-by: Upendra Reddy <upendrareddy2511@gmail.com>
Co-authored-by: Diego Sampaio <chinello@gmail.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
* 1.12.0
* 1.13.0-beta
Co-authored-by: lolimay <lolimay@lolimay.cn>
Co-authored-by: Rodrigo Nascimento <rodrigoknascimento@gmail.com>
Co-authored-by: Shiqi Mei <shiqi.mei@rocket.chat>
Co-authored-by: Shiqi Mei <shiqi.mei@lolimay.cn>
Co-authored-by: Upendra Reddy <upendrareddy2511@gmail.com>
Co-authored-by: Diego Sampaio <chinello@gmail.com>
Co-authored-by: Guilherme Gazzo <guilhermegazzo@gmail.com>
What? ⛵
Changes: