@laravel/stream-vue 0.3.11 → 0.3.12

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.
package/dist/index.es.js CHANGED
@@ -1,47 +1,47 @@
1
- import { toRef as x, ref as m, onMounted as O, onUnmounted as I, watch as J, readonly as E } from "vue";
1
+ import { toRef as x, ref as g, onMounted as O, onUnmounted as I, watch as J, readonly as v } from "vue";
2
2
  const T = "data: ", ee = (n, {
3
3
  eventName: e = "update",
4
4
  endSignal: a = "</stream>",
5
5
  glue: t = " ",
6
- replace: o = !1,
6
+ replace: c = !1,
7
7
  onMessage: M = () => null,
8
- onComplete: R = () => null,
9
- onError: y = () => null
8
+ onComplete: F = () => null,
9
+ onError: R = () => null
10
10
  } = {}) => {
11
- const S = x(n), h = m(""), u = m([]), v = Array.isArray(e) ? e : [e];
11
+ const m = x(n), h = g(""), u = g([]), S = Array.isArray(e) ? e : [e];
12
12
  let s = null;
13
- const c = () => {
13
+ const l = () => {
14
14
  h.value = "", u.value = [];
15
15
  }, f = (r = !1) => {
16
- v.forEach((l) => {
17
- s == null || s.removeEventListener(l, j);
18
- }), s == null || s.close(), s = null, r && c();
19
- }, j = (r) => {
16
+ S.forEach((o) => {
17
+ s?.removeEventListener(o, y);
18
+ }), s?.close(), s = null, r && l();
19
+ }, y = (r) => {
20
20
  if ([a, `${T}${a}`].includes(r.data)) {
21
- f(), R();
21
+ f(), F();
22
22
  return;
23
23
  }
24
- o && c(), u.value.push(
24
+ c && l(), u.value.push(
25
25
  r.data.startsWith(T) ? r.data.substring(T.length) : r.data
26
26
  ), h.value = u.value.join(t), M(r);
27
- }, C = (r) => {
28
- y(r), f();
29
- }, D = () => {
30
- c(), s = new EventSource(S.value), v.forEach((r) => {
31
- s.addEventListener(r, j);
32
- }), s.addEventListener("error", C);
27
+ }, b = (r) => {
28
+ R(r), f();
29
+ }, C = () => {
30
+ l(), s = new EventSource(m.value), S.forEach((r) => {
31
+ s.addEventListener(r, y);
32
+ }), s.addEventListener("error", b);
33
33
  };
34
34
  return O(() => {
35
- D();
35
+ C();
36
36
  }), I(() => {
37
37
  f();
38
- }), J(S, (r, l) => {
39
- r !== l && (f(), D());
38
+ }), J(m, (r, o) => {
39
+ r !== o && (f(), C());
40
40
  }), {
41
- message: E(h),
42
- messageParts: E(u),
41
+ message: v(h),
42
+ messageParts: v(u),
43
43
  close: f,
44
- clearMessage: c
44
+ clearMessage: l
45
45
  };
46
46
  }, K = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
47
47
  let V = (n = 21) => {
@@ -50,8 +50,8 @@ let V = (n = 21) => {
50
50
  e += K[a[n] & 63];
51
51
  return e;
52
52
  };
53
- const F = /* @__PURE__ */ new Map(), W = (n, e) => {
54
- F.has(n) || F.set(n, {
53
+ const w = /* @__PURE__ */ new Map(), W = (n, e) => {
54
+ w.has(n) || w.set(n, {
55
55
  onData: [],
56
56
  onError: [],
57
57
  onFinish: [],
@@ -59,25 +59,25 @@ const F = /* @__PURE__ */ new Map(), W = (n, e) => {
59
59
  onCancel: [],
60
60
  onBeforeSend: []
61
61
  });
62
- const a = F.get(n);
62
+ const a = w.get(n);
63
63
  return e.onData && a.onData.push(e.onData), e.onError && a.onError.push(e.onError), e.onFinish && a.onFinish.push(e.onFinish), e.onResponse && a.onResponse.push(e.onResponse), e.onCancel && a.onCancel.push(e.onCancel), e.onBeforeSend && a.onBeforeSend.push(e.onBeforeSend), () => {
64
64
  Y(n, e);
65
65
  };
66
- }, b = (n, e, ...a) => {
67
- const t = F.get(n);
68
- return t ? t[e].map((o) => o(...a)) : [];
66
+ }, E = (n, e, ...a) => {
67
+ const t = w.get(n);
68
+ return t ? t[e].map((c) => c(...a)) : [];
69
69
  }, p = (n) => {
70
- b(n, "onFinish");
70
+ E(n, "onFinish");
71
71
  }, P = (n, e) => {
72
- b(n, "onError", e);
72
+ E(n, "onError", e);
73
73
  }, $ = (n, e) => {
74
- b(n, "onResponse", e);
74
+ E(n, "onResponse", e);
75
75
  }, G = (n) => {
76
- b(n, "onCancel");
76
+ E(n, "onCancel");
77
77
  }, H = (n, e) => {
78
- b(n, "onData", e);
78
+ E(n, "onData", e);
79
79
  }, Q = (n, e) => {
80
- const a = b(n, "onBeforeSend", e);
80
+ const a = E(n, "onBeforeSend", e);
81
81
  for (const t of a) {
82
82
  if (t === !1)
83
83
  return !1;
@@ -86,7 +86,7 @@ const F = /* @__PURE__ */ new Map(), W = (n, e) => {
86
86
  }
87
87
  return null;
88
88
  }, Y = (n, e) => {
89
- const a = F.get(n);
89
+ const a = w.get(n);
90
90
  a && (e.onData && (a.onData = a.onData.filter(
91
91
  (t) => t !== e.onData
92
92
  )), e.onError && (a.onError = a.onError.filter(
@@ -112,57 +112,52 @@ const F = /* @__PURE__ */ new Map(), W = (n, e) => {
112
112
  jsonData: null
113
113
  };
114
114
  return L.set(n, a), a;
115
- }, q = (n) => (d.has(n) || d.set(n, []), d.get(n)), N = (n) => {
116
- var e;
117
- return d.has(n) && ((e = d.get(n)) == null ? void 0 : e.length);
118
- }, Z = (n, e) => (q(n).push(e), () => {
115
+ }, q = (n) => (d.has(n) || d.set(n, []), d.get(n)), N = (n) => d.has(n) && d.get(n)?.length, Z = (n, e) => (q(n).push(e), () => {
119
116
  d.set(
120
117
  n,
121
118
  q(n).filter((a) => a !== e)
122
119
  ), N(n) || (L.delete(n), d.delete(n));
123
120
  }), _ = (n, e) => {
124
- var t;
125
121
  L.set(n, {
126
122
  ...A(n),
127
123
  ...e
128
124
  });
129
125
  const a = A(n);
130
- (t = d.get(n)) == null || t.forEach((o) => o(a));
126
+ d.get(n)?.forEach((t) => t(a));
131
127
  }, U = (n, e = {}) => {
132
- const a = x(n), t = e.id ?? V(), o = m(A(t)), M = (() => {
133
- var g;
128
+ const a = x(n), t = e.id ?? V(), c = g(A(t)), M = (() => {
134
129
  const r = {
135
130
  "Content-Type": "application/json",
136
131
  "X-STREAM-ID": t
137
- }, l = e.csrfToken ?? ((g = document.querySelector('meta[name="csrf-token"]')) == null ? void 0 : g.getAttribute("content"));
138
- return l && (r["X-CSRF-TOKEN"] = l), r;
139
- })(), R = m(o.value.data), y = m(o.value.jsonData), S = m(o.value.isFetching), h = m(o.value.isStreaming);
140
- let u, v;
132
+ }, o = e.csrfToken ?? document.querySelector('meta[name="csrf-token"]')?.getAttribute("content");
133
+ return o && (r["X-CSRF-TOKEN"] = o), r;
134
+ })(), F = g(c.value.data), R = g(c.value.jsonData), m = g(c.value.isFetching), h = g(c.value.isStreaming);
135
+ let u, S;
141
136
  const s = (r) => {
142
137
  _(t, r);
143
- }, c = () => {
144
- o.value.controller.abort(), (S || h) && G(t), s({
138
+ }, l = () => {
139
+ c.value.controller.abort(), (m || h) && G(t), s({
145
140
  isFetching: !1,
146
141
  isStreaming: !1
147
142
  });
148
143
  }, f = (r) => {
149
- const l = new AbortController(), g = {
144
+ const o = new AbortController(), j = {
150
145
  method: "POST",
151
- signal: l.signal,
146
+ signal: o.signal,
152
147
  headers: {
153
148
  ...M,
154
149
  ...e.headers ?? {}
155
150
  },
156
151
  body: JSON.stringify(r ?? {}),
157
152
  credentials: e.credentials ?? "same-origin"
158
- }, k = Q(t, g);
153
+ }, k = Q(t, j);
159
154
  k !== !1 && (s({
160
155
  isFetching: !0,
161
- controller: l
162
- }), fetch(a.value, k ?? g).then(async (i) => {
156
+ controller: o
157
+ }), fetch(a.value, k ?? j).then(async (i) => {
163
158
  if (!i.ok) {
164
- const w = await i.text();
165
- throw new Error(w);
159
+ const D = await i.text();
160
+ throw new Error(D);
166
161
  }
167
162
  if (!i.body)
168
163
  throw new Error(
@@ -171,31 +166,31 @@ const F = /* @__PURE__ */ new Map(), W = (n, e) => {
171
166
  return $(t, i), s({
172
167
  isFetching: !1,
173
168
  isStreaming: !0
174
- }), D(i.body.getReader());
169
+ }), C(i.body.getReader());
175
170
  }).catch((i) => {
176
171
  s({
177
172
  isFetching: !1,
178
173
  isStreaming: !1
179
174
  }), P(t, i), p(t);
180
175
  }));
181
- }, j = (r) => {
182
- c(), f(r), C();
183
- }, C = () => {
176
+ }, y = (r) => {
177
+ l(), f(r), b();
178
+ }, b = () => {
184
179
  s({
185
180
  data: "",
186
181
  jsonData: null
187
182
  });
188
- }, D = async (r, l = "") => r.read().then(({ done: g, value: k }) => {
189
- const i = new TextDecoder("utf-8").decode(k), w = l + i;
183
+ }, C = async (r, o = "") => r.read().then(({ done: j, value: k }) => {
184
+ const i = new TextDecoder("utf-8").decode(k), D = o + i;
190
185
  H(t, i);
191
186
  const B = {
192
- data: w
187
+ data: D
193
188
  };
194
- if (!g)
195
- return s(B), D(r, w);
189
+ if (!j)
190
+ return s(B), C(r, D);
196
191
  if (B.isStreaming = !1, e.json)
197
192
  try {
198
- B.jsonData = JSON.parse(w);
193
+ B.jsonData = JSON.parse(D);
199
194
  } catch (X) {
200
195
  P(t, X);
201
196
  }
@@ -203,28 +198,28 @@ const F = /* @__PURE__ */ new Map(), W = (n, e) => {
203
198
  });
204
199
  return O(() => {
205
200
  u = Z(t, (r) => {
206
- o.value = A(t), S.value = r.isFetching, h.value = r.isStreaming, R.value = r.data, y.value = r.jsonData;
207
- }), v = W(t, e), window.addEventListener("beforeunload", c), e.initialInput && f(e.initialInput);
201
+ c.value = A(t), m.value = r.isFetching, h.value = r.isStreaming, F.value = r.data, R.value = r.jsonData;
202
+ }), S = W(t, e), window.addEventListener("beforeunload", l), e.initialInput && f(e.initialInput);
208
203
  }), I(() => {
209
- u && u(), v && v(), window.removeEventListener("beforeunload", c), N(t) || c();
210
- }), J(a, (r, l) => {
211
- r !== l && (c(), C());
204
+ u && u(), S && S(), window.removeEventListener("beforeunload", l), N(t) || l();
205
+ }), J(a, (r, o) => {
206
+ r !== o && (l(), b());
212
207
  }), {
213
- data: E(R),
214
- jsonData: E(y),
215
- isFetching: E(S),
216
- isStreaming: E(h),
208
+ data: v(F),
209
+ jsonData: v(R),
210
+ isFetching: v(m),
211
+ isStreaming: v(h),
217
212
  id: t,
218
- send: j,
219
- cancel: c,
220
- clearData: C
213
+ send: y,
214
+ cancel: l,
215
+ clearData: b
221
216
  };
222
217
  }, ne = (n, e = {}) => {
223
- const { jsonData: a, data: t, ...o } = U(n, {
218
+ const { jsonData: a, data: t, ...c } = U(n, {
224
219
  ...e,
225
220
  json: !0
226
221
  });
227
- return { data: a, strData: t, ...o };
222
+ return { data: a, strData: t, ...c };
228
223
  };
229
224
  export {
230
225
  ee as useEventStream,
package/dist/index.umd.js CHANGED
@@ -1 +1 @@
1
- (function(u,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],s):(u=typeof globalThis<"u"?globalThis:u||self,s(u.LaravelStreamVue={},u.Vue))})(this,function(u,s){"use strict";const T="data: ",x=(n,{eventName:e="update",endSignal:a="</stream>",glue:t=" ",replace:l=!1,onMessage:p=()=>null,onComplete:k=()=>null,onError:v=()=>null}={})=>{const E=s.toRef(n),g=s.ref(""),h=s.ref([]),b=Array.isArray(e)?e:[e];let o=null;const i=()=>{g.value="",h.value=[]},m=(r=!1)=>{b.forEach(c=>{o==null||o.removeEventListener(c,B)}),o==null||o.close(),o=null,r&&i()},B=r=>{if([a,`${T}${a}`].includes(r.data)){m(),k();return}l&&i(),h.value.push(r.data.startsWith(T)?r.data.substring(T.length):r.data),g.value=h.value.join(t),p(r)},C=r=>{v(r),m()},D=()=>{i(),o=new EventSource(E.value),b.forEach(r=>{o.addEventListener(r,B)}),o.addEventListener("error",C)};return s.onMounted(()=>{D()}),s.onUnmounted(()=>{m()}),s.watch(E,(r,c)=>{r!==c&&(m(),D())}),{message:s.readonly(g),messageParts:s.readonly(h),close:m,clearMessage:i}},I="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let V=(n=21)=>{let e="",a=crypto.getRandomValues(new Uint8Array(n|=0));for(;n--;)e+=I[a[n]&63];return e};const w=new Map,N=(n,e)=>{w.has(n)||w.set(n,{onData:[],onError:[],onFinish:[],onResponse:[],onCancel:[],onBeforeSend:[]});const a=w.get(n);return e.onData&&a.onData.push(e.onData),e.onError&&a.onError.push(e.onError),e.onFinish&&a.onFinish.push(e.onFinish),e.onResponse&&a.onResponse.push(e.onResponse),e.onCancel&&a.onCancel.push(e.onCancel),e.onBeforeSend&&a.onBeforeSend.push(e.onBeforeSend),()=>{G(n,e)}},y=(n,e,...a)=>{const t=w.get(n);return t?t[e].map(l=>l(...a)):[]},A=n=>{y(n,"onFinish")},P=(n,e)=>{y(n,"onError",e)},X=(n,e)=>{y(n,"onResponse",e)},K=n=>{y(n,"onCancel")},W=(n,e)=>{y(n,"onData",e)},$=(n,e)=>{const a=y(n,"onBeforeSend",e);for(const t of a){if(t===!1)return!1;if(t!==null&&typeof t=="object")return t}return null},G=(n,e)=>{const a=w.get(n);a&&(e.onData&&(a.onData=a.onData.filter(t=>t!==e.onData)),e.onError&&(a.onError=a.onError.filter(t=>t!==e.onError)),e.onFinish&&(a.onFinish=a.onFinish.filter(t=>t!==e.onFinish)),e.onResponse&&(a.onResponse=a.onResponse.filter(t=>t!==e.onResponse)),e.onCancel&&(a.onCancel=a.onCancel.filter(t=>t!==e.onCancel)),e.onBeforeSend&&(a.onBeforeSend=a.onBeforeSend.filter(t=>t!==e.onBeforeSend)))},F=new Map,d=new Map,j=n=>{const e=F.get(n);if(e)return e;const a={controller:new AbortController,data:"",isFetching:!1,isStreaming:!1,jsonData:null};return F.set(n,a),a},q=n=>(d.has(n)||d.set(n,[]),d.get(n)),O=n=>{var e;return d.has(n)&&((e=d.get(n))==null?void 0:e.length)},H=(n,e)=>(q(n).push(e),()=>{d.set(n,q(n).filter(a=>a!==e)),O(n)||(F.delete(n),d.delete(n))}),Q=(n,e)=>{var t;F.set(n,{...j(n),...e});const a=j(n);(t=d.get(n))==null||t.forEach(l=>l(a))},J=(n,e={})=>{const a=s.toRef(n),t=e.id??V(),l=s.ref(j(t)),p=(()=>{var S;const r={"Content-Type":"application/json","X-STREAM-ID":t},c=e.csrfToken??((S=document.querySelector('meta[name="csrf-token"]'))==null?void 0:S.getAttribute("content"));return c&&(r["X-CSRF-TOKEN"]=c),r})(),k=s.ref(l.value.data),v=s.ref(l.value.jsonData),E=s.ref(l.value.isFetching),g=s.ref(l.value.isStreaming);let h,b;const o=r=>{Q(t,r)},i=()=>{l.value.controller.abort(),(E||g)&&K(t),o({isFetching:!1,isStreaming:!1})},m=r=>{const c=new AbortController,S={method:"POST",signal:c.signal,headers:{...p,...e.headers??{}},body:JSON.stringify(r??{}),credentials:e.credentials??"same-origin"},L=$(t,S);L!==!1&&(o({isFetching:!0,controller:c}),fetch(a.value,L??S).then(async f=>{if(!f.ok){const R=await f.text();throw new Error(R)}if(!f.body)throw new Error("ReadableStream not yet supported in this browser.");return X(t,f),o({isFetching:!1,isStreaming:!0}),D(f.body.getReader())}).catch(f=>{o({isFetching:!1,isStreaming:!1}),P(t,f),A(t)}))},B=r=>{i(),m(r),C()},C=()=>{o({data:"",jsonData:null})},D=async(r,c="")=>r.read().then(({done:S,value:L})=>{const f=new TextDecoder("utf-8").decode(L),R=c+f;W(t,f);const M={data:R};if(!S)return o(M),D(r,R);if(M.isStreaming=!1,e.json)try{M.jsonData=JSON.parse(R)}catch(Y){P(t,Y)}return o(M),A(t),""});return s.onMounted(()=>{h=H(t,r=>{l.value=j(t),E.value=r.isFetching,g.value=r.isStreaming,k.value=r.data,v.value=r.jsonData}),b=N(t,e),window.addEventListener("beforeunload",i),e.initialInput&&m(e.initialInput)}),s.onUnmounted(()=>{h&&h(),b&&b(),window.removeEventListener("beforeunload",i),O(t)||i()}),s.watch(a,(r,c)=>{r!==c&&(i(),C())}),{data:s.readonly(k),jsonData:s.readonly(v),isFetching:s.readonly(E),isStreaming:s.readonly(g),id:t,send:B,cancel:i,clearData:C}},U=(n,e={})=>{const{jsonData:a,data:t,...l}=J(n,{...e,json:!0});return{data:a,strData:t,...l}};u.useEventStream=x,u.useJsonStream=U,u.useStream=J,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})});
1
+ (function(u,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],s):(u=typeof globalThis<"u"?globalThis:u||self,s(u.LaravelStreamVue={},u.Vue))})(this,(function(u,s){"use strict";const T="data: ",x=(n,{eventName:e="update",endSignal:r="</stream>",glue:t=" ",replace:c=!1,onMessage:p=()=>null,onComplete:j=()=>null,onError:k=()=>null}={})=>{const y=s.toRef(n),g=s.ref(""),h=s.ref([]),E=Array.isArray(e)?e:[e];let o=null;const i=()=>{g.value="",h.value=[]},m=(a=!1)=>{E.forEach(l=>{o?.removeEventListener(l,v)}),o?.close(),o=null,a&&i()},v=a=>{if([r,`${T}${r}`].includes(a.data)){m(),j();return}c&&i(),h.value.push(a.data.startsWith(T)?a.data.substring(T.length):a.data),g.value=h.value.join(t),p(a)},w=a=>{k(a),m()},C=()=>{i(),o=new EventSource(y.value),E.forEach(a=>{o.addEventListener(a,v)}),o.addEventListener("error",w)};return s.onMounted(()=>{C()}),s.onUnmounted(()=>{m()}),s.watch(y,(a,l)=>{a!==l&&(m(),C())}),{message:s.readonly(g),messageParts:s.readonly(h),close:m,clearMessage:i}},I="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";let V=(n=21)=>{let e="",r=crypto.getRandomValues(new Uint8Array(n|=0));for(;n--;)e+=I[r[n]&63];return e};const b=new Map,N=(n,e)=>{b.has(n)||b.set(n,{onData:[],onError:[],onFinish:[],onResponse:[],onCancel:[],onBeforeSend:[]});const r=b.get(n);return e.onData&&r.onData.push(e.onData),e.onError&&r.onError.push(e.onError),e.onFinish&&r.onFinish.push(e.onFinish),e.onResponse&&r.onResponse.push(e.onResponse),e.onCancel&&r.onCancel.push(e.onCancel),e.onBeforeSend&&r.onBeforeSend.push(e.onBeforeSend),()=>{G(n,e)}},S=(n,e,...r)=>{const t=b.get(n);return t?t[e].map(c=>c(...r)):[]},A=n=>{S(n,"onFinish")},P=(n,e)=>{S(n,"onError",e)},X=(n,e)=>{S(n,"onResponse",e)},K=n=>{S(n,"onCancel")},W=(n,e)=>{S(n,"onData",e)},$=(n,e)=>{const r=S(n,"onBeforeSend",e);for(const t of r){if(t===!1)return!1;if(t!==null&&typeof t=="object")return t}return null},G=(n,e)=>{const r=b.get(n);r&&(e.onData&&(r.onData=r.onData.filter(t=>t!==e.onData)),e.onError&&(r.onError=r.onError.filter(t=>t!==e.onError)),e.onFinish&&(r.onFinish=r.onFinish.filter(t=>t!==e.onFinish)),e.onResponse&&(r.onResponse=r.onResponse.filter(t=>t!==e.onResponse)),e.onCancel&&(r.onCancel=r.onCancel.filter(t=>t!==e.onCancel)),e.onBeforeSend&&(r.onBeforeSend=r.onBeforeSend.filter(t=>t!==e.onBeforeSend)))},R=new Map,d=new Map,F=n=>{const e=R.get(n);if(e)return e;const r={controller:new AbortController,data:"",isFetching:!1,isStreaming:!1,jsonData:null};return R.set(n,r),r},q=n=>(d.has(n)||d.set(n,[]),d.get(n)),O=n=>d.has(n)&&d.get(n)?.length,H=(n,e)=>(q(n).push(e),()=>{d.set(n,q(n).filter(r=>r!==e)),O(n)||(R.delete(n),d.delete(n))}),Q=(n,e)=>{R.set(n,{...F(n),...e});const r=F(n);d.get(n)?.forEach(t=>t(r))},J=(n,e={})=>{const r=s.toRef(n),t=e.id??V(),c=s.ref(F(t)),p=(()=>{const a={"Content-Type":"application/json","X-STREAM-ID":t},l=e.csrfToken??document.querySelector('meta[name="csrf-token"]')?.getAttribute("content");return l&&(a["X-CSRF-TOKEN"]=l),a})(),j=s.ref(c.value.data),k=s.ref(c.value.jsonData),y=s.ref(c.value.isFetching),g=s.ref(c.value.isStreaming);let h,E;const o=a=>{Q(t,a)},i=()=>{c.value.controller.abort(),(y||g)&&K(t),o({isFetching:!1,isStreaming:!1})},m=a=>{const l=new AbortController,B={method:"POST",signal:l.signal,headers:{...p,...e.headers??{}},body:JSON.stringify(a??{}),credentials:e.credentials??"same-origin"},L=$(t,B);L!==!1&&(o({isFetching:!0,controller:l}),fetch(r.value,L??B).then(async f=>{if(!f.ok){const D=await f.text();throw new Error(D)}if(!f.body)throw new Error("ReadableStream not yet supported in this browser.");return X(t,f),o({isFetching:!1,isStreaming:!0}),C(f.body.getReader())}).catch(f=>{o({isFetching:!1,isStreaming:!1}),P(t,f),A(t)}))},v=a=>{i(),m(a),w()},w=()=>{o({data:"",jsonData:null})},C=async(a,l="")=>a.read().then(({done:B,value:L})=>{const f=new TextDecoder("utf-8").decode(L),D=l+f;W(t,f);const M={data:D};if(!B)return o(M),C(a,D);if(M.isStreaming=!1,e.json)try{M.jsonData=JSON.parse(D)}catch(Y){P(t,Y)}return o(M),A(t),""});return s.onMounted(()=>{h=H(t,a=>{c.value=F(t),y.value=a.isFetching,g.value=a.isStreaming,j.value=a.data,k.value=a.jsonData}),E=N(t,e),window.addEventListener("beforeunload",i),e.initialInput&&m(e.initialInput)}),s.onUnmounted(()=>{h&&h(),E&&E(),window.removeEventListener("beforeunload",i),O(t)||i()}),s.watch(r,(a,l)=>{a!==l&&(i(),w())}),{data:s.readonly(j),jsonData:s.readonly(k),isFetching:s.readonly(y),isStreaming:s.readonly(g),id:t,send:v,cancel:i,clearData:w}},U=(n,e={})=>{const{jsonData:r,data:t,...c}=J(n,{...e,json:!0});return{data:r,strData:t,...c}};u.useEventStream=x,u.useJsonStream=U,u.useStream=J,Object.defineProperty(u,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laravel/stream-vue",
3
- "version": "0.3.11",
3
+ "version": "0.3.12",
4
4
  "description": "Laravel streaming hooks for Vue",
5
5
  "keywords": [
6
6
  "laravel",
@@ -39,23 +39,23 @@
39
39
  ],
40
40
  "devDependencies": {
41
41
  "@types/node": "^22.14.0",
42
- "@typescript-eslint/eslint-plugin": "^8.21.0",
43
- "@typescript-eslint/parser": "^8.21.0",
44
- "@vitejs/plugin-vue": "^5.0.0",
45
- "eslint": "^9.0.0",
42
+ "@typescript-eslint/eslint-plugin": "^8.56.0",
43
+ "@typescript-eslint/parser": "^8.56.0",
44
+ "@vitejs/plugin-vue": "^6.0.0",
45
+ "eslint": "^10.0.0",
46
46
  "jsdom": "^26.0.0",
47
- "msw": "^2.8.2",
48
- "prettier": "^3.5.3",
49
- "typescript": "^5.3.0",
50
- "vite": "^5.4.19",
51
- "vite-plugin-dts": "^4.5.3",
52
- "vitest": "^3.1.1"
47
+ "msw": "^2.12.0",
48
+ "prettier": "^3.8.1",
49
+ "typescript": "^5.9.0",
50
+ "vite": "^7.0.0",
51
+ "vite-plugin-dts": "^4.5.4",
52
+ "vitest": "^4.0.0"
53
53
  },
54
54
  "peerDependencies": {
55
55
  "vue": "^3.3.0"
56
56
  },
57
57
  "dependencies": {
58
- "nanoid": "^5.1.5"
58
+ "nanoid": "^5.1.6"
59
59
  },
60
60
  "scripts": {
61
61
  "build": "vite build",