@bquery/bquery 1.9.0 → 1.11.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.
- package/README.md +221 -40
- package/dist/{a11y-_9X-kt-_.js → a11y-DgUQ8-fI.js} +3 -3
- package/dist/{a11y-_9X-kt-_.js.map → a11y-DgUQ8-fI.js.map} +1 -1
- package/dist/a11y.es.mjs +1 -1
- package/dist/{component-L3-JfOFz.js → component-D8ydhe58.js} +20 -19
- package/dist/{component-L3-JfOFz.js.map → component-D8ydhe58.js.map} +1 -1
- package/dist/component.es.mjs +1 -1
- package/dist/concurrency/errors.d.ts +29 -0
- package/dist/concurrency/errors.d.ts.map +1 -0
- package/dist/concurrency/high-level.d.ts +85 -0
- package/dist/concurrency/high-level.d.ts.map +1 -0
- package/dist/concurrency/index.d.ts +19 -0
- package/dist/concurrency/index.d.ts.map +1 -0
- package/dist/concurrency/internal.d.ts +26 -0
- package/dist/concurrency/internal.d.ts.map +1 -0
- package/dist/concurrency/pipeline.d.ts +30 -0
- package/dist/concurrency/pipeline.d.ts.map +1 -0
- package/dist/concurrency/pool.d.ts +48 -0
- package/dist/concurrency/pool.d.ts.map +1 -0
- package/dist/concurrency/reactive.d.ts +107 -0
- package/dist/concurrency/reactive.d.ts.map +1 -0
- package/dist/concurrency/rpc.d.ts +46 -0
- package/dist/concurrency/rpc.d.ts.map +1 -0
- package/dist/concurrency/support.d.ts +23 -0
- package/dist/concurrency/support.d.ts.map +1 -0
- package/dist/concurrency/task.d.ts +31 -0
- package/dist/concurrency/task.d.ts.map +1 -0
- package/dist/concurrency/types.d.ts +343 -0
- package/dist/concurrency/types.d.ts.map +1 -0
- package/dist/concurrency-BU1wPEsZ.js +826 -0
- package/dist/concurrency-BU1wPEsZ.js.map +1 -0
- package/dist/concurrency.es.mjs +29 -0
- package/dist/{constraints-D5RHQLmP.js → constraints-Dlbx_m1b.js} +1 -1
- package/dist/{constraints-D5RHQLmP.js.map → constraints-Dlbx_m1b.js.map} +1 -1
- package/dist/core-CongXJuo.js +87 -0
- package/dist/core-CongXJuo.js.map +1 -0
- package/dist/{core-EMYSLzaT.js → core-tOP6QOrY.js} +2 -2
- package/dist/{core-EMYSLzaT.js.map → core-tOP6QOrY.js.map} +1 -1
- package/dist/core.es.mjs +1 -1
- package/dist/{custom-directives-Dr4C5lVV.js → custom-directives-5DlKqvd2.js} +1 -1
- package/dist/{custom-directives-Dr4C5lVV.js.map → custom-directives-5DlKqvd2.js.map} +1 -1
- package/dist/{devtools-BhB2iDPT.js → devtools-QosAqo0T.js} +2 -2
- package/dist/{devtools-BhB2iDPT.js.map → devtools-QosAqo0T.js.map} +1 -1
- package/dist/devtools.es.mjs +1 -1
- package/dist/{dnd-NwZBYh4l.js → dnd-d2OU4len.js} +1 -1
- package/dist/{dnd-NwZBYh4l.js.map → dnd-d2OU4len.js.map} +1 -1
- package/dist/dnd.es.mjs +1 -1
- package/dist/effect-Cc51IH91.js +87 -0
- package/dist/effect-Cc51IH91.js.map +1 -0
- package/dist/{env-CTdvLaH2.js → env-PvwYHnJq.js} +1 -1
- package/dist/{env-CTdvLaH2.js.map → env-PvwYHnJq.js.map} +1 -1
- package/dist/{forms-UhAeJEoO.js → forms-BLx4ZzT7.js} +41 -40
- package/dist/{forms-UhAeJEoO.js.map → forms-BLx4ZzT7.js.map} +1 -1
- package/dist/forms.es.mjs +1 -1
- package/dist/full.d.ts +6 -2
- package/dist/full.d.ts.map +1 -1
- package/dist/full.es.mjs +282 -214
- package/dist/full.iife.js +108 -20
- package/dist/full.iife.js.map +1 -1
- package/dist/full.umd.js +108 -20
- package/dist/full.umd.js.map +1 -1
- package/dist/{i18n-kuF6Ekj6.js → i18n--p7PM-9r.js} +3 -3
- package/dist/{i18n-kuF6Ekj6.js.map → i18n--p7PM-9r.js.map} +1 -1
- package/dist/i18n.es.mjs +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.mjs +320 -252
- package/dist/match-CrZRVC4z.js +174 -0
- package/dist/match-CrZRVC4z.js.map +1 -0
- package/dist/media/observers.d.ts.map +1 -1
- package/dist/{media-D4zLj9t-.js → media-gjbWNq50.js} +3 -3
- package/dist/{media-D4zLj9t-.js.map → media-gjbWNq50.js.map} +1 -1
- package/dist/media.es.mjs +1 -1
- package/dist/{motion-BJsAuULb.js → motion-BBMso9Ir.js} +1 -1
- package/dist/{motion-BJsAuULb.js.map → motion-BBMso9Ir.js.map} +1 -1
- package/dist/motion.es.mjs +1 -1
- package/dist/{mount-B-JvH6Y0.js → mount-0A9qtcRJ.js} +11 -10
- package/dist/{mount-B-JvH6Y0.js.map → mount-0A9qtcRJ.js.map} +1 -1
- package/dist/{platform-Dw2gE3zI.js → platform-BPHIXbw8.js} +17 -16
- package/dist/{platform-Dw2gE3zI.js.map → platform-BPHIXbw8.js.map} +1 -1
- package/dist/platform.es.mjs +1 -1
- package/dist/{plugin-C2WuC8SF.js → plugin-SZEirbwq.js} +2 -2
- package/dist/{plugin-C2WuC8SF.js.map → plugin-SZEirbwq.js.map} +1 -1
- package/dist/plugin.es.mjs +1 -1
- package/dist/reactive/watch.d.ts.map +1 -1
- package/dist/reactive/websocket.d.ts +6 -3
- package/dist/reactive/websocket.d.ts.map +1 -1
- package/dist/{reactive-BjpLkclt.js → reactive-BAd2hfl8.js} +436 -449
- package/dist/reactive-BAd2hfl8.js.map +1 -0
- package/dist/reactive.es.mjs +42 -40
- package/dist/readonly-C0ZwS1Tf.js +35 -0
- package/dist/readonly-C0ZwS1Tf.js.map +1 -0
- package/dist/{registry-B08iilIh.js → registry-jpUQHf4E.js} +1 -1
- package/dist/{registry-B08iilIh.js.map → registry-jpUQHf4E.js.map} +1 -1
- package/dist/router-C4weu0QL.js +333 -0
- package/dist/router-C4weu0QL.js.map +1 -0
- package/dist/router.es.mjs +1 -1
- package/dist/{sanitize-B1V4JswB.js → sanitize-DOMkRO9G.js} +12 -7
- package/dist/{sanitize-B1V4JswB.js.map → sanitize-DOMkRO9G.js.map} +1 -1
- package/dist/security.es.mjs +1 -1
- package/dist/server/create-server.d.ts +25 -0
- package/dist/server/create-server.d.ts.map +1 -0
- package/dist/server/index.d.ts +11 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/types.d.ts +396 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server-QdyKtCS1.js +349 -0
- package/dist/server-QdyKtCS1.js.map +1 -0
- package/dist/server.es.mjs +6 -0
- package/dist/ssr/adapters.d.ts +74 -0
- package/dist/ssr/adapters.d.ts.map +1 -0
- package/dist/ssr/async.d.ts +40 -0
- package/dist/ssr/async.d.ts.map +1 -0
- package/dist/ssr/config.d.ts +60 -0
- package/dist/ssr/config.d.ts.map +1 -0
- package/dist/ssr/context.d.ts +73 -0
- package/dist/ssr/context.d.ts.map +1 -0
- package/dist/ssr/defer-brand.d.ts +5 -0
- package/dist/ssr/defer-brand.d.ts.map +1 -0
- package/dist/ssr/escape.d.ts +17 -0
- package/dist/ssr/escape.d.ts.map +1 -0
- package/dist/ssr/expression.d.ts +44 -0
- package/dist/ssr/expression.d.ts.map +1 -0
- package/dist/ssr/hash.d.ts +39 -0
- package/dist/ssr/hash.d.ts.map +1 -0
- package/dist/ssr/head.d.ts +102 -0
- package/dist/ssr/head.d.ts.map +1 -0
- package/dist/ssr/html-parser.d.ts +58 -0
- package/dist/ssr/html-parser.d.ts.map +1 -0
- package/dist/ssr/index.d.ts +49 -43
- package/dist/ssr/index.d.ts.map +1 -1
- package/dist/ssr/mismatch.d.ts +60 -0
- package/dist/ssr/mismatch.d.ts.map +1 -0
- package/dist/ssr/render-async.d.ts +84 -0
- package/dist/ssr/render-async.d.ts.map +1 -0
- package/dist/ssr/render.d.ts.map +1 -1
- package/dist/ssr/renderer.d.ts +25 -0
- package/dist/ssr/renderer.d.ts.map +1 -0
- package/dist/ssr/resumability.d.ts +65 -0
- package/dist/ssr/resumability.d.ts.map +1 -0
- package/dist/ssr/router-bridge.d.ts +101 -0
- package/dist/ssr/router-bridge.d.ts.map +1 -0
- package/dist/ssr/runtime.d.ts +63 -0
- package/dist/ssr/runtime.d.ts.map +1 -0
- package/dist/ssr/serialize.d.ts.map +1 -1
- package/dist/ssr/store-snapshot.d.ts +87 -0
- package/dist/ssr/store-snapshot.d.ts.map +1 -0
- package/dist/ssr/strategies.d.ts +43 -0
- package/dist/ssr/strategies.d.ts.map +1 -0
- package/dist/ssr/suspense.d.ts +47 -0
- package/dist/ssr/suspense.d.ts.map +1 -0
- package/dist/ssr/types.d.ts +17 -0
- package/dist/ssr/types.d.ts.map +1 -1
- package/dist/ssr-Bt6BQA3J.js +2127 -0
- package/dist/ssr-Bt6BQA3J.js.map +1 -0
- package/dist/ssr.es.mjs +42 -7
- package/dist/{store-CY6sjTW3.js → store-DnXuu6Li.js} +6 -6
- package/dist/{store-CY6sjTW3.js.map → store-DnXuu6Li.js.map} +1 -1
- package/dist/store.es.mjs +2 -2
- package/dist/storybook.es.mjs +1 -1
- package/dist/{testing-UjAtu9aQ.js → testing-CeMUwrRD.js} +7 -7
- package/dist/{testing-UjAtu9aQ.js.map → testing-CeMUwrRD.js.map} +1 -1
- package/dist/testing.es.mjs +1 -1
- package/dist/{untrack-D0fnO5k2.js → untrack-bjWDNdyE.js} +11 -10
- package/dist/{untrack-D0fnO5k2.js.map → untrack-bjWDNdyE.js.map} +1 -1
- package/dist/view.es.mjs +12 -11
- package/package.json +24 -15
- package/src/concurrency/errors.ts +57 -0
- package/src/concurrency/high-level.ts +387 -0
- package/src/concurrency/index.ts +63 -0
- package/src/concurrency/internal.ts +100 -0
- package/src/concurrency/pipeline.ts +133 -0
- package/src/concurrency/pool.ts +450 -0
- package/src/concurrency/reactive.ts +339 -0
- package/src/concurrency/rpc.ts +380 -0
- package/src/concurrency/support.ts +44 -0
- package/src/concurrency/task.ts +318 -0
- package/src/concurrency/types.ts +431 -0
- package/src/full.ts +164 -0
- package/src/index.ts +6 -0
- package/src/media/observers.ts +5 -8
- package/src/reactive/watch.ts +10 -9
- package/src/reactive/websocket.ts +31 -8
- package/src/server/create-server.ts +754 -0
- package/src/server/index.ts +33 -0
- package/src/server/types.ts +490 -0
- package/src/ssr/adapters.ts +330 -0
- package/src/ssr/async.ts +125 -0
- package/src/ssr/config.ts +86 -0
- package/src/ssr/context.ts +245 -0
- package/src/ssr/defer-brand.ts +3 -0
- package/src/ssr/escape.ts +25 -0
- package/src/ssr/expression.ts +669 -0
- package/src/ssr/hash.ts +71 -0
- package/src/ssr/head.ts +240 -0
- package/src/ssr/html-parser.ts +387 -0
- package/src/ssr/index.ts +136 -43
- package/src/ssr/mismatch.ts +110 -0
- package/src/ssr/render-async.ts +286 -0
- package/src/ssr/render.ts +130 -59
- package/src/ssr/renderer.ts +453 -0
- package/src/ssr/resumability.ts +142 -0
- package/src/ssr/router-bridge.ts +177 -0
- package/src/ssr/runtime.ts +131 -0
- package/src/ssr/serialize.ts +1 -27
- package/src/ssr/store-snapshot.ts +209 -0
- package/src/ssr/strategies.ts +245 -0
- package/src/ssr/suspense.ts +504 -0
- package/src/ssr/types.ts +18 -0
- package/dist/core-DdtZHzsS.js +0 -168
- package/dist/core-DdtZHzsS.js.map +0 -1
- package/dist/reactive-BjpLkclt.js.map +0 -1
- package/dist/router-BieVwgci.js +0 -492
- package/dist/router-BieVwgci.js.map +0 -1
- package/dist/ssr-CrGSJySz.js +0 -248
- package/dist/ssr-CrGSJySz.js.map +0 -1
package/src/reactive/watch.ts
CHANGED
|
@@ -188,20 +188,21 @@ export const watchThrottle = <T>(
|
|
|
188
188
|
): CleanupFn => {
|
|
189
189
|
const { immediate = false, equals = Object.is } = options;
|
|
190
190
|
const normalizedIntervalMs = Number.isFinite(intervalMs) ? Math.max(0, intervalMs) : 0;
|
|
191
|
-
const notify = throttle(
|
|
192
|
-
(newValue
|
|
193
|
-
|
|
194
|
-
},
|
|
195
|
-
normalizedIntervalMs
|
|
196
|
-
);
|
|
191
|
+
const notify = throttle((newValue: T, oldValue: T | undefined) => {
|
|
192
|
+
callback(newValue, oldValue);
|
|
193
|
+
}, normalizedIntervalMs);
|
|
197
194
|
|
|
198
195
|
if (immediate) {
|
|
199
196
|
notify(source.peek(), undefined);
|
|
200
197
|
}
|
|
201
198
|
|
|
202
|
-
const cleanup = watch(
|
|
203
|
-
|
|
204
|
-
|
|
199
|
+
const cleanup = watch(
|
|
200
|
+
source,
|
|
201
|
+
(newValue, oldValue) => {
|
|
202
|
+
notify(newValue, oldValue);
|
|
203
|
+
},
|
|
204
|
+
{ equals }
|
|
205
|
+
);
|
|
205
206
|
|
|
206
207
|
return () => {
|
|
207
208
|
cleanup();
|
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
import { computed } from './computed';
|
|
9
9
|
import { Signal, signal } from './core';
|
|
10
10
|
|
|
11
|
+
/** @internal */
|
|
12
|
+
type WebSocketSendData = string | Blob | ArrayBufferLike | ArrayBufferView;
|
|
13
|
+
|
|
11
14
|
// ---------------------------------------------------------------------------
|
|
12
15
|
// Types
|
|
13
16
|
// ---------------------------------------------------------------------------
|
|
@@ -40,7 +43,7 @@ export type EventSourceReconnectConfig = Pick<
|
|
|
40
43
|
/** Configuration for keep-alive heartbeats. */
|
|
41
44
|
export interface WebSocketHeartbeatConfig {
|
|
42
45
|
/** Outgoing ping message (default: `'ping'`). */
|
|
43
|
-
message?:
|
|
46
|
+
message?: WebSocketSendData;
|
|
44
47
|
/** Interval in ms between heartbeat pings (default: 30 000). */
|
|
45
48
|
interval?: number;
|
|
46
49
|
/** Time in ms to wait for a pong before assuming the connection is dead (default: 10 000). */
|
|
@@ -52,7 +55,7 @@ export interface WebSocketHeartbeatConfig {
|
|
|
52
55
|
/** Serializer/deserializer for typed messaging. */
|
|
53
56
|
export interface WebSocketSerializer<TSend = unknown, TReceive = unknown> {
|
|
54
57
|
/** Serialize a value before sending over the wire. Default: `JSON.stringify`. */
|
|
55
|
-
serialize?: (data: TSend) =>
|
|
58
|
+
serialize?: (data: TSend) => WebSocketSendData;
|
|
56
59
|
/** Deserialize an incoming message. Default: `JSON.parse`. */
|
|
57
60
|
deserialize?: (event: MessageEvent) => TReceive;
|
|
58
61
|
}
|
|
@@ -115,7 +118,7 @@ export interface UseWebSocketReturn<TSend = unknown, TReceive = unknown> {
|
|
|
115
118
|
* Uses the same queuing behavior as {@link send}: data is queued when the
|
|
116
119
|
* socket is not `OPEN` and flushed once a connection is (re)established.
|
|
117
120
|
*/
|
|
118
|
-
sendRaw: (data:
|
|
121
|
+
sendRaw: (data: WebSocketSendData) => void;
|
|
119
122
|
/** Manually open / reconnect the WebSocket. */
|
|
120
123
|
open: () => void;
|
|
121
124
|
/** Gracefully close the connection. */
|
|
@@ -162,6 +165,26 @@ const computeDelay = (attempt: number, config: WebSocketReconnectConfig): number
|
|
|
162
165
|
return Math.min(base * factor ** attempt, max);
|
|
163
166
|
};
|
|
164
167
|
|
|
168
|
+
/** @internal */
|
|
169
|
+
const sendSocketData = (socket: WebSocket, data: WebSocketSendData): void => {
|
|
170
|
+
if (typeof data === 'string' || data instanceof Blob || data instanceof ArrayBuffer) {
|
|
171
|
+
socket.send(data);
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
if (ArrayBuffer.isView(data)) {
|
|
176
|
+
socket.send(data as BufferSource);
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
if (typeof SharedArrayBuffer !== 'undefined' && data instanceof SharedArrayBuffer) {
|
|
181
|
+
socket.send(data as unknown as BufferSource);
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
throw new TypeError('Unsupported WebSocket payload type.');
|
|
186
|
+
};
|
|
187
|
+
|
|
165
188
|
// ---------------------------------------------------------------------------
|
|
166
189
|
// useWebSocket
|
|
167
190
|
// ---------------------------------------------------------------------------
|
|
@@ -249,7 +272,7 @@ export const useWebSocket = <TSend = string, TReceive = string>(
|
|
|
249
272
|
let internalReconnectCount = 0;
|
|
250
273
|
let isAutoReconnecting = false;
|
|
251
274
|
let pingSentAt = 0;
|
|
252
|
-
const sendQueue:
|
|
275
|
+
const sendQueue: WebSocketSendData[] = [];
|
|
253
276
|
|
|
254
277
|
const reconnectConfig = resolveReconnect(options.autoReconnect);
|
|
255
278
|
const heartbeatConfig = resolveHeartbeat(options.heartbeat);
|
|
@@ -265,7 +288,7 @@ export const useWebSocket = <TSend = string, TReceive = string>(
|
|
|
265
288
|
heartbeatTimer = setInterval(() => {
|
|
266
289
|
if (ws?.readyState === WebSocket.OPEN) {
|
|
267
290
|
pingSentAt = Date.now();
|
|
268
|
-
ws
|
|
291
|
+
sendSocketData(ws, pingMsg);
|
|
269
292
|
if (pongTimer !== undefined) {
|
|
270
293
|
clearTimeout(pongTimer);
|
|
271
294
|
}
|
|
@@ -341,7 +364,7 @@ export const useWebSocket = <TSend = string, TReceive = string>(
|
|
|
341
364
|
if (ws.readyState !== WebSocket.OPEN) {
|
|
342
365
|
break;
|
|
343
366
|
}
|
|
344
|
-
ws
|
|
367
|
+
sendSocketData(ws, sendQueue[index]);
|
|
345
368
|
}
|
|
346
369
|
|
|
347
370
|
if (index > 0) {
|
|
@@ -460,10 +483,10 @@ export const useWebSocket = <TSend = string, TReceive = string>(
|
|
|
460
483
|
sendRaw(serialized);
|
|
461
484
|
};
|
|
462
485
|
|
|
463
|
-
const sendRaw = (raw:
|
|
486
|
+
const sendRaw = (raw: WebSocketSendData): void => {
|
|
464
487
|
if (disposed) return;
|
|
465
488
|
if (ws?.readyState === WebSocket.OPEN) {
|
|
466
|
-
ws
|
|
489
|
+
sendSocketData(ws, raw);
|
|
467
490
|
} else {
|
|
468
491
|
sendQueue.push(raw);
|
|
469
492
|
}
|