@timbenniks/contentstack-platform-sdk 0.1.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 (244) hide show
  1. package/dist/auth/index.cjs +607 -0
  2. package/dist/auth/index.cjs.map +1 -0
  3. package/dist/auth/index.d.cts +108 -0
  4. package/dist/auth/index.d.ts +108 -0
  5. package/dist/auth/index.mjs +25 -0
  6. package/dist/auth/index.mjs.map +1 -0
  7. package/dist/brandkit/index.cjs +525 -0
  8. package/dist/brandkit/index.cjs.map +1 -0
  9. package/dist/brandkit/index.d.cts +95 -0
  10. package/dist/brandkit/index.d.ts +95 -0
  11. package/dist/brandkit/index.mjs +11 -0
  12. package/dist/brandkit/index.mjs.map +1 -0
  13. package/dist/chunk-3C6J2BDB.mjs +84 -0
  14. package/dist/chunk-3C6J2BDB.mjs.map +1 -0
  15. package/dist/chunk-3KE63N3I.mjs +64 -0
  16. package/dist/chunk-3KE63N3I.mjs.map +1 -0
  17. package/dist/chunk-4CJ4IVPJ.mjs +212 -0
  18. package/dist/chunk-4CJ4IVPJ.mjs.map +1 -0
  19. package/dist/chunk-4JFUI7MJ.mjs +368 -0
  20. package/dist/chunk-4JFUI7MJ.mjs.map +1 -0
  21. package/dist/chunk-7VFGD32I.mjs +26 -0
  22. package/dist/chunk-7VFGD32I.mjs.map +1 -0
  23. package/dist/chunk-ARPJDW3A.mjs +44 -0
  24. package/dist/chunk-ARPJDW3A.mjs.map +1 -0
  25. package/dist/chunk-AVJHCFRK.mjs +52 -0
  26. package/dist/chunk-AVJHCFRK.mjs.map +1 -0
  27. package/dist/chunk-BK2IBTQS.mjs +131 -0
  28. package/dist/chunk-BK2IBTQS.mjs.map +1 -0
  29. package/dist/chunk-BUZ6CQHE.mjs +75 -0
  30. package/dist/chunk-BUZ6CQHE.mjs.map +1 -0
  31. package/dist/chunk-CKMAOWBQ.mjs +379 -0
  32. package/dist/chunk-CKMAOWBQ.mjs.map +1 -0
  33. package/dist/chunk-DJQLN4TR.mjs +1 -0
  34. package/dist/chunk-DJQLN4TR.mjs.map +1 -0
  35. package/dist/chunk-DMERADWM.mjs +67 -0
  36. package/dist/chunk-DMERADWM.mjs.map +1 -0
  37. package/dist/chunk-EREPKWTW.mjs +926 -0
  38. package/dist/chunk-EREPKWTW.mjs.map +1 -0
  39. package/dist/chunk-FQP4PB5X.mjs +88 -0
  40. package/dist/chunk-FQP4PB5X.mjs.map +1 -0
  41. package/dist/chunk-GNPQJBFX.mjs +144 -0
  42. package/dist/chunk-GNPQJBFX.mjs.map +1 -0
  43. package/dist/chunk-GOSB24M6.mjs +87 -0
  44. package/dist/chunk-GOSB24M6.mjs.map +1 -0
  45. package/dist/chunk-JL2E3EOT.mjs +255 -0
  46. package/dist/chunk-JL2E3EOT.mjs.map +1 -0
  47. package/dist/chunk-JYGZBKTH.mjs +222 -0
  48. package/dist/chunk-JYGZBKTH.mjs.map +1 -0
  49. package/dist/chunk-JZE2W7VW.mjs +52 -0
  50. package/dist/chunk-JZE2W7VW.mjs.map +1 -0
  51. package/dist/chunk-K76DKSHJ.mjs +18 -0
  52. package/dist/chunk-K76DKSHJ.mjs.map +1 -0
  53. package/dist/chunk-KLVIROVU.mjs +232 -0
  54. package/dist/chunk-KLVIROVU.mjs.map +1 -0
  55. package/dist/chunk-LPVVA5J3.mjs +18 -0
  56. package/dist/chunk-LPVVA5J3.mjs.map +1 -0
  57. package/dist/chunk-NKLOZ5VI.mjs +112 -0
  58. package/dist/chunk-NKLOZ5VI.mjs.map +1 -0
  59. package/dist/chunk-QGA4WBDC.mjs +7 -0
  60. package/dist/chunk-QGA4WBDC.mjs.map +1 -0
  61. package/dist/chunk-QW7TVYOA.mjs +56 -0
  62. package/dist/chunk-QW7TVYOA.mjs.map +1 -0
  63. package/dist/chunk-SU5QEKYW.mjs +83 -0
  64. package/dist/chunk-SU5QEKYW.mjs.map +1 -0
  65. package/dist/chunk-T5A2E2RI.mjs +654 -0
  66. package/dist/chunk-T5A2E2RI.mjs.map +1 -0
  67. package/dist/chunk-T5OIJQK7.mjs +116 -0
  68. package/dist/chunk-T5OIJQK7.mjs.map +1 -0
  69. package/dist/chunk-VW7DD6HV.mjs +253 -0
  70. package/dist/chunk-VW7DD6HV.mjs.map +1 -0
  71. package/dist/chunk-XH7NLHGW.mjs +133 -0
  72. package/dist/chunk-XH7NLHGW.mjs.map +1 -0
  73. package/dist/client-DJ5haQGd.d.cts +22 -0
  74. package/dist/client-DwVGVSQz.d.ts +22 -0
  75. package/dist/cma/index.cjs +1349 -0
  76. package/dist/cma/index.cjs.map +1 -0
  77. package/dist/cma/index.d.cts +22 -0
  78. package/dist/cma/index.d.ts +22 -0
  79. package/dist/cma/index.mjs +70 -0
  80. package/dist/cma/index.mjs.map +1 -0
  81. package/dist/errors-CAw-IRCP.d.cts +65 -0
  82. package/dist/errors-CAw-IRCP.d.ts +65 -0
  83. package/dist/generative-ai/index.cjs +401 -0
  84. package/dist/generative-ai/index.cjs.map +1 -0
  85. package/dist/generative-ai/index.d.cts +31 -0
  86. package/dist/generative-ai/index.d.ts +31 -0
  87. package/dist/generative-ai/index.mjs +10 -0
  88. package/dist/generative-ai/index.mjs.map +1 -0
  89. package/dist/images/index.cjs +185 -0
  90. package/dist/images/index.cjs.map +1 -0
  91. package/dist/images/index.d.cts +27 -0
  92. package/dist/images/index.d.ts +27 -0
  93. package/dist/images/index.mjs +8 -0
  94. package/dist/images/index.mjs.map +1 -0
  95. package/dist/index.cjs +2909 -0
  96. package/dist/index.cjs.map +1 -0
  97. package/dist/index.d.cts +30 -0
  98. package/dist/index.d.ts +30 -0
  99. package/dist/index.mjs +153 -0
  100. package/dist/index.mjs.map +1 -0
  101. package/dist/knowledge-vault/index.cjs +413 -0
  102. package/dist/knowledge-vault/index.cjs.map +1 -0
  103. package/dist/knowledge-vault/index.d.cts +49 -0
  104. package/dist/knowledge-vault/index.d.ts +49 -0
  105. package/dist/knowledge-vault/index.mjs +10 -0
  106. package/dist/knowledge-vault/index.mjs.map +1 -0
  107. package/dist/launch/index.cjs +624 -0
  108. package/dist/launch/index.cjs.map +1 -0
  109. package/dist/launch/index.d.cts +169 -0
  110. package/dist/launch/index.d.ts +169 -0
  111. package/dist/launch/index.mjs +11 -0
  112. package/dist/launch/index.mjs.map +1 -0
  113. package/dist/react/auth/index.cjs +113 -0
  114. package/dist/react/auth/index.cjs.map +1 -0
  115. package/dist/react/auth/index.d.cts +33 -0
  116. package/dist/react/auth/index.d.ts +33 -0
  117. package/dist/react/auth/index.mjs +13 -0
  118. package/dist/react/auth/index.mjs.map +1 -0
  119. package/dist/react/content/index.cjs +113 -0
  120. package/dist/react/content/index.cjs.map +1 -0
  121. package/dist/react/content/index.d.cts +25 -0
  122. package/dist/react/content/index.d.ts +25 -0
  123. package/dist/react/content/index.mjs +7 -0
  124. package/dist/react/content/index.mjs.map +1 -0
  125. package/dist/react/hooks/index.cjs +2097 -0
  126. package/dist/react/hooks/index.cjs.map +1 -0
  127. package/dist/react/hooks/index.d.cts +77 -0
  128. package/dist/react/hooks/index.d.ts +77 -0
  129. package/dist/react/hooks/index.mjs +46 -0
  130. package/dist/react/hooks/index.mjs.map +1 -0
  131. package/dist/react/index.cjs +2307 -0
  132. package/dist/react/index.cjs.map +1 -0
  133. package/dist/react/index.d.cts +16 -0
  134. package/dist/react/index.d.ts +16 -0
  135. package/dist/react/index.mjs +67 -0
  136. package/dist/react/index.mjs.map +1 -0
  137. package/dist/react/provider/index.cjs +83 -0
  138. package/dist/react/provider/index.cjs.map +1 -0
  139. package/dist/react/provider/index.d.cts +30 -0
  140. package/dist/react/provider/index.d.ts +30 -0
  141. package/dist/react/provider/index.mjs +11 -0
  142. package/dist/react/provider/index.mjs.map +1 -0
  143. package/dist/regions/index.cjs +171 -0
  144. package/dist/regions/index.cjs.map +1 -0
  145. package/dist/regions/index.d.cts +55 -0
  146. package/dist/regions/index.d.ts +55 -0
  147. package/dist/regions/index.mjs +13 -0
  148. package/dist/regions/index.mjs.map +1 -0
  149. package/dist/request-builders-BxeolQIw.d.ts +735 -0
  150. package/dist/request-builders-C2IG1LUo.d.cts +735 -0
  151. package/dist/rte/index.cjs +683 -0
  152. package/dist/rte/index.cjs.map +1 -0
  153. package/dist/rte/index.d.cts +33 -0
  154. package/dist/rte/index.d.ts +33 -0
  155. package/dist/rte/index.mjs +17 -0
  156. package/dist/rte/index.mjs.map +1 -0
  157. package/dist/server/index.cjs +917 -0
  158. package/dist/server/index.cjs.map +1 -0
  159. package/dist/server/index.d.cts +6 -0
  160. package/dist/server/index.d.ts +6 -0
  161. package/dist/server/index.mjs +45 -0
  162. package/dist/server/index.mjs.map +1 -0
  163. package/dist/server/middleware/index.cjs +614 -0
  164. package/dist/server/middleware/index.cjs.map +1 -0
  165. package/dist/server/middleware/index.d.cts +77 -0
  166. package/dist/server/middleware/index.d.ts +77 -0
  167. package/dist/server/middleware/index.mjs +27 -0
  168. package/dist/server/middleware/index.mjs.map +1 -0
  169. package/dist/server/proxy/index.cjs +329 -0
  170. package/dist/server/proxy/index.cjs.map +1 -0
  171. package/dist/server/proxy/index.d.cts +143 -0
  172. package/dist/server/proxy/index.d.ts +143 -0
  173. package/dist/server/proxy/index.mjs +29 -0
  174. package/dist/server/proxy/index.mjs.map +1 -0
  175. package/dist/server/webhooks/index.cjs +131 -0
  176. package/dist/server/webhooks/index.cjs.map +1 -0
  177. package/dist/server/webhooks/index.d.cts +230 -0
  178. package/dist/server/webhooks/index.d.ts +230 -0
  179. package/dist/server/webhooks/index.mjs +23 -0
  180. package/dist/server/webhooks/index.mjs.map +1 -0
  181. package/dist/types-6D9VR7pT.d.cts +26 -0
  182. package/dist/types-AelT0rFJ.d.cts +21 -0
  183. package/dist/types-AelT0rFJ.d.ts +21 -0
  184. package/dist/types-Bu5yCgmw.d.ts +26 -0
  185. package/dist/types-DgixK-ll.d.cts +23 -0
  186. package/dist/types-DgixK-ll.d.ts +23 -0
  187. package/dist/types-DrMwdlH9.d.cts +245 -0
  188. package/dist/types-DrMwdlH9.d.ts +245 -0
  189. package/dist/ui/css/index.cjs +31 -0
  190. package/dist/ui/css/index.cjs.map +1 -0
  191. package/dist/ui/css/index.d.cts +15 -0
  192. package/dist/ui/css/index.d.ts +15 -0
  193. package/dist/ui/css/index.mjs +7 -0
  194. package/dist/ui/css/index.mjs.map +1 -0
  195. package/dist/ui/index.cjs +368 -0
  196. package/dist/ui/index.cjs.map +1 -0
  197. package/dist/ui/index.d.cts +4 -0
  198. package/dist/ui/index.d.ts +4 -0
  199. package/dist/ui/index.mjs +33 -0
  200. package/dist/ui/index.mjs.map +1 -0
  201. package/dist/ui/theme/index.cjs +105 -0
  202. package/dist/ui/theme/index.cjs.map +1 -0
  203. package/dist/ui/theme/index.d.cts +33 -0
  204. package/dist/ui/theme/index.d.ts +33 -0
  205. package/dist/ui/theme/index.mjs +15 -0
  206. package/dist/ui/theme/index.mjs.map +1 -0
  207. package/dist/ui/tokens/index.cjs +286 -0
  208. package/dist/ui/tokens/index.cjs.map +1 -0
  209. package/dist/ui/tokens/index.d.cts +54 -0
  210. package/dist/ui/tokens/index.d.ts +54 -0
  211. package/dist/ui/tokens/index.mjs +17 -0
  212. package/dist/ui/tokens/index.mjs.map +1 -0
  213. package/dist/ui/tokens.css +408 -0
  214. package/dist/vue/auth/index.cjs +141 -0
  215. package/dist/vue/auth/index.cjs.map +1 -0
  216. package/dist/vue/auth/index.d.cts +78 -0
  217. package/dist/vue/auth/index.d.ts +78 -0
  218. package/dist/vue/auth/index.mjs +13 -0
  219. package/dist/vue/auth/index.mjs.map +1 -0
  220. package/dist/vue/composables/index.cjs +2108 -0
  221. package/dist/vue/composables/index.cjs.map +1 -0
  222. package/dist/vue/composables/index.d.cts +78 -0
  223. package/dist/vue/composables/index.d.ts +78 -0
  224. package/dist/vue/composables/index.mjs +46 -0
  225. package/dist/vue/composables/index.mjs.map +1 -0
  226. package/dist/vue/content/index.cjs +142 -0
  227. package/dist/vue/content/index.cjs.map +1 -0
  228. package/dist/vue/content/index.d.cts +47 -0
  229. package/dist/vue/content/index.d.ts +47 -0
  230. package/dist/vue/content/index.mjs +7 -0
  231. package/dist/vue/content/index.mjs.map +1 -0
  232. package/dist/vue/index.cjs +2389 -0
  233. package/dist/vue/index.cjs.map +1 -0
  234. package/dist/vue/index.d.cts +16 -0
  235. package/dist/vue/index.d.ts +16 -0
  236. package/dist/vue/index.mjs +69 -0
  237. package/dist/vue/index.mjs.map +1 -0
  238. package/dist/vue/provider/index.cjs +97 -0
  239. package/dist/vue/provider/index.cjs.map +1 -0
  240. package/dist/vue/provider/index.d.cts +90 -0
  241. package/dist/vue/provider/index.d.ts +90 -0
  242. package/dist/vue/provider/index.mjs +13 -0
  243. package/dist/vue/provider/index.mjs.map +1 -0
  244. package/package.json +195 -0
@@ -0,0 +1,368 @@
1
+ import {
2
+ useContentstackContext
3
+ } from "./chunk-K76DKSHJ.mjs";
4
+ import {
5
+ parseErrorResponse
6
+ } from "./chunk-7VFGD32I.mjs";
7
+ import {
8
+ createBrandKitClient
9
+ } from "./chunk-XH7NLHGW.mjs";
10
+ import {
11
+ createGenerativeAIClient
12
+ } from "./chunk-AVJHCFRK.mjs";
13
+ import {
14
+ buildAssetsParams,
15
+ buildCreateEntryRequest,
16
+ buildDeleteEntryRequest,
17
+ buildEntriesParams,
18
+ buildEntryParams,
19
+ buildPublishEntryRequest,
20
+ buildUpdateEntryRequest,
21
+ createCMAClient
22
+ } from "./chunk-EREPKWTW.mjs";
23
+ import {
24
+ createLaunchClient
25
+ } from "./chunk-KLVIROVU.mjs";
26
+ import {
27
+ createKnowledgeVaultClient
28
+ } from "./chunk-3KE63N3I.mjs";
29
+ import {
30
+ ContentstackError
31
+ } from "./chunk-DMERADWM.mjs";
32
+
33
+ // src/react/hooks/shared/useQuery.ts
34
+ import { useCallback, useEffect, useRef, useState } from "react";
35
+ function useQuery(path, params, options) {
36
+ const { proxyBasePath } = useContentstackContext();
37
+ const [data, setData] = useState(void 0);
38
+ const [loading, setLoading] = useState(false);
39
+ const [error, setError] = useState(null);
40
+ const abortRef = useRef(null);
41
+ const enabled = options?.enabled ?? true;
42
+ const refetchInterval = options?.refetchInterval ?? 0;
43
+ const search = params ? `?${new URLSearchParams(params).toString()}` : "";
44
+ const url = `${proxyBasePath}${path}${search}`;
45
+ const fetchData = useCallback(
46
+ async (signal) => {
47
+ setLoading(true);
48
+ setError(null);
49
+ try {
50
+ const response = await fetch(url, { signal });
51
+ if (signal?.aborted) return;
52
+ if (!response.ok) {
53
+ const err = await parseErrorResponse(response, path);
54
+ setError(err);
55
+ setData(void 0);
56
+ return;
57
+ }
58
+ const json = await response.json();
59
+ setData(json);
60
+ } catch (err) {
61
+ if (err instanceof DOMException && err.name === "AbortError") return;
62
+ setError(
63
+ new ContentstackError(err instanceof Error ? err.message : "Network error", {
64
+ requestPath: path,
65
+ cause: err instanceof Error ? err : void 0
66
+ })
67
+ );
68
+ setData(void 0);
69
+ } finally {
70
+ if (!signal?.aborted) {
71
+ setLoading(false);
72
+ }
73
+ }
74
+ },
75
+ [url, path]
76
+ );
77
+ useEffect(() => {
78
+ if (!enabled) return;
79
+ abortRef.current?.abort();
80
+ const controller = new AbortController();
81
+ abortRef.current = controller;
82
+ fetchData(controller.signal);
83
+ return () => {
84
+ controller.abort();
85
+ };
86
+ }, [enabled, fetchData]);
87
+ useEffect(() => {
88
+ if (!enabled || refetchInterval <= 0) return;
89
+ const id = setInterval(() => {
90
+ abortRef.current?.abort();
91
+ const controller = new AbortController();
92
+ abortRef.current = controller;
93
+ fetchData(controller.signal);
94
+ }, refetchInterval);
95
+ return () => {
96
+ clearInterval(id);
97
+ };
98
+ }, [enabled, refetchInterval, fetchData]);
99
+ const refetch = useCallback(async () => {
100
+ abortRef.current?.abort();
101
+ const controller = new AbortController();
102
+ abortRef.current = controller;
103
+ await fetchData(controller.signal);
104
+ }, [fetchData]);
105
+ return { data, loading, error, refetch };
106
+ }
107
+
108
+ // src/react/hooks/useEntries.ts
109
+ function useEntries(contentTypeUid, options) {
110
+ const result = useQuery(
111
+ `/content_types/${contentTypeUid}/entries`,
112
+ buildEntriesParams(options),
113
+ options
114
+ );
115
+ return {
116
+ ...result,
117
+ data: result.data?.entries,
118
+ count: result.data?.count
119
+ };
120
+ }
121
+
122
+ // src/react/hooks/useEntry.ts
123
+ function useEntry(contentTypeUid, entryUid, options) {
124
+ const result = useQuery(
125
+ `/content_types/${contentTypeUid}/entries/${entryUid}`,
126
+ buildEntryParams(options),
127
+ options
128
+ );
129
+ return {
130
+ ...result,
131
+ data: result.data?.entry
132
+ };
133
+ }
134
+
135
+ // src/react/hooks/useAssets.ts
136
+ function useAssets(options) {
137
+ const result = useQuery("/assets", buildAssetsParams(options), options);
138
+ return {
139
+ ...result,
140
+ data: result.data?.assets
141
+ };
142
+ }
143
+
144
+ // src/react/hooks/useContentTypes.ts
145
+ function useContentTypes(options) {
146
+ const result = useQuery("/content_types", void 0, options);
147
+ return {
148
+ ...result,
149
+ data: result.data?.content_types
150
+ };
151
+ }
152
+
153
+ // src/react/hooks/useCMA.ts
154
+ import { useMemo } from "react";
155
+ function useCMA() {
156
+ const { proxyBasePath, region, apiKey } = useContentstackContext();
157
+ return useMemo(
158
+ () => createCMAClient({
159
+ region,
160
+ apiKey: apiKey ?? "proxy",
161
+ auth: { type: "oauth", accessToken: "proxy" },
162
+ httpOptions: { baseUrl: proxyBasePath }
163
+ }),
164
+ [proxyBasePath, region, apiKey]
165
+ );
166
+ }
167
+
168
+ // src/react/hooks/useLaunch.ts
169
+ import { useMemo as useMemo2 } from "react";
170
+ function useLaunch() {
171
+ const { launchProxyBasePath = "/api/launch", region, organizationUid } = useContentstackContext();
172
+ return useMemo2(
173
+ () => createLaunchClient({
174
+ region,
175
+ organizationUid: organizationUid ?? "proxy",
176
+ auth: { type: "oauth", accessToken: "proxy" },
177
+ httpOptions: { baseUrl: launchProxyBasePath }
178
+ }),
179
+ [launchProxyBasePath, region, organizationUid]
180
+ );
181
+ }
182
+
183
+ // src/react/hooks/useBrandKit.ts
184
+ import { useMemo as useMemo3 } from "react";
185
+ function useBrandKit() {
186
+ const {
187
+ brandKitProxyBasePath = "/api/brandkit",
188
+ region,
189
+ organizationUid
190
+ } = useContentstackContext();
191
+ return useMemo3(
192
+ () => createBrandKitClient({
193
+ region,
194
+ organizationUid: organizationUid ?? "proxy",
195
+ auth: { type: "oauth", accessToken: "proxy" },
196
+ httpOptions: { baseUrl: brandKitProxyBasePath }
197
+ }),
198
+ [brandKitProxyBasePath, region, organizationUid]
199
+ );
200
+ }
201
+
202
+ // src/react/hooks/useKnowledgeVault.ts
203
+ import { useMemo as useMemo4 } from "react";
204
+ function useKnowledgeVault() {
205
+ const {
206
+ brandKitProxyBasePath = "/api/brandkit",
207
+ region,
208
+ organizationUid,
209
+ brandKitUid
210
+ } = useContentstackContext();
211
+ return useMemo4(
212
+ () => createKnowledgeVaultClient({
213
+ region,
214
+ organizationUid: organizationUid ?? "proxy",
215
+ brandKitUid: brandKitUid ?? "proxy",
216
+ auth: { type: "oauth", accessToken: "proxy" },
217
+ httpOptions: { baseUrl: brandKitProxyBasePath }
218
+ }),
219
+ [brandKitProxyBasePath, region, organizationUid, brandKitUid]
220
+ );
221
+ }
222
+
223
+ // src/react/hooks/useGenerativeAI.ts
224
+ import { useMemo as useMemo5 } from "react";
225
+ function useGenerativeAI() {
226
+ const {
227
+ brandKitProxyBasePath = "/api/brandkit",
228
+ region,
229
+ organizationUid,
230
+ brandKitUid
231
+ } = useContentstackContext();
232
+ return useMemo5(
233
+ () => createGenerativeAIClient({
234
+ region,
235
+ organizationUid: organizationUid ?? "proxy",
236
+ brandKitUid: brandKitUid ?? "proxy",
237
+ auth: { type: "oauth", accessToken: "proxy" },
238
+ httpOptions: { baseUrl: brandKitProxyBasePath }
239
+ }),
240
+ [brandKitProxyBasePath, region, organizationUid, brandKitUid]
241
+ );
242
+ }
243
+
244
+ // src/react/hooks/shared/useMutation.ts
245
+ import { useCallback as useCallback2, useRef as useRef2, useState as useState2 } from "react";
246
+ function useMutation(method, buildRequest) {
247
+ const { proxyBasePath } = useContentstackContext();
248
+ const [data, setData] = useState2(void 0);
249
+ const [loading, setLoading] = useState2(false);
250
+ const [error, setError] = useState2(null);
251
+ const buildRequestRef = useRef2(buildRequest);
252
+ buildRequestRef.current = buildRequest;
253
+ const mutate = useCallback2(
254
+ async (variables) => {
255
+ const { path, body } = buildRequestRef.current(variables);
256
+ const url = `${proxyBasePath}${path}`;
257
+ setLoading(true);
258
+ setError(null);
259
+ try {
260
+ const response = await fetch(url, {
261
+ method,
262
+ headers: body !== void 0 ? { "Content-Type": "application/json" } : void 0,
263
+ body: body !== void 0 ? JSON.stringify(body) : void 0
264
+ });
265
+ if (!response.ok) {
266
+ const err = await parseErrorResponse(response, path);
267
+ setError(err);
268
+ setData(void 0);
269
+ throw err;
270
+ }
271
+ let json;
272
+ try {
273
+ json = await response.json();
274
+ } catch {
275
+ json = void 0;
276
+ }
277
+ setData(json);
278
+ return json;
279
+ } catch (err) {
280
+ if (err instanceof ContentstackError) throw err;
281
+ const csError = new ContentstackError(
282
+ err instanceof Error ? err.message : "Network error",
283
+ {
284
+ requestPath: path,
285
+ cause: err instanceof Error ? err : void 0
286
+ }
287
+ );
288
+ setError(csError);
289
+ setData(void 0);
290
+ throw csError;
291
+ } finally {
292
+ setLoading(false);
293
+ }
294
+ },
295
+ [proxyBasePath, method]
296
+ );
297
+ const reset = useCallback2(() => {
298
+ setData(void 0);
299
+ setError(null);
300
+ }, []);
301
+ return { mutate, loading, error, data, reset };
302
+ }
303
+
304
+ // src/react/hooks/usePublishEntry.ts
305
+ function usePublishEntry() {
306
+ return useMutation("POST", buildPublishEntryRequest);
307
+ }
308
+
309
+ // src/react/hooks/useCreateEntry.ts
310
+ import { useCallback as useCallback3 } from "react";
311
+ function useCreateEntry() {
312
+ const result = useMutation(
313
+ "POST",
314
+ buildCreateEntryRequest
315
+ );
316
+ const mutate = useCallback3(
317
+ async (variables) => {
318
+ const raw = await result.mutate(variables);
319
+ return raw.entry;
320
+ },
321
+ [result.mutate]
322
+ );
323
+ return {
324
+ ...result,
325
+ data: result.data?.entry,
326
+ mutate
327
+ };
328
+ }
329
+
330
+ // src/react/hooks/useUpdateEntry.ts
331
+ import { useCallback as useCallback4 } from "react";
332
+ function useUpdateEntry() {
333
+ const result = useMutation("PUT", buildUpdateEntryRequest);
334
+ const mutate = useCallback4(
335
+ async (variables) => {
336
+ const raw = await result.mutate(variables);
337
+ return raw.entry;
338
+ },
339
+ [result.mutate]
340
+ );
341
+ return {
342
+ ...result,
343
+ data: result.data?.entry,
344
+ mutate
345
+ };
346
+ }
347
+
348
+ // src/react/hooks/useDeleteEntry.ts
349
+ function useDeleteEntry() {
350
+ return useMutation("DELETE", buildDeleteEntryRequest);
351
+ }
352
+
353
+ export {
354
+ useEntries,
355
+ useEntry,
356
+ useAssets,
357
+ useContentTypes,
358
+ useCMA,
359
+ useLaunch,
360
+ useBrandKit,
361
+ useKnowledgeVault,
362
+ useGenerativeAI,
363
+ usePublishEntry,
364
+ useCreateEntry,
365
+ useUpdateEntry,
366
+ useDeleteEntry
367
+ };
368
+ //# sourceMappingURL=chunk-4JFUI7MJ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/react/hooks/shared/useQuery.ts","../src/react/hooks/useEntries.ts","../src/react/hooks/useEntry.ts","../src/react/hooks/useAssets.ts","../src/react/hooks/useContentTypes.ts","../src/react/hooks/useCMA.ts","../src/react/hooks/useLaunch.ts","../src/react/hooks/useBrandKit.ts","../src/react/hooks/useKnowledgeVault.ts","../src/react/hooks/useGenerativeAI.ts","../src/react/hooks/shared/useMutation.ts","../src/react/hooks/usePublishEntry.ts","../src/react/hooks/useCreateEntry.ts","../src/react/hooks/useUpdateEntry.ts","../src/react/hooks/useDeleteEntry.ts"],"sourcesContent":["\"use client\"\n\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport { ContentstackError, parseErrorResponse } from \"../../../index.js\"\nimport { useContentstackContext } from \"../../provider/context\"\n\nexport interface UseQueryOptions {\n enabled?: boolean\n refetchInterval?: number\n}\n\nexport interface UseQueryResult<T> {\n data: T | undefined\n loading: boolean\n error: ContentstackError | null\n refetch: () => Promise<void>\n}\n\nexport function useQuery<T>(\n path: string,\n params?: Record<string, string>,\n options?: UseQueryOptions,\n): UseQueryResult<T> {\n const { proxyBasePath } = useContentstackContext()\n const [data, setData] = useState<T | undefined>(undefined)\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<ContentstackError | null>(null)\n const abortRef = useRef<AbortController | null>(null)\n\n const enabled = options?.enabled ?? true\n const refetchInterval = options?.refetchInterval ?? 0\n\n const search = params ? `?${new URLSearchParams(params).toString()}` : \"\"\n const url = `${proxyBasePath}${path}${search}`\n\n const fetchData = useCallback(\n async (signal?: AbortSignal) => {\n setLoading(true)\n setError(null)\n\n try {\n const response = await fetch(url, { signal })\n\n if (signal?.aborted) return\n\n if (!response.ok) {\n const err = await parseErrorResponse(response, path)\n setError(err)\n setData(undefined)\n return\n }\n\n const json = await response.json()\n setData(json as T)\n } catch (err) {\n if (err instanceof DOMException && err.name === \"AbortError\") return\n setError(\n new ContentstackError(err instanceof Error ? err.message : \"Network error\", {\n requestPath: path,\n cause: err instanceof Error ? err : undefined,\n }),\n )\n setData(undefined)\n } finally {\n if (!signal?.aborted) {\n setLoading(false)\n }\n }\n },\n [url, path],\n )\n\n useEffect(() => {\n if (!enabled) return\n\n abortRef.current?.abort()\n const controller = new AbortController()\n abortRef.current = controller\n\n fetchData(controller.signal)\n\n return () => {\n controller.abort()\n }\n }, [enabled, fetchData])\n\n useEffect(() => {\n if (!enabled || refetchInterval <= 0) return\n\n const id = setInterval(() => {\n abortRef.current?.abort()\n const controller = new AbortController()\n abortRef.current = controller\n fetchData(controller.signal)\n }, refetchInterval)\n\n return () => {\n clearInterval(id)\n }\n }, [enabled, refetchInterval, fetchData])\n\n const refetch = useCallback(async () => {\n abortRef.current?.abort()\n const controller = new AbortController()\n abortRef.current = controller\n await fetchData(controller.signal)\n }, [fetchData])\n\n return { data, loading, error, refetch }\n}\n","\"use client\"\n\nimport { type Entry, buildEntriesParams } from \"../../index.js\"\nimport type { UseQueryOptions, UseQueryResult } from \"./shared/useQuery\"\nimport { useQuery } from \"./shared/useQuery\"\n\nexport interface UseEntriesOptions extends UseQueryOptions {\n locale?: string\n limit?: number\n skip?: number\n includePublishDetails?: boolean\n query?: Record<string, unknown>\n}\n\nexport interface UseEntriesResult extends Omit<UseQueryResult<Entry[]>, \"data\"> {\n data: Entry[] | undefined\n count?: number\n}\n\nexport function useEntries(contentTypeUid: string, options?: UseEntriesOptions): UseEntriesResult {\n const result = useQuery<{ entries: Entry[]; count?: number }>(\n `/content_types/${contentTypeUid}/entries`,\n buildEntriesParams(options),\n options,\n )\n\n return {\n ...result,\n data: result.data?.entries,\n count: result.data?.count,\n }\n}\n","\"use client\"\n\nimport { type Entry, buildEntryParams } from \"../../index.js\"\nimport type { UseQueryOptions, UseQueryResult } from \"./shared/useQuery\"\nimport { useQuery } from \"./shared/useQuery\"\n\nexport interface UseEntryOptions extends UseQueryOptions {\n locale?: string\n version?: number\n includePublishDetails?: boolean\n}\n\nexport function useEntry(\n contentTypeUid: string,\n entryUid: string,\n options?: UseEntryOptions,\n): UseQueryResult<Entry> {\n const result = useQuery<{ entry: Entry }>(\n `/content_types/${contentTypeUid}/entries/${entryUid}`,\n buildEntryParams(options),\n options,\n )\n\n return {\n ...result,\n data: result.data?.entry,\n }\n}\n","\"use client\"\n\nimport { type Asset, buildAssetsParams } from \"../../index.js\"\nimport type { UseQueryOptions, UseQueryResult } from \"./shared/useQuery\"\nimport { useQuery } from \"./shared/useQuery\"\n\nexport interface UseAssetsOptions extends UseQueryOptions {\n folder?: string\n limit?: number\n skip?: number\n}\n\nexport function useAssets(options?: UseAssetsOptions): UseQueryResult<Asset[]> {\n const result = useQuery<{ assets: Asset[] }>(\"/assets\", buildAssetsParams(options), options)\n\n return {\n ...result,\n data: result.data?.assets,\n }\n}\n","\"use client\"\n\nimport type { ContentType } from \"../../index.js\"\nimport type { UseQueryOptions, UseQueryResult } from \"./shared/useQuery\"\nimport { useQuery } from \"./shared/useQuery\"\n\nexport function useContentTypes(options?: UseQueryOptions): UseQueryResult<ContentType[]> {\n const result = useQuery<{ content_types: ContentType[] }>(\"/content_types\", undefined, options)\n\n return {\n ...result,\n data: result.data?.content_types,\n }\n}\n","\"use client\"\n\nimport { useMemo } from \"react\"\nimport { type CMAClient, createCMAClient } from \"../../index.js\"\nimport { useContentstackContext } from \"../provider/context\"\n\nexport function useCMA(): CMAClient {\n const { proxyBasePath, region, apiKey } = useContentstackContext()\n\n return useMemo(\n () =>\n createCMAClient({\n region,\n apiKey: apiKey ?? \"proxy\",\n auth: { type: \"oauth\", accessToken: \"proxy\" },\n httpOptions: { baseUrl: proxyBasePath },\n }),\n [proxyBasePath, region, apiKey],\n )\n}\n","\"use client\"\n\nimport { useMemo } from \"react\"\nimport { type LaunchClient, createLaunchClient } from \"../../index.js\"\nimport { useContentstackContext } from \"../provider/context\"\n\nexport function useLaunch(): LaunchClient {\n const { launchProxyBasePath = \"/api/launch\", region, organizationUid } = useContentstackContext()\n\n return useMemo(\n () =>\n createLaunchClient({\n region,\n organizationUid: organizationUid ?? \"proxy\",\n auth: { type: \"oauth\", accessToken: \"proxy\" },\n httpOptions: { baseUrl: launchProxyBasePath },\n }),\n [launchProxyBasePath, region, organizationUid],\n )\n}\n","\"use client\"\n\nimport { useMemo } from \"react\"\nimport { type BrandKitClient, createBrandKitClient } from \"../../index.js\"\nimport { useContentstackContext } from \"../provider/context\"\n\nexport function useBrandKit(): BrandKitClient {\n const {\n brandKitProxyBasePath = \"/api/brandkit\",\n region,\n organizationUid,\n } = useContentstackContext()\n\n return useMemo(\n () =>\n createBrandKitClient({\n region,\n organizationUid: organizationUid ?? \"proxy\",\n auth: { type: \"oauth\", accessToken: \"proxy\" },\n httpOptions: { baseUrl: brandKitProxyBasePath },\n }),\n [brandKitProxyBasePath, region, organizationUid],\n )\n}\n","\"use client\"\n\nimport { useMemo } from \"react\"\nimport { type KnowledgeVaultClient, createKnowledgeVaultClient } from \"../../index.js\"\nimport { useContentstackContext } from \"../provider/context\"\n\nexport function useKnowledgeVault(): KnowledgeVaultClient {\n const {\n brandKitProxyBasePath = \"/api/brandkit\",\n region,\n organizationUid,\n brandKitUid,\n } = useContentstackContext()\n\n return useMemo(\n () =>\n createKnowledgeVaultClient({\n region,\n organizationUid: organizationUid ?? \"proxy\",\n brandKitUid: brandKitUid ?? \"proxy\",\n auth: { type: \"oauth\", accessToken: \"proxy\" },\n httpOptions: { baseUrl: brandKitProxyBasePath },\n }),\n [brandKitProxyBasePath, region, organizationUid, brandKitUid],\n )\n}\n","\"use client\"\n\nimport { useMemo } from \"react\"\nimport { type GenerativeAIClient, createGenerativeAIClient } from \"../../index.js\"\nimport { useContentstackContext } from \"../provider/context\"\n\nexport function useGenerativeAI(): GenerativeAIClient {\n const {\n brandKitProxyBasePath = \"/api/brandkit\",\n region,\n organizationUid,\n brandKitUid,\n } = useContentstackContext()\n\n return useMemo(\n () =>\n createGenerativeAIClient({\n region,\n organizationUid: organizationUid ?? \"proxy\",\n brandKitUid: brandKitUid ?? \"proxy\",\n auth: { type: \"oauth\", accessToken: \"proxy\" },\n httpOptions: { baseUrl: brandKitProxyBasePath },\n }),\n [brandKitProxyBasePath, region, organizationUid, brandKitUid],\n )\n}\n","\"use client\"\n\nimport { useCallback, useRef, useState } from \"react\"\nimport { ContentstackError, parseErrorResponse } from \"../../../index.js\"\nimport { useContentstackContext } from \"../../provider/context\"\n\nexport interface UseMutationResult<TData, TVariables> {\n mutate: (variables: TVariables) => Promise<TData>\n loading: boolean\n error: ContentstackError | null\n data: TData | undefined\n reset: () => void\n}\n\nexport function useMutation<TData, TVariables>(\n method: \"POST\" | \"PUT\" | \"DELETE\",\n buildRequest: (variables: TVariables) => { path: string; body?: unknown },\n): UseMutationResult<TData, TVariables> {\n const { proxyBasePath } = useContentstackContext()\n const [data, setData] = useState<TData | undefined>(undefined)\n const [loading, setLoading] = useState(false)\n const [error, setError] = useState<ContentstackError | null>(null)\n const buildRequestRef = useRef(buildRequest)\n buildRequestRef.current = buildRequest\n\n const mutate = useCallback(\n async (variables: TVariables): Promise<TData> => {\n const { path, body } = buildRequestRef.current(variables)\n const url = `${proxyBasePath}${path}`\n\n setLoading(true)\n setError(null)\n\n try {\n const response = await fetch(url, {\n method,\n headers: body !== undefined ? { \"Content-Type\": \"application/json\" } : undefined,\n body: body !== undefined ? JSON.stringify(body) : undefined,\n })\n\n if (!response.ok) {\n const err = await parseErrorResponse(response, path)\n setError(err)\n setData(undefined)\n throw err\n }\n\n let json: TData | undefined\n try {\n json = (await response.json()) as TData\n } catch {\n // Support successful 204/empty-body mutation responses.\n json = undefined\n }\n setData(json)\n return json as TData\n } catch (err) {\n if (err instanceof ContentstackError) throw err\n const csError = new ContentstackError(\n err instanceof Error ? err.message : \"Network error\",\n {\n requestPath: path,\n cause: err instanceof Error ? err : undefined,\n },\n )\n setError(csError)\n setData(undefined)\n throw csError\n } finally {\n setLoading(false)\n }\n },\n [proxyBasePath, method],\n )\n\n const reset = useCallback(() => {\n setData(undefined)\n setError(null)\n }, [])\n\n return { mutate, loading, error, data, reset }\n}\n","\"use client\"\n\nimport { type PublishEntryVariables, buildPublishEntryRequest } from \"../../index.js\"\nimport type { UseMutationResult } from \"./shared/useMutation\"\nimport { useMutation } from \"./shared/useMutation\"\n\nexport function usePublishEntry(): UseMutationResult<void, PublishEntryVariables> {\n return useMutation<void, PublishEntryVariables>(\"POST\", buildPublishEntryRequest)\n}\n","\"use client\"\n\nimport { useCallback } from \"react\"\nimport { type CreateEntryVariables, type Entry, buildCreateEntryRequest } from \"../../index.js\"\nimport type { UseMutationResult } from \"./shared/useMutation\"\nimport { useMutation } from \"./shared/useMutation\"\n\nexport function useCreateEntry(): UseMutationResult<Entry, CreateEntryVariables> {\n const result = useMutation<{ entry: Entry }, CreateEntryVariables>(\n \"POST\",\n buildCreateEntryRequest,\n )\n\n const mutate = useCallback(\n async (variables: CreateEntryVariables) => {\n const raw = await result.mutate(variables)\n return raw.entry\n },\n [result.mutate],\n )\n\n return {\n ...result,\n data: result.data?.entry,\n mutate,\n }\n}\n","\"use client\"\n\nimport { useCallback } from \"react\"\nimport { type Entry, type UpdateEntryVariables, buildUpdateEntryRequest } from \"../../index.js\"\nimport type { UseMutationResult } from \"./shared/useMutation\"\nimport { useMutation } from \"./shared/useMutation\"\n\nexport function useUpdateEntry(): UseMutationResult<Entry, UpdateEntryVariables> {\n const result = useMutation<{ entry: Entry }, UpdateEntryVariables>(\"PUT\", buildUpdateEntryRequest)\n\n const mutate = useCallback(\n async (variables: UpdateEntryVariables) => {\n const raw = await result.mutate(variables)\n return raw.entry\n },\n [result.mutate],\n )\n\n return {\n ...result,\n data: result.data?.entry,\n mutate,\n }\n}\n","\"use client\"\n\nimport { type DeleteEntryVariables, buildDeleteEntryRequest } from \"../../index.js\"\nimport type { UseMutationResult } from \"./shared/useMutation\"\nimport { useMutation } from \"./shared/useMutation\"\n\nexport function useDeleteEntry(): UseMutationResult<void, DeleteEntryVariables> {\n return useMutation<void, DeleteEntryVariables>(\"DELETE\", buildDeleteEntryRequest)\n}\n"],"mappings":"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","names":["useMemo","useMemo","useMemo","useMemo","useMemo","useMemo","useMemo","useMemo","useCallback","useRef","useState","useState","useRef","useCallback","useCallback","useCallback","useCallback","useCallback"]}
@@ -0,0 +1,26 @@
1
+ import {
2
+ ContentstackError
3
+ } from "./chunk-DMERADWM.mjs";
4
+
5
+ // src/http/parse-error.ts
6
+ async function parseErrorResponse(response, path) {
7
+ try {
8
+ const body = await response.json();
9
+ return new ContentstackError(body.error_message ?? body.message ?? response.statusText, {
10
+ status: response.status,
11
+ errorCode: body.error_code,
12
+ errors: body.errors,
13
+ requestPath: path
14
+ });
15
+ } catch {
16
+ return new ContentstackError(response.statusText, {
17
+ status: response.status,
18
+ requestPath: path
19
+ });
20
+ }
21
+ }
22
+
23
+ export {
24
+ parseErrorResponse
25
+ };
26
+ //# sourceMappingURL=chunk-7VFGD32I.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/http/parse-error.ts"],"sourcesContent":["import { ContentstackError } from \"./errors.js\"\n\n/**\n * Parse a non-ok fetch Response into a ContentstackError.\n *\n * Handles the Contentstack API error format (error_message, error_code, errors)\n * and falls back to the HTTP status text when the body is not parseable.\n *\n * This is a shared utility used by React hooks and Vue composables to avoid\n * duplicating error-parsing logic across frameworks.\n */\nexport async function parseErrorResponse(\n response: Response,\n path: string,\n): Promise<ContentstackError> {\n try {\n const body = await response.json()\n return new ContentstackError(body.error_message ?? body.message ?? response.statusText, {\n status: response.status,\n errorCode: body.error_code,\n errors: body.errors,\n requestPath: path,\n })\n } catch {\n return new ContentstackError(response.statusText, {\n status: response.status,\n requestPath: path,\n })\n }\n}\n"],"mappings":";;;;;AAWA,eAAsB,mBACpB,UACA,MAC4B;AAC5B,MAAI;AACF,UAAM,OAAO,MAAM,SAAS,KAAK;AACjC,WAAO,IAAI,kBAAkB,KAAK,iBAAiB,KAAK,WAAW,SAAS,YAAY;AAAA,MACtF,QAAQ,SAAS;AAAA,MACjB,WAAW,KAAK;AAAA,MAChB,QAAQ,KAAK;AAAA,MACb,aAAa;AAAA,IACf,CAAC;AAAA,EACH,QAAQ;AACN,WAAO,IAAI,kBAAkB,SAAS,YAAY;AAAA,MAChD,QAAQ,SAAS;AAAA,MACjB,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -0,0 +1,44 @@
1
+ import {
2
+ ContentstackContext
3
+ } from "./chunk-K76DKSHJ.mjs";
4
+
5
+ // src/react/provider/ContentstackProvider.tsx
6
+ import { useMemo } from "react";
7
+ import { jsx } from "react/jsx-runtime";
8
+ function ContentstackProvider({
9
+ region,
10
+ proxyBasePath = "/api/cma",
11
+ apiKey,
12
+ organizationUid,
13
+ brandKitUid,
14
+ launchProxyBasePath = "/api/launch",
15
+ brandKitProxyBasePath = "/api/brandkit",
16
+ children
17
+ }) {
18
+ const value = useMemo(
19
+ () => ({
20
+ region,
21
+ proxyBasePath,
22
+ apiKey,
23
+ organizationUid,
24
+ brandKitUid,
25
+ launchProxyBasePath,
26
+ brandKitProxyBasePath
27
+ }),
28
+ [
29
+ region,
30
+ proxyBasePath,
31
+ apiKey,
32
+ organizationUid,
33
+ brandKitUid,
34
+ launchProxyBasePath,
35
+ brandKitProxyBasePath
36
+ ]
37
+ );
38
+ return /* @__PURE__ */ jsx(ContentstackContext.Provider, { value, children });
39
+ }
40
+
41
+ export {
42
+ ContentstackProvider
43
+ };
44
+ //# sourceMappingURL=chunk-ARPJDW3A.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/react/provider/ContentstackProvider.tsx"],"sourcesContent":["\"use client\"\n\nimport { useMemo } from \"react\"\nimport type { ContentstackRegion } from \"../../index.js\"\nimport { ContentstackContext, type ContentstackContextValue } from \"./context\"\n\nexport interface ContentstackProviderProps {\n region: ContentstackRegion\n proxyBasePath?: string\n apiKey?: string\n organizationUid?: string\n brandKitUid?: string\n launchProxyBasePath?: string\n brandKitProxyBasePath?: string\n children: React.ReactNode\n}\n\nexport function ContentstackProvider({\n region,\n proxyBasePath = \"/api/cma\",\n apiKey,\n organizationUid,\n brandKitUid,\n launchProxyBasePath = \"/api/launch\",\n brandKitProxyBasePath = \"/api/brandkit\",\n children,\n}: ContentstackProviderProps): React.JSX.Element {\n const value = useMemo<ContentstackContextValue>(\n () => ({\n region,\n proxyBasePath,\n apiKey,\n organizationUid,\n brandKitUid,\n launchProxyBasePath,\n brandKitProxyBasePath,\n }),\n [\n region,\n proxyBasePath,\n apiKey,\n organizationUid,\n brandKitUid,\n launchProxyBasePath,\n brandKitProxyBasePath,\n ],\n )\n\n return <ContentstackContext.Provider value={value}>{children}</ContentstackContext.Provider>\n}\n"],"mappings":";;;;;AAEA,SAAS,eAAe;AA8Cf;AA/BF,SAAS,qBAAqB;AAAA,EACnC;AAAA,EACA,gBAAgB;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA,sBAAsB;AAAA,EACtB,wBAAwB;AAAA,EACxB;AACF,GAAiD;AAC/C,QAAM,QAAQ;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO,oBAAC,oBAAoB,UAApB,EAA6B,OAAe,UAAS;AAC/D;","names":[]}
@@ -0,0 +1,52 @@
1
+ import {
2
+ ContentstackHttpClient
3
+ } from "./chunk-4CJ4IVPJ.mjs";
4
+ import {
5
+ resolveEndpoints
6
+ } from "./chunk-BK2IBTQS.mjs";
7
+
8
+ // src/generative-ai/client.ts
9
+ function createGenerativeAIClient(config) {
10
+ const endpoints = resolveEndpoints(config.region);
11
+ const headers = {
12
+ organization_uid: config.organizationUid,
13
+ brand_kit_uid: config.brandKitUid
14
+ };
15
+ switch (config.auth.type) {
16
+ case "oauth":
17
+ headers.authorization = `Bearer ${config.auth.accessToken}`;
18
+ break;
19
+ case "authtoken":
20
+ headers.authtoken = config.auth.token;
21
+ break;
22
+ }
23
+ const http = new ContentstackHttpClient({
24
+ ...config.httpOptions,
25
+ baseUrl: config.httpOptions?.baseUrl ?? endpoints.brandKitAI,
26
+ headers: {
27
+ ...config.httpOptions?.headers,
28
+ ...headers
29
+ }
30
+ });
31
+ return {
32
+ async generate(data) {
33
+ const body = { prompt: data.prompt };
34
+ if (data.voiceProfileUid) {
35
+ body.voice_profile_uid = data.voiceProfileUid;
36
+ }
37
+ if (data.useKnowledgeVault !== void 0) {
38
+ body.knowledge_vault = data.useKnowledgeVault;
39
+ }
40
+ const response = await http.post(
41
+ "/v1/generative-ai/generate",
42
+ body
43
+ );
44
+ return response.data.data;
45
+ }
46
+ };
47
+ }
48
+
49
+ export {
50
+ createGenerativeAIClient
51
+ };
52
+ //# sourceMappingURL=chunk-AVJHCFRK.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generative-ai/client.ts"],"sourcesContent":["import { ContentstackHttpClient } from \"../http/client.js\"\nimport type { HttpClientConfig } from \"../http/types.js\"\nimport type { ContentstackRegion } from \"../regions/resolver.js\"\nimport { resolveEndpoints } from \"../regions/resolver.js\"\nimport type { GenerateContentData, GenerateContentResult } from \"./types.js\"\n\nexport interface GenerativeAIClientConfig {\n region: ContentstackRegion\n organizationUid: string\n brandKitUid: string\n auth: { type: \"oauth\"; accessToken: string } | { type: \"authtoken\"; token: string }\n httpOptions?: Partial<HttpClientConfig>\n}\n\nexport interface GenerativeAIClient {\n generate(data: GenerateContentData): Promise<GenerateContentResult>\n}\n\nexport function createGenerativeAIClient(config: GenerativeAIClientConfig): GenerativeAIClient {\n const endpoints = resolveEndpoints(config.region)\n\n const headers: Record<string, string> = {\n organization_uid: config.organizationUid,\n brand_kit_uid: config.brandKitUid,\n }\n\n switch (config.auth.type) {\n case \"oauth\":\n headers.authorization = `Bearer ${config.auth.accessToken}`\n break\n case \"authtoken\":\n headers.authtoken = config.auth.token\n break\n }\n\n const http = new ContentstackHttpClient({\n ...config.httpOptions,\n baseUrl: config.httpOptions?.baseUrl ?? endpoints.brandKitAI,\n headers: {\n ...config.httpOptions?.headers,\n ...headers,\n },\n })\n\n return {\n async generate(data: GenerateContentData): Promise<GenerateContentResult> {\n const body: Record<string, unknown> = { prompt: data.prompt }\n if (data.voiceProfileUid) {\n body.voice_profile_uid = data.voiceProfileUid\n }\n if (data.useKnowledgeVault !== undefined) {\n body.knowledge_vault = data.useKnowledgeVault\n }\n const response = await http.post<{ data: GenerateContentResult }>(\n \"/v1/generative-ai/generate\",\n body,\n )\n return response.data.data\n },\n }\n}\n"],"mappings":";;;;;;;;AAkBO,SAAS,yBAAyB,QAAsD;AAC7F,QAAM,YAAY,iBAAiB,OAAO,MAAM;AAEhD,QAAM,UAAkC;AAAA,IACtC,kBAAkB,OAAO;AAAA,IACzB,eAAe,OAAO;AAAA,EACxB;AAEA,UAAQ,OAAO,KAAK,MAAM;AAAA,IACxB,KAAK;AACH,cAAQ,gBAAgB,UAAU,OAAO,KAAK,WAAW;AACzD;AAAA,IACF,KAAK;AACH,cAAQ,YAAY,OAAO,KAAK;AAChC;AAAA,EACJ;AAEA,QAAM,OAAO,IAAI,uBAAuB;AAAA,IACtC,GAAG,OAAO;AAAA,IACV,SAAS,OAAO,aAAa,WAAW,UAAU;AAAA,IAClD,SAAS;AAAA,MACP,GAAG,OAAO,aAAa;AAAA,MACvB,GAAG;AAAA,IACL;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL,MAAM,SAAS,MAA2D;AACxE,YAAM,OAAgC,EAAE,QAAQ,KAAK,OAAO;AAC5D,UAAI,KAAK,iBAAiB;AACxB,aAAK,oBAAoB,KAAK;AAAA,MAChC;AACA,UAAI,KAAK,sBAAsB,QAAW;AACxC,aAAK,kBAAkB,KAAK;AAAA,MAC9B;AACA,YAAM,WAAW,MAAM,KAAK;AAAA,QAC1B;AAAA,QACA;AAAA,MACF;AACA,aAAO,SAAS,KAAK;AAAA,IACvB;AAAA,EACF;AACF;","names":[]}