@longline/aqua-ui 1.0.200 → 1.0.201

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.
@@ -43,6 +43,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
43
43
  }
44
44
  return to.concat(ar || Array.prototype.slice.call(from));
45
45
  };
46
+ import axios from 'axios';
46
47
  import { useCallback, useRef } from 'react';
47
48
  /**
48
49
  * Hook to stream OpenAI responses via a backend endpoint that acts as a proxy.
@@ -51,11 +52,6 @@ import { useCallback, useRef } from 'react';
51
52
  */
52
53
  var useOpenAIStream = function (url) {
53
54
  var abortRef = useRef(null);
54
- // Get CSRF token, if any, from cookie:
55
- var getCsrfTokenFromCookie = function () {
56
- var match = document.cookie.match(/XSRF-TOKEN=([^;]+)/);
57
- return match ? decodeURIComponent(match[1]) : null;
58
- };
59
55
  /**
60
56
  * Streams a prompt to a backend AI endpoint and handles streamed chunks.
61
57
  *
@@ -69,56 +65,55 @@ var useOpenAIStream = function (url) {
69
65
  }
70
66
  return __awaiter(void 0, __spreadArray([prompt_1, onText_1], args_1, true), void 0, function (prompt, onText, options) {
71
67
  var controller, response, reader, decoder, buffer, isDone, _a, done, value, parts, _b, parts_1, part, jsonStr, data, content, err_1;
72
- var _c, _d, _e, _f;
68
+ var _c, _d, _e;
73
69
  if (options === void 0) { options = { temperature: 0, top_p: 0 }; }
74
- return __generator(this, function (_g) {
75
- switch (_g.label) {
70
+ return __generator(this, function (_f) {
71
+ switch (_f.label) {
76
72
  case 0:
77
73
  controller = new AbortController();
78
74
  abortRef.current = controller;
79
- return [4 /*yield*/, fetch(url, {
80
- method: 'POST',
75
+ return [4 /*yield*/, axios.post(url, {
76
+ input: prompt,
77
+ temperature: options.temperature || 0,
78
+ top_p: options.top_p || 0
79
+ }, {
80
+ signal: controller.signal,
81
81
  headers: {
82
82
  'Content-Type': 'application/json',
83
- 'X-XSRF-TOKEN': (_c = getCsrfTokenFromCookie()) !== null && _c !== void 0 ? _c : '',
84
83
  'Accept': 'text/event-stream',
85
84
  'Connection': 'keep-alive',
86
85
  'Cache-Control': 'no-cache, no-transform'
87
86
  },
88
- body: JSON.stringify({
89
- input: prompt,
90
- temperature: options.temperature || 0,
91
- top_p: options.top_p || 0
92
- }),
93
- signal: controller.signal
87
+ adapter: 'fetch', // Enable fetch adapter for streaming
88
+ responseType: 'stream', // Only works in Node.js. See note below.
89
+ withCredentials: true, // Ensures cookies (including CSRF token) are sent
90
+ }).catch(function (err) {
91
+ console.error("OpenAI stream request failed.", err);
92
+ return;
94
93
  })];
95
94
  case 1:
96
- response = _g.sent();
97
- if (!response.ok) {
98
- console.error("OpenAI stream request failed: ".concat(response.statusText));
99
- return [2 /*return*/];
100
- }
101
- if (!response.body) {
95
+ response = _f.sent();
96
+ if (!response.data) {
102
97
  console.error('No response body (ReadableStream) found.');
103
98
  return [2 /*return*/];
104
99
  }
105
- reader = response.body.getReader();
100
+ reader = response.data.getReader();
106
101
  decoder = new TextDecoder('utf-8');
107
102
  buffer = '';
108
103
  isDone = false;
109
- _g.label = 2;
104
+ _f.label = 2;
110
105
  case 2:
111
106
  if (!!isDone) return [3 /*break*/, 11];
112
107
  return [4 /*yield*/, reader.read()];
113
108
  case 3:
114
- _a = _g.sent(), done = _a.done, value = _a.value;
109
+ _a = _f.sent(), done = _a.done, value = _a.value;
115
110
  if (done)
116
111
  return [3 /*break*/, 11];
117
112
  buffer += decoder.decode(value, { stream: true });
118
113
  parts = buffer.split('\n\n');
119
114
  buffer = parts.pop(); // Keep partial data for next chunk
120
115
  _b = 0, parts_1 = parts;
121
- _g.label = 4;
116
+ _f.label = 4;
122
117
  case 4:
123
118
  if (!(_b < parts_1.length)) return [3 /*break*/, 10];
124
119
  part = parts_1[_b];
@@ -128,19 +123,19 @@ var useOpenAIStream = function (url) {
128
123
  isDone = true;
129
124
  return [3 /*break*/, 10];
130
125
  }
131
- _g.label = 5;
126
+ _f.label = 5;
132
127
  case 5:
133
- _g.trys.push([5, 8, , 9]);
128
+ _f.trys.push([5, 8, , 9]);
134
129
  data = JSON.parse(jsonStr);
135
- content = (_f = (_e = (_d = data.choices) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.delta) === null || _f === void 0 ? void 0 : _f.content;
130
+ content = (_e = (_d = (_c = data.choices) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.delta) === null || _e === void 0 ? void 0 : _e.content;
136
131
  if (!content) return [3 /*break*/, 7];
137
132
  return [4 /*yield*/, onText(content)];
138
133
  case 6:
139
- _g.sent();
140
- _g.label = 7;
134
+ _f.sent();
135
+ _f.label = 7;
141
136
  case 7: return [3 /*break*/, 9];
142
137
  case 8:
143
- err_1 = _g.sent();
138
+ err_1 = _f.sent();
144
139
  console.error('Failed to parse chunk:', jsonStr);
145
140
  return [3 /*break*/, 9];
146
141
  case 9:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@longline/aqua-ui",
3
- "version": "1.0.200",
3
+ "version": "1.0.201",
4
4
  "description": "AquaUI",
5
5
  "author": "Alexander van Oostenrijk / Longline Environment",
6
6
  "license": "Commercial",
@@ -52,6 +52,7 @@
52
52
  "@types/react": "^18.3.10",
53
53
  "@types/react-dom": "^18.3.0",
54
54
  "awesome-debounce-promise": "^2.1.0",
55
+ "axios": "^1.10.0",
55
56
  "country-flag-emoji-polyfill": "^0.1.8",
56
57
  "extendable-media-recorder": "^9.2.26",
57
58
  "extendable-media-recorder-wav-encoder": "^7.0.128",