From 0c875a0c25ac218c02c4d700546d98e1feac8c44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20Janowski?= Date: Mon, 25 Sep 2023 13:35:19 +0200 Subject: [PATCH 1/4] feat(lib): add license file and pn suffix --- lib/LICENSE | 27 +++++++++++++++++++++++++++ lib/package.json | 2 +- lib/src/entities/chat.ts | 6 +++++- package.json | 1 - 4 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 lib/LICENSE diff --git a/lib/LICENSE b/lib/LICENSE new file mode 100644 index 00000000..63092f7f --- /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/package.json b/lib/package.json index f47f93af..19fd2074 100644 --- a/lib/package.json +++ b/lib/package.json @@ -1,6 +1,6 @@ { "name": "@pubnub/chat", - "version": "1.0.0", + "version": "0.1.0", "description": "PubNub JavaScript Chat SDK", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/lib/src/entities/chat.ts b/lib/src/entities/chat.ts index 75dc3b12..1b12e706 100644 --- a/lib/src/entities/chat.ts +++ b/lib/src/entities/chat.ts @@ -84,7 +84,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", `CA-TS/0.1.0`) + 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 3a83a857..b1ad9c20 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,5 @@ { "name": "js-chat", - "version": "0.0.1", "private": true, "workspaces": [ "lib", From 85d659fa06fe1acbe3a52dfc83523e114c07c84a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20Janowski?= Date: Mon, 25 Sep 2023 17:16:37 +0200 Subject: [PATCH 2/4] feat(lib): pre-deploy fixes --- lib/package.json | 4 ++++ lib/rollup.config.mjs | 39 ++++++++++++++++++++------------------- lib/src/entities/chat.ts | 2 +- 3 files changed, 25 insertions(+), 20 deletions(-) diff --git a/lib/package.json b/lib/package.json index 2af4bf6f..45f81514 100644 --- a/lib/package.json +++ b/lib/package.json @@ -2,6 +2,7 @@ "name": "@pubnub/chat", "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 57fb5fe9..21fb7eeb 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 3687e13f..25c23c48 100644 --- a/lib/src/entities/chat.ts +++ b/lib/src/entities/chat.ts @@ -87,7 +87,7 @@ export class Chat { /* eslint-disable-next-line @typescript-eslint/no-explicit-any */ const pubnub = new PubNub(pubnubConfig) as any - pubnub._config._addPnsdkSuffix("chat-sdk", `CA-TS/0.1.0`) + pubnub._config._addPnsdkSuffix("chat-sdk", `__PLATFORM__/__VERSION__`) this.sdk = pubnub this.user = new User(this, { From b374b3d79ca3a91366d487bf45bf23ec1fb8b893 Mon Sep 17 00:00:00 2001 From: PubNub Release Bot <120067856+pubnub-release-bot@users.noreply.github.com> Date: Mon, 25 Sep 2023 15:27:33 +0000 Subject: [PATCH 3/4] PubNub SDK v0.1.0 release. --- .pubnub.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.pubnub.yml b/.pubnub.yml index 5e806247..ad1c9342 100644 --- a/.pubnub.yml +++ b/.pubnub.yml @@ -6,6 +6,11 @@ schema: 1 files: - lib/dist/index.js changelog: + - date: 2023-09-25 + version: v0.1.0 + changes: + - type: feature + text: "Initial release." - date: 2023-03-30 version: v0.1.0 changes: From 8037d5ed57761a3c09768cc757474ad7e401cb4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20Janowski?= Date: Tue, 26 Sep 2023 11:52:21 +0200 Subject: [PATCH 4/4] feat(lib): link readme file from root folder --- .pubnub.yml | 5 ----- README.md | 22 +++++++++++----------- lib/README.md | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 16 deletions(-) create mode 100644 lib/README.md diff --git a/.pubnub.yml b/.pubnub.yml index ad1c9342..b646cdd3 100644 --- a/.pubnub.yml +++ b/.pubnub.yml @@ -11,8 +11,3 @@ changelog: changes: - type: feature text: "Initial release." - - date: 2023-03-30 - version: v0.1.0 - changes: - - type: feature - text: Initial implementation diff --git a/README.md b/README.md index b073c69e..739e77d0 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/README.md b/lib/README.md new file mode 100644 index 00000000..739e77d0 --- /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).