From c4263f9868f842dda03db4754fc9fbf73cb2e97e Mon Sep 17 00:00:00 2001
From: Przemek Janowski
Date: Tue, 26 Sep 2023 13:07:42 +0200
Subject: [PATCH] feat(lib): add license file and pn suffix (#129)
* feat(lib): add license file and pn suffix
* feat(lib): pre-deploy fixes
* PubNub SDK v0.1.0 release.
* feat(lib): link readme file from root folder
---------
Co-authored-by: PubNub Release Bot <120067856+pubnub-release-bot@users.noreply.github.com>
---
.pubnub.yml | 4 ++--
README.md | 22 +++++++++++-----------
lib/LICENSE | 27 +++++++++++++++++++++++++++
lib/README.md | 37 +++++++++++++++++++++++++++++++++++++
lib/package.json | 6 +++++-
lib/rollup.config.mjs | 39 ++++++++++++++++++++-------------------
lib/src/entities/chat.ts | 6 +++++-
package.json | 1 -
8 files changed, 107 insertions(+), 35 deletions(-)
create mode 100644 lib/LICENSE
create mode 100644 lib/README.md
diff --git a/.pubnub.yml b/.pubnub.yml
index 5e806247..b646cdd3 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 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/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/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).
diff --git a/lib/package.json b/lib/package.json
index f3651082..45f81514 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 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 4b8c6bda..25c23c48 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 3a83a857..b1ad9c20 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,5 @@
{
"name": "js-chat",
- "version": "0.0.1",
"private": true,
"workspaces": [
"lib",