@nurama/sdk 0.0.0-stage → 1.4.0

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 (220) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +5 -0
  3. package/README.md +1080 -2
  4. package/dist/BotClient.d.ts +66 -0
  5. package/dist/BotClient.d.ts.map +1 -0
  6. package/dist/BotClient.js +68 -0
  7. package/dist/BotClient.js.map +1 -0
  8. package/dist/NuramaClient.d.ts +448 -0
  9. package/dist/NuramaClient.d.ts.map +1 -0
  10. package/dist/NuramaClient.js +864 -0
  11. package/dist/NuramaClient.js.map +1 -0
  12. package/dist/browser/nurama-bot-sdk.js +11780 -0
  13. package/dist/browser/nurama-bot-sdk.min.js +1 -0
  14. package/dist/browser/nurama-sdk.js +11732 -0
  15. package/dist/browser/nurama-sdk.min.js +1 -0
  16. package/dist/routes/ai.d.ts +280 -0
  17. package/dist/routes/ai.d.ts.map +1 -0
  18. package/dist/routes/ai.js +173 -0
  19. package/dist/routes/ai.js.map +1 -0
  20. package/dist/routes/asset.d.ts +493 -0
  21. package/dist/routes/asset.d.ts.map +1 -0
  22. package/dist/routes/asset.js +848 -0
  23. package/dist/routes/asset.js.map +1 -0
  24. package/dist/routes/auth.d.ts +218 -0
  25. package/dist/routes/auth.d.ts.map +1 -0
  26. package/dist/routes/auth.js +454 -0
  27. package/dist/routes/auth.js.map +1 -0
  28. package/dist/routes/blogPosts.d.ts +17 -0
  29. package/dist/routes/blogPosts.d.ts.map +1 -0
  30. package/dist/routes/blogPosts.js +29 -0
  31. package/dist/routes/blogPosts.js.map +1 -0
  32. package/dist/routes/board.d.ts +187 -0
  33. package/dist/routes/board.d.ts.map +1 -0
  34. package/dist/routes/board.js +270 -0
  35. package/dist/routes/board.js.map +1 -0
  36. package/dist/routes/bot.d.ts +147 -0
  37. package/dist/routes/bot.d.ts.map +1 -0
  38. package/dist/routes/bot.js +157 -0
  39. package/dist/routes/bot.js.map +1 -0
  40. package/dist/routes/chat.d.ts +842 -0
  41. package/dist/routes/chat.d.ts.map +1 -0
  42. package/dist/routes/chat.js +863 -0
  43. package/dist/routes/chat.js.map +1 -0
  44. package/dist/routes/chatAi.d.ts +51 -0
  45. package/dist/routes/chatAi.d.ts.map +1 -0
  46. package/dist/routes/chatAi.js +109 -0
  47. package/dist/routes/chatAi.js.map +1 -0
  48. package/dist/routes/config.d.ts +11 -0
  49. package/dist/routes/config.d.ts.map +1 -0
  50. package/dist/routes/config.js +24 -0
  51. package/dist/routes/config.js.map +1 -0
  52. package/dist/routes/convo.d.ts +169 -0
  53. package/dist/routes/convo.d.ts.map +1 -0
  54. package/dist/routes/convo.js +284 -0
  55. package/dist/routes/convo.js.map +1 -0
  56. package/dist/routes/credits.d.ts +82 -0
  57. package/dist/routes/credits.d.ts.map +1 -0
  58. package/dist/routes/credits.js +49 -0
  59. package/dist/routes/credits.js.map +1 -0
  60. package/dist/routes/device.d.ts +74 -0
  61. package/dist/routes/device.d.ts.map +1 -0
  62. package/dist/routes/device.js +122 -0
  63. package/dist/routes/device.js.map +1 -0
  64. package/dist/routes/folder.d.ts +75 -0
  65. package/dist/routes/folder.d.ts.map +1 -0
  66. package/dist/routes/folder.js +99 -0
  67. package/dist/routes/folder.js.map +1 -0
  68. package/dist/routes/invite.d.ts +61 -0
  69. package/dist/routes/invite.d.ts.map +1 -0
  70. package/dist/routes/invite.js +86 -0
  71. package/dist/routes/invite.js.map +1 -0
  72. package/dist/routes/joinLink.d.ts +38 -0
  73. package/dist/routes/joinLink.d.ts.map +1 -0
  74. package/dist/routes/joinLink.js +81 -0
  75. package/dist/routes/joinLink.js.map +1 -0
  76. package/dist/routes/membership.d.ts +116 -0
  77. package/dist/routes/membership.d.ts.map +1 -0
  78. package/dist/routes/membership.js +183 -0
  79. package/dist/routes/membership.js.map +1 -0
  80. package/dist/routes/notification.d.ts +103 -0
  81. package/dist/routes/notification.d.ts.map +1 -0
  82. package/dist/routes/notification.js +89 -0
  83. package/dist/routes/notification.js.map +1 -0
  84. package/dist/routes/payment.d.ts +56 -0
  85. package/dist/routes/payment.d.ts.map +1 -0
  86. package/dist/routes/payment.js +78 -0
  87. package/dist/routes/payment.js.map +1 -0
  88. package/dist/routes/product.d.ts +43 -0
  89. package/dist/routes/product.d.ts.map +1 -0
  90. package/dist/routes/product.js +53 -0
  91. package/dist/routes/product.js.map +1 -0
  92. package/dist/routes/project.d.ts +821 -0
  93. package/dist/routes/project.d.ts.map +1 -0
  94. package/dist/routes/project.js +1153 -0
  95. package/dist/routes/project.js.map +1 -0
  96. package/dist/routes/public.d.ts +269 -0
  97. package/dist/routes/public.d.ts.map +1 -0
  98. package/dist/routes/public.js +412 -0
  99. package/dist/routes/public.js.map +1 -0
  100. package/dist/routes/scratch.d.ts +70 -0
  101. package/dist/routes/scratch.d.ts.map +1 -0
  102. package/dist/routes/scratch.js +67 -0
  103. package/dist/routes/scratch.js.map +1 -0
  104. package/dist/routes/settings.d.ts +102 -0
  105. package/dist/routes/settings.d.ts.map +1 -0
  106. package/dist/routes/settings.js +94 -0
  107. package/dist/routes/settings.js.map +1 -0
  108. package/dist/routes/shortlink.d.ts +79 -0
  109. package/dist/routes/shortlink.d.ts.map +1 -0
  110. package/dist/routes/shortlink.js +25 -0
  111. package/dist/routes/shortlink.js.map +1 -0
  112. package/dist/routes/socket.d.ts +108 -0
  113. package/dist/routes/socket.d.ts.map +1 -0
  114. package/dist/routes/socket.js +555 -0
  115. package/dist/routes/socket.js.map +1 -0
  116. package/dist/routes/storage.d.ts +44 -0
  117. package/dist/routes/storage.d.ts.map +1 -0
  118. package/dist/routes/storage.js +49 -0
  119. package/dist/routes/storage.js.map +1 -0
  120. package/dist/routes/subscription.d.ts +184 -0
  121. package/dist/routes/subscription.d.ts.map +1 -0
  122. package/dist/routes/subscription.js +219 -0
  123. package/dist/routes/subscription.js.map +1 -0
  124. package/dist/routes/supportChat.d.ts +40 -0
  125. package/dist/routes/supportChat.d.ts.map +1 -0
  126. package/dist/routes/supportChat.js +53 -0
  127. package/dist/routes/supportChat.js.map +1 -0
  128. package/dist/routes/supportTicket.d.ts +89 -0
  129. package/dist/routes/supportTicket.d.ts.map +1 -0
  130. package/dist/routes/supportTicket.js +54 -0
  131. package/dist/routes/supportTicket.js.map +1 -0
  132. package/dist/routes/tag.d.ts +72 -0
  133. package/dist/routes/tag.d.ts.map +1 -0
  134. package/dist/routes/tag.js +81 -0
  135. package/dist/routes/tag.js.map +1 -0
  136. package/dist/routes/task.d.ts +252 -0
  137. package/dist/routes/task.d.ts.map +1 -0
  138. package/dist/routes/task.js +284 -0
  139. package/dist/routes/task.js.map +1 -0
  140. package/dist/routes/taskRelation.d.ts +80 -0
  141. package/dist/routes/taskRelation.d.ts.map +1 -0
  142. package/dist/routes/taskRelation.js +71 -0
  143. package/dist/routes/taskRelation.js.map +1 -0
  144. package/dist/routes/token.d.ts +75 -0
  145. package/dist/routes/token.d.ts.map +1 -0
  146. package/dist/routes/token.js +51 -0
  147. package/dist/routes/token.js.map +1 -0
  148. package/dist/routes/user.d.ts +112 -0
  149. package/dist/routes/user.d.ts.map +1 -0
  150. package/dist/routes/user.js +151 -0
  151. package/dist/routes/user.js.map +1 -0
  152. package/dist/routes/version.d.ts +42 -0
  153. package/dist/routes/version.d.ts.map +1 -0
  154. package/dist/routes/version.js +38 -0
  155. package/dist/routes/version.js.map +1 -0
  156. package/dist/routes/webhook.d.ts +170 -0
  157. package/dist/routes/webhook.d.ts.map +1 -0
  158. package/dist/routes/webhook.js +173 -0
  159. package/dist/routes/webhook.js.map +1 -0
  160. package/dist/routes/workspace.d.ts +120 -0
  161. package/dist/routes/workspace.d.ts.map +1 -0
  162. package/dist/routes/workspace.js +199 -0
  163. package/dist/routes/workspace.js.map +1 -0
  164. package/dist/utils/uploadSessionManager.d.ts +133 -0
  165. package/dist/utils/uploadSessionManager.d.ts.map +1 -0
  166. package/dist/utils/uploadSessionManager.js +321 -0
  167. package/dist/utils/uploadSessionManager.js.map +1 -0
  168. package/dist/utils/urlParams.d.ts +35 -0
  169. package/dist/utils/urlParams.d.ts.map +1 -0
  170. package/dist/utils/urlParams.js +146 -0
  171. package/dist/utils/urlParams.js.map +1 -0
  172. package/dist/version.d.ts +15 -0
  173. package/dist/version.d.ts.map +1 -0
  174. package/dist/version.js +12 -0
  175. package/dist/version.js.map +1 -0
  176. package/package.json +87 -3
  177. package/src/BotClient.ts +113 -0
  178. package/src/NuramaClient.ts +1193 -0
  179. package/src/bot-browser-entry.js +15 -0
  180. package/src/browser-entry.js +20 -0
  181. package/src/routes/ai.ts +378 -0
  182. package/src/routes/asset.ts +1104 -0
  183. package/src/routes/auth.ts +587 -0
  184. package/src/routes/blogPosts.ts +29 -0
  185. package/src/routes/board.ts +403 -0
  186. package/src/routes/bot.ts +257 -0
  187. package/src/routes/chat.ts +1292 -0
  188. package/src/routes/chatAi.ts +125 -0
  189. package/src/routes/config.ts +31 -0
  190. package/src/routes/convo.ts +321 -0
  191. package/src/routes/credits.ts +112 -0
  192. package/src/routes/device.ts +133 -0
  193. package/src/routes/folder.ts +154 -0
  194. package/src/routes/invite.ts +133 -0
  195. package/src/routes/joinLink.ts +100 -0
  196. package/src/routes/membership.ts +237 -0
  197. package/src/routes/notification.ts +166 -0
  198. package/src/routes/payment.ts +104 -0
  199. package/src/routes/product.ts +67 -0
  200. package/src/routes/project.ts +1528 -0
  201. package/src/routes/public.ts +496 -0
  202. package/src/routes/scratch.ts +94 -0
  203. package/src/routes/settings.ts +152 -0
  204. package/src/routes/shortlink.ts +90 -0
  205. package/src/routes/socket.ts +739 -0
  206. package/src/routes/storage.ts +83 -0
  207. package/src/routes/subscription.ts +307 -0
  208. package/src/routes/supportChat.ts +62 -0
  209. package/src/routes/supportTicket.ts +114 -0
  210. package/src/routes/tag.ts +131 -0
  211. package/src/routes/task.ts +431 -0
  212. package/src/routes/taskRelation.ts +125 -0
  213. package/src/routes/token.ts +113 -0
  214. package/src/routes/user.ts +214 -0
  215. package/src/routes/version.ts +62 -0
  216. package/src/routes/webhook.ts +295 -0
  217. package/src/routes/workspace.ts +223 -0
  218. package/src/utils/uploadSessionManager.ts +407 -0
  219. package/src/utils/urlParams.ts +181 -0
  220. package/src/version.ts +22 -0
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Bot user administration methods. Used by workspace owners/admins (callers
3
+ * holding a JWT) to manage bot users in a workspace. Bots themselves cannot
4
+ * call these endpoints — bot administration is restricted server-side.
5
+ */
6
+ export default function createBotMethods(client) {
7
+ return {
8
+ /**
9
+ * Create a bot user in a workspace.
10
+ * Returns the new bot and the raw API key (shown only once).
11
+ */
12
+ async createBot(workspaceId, data) {
13
+ if (!workspaceId)
14
+ throw new Error('workspaceId is required.');
15
+ return client._request({
16
+ method: 'POST',
17
+ endpoint: `/v1/workspaces/${workspaceId}/bots`,
18
+ body: data,
19
+ sendJWT: true,
20
+ });
21
+ },
22
+ /** List bot users in a workspace. */
23
+ async listBots(workspaceId) {
24
+ if (!workspaceId)
25
+ throw new Error('workspaceId is required.');
26
+ return client._request({
27
+ method: 'GET',
28
+ endpoint: `/v1/workspaces/${workspaceId}/bots`,
29
+ sendJWT: true,
30
+ bypassCache: true,
31
+ });
32
+ },
33
+ /** Get a single bot's details, including all of its API key metadata (no secrets). */
34
+ async getBot(workspaceId, botId) {
35
+ if (!workspaceId)
36
+ throw new Error('workspaceId is required.');
37
+ if (!botId)
38
+ throw new Error('botId is required.');
39
+ return client._request({
40
+ method: 'GET',
41
+ endpoint: `/v1/workspaces/${workspaceId}/bots/${botId}`,
42
+ sendJWT: true,
43
+ bypassCache: true,
44
+ });
45
+ },
46
+ /** Update a bot's display name and/or color. */
47
+ async updateBot(workspaceId, botId, data) {
48
+ if (!workspaceId)
49
+ throw new Error('workspaceId is required.');
50
+ if (!botId)
51
+ throw new Error('botId is required.');
52
+ return client._request({
53
+ method: 'PUT',
54
+ endpoint: `/v1/workspaces/${workspaceId}/bots/${botId}`,
55
+ body: data,
56
+ sendJWT: true,
57
+ });
58
+ },
59
+ /**
60
+ * Delete a bot user. Revokes all API keys, removes the workspace
61
+ * membership, and marks the user inactive.
62
+ */
63
+ async deleteBot(workspaceId, botId) {
64
+ if (!workspaceId)
65
+ throw new Error('workspaceId is required.');
66
+ if (!botId)
67
+ throw new Error('botId is required.');
68
+ return client._request({
69
+ method: 'DELETE',
70
+ endpoint: `/v1/workspaces/${workspaceId}/bots/${botId}`,
71
+ sendJWT: true,
72
+ });
73
+ },
74
+ /**
75
+ * Revoke the bot's current API key and issue a new one.
76
+ * The new raw key is returned once.
77
+ */
78
+ async rotateBotKey(workspaceId, botId) {
79
+ if (!workspaceId)
80
+ throw new Error('workspaceId is required.');
81
+ if (!botId)
82
+ throw new Error('botId is required.');
83
+ return client._request({
84
+ method: 'POST',
85
+ endpoint: `/v1/workspaces/${workspaceId}/bots/${botId}/rotate-key`,
86
+ sendJWT: true,
87
+ });
88
+ },
89
+ /**
90
+ * Request signed URL data to upload a new avatar for the bot.
91
+ * Caller multipart-uploads the file to S3 using the returned `signedUrlData`,
92
+ * then calls `client.asset.completeUpload(...)` to finalize.
93
+ */
94
+ async updateBotAvatar(workspaceId, botId, fileData) {
95
+ if (!workspaceId)
96
+ throw new Error('workspaceId is required.');
97
+ if (!botId)
98
+ throw new Error('botId is required.');
99
+ return client._request({
100
+ method: 'POST',
101
+ endpoint: `/v1/workspaces/${workspaceId}/bots/${botId}/avatar`,
102
+ body: fileData,
103
+ sendJWT: true,
104
+ });
105
+ },
106
+ /**
107
+ * List the bot's project memberships within the workspace.
108
+ */
109
+ async listProjectMemberships(workspaceId, botId) {
110
+ if (!workspaceId)
111
+ throw new Error('workspaceId is required.');
112
+ if (!botId)
113
+ throw new Error('botId is required.');
114
+ return client._request({
115
+ method: 'GET',
116
+ endpoint: `/v1/workspaces/${workspaceId}/bots/${botId}/memberships`,
117
+ sendJWT: true,
118
+ bypassCache: true,
119
+ });
120
+ },
121
+ /**
122
+ * Upsert the bot's membership on a project. Replaces roles if a membership
123
+ * already exists; creates one otherwise. Idempotent.
124
+ */
125
+ async setProjectMembership(workspaceId, botId, projectId, data) {
126
+ if (!workspaceId)
127
+ throw new Error('workspaceId is required.');
128
+ if (!botId)
129
+ throw new Error('botId is required.');
130
+ if (!projectId)
131
+ throw new Error('projectId is required.');
132
+ return client._request({
133
+ method: 'PUT',
134
+ endpoint: `/v1/workspaces/${workspaceId}/bots/${botId}/memberships/project/${projectId}`,
135
+ body: data,
136
+ sendJWT: true,
137
+ });
138
+ },
139
+ /**
140
+ * Remove the bot's membership on a project. Idempotent.
141
+ */
142
+ async removeProjectMembership(workspaceId, botId, projectId) {
143
+ if (!workspaceId)
144
+ throw new Error('workspaceId is required.');
145
+ if (!botId)
146
+ throw new Error('botId is required.');
147
+ if (!projectId)
148
+ throw new Error('projectId is required.');
149
+ return client._request({
150
+ method: 'DELETE',
151
+ endpoint: `/v1/workspaces/${workspaceId}/bots/${botId}/memberships/project/${projectId}`,
152
+ sendJWT: true,
153
+ });
154
+ },
155
+ };
156
+ }
157
+ //# sourceMappingURL=bot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../src/routes/bot.ts"],"names":[],"mappings":"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"}