@robylon/whatsapp-react-sdk 1.0.0-staging.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/CONTRIBUTING.md +133 -0
  2. package/README.md +736 -0
  3. package/dist/cjs/index.js +4 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/types/components/ChatWidgetPopup.d.ts +8 -0
  6. package/dist/cjs/types/components/ChatbotContainer/ChatbotContainer.d.ts +15 -0
  7. package/dist/cjs/types/components/ChatbotContainer/index.d.ts +1 -0
  8. package/dist/cjs/types/components/ChatbotFloatingButton.d.ts +19 -0
  9. package/dist/cjs/types/components/ErrorBoundary.d.ts +15 -0
  10. package/dist/cjs/types/components/RobylonChatbot.d.ts +28 -0
  11. package/dist/cjs/types/config.d.ts +5 -0
  12. package/dist/cjs/types/constants/errorConstants.d.ts +60 -0
  13. package/dist/cjs/types/constants/fontStyles.d.ts +4 -0
  14. package/dist/cjs/types/core/api.d.ts +10 -0
  15. package/dist/cjs/types/core/config.d.ts +41 -0
  16. package/dist/cjs/types/core/events.d.ts +22 -0
  17. package/dist/cjs/types/core/index.d.ts +4 -0
  18. package/dist/cjs/types/core/state.d.ts +34 -0
  19. package/dist/cjs/types/hooks/useChatbot.d.ts +2 -0
  20. package/dist/cjs/types/hooks/useChatbotEvents.d.ts +12 -0
  21. package/dist/cjs/types/hooks/useChatbotState.d.ts +16 -0
  22. package/dist/cjs/types/hooks/useWhyDidYouUpdate.d.ts +5 -0
  23. package/dist/cjs/types/index.d.ts +6 -0
  24. package/dist/cjs/types/services/ErrorTrackingService.d.ts +38 -0
  25. package/dist/cjs/types/types/events.d.ts +29 -0
  26. package/dist/cjs/types/types/state.d.ts +5 -0
  27. package/dist/cjs/types/types.d.ts +137 -0
  28. package/dist/cjs/types/utils/chatbotSdk.d.ts +23 -0
  29. package/dist/cjs/types/utils/colorUtils.d.ts +1 -0
  30. package/dist/cjs/types/utils/cookieUtils.d.ts +6 -0
  31. package/dist/cjs/types/utils/environment.d.ts +12 -0
  32. package/dist/cjs/types/utils/fetchData.d.ts +53 -0
  33. package/dist/cjs/types/utils/launcherInfo.d.ts +11 -0
  34. package/dist/cjs/types/utils/logger.d.ts +6 -0
  35. package/dist/cjs/types/utils/misc.d.ts +1 -0
  36. package/dist/cjs/types/utils/originalFetchDataFile.d.ts +1 -0
  37. package/dist/cjs/types/utils/proactive.d.ts +25 -0
  38. package/dist/cjs/types/utils/sanitize.d.ts +4 -0
  39. package/dist/cjs/types/utils/systemInfo.d.ts +12 -0
  40. package/dist/cjs/types/utils/textDirection.d.ts +7 -0
  41. package/dist/cjs/types/utils/url.d.ts +8 -0
  42. package/dist/cjs/types/utils/version.d.ts +1 -0
  43. package/dist/cjs/types/vanilla/components/ChatWidgetPopup.d.ts +17 -0
  44. package/dist/cjs/types/vanilla/components/ChatbotContainer.d.ts +45 -0
  45. package/dist/cjs/types/vanilla/components/ChatbotFloatingButton.d.ts +83 -0
  46. package/dist/cjs/types/vanilla/index.d.ts +42 -0
  47. package/dist/esm/index.js +4 -0
  48. package/dist/esm/index.js.map +1 -0
  49. package/dist/esm/types/components/ChatWidgetPopup.d.ts +8 -0
  50. package/dist/esm/types/components/ChatbotContainer/ChatbotContainer.d.ts +15 -0
  51. package/dist/esm/types/components/ChatbotContainer/index.d.ts +1 -0
  52. package/dist/esm/types/components/ChatbotFloatingButton.d.ts +19 -0
  53. package/dist/esm/types/components/ErrorBoundary.d.ts +15 -0
  54. package/dist/esm/types/components/RobylonChatbot.d.ts +28 -0
  55. package/dist/esm/types/config.d.ts +5 -0
  56. package/dist/esm/types/constants/errorConstants.d.ts +60 -0
  57. package/dist/esm/types/constants/fontStyles.d.ts +4 -0
  58. package/dist/esm/types/core/api.d.ts +10 -0
  59. package/dist/esm/types/core/config.d.ts +41 -0
  60. package/dist/esm/types/core/events.d.ts +22 -0
  61. package/dist/esm/types/core/index.d.ts +4 -0
  62. package/dist/esm/types/core/state.d.ts +34 -0
  63. package/dist/esm/types/hooks/useChatbot.d.ts +2 -0
  64. package/dist/esm/types/hooks/useChatbotEvents.d.ts +12 -0
  65. package/dist/esm/types/hooks/useChatbotState.d.ts +16 -0
  66. package/dist/esm/types/hooks/useWhyDidYouUpdate.d.ts +5 -0
  67. package/dist/esm/types/index.d.ts +6 -0
  68. package/dist/esm/types/services/ErrorTrackingService.d.ts +38 -0
  69. package/dist/esm/types/types/events.d.ts +29 -0
  70. package/dist/esm/types/types/state.d.ts +5 -0
  71. package/dist/esm/types/types.d.ts +137 -0
  72. package/dist/esm/types/utils/chatbotSdk.d.ts +23 -0
  73. package/dist/esm/types/utils/colorUtils.d.ts +1 -0
  74. package/dist/esm/types/utils/cookieUtils.d.ts +6 -0
  75. package/dist/esm/types/utils/environment.d.ts +12 -0
  76. package/dist/esm/types/utils/fetchData.d.ts +53 -0
  77. package/dist/esm/types/utils/launcherInfo.d.ts +11 -0
  78. package/dist/esm/types/utils/logger.d.ts +6 -0
  79. package/dist/esm/types/utils/misc.d.ts +1 -0
  80. package/dist/esm/types/utils/originalFetchDataFile.d.ts +1 -0
  81. package/dist/esm/types/utils/proactive.d.ts +25 -0
  82. package/dist/esm/types/utils/sanitize.d.ts +4 -0
  83. package/dist/esm/types/utils/systemInfo.d.ts +12 -0
  84. package/dist/esm/types/utils/textDirection.d.ts +7 -0
  85. package/dist/esm/types/utils/url.d.ts +8 -0
  86. package/dist/esm/types/utils/version.d.ts +1 -0
  87. package/dist/esm/types/vanilla/components/ChatWidgetPopup.d.ts +17 -0
  88. package/dist/esm/types/vanilla/components/ChatbotContainer.d.ts +45 -0
  89. package/dist/esm/types/vanilla/components/ChatbotFloatingButton.d.ts +83 -0
  90. package/dist/esm/types/vanilla/index.d.ts +42 -0
  91. package/dist/index.d.ts +235 -0
  92. package/dist/umd/robylon-chatbot.js +2 -0
  93. package/dist/umd/robylon-chatbot.js.map +1 -0
  94. package/dist/umd/types/components/ChatWidgetPopup.d.ts +8 -0
  95. package/dist/umd/types/components/ChatbotContainer/ChatbotContainer.d.ts +15 -0
  96. package/dist/umd/types/components/ChatbotContainer/index.d.ts +1 -0
  97. package/dist/umd/types/components/ChatbotFloatingButton.d.ts +19 -0
  98. package/dist/umd/types/components/ErrorBoundary.d.ts +15 -0
  99. package/dist/umd/types/components/RobylonChatbot.d.ts +28 -0
  100. package/dist/umd/types/config.d.ts +5 -0
  101. package/dist/umd/types/constants/errorConstants.d.ts +60 -0
  102. package/dist/umd/types/constants/fontStyles.d.ts +4 -0
  103. package/dist/umd/types/core/api.d.ts +10 -0
  104. package/dist/umd/types/core/config.d.ts +41 -0
  105. package/dist/umd/types/core/events.d.ts +22 -0
  106. package/dist/umd/types/core/index.d.ts +4 -0
  107. package/dist/umd/types/core/state.d.ts +34 -0
  108. package/dist/umd/types/hooks/useChatbot.d.ts +2 -0
  109. package/dist/umd/types/hooks/useChatbotEvents.d.ts +12 -0
  110. package/dist/umd/types/hooks/useChatbotState.d.ts +16 -0
  111. package/dist/umd/types/hooks/useWhyDidYouUpdate.d.ts +5 -0
  112. package/dist/umd/types/index.d.ts +6 -0
  113. package/dist/umd/types/services/ErrorTrackingService.d.ts +38 -0
  114. package/dist/umd/types/types/events.d.ts +29 -0
  115. package/dist/umd/types/types/state.d.ts +5 -0
  116. package/dist/umd/types/types.d.ts +137 -0
  117. package/dist/umd/types/utils/chatbotSdk.d.ts +23 -0
  118. package/dist/umd/types/utils/colorUtils.d.ts +1 -0
  119. package/dist/umd/types/utils/cookieUtils.d.ts +6 -0
  120. package/dist/umd/types/utils/environment.d.ts +12 -0
  121. package/dist/umd/types/utils/fetchData.d.ts +53 -0
  122. package/dist/umd/types/utils/launcherInfo.d.ts +11 -0
  123. package/dist/umd/types/utils/logger.d.ts +6 -0
  124. package/dist/umd/types/utils/misc.d.ts +1 -0
  125. package/dist/umd/types/utils/originalFetchDataFile.d.ts +1 -0
  126. package/dist/umd/types/utils/proactive.d.ts +25 -0
  127. package/dist/umd/types/utils/sanitize.d.ts +4 -0
  128. package/dist/umd/types/utils/systemInfo.d.ts +12 -0
  129. package/dist/umd/types/utils/textDirection.d.ts +7 -0
  130. package/dist/umd/types/utils/url.d.ts +8 -0
  131. package/dist/umd/types/utils/version.d.ts +1 -0
  132. package/dist/umd/types/vanilla/components/ChatWidgetPopup.d.ts +17 -0
  133. package/dist/umd/types/vanilla/components/ChatbotContainer.d.ts +45 -0
  134. package/dist/umd/types/vanilla/components/ChatbotFloatingButton.d.ts +83 -0
  135. package/dist/umd/types/vanilla/index.d.ts +42 -0
  136. package/package.json +110 -0
@@ -0,0 +1,45 @@
1
+ import { ChatbotConfig } from "../../types";
2
+ /**
3
+ * Class representing the ChatbotContainer component
4
+ * Container component that wraps the floating button and iframe
5
+ * to allow styling them as a single unit
6
+ */
7
+ export declare class ChatbotContainer {
8
+ private containerElement;
9
+ private resizeObserver;
10
+ private handleResizeFunction;
11
+ private config;
12
+ /**
13
+ * Creates a new ChatbotContainer
14
+ */
15
+ constructor(config: ChatbotConfig, position?: "Left" | "Right", sideSpacing?: number, bottomSpacing?: number);
16
+ /**
17
+ * Renders the container element
18
+ */
19
+ private render;
20
+ /**
21
+ * Apply styles based on screen width
22
+ */
23
+ private applyStyles;
24
+ /**
25
+ * Handle resize event
26
+ */
27
+ private handleResize;
28
+ /**
29
+ * Set up resize listener to adjust styles on window resize
30
+ */
31
+ private setupResizeListener;
32
+ /**
33
+ * Mounts the container to the DOM
34
+ */
35
+ private mount;
36
+ /**
37
+ * Gets the container element
38
+ * @returns The container element
39
+ */
40
+ getElement(): HTMLDivElement;
41
+ /**
42
+ * Unmounts and destroys the container
43
+ */
44
+ destroy(): void;
45
+ }
@@ -0,0 +1,83 @@
1
+ import { ChatbotConfig } from "../../types";
2
+ import { ChatbotEventType, AllEventTypes } from "../../types/events";
3
+ /**
4
+ * Interface for the ChatbotFloatingButton configuration
5
+ */
6
+ interface ChatbotFloatingButtonConfig {
7
+ config: ChatbotConfig;
8
+ toggleIframe: () => void;
9
+ isIframeVisible: boolean;
10
+ onEvent?: (event: {
11
+ type: ChatbotEventType;
12
+ timestamp: number;
13
+ data?: any;
14
+ }) => void;
15
+ onInternalEvent: (eventType: AllEventTypes, additionalData?: Record<string, any>) => void;
16
+ position?: "Left" | "Right";
17
+ sideSpacing?: number;
18
+ bottomSpacing?: number;
19
+ launcher_size?: number;
20
+ }
21
+ /**
22
+ * Class representing the ChatbotFloatingButton component
23
+ */
24
+ export declare class ChatbotFloatingButton {
25
+ private buttonElement;
26
+ private config;
27
+ private resizeObserver;
28
+ private handleResizeFunction;
29
+ private proactiveElement;
30
+ private urlUnsubscribe;
31
+ private delayTimers;
32
+ /**
33
+ * Creates a new ChatbotFloatingButton
34
+ * @param config The button configuration
35
+ */
36
+ constructor(config: ChatbotFloatingButtonConfig);
37
+ /**
38
+ * Renders the button element
39
+ */
40
+ private render;
41
+ private createLauncherElement;
42
+ private createTextLauncher;
43
+ private createTextualImageLauncher;
44
+ /**
45
+ * Apply responsive styles based on screen width
46
+ * @param baseStyles The base styles to apply
47
+ */
48
+ private applyResponsiveStyles;
49
+ /**
50
+ * Handle resize event
51
+ */
52
+ private handleResize;
53
+ /**
54
+ * Set up resize listener to adjust styles on window resize
55
+ */
56
+ private setupResizeListener;
57
+ /**
58
+ * Gets the button element
59
+ * @returns The button element
60
+ */
61
+ getElement(): HTMLDivElement;
62
+ /**
63
+ * Mounts the button to the DOM
64
+ */
65
+ private mount;
66
+ /**
67
+ * Updates the button with new configuration
68
+ * @param config The new configuration
69
+ */
70
+ update(config: Partial<ChatbotFloatingButtonConfig>): void;
71
+ /**
72
+ * Unmounts and destroys the button
73
+ */
74
+ destroy(): void;
75
+ private clearProactiveDelays;
76
+ /**
77
+ * Hides proactive messages with animation
78
+ */
79
+ private hideProactiveMessages;
80
+ private injectAnimationStyles;
81
+ private renderProactiveIfNeeded;
82
+ }
83
+ export {};
@@ -0,0 +1,42 @@
1
+ import { ChatbotEvent } from "../types/events";
2
+ /**
3
+ * Interface for the RobylonChatbot configuration
4
+ */
5
+ export interface RobylonChatbotConfig {
6
+ api_key: string;
7
+ user_id?: string | null | number;
8
+ user_token?: string;
9
+ user_profile?: Record<string, any>;
10
+ onEvent?: (event: ChatbotEvent) => void;
11
+ position?: "Left" | "Right" | string;
12
+ sideSpacing?: number | string;
13
+ bottomSpacing?: number | string;
14
+ show_launcher?: boolean | null;
15
+ overrides?: {
16
+ header_avatar?: string | null;
17
+ agent_avatar?: string | null;
18
+ header_title?: string | null;
19
+ };
20
+ launcher_size?: number;
21
+ }
22
+ /**
23
+ * RobylonChatbot instance interface
24
+ */
25
+ export interface RobylonChatbotInstance {
26
+ show: () => void;
27
+ hide: () => void;
28
+ toggle: () => void;
29
+ destroy: () => void;
30
+ getState: () => string;
31
+ }
32
+ /**
33
+ * Creates a new RobylonChatbot instance
34
+ * @param config The chatbot configuration
35
+ * @returns A RobylonChatbot instance
36
+ */
37
+ export declare function create(config: RobylonChatbotConfig): RobylonChatbotInstance;
38
+ declare const _default: {
39
+ create: typeof create;
40
+ getState: () => string;
41
+ };
42
+ export default _default;
package/package.json ADDED
@@ -0,0 +1,110 @@
1
+ {
2
+ "name": "@robylon/whatsapp-react-sdk",
3
+ "version": "1.0.0-staging.1",
4
+ "description": "React SDK for Robylon WhatsApp",
5
+ "main": "dist/cjs/index.js",
6
+ "module": "dist/esm/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "unpkg": "dist/umd/robylon-chatbot.js",
9
+ "files": [
10
+ "dist",
11
+ "README.md",
12
+ "CONTRIBUTING.md"
13
+ ],
14
+ "scripts": {
15
+ "clean": "rm -rf dist",
16
+ "build:development": "npm run clean && cross-env NODE_ENV=development TARGET=npm rollup -c",
17
+ "build:staging": "npm run clean && cross-env NODE_ENV=staging PUBLISH_TYPE=staging TARGET=npm rollup -c",
18
+ "build:production": "npm run clean && cross-env NODE_ENV=production PUBLISH_TYPE=production TARGET=npm rollup -c",
19
+ "build:development:unpkg": "npm run clean && cross-env NODE_ENV=development TARGET=unpkg rollup -c",
20
+ "build:staging:unpkg": "npm run clean && cross-env NODE_ENV=staging PUBLISH_TYPE=staging TARGET=unpkg rollup -c",
21
+ "build:production:unpkg": "npm run clean && cross-env NODE_ENV=production PUBLISH_TYPE=production TARGET=unpkg rollup -c",
22
+ "build:development:all": "npm run clean && cross-env NODE_ENV=development TARGET=all rollup -c",
23
+ "build:staging:all": "npm run clean && cross-env NODE_ENV=staging PUBLISH_TYPE=staging TARGET=all rollup -c",
24
+ "build:production:all": "npm run clean && cross-env NODE_ENV=production PUBLISH_TYPE=production TARGET=all rollup -c",
25
+ "build": "npm run build:development:all",
26
+ "version:staging": "npm version prerelease --preid=staging",
27
+ "version:production": "npm version patch",
28
+ "trigger:staging": "node scripts/trigger-staging-workflow.js",
29
+ "trigger:production": "gh workflow run deploy-sdk.yml",
30
+ "deploy:staging": "npm run version:staging && npm run trigger:staging",
31
+ "deploy:production": "npm run version:production && npm run trigger:production",
32
+ "update-changelog": "node scripts/update-changelog.js",
33
+ "install-hooks": "node scripts/install-hooks.js",
34
+ "publish:staging": "node scripts/validate-publish.js staging && npm run build:staging:all && npm version prerelease --preid=staging --force && npm publish --tag staging && node scripts/create-version-tag.js",
35
+ "publish:production": "node scripts/validate-publish.js production && npm run build:production:all && node scripts/publish-version.js && npm publish --tag latest && node scripts/create-version-tag.js",
36
+ "publish:hotfix": "node scripts/validate-publish.js hotfix && npm run build:production:all && npm version prerelease --preid=patch && npm publish --tag hotfix && node scripts/create-version-tag.js",
37
+ "test": "jest",
38
+ "test:watch": "jest --watch",
39
+ "lint": "eslint src/**/*.{ts,tsx}",
40
+ "lint:fix": "eslint src/**/*.{ts,tsx} --fix",
41
+ "prepare": "node scripts/husky-setup.js",
42
+ "branch": "node scripts/create-branch.js",
43
+ "release": "node scripts/release.js",
44
+ "build:vanilla": "cross-env TARGET=unpkg rollup -c",
45
+ "build:development:cloudfront": "npm run clean && cross-env NODE_ENV=development TARGET=cloudfront rollup -c",
46
+ "build:staging:cloudfront": "npm run clean && cross-env NODE_ENV=staging PUBLISH_TYPE=staging TARGET=cloudfront rollup -c",
47
+ "build:production:cloudfront": "npm run clean && cross-env NODE_ENV=production PUBLISH_TYPE=production TARGET=cloudfront rollup -c",
48
+ "dev:watch": "cross-env NODE_ENV=development TARGET=npm rollup -c -w",
49
+ "dev:watch:vanilla": "cross-env NODE_ENV=development TARGET=unpkg rollup -c -w",
50
+ "dev:serve": "npx serve . -l 3002"
51
+ },
52
+ "publishConfig": {
53
+ "access": "public"
54
+ },
55
+ "keywords": [
56
+ "react",
57
+ "chatbot",
58
+ "ai",
59
+ "robylon",
60
+ "support"
61
+ ],
62
+ "author": "Robylon",
63
+ "license": "MIT",
64
+ "repository": {
65
+ "type": "git",
66
+ "url": "git+https://github.com/OneWorldNation/robylon-whatsapp-sdk.git"
67
+ },
68
+ "bugs": {
69
+ "url": "https://github.com/OneWorldNation/robylon-whatsapp-sdk/issues"
70
+ },
71
+ "homepage": "https://app.robylon.ai",
72
+ "devDependencies": {
73
+ "@rollup/plugin-commonjs": "^24.1.0",
74
+ "@rollup/plugin-node-resolve": "^15.2.3",
75
+ "@rollup/plugin-replace": "^6.0.2",
76
+ "@rollup/plugin-terser": "^0.4.4",
77
+ "@rollup/plugin-typescript": "^11.1.5",
78
+ "@testing-library/jest-dom": "^6.1.6",
79
+ "@testing-library/react": "^14.1.2",
80
+ "@types/lodash": "^4.17.13",
81
+ "@types/react": "^18.2.45",
82
+ "@types/react-dom": "^18.2.18",
83
+ "@typescript-eslint/eslint-plugin": "^6.15.0",
84
+ "@typescript-eslint/parser": "^6.15.0",
85
+ "cross-env": "^7.0.3",
86
+ "dotenv": "^16.4.7",
87
+ "eslint": "^8.56.0",
88
+ "husky": "^9.1.7",
89
+ "jest": "^29.7.0",
90
+ "prettier": "^3.1.1",
91
+ "rollup": "^3.29.5",
92
+ "rollup-plugin-dts": "^6.1.1",
93
+ "rollup-plugin-peer-deps-external": "^2.2.4",
94
+ "semver": "^7.5.4",
95
+ "ts-jest": "^29.1.1",
96
+ "tslib": "^2.8.1",
97
+ "typescript": "^5.3.3"
98
+ },
99
+ "peerDependencies": {
100
+ "react": "*",
101
+ "react-dom": "*"
102
+ },
103
+ "dependencies": {
104
+ "lodash": "^4.17.21",
105
+ "dompurify": "^3.1.6"
106
+ },
107
+ "husky": {
108
+ "prepare": "husky install"
109
+ }
110
+ }