@velarscript/web 0.18.0 → 0.19.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 CHANGED
@@ -76,8 +76,17 @@ contract crosses WebSocket and Worker boundaries. Worker source entries come
76
76
  from the project manifest, so application source does not construct bundle URLs.
77
77
  Requests and responses are checked with runtime `Type` values; pools, call
78
78
  queues, message queues, transfers, cancellation, timeout, and crash convergence
79
- are bounded by the shared Core contracts. `velar/realtime` keeps
80
- `eventStream`; the WebSocket client is `velar/websocket.connect`.
79
+ are bounded by the shared Core contracts.
80
+
81
+ Realtime has two layers. `velar/websocket.connect` is the sole raw socket
82
+ transport. `velar/realtime.realtimeClient` composes that transport with a typed
83
+ codec, explicit start/close lifecycle, bounded connect options, finite
84
+ reconnect policy, connection generations, and reconnect callbacks for
85
+ resynchronization. It never buffers or replays application commands. Projects
86
+ share their command/event contract in their own protocol package; they do not
87
+ need a framework-generated client tied to one server implementation.
88
+
89
+ `eventStream` remains the simpler server-sent-event client.
81
90
 
82
91
  The package also owns Look, the checked visual language integrated with VelarScript
83
92
  values and JSX. `look:` values, ordinary functions, imports/exports, named
@@ -1,6 +1,6 @@
1
1
  import { type CompilerExtension, type ModuleInterface } from "@velarscript/compiler";
2
2
  import { webModuleSource, webModuleSources, type VelarWebRuntimeConfig } from "./runtime.ts";
3
- export declare const VELAR_WEB_API_VERSION = "0.10";
3
+ export declare const VELAR_WEB_API_VERSION = "0.11";
4
4
  export { BROWSER_TEST_MODULE, BROWSER_TEST_SOURCE_SUFFIX } from "./browser-test.ts";
5
5
  export declare const webModuleInterfaces: ReadonlyMap<string, ModuleInterface>;
6
6
  export declare const velarCompilerExtension: CompilerExtension;
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,iBAAiB,EAAiB,KAAK,eAAe,EAAkB,MAAM,uBAAuB,CAAC;AAgB5J,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAK7F,eAAO,MAAM,qBAAqB,SAAS,CAAC;AAO5C,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAqapF,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAiLnE,CAAC;AAuEH,eAAO,MAAM,sBAAsB,EAAE,iBAqLnC,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,iBAAiB,EAAuC,KAAK,eAAe,EAAkB,MAAM,uBAAuB,CAAC;AAgBlL,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAK7F,eAAO,MAAM,qBAAqB,SAAS,CAAC;AAO5C,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAiiBpF,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAuNnE,CAAC;AAwEH,eAAO,MAAM,sBAAsB,EAAE,iBAsLnC,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/compiler.js CHANGED
@@ -12,7 +12,7 @@ import { webModuleSource, webModuleSources } from "./runtime.js";
12
12
  import { velarWebSemanticExtension } from "./semantic.js";
13
13
  import { LOOK_BUILDER_SIGNATURES, LOOK_BUILDERS, LOOK_HOOKS, LOOK_MEDIA_SUBJECTS, LOOK_PUBLIC_TYPE_NAMES, LOOK_TARGETS, LOOK_UNIT_TYPES } from "./look.js";
14
14
  import { isWebTypeAssignable, resolveWebTypeSyntax, WEB_OWNED_TYPE_NAMES, webComponentConstructor, webNodeType } from "./types.js";
15
- export const VELAR_WEB_API_VERSION = "0.10";
15
+ export const VELAR_WEB_API_VERSION = "0.11";
16
16
  const bytesType = { kind: "named", name: "Bytes", identity: "velar/binary#type:Bytes" };
17
17
  // D57 rule 138 gave the browser-test boundary teeth, so the two names it is
18
18
  // written in are part of the published contract: the framework host hands the
@@ -301,11 +301,10 @@ const fileOptionsType = object({ accept: optional(stringType), multiple: optiona
301
301
  // section 16). It is declared structurally rather than as a named type, and
302
302
  // the marker is what lets Core see it without ever detecting a shape.
303
303
  //
304
- // D90 R20 retired the second handle this comment used to cover: the WebSocket
305
- // client is `velar/websocket.connect`, which owns the whole close-code range,
306
- // types its failures, and carries binary messages. Two complete WebSocket
307
- // clients that disagreed about which close codes are legal is the duplication
308
- // rule 3 refuses.
304
+ // `velar/websocket.connect` remains the sole raw WebSocket transport. The
305
+ // higher-level `realtimeClient` below composes it with typed codecs, lifecycle,
306
+ // and reconnect policy; it does not duplicate framing or invent a second
307
+ // socket contract.
309
308
  const eventStreamHandlersType = object({
310
309
  open: optional(functionType([], unknownType)),
311
310
  message: optional(functionType([stringType, stringType], unknownType)),
@@ -370,8 +369,14 @@ const browserTestNetworkControllerType = object({
370
369
  clear: namedFunction([], [], promise(nullType)),
371
370
  });
372
371
  const webSocketConnectionIdentity = "velar/websocket#type:WebSocketConnection";
372
+ const webSocketCloseIdentity = "velar/websocket#type:WebSocketClose";
373
373
  const webSocketConnectionType = { kind: "named", name: "WebSocketConnection", identity: webSocketConnectionIdentity };
374
+ const webSocketCloseType = { kind: "named", name: "WebSocketClose", identity: webSocketCloseIdentity };
374
375
  const webSocketMessageType = { kind: "union", members: [stringType, bytesType] };
376
+ const webSocketCloseFields = new Map([
377
+ ["code", numberType],
378
+ ["reason", stringType],
379
+ ]);
375
380
  const webSocketConnectionFields = new Map([
376
381
  // D90 fr-4: one identity, one field roster. A Web connection is always an
377
382
  // outbound `connect()` result, which was never upgraded from an Origin and
@@ -382,6 +387,7 @@ const webSocketConnectionFields = new Map([
382
387
  ["state", namedFunction([], [], stringType)],
383
388
  ["send", namedFunction(["message"], [webSocketMessageType], promise(nullType))],
384
389
  ["next", namedFunction([], [], promise(optional(webSocketMessageType)))],
390
+ ["closeInfo", namedFunction([], [], promise(webSocketCloseType))],
385
391
  ["close", namedFunction(["code", "reason"], [numberType, stringType], promise(nullType), 0)],
386
392
  ]);
387
393
  const webSocketConnectOptions = object({
@@ -413,12 +419,137 @@ const webSocketErrorClass = (identity) => ({
413
419
  staticGetters: new Set(),
414
420
  staticMethods: new Map(),
415
421
  });
422
+ const realtimeWireType = webSocketMessageType;
423
+ const realtimeCodecIdentity = "velar/realtime#type:RealtimeCodec";
424
+ const realtimeClientIdentity = "velar/realtime#type:RealtimeClient";
425
+ const realtimeFailureIdentity = "velar/realtime#type:RealtimeFailure";
426
+ const realtimeOpenIdentity = "velar/realtime#type:RealtimeOpen";
427
+ const realtimeClientStateIdentity = "velar/realtime#enum:RealtimeClientState";
428
+ const realtimeFailureActionIdentity = "velar/realtime#enum:RealtimeClientFailureAction";
429
+ const realtimeUnavailableIdentity = "velar/realtime#class:RealtimeUnavailableError";
430
+ const realtimeClientStates = new Set(["idle", "connecting", "open", "reconnecting", "closed"]);
431
+ const realtimeFailureActions = new Set(["continue", "reconnect", "stop"]);
432
+ const realtimeClientStateType = { kind: "enum", name: "RealtimeClientState", identity: realtimeClientStateIdentity };
433
+ const realtimeFailureActionType = { kind: "enum", name: "RealtimeClientFailureAction", identity: realtimeFailureActionIdentity };
434
+ const realtimeFailureType = { kind: "named", name: "RealtimeFailure", identity: realtimeFailureIdentity };
435
+ const realtimeOpenType = { kind: "named", name: "RealtimeOpen", identity: realtimeOpenIdentity };
436
+ const realtimeCodecIncoming = { kind: "parameter", name: "Incoming", index: 0 };
437
+ const realtimeCodecOutgoing = { kind: "parameter", name: "Outgoing", index: 1 };
438
+ const realtimeClientOutgoing = { kind: "parameter", name: "T", index: 0 };
439
+ const realtimeInput = { kind: "parameter", name: "Incoming", index: 0 };
440
+ const realtimeOutput = { kind: "parameter", name: "Outgoing", index: 1 };
441
+ function realtimeGenericApplication(name, identity, arguments_) {
442
+ const labels = arguments_.map((argument, index) => argument.kind === "parameter" ? argument.name : `T${index + 1}`);
443
+ return { kind: "named", name: `${name}<${labels.join(", ")}>`, identity, application: { declaration: identity, name, arguments: arguments_ } };
444
+ }
445
+ const realtimeCodecOf = (incoming, outgoing) => realtimeGenericApplication("RealtimeCodec", realtimeCodecIdentity, [incoming, outgoing]);
446
+ const realtimeClientOf = (outgoing) => realtimeGenericApplication("RealtimeClient", realtimeClientIdentity, [outgoing]);
447
+ const realtimeCodecTemplate = {
448
+ identity: realtimeCodecIdentity,
449
+ name: "RealtimeCodec",
450
+ parameterNames: ["Incoming", "Outgoing"],
451
+ parameterBounds: [null, null],
452
+ fields: new Map([
453
+ ["decode", namedFunction(["message"], [realtimeWireType], realtimeCodecIncoming)],
454
+ ["encode", namedFunction(["message"], [realtimeCodecOutgoing], realtimeWireType)],
455
+ ]),
456
+ readonlyFields: new Set(["decode", "encode"]),
457
+ };
458
+ const realtimeClientTemplate = {
459
+ identity: realtimeClientIdentity,
460
+ name: "RealtimeClient",
461
+ parameterNames: ["T"],
462
+ parameterBounds: [null],
463
+ fields: new Map([
464
+ ["state", namedFunction([], [], realtimeClientStateType)],
465
+ ["generation", namedFunction([], [], numberType)],
466
+ ["start", namedFunction([], [], promise(nullType))],
467
+ ["whenOpen", namedFunction([], [], promise(numberType))],
468
+ ["whenClosed", namedFunction([], [], promise(nullType))],
469
+ ["send", namedFunction(["message"], [realtimeClientOutgoing], promise(nullType))],
470
+ ["close", namedFunction(["code", "reason"], [numberType, stringType], promise(nullType), 0)],
471
+ ]),
472
+ readonlyFields: new Set(["state", "generation", "start", "whenOpen", "whenClosed", "send", "close"]),
473
+ };
474
+ const realtimeGenericTypes = new Map([
475
+ ["RealtimeCodec", realtimeCodecTemplate],
476
+ ["RealtimeClient", realtimeClientTemplate],
477
+ ]);
478
+ const realtimeFailureFields = new Map([
479
+ ["phase", stringType],
480
+ ["error", errorType],
481
+ ["recoverable", boolType],
482
+ ]);
483
+ const realtimeOpenFields = new Map([
484
+ ["generation", numberType],
485
+ ["reconnected", boolType],
486
+ ]);
487
+ const realtimeClientOptions = object({
488
+ connectTimeout: optional(durationType),
489
+ maxMessageBytes: optional(numberType),
490
+ maxQueuedMessages: optional(numberType),
491
+ maxQueuedBytes: optional(numberType),
492
+ maxPendingSendBytes: optional(numberType),
493
+ reconnectDelays: optional({ kind: "list", element: durationType }),
494
+ reconnectJitter: optional(numberType),
495
+ retryInitial: optional(boolType),
496
+ });
497
+ const realtimeClientOutput = realtimeClientOf(realtimeOutput);
498
+ const realtimeUrlType = { kind: "union", members: [stringType, namedFunction([], [], stringType)] };
499
+ const realtimeReceive = namedFunction(["message", "client"], [realtimeInput, realtimeClientOutput], promise(nullType));
500
+ const realtimeOpened = namedFunction(["client", "open"], [realtimeClientOutput, realtimeOpenType], promise(nullType));
501
+ const realtimeFailed = namedFunction(["failure", "client"], [realtimeFailureType, realtimeClientOutput], promise(realtimeFailureActionType));
502
+ const realtimeClosed = namedFunction(["client", "close"], [realtimeClientOutput, webSocketCloseType], promise(nullType));
503
+ const realtimeStateChanged = namedFunction(["client", "state"], [realtimeClientOutput, realtimeClientStateType], promise(nullType));
504
+ const realtimeClientFunction = {
505
+ kind: "function",
506
+ typeParameterNames: ["Incoming", "Outgoing"],
507
+ parameterNames: ["url", "codec", "receive", "opened", "failed", "closed", "stateChanged", "options"],
508
+ parameters: [
509
+ realtimeUrlType,
510
+ realtimeCodecOf(realtimeInput, realtimeOutput),
511
+ realtimeReceive,
512
+ optional(realtimeOpened),
513
+ optional(realtimeFailed),
514
+ optional(realtimeClosed),
515
+ optional(realtimeStateChanged),
516
+ realtimeClientOptions,
517
+ ],
518
+ requiredParameters: 3,
519
+ result: realtimeClientOutput,
520
+ };
521
+ const realtimeUnavailableClass = {
522
+ identity: realtimeUnavailableIdentity,
523
+ parameters: [stringType],
524
+ parameterNames: ["message"],
525
+ requiredParameters: 0,
526
+ base: "Error",
527
+ abstract: false,
528
+ fields: new Map(),
529
+ getters: new Set(),
530
+ abstractGetters: new Set(),
531
+ methods: new Map(),
532
+ abstractMethods: new Set(),
533
+ staticFields: new Map(),
534
+ staticGetters: new Set(),
535
+ staticMethods: new Map(),
536
+ };
416
537
  export const webModuleInterfaces = new Map([
417
538
  ["velar/websocket", moduleInterface(new Map([
418
539
  ["WebSocketConnection", { kind: "typeObject", name: "WebSocketConnection", value: webSocketConnectionType }],
540
+ ["WebSocketClose", { kind: "typeObject", name: "WebSocketClose", value: webSocketCloseType }],
419
541
  ...[...webSocketErrorIdentities].map(([name, identity]) => [name, { kind: "classConstructor", name, identity }]),
420
542
  ["connect", namedFunction(["url", "options"], [stringType, webSocketConnectOptions], promise(webSocketConnectionType), 1)],
421
- ]), new Map([...webSocketErrorIdentities].map(([name, identity]) => [name, webSocketErrorClass(identity)])), new Map([["WebSocketConnection", webSocketConnectionFields]]), new Map([["WebSocketConnection", webSocketConnectionIdentity]]), new Map(), new Map([["WebSocketConnection", new Set(webSocketConnectionFields.keys())]]))],
543
+ ]), new Map([...webSocketErrorIdentities].map(([name, identity]) => [name, webSocketErrorClass(identity)])), new Map([
544
+ ["WebSocketConnection", webSocketConnectionFields],
545
+ ["WebSocketClose", webSocketCloseFields],
546
+ ]), new Map([
547
+ ["WebSocketConnection", webSocketConnectionIdentity],
548
+ ["WebSocketClose", webSocketCloseIdentity],
549
+ ]), new Map(), new Map([
550
+ ["WebSocketConnection", new Set(webSocketConnectionFields.keys())],
551
+ ["WebSocketClose", new Set(webSocketCloseFields.keys())],
552
+ ]))],
422
553
  ["velar/look", moduleInterface(lookModuleExports)],
423
554
  ["velar/app", moduleInterface(new Map([
424
555
  ["onError", namedFunction(["handler"], [functionType([appErrorType], unknownType)], cleanupType)],
@@ -575,8 +706,28 @@ export const webModuleInterfaces = new Map([
575
706
  ["download", namedFunction(["name", "data", "mime"], [stringType, stringType, stringType], nullType, 2)],
576
707
  ]))],
577
708
  ["velar/realtime", moduleInterface(new Map([
709
+ ["RealtimeClient", { kind: "typeObject", name: "RealtimeClient", value: realtimeClientOf(realtimeClientOutgoing) }],
710
+ ["RealtimeClientFailureAction", { kind: "enumObject", name: "RealtimeClientFailureAction", identity: realtimeFailureActionIdentity, members: realtimeFailureActions }],
711
+ ["RealtimeClientState", { kind: "enumObject", name: "RealtimeClientState", identity: realtimeClientStateIdentity, members: realtimeClientStates }],
712
+ ["RealtimeCodec", { kind: "typeObject", name: "RealtimeCodec", value: realtimeCodecOf(realtimeCodecIncoming, realtimeCodecOutgoing) }],
713
+ ["RealtimeFailure", { kind: "typeObject", name: "RealtimeFailure", value: realtimeFailureType }],
714
+ ["RealtimeOpen", { kind: "typeObject", name: "RealtimeOpen", value: realtimeOpenType }],
715
+ ["RealtimeUnavailableError", { kind: "classConstructor", name: "RealtimeUnavailableError", identity: realtimeUnavailableIdentity }],
578
716
  ["eventStream", namedFunction(["url", "handlers", "credentials"], [stringType, eventStreamHandlersType, boolType], eventStreamType, 1)],
579
- ]))],
717
+ ["realtimeClient", realtimeClientFunction],
718
+ ]), new Map([["RealtimeUnavailableError", realtimeUnavailableClass]]), new Map([
719
+ ["RealtimeFailure", realtimeFailureFields],
720
+ ["RealtimeOpen", realtimeOpenFields],
721
+ ]), new Map([
722
+ ["RealtimeFailure", realtimeFailureIdentity],
723
+ ["RealtimeOpen", realtimeOpenIdentity],
724
+ ]), new Map([
725
+ ["RealtimeClientFailureAction", { identity: realtimeFailureActionIdentity, members: realtimeFailureActions, wireValues: new Map([...realtimeFailureActions].map((member) => [member, member])) }],
726
+ ["RealtimeClientState", { identity: realtimeClientStateIdentity, members: realtimeClientStates, wireValues: new Map([...realtimeClientStates].map((member) => [member, member])) }],
727
+ ]), new Map([
728
+ ["RealtimeFailure", new Set(realtimeFailureFields.keys())],
729
+ ["RealtimeOpen", new Set(realtimeOpenFields.keys())],
730
+ ]), realtimeGenericTypes)],
580
731
  [BROWSER_TEST_MODULE, moduleInterface(new Map([
581
732
  ["browser", browserTestControllerType],
582
733
  ["localStorage", browserTestStorageControllerType],
@@ -584,8 +735,8 @@ export const webModuleInterfaces = new Map([
584
735
  ["network", browserTestNetworkControllerType],
585
736
  ]))],
586
737
  ]);
587
- function moduleInterface(exports, classes = new Map(), namedTypes = new Map(), namedTypeIdentities = new Map(), enums = new Map(), namedTypeReadonlyFields = new Map()) {
588
- return { exports, mutableExports: new Set(), reactiveExports: new Map(), reExports: new Map(), namedTypes, namedTypeReadonlyFields, namedTypeIdentities, typeAliases: new Map(), enums, classes, tests: [], extensionExports: new Map(), extensionData: new Map() };
738
+ function moduleInterface(exports, classes = new Map(), namedTypes = new Map(), namedTypeIdentities = new Map(), enums = new Map(), namedTypeReadonlyFields = new Map(), genericTypes = new Map()) {
739
+ return { exports, mutableExports: new Set(), reactiveExports: new Map(), reExports: new Map(), namedTypes, namedTypeReadonlyFields, namedTypeIdentities, genericTypes, typeAliases: new Map(), enums, classes, tests: [], extensionExports: new Map(), extensionData: new Map() };
589
740
  }
590
741
  const webLookHookDocumentation = Object.fromEntries([...LOOK_HOOKS].map((name) => [
591
742
  `@${name}`,
@@ -811,6 +962,7 @@ export const velarCompilerExtension = Object.freeze({
811
962
  ["velar/worker", ["velar/worker-manifest", "velar/task"]],
812
963
  ["velar/http", ["velar/binary"]],
813
964
  ["velar/storage", ["velar/binary"]],
965
+ ["velar/realtime", ["velar/websocket"]],
814
966
  ]),
815
967
  source(specifier, projectConfig) {
816
968
  return webModuleSource(specifier, (projectConfig ?? { base: "/" }));
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Browser-owned resilient realtime client layered over `velar/websocket`. */
2
+ export declare const VELAR_WEB_REALTIME_CLIENT_RUNTIME: string;
3
+ //# sourceMappingURL=realtime-client-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-client-runtime.d.ts","sourceRoot":"","sources":["../src/realtime-client-runtime.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,eAAO,MAAM,iCAAiC,QA2XjC,CAAC"}
@@ -0,0 +1,382 @@
1
+ /** Browser-owned resilient realtime client layered over `velar/websocket`. */
2
+ export const VELAR_WEB_REALTIME_CLIENT_RUNTIME = String.raw `
3
+ import { WebSocketConnection as __velarRealtimeConnection, connect as __velarRealtimeConnect } from "velar/websocket";
4
+
5
+ const __velarRealtimeClients = new WeakMap();
6
+ const __velarRealtimeApply = Reflect.apply;
7
+ const __velarRealtimeArrayIsArray = Array.isArray;
8
+ const __velarRealtimeArrayPush = Array.prototype.push;
9
+ const __velarRealtimeFreeze = Object.freeze;
10
+ const __velarRealtimeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
11
+ const __velarRealtimeGetOwnPropertyNames = Object.getOwnPropertyNames;
12
+ const __velarRealtimeArrayIncludes = Array.prototype.includes;
13
+ const __velarRealtimeNumberIsFinite = Number.isFinite;
14
+ const __velarRealtimeNumberIsSafeInteger = Number.isSafeInteger;
15
+ const __velarRealtimeMathMax = Math.max;
16
+ const __velarRealtimeMathRound = Math.round;
17
+ const __velarRealtimeRandom = Math.random;
18
+ const __velarRealtimeSetTimeout = globalThis.setTimeout;
19
+ const __velarRealtimeClearTimeout = globalThis.clearTimeout;
20
+ const __velarRealtimePromise = Promise;
21
+ const __velarRealtimePromiseReject = Promise.reject;
22
+ const __velarRealtimePromiseResolve = Promise.resolve;
23
+ const __velarRealtimeStringCharCodeAt = String.prototype.charCodeAt;
24
+ const __velarRealtimeWeakMapGet = WeakMap.prototype.get;
25
+ const __velarRealtimeWeakMapHas = WeakMap.prototype.has;
26
+ const __velarRealtimeWeakMapSet = WeakMap.prototype.set;
27
+ const __velarRealtimeOptionNames = __velarRealtimeFreeze(["connectTimeout", "maxMessageBytes", "maxQueuedMessages", "maxQueuedBytes", "maxPendingSendBytes", "reconnectDelays", "reconnectJitter", "retryInitial"]);
28
+ const __velarRealtimeDefaultDelays = __velarRealtimeFreeze([0, 1000, 2000, 5000, 10000, 30000]);
29
+
30
+ export class RealtimeUnavailableError extends Error {
31
+ constructor(message = "Realtime client is not connected") { super(message); this.name = "RealtimeUnavailableError"; }
32
+ }
33
+
34
+ function __velarRealtimeCall(operation, receiver, arguments_) { return __velarRealtimeApply(operation, receiver, arguments_); }
35
+ function __velarRealtimeRejected(failure) { return __velarRealtimeCall(__velarRealtimePromiseReject, __velarRealtimePromise, [failure]); }
36
+ function __velarRealtimeResolved(value) { return __velarRealtimeCall(__velarRealtimePromiseResolve, __velarRealtimePromise, [value]); }
37
+
38
+ function __velarRealtimeRecord(value, label, allowed = null) {
39
+ if (value === null || typeof value !== "object" || __velarRealtimeCall(__velarRealtimeArrayIsArray, Array, [value])) throw new TypeError(label + " must be a record");
40
+ const names = __velarRealtimeCall(__velarRealtimeGetOwnPropertyNames, Object, [value]);
41
+ for (let index = 0; index < names.length; index += 1) {
42
+ const name = names[index];
43
+ if (allowed !== null && !__velarRealtimeCall(__velarRealtimeArrayIncludes, allowed, [name])) throw new TypeError(label + " has unknown field '" + name + "'");
44
+ const descriptor = __velarRealtimeCall(__velarRealtimeGetOwnPropertyDescriptor, Object, [value, name]);
45
+ if (!descriptor?.enumerable || !("value" in descriptor)) throw new TypeError(label + " fields must be enumerable data values");
46
+ }
47
+ return value;
48
+ }
49
+
50
+ function __velarRealtimeOption(options, name) {
51
+ const descriptor = __velarRealtimeCall(__velarRealtimeGetOwnPropertyDescriptor, Object, [options, name]);
52
+ return descriptor && "value" in descriptor ? descriptor.value : undefined;
53
+ }
54
+
55
+ function __velarRealtimeInteger(value, fallback, minimum, maximum, label) {
56
+ if (value === undefined || value === null) return fallback;
57
+ if (!__velarRealtimeCall(__velarRealtimeNumberIsSafeInteger, Number, [value]) || value < minimum || value > maximum) throw new RangeError(label + " must be an integer from " + minimum + " through " + maximum);
58
+ return value;
59
+ }
60
+
61
+ function __velarRealtimeDuration(value, fallback, label) {
62
+ if (value === undefined || value === null) return fallback;
63
+ if (typeof value !== "string") throw new TypeError(label + " must be Duration");
64
+ const match = /^([+-]?(?:\d+(?:\.\d+)?|\.\d+))(ms|s)$/.exec(value);
65
+ if (!match) throw new TypeError(label + " must be Duration such as 5s");
66
+ const milliseconds = Number(match[1]) * (match[2] === "s" ? 1000 : 1);
67
+ if (!__velarRealtimeCall(__velarRealtimeNumberIsFinite, Number, [milliseconds]) || milliseconds < 0 || milliseconds > 2147483647) throw new RangeError(label + " is outside the supported range");
68
+ return milliseconds;
69
+ }
70
+
71
+ function __velarRealtimeDelays(value) {
72
+ if (value === undefined || value === null) return __velarRealtimeDefaultDelays;
73
+ if (!__velarRealtimeCall(__velarRealtimeArrayIsArray, Array, [value])) throw new TypeError("Realtime reconnectDelays must be List<Duration>");
74
+ if (value.length > 32) throw new RangeError("Realtime reconnectDelays cannot contain more than 32 entries");
75
+ const delays = [];
76
+ for (let index = 0; index < value.length; index += 1) {
77
+ const descriptor = __velarRealtimeCall(__velarRealtimeGetOwnPropertyDescriptor, Object, [value, index]);
78
+ if (!descriptor?.enumerable || !("value" in descriptor)) throw new TypeError("Realtime reconnectDelays must be a dense List<Duration>");
79
+ __velarRealtimeCall(__velarRealtimeArrayPush, delays, [__velarRealtimeDuration(descriptor.value, 0, "Realtime reconnect delay")]);
80
+ }
81
+ return __velarRealtimeFreeze(delays);
82
+ }
83
+
84
+ function __velarRealtimeOptions(value = {}) {
85
+ const options = __velarRealtimeRecord(value, "Realtime client options", __velarRealtimeOptionNames);
86
+ const jitter = __velarRealtimeOption(options, "reconnectJitter") ?? 0.2;
87
+ if (typeof jitter !== "number" || !__velarRealtimeCall(__velarRealtimeNumberIsFinite, Number, [jitter]) || jitter < 0 || jitter > 1) throw new RangeError("Realtime reconnectJitter must be from 0 through 1");
88
+ const retryInitial = __velarRealtimeOption(options, "retryInitial") ?? false;
89
+ if (typeof retryInitial !== "boolean") throw new TypeError("Realtime retryInitial must be bool");
90
+ return __velarRealtimeFreeze({
91
+ connectTimeout: __velarRealtimeDuration(__velarRealtimeOption(options, "connectTimeout"), 10000, "Realtime connectTimeout"),
92
+ maxMessageBytes: __velarRealtimeInteger(__velarRealtimeOption(options, "maxMessageBytes"), 16 * 1024 * 1024, 1, 64 * 1024 * 1024, "Realtime maxMessageBytes"),
93
+ maxQueuedMessages: __velarRealtimeInteger(__velarRealtimeOption(options, "maxQueuedMessages"), 256, 1, 10000, "Realtime maxQueuedMessages"),
94
+ maxQueuedBytes: __velarRealtimeInteger(__velarRealtimeOption(options, "maxQueuedBytes"), 16 * 1024 * 1024, 1, 64 * 1024 * 1024, "Realtime maxQueuedBytes"),
95
+ maxPendingSendBytes: __velarRealtimeInteger(__velarRealtimeOption(options, "maxPendingSendBytes"), 16 * 1024 * 1024, 1, 64 * 1024 * 1024, "Realtime maxPendingSendBytes"),
96
+ reconnectDelays: __velarRealtimeDelays(__velarRealtimeOption(options, "reconnectDelays")),
97
+ reconnectJitter: jitter,
98
+ retryInitial,
99
+ });
100
+ }
101
+
102
+ function __velarRealtimeCodec(value) {
103
+ const codec = __velarRealtimeRecord(value, "Realtime codec", ["decode", "encode"]);
104
+ const decode = __velarRealtimeOption(codec, "decode");
105
+ const encode = __velarRealtimeOption(codec, "encode");
106
+ if (typeof decode !== "function" || typeof encode !== "function") throw new TypeError("Realtime codec requires decode and encode functions");
107
+ return __velarRealtimeFreeze({decode, encode});
108
+ }
109
+
110
+ function __velarRealtimeCallback(value, label) {
111
+ if (value !== null && typeof value !== "function") throw new TypeError(label + " must be a function or null");
112
+ return value;
113
+ }
114
+
115
+ function __velarRealtimeFailure(phase, failure, recoverable) {
116
+ const error = failure instanceof Error ? failure : new Error("Realtime " + phase + " failed");
117
+ return __velarRealtimeFreeze({phase, error, recoverable});
118
+ }
119
+
120
+ function __velarRealtimeUtf8Size(value, maximum) {
121
+ let size = 0;
122
+ for (let index = 0; index < value.length; index += 1) {
123
+ const code = __velarRealtimeCall(__velarRealtimeStringCharCodeAt, value, [index]);
124
+ if (code < 0x80) size += 1;
125
+ else if (code < 0x800) size += 2;
126
+ else if (code >= 0xd800 && code <= 0xdbff && index + 1 < value.length) {
127
+ const following = __velarRealtimeCall(__velarRealtimeStringCharCodeAt, value, [index + 1]);
128
+ if (following >= 0xdc00 && following <= 0xdfff) { size += 4; index += 1; }
129
+ else size += 3;
130
+ } else size += 3;
131
+ if (size > maximum) return size;
132
+ }
133
+ return size;
134
+ }
135
+
136
+ function __velarRealtimeClientState(client) {
137
+ const state = __velarRealtimeCall(__velarRealtimeWeakMapGet, __velarRealtimeClients, [client]);
138
+ if (!state) throw new TypeError("RealtimeClient method requires a RealtimeClient receiver");
139
+ return state;
140
+ }
141
+
142
+ function __velarRealtimeTransition(client, next) {
143
+ const state = __velarRealtimeClientState(client);
144
+ if (state.status === next) return __velarRealtimeResolved(null);
145
+ state.status = next;
146
+ if (state.stateChanged === null) return __velarRealtimeResolved(null);
147
+ return __velarRealtimeResolved(state.stateChanged(client, next));
148
+ }
149
+
150
+ function __velarRealtimeWait(state, milliseconds) {
151
+ if (milliseconds <= 0) return __velarRealtimeResolved(null);
152
+ return new __velarRealtimePromise(resolve => {
153
+ const timer = __velarRealtimeSetTimeout(() => {
154
+ if (state.delayWake === null) return;
155
+ state.delayWake = null;
156
+ resolve(null);
157
+ }, milliseconds);
158
+ state.delayWake = () => {
159
+ __velarRealtimeClearTimeout(timer);
160
+ state.delayWake = null;
161
+ resolve(null);
162
+ };
163
+ });
164
+ }
165
+
166
+ function __velarRealtimeReconnectDelay(state, attempt) {
167
+ if (attempt >= state.options.reconnectDelays.length) return null;
168
+ const base = state.options.reconnectDelays[attempt];
169
+ if (base === 0 || state.options.reconnectJitter === 0) return base;
170
+ const spread = base * state.options.reconnectJitter;
171
+ const rounded = __velarRealtimeCall(__velarRealtimeMathRound, Math, [base - spread + __velarRealtimeCall(__velarRealtimeRandom, Math, []) * spread * 2]);
172
+ return __velarRealtimeCall(__velarRealtimeMathMax, Math, [0, rounded]);
173
+ }
174
+
175
+ async function __velarRealtimeFailureAction(state, client, failure) {
176
+ if (state.failed === null) return failure.recoverable ? "reconnect" : "stop";
177
+ const action = await state.failed(failure, client);
178
+ if (action !== "continue" && action !== "reconnect" && action !== "stop") throw new TypeError("Realtime client failure callback returned an invalid action");
179
+ if (!failure.recoverable && action === "continue") return "stop";
180
+ return action;
181
+ }
182
+
183
+ function __velarRealtimeResolveOpen(state) {
184
+ const waiters = state.openWaiters;
185
+ state.openWaiters = [];
186
+ for (let index = 0; index < waiters.length; index += 1) waiters[index].resolve(state.generation);
187
+ }
188
+
189
+ function __velarRealtimeRejectOpen(state, failure) {
190
+ const waiters = state.openWaiters;
191
+ state.openWaiters = [];
192
+ for (let index = 0; index < waiters.length; index += 1) waiters[index].reject(failure);
193
+ }
194
+
195
+ async function __velarRealtimeCloseFailedConnection(state, client) {
196
+ const connection = state.connection;
197
+ if (connection === null) return;
198
+ try { await connection.close(1011, "Realtime client callback failed"); } catch {}
199
+ let close = {code: 1006, reason: "Realtime client callback failed"};
200
+ try { close = await connection.closeInfo(); } catch {}
201
+ state.connection = null;
202
+ if (state.closed !== null) {
203
+ try { await state.closed(client, close); } catch {}
204
+ }
205
+ }
206
+
207
+ async function __velarRealtimeRun(client) {
208
+ const state = __velarRealtimeClientState(client);
209
+ let reconnectAttempt = 0;
210
+ let openedOnce = false;
211
+ try {
212
+ while (!state.stopping) {
213
+ await __velarRealtimeTransition(client, openedOnce ? "reconnecting" : "connecting");
214
+ let connection;
215
+ try {
216
+ const url = typeof state.url === "function" ? state.url() : state.url;
217
+ if (typeof url !== "string") throw new TypeError("Realtime URL provider must return text");
218
+ connection = await __velarRealtimeConnect(url, {
219
+ timeout: state.options.connectTimeout + "ms",
220
+ maxMessageBytes: state.options.maxMessageBytes,
221
+ maxQueuedMessages: state.options.maxQueuedMessages,
222
+ maxQueuedBytes: state.options.maxQueuedBytes,
223
+ maxPendingSendBytes: state.options.maxPendingSendBytes,
224
+ });
225
+ } catch (failure) {
226
+ const problem = __velarRealtimeFailure("connect", failure, true);
227
+ const action = await __velarRealtimeFailureAction(state, client, problem);
228
+ const canRetry = action === "reconnect" && (openedOnce || state.options.retryInitial);
229
+ const delay = canRetry ? __velarRealtimeReconnectDelay(state, reconnectAttempt) : null;
230
+ if (delay === null) { __velarRealtimeRejectOpen(state, problem.error); break; }
231
+ reconnectAttempt += 1;
232
+ await __velarRealtimeWait(state, delay);
233
+ continue;
234
+ }
235
+ state.connection = __velarRealtimeConnection.parse(connection);
236
+ if (state.stopping) { await connection.close(1000, "Realtime client stopped"); break; }
237
+ state.generation += 1;
238
+ reconnectAttempt = 0;
239
+ await __velarRealtimeTransition(client, "open");
240
+ try {
241
+ if (state.opened !== null) await state.opened(client, __velarRealtimeFreeze({generation: state.generation, reconnected: openedOnce}));
242
+ } catch (failure) {
243
+ const problem = __velarRealtimeFailure("opened", failure, false);
244
+ await __velarRealtimeFailureAction(state, client, problem);
245
+ __velarRealtimeRejectOpen(state, problem.error);
246
+ await connection.close(1011, "Realtime client setup failed");
247
+ break;
248
+ }
249
+ openedOnce = true;
250
+ __velarRealtimeResolveOpen(state);
251
+ let reconnect = false;
252
+ while (!state.stopping) {
253
+ let wire;
254
+ try { wire = await connection.next(); }
255
+ catch (failure) {
256
+ const action = await __velarRealtimeFailureAction(state, client, __velarRealtimeFailure("transport", failure, true));
257
+ reconnect = action === "reconnect";
258
+ break;
259
+ }
260
+ if (wire === null) break;
261
+ let message;
262
+ try { message = __velarRealtimeCall(state.codec.decode, undefined, [wire]); }
263
+ catch (failure) {
264
+ const action = await __velarRealtimeFailureAction(state, client, __velarRealtimeFailure("decode", failure, true));
265
+ if (action === "continue") continue;
266
+ reconnect = action === "reconnect";
267
+ await connection.close(1007, "Realtime message is invalid");
268
+ break;
269
+ }
270
+ try { await state.receive(message, client); }
271
+ catch (failure) {
272
+ const action = await __velarRealtimeFailureAction(state, client, __velarRealtimeFailure("receive", failure, true));
273
+ if (action === "continue") continue;
274
+ reconnect = action === "reconnect";
275
+ await connection.close(1011, "Realtime message handler failed");
276
+ break;
277
+ }
278
+ }
279
+ const close = await connection.closeInfo();
280
+ state.connection = null;
281
+ if (state.closed !== null) await state.closed(client, close);
282
+ if (state.stopping) break;
283
+ if (!reconnect) reconnect = close.code === 1001 || close.code === 1006 || close.code === 1011 || close.code === 1012 || close.code === 1013;
284
+ const delay = reconnect ? __velarRealtimeReconnectDelay(state, reconnectAttempt) : null;
285
+ if (delay === null) break;
286
+ reconnectAttempt += 1;
287
+ await __velarRealtimeWait(state, delay);
288
+ }
289
+ } catch (failure) {
290
+ const error = failure instanceof Error ? failure : new Error("Realtime client failed");
291
+ await __velarRealtimeCloseFailedConnection(state, client);
292
+ __velarRealtimeRejectOpen(state, error);
293
+ state.runnerFailure = error;
294
+ } finally {
295
+ state.connection = null;
296
+ state.stopping = true;
297
+ try { await __velarRealtimeTransition(client, "closed"); }
298
+ catch (failure) { if (state.runnerFailure === null) state.runnerFailure = failure instanceof Error ? failure : new Error("Realtime state callback failed"); }
299
+ __velarRealtimeRejectOpen(state, new RealtimeUnavailableError("Realtime client closed before opening"));
300
+ state.resolveDone(null);
301
+ }
302
+ }
303
+
304
+ const __velarRealtimeClientPrototype = __velarRealtimeFreeze({
305
+ state() { return __velarRealtimeClientState(this).status; },
306
+ generation() { return __velarRealtimeClientState(this).generation; },
307
+ start() {
308
+ const state = __velarRealtimeClientState(this);
309
+ if (state.status === "closed") return __velarRealtimeRejected(new RealtimeUnavailableError("Realtime client is closed"));
310
+ const opening = this.whenOpen();
311
+ if (state.runner === null) state.runner = __velarRealtimeRun(this);
312
+ return (async () => { await opening; return null; })();
313
+ },
314
+ whenOpen() {
315
+ const state = __velarRealtimeClientState(this);
316
+ if (state.status === "open") return __velarRealtimeResolved(state.generation);
317
+ if (state.status === "closed") return __velarRealtimeRejected(new RealtimeUnavailableError("Realtime client is closed"));
318
+ if (state.openWaiters.length >= 256) return __velarRealtimeRejected(new RealtimeUnavailableError("Realtime open waiter limit exceeded"));
319
+ return new __velarRealtimePromise((resolve, reject) => __velarRealtimeCall(__velarRealtimeArrayPush, state.openWaiters, [{resolve, reject}]));
320
+ },
321
+ async whenClosed() {
322
+ const state = __velarRealtimeClientState(this);
323
+ await state.done;
324
+ if (state.runnerFailure !== null) throw state.runnerFailure;
325
+ return null;
326
+ },
327
+ send(value) {
328
+ const state = __velarRealtimeClientState(this);
329
+ if (state.status !== "open" || state.connection === null) return __velarRealtimeRejected(new RealtimeUnavailableError());
330
+ let wire;
331
+ try { wire = __velarRealtimeCall(state.codec.encode, undefined, [value]); }
332
+ catch (failure) { return __velarRealtimeRejected(failure); }
333
+ return state.connection.send(wire);
334
+ },
335
+ async close(code = 1000, reason = "") {
336
+ const state = __velarRealtimeClientState(this);
337
+ if (state.status === "closed") return null;
338
+ if (!__velarRealtimeCall(__velarRealtimeNumberIsSafeInteger, Number, [code]) || code < 1000 || code > 4999) throw new RangeError("Realtime close code must be from 1000 through 4999");
339
+ if (typeof reason !== "string" || __velarRealtimeUtf8Size(reason, 123) > 123) throw new RangeError("Realtime close reason cannot exceed 123 UTF-8 bytes");
340
+ state.stopping = true;
341
+ if (state.delayWake !== null) state.delayWake();
342
+ if (state.connection !== null) await state.connection.close(code, reason);
343
+ if (state.runner !== null) await this.whenClosed();
344
+ else {
345
+ try { await __velarRealtimeTransition(this, "closed"); }
346
+ catch (failure) { state.runnerFailure = failure instanceof Error ? failure : new Error("Realtime state callback failed"); }
347
+ __velarRealtimeRejectOpen(state, new RealtimeUnavailableError("Realtime client closed before opening"));
348
+ state.resolveDone(null);
349
+ if (state.runnerFailure !== null) throw state.runnerFailure;
350
+ }
351
+ return null;
352
+ },
353
+ });
354
+
355
+ export function realtimeClient(url, codec, receive, opened = null, failed = null, closed = null, stateChanged = null, options = {}) {
356
+ if (typeof url !== "string" && typeof url !== "function") throw new TypeError("realtimeClient URL must be text or a zero-argument function");
357
+ codec = __velarRealtimeCodec(codec);
358
+ if (typeof receive !== "function") throw new TypeError("realtimeClient receive must be a function");
359
+ opened = __velarRealtimeCallback(opened, "realtimeClient opened");
360
+ failed = __velarRealtimeCallback(failed, "realtimeClient failed");
361
+ closed = __velarRealtimeCallback(closed, "realtimeClient closed");
362
+ stateChanged = __velarRealtimeCallback(stateChanged, "realtimeClient stateChanged");
363
+ let resolveDone;
364
+ const done = new __velarRealtimePromise(resolve => { resolveDone = resolve; });
365
+ const client = Object.create(__velarRealtimeClientPrototype);
366
+ __velarRealtimeCall(__velarRealtimeWeakMapSet, __velarRealtimeClients, [client, {url, codec, receive, opened, failed, closed, stateChanged, options: __velarRealtimeOptions(options), status: "idle", generation: 0, connection: null, runner: null, runnerFailure: null, stopping: false, delayWake: null, openWaiters: [], done, resolveDone}]);
367
+ return __velarRealtimeFreeze(client);
368
+ }
369
+
370
+ const __velarRealtimeClientType = __velarRealtimeFreeze({is(value) { return __velarRealtimeCall(__velarRealtimeWeakMapHas, __velarRealtimeClients, [value]); }, parse(value) { if (!this.is(value)) throw new TypeError("Value does not match RealtimeClient"); return value; }});
371
+ const __velarRealtimeCodecType = __velarRealtimeFreeze({is(value) { try { __velarRealtimeCodec(value); return true; } catch { return false; } }, parse(value) { return __velarRealtimeCodec(value); }});
372
+ const __velarRealtimeFailureType = __velarRealtimeFreeze({is(value) { return value !== null && typeof value === "object" && typeof value.phase === "string" && value.error instanceof Error && typeof value.recoverable === "boolean"; }, parse(value) { if (!this.is(value)) throw new TypeError("Value does not match RealtimeFailure"); return value; }});
373
+ const __velarRealtimeOpenType = __velarRealtimeFreeze({is(value) { return value !== null && typeof value === "object" && Number.isSafeInteger(value.generation) && typeof value.reconnected === "boolean"; }, parse(value) { if (!this.is(value)) throw new TypeError("Value does not match RealtimeOpen"); return value; }});
374
+
375
+ export const RealtimeClient = __velarRealtimeFreeze({...__velarRealtimeClientType, of() { return __velarRealtimeClientType; }});
376
+ export const RealtimeCodec = __velarRealtimeFreeze({...__velarRealtimeCodecType, of() { return __velarRealtimeCodecType; }});
377
+ export const RealtimeFailure = __velarRealtimeFailureType;
378
+ export const RealtimeOpen = __velarRealtimeOpenType;
379
+ export const RealtimeClientState = __velarRealtimeFreeze({idle: "idle", connecting: "connecting", open: "open", reconnecting: "reconnecting", closed: "closed", is(value) { return value === "idle" || value === "connecting" || value === "open" || value === "reconnecting" || value === "closed"; }, parse(value) { if (!this.is(value)) throw new TypeError("Value does not match RealtimeClientState"); return value; }, values() { return ["idle", "connecting", "open", "reconnecting", "closed"]; }});
380
+ export const RealtimeClientFailureAction = __velarRealtimeFreeze({continue: "continue", reconnect: "reconnect", stop: "stop", is(value) { return value === "continue" || value === "reconnect" || value === "stop"; }, parse(value) { if (!this.is(value)) throw new TypeError("Value does not match RealtimeClientFailureAction"); return value; }, values() { return ["continue", "reconnect", "stop"]; }});
381
+ `.trimStart();
382
+ //# sourceMappingURL=realtime-client-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-client-runtime.js","sourceRoot":"","sources":["../src/realtime-client-runtime.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iCAAiC,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2X1D,CAAC,SAAS,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAsgBA,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CA8/FvD,CAAC;AAEH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC3D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,qBAAqC,GAAG,MAAM,GAAG,IAAI,CAUzG"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAugBA,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CA+/FvD,CAAC;AAEH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC3D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,qBAAqC,GAAG,MAAM,GAAG,IAAI,CAUzG"}
package/dist/runtime.js CHANGED
@@ -5,6 +5,7 @@ import { VELAR_REACTIVE_BRIDGE_MODULE_SOURCE } from "./reactive-bridge-runtime.j
5
5
  import { WEB_DOM_HOST_RUNTIME, WEB_ERROR_HOST_RUNTIME, WEB_RUNTIME_FOUNDATION } from "./runtime-foundation.js";
6
6
  import { VELAR_WEB_WORKER_RUNTIME } from "./worker-runtime.js";
7
7
  import { VELAR_WEB_WEBSOCKET_RUNTIME } from "./websocket-runtime.js";
8
+ import { VELAR_WEB_REALTIME_CLIENT_RUNTIME } from "./realtime-client-runtime.js";
8
9
  const ownedCallbackRuntime = String.raw `
9
10
  ${WEB_ERROR_HOST_RUNTIME}
10
11
  const __velarOwnedReflectApply = Object.getOwnPropertyDescriptor(Reflect, "apply")?.value;
@@ -3518,6 +3519,7 @@ export function eventStream(url, handlers = {}, credentials = false) {
3518
3519
  close() { realtimeCall(realtimeEventSourceClose, value, [], "EventSource close"); return null; },
3519
3520
  });
3520
3521
  }
3522
+ ${VELAR_WEB_REALTIME_CLIENT_RUNTIME}
3521
3523
  `.trimStart()],
3522
3524
  ["velar/web-test", String.raw `
3523
3525
  const browserRuntimeKey = Symbol.for("velar.browser.test.v1");
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-runtime.d.ts","sourceRoot":"","sources":["../src/websocket-runtime.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,QA+B3B,CAAC"}
1
+ {"version":3,"file":"websocket-runtime.d.ts","sourceRoot":"","sources":["../src/websocket-runtime.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,QAmC3B,CAAC"}
@@ -14,20 +14,24 @@ export class WebSocketTimeoutError extends Error { constructor(message = "WebSoc
14
14
  function __velarWsFailSends(state) { if (state.drainTimer !== null) { clearTimeout(state.drainTimer); state.drainTimer = null; } const flushed = state.sentBytes - state.socket.bufferedAmount; for (const waiter of state.sendWaiters) { if (flushed >= waiter.target) waiter.resolve(null); else waiter.reject(new WebSocketClosedError()); } state.sendWaiters.clear(); }
15
15
  function __velarWsWatchDrain(state) { if (state.drainTimer !== null || state.sendWaiters.size === 0) return; state.drainTimer = setTimeout(() => __velarWsDrain(state), state.drainDelay); }
16
16
  function __velarWsDrain(state) { state.drainTimer = null; if (state.finished) { __velarWsFailSends(state); return; } const flushed = state.sentBytes - state.socket.bufferedAmount; let settled = false; for (const waiter of state.sendWaiters) if (flushed >= waiter.target) { state.sendWaiters.delete(waiter); waiter.resolve(null); settled = true; } state.drainDelay = settled ? 1 : Math.min(state.drainDelay * 2, 32); __velarWsWatchDrain(state); }
17
- function __velarWsFinish(state) { if (state.finished) return; state.finished = true; if (state.waiter) { state.waiter.resolve(null); state.waiter = null; } __velarWsFailSends(state); }
18
- function __velarWsAbort(state) { state.finished = true; state.queue.length = 0; state.queuedBytes = 0; if (state.waiter) { state.waiter.resolve(null); state.waiter = null; } __velarWsFailSends(state); }
19
- function __velarWsRejectReceive(state, socket, code, reason) { __velarWsAbort(state); socket.close(code, reason); }
20
- function __velarWsWrap(socket, options) { const value = Object.create(__velarWsConnectionPrototype); value.origin = null; const state = { socket, options, queue: [], queuedBytes: 0, waiter: null, finished: false, closePromise: null, sendWaiters: new Set(), sentBytes: 0, drainTimer: null, drainDelay: 1 }; __velarWebSocketConnections.set(value, state); socket.binaryType = "arraybuffer";
17
+ function __velarWsResolveClose(state, code = 1006, reason = "") { if (state.closeInfo !== null) return; state.closeInfo = Object.freeze({code, reason}); state.resolveCloseInfo(state.closeInfo); }
18
+ function __velarWsFinish(state, code = 1000, reason = "") { __velarWsResolveClose(state, code, reason); if (state.finished) return; state.finished = true; if (state.waiter) { state.waiter.resolve(null); state.waiter = null; } __velarWsFailSends(state); }
19
+ function __velarWsAbort(state, code = 1006, reason = "") { __velarWsResolveClose(state, code, reason); state.finished = true; state.queue.length = 0; state.queuedBytes = 0; if (state.waiter) { state.waiter.resolve(null); state.waiter = null; } __velarWsFailSends(state); }
20
+ function __velarWsRejectReceive(state, socket, code, reason) { __velarWsAbort(state, code, reason); socket.close(code, reason); }
21
+ function __velarWsWrap(socket, options) { let resolveCloseInfo; const closeInfoPromise = new Promise(resolve => { resolveCloseInfo = resolve; }); const value = Object.create(__velarWsConnectionPrototype); value.origin = null; const state = { socket, options, queue: [], queuedBytes: 0, waiter: null, finished: false, closePromise: null, closeInfo: null, closeInfoPromise, resolveCloseInfo, sendWaiters: new Set(), sentBytes: 0, drainTimer: null, drainDelay: 1 }; __velarWebSocketConnections.set(value, state); socket.binaryType = "arraybuffer";
21
22
  socket.addEventListener("message", event => { if (state.finished) return; let message; let size; if (typeof event.data === "string") { size = __velarWsUtf8(event.data); if (size > options.maxMessageBytes) { __velarWsRejectReceive(state, socket, 4009, "Message too large"); return; } message = event.data; } else if (event.data instanceof ArrayBuffer) { size = event.data.byteLength; if (size > options.maxMessageBytes) { __velarWsRejectReceive(state, socket, 4009, "Message too large"); return; } message = new Uint8Array(event.data); } else { __velarWsRejectReceive(state, socket, 4003, "Unsupported message type"); return; } if (state.waiter) { const waiter = state.waiter; state.waiter = null; waiter.resolve(message); } else if (state.queue.length >= options.maxQueuedMessages || state.queuedBytes + size > options.maxQueuedBytes) __velarWsRejectReceive(state, socket, 4009, "Unread message queue full"); else { state.queue.push(message); state.queuedBytes += size; } });
22
- socket.addEventListener("close", () => __velarWsFinish(state)); socket.addEventListener("error", () => { if (state.waiter) { state.waiter.reject(new WebSocketProtocolError()); state.waiter = null; } __velarWsAbort(state); }); return Object.freeze(value); }
23
+ socket.addEventListener("close", event => __velarWsFinish(state, event.code, event.reason)); socket.addEventListener("error", () => { if (state.waiter) { state.waiter.reject(new WebSocketProtocolError()); state.waiter = null; } __velarWsAbort(state); }); return Object.freeze(value); }
23
24
  const __velarWsConnectionPrototype = Object.freeze({
24
25
  state() { const state = __velarWebSocketConnections.get(this); if (!state) throw new TypeError("WebSocket state requires a connection"); return state.socket.readyState === __velarNativeWebSocket.CONNECTING ? "connecting" : state.socket.readyState === __velarNativeWebSocket.OPEN ? "open" : state.socket.readyState === __velarNativeWebSocket.CLOSING ? "closing" : "closed"; },
25
26
  send(message) { const state = __velarWebSocketConnections.get(this); if (!state) throw new TypeError("WebSocket.send requires a connection"); if (state.socket.readyState !== __velarNativeWebSocket.OPEN) return Promise.reject(new WebSocketClosedError()); const bytes = typeof message === "string" ? null : __velarWsBytes(message); if (bytes === null && typeof message !== "string") return Promise.reject(new TypeError("WebSocket.send requires text or Bytes")); const size = bytes?.byteLength ?? __velarWsUtf8(message); if (size > state.options.maxMessageBytes) return Promise.reject(new RangeError("WebSocket message exceeds maxMessageBytes")); if (state.socket.bufferedAmount + size > state.options.maxPendingSendBytes) return Promise.reject(new WebSocketBackpressureError()); state.socket.send(bytes ?? message); state.sentBytes += size; const target = state.sentBytes; return new Promise((resolve, reject) => { if (state.finished) { reject(new WebSocketClosedError()); return; } if (state.sentBytes - state.socket.bufferedAmount >= target) { resolve(null); return; } state.sendWaiters.add({ resolve, reject, target }); state.drainDelay = 1; __velarWsWatchDrain(state); }); },
26
27
  next() { const state = __velarWebSocketConnections.get(this); if (!state) throw new TypeError("WebSocket.next requires a connection"); if (state.queue.length) { const message = state.queue.shift(); state.queuedBytes -= typeof message === "string" ? __velarWsUtf8(message) : message.byteLength; return Promise.resolve(message); } if (state.finished) return Promise.resolve(null); if (state.waiter) return Promise.reject(new WebSocketBackpressureError("Only one WebSocket.next call may wait at a time")); return new Promise((resolve, reject) => { state.waiter = { resolve, reject }; }); },
28
+ closeInfo() { const state = __velarWebSocketConnections.get(this); if (!state) throw new TypeError("WebSocket.closeInfo requires a connection"); return state.closeInfoPromise; },
27
29
  close(code = 1000, reason = "") { const state = __velarWebSocketConnections.get(this); if (!state) throw new TypeError("WebSocket.close requires a connection"); if (!Number.isSafeInteger(code) || code < 1000 || code > 4999) return Promise.reject(new RangeError("WebSocket close code must be from 1000 through 4999")); if (typeof reason !== "string" || __velarWsUtf8(reason) > 123) return Promise.reject(new RangeError("WebSocket close reason cannot exceed 123 UTF-8 bytes")); if (state.finished) return Promise.resolve(null); if (!state.closePromise) { state.closePromise = new Promise(resolve => state.socket.addEventListener("close", () => resolve(null), { once: true })); state.socket.close(code, reason); } return state.closePromise; },
28
30
  });
31
+ const __velarWsCloseType = Object.freeze({ is(value) { return value !== null && typeof value === "object" && Number.isSafeInteger(value.code) && typeof value.reason === "string"; }, parse(value) { if (!this.is(value)) throw new TypeError("Value does not match WebSocketClose"); return value; } });
29
32
  const __velarWsConnectionType = Object.freeze({ is(value) { return __velarWebSocketConnections.has(value); }, parse(value) { if (!this.is(value)) throw new TypeError("Value does not match WebSocketConnection"); return value; } });
30
33
  export const WebSocketConnection = __velarWsConnectionType;
34
+ export const WebSocketClose = __velarWsCloseType;
31
35
  export function connect(url, options = {}) { if (typeof __velarNativeWebSocket !== "function") return Promise.reject(new Error("The browser WebSocket API is unavailable")); if (typeof url !== "string" || !/^wss?:\/\//u.test(url)) return Promise.reject(new TypeError("WebSocket URL must start with ws:// or wss://")); const limits = __velarWsOptions(options); const timeout = __velarWsDuration(options.timeout, 10000); return new Promise((resolve, reject) => { const socket = new __velarNativeWebSocket(url); const timer = setTimeout(() => { socket.close(); reject(new WebSocketTimeoutError("WebSocket connection timed out")); }, timeout); socket.addEventListener("open", () => { clearTimeout(timer); resolve(__velarWsWrap(socket, limits)); }, { once: true }); socket.addEventListener("error", () => { clearTimeout(timer); reject(new WebSocketProtocolError("WebSocket connection failed")); }, { once: true }); }); }
32
36
  `.trimStart();
33
37
  //# sourceMappingURL=websocket-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-runtime.js","sourceRoot":"","sources":["../src/websocket-runtime.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BpD,CAAC,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"websocket-runtime.js","sourceRoot":"","sources":["../src/websocket-runtime.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCpD,CAAC,SAAS,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@velarscript/web",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "description": "The official VelarScript Web framework contract and browser runtime.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -27,13 +27,13 @@
27
27
  "velar": {
28
28
  "extension": {
29
29
  "kind": "application",
30
- "apiVersion": "0.10",
30
+ "apiVersion": "0.11",
31
31
  "manifestKey": "web",
32
32
  "extends": {}
33
33
  }
34
34
  },
35
35
  "dependencies": {
36
- "@velarscript/compiler": "0.18.0"
36
+ "@velarscript/compiler": "0.19.0"
37
37
  },
38
38
  "exports": {
39
39
  ".": {