@fireberry/sdk 0.0.4 → 0.0.6

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 (276) hide show
  1. package/{node_modules/asynckit/LICENSE → LICENSE.md} +2 -2
  2. package/README.md +136 -37
  3. package/dist/cjs/constants/index.d.ts +18 -0
  4. package/dist/cjs/constants/index.d.ts.map +1 -0
  5. package/dist/cjs/constants/index.js +21 -0
  6. package/dist/cjs/constants/index.js.map +1 -0
  7. package/dist/cjs/context/context.d.ts +7 -0
  8. package/dist/cjs/context/context.d.ts.map +1 -0
  9. package/dist/cjs/context/context.js +11 -0
  10. package/dist/cjs/context/context.js.map +1 -0
  11. package/dist/cjs/context/index.d.ts +2 -0
  12. package/dist/cjs/context/index.d.ts.map +1 -0
  13. package/dist/cjs/context/index.js.map +1 -0
  14. package/dist/cjs/fireberrySDK.client.d.ts +32 -0
  15. package/dist/cjs/fireberrySDK.client.d.ts.map +1 -0
  16. package/dist/cjs/fireberrySDK.client.js +102 -0
  17. package/dist/cjs/fireberrySDK.client.js.map +1 -0
  18. package/dist/cjs/iframeMessageManager.d.ts +13 -0
  19. package/dist/cjs/iframeMessageManager.d.ts.map +1 -0
  20. package/dist/cjs/iframeMessageManager.js +88 -0
  21. package/dist/cjs/iframeMessageManager.js.map +1 -0
  22. package/dist/cjs/types/index.d.ts +86 -0
  23. package/dist/cjs/types/index.d.ts.map +1 -0
  24. package/dist/{fireberryAPI/types.js → cjs/types/index.js} +1 -1
  25. package/dist/cjs/types/index.js.map +1 -0
  26. package/dist/esm/constants/index.d.ts +18 -0
  27. package/dist/esm/constants/index.d.ts.map +1 -0
  28. package/dist/esm/constants/index.js +18 -0
  29. package/dist/esm/constants/index.js.map +1 -0
  30. package/dist/esm/context/context.d.ts +7 -0
  31. package/dist/esm/context/context.d.ts.map +1 -0
  32. package/dist/esm/context/context.js +7 -0
  33. package/dist/esm/context/context.js.map +1 -0
  34. package/dist/esm/context/index.d.ts +2 -0
  35. package/dist/esm/context/index.d.ts.map +1 -0
  36. package/dist/esm/context/index.js +2 -0
  37. package/dist/esm/context/index.js.map +1 -0
  38. package/dist/esm/fireberrySDK.client.d.ts +32 -0
  39. package/dist/esm/fireberrySDK.client.d.ts.map +1 -0
  40. package/dist/esm/fireberrySDK.client.js +98 -0
  41. package/dist/esm/fireberrySDK.client.js.map +1 -0
  42. package/dist/esm/iframeMessageManager.d.ts +13 -0
  43. package/dist/esm/iframeMessageManager.d.ts.map +1 -0
  44. package/dist/esm/iframeMessageManager.js +84 -0
  45. package/dist/esm/iframeMessageManager.js.map +1 -0
  46. package/dist/esm/types/index.d.ts +86 -0
  47. package/dist/esm/types/index.d.ts.map +1 -0
  48. package/dist/esm/types/index.js +2 -0
  49. package/dist/esm/types/index.js.map +1 -0
  50. package/package.json +54 -27
  51. package/.eslintrc.json +0 -36
  52. package/.prettierrc.json +0 -7
  53. package/.vscode/settings.json +0 -35
  54. package/dist/base.fireberrySDK.d.ts +0 -7
  55. package/dist/base.fireberrySDK.js +0 -10
  56. package/dist/base.fireberrySDK.js.map +0 -1
  57. package/dist/context/context.d.ts +0 -13
  58. package/dist/context/context.js +0 -22
  59. package/dist/context/context.js.map +0 -1
  60. package/dist/context/context.record.test.d.ts +0 -1
  61. package/dist/context/context.record.test.js +0 -45
  62. package/dist/context/context.record.test.js.map +0 -1
  63. package/dist/context/index.d.ts +0 -5
  64. package/dist/context/index.js.map +0 -1
  65. package/dist/context/record.d.ts +0 -9
  66. package/dist/context/record.js +0 -33
  67. package/dist/context/record.js.map +0 -1
  68. package/dist/context/user.d.ts +0 -5
  69. package/dist/context/user.js +0 -27
  70. package/dist/context/user.js.map +0 -1
  71. package/dist/fireberry.sdk.d.ts +0 -4
  72. package/dist/fireberry.sdk.js +0 -13
  73. package/dist/fireberry.sdk.js.map +0 -1
  74. package/dist/fireberryAPI/fireberryV2Api.d.ts +0 -17
  75. package/dist/fireberryAPI/fireberryV2Api.js +0 -54
  76. package/dist/fireberryAPI/fireberryV2Api.js.map +0 -1
  77. package/dist/fireberryAPI/fireberryV2Api.test.d.ts +0 -1
  78. package/dist/fireberryAPI/fireberryV2Api.test.js +0 -56
  79. package/dist/fireberryAPI/fireberryV2Api.test.js.map +0 -1
  80. package/dist/fireberryAPI/index.d.ts +0 -2
  81. package/dist/fireberryAPI/index.js +0 -21
  82. package/dist/fireberryAPI/index.js.map +0 -1
  83. package/dist/fireberryAPI/types.d.ts +0 -10
  84. package/dist/fireberryAPI/types.js.map +0 -1
  85. package/dist/fireberrySDK.client.d.ts +0 -5
  86. package/dist/fireberrySDK.client.js +0 -13
  87. package/dist/fireberrySDK.client.js.map +0 -1
  88. package/dist/fireberrySDK.server.d.ts +0 -6
  89. package/dist/fireberrySDK.server.js +0 -12
  90. package/dist/fireberrySDK.server.js.map +0 -1
  91. package/dist/index.d.ts +0 -6
  92. package/dist/index.js +0 -25
  93. package/dist/index.js.map +0 -1
  94. package/dist/utils/axios.util.d.ts +0 -6
  95. package/dist/utils/axios.util.js +0 -24
  96. package/dist/utils/axios.util.js.map +0 -1
  97. package/dist/utils/index.d.ts +0 -2
  98. package/dist/utils/index.js +0 -19
  99. package/dist/utils/index.js.map +0 -1
  100. package/dist/utils/queryParam.util.d.ts +0 -1
  101. package/dist/utils/queryParam.util.js +0 -12
  102. package/dist/utils/queryParam.util.js.map +0 -1
  103. package/jest.config.ts +0 -10
  104. package/node_modules/asynckit/README.md +0 -233
  105. package/node_modules/asynckit/bench.js +0 -76
  106. package/node_modules/asynckit/index.js +0 -6
  107. package/node_modules/asynckit/lib/abort.js +0 -29
  108. package/node_modules/asynckit/lib/async.js +0 -34
  109. package/node_modules/asynckit/lib/defer.js +0 -26
  110. package/node_modules/asynckit/lib/iterate.js +0 -75
  111. package/node_modules/asynckit/lib/readable_asynckit.js +0 -91
  112. package/node_modules/asynckit/lib/readable_parallel.js +0 -25
  113. package/node_modules/asynckit/lib/readable_serial.js +0 -25
  114. package/node_modules/asynckit/lib/readable_serial_ordered.js +0 -29
  115. package/node_modules/asynckit/lib/state.js +0 -37
  116. package/node_modules/asynckit/lib/streamify.js +0 -141
  117. package/node_modules/asynckit/lib/terminator.js +0 -29
  118. package/node_modules/asynckit/package.json +0 -63
  119. package/node_modules/asynckit/parallel.js +0 -43
  120. package/node_modules/asynckit/serial.js +0 -17
  121. package/node_modules/asynckit/serialOrdered.js +0 -75
  122. package/node_modules/asynckit/stream.js +0 -21
  123. package/node_modules/axios/CHANGELOG.md +0 -874
  124. package/node_modules/axios/LICENSE +0 -7
  125. package/node_modules/axios/MIGRATION_GUIDE.md +0 -3
  126. package/node_modules/axios/README.md +0 -1650
  127. package/node_modules/axios/SECURITY.md +0 -6
  128. package/node_modules/axios/dist/axios.js +0 -3448
  129. package/node_modules/axios/dist/axios.js.map +0 -1
  130. package/node_modules/axios/dist/axios.min.js +0 -2
  131. package/node_modules/axios/dist/axios.min.js.map +0 -1
  132. package/node_modules/axios/dist/browser/axios.cjs +0 -3258
  133. package/node_modules/axios/dist/browser/axios.cjs.map +0 -1
  134. package/node_modules/axios/dist/esm/axios.js +0 -3281
  135. package/node_modules/axios/dist/esm/axios.js.map +0 -1
  136. package/node_modules/axios/dist/esm/axios.min.js +0 -2
  137. package/node_modules/axios/dist/esm/axios.min.js.map +0 -1
  138. package/node_modules/axios/dist/node/axios.cjs +0 -4354
  139. package/node_modules/axios/dist/node/axios.cjs.map +0 -1
  140. package/node_modules/axios/index.d.cts +0 -542
  141. package/node_modules/axios/index.d.ts +0 -559
  142. package/node_modules/axios/index.js +0 -43
  143. package/node_modules/axios/lib/adapters/README.md +0 -37
  144. package/node_modules/axios/lib/adapters/adapters.js +0 -77
  145. package/node_modules/axios/lib/adapters/http.js +0 -685
  146. package/node_modules/axios/lib/adapters/xhr.js +0 -260
  147. package/node_modules/axios/lib/axios.js +0 -89
  148. package/node_modules/axios/lib/cancel/CancelToken.js +0 -121
  149. package/node_modules/axios/lib/cancel/CanceledError.js +0 -25
  150. package/node_modules/axios/lib/cancel/isCancel.js +0 -5
  151. package/node_modules/axios/lib/core/Axios.js +0 -225
  152. package/node_modules/axios/lib/core/AxiosError.js +0 -100
  153. package/node_modules/axios/lib/core/AxiosHeaders.js +0 -298
  154. package/node_modules/axios/lib/core/InterceptorManager.js +0 -71
  155. package/node_modules/axios/lib/core/README.md +0 -8
  156. package/node_modules/axios/lib/core/buildFullPath.js +0 -21
  157. package/node_modules/axios/lib/core/dispatchRequest.js +0 -81
  158. package/node_modules/axios/lib/core/mergeConfig.js +0 -106
  159. package/node_modules/axios/lib/core/settle.js +0 -27
  160. package/node_modules/axios/lib/core/transformData.js +0 -28
  161. package/node_modules/axios/lib/defaults/index.js +0 -156
  162. package/node_modules/axios/lib/defaults/transitional.js +0 -7
  163. package/node_modules/axios/lib/env/README.md +0 -3
  164. package/node_modules/axios/lib/env/classes/FormData.js +0 -2
  165. package/node_modules/axios/lib/env/data.js +0 -1
  166. package/node_modules/axios/lib/helpers/AxiosTransformStream.js +0 -191
  167. package/node_modules/axios/lib/helpers/AxiosURLSearchParams.js +0 -58
  168. package/node_modules/axios/lib/helpers/HttpStatusCode.js +0 -71
  169. package/node_modules/axios/lib/helpers/README.md +0 -7
  170. package/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js +0 -28
  171. package/node_modules/axios/lib/helpers/bind.js +0 -7
  172. package/node_modules/axios/lib/helpers/buildURL.js +0 -63
  173. package/node_modules/axios/lib/helpers/callbackify.js +0 -16
  174. package/node_modules/axios/lib/helpers/combineURLs.js +0 -15
  175. package/node_modules/axios/lib/helpers/cookies.js +0 -42
  176. package/node_modules/axios/lib/helpers/deprecatedMethod.js +0 -26
  177. package/node_modules/axios/lib/helpers/formDataToJSON.js +0 -95
  178. package/node_modules/axios/lib/helpers/formDataToStream.js +0 -111
  179. package/node_modules/axios/lib/helpers/fromDataURI.js +0 -53
  180. package/node_modules/axios/lib/helpers/isAbsoluteURL.js +0 -15
  181. package/node_modules/axios/lib/helpers/isAxiosError.js +0 -14
  182. package/node_modules/axios/lib/helpers/isURLSameOrigin.js +0 -67
  183. package/node_modules/axios/lib/helpers/null.js +0 -2
  184. package/node_modules/axios/lib/helpers/parseHeaders.js +0 -55
  185. package/node_modules/axios/lib/helpers/parseProtocol.js +0 -6
  186. package/node_modules/axios/lib/helpers/readBlob.js +0 -15
  187. package/node_modules/axios/lib/helpers/speedometer.js +0 -55
  188. package/node_modules/axios/lib/helpers/spread.js +0 -28
  189. package/node_modules/axios/lib/helpers/throttle.js +0 -33
  190. package/node_modules/axios/lib/helpers/toFormData.js +0 -219
  191. package/node_modules/axios/lib/helpers/toURLEncodedForm.js +0 -18
  192. package/node_modules/axios/lib/helpers/validator.js +0 -91
  193. package/node_modules/axios/lib/platform/browser/classes/Blob.js +0 -3
  194. package/node_modules/axios/lib/platform/browser/classes/FormData.js +0 -3
  195. package/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js +0 -4
  196. package/node_modules/axios/lib/platform/browser/index.js +0 -13
  197. package/node_modules/axios/lib/platform/common/utils.js +0 -47
  198. package/node_modules/axios/lib/platform/index.js +0 -7
  199. package/node_modules/axios/lib/platform/node/classes/FormData.js +0 -3
  200. package/node_modules/axios/lib/platform/node/classes/URLSearchParams.js +0 -4
  201. package/node_modules/axios/lib/platform/node/index.js +0 -12
  202. package/node_modules/axios/lib/utils.js +0 -723
  203. package/node_modules/axios/package.json +0 -218
  204. package/node_modules/combined-stream/License +0 -19
  205. package/node_modules/combined-stream/Readme.md +0 -138
  206. package/node_modules/combined-stream/lib/combined_stream.js +0 -208
  207. package/node_modules/combined-stream/package.json +0 -25
  208. package/node_modules/delayed-stream/.npmignore +0 -1
  209. package/node_modules/delayed-stream/License +0 -19
  210. package/node_modules/delayed-stream/Makefile +0 -7
  211. package/node_modules/delayed-stream/Readme.md +0 -141
  212. package/node_modules/delayed-stream/lib/delayed_stream.js +0 -107
  213. package/node_modules/delayed-stream/package.json +0 -27
  214. package/node_modules/dotenv/CHANGELOG.md +0 -475
  215. package/node_modules/dotenv/LICENSE +0 -23
  216. package/node_modules/dotenv/README-es.md +0 -448
  217. package/node_modules/dotenv/README.md +0 -728
  218. package/node_modules/dotenv/config.d.ts +0 -1
  219. package/node_modules/dotenv/config.js +0 -9
  220. package/node_modules/dotenv/lib/cli-options.js +0 -11
  221. package/node_modules/dotenv/lib/env-options.js +0 -24
  222. package/node_modules/dotenv/lib/main.d.ts +0 -153
  223. package/node_modules/dotenv/lib/main.js +0 -361
  224. package/node_modules/dotenv/package.json +0 -65
  225. package/node_modules/follow-redirects/LICENSE +0 -18
  226. package/node_modules/follow-redirects/README.md +0 -155
  227. package/node_modules/follow-redirects/debug.js +0 -15
  228. package/node_modules/follow-redirects/http.js +0 -1
  229. package/node_modules/follow-redirects/https.js +0 -1
  230. package/node_modules/follow-redirects/index.js +0 -672
  231. package/node_modules/follow-redirects/package.json +0 -58
  232. package/node_modules/form-data/License +0 -19
  233. package/node_modules/form-data/README.md.bak +0 -358
  234. package/node_modules/form-data/Readme.md +0 -358
  235. package/node_modules/form-data/index.d.ts +0 -62
  236. package/node_modules/form-data/lib/browser.js +0 -2
  237. package/node_modules/form-data/lib/form_data.js +0 -501
  238. package/node_modules/form-data/lib/populate.js +0 -10
  239. package/node_modules/form-data/package.json +0 -68
  240. package/node_modules/mime-db/HISTORY.md +0 -507
  241. package/node_modules/mime-db/LICENSE +0 -23
  242. package/node_modules/mime-db/README.md +0 -100
  243. package/node_modules/mime-db/db.json +0 -8519
  244. package/node_modules/mime-db/index.js +0 -12
  245. package/node_modules/mime-db/package.json +0 -60
  246. package/node_modules/mime-types/HISTORY.md +0 -397
  247. package/node_modules/mime-types/LICENSE +0 -23
  248. package/node_modules/mime-types/README.md +0 -113
  249. package/node_modules/mime-types/index.js +0 -188
  250. package/node_modules/mime-types/package.json +0 -44
  251. package/node_modules/proxy-from-env/.eslintrc +0 -29
  252. package/node_modules/proxy-from-env/.travis.yml +0 -10
  253. package/node_modules/proxy-from-env/LICENSE +0 -20
  254. package/node_modules/proxy-from-env/README.md +0 -131
  255. package/node_modules/proxy-from-env/index.js +0 -108
  256. package/node_modules/proxy-from-env/package.json +0 -34
  257. package/node_modules/proxy-from-env/test.js +0 -483
  258. package/src/base.fireberrySDK.ts +0 -7
  259. package/src/context/context.record.test.ts +0 -47
  260. package/src/context/context.ts +0 -28
  261. package/src/context/index.ts +0 -6
  262. package/src/context/record.ts +0 -22
  263. package/src/context/user.ts +0 -15
  264. package/src/fireberry.sdk.ts +0 -14
  265. package/src/fireberryAPI/fireberryV2Api.test.ts +0 -57
  266. package/src/fireberryAPI/fireberryV2Api.ts +0 -61
  267. package/src/fireberryAPI/index.ts +0 -2
  268. package/src/fireberryAPI/types.ts +0 -10
  269. package/src/fireberrySDK.client.ts +0 -10
  270. package/src/fireberrySDK.server.ts +0 -8
  271. package/src/index.ts +0 -9
  272. package/src/utils/axios.util.ts +0 -20
  273. package/src/utils/index.ts +0 -2
  274. package/src/utils/queryParam.util.ts +0 -8
  275. package/tsconfig.json +0 -123
  276. /package/dist/{context → cjs/context}/index.js +0 -0
@@ -1,6 +1,6 @@
1
- The MIT License (MIT)
1
+ MIT License
2
2
 
3
- Copyright (c) 2016 Alex Indigo
3
+ Copyright (c) 2025 Fireberry LTD
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -1,37 +1,136 @@
1
- # Fireberry SDK
2
-
3
- ## Overview
4
-
5
- Welcome to the Fireberry SDK! This software development kit (SDK) is designed to help developers who are looking to integrate Fireberry into their application. This guide will provide you with the necessary information to get started.
6
-
7
- ## Features
8
-
9
- - Get current record: Using FireberryApi module you can fetch the current record.
10
- - [Feature 2]: Description of the second feature.
11
- - [Feature 3]: Description of the third feature.
12
- - ...
13
-
14
- ## Installation
15
-
16
- To integrate Fireberry SDK into your project, follow these simple steps:
17
-
18
- 1. URL params: The SDK uses `recordType` and `recordId` url params, make sure you don't overrides them.
19
- 2. tokenId variable: On dev mode only, pass the tokenId as a config to the FireberrySDK instance.
20
- _Pay attention: In production, the SDK will use the cookie as an authentication, and not the token_
21
- 3. node env variable: Add to your `.env` file a `NODE_ENV` param:
22
- `NODE_ENV=development`
23
-
24
- ### How to use
25
-
26
- ```
27
- const [record, setRecord] = useState(null);
28
-
29
- useEffect(() => {
30
- const fbSDK = new FireberrySDK({
31
- tokenId: "YOUR DEVELOPMENT ONLY TOKEN",
32
- });
33
- fbSDK.context.record.all().then((record) => {
34
- setRecord(record);
35
- });
36
- }, []);
37
- ```
1
+ # Fireberry SDK
2
+
3
+ A lightweight TypeScript SDK for integrating with the Fireberry platform, providing seamless communication for embedded applications. Built with modern TypeScript and designed for optimal developer experience.
4
+
5
+ ## Features
6
+
7
+ - **📝 Full CRUD Operations**: Create, Query (Read), Update, Delete operations for business objects
8
+ - **🔍 Advanced Querying**: Flexible querying with field selection, filtering, and pagination
9
+ - **⚡ TypeScript First**: Full type safety with comprehensive TypeScript definitions
10
+ - **🎯 Context Awareness**: Automatic context detection and management
11
+ - **🚀 Promise-based API**: Modern async/await support for all operations
12
+
13
+ ## Installation
14
+
15
+ ```bash
16
+ npm install @fireberry/sdk
17
+ ```
18
+
19
+ ## Quick Start
20
+
21
+ ### Basic Usage
22
+
23
+ ```typescript
24
+ import FireberryClientSDK from '@fireberry/sdk/client';
25
+
26
+ // Create a new instance
27
+ const client = new FireberryClientSDK();
28
+
29
+ // Initialize context
30
+ await client.initializeContext();
31
+
32
+ // Access the API through the api getter
33
+ const api = client.api;
34
+
35
+ // Get current context information (If not initialized first context will return null)
36
+ const context = client.context;
37
+ ```
38
+
39
+ ### CRUD Operations
40
+
41
+ ```typescript
42
+ const objectType = 1;
43
+
44
+ // Query records with advanced filtering
45
+ const results = await api.query(objectType, {
46
+ fields: 'id,name,createdOn,ownerName',
47
+ query: 'name LIKE "test%" AND ownerName = "John"',
48
+ page_size: 20,
49
+ page_number: 1,
50
+ });
51
+
52
+ // Create a new record
53
+ const newRecord = await api.create(objectType, {
54
+ name: 'New Business Record',
55
+ description: 'Detailed description of the record',
56
+ status: 'active',
57
+ });
58
+
59
+ // Update an existing record
60
+ const updatedRecord = await api.update(objectType, 'recordId123', {
61
+ name: 'Updated Record Name',
62
+ status: 'completed',
63
+ });
64
+
65
+ // Delete a record
66
+ const deleteRecord = await api.delete(objectType, 'recordId123');
67
+ ```
68
+
69
+ ### System Methods
70
+
71
+ Control UI elements in the Fireberry platform using the system API.
72
+
73
+ #### Badge Notifications
74
+
75
+ Display notification badges to alert users about important information or status updates.
76
+
77
+ ```typescript
78
+ // Show a badge with a number and type
79
+ await client.system.badge.show({
80
+ number: 5,
81
+ badgeType: 'info', // 'success' | 'warning' | 'error' | 'info'
82
+ });
83
+
84
+ // Hide the badge
85
+ await client.system.badge.hide();
86
+ ```
87
+
88
+ **Badge Types:**
89
+
90
+ - `success` — Green badge for positive notifications
91
+ - `warning` — Yellow badge for warnings
92
+ - `error` — Red badge for errors or critical alerts
93
+ - `info` — Blue badge for informational messages
94
+
95
+ #### Callbar
96
+
97
+ Display a callbar interface with call information and related records.
98
+
99
+ ```typescript
100
+ // Show callbar with call information
101
+ await client.system.callbar.show({
102
+ callInfo: {
103
+ number: 1234567890,
104
+ status: 'Talking', // 'Talking' | 'Ringing' | 'Missed' | 'Dialing'
105
+ },
106
+ objectConfig: [
107
+ {
108
+ objectType: '1',
109
+ order: 1,
110
+ fields: [{ name: 'accountname' }, { name: 'email' }],
111
+ },
112
+ ],
113
+ placemment: 'bottom-end', // 'bottom-start' | 'bottom-end'
114
+ });
115
+
116
+ // Hide the callbar
117
+ await client.system.callbar.hide();
118
+ ```
119
+
120
+ ## Browser Support
121
+
122
+ - Modern browsers with ES6+ support
123
+ - Iframe communication support required
124
+ - TypeScript 4.0+ for development
125
+
126
+ ## License
127
+
128
+ MIT
129
+
130
+ ## Maintainers
131
+
132
+ - **Johnny Marelly** (johnnym@fireberry.com) - Project maintenance and enhancements
133
+
134
+ ## Support
135
+
136
+ For questions, issues, or contributions, please contact the maintainers or open an issue in the project repository.
@@ -0,0 +1,18 @@
1
+ export declare const MESSAGE_TYPES: {
2
+ readonly RESPONSE: "RESPONSE";
3
+ readonly REQUEST: "REQUEST";
4
+ readonly REQUEST_CONTEXT: "REQUEST_CONTEXT";
5
+ readonly LOG: "LOG";
6
+ };
7
+ export declare const REQUEST_ACTIONS: {
8
+ readonly SHOW_CALLBAR: "SHOW_CALLBAR";
9
+ readonly HIDE_CALLBAR: "HIDE_CALLBAR";
10
+ readonly CREATE: "CREATE";
11
+ readonly DELETE: "DELETE";
12
+ readonly UPDATE: "UPDATE";
13
+ readonly QUERY: "QUERY";
14
+ readonly SHOW_BADGE: "SHOW_BADGE";
15
+ readonly HIDE_BADGE: "HIDE_BADGE";
16
+ };
17
+ export declare const TIMEOUT_DURATION = 60000;
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;CASlB,CAAC;AAEX,eAAO,MAAM,gBAAgB,QAAQ,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TIMEOUT_DURATION = exports.REQUEST_ACTIONS = exports.MESSAGE_TYPES = void 0;
4
+ exports.MESSAGE_TYPES = {
5
+ RESPONSE: 'RESPONSE',
6
+ REQUEST: 'REQUEST',
7
+ REQUEST_CONTEXT: 'REQUEST_CONTEXT',
8
+ LOG: 'LOG',
9
+ };
10
+ exports.REQUEST_ACTIONS = {
11
+ SHOW_CALLBAR: 'SHOW_CALLBAR',
12
+ HIDE_CALLBAR: 'HIDE_CALLBAR',
13
+ CREATE: 'CREATE',
14
+ DELETE: 'DELETE',
15
+ UPDATE: 'UPDATE',
16
+ QUERY: 'QUERY',
17
+ SHOW_BADGE: 'SHOW_BADGE',
18
+ HIDE_BADGE: 'HIDE_BADGE',
19
+ };
20
+ exports.TIMEOUT_DURATION = 60000;
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG;IAC3B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,eAAe,EAAE,iBAAiB;IAClC,GAAG,EAAE,KAAK;CACF,CAAC;AAEE,QAAA,eAAe,GAAG;IAC7B,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAC5B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;CAChB,CAAC;AAEE,QAAA,gBAAgB,GAAG,KAAK,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ContextDetails, RecordDetails, UserDetails } from '../types';
2
+ export declare class Context {
3
+ user: UserDetails;
4
+ record: RecordDetails;
5
+ constructor(context: ContextDetails);
6
+ }
7
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/context/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEtE,qBAAa,OAAO;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;gBAEjB,OAAO,EAAE,cAAc;CAIpC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Context = void 0;
4
+ class Context {
5
+ constructor(context) {
6
+ this.user = context.user;
7
+ this.record = context.record;
8
+ }
9
+ }
10
+ exports.Context = Context;
11
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/context/context.ts"],"names":[],"mappings":";;;AAEA,MAAa,OAAO;IAIlB,YAAY,OAAuB;QACjC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;CACF;AARD,0BAQC"}
@@ -0,0 +1,2 @@
1
+ export * from './context';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/context/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/context/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B"}
@@ -0,0 +1,32 @@
1
+ import { Context } from './context';
2
+ import { IframeMessageManager } from './iframeMessageManager';
3
+ import type { API, BadgePayload, CallbarPayload, Response, ResponseData } from './types';
4
+ export declare class FireberryClientSDK<TData extends Response> extends IframeMessageManager<TData> {
5
+ private _context;
6
+ constructor();
7
+ get api(): API<TData>;
8
+ get context(): Context | null;
9
+ get system(): {
10
+ callbar: {
11
+ show: (payload: CallbarPayload) => Promise<ResponseData<TData>>;
12
+ hide: () => Promise<ResponseData<TData>>;
13
+ };
14
+ badge: {
15
+ show: (payload: BadgePayload) => Promise<ResponseData<TData>>;
16
+ hide: () => Promise<ResponseData<TData>>;
17
+ };
18
+ };
19
+ initializeContext<T extends TData>(this: FireberryClientSDK<T>): Promise<FireberryClientSDK<T>>;
20
+ private showBadge;
21
+ private hideBadge;
22
+ private setContext;
23
+ private showCallbar;
24
+ private hideCallbar;
25
+ private query;
26
+ private create;
27
+ private delete;
28
+ private update;
29
+ }
30
+ export type { BusinessObject, Data, Payload, QueryPayload, ResponseData, ResponseError, } from './types';
31
+ export default FireberryClientSDK;
32
+ //# sourceMappingURL=fireberrySDK.client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fireberrySDK.client.d.ts","sourceRoot":"","sources":["../../src/fireberrySDK.client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EACV,GAAG,EACH,YAAY,EACZ,cAAc,EAId,QAAQ,EACR,YAAY,EAGb,MAAM,SAAS,CAAC;AAEjB,qBAAa,kBAAkB,CAAC,KAAK,SAAS,QAAQ,CAAE,SAAQ,oBAAoB,CAAC,KAAK,CAAC;IACzF,OAAO,CAAC,QAAQ,CAAwB;;IAKxC,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAOpB;IAED,IAAI,OAAO,IAAI,OAAO,GAAG,IAAI,CAE5B;IAED,IAAI,MAAM;;4BA2EmB,cAAc,KAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;wBAQnD,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;;;4BA3BxB,YAAY,KAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;wBAQjD,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;;MArDhD;IAKK,iBAAiB,CAAC,CAAC,SAAS,KAAK,EACrC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAsCjC,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,KAAK;IASb,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,MAAM;CAaf;AAED,YAAY,EACV,cAAc,EACd,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FireberryClientSDK = void 0;
4
+ const constants_1 = require("./constants");
5
+ const context_1 = require("./context");
6
+ const iframeMessageManager_1 = require("./iframeMessageManager");
7
+ class FireberryClientSDK extends iframeMessageManager_1.IframeMessageManager {
8
+ constructor() {
9
+ super();
10
+ this._context = null;
11
+ }
12
+ get api() {
13
+ return {
14
+ query: this.query.bind(this),
15
+ create: this.create.bind(this),
16
+ delete: this.delete.bind(this),
17
+ update: this.update.bind(this),
18
+ };
19
+ }
20
+ get context() {
21
+ return this._context;
22
+ }
23
+ get system() {
24
+ return {
25
+ callbar: {
26
+ show: this.showCallbar.bind(this),
27
+ hide: this.hideCallbar.bind(this),
28
+ },
29
+ badge: {
30
+ show: this.showBadge.bind(this),
31
+ hide: this.hideBadge.bind(this),
32
+ },
33
+ };
34
+ }
35
+ async initializeContext() {
36
+ var _a, _b, _c;
37
+ if (this.context) {
38
+ return this;
39
+ }
40
+ const response = await this.sendMessageWithPromise({
41
+ type: constants_1.MESSAGE_TYPES.REQUEST_CONTEXT,
42
+ });
43
+ const { status, data, statusText } = (_a = response === null || response === void 0 ? void 0 : response.error) !== null && _a !== void 0 ? _a : {};
44
+ if (status && status !== 200) {
45
+ const errorMessage = (_b = data === null || data === void 0 ? void 0 : data.Message) !== null && _b !== void 0 ? _b : statusText;
46
+ this.logError('Context initialization failed', {
47
+ status,
48
+ message: errorMessage,
49
+ data,
50
+ });
51
+ throw new Error(errorMessage);
52
+ }
53
+ const { recordId, objectType, userInfo } = (_c = response.data) !== null && _c !== void 0 ? _c : {};
54
+ this.setContext(new context_1.Context({
55
+ record: { id: recordId, type: objectType },
56
+ user: { fullName: userInfo.fullName, id: userInfo.id },
57
+ }));
58
+ return this;
59
+ }
60
+ showBadge(payload) {
61
+ return this.sendMessageWithPromise(Object.assign({ type: constants_1.MESSAGE_TYPES.REQUEST, action: constants_1.REQUEST_ACTIONS.SHOW_BADGE }, payload));
62
+ }
63
+ hideBadge() {
64
+ return this.sendMessageWithPromise({
65
+ type: constants_1.MESSAGE_TYPES.REQUEST,
66
+ action: constants_1.REQUEST_ACTIONS.HIDE_BADGE,
67
+ });
68
+ }
69
+ setContext(context) {
70
+ this._context = context;
71
+ }
72
+ showCallbar(payload) {
73
+ return this.sendMessageWithPromise(Object.assign({ type: constants_1.MESSAGE_TYPES.REQUEST, action: constants_1.REQUEST_ACTIONS.SHOW_CALLBAR }, payload));
74
+ }
75
+ hideCallbar() {
76
+ return this.sendMessageWithPromise({
77
+ type: constants_1.MESSAGE_TYPES.REQUEST,
78
+ action: constants_1.REQUEST_ACTIONS.HIDE_CALLBAR,
79
+ });
80
+ }
81
+ query(objectType, payload) {
82
+ return this.sendMessageWithPromise(Object.assign({ type: constants_1.MESSAGE_TYPES.REQUEST, action: constants_1.REQUEST_ACTIONS.QUERY, objecttype: objectType }, payload));
83
+ }
84
+ create(objectType, payload) {
85
+ return this.sendMessageWithPromise(Object.assign({ type: constants_1.MESSAGE_TYPES.REQUEST, action: constants_1.REQUEST_ACTIONS.CREATE, objectType }, payload));
86
+ }
87
+ delete(objectType, recordId) {
88
+ return this.sendMessageWithPromise({
89
+ type: constants_1.MESSAGE_TYPES.REQUEST,
90
+ action: constants_1.REQUEST_ACTIONS.DELETE,
91
+ objectType,
92
+ recordId,
93
+ });
94
+ }
95
+ update(objectType, recordId, payload) {
96
+ return this.sendMessageWithPromise(Object.assign({ type: constants_1.MESSAGE_TYPES.REQUEST, action: constants_1.REQUEST_ACTIONS.UPDATE, objectType,
97
+ recordId }, payload));
98
+ }
99
+ }
100
+ exports.FireberryClientSDK = FireberryClientSDK;
101
+ exports.default = FireberryClientSDK;
102
+ //# sourceMappingURL=fireberrySDK.client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fireberrySDK.client.js","sourceRoot":"","sources":["../../src/fireberrySDK.client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { MessagePayload, Response, ResponseData } from './types';
2
+ export declare class IframeMessageManager<TData extends Response> {
3
+ private requestIdCounter;
4
+ private pendingRequests;
5
+ constructor();
6
+ private listen;
7
+ private sendMessage;
8
+ protected logError(message: string, context?: Record<string, unknown>): void;
9
+ protected sendMessageWithPromise(payload: MessagePayload): Promise<ResponseData<TData>>;
10
+ private handleMessage;
11
+ destroy(): void;
12
+ }
13
+ //# sourceMappingURL=iframeMessageManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iframeMessageManager.d.ts","sourceRoot":"","sources":["../../src/iframeMessageManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEjE,qBAAa,oBAAoB,CAAC,KAAK,SAAS,QAAQ;IACtD,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,eAAe,CAOT;;IAMd,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,WAAW;IAMnB,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAS5E,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IA2BvF,OAAO,CAAC,aAAa;IAqCd,OAAO,IAAI,IAAI;CAYvB"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IframeMessageManager = void 0;
4
+ const constants_1 = require("./constants");
5
+ class IframeMessageManager {
6
+ constructor() {
7
+ this.requestIdCounter = 0;
8
+ this.pendingRequests = new Map();
9
+ this.listen();
10
+ }
11
+ listen() {
12
+ this.handleMessage = this.handleMessage.bind(this);
13
+ window.addEventListener('message', this.handleMessage);
14
+ return this;
15
+ }
16
+ sendMessage(payload) {
17
+ if (window.parent && window.parent !== window) {
18
+ window.parent.postMessage(payload, '*');
19
+ }
20
+ }
21
+ logError(message, context) {
22
+ this.sendMessage({
23
+ type: constants_1.MESSAGE_TYPES.LOG,
24
+ message: `[Fireberry SDK] ${message}`,
25
+ context,
26
+ timestamp: new Date().toISOString(),
27
+ });
28
+ }
29
+ sendMessageWithPromise(payload) {
30
+ const requestId = `req_${++this.requestIdCounter}_${Date.now()}`;
31
+ return new Promise((resolve, reject) => {
32
+ this.pendingRequests.set(requestId, { resolve, reject });
33
+ const payloadWithId = Object.assign(Object.assign({}, payload), { requestId });
34
+ this.sendMessage(payloadWithId);
35
+ setTimeout(() => {
36
+ if (this.pendingRequests.has(requestId)) {
37
+ this.pendingRequests.delete(requestId);
38
+ const error = new Error('Request timeout: No response received');
39
+ this.logError('Request timeout: No response received', {
40
+ requestId,
41
+ payload: payloadWithId,
42
+ });
43
+ reject(error);
44
+ }
45
+ }, constants_1.TIMEOUT_DURATION);
46
+ });
47
+ }
48
+ handleMessage(event) {
49
+ const { data: payload } = event;
50
+ if (!payload || typeof payload !== 'object' || !payload.type) {
51
+ return;
52
+ }
53
+ const { type, requestId } = payload;
54
+ const handlePendingRequest = (requestId, callback) => {
55
+ if (requestId && this.pendingRequests.has(requestId)) {
56
+ const { resolve } = this.pendingRequests.get(requestId);
57
+ this.pendingRequests.delete(requestId);
58
+ resolve(payload);
59
+ }
60
+ if (callback) {
61
+ callback(payload);
62
+ }
63
+ };
64
+ switch (type) {
65
+ case constants_1.MESSAGE_TYPES.RESPONSE:
66
+ handlePendingRequest(requestId);
67
+ break;
68
+ default:
69
+ this.logError(`Unknown response type: ${type}`, {
70
+ type,
71
+ payload,
72
+ });
73
+ throw new Error(`Unknown response type: ${type}`);
74
+ }
75
+ }
76
+ destroy() {
77
+ window.removeEventListener('message', this.handleMessage);
78
+ this.pendingRequests.forEach(({ reject }, requestId) => {
79
+ this.logError('SDK destroyed with pending request', {
80
+ requestId,
81
+ });
82
+ reject(new Error('SDK destroyed'));
83
+ });
84
+ this.pendingRequests.clear();
85
+ }
86
+ }
87
+ exports.IframeMessageManager = IframeMessageManager;
88
+ //# sourceMappingURL=iframeMessageManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iframeMessageManager.js","sourceRoot":"","sources":["../../src/iframeMessageManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import { MESSAGE_TYPES, REQUEST_ACTIONS } from '../constants';
2
+ import { Context } from '../context';
3
+ export type Response = Partial<BusinessObject> & Partial<Context>;
4
+ export type Data = Partial<BusinessObject> & {
5
+ requestId?: string;
6
+ };
7
+ export type MessageType = (typeof MESSAGE_TYPES)[keyof typeof MESSAGE_TYPES];
8
+ export type RequestAction = (typeof REQUEST_ACTIONS)[keyof typeof REQUEST_ACTIONS];
9
+ export type MessagePayload = Record<string, unknown> & {
10
+ type: MessageType;
11
+ } & Partial<RequestPayload>;
12
+ export type Payload = Record<string, unknown>;
13
+ export type ResponseError = {
14
+ data: Record<string, any> & {
15
+ Message?: string;
16
+ };
17
+ status: number;
18
+ statusText: string;
19
+ };
20
+ export type RecordDetails = Partial<{
21
+ type: number;
22
+ id: string;
23
+ }>;
24
+ export type UserDetails = Partial<{
25
+ fullName: string;
26
+ id: string;
27
+ }>;
28
+ export type ContextDetails = {
29
+ record: RecordDetails;
30
+ user: UserDetails;
31
+ };
32
+ export type RequestPayload = {
33
+ action: RequestAction;
34
+ objectType?: string | number;
35
+ recordId?: string;
36
+ };
37
+ export type BusinessObject = {
38
+ createdBy: string;
39
+ createdByName: string;
40
+ createdOn: Date;
41
+ ownerId: string;
42
+ ownerName: string;
43
+ modifiedBy: string;
44
+ modifiedByName: string;
45
+ modifiedOn: Date;
46
+ };
47
+ export type ResponseData<T extends Response> = {
48
+ type?: MessageType;
49
+ success: boolean;
50
+ data: T & Data;
51
+ error?: ResponseError;
52
+ isParentReady: boolean;
53
+ requestId: string;
54
+ };
55
+ export type QueryPayload = {
56
+ fields: string;
57
+ query: string;
58
+ page_size?: number;
59
+ page_number?: number;
60
+ };
61
+ export type BadgeType = 'success' | 'warning' | 'error' | 'info';
62
+ export type BadgePayload = {
63
+ number: number;
64
+ badgeType: BadgeType;
65
+ };
66
+ export type CallbarPayload = {
67
+ callInfo: {
68
+ number: number;
69
+ status: 'Talking' | 'Ringing' | 'Missed' | 'Dialing';
70
+ };
71
+ objectConfig: {
72
+ objectType: string;
73
+ order?: number;
74
+ fields: {
75
+ name: string;
76
+ }[];
77
+ }[];
78
+ placemment: 'bottom-start' | 'bottom-end';
79
+ };
80
+ export interface API<TData extends Response> {
81
+ query: (objectType: string | number, payload: QueryPayload) => Promise<ResponseData<TData>>;
82
+ create: <T extends Payload>(objectType: string | number, payload: T) => Promise<ResponseData<TData>>;
83
+ delete: (objectType: string | number, recordId: string) => Promise<ResponseData<TData>>;
84
+ update: <T extends Payload>(objectType: string | number, recordId: string, payload: T) => Promise<ResponseData<TData>>;
85
+ }
86
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":""}