diff --git a/.pubnub.yml b/.pubnub.yml index 5e80624..b646cdd 100644 --- a/.pubnub.yml +++ b/.pubnub.yml @@ -6,8 +6,8 @@ schema: 1 files: - lib/dist/index.js changelog: - - date: 2023-03-30 + - date: 2023-09-25 version: v0.1.0 changes: - type: feature - text: Initial implementation + text: "Initial release." diff --git a/README.md b/README.md index b073c69..739e77d 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,10 @@ Chat SDK offers a set of handy methods to create your own feature-rich chat or a Chat SDK is written in TypeScript and relies on the existing [JavaScript SDK](https://www.pubnub.com/docs/sdks/javascript). It's framework-agnostic and lets you build a chat app using any JavaScript-based framework, like: -* React -* React Native -* Vue -* Angular +- React +- React Native +- Vue +- Angular ## Features @@ -17,9 +17,9 @@ Chat SDK offers a wide range of features to build direct, group, and public chat Explore these documentation sections for details: -* **Channels** - manage [channels](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/create), [join](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/join) or [leave](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/leave) them, [invite](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/invite) other chat members, or [reference channel names](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/references) in messages through hashtags. -* **Users** - manage [users](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/create), track user's [presence](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/presence), [mention](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/mentions) users, manage [permissions](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/permissions) or [report](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/moderation) users for misbehaving. -* **Messages** - manage [messages](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/send-receive), add [reactions](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/reactions), [forward](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/forwards) messages to others, [pin](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/pinned) them to channels, add [quotes](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/quote) or [links](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/links), create [threads](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/threads) or send [files](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/files), [report](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/moderation) offensive messages, or shows users how many messages they missed while they were offline through [unread messages](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/unread). +- **Channels** - manage [channels](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/create), [join](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/join) or [leave](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/leave) them, [invite](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/invite) other chat members, or [reference channel names](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/references) in messages through hashtags. +- **Users** - manage [users](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/create), track user's [presence](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/presence), [mention](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/mentions) users, manage [permissions](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/permissions) or [report](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/moderation) users for misbehaving. +- **Messages** - manage [messages](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/send-receive), add [reactions](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/reactions), [forward](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/forwards) messages to others, [pin](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/pinned) them to channels, add [quotes](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/quote) or [links](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/links), create [threads](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/threads) or send [files](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/files), [report](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/moderation) offensive messages, or shows users how many messages they missed while they were offline through [unread messages](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/unread). Also, add [typing indicators](https://www.pubnub.com/docs/chat/chat-sdk/build/features/typing-indicator), [push notifications](/docs/chat/chat-sdk/build/features/push-notifications), and more. @@ -27,10 +27,10 @@ Also, add [typing indicators](https://www.pubnub.com/docs/chat/chat-sdk/build/fe Test our TypeScript sample chat apps created in various JavaScript frameworks: -| Source code | Framework | Description | -| :--- | :---| :---| -| [Direct chat](https://github.com/pubnub/js-chat/tree/master/samples/getting-started) | React | Basic 1:1 support chat letting you exchange messages between a user and a support agent. | -| [Group chat](https://github.com/pubnub/js-chat/tree/master/samples/react-native-group-chat) | React Native | Feature-full group chat letting you test most of the features offered by the Chat SDK. | +| Source code | Framework | Description | +| :------------------------------------------------------------------------------------------ | :----------- | :--------------------------------------------------------------------------------------- | +| [Direct chat](https://github.com/pubnub/js-chat/tree/master/samples/getting-started) | React | Basic 1:1 support chat letting you exchange messages between a user and a support agent. | +| [Group chat](https://github.com/pubnub/js-chat/tree/master/samples/react-native-group-chat) | React Native | Feature-full group chat letting you test most of the features offered by the Chat SDK. | ## Chat SDK docs diff --git a/lib/LICENSE b/lib/LICENSE new file mode 100644 index 0000000..63092f7 --- /dev/null +++ b/lib/LICENSE @@ -0,0 +1,27 @@ +PubNub Real-time Cloud-Hosted Push API and Push Notification Client Frameworks +Copyright (c) 2023 PubNub Inc. +http://www.pubnub.com/ +http://www.pubnub.com/terms + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +PubNub Real-time Cloud-Hosted Push API and Push Notification Client Frameworks +Copyright (c) 2023 PubNub Inc. +http://www.pubnub.com/ +http://www.pubnub.com/terms diff --git a/lib/README.md b/lib/README.md new file mode 100644 index 0000000..739e77d --- /dev/null +++ b/lib/README.md @@ -0,0 +1,37 @@ +# PubNub JavaScript Chat SDK + +Chat SDK offers a set of handy methods to create your own feature-rich chat or add a chat to your existing application. + +## Supported frameworks + +Chat SDK is written in TypeScript and relies on the existing [JavaScript SDK](https://www.pubnub.com/docs/sdks/javascript). It's framework-agnostic and lets you build a chat app using any JavaScript-based framework, like: + +- React +- React Native +- Vue +- Angular + +## Features + +Chat SDK offers a wide range of features to build direct, group, and public chats. + +Explore these documentation sections for details: + +- **Channels** - manage [channels](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/create), [join](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/join) or [leave](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/leave) them, [invite](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/invite) other chat members, or [reference channel names](https://www.pubnub.com/docs/chat/chat-sdk/build/features/channels/references) in messages through hashtags. +- **Users** - manage [users](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/create), track user's [presence](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/presence), [mention](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/mentions) users, manage [permissions](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/permissions) or [report](https://www.pubnub.com/docs/chat/chat-sdk/build/features/users/moderation) users for misbehaving. +- **Messages** - manage [messages](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/send-receive), add [reactions](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/reactions), [forward](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/forwards) messages to others, [pin](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/pinned) them to channels, add [quotes](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/quote) or [links](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/links), create [threads](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/threads) or send [files](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/files), [report](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/moderation) offensive messages, or shows users how many messages they missed while they were offline through [unread messages](https://www.pubnub.com/docs/chat/chat-sdk/build/features/messages/unread). + +Also, add [typing indicators](https://www.pubnub.com/docs/chat/chat-sdk/build/features/typing-indicator), [push notifications](/docs/chat/chat-sdk/build/features/push-notifications), and more. + +## Samples + +Test our TypeScript sample chat apps created in various JavaScript frameworks: + +| Source code | Framework | Description | +| :------------------------------------------------------------------------------------------ | :----------- | :--------------------------------------------------------------------------------------- | +| [Direct chat](https://github.com/pubnub/js-chat/tree/master/samples/getting-started) | React | Basic 1:1 support chat letting you exchange messages between a user and a support agent. | +| [Group chat](https://github.com/pubnub/js-chat/tree/master/samples/react-native-group-chat) | React Native | Feature-full group chat letting you test most of the features offered by the Chat SDK. | + +## Chat SDK docs + +You'll find all the information about working with Chat SDK in the official [PubNub Chat SDK documentation](pubnub.com/docs/chat/chat-sdk/overview). diff --git a/lib/package.json b/lib/package.json index f365108..45f8151 100644 --- a/lib/package.json +++ b/lib/package.json @@ -1,7 +1,8 @@ { "name": "@pubnub/chat", - "version": "1.0.0", + "version": "0.1.0", "description": "PubNub JavaScript Chat SDK", + "author": "PubNub ", "main": "dist/index.js", "module": "dist/index.es.js", "types": "dist/index.d.ts", @@ -11,6 +12,9 @@ "build": "rollup -c", "dev": "tsc -w" }, + "files": [ + "dist" + ], "repository": { "type": "git", "url": "git+https://github.com/pubnub/js-chat.git" diff --git a/lib/rollup.config.mjs b/lib/rollup.config.mjs index 57fb5fe..21fb7ee 100644 --- a/lib/rollup.config.mjs +++ b/lib/rollup.config.mjs @@ -1,29 +1,30 @@ -import pkg from "./package.json" assert { type: 'json' }; +import pkg from "./package.json" assert { type: "json" } import replace from "@rollup/plugin-replace" import ts from "rollup-plugin-ts" -import terser from '@rollup/plugin-terser'; +import terser from "@rollup/plugin-terser" export default [ - { + { input: "./src/index.ts", external: ["pubnub"], output: [ - { - file: pkg.main, - format: "cjs", - }, - { - file: pkg.module, - format: "esm", - }, + { + file: pkg.main, + format: "cjs", + }, + { + file: pkg.module, + format: "esm", + }, ], plugins: [ - replace({ - preventAssignment: true, - __PLATFORM__: "CA-TS", - __VERSION__: pkg.version, - }), - ts(), - terser(), + replace({ + preventAssignment: true, + __PLATFORM__: "CA-TS", + __VERSION__: pkg.version, + }), + ts(), + terser(), ], -}] + }, +] diff --git a/lib/src/entities/chat.ts b/lib/src/entities/chat.ts index 4b8c6bd..25c23c4 100644 --- a/lib/src/entities/chat.ts +++ b/lib/src/entities/chat.ts @@ -85,7 +85,11 @@ export class Chat { throw error } - this.sdk = new PubNub(pubnubConfig) + /* eslint-disable-next-line @typescript-eslint/no-explicit-any */ + const pubnub = new PubNub(pubnubConfig) as any + pubnub._config._addPnsdkSuffix("chat-sdk", `__PLATFORM__/__VERSION__`) + this.sdk = pubnub + this.user = new User(this, { id: "userId" in pubnubConfig ? pubnubConfig.userId : pubnubConfig.uuid, }) diff --git a/package.json b/package.json index 3a83a85..b1ad9c2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,5 @@ { "name": "js-chat", - "version": "0.0.1", "private": true, "workspaces": [ "lib",