@hyperfixi/core 2.3.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/README.md +8 -11
  2. package/dist/api/dom-processor.d.ts +8 -4
  3. package/dist/api/hyperscript-api.d.ts +5 -1
  4. package/dist/ast-utils/index.js +25320 -94
  5. package/dist/ast-utils/index.mjs +25320 -94
  6. package/dist/ast-utils/interchange/types.d.ts +7 -1
  7. package/dist/behaviors/index.js +54 -100
  8. package/dist/behaviors/index.mjs +54 -100
  9. package/dist/bundle-generator/index.js +44 -6
  10. package/dist/bundle-generator/index.mjs +44 -6
  11. package/dist/bundle-generator/parser-templates.d.ts +1 -1
  12. package/dist/bundle-generator/template-capabilities.d.ts +1 -1
  13. package/dist/chunks/bridge-C4d3blZX.js +2 -0
  14. package/dist/chunks/browser-modular-BwIRlrTM.js +2 -0
  15. package/dist/chunks/feature-eventsource-BpZvPy_K.js +2 -0
  16. package/dist/chunks/{feature-sockets-ClOH7vk7.js → feature-sockets-CrYvjZ4j.js} +2 -2
  17. package/dist/chunks/feature-webworker-BSYguEIW.js +2 -0
  18. package/dist/chunks/index-Beno_SBy.js +2 -0
  19. package/dist/commands/advanced/async.d.ts +6 -2
  20. package/dist/commands/advanced/js.d.ts +1 -1
  21. package/dist/commands/animation/start-view-transition.d.ts +24 -0
  22. package/dist/commands/async/fetch.d.ts +6 -1
  23. package/dist/commands/control-flow/repeat.d.ts +2 -0
  24. package/dist/commands/data/clear.d.ts +23 -0
  25. package/dist/commands/data/set.d.ts +6 -0
  26. package/dist/commands/dom/close.d.ts +19 -0
  27. package/dist/commands/dom/empty.d.ts +19 -0
  28. package/dist/commands/dom/open.d.ts +21 -0
  29. package/dist/commands/dom/reset.d.ts +19 -0
  30. package/dist/commands/dom/select.d.ts +19 -0
  31. package/dist/commands/dom/swap.d.ts +7 -4
  32. package/dist/commands/events/trigger.d.ts +1 -1
  33. package/dist/commands/execution/blur.d.ts +19 -0
  34. package/dist/commands/execution/call.d.ts +1 -2
  35. package/dist/commands/execution/focus.d.ts +19 -0
  36. package/dist/commands/helpers/element-resolution.d.ts +2 -2
  37. package/dist/commands/helpers/event-waiting.d.ts +1 -1
  38. package/dist/commands/helpers/numeric-target-parser.d.ts +7 -0
  39. package/dist/commands/index.d.ts +34 -2
  40. package/dist/commands/index.js +19374 -4848
  41. package/dist/commands/index.mjs +19342 -4849
  42. package/dist/commands/navigation/go.d.ts +3 -0
  43. package/dist/commands/navigation/scroll-to.d.ts +26 -0
  44. package/dist/commands/utility/beep.d.ts +2 -2
  45. package/dist/commands/utility/breakpoint.d.ts +19 -0
  46. package/dist/commands/utility/pick.d.ts +11 -2
  47. package/dist/compatibility/browser-bundle-modular.d.ts +2 -2
  48. package/dist/compatibility/browser-bundle-multilingual.d.ts +1 -1
  49. package/dist/compatibility/browser-bundle-semantic-complete.d.ts +3 -3
  50. package/dist/compatibility/browser-bundle.d.ts +13 -6
  51. package/dist/compatibility/browser-modular.d.ts +1 -3
  52. package/dist/core/expression-evaluator.d.ts +4 -4
  53. package/dist/core/expression-registry.d.ts +8 -0
  54. package/dist/expressions/bundles/common-expressions.d.ts +2 -2
  55. package/dist/expressions/bundles/core-expressions.d.ts +2 -2
  56. package/dist/expressions/bundles/full-expressions.d.ts +2 -2
  57. package/dist/expressions/bundles/index.d.ts +3 -3
  58. package/dist/expressions/collection/index.d.ts +35 -0
  59. package/dist/expressions/conversion/impl/index.d.ts +1 -1
  60. package/dist/expressions/index.d.ts +4 -3
  61. package/dist/expressions/index.js +1117 -1590
  62. package/dist/expressions/index.mjs +1113 -1586
  63. package/dist/expressions/logical/index.d.ts +2 -0
  64. package/dist/expressions/mathematical/index.d.ts +11 -0
  65. package/dist/expressions/shared/index.d.ts +1 -1
  66. package/dist/expressions/shared/number-utils.d.ts +1 -0
  67. package/dist/htmx/htmx-attribute-processor.d.ts +37 -1
  68. package/dist/htmx/htmx-translator.d.ts +2 -0
  69. package/dist/htmx/i18n-hooks.d.ts +15 -0
  70. package/dist/htmx/i18n-orchestrator.d.ts +15 -0
  71. package/dist/htmx/lang-resolver.d.ts +3 -0
  72. package/dist/htmx/sse.d.ts +60 -0
  73. package/dist/htmx/ws.d.ts +59 -0
  74. package/dist/hyperfixi-browser-classic-i18n.js +2 -0
  75. package/dist/hyperfixi-browser-minimal.js +1 -0
  76. package/dist/hyperfixi-browser-standard.js +2 -0
  77. package/dist/hyperfixi-browser.js +2 -0
  78. package/dist/hyperfixi-classic-i18n.js +1 -1
  79. package/dist/hyperfixi-hx-v4.js +1 -0
  80. package/dist/hyperfixi-hx.js +1 -1
  81. package/dist/hyperfixi-hybrid-complete.js +1 -1
  82. package/dist/hyperfixi-hybrid-hx.js +1 -0
  83. package/dist/hyperfixi-minimal.js +1 -1
  84. package/dist/hyperfixi-multilingual.js +1 -1
  85. package/dist/hyperfixi-standard.js +1 -1
  86. package/dist/hyperfixi.js +1 -1
  87. package/dist/hyperfixi.mjs +1 -1
  88. package/dist/index.d.ts +2 -0
  89. package/dist/index.js +43613 -45063
  90. package/dist/index.min.js +1 -1
  91. package/dist/index.mjs +43610 -45064
  92. package/dist/lib/index.d.ts +2 -2
  93. package/dist/lib/morph-adapter.d.ts +0 -13
  94. package/dist/lib/swap-executor.d.ts +0 -10
  95. package/dist/lib/view-transitions.d.ts +1 -30
  96. package/dist/lokascript-browser-classic-i18n.js +1 -1
  97. package/dist/lokascript-browser-minimal.js +1 -1
  98. package/dist/lokascript-browser-standard.js +1 -1
  99. package/dist/lokascript-browser.js +1 -1
  100. package/dist/lokascript-hybrid-complete.js +1 -1
  101. package/dist/lokascript-hybrid-hx.js +1 -1
  102. package/dist/lokascript-multilingual.js +1 -1
  103. package/dist/lsp-metadata.d.ts +9 -4
  104. package/dist/lsp-metadata.js +187 -3
  105. package/dist/lsp-metadata.mjs +185 -4
  106. package/dist/metadata.d.ts +1 -1
  107. package/dist/metadata.js +3 -3
  108. package/dist/metadata.mjs +3 -3
  109. package/dist/multilingual/bridge.d.ts +1 -1
  110. package/dist/multilingual/index.js +79 -22
  111. package/dist/multilingual/index.mjs +79 -22
  112. package/dist/parser/command-parsers/animation-commands.d.ts +1 -0
  113. package/dist/parser/command-parsers/utility-commands.d.ts +1 -0
  114. package/dist/parser/extensions.d.ts +51 -0
  115. package/dist/parser/full-parser.js +1224 -899
  116. package/dist/parser/full-parser.mjs +1224 -899
  117. package/dist/parser/helpers/ast-helpers.d.ts +1 -0
  118. package/dist/parser/helpers/parsing-helpers.d.ts +4 -0
  119. package/dist/parser/hybrid/index.js +7 -0
  120. package/dist/parser/hybrid/index.mjs +7 -0
  121. package/dist/parser/hybrid/parser-core.js +7 -0
  122. package/dist/parser/hybrid/parser-core.mjs +7 -0
  123. package/dist/parser/hybrid/tokenizer.js +7 -0
  124. package/dist/parser/hybrid/tokenizer.mjs +7 -0
  125. package/dist/parser/hybrid-parser.js +7 -0
  126. package/dist/parser/hybrid-parser.mjs +7 -0
  127. package/dist/parser/parser-types.d.ts +8 -28
  128. package/dist/parser/parser.d.ts +3 -7
  129. package/dist/parser/pratt-parser.d.ts +0 -3
  130. package/dist/parser/runtime.d.ts +4 -0
  131. package/dist/parser/semantic-integration.d.ts +17 -0
  132. package/dist/parser/types.d.ts +7 -1
  133. package/dist/reference/index.js +91 -0
  134. package/dist/reference/index.mjs +91 -0
  135. package/dist/registry/index.js +12866 -5876
  136. package/dist/registry/index.mjs +12866 -5876
  137. package/dist/registry/universal-types.d.ts +2 -1
  138. package/dist/runtime/command-adapter.d.ts +23 -16
  139. package/dist/runtime/plugin.d.ts +14 -0
  140. package/dist/runtime/runtime-base.d.ts +32 -7
  141. package/dist/runtime/runtime-factory.d.ts +3 -3
  142. package/dist/runtime/runtime.d.ts +2 -2
  143. package/dist/test-setup.d.ts +1 -0
  144. package/dist/types/base-types.d.ts +3 -0
  145. package/dist/types/feature-types.d.ts +1 -1
  146. package/dist/types/index.d.ts +2 -2
  147. package/package.json +26 -20
  148. package/vocab/htmx/ar.js +60 -0
  149. package/vocab/htmx/bn.js +49 -0
  150. package/vocab/htmx/de.js +60 -0
  151. package/vocab/htmx/en.js +21 -0
  152. package/vocab/htmx/es.js +60 -0
  153. package/vocab/htmx/fr.js +59 -0
  154. package/vocab/htmx/he.js +40 -0
  155. package/vocab/htmx/hi.js +60 -0
  156. package/vocab/htmx/id.js +57 -0
  157. package/vocab/htmx/it.js +58 -0
  158. package/vocab/htmx/ja.js +60 -0
  159. package/vocab/htmx/ko.js +60 -0
  160. package/vocab/htmx/ms.js +35 -0
  161. package/vocab/htmx/pl.js +60 -0
  162. package/vocab/htmx/pt.js +60 -0
  163. package/vocab/htmx/qu.js +60 -0
  164. package/vocab/htmx/ru.js +60 -0
  165. package/vocab/htmx/sw.js +59 -0
  166. package/vocab/htmx/th.js +49 -0
  167. package/vocab/htmx/tl.js +33 -0
  168. package/vocab/htmx/tr.js +60 -0
  169. package/vocab/htmx/uk.js +60 -0
  170. package/vocab/htmx/vi.js +51 -0
  171. package/vocab/htmx/zh.js +60 -0
  172. package/dist/bundles/test-minimal.d.ts +0 -3
  173. package/dist/bundles/test-standard.d.ts +0 -3
  174. package/dist/chunks/bridge-BlRqsZT4.js +0 -2
  175. package/dist/chunks/browser-modular-AbV0Ql4i.js +0 -2
  176. package/dist/chunks/feature-eventsource-B5F2-H1r.js +0 -2
  177. package/dist/chunks/feature-webworker-3bAp0ac9.js +0 -2
  178. package/dist/chunks/index-BDYQHwCF.js +0 -2
  179. package/dist/compatibility/browser-bundle-minimal.d.ts +0 -8
  180. package/dist/compatibility/browser-bundle-standard.d.ts +0 -8
  181. package/dist/compatibility/hyperscript-tests/test-adapter.d.ts +0 -13
  182. package/dist/core/base-expression-evaluator.d.ts +0 -74
  183. package/dist/core/binary-expression-evaluator.d.ts +0 -7
  184. package/dist/core/call-expression-evaluator.d.ts +0 -7
  185. package/dist/core/configurable-expression-evaluator.d.ts +0 -5
  186. package/dist/core/lazy-expression-evaluator.d.ts +0 -22
  187. package/dist/core/parser.d.ts +0 -21
  188. package/dist/core/selector-evaluator.d.ts +0 -15
  189. package/dist/core/template-literal-evaluator.d.ts +0 -5
  190. package/dist/expressions/comparison/index.d.ts +0 -80
  191. package/dist/expressions/comparison/utils.d.ts +0 -2
  192. package/dist/expressions/conversion/impl/bridge.d.ts +0 -117
  193. package/dist/expressions/logical/impl/pattern-matching.d.ts +0 -58
  194. package/dist/expressions/positional/impl/bridge.d.ts +0 -95
  195. package/dist/expressions/property/index.d.ts +0 -55
  196. package/dist/expressions/references/impl/bridge.d.ts +0 -54
  197. package/dist/extensions/index.d.ts +0 -3
  198. package/dist/extensions/tailwind.d.ts +0 -22
  199. package/dist/mod.d.ts +0 -63
  200. package/dist/parser/expression-parser.d.ts +0 -6
  201. package/dist/runtime/runtime-experimental.d.ts +0 -18
  202. package/dist/scripts/code-generator.d.ts +0 -64
  203. package/dist/scripts/generate-missing-commands.d.ts +0 -4
@@ -26,6 +26,7 @@ export declare const containsExpression: ExpressionImplementation;
26
26
  export declare const doesNotContainExpression: ExpressionImplementation;
27
27
  export declare const startsWithExpression: ExpressionImplementation;
28
28
  export declare const endsWithExpression: ExpressionImplementation;
29
+ export declare const betweenExpression: ExpressionImplementation;
29
30
  export declare const matchesExpression: EnhancedExpressionImplementation;
30
31
  export declare const hasExpression: ExpressionImplementation;
31
32
  export declare const doesNotHaveExpression: ExpressionImplementation;
@@ -50,6 +51,7 @@ export declare const logicalExpressions: {
50
51
  readonly doesNotContain: ExpressionImplementation;
51
52
  readonly startsWith: ExpressionImplementation;
52
53
  readonly endsWith: ExpressionImplementation;
54
+ readonly between: ExpressionImplementation;
53
55
  readonly matches: EnhancedExpressionImplementation;
54
56
  readonly has: ExpressionImplementation;
55
57
  readonly doesNotHave: ExpressionImplementation;
@@ -53,17 +53,28 @@ export declare class ModuloExpression implements BaseTypedExpression<number> {
53
53
  evaluate(_context: TypedExpressionContext, input: unknown): Promise<TypedResult<number>>;
54
54
  validate(input: unknown): ValidationResult;
55
55
  }
56
+ export declare class PowerExpression implements BaseTypedExpression<number> {
57
+ readonly name = "power";
58
+ readonly category: ExpressionCategory;
59
+ readonly syntax = "left ** right";
60
+ readonly outputType: EvaluationType;
61
+ readonly metadata: ExpressionMetadata;
62
+ evaluate(_context: TypedExpressionContext, input: unknown): Promise<TypedResult<number>>;
63
+ validate(input: unknown): ValidationResult;
64
+ }
56
65
  export declare function createAdditionExpression(): AdditionExpression;
57
66
  export declare function createSubtractionExpression(): SubtractionExpression;
58
67
  export declare function createMultiplicationExpression(): MultiplicationExpression;
59
68
  export declare function createDivisionExpression(): DivisionExpression;
60
69
  export declare function createModuloExpression(): ModuloExpression;
70
+ export declare function createPowerExpression(): PowerExpression;
61
71
  export declare const mathematicalExpressions: {
62
72
  readonly addition: AdditionExpression;
63
73
  readonly subtraction: SubtractionExpression;
64
74
  readonly multiplication: MultiplicationExpression;
65
75
  readonly division: DivisionExpression;
66
76
  readonly modulo: ModuloExpression;
77
+ readonly power: PowerExpression;
67
78
  };
68
79
  export {};
69
80
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- export { toNumber, toNumberOrNull, ensureFinite, isNumeric, safeDivide, safeModulo, } from './number-utils';
1
+ export { toNumber, toNumberOrNull, ensureFinite, isNumeric, canBeNumeric, safeDivide, safeModulo, } from './number-utils';
2
2
  export { compareValues, coerceToComparable, areStrictlyEqual, areLooselyEqual, isGreaterThan, isLessThan, isGreaterThanOrEqual, isLessThanOrEqual, type ComparisonOperator, } from './comparison-utils';
3
3
  export { validResult, invalidResult, createError, toValidationResult, validateBinaryInput, validateUnaryInput, validateNotNull, validateNumber, validateString, validateBoolean, combineValidations, } from './validation-utils';
4
4
  export { isString, isNumber, isBoolean, isObject, isFunction, isArray, isElement, isArrayLike, inferType, } from '../type-helpers';
@@ -1,6 +1,7 @@
1
1
  export declare function toNumber(value: unknown, context: string): number;
2
2
  export declare function toNumberOrNull(value: unknown): number | null;
3
3
  export declare function ensureFinite(num: number, operation: string): number;
4
+ export declare function canBeNumeric(value: unknown): boolean;
4
5
  export declare function isNumeric(value: unknown): boolean;
5
6
  export declare function safeDivide(left: number, right: number, allowInfinity?: boolean): number;
6
7
  export declare function safeModulo(left: number, right: number): number;
@@ -1,4 +1,6 @@
1
1
  import { type HtmxConfig } from './htmx-translator.js';
2
+ import { SSEConnection, type SSEEventSourceCtor } from './sse.js';
3
+ import { WSConnection, type WSEventSourceCtor } from './ws.js';
2
4
  export interface HtmxConfiguringEventDetail {
3
5
  config: HtmxConfig;
4
6
  element: Element;
@@ -55,8 +57,12 @@ export interface HtmxProcessorOptions {
55
57
  root?: Element;
56
58
  requestDropping?: boolean;
57
59
  fixiEvents?: boolean;
60
+ eventSourceCtor?: SSEEventSourceCtor;
61
+ wsEventSourceCtor?: WSEventSourceCtor;
58
62
  }
59
63
  declare const HTMX_ALL_ATTRS: string[];
64
+ declare const SSE_ATTRS: string[];
65
+ declare const WS_ATTRS: string[];
60
66
  declare const FIXI_ATTRS: string[];
61
67
  export declare class HtmxAttributeProcessor {
62
68
  private options;
@@ -64,21 +70,51 @@ export declare class HtmxAttributeProcessor {
64
70
  private processedElements;
65
71
  private executeCallback;
66
72
  private pendingRequests;
73
+ private sseConnections;
74
+ private sseConnectionsSet;
75
+ private wsConnections;
76
+ private wsConnectionsSet;
77
+ private wsSendListeners;
78
+ private onHandlerListeners;
79
+ private onHandlerElements;
80
+ private localizedAttrSet;
81
+ private unsubscribeVocab;
82
+ private swapTemplateCache;
83
+ private getSwapTemplate;
84
+ private eventSourceCtor;
85
+ private wsEventSourceCtor;
67
86
  private dispatchLifecycleEvent;
68
87
  constructor(options?: HtmxProcessorOptions);
69
88
  init(executeCallback: (code: string, element: Element) => Promise<void>): void;
70
89
  destroy(): void;
90
+ attachSSE(element: Element): SSEConnection | null;
91
+ getSSEConnection(element: Element): SSEConnection | null;
92
+ detachSSE(element: Element): void;
93
+ private detachSSESubtree;
94
+ attachWS(element: Element): WSConnection | null;
95
+ private wireWSSendDescendants;
96
+ getWSConnection(element: Element): WSConnection | null;
97
+ detachWS(element: Element): void;
98
+ private detachWSSubtree;
99
+ private installOnHandlers;
100
+ private detachOnHandlers;
101
+ private detachOnHandlersSubtree;
71
102
  scanForHtmxElements(root?: Element): Element[];
103
+ private findHxOnElements;
72
104
  collectAttributes(element: Element): HtmxConfig;
73
105
  collectFxAttributes(element: Element): HtmxConfig;
74
106
  private isFxElement;
75
107
  processElement(element: Element): void;
76
108
  processSubtree(root: Element): void;
77
109
  private startObserver;
110
+ private computeAttributeFilter;
111
+ private refreshLocalizedAttrs;
78
112
  manualProcess(element: Element): string;
79
113
  hasPendingRequest(element: Element): boolean;
80
114
  abortPendingRequest(element: Element): boolean;
81
115
  }
82
- export { FIXI_ATTRS, HTMX_ALL_ATTRS as HTMX_ATTRS };
116
+ export { FIXI_ATTRS, HTMX_ALL_ATTRS as HTMX_ATTRS, SSE_ATTRS, WS_ATTRS };
83
117
  export { translateToHyperscript, type HtmxConfig } from './htmx-translator.js';
118
+ export { SSEConnection, type SSEEventSourceCtor, type SSEEventSourceLike } from './sse.js';
119
+ export { WSConnection, collectWSSendPayload, type WSEventSourceCtor, type WSEventSourceLike, type WSSwapEnvelope, } from './ws.js';
84
120
  //# sourceMappingURL=htmx-attribute-processor.d.ts.map
@@ -11,7 +11,9 @@ export interface HtmxConfig {
11
11
  pushUrl?: boolean | string;
12
12
  replaceUrl?: boolean | string;
13
13
  onHandlers?: Record<string, string>;
14
+ hxLive?: string;
14
15
  }
16
+ export declare function resolveHxTarget(target: string): string;
15
17
  export declare function translateToHyperscript(config: HtmxConfig, element: Element): string;
16
18
  export declare function hasHtmxAttributes(element: Element): boolean;
17
19
  export declare function hasFxAttributes(element: Element): boolean;
@@ -0,0 +1,15 @@
1
+ export type AttrNamespace = 'hx' | 'sse' | 'ws';
2
+ export interface I18nHooks {
3
+ nameOf(elt: Element, ns: AttrNamespace, key: string): string;
4
+ selectorFor(ns: AttrNamespace, key: string): string;
5
+ eventNameOf(elt: Element, value: string): string;
6
+ }
7
+ export declare function installHooks(hooks: I18nHooks): void;
8
+ export declare function getHooks(): I18nHooks;
9
+ export declare function resetHooks(): void;
10
+ export declare const KEYS: {
11
+ readonly hx: readonly ["get", "post", "put", "patch", "delete", "target", "swap", "trigger", "confirm", "boost", "vals", "headers", "push-url", "replace-url", "on", "live"];
12
+ readonly sse: readonly ["connect", "swap"];
13
+ readonly ws: readonly ["connect", "send"];
14
+ };
15
+ //# sourceMappingURL=i18n-hooks.d.ts.map
@@ -0,0 +1,15 @@
1
+ export interface HyperfixiVocab {
2
+ attrs?: Record<string, string>;
3
+ events?: Record<string, string>;
4
+ }
5
+ interface VocabPayload {
6
+ hyperfixi?: HyperfixiVocab;
7
+ }
8
+ export declare function onVocabUpdate(listener: () => void): () => void;
9
+ export declare function getAllLocalizedAttrs(): string[];
10
+ export declare function getAllHxOnPrefixes(): string[];
11
+ export declare function register(code: string, data: VocabPayload): void;
12
+ export declare function isLangRegistered(code: string): boolean;
13
+ export declare function resetOrchestrator(): void;
14
+ export {};
15
+ //# sourceMappingURL=i18n-orchestrator.d.ts.map
@@ -0,0 +1,3 @@
1
+ export declare function normLang(s: string | null | undefined): string;
2
+ export declare function langOf(elt: Element): string;
3
+ //# sourceMappingURL=lang-resolver.d.ts.map
@@ -0,0 +1,60 @@
1
+ export interface SSEConnectionOptions {
2
+ maxAttempts?: number;
3
+ baseBackoffMs?: number;
4
+ maxBackoffMs?: number;
5
+ debug?: boolean;
6
+ }
7
+ export type SSESwapHandler = (eventName: string, data: string) => void;
8
+ interface DispatchTarget {
9
+ source: Element;
10
+ }
11
+ export interface SSEEventSourceLike {
12
+ readonly readyState: number;
13
+ url: string;
14
+ close(): void;
15
+ addEventListener(type: string, listener: (this: SSEEventSourceLike, ev: {
16
+ data: string;
17
+ type: string;
18
+ }) => void): void;
19
+ removeEventListener(type: string, listener: (this: SSEEventSourceLike, ev: {
20
+ data: string;
21
+ type: string;
22
+ }) => void): void;
23
+ onerror: ((ev: Event) => void) | null;
24
+ onopen: ((ev: Event) => void) | null;
25
+ onmessage: ((ev: {
26
+ data: string;
27
+ type: string;
28
+ }) => void) | null;
29
+ }
30
+ export type SSEEventSourceCtor = new (url: string, init?: {
31
+ withCredentials?: boolean;
32
+ }) => SSEEventSourceLike;
33
+ export declare class SSEConnection {
34
+ readonly element: Element;
35
+ readonly url: string;
36
+ private readonly swapHandler;
37
+ private source;
38
+ private listeners;
39
+ private destroyed;
40
+ private reconnectAttempts;
41
+ private reconnectTimer;
42
+ private readonly maxAttempts;
43
+ private readonly baseBackoffMs;
44
+ private readonly maxBackoffMs;
45
+ private readonly debug;
46
+ private readonly EventSourceCtor;
47
+ constructor(element: Element, url: string, swapHandler: SSESwapHandler, options?: SSEConnectionOptions & {
48
+ EventSourceCtor?: SSEEventSourceCtor;
49
+ });
50
+ listenFor(eventName: string): void;
51
+ detach(): void;
52
+ get readyState(): number;
53
+ private open;
54
+ private closeSource;
55
+ private scheduleReconnect;
56
+ private dispatch;
57
+ }
58
+ export declare function isSSEDispatchTarget(value: unknown): value is DispatchTarget;
59
+ export {};
60
+ //# sourceMappingURL=sse.d.ts.map
@@ -0,0 +1,59 @@
1
+ export interface WSConnectionOptions {
2
+ maxAttempts?: number;
3
+ baseBackoffMs?: number;
4
+ maxBackoffMs?: number;
5
+ debug?: boolean;
6
+ protocols?: string | string[];
7
+ }
8
+ export interface WSSwapEnvelope {
9
+ target: string;
10
+ swap?: string;
11
+ data: string;
12
+ }
13
+ export type WSSwapHandler = (envelope: WSSwapEnvelope, rawData: string) => void;
14
+ export interface WSEventSourceLike {
15
+ readonly readyState: number;
16
+ url: string;
17
+ close(code?: number, reason?: string): void;
18
+ send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
19
+ onopen: ((ev: Event) => void) | null;
20
+ onmessage: ((ev: {
21
+ data: string;
22
+ }) => void) | null;
23
+ onerror: ((ev: Event) => void) | null;
24
+ onclose: ((ev: {
25
+ code: number;
26
+ reason: string;
27
+ wasClean: boolean;
28
+ }) => void) | null;
29
+ }
30
+ export type WSEventSourceCtor = new (url: string, protocols?: string | string[]) => WSEventSourceLike;
31
+ export declare class WSConnection {
32
+ readonly element: Element;
33
+ readonly url: string;
34
+ private readonly swapHandler;
35
+ private socket;
36
+ private destroyed;
37
+ private reconnectAttempts;
38
+ private reconnectTimer;
39
+ private outboundQueue;
40
+ private readonly maxAttempts;
41
+ private readonly baseBackoffMs;
42
+ private readonly maxBackoffMs;
43
+ private readonly debug;
44
+ private readonly protocols;
45
+ private readonly WSCtor;
46
+ constructor(element: Element, url: string, swapHandler: WSSwapHandler, options?: WSConnectionOptions & {
47
+ WSEventSourceCtor?: WSEventSourceCtor;
48
+ });
49
+ get readyState(): number;
50
+ get isDestroyed(): boolean;
51
+ send(payload: string | object): void;
52
+ detach(): void;
53
+ private open;
54
+ private closeSocket;
55
+ private scheduleReconnect;
56
+ private dispatch;
57
+ }
58
+ export declare function collectWSSendPayload(source: Element): Record<string, string>;
59
+ //# sourceMappingURL=ws.d.ts.map