statewire 0.21.0 → 0.22.1

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 (134) hide show
  1. package/dist/client/changes.d.ts +3 -6
  2. package/dist/client/changes.d.ts.map +1 -1
  3. package/dist/client/changes.js +1 -2
  4. package/dist/client/connection.d.ts +80 -83
  5. package/dist/client/connection.d.ts.map +1 -1
  6. package/dist/client/connection.js +2 -3
  7. package/dist/client/connection.js.map +1 -1
  8. package/dist/client/core.d.ts +39 -41
  9. package/dist/client/core.d.ts.map +1 -1
  10. package/dist/client/core.js +2 -3
  11. package/dist/client/session.d.ts +93 -95
  12. package/dist/client/session.d.ts.map +1 -1
  13. package/dist/client/session.js +6 -7
  14. package/dist/client/session.js.map +1 -1
  15. package/dist/client/sessionStore.d.ts +11 -14
  16. package/dist/client/sessionStore.d.ts.map +1 -1
  17. package/dist/client/sessionStore.js +1 -2
  18. package/dist/client/storageError.d.ts +2 -5
  19. package/dist/client/storageError.d.ts.map +1 -1
  20. package/dist/client/storageError.js +1 -2
  21. package/dist/client/timing.d.ts +11 -14
  22. package/dist/client/timing.d.ts.map +1 -1
  23. package/dist/client/timing.js +1 -2
  24. package/dist/document.d.ts +17 -20
  25. package/dist/document.d.ts.map +1 -1
  26. package/dist/document.js +1 -2
  27. package/dist/host/adapter.d.ts +4 -7
  28. package/dist/host/adapter.d.ts.map +1 -1
  29. package/dist/host/adapter.js +1 -2
  30. package/dist/host/draft.d.ts +13 -16
  31. package/dist/host/draft.d.ts.map +1 -1
  32. package/dist/host/draft.js +1 -2
  33. package/dist/host/engine.d.ts +7 -10
  34. package/dist/host/engine.d.ts.map +1 -1
  35. package/dist/host/engine.js +1 -2
  36. package/dist/host/host.d.ts +42 -45
  37. package/dist/host/host.d.ts.map +1 -1
  38. package/dist/host/host.js +1 -2
  39. package/dist/host/http.d.ts +4 -7
  40. package/dist/host/http.d.ts.map +1 -1
  41. package/dist/host/http.js +2 -3
  42. package/dist/host/socket.d.ts +148 -145
  43. package/dist/host/socket.d.ts.map +1 -1
  44. package/dist/host/socket.js +30 -12
  45. package/dist/host/socket.js.map +1 -1
  46. package/dist/host/synced.d.ts +3 -6
  47. package/dist/host/synced.d.ts.map +1 -1
  48. package/dist/host/synced.js +1 -2
  49. package/dist/host/work.d.ts +2 -5
  50. package/dist/host/work.d.ts.map +1 -1
  51. package/dist/host/work.js +1 -2
  52. package/dist/host-internal.d.ts +101 -93
  53. package/dist/host-internal.d.ts.map +1 -1
  54. package/dist/host.d.ts +90 -91
  55. package/dist/host.d.ts.map +1 -1
  56. package/dist/index.d.ts +11 -8
  57. package/dist/index.d.ts.map +1 -0
  58. package/dist/index.js +1 -1
  59. package/dist/statewire.d.ts +265 -268
  60. package/dist/statewire.d.ts.map +1 -1
  61. package/dist/statewire.js +1 -2
  62. package/dist/storage.d.ts +23 -26
  63. package/dist/storage.d.ts.map +1 -1
  64. package/dist/storage.js +1 -2
  65. package/dist/transports/fake-sse.d.ts +7 -10
  66. package/dist/transports/fake-sse.d.ts.map +1 -1
  67. package/dist/transports/fake-sse.js +1 -2
  68. package/dist/transports/fixtures.d.ts +19 -25
  69. package/dist/transports/fixtures.d.ts.map +1 -1
  70. package/dist/transports/fixtures.js +1 -2
  71. package/dist/transports/remote.d.ts +8 -11
  72. package/dist/transports/remote.d.ts.map +1 -1
  73. package/dist/transports/remote.js +1 -2
  74. package/dist/transports/sse-parser.d.ts +1 -4
  75. package/dist/transports/sse-parser.d.ts.map +1 -1
  76. package/dist/transports/sse-parser.js +1 -2
  77. package/dist/transports/sse.d.ts +50 -53
  78. package/dist/transports/sse.d.ts.map +1 -1
  79. package/dist/transports/sse.js +2 -3
  80. package/dist/transports/testing.d.ts +31 -34
  81. package/dist/transports/testing.d.ts.map +1 -1
  82. package/dist/transports/testing.js +1 -2
  83. package/dist/transports/ws.d.ts +5 -7
  84. package/dist/transports/ws.d.ts.map +1 -1
  85. package/dist/transports/ws.js +3 -4
  86. package/dist/transports/ws.js.map +1 -1
  87. package/dist/types.d.ts +81 -78
  88. package/dist/types.d.ts.map +1 -1
  89. package/dist/types.js +1 -2
  90. package/dist/util/draftTraps.d.ts +2 -4
  91. package/dist/util/draftTraps.d.ts.map +1 -1
  92. package/dist/util/draftTraps.js +1 -2
  93. package/dist/util/macrotask.d.ts +1 -4
  94. package/dist/util/macrotask.d.ts.map +1 -1
  95. package/dist/util/macrotask.js +1 -2
  96. package/dist/util/methodProxy.d.ts +1 -4
  97. package/dist/util/methodProxy.d.ts.map +1 -1
  98. package/dist/util/methodProxy.js +1 -2
  99. package/dist/util/randomId.d.ts +1 -4
  100. package/dist/util/randomId.d.ts.map +1 -1
  101. package/dist/util/randomId.js +1 -2
  102. package/dist/util/recordMutations.d.ts +5 -7
  103. package/dist/util/recordMutations.d.ts.map +1 -1
  104. package/dist/util/recordMutations.js +1 -2
  105. package/dist/util/statePath.d.ts +9 -12
  106. package/dist/util/statePath.d.ts.map +1 -1
  107. package/dist/util/statePath.js +1 -2
  108. package/dist/wire/context.d.ts +7 -12
  109. package/dist/wire/context.d.ts.map +1 -1
  110. package/dist/wire/context.js +2 -3
  111. package/dist/wire/documents.d.ts +36 -39
  112. package/dist/wire/documents.d.ts.map +1 -1
  113. package/dist/wire/documents.js +2 -3
  114. package/dist/wire/documents.js.map +1 -1
  115. package/dist/wire/limits.d.ts +7 -10
  116. package/dist/wire/limits.d.ts.map +1 -1
  117. package/dist/wire/limits.js +1 -2
  118. package/dist/wire/meta.d.ts +9 -11
  119. package/dist/wire/meta.d.ts.map +1 -1
  120. package/dist/wire/meta.js +1 -2
  121. package/dist/wire/meta.js.map +1 -1
  122. package/dist/wire/ops.d.ts +9 -12
  123. package/dist/wire/ops.d.ts.map +1 -1
  124. package/dist/wire/ops.js +1 -2
  125. package/dist/wire/protocol.d.ts +53 -56
  126. package/dist/wire/protocol.d.ts.map +1 -1
  127. package/dist/wire/protocol.js +1 -2
  128. package/dist/wire/version.d.ts +1 -4
  129. package/dist/wire/version.d.ts.map +1 -1
  130. package/dist/wire/version.js +1 -2
  131. package/package.json +6 -6
  132. package/src/client/connection.ts +13 -15
  133. package/src/host/socket.ts +63 -6
  134. package/src/host-internal.ts +12 -0
@@ -1,25 +1,22 @@
1
- //#region src/document.d.ts
2
- declare namespace StatewireDocument {
3
- type Value = null | boolean | number | string | Value[] | {
4
- [key: string]: Value;
5
- };
6
- type MetaEntry = {
7
- path: (string | number)[];
8
- type: "date";
9
- };
10
- type Encoded = {
11
- value: Value;
12
- meta?: MetaEntry[];
13
- };
1
+ export declare namespace StatewireDocument {
2
+ type Value = null | boolean | number | string | Value[] | {
3
+ [key: string]: Value;
4
+ };
5
+ type MetaEntry = {
6
+ path: (string | number)[];
7
+ type: "date";
8
+ };
9
+ type Encoded = {
10
+ value: Value;
11
+ meta?: MetaEntry[];
12
+ };
14
13
  }
15
14
  /** Encode a document value as detached JSON data with date metadata. */
16
- declare const encodeDocument: (value: unknown) => StatewireDocument.Encoded;
15
+ export declare const encodeDocument: (value: unknown) => StatewireDocument.Encoded;
17
16
  /** Validate and decode a document into detached values with native dates. */
18
- declare const decodeDocument: (encoded: unknown) => unknown;
19
- declare const reviveDocumentValue: (value: unknown, meta: unknown, { rejectUnknown, canonical }?: {
20
- rejectUnknown?: boolean | undefined;
21
- canonical?: boolean | undefined;
17
+ export declare const decodeDocument: (encoded: unknown) => unknown;
18
+ export declare const reviveDocumentValue: (value: unknown, meta: unknown, { rejectUnknown, canonical }?: {
19
+ rejectUnknown?: boolean | undefined;
20
+ canonical?: boolean | undefined;
22
21
  }) => unknown;
23
- //#endregion
24
- export { StatewireDocument, decodeDocument, encodeDocument, reviveDocumentValue };
25
22
  //# sourceMappingURL=document.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","names":[],"sources":["../src/document.ts"],"mappings":";kBAEiB;OACH,2CAKR;KACG,cAAc;;OACT;IAAc;IAA2B;;OACzC;IAAY,OAAO;IAAO,OAAO;;;;cAoGlC,iBAAkB,mBAAiB,kBAAkB;;cAOrD,iBAAkB;cAiBlB,sBACX,gBACA,iBACA,eAAA"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AAEA,yBAAiB,iBAAiB,CAAC;IACjC,KAAY,KAAK,GACb,IAAI,GACJ,OAAO,GACP,MAAM,GACN,MAAM,GACN,KAAK,EAAE,GACP;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAC;IAC7B,KAAY,SAAS,GAAG;QAAE,IAAI,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,KAAY,OAAO,GAAG;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAA;KAAE,CAAC;CAC5D;AAkGD,wEAAwE;AACxE,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,KAAG,iBAAiB,CAAC,OAIjE,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,cAAc,GAAI,SAAS,OAAO,KAAG,OAejD,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,OAAO,EACd,MAAM,OAAO,EACb;;;CAAiD,KAChD,OA6CF,CAAC"}
package/dist/document.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { isUnsafeKey, walkStatePath } from "./util/statePath.js";
2
- //#region src/document.ts
2
+ // src/document.ts
3
3
  const invalid = (message) => {
4
4
  throw new Error(`statewire: protocol error: invalid document: ${message}`);
5
5
  };
@@ -82,7 +82,6 @@ const reviveDocumentValue = (value, meta, { rejectUnknown = false, canonical = f
82
82
  }
83
83
  return value;
84
84
  };
85
- //#endregion
86
85
  export { decodeDocument, encodeDocument, reviveDocumentValue };
87
86
 
88
87
  //# sourceMappingURL=document.js.map
@@ -1,8 +1,5 @@
1
- import { StatewireHostInternal } from "../host-internal.js";
2
- //#region src/host/adapter.d.ts
3
- declare const CLIENT_QUERY_PARAM = "client";
4
- declare const clientIdFromUrl: (url: string | null | undefined) => string;
5
- declare const textFrameOrClose: (socket: Pick<StatewireHostInternal.Socket, "send" | "close">, data: unknown) => string | null;
6
- //#endregion
7
- export { CLIENT_QUERY_PARAM, clientIdFromUrl, textFrameOrClose };
1
+ import type { StatewireHostInternal } from "../host-internal.js";
2
+ export declare const CLIENT_QUERY_PARAM = "client";
3
+ export declare const clientIdFromUrl: (url: string | null | undefined) => string;
4
+ export declare const textFrameOrClose: (socket: Pick<StatewireHostInternal.Socket, "send" | "close">, data: unknown) => string | null;
8
5
  //# sourceMappingURL=adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","names":[],"sources":["../../src/host/adapter.ts"],"mappings":";;cAGa;cAEA,kBAAmB;cAuBnB,mBACX,QAAQ,KAAK,sBAAsB,2BACnC"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/host/adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,4BAAyB;AAE9D,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,MAqBhE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,EAC5D,MAAM,OAAO,KACZ,MAAM,GAAG,IASX,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { CLIENT_ID_RE } from "./socket.js";
2
- //#region src/host/adapter.ts
2
+ // src/host/adapter.ts
3
3
  const CLIENT_QUERY_PARAM = "client";
4
4
  const clientIdFromUrl = (url) => {
5
5
  if (!url) throw new Error("statewire: cannot resolve client id: missing url");
@@ -23,7 +23,6 @@ const textFrameOrClose = (socket, data) => {
23
23
  socket.close(1008, "malformed frame");
24
24
  return null;
25
25
  };
26
- //#endregion
27
26
  export { CLIENT_QUERY_PARAM, clientIdFromUrl, textFrameOrClose };
28
27
 
29
28
  //# sourceMappingURL=adapter.js.map
@@ -1,25 +1,22 @@
1
- import { Statewire } from "../types.js";
2
- import { StatewirePath } from "../wire/ops.js";
3
- //#region src/host/draft.d.ts
4
- type DraftHost = {
5
- snapshot: () => unknown;
6
- record: (op: Statewire.Op, changedPath: StatewirePath) => void;
1
+ import type { Statewire } from "../types.js";
2
+ import type { StatewirePath } from "../wire/ops.js";
3
+ export type DraftHost = {
4
+ snapshot: () => unknown;
5
+ record: (op: Statewire.Op, changedPath: StatewirePath) => void;
7
6
  };
8
- type StateDraft<T> = {
9
- proxy: T;
10
- /** Seal pending writes and return the committed state. */
11
- flush: () => unknown;
12
- /** Committed state was replaced externally; cached nodes re-resolve. */
13
- invalidate: () => void;
7
+ export type StateDraft<T> = {
8
+ proxy: T;
9
+ /** Seal pending writes and return the committed state. */
10
+ flush: () => unknown;
11
+ /** Committed state was replaced externally; cached nodes re-resolve. */
12
+ invalidate: () => void;
14
13
  };
15
- declare const createStateDraft: <T>(host: DraftHost) => StateDraft<T>;
14
+ export declare const createStateDraft: <T>(host: DraftHost) => StateDraft<T>;
16
15
  /**
17
16
  * Append `suffix` to the string at `parent[key]` on a statewire state draft,
18
17
  * recording a single end-offset text-insert `add` op instead of a full
19
18
  * `replace` — use it on token-streaming hot paths. Throws when the current
20
19
  * value is not a string.
21
20
  */
22
- declare const append: <TKey extends string | number>(parent: { readonly [P in TKey]: string; }, key: TKey, suffix: string) => void;
23
- //#endregion
24
- export { DraftHost, StateDraft, append, createStateDraft };
21
+ export declare const append: <TKey extends string | number>(parent: { readonly [P in TKey]: string; }, key: TKey, suffix: string) => void;
25
22
  //# sourceMappingURL=draft.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"draft.d.ts","names":[],"sources":["../../src/host/draft.ts"],"mappings":";;;KAMY;EACV;EACA,SAAS,IAAI,UAAU,IAAI,aAAa;;KAG9B,WAAW;EACrB,OAAO;;EAEP;;EAEA;;cAuCW,mBAAoB,GAAG,MAAM,cAAY,WAAW;;;;;;;cA0QpD,SAAU,8BACrB,oBAAoB,KAAK,kBACzB,KAAK,MACL"}
1
+ {"version":3,"file":"draft.d.ts","sourceRoot":"","sources":["../../src/host/draft.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAiB;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,uBAAoB;AAKjD,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,MAAM,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,aAAa,KAAK,IAAI,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAC1B,KAAK,EAAE,CAAC,CAAC;IACT,0DAA0D;IAC1D,KAAK,EAAE,MAAM,OAAO,CAAC;IACrB,wEAAwE;IACxE,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAsCF,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAAE,MAAM,SAAS,KAAG,UAAU,CAAC,CAAC,CAkQjE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GAAI,IAAI,SAAS,MAAM,GAAG,MAAM,EACjD,QAAQ,EAAE,QAAQ,EAAE,CAAC,IAAI,IAAI,GAAG,MAAM,GAAE,EACxC,KAAK,IAAI,EACT,QAAQ,MAAM,KACb,IASF,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { isUnsafeKey } from "../util/statePath.js";
2
2
  import { sharedDraftTraps } from "../util/draftTraps.js";
3
3
  import { sanitizeValue } from "../wire/ops.js";
4
- //#region src/host/draft.ts
4
+ // src/host/draft.ts
5
5
  const NODE = Symbol("statewire.draftNode");
6
6
  const isIndex = (key) => /^(0|[1-9]\d*)$/.test(key);
7
7
  const invalid = (path, message) => /* @__PURE__ */ new Error(`statewire: ${message} at path: ${path.join(".")}`);
@@ -213,7 +213,6 @@ const append = (parent, key, suffix) => {
213
213
  if (typeof suffix !== "string") throw new Error("statewire: append suffix must be a string");
214
214
  handle.append(key, suffix);
215
215
  };
216
- //#endregion
217
216
  export { append, createStateDraft };
218
217
 
219
218
  //# sourceMappingURL=draft.js.map
@@ -1,16 +1,13 @@
1
- //#region src/host/engine.d.ts
2
1
  /**
3
2
  * Definitive handler rejection: the command settles rejected and
4
3
  * message/payload travel to the client's rejected promise.
5
4
  */
6
- declare class StatewireReject extends Error {
7
- readonly code?: string;
8
- readonly payload?: unknown;
9
- constructor(message: string, options?: {
10
- code?: string;
11
- payload?: unknown;
12
- });
5
+ export declare class StatewireReject extends Error {
6
+ readonly code?: string;
7
+ readonly payload?: unknown;
8
+ constructor(message: string, options?: {
9
+ code?: string;
10
+ payload?: unknown;
11
+ });
13
12
  }
14
- //#endregion
15
- export { StatewireReject };
16
13
  //# sourceMappingURL=engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","names":[],"sources":["../../src/host/engine.ts"],"mappings":";;;;;cAIa,wBAAwB;WAC1B;WACA;EAEG,YAAA,iBAAiB;IAAY;IAAe"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/host/engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;gBAEf,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE;CAM5E"}
@@ -1,4 +1,4 @@
1
- //#region src/host/engine.ts
1
+ // src/host/engine.ts
2
2
  /**
3
3
  * Definitive handler rejection: the command settles rejected and
4
4
  * message/payload travel to the client's rejected promise.
@@ -13,7 +13,6 @@ var StatewireReject = class extends Error {
13
13
  if (options?.payload !== void 0) this.payload = options.payload;
14
14
  }
15
15
  };
16
- //#endregion
17
16
  export { StatewireReject };
18
17
 
19
18
  //# sourceMappingURL=engine.js.map
@@ -1,53 +1,50 @@
1
- import { StatewireHost } from "../host.js";
2
- import { Statewire } from "../types.js";
3
- //#region src/host/host.d.ts
4
- declare const documentIdentity: (protocol: string, key?: readonly string[]) => string;
1
+ import type { Statewire } from "../types.js";
2
+ import type { StatewireHost } from "../host.js";
3
+ export declare const documentIdentity: (protocol: string, key?: readonly string[]) => string;
5
4
  /** Host-side accessor for a `useStatewireState` state object's source (`snapshot()` reads the committed state). */
6
- declare const getStateHost: (state: object) => StatewireHost.StateHost | undefined;
7
- declare const useStatewireState: <TState>(init: () => TState) => readonly [TState, StatewireHost.StateCtl<TState>];
8
- type CommandsInvocation = {
9
- readonly protocol?: string;
10
- readonly method: string;
11
- readonly params: readonly unknown[];
12
- readonly ts: number;
13
- readonly seq: number;
14
- readonly clientId?: string;
5
+ export declare const getStateHost: (state: object) => StatewireHost.StateHost | undefined;
6
+ export declare const useStatewireState: <TState>(init: () => TState) => readonly [TState, StatewireHost.StateCtl<TState>];
7
+ export type CommandsInvocation = {
8
+ readonly protocol?: string;
9
+ readonly method: string;
10
+ readonly params: readonly unknown[];
11
+ readonly ts: number;
12
+ readonly seq: number;
13
+ readonly clientId?: string;
15
14
  };
16
- type CommandsOutcome = {
17
- type: "accepted";
18
- payload?: unknown;
15
+ export type CommandsOutcome = {
16
+ type: "accepted";
17
+ payload?: unknown;
19
18
  } | {
20
- type: "rejected";
21
- error: unknown;
19
+ type: "rejected";
20
+ error: unknown;
22
21
  };
23
- type CommandsListener = {
24
- onStart: (inv: CommandsInvocation) => void;
25
- onPosted?: (inv: CommandsInvocation) => void;
26
- onApplied: (inv: CommandsInvocation) => void;
27
- /** Canonical state now covers the invocation's effect — drop any overlay. */
28
- onCovered?: (inv: CommandsInvocation) => void;
29
- onSettle: (inv: CommandsInvocation, outcome: CommandsOutcome) => void;
22
+ export type CommandsListener = {
23
+ onStart: (inv: CommandsInvocation) => void;
24
+ onPosted?: (inv: CommandsInvocation) => void;
25
+ onApplied: (inv: CommandsInvocation) => void;
26
+ /** Canonical state now covers the invocation's effect — drop any overlay. */
27
+ onCovered?: (inv: CommandsInvocation) => void;
28
+ onSettle: (inv: CommandsInvocation, outcome: CommandsOutcome) => void;
30
29
  };
31
- type CommandsSubmission = {
32
- method: string;
33
- params: readonly unknown[];
34
- clientId?: string;
35
- caller?: StatewireHost.Caller;
36
- context?: Statewire.Context;
37
- attach?: StatewireHost.Attach;
38
- onApplied?: () => void;
39
- onSettle?: (outcome: CommandsOutcome) => void;
30
+ export type CommandsSubmission = {
31
+ method: string;
32
+ params: readonly unknown[];
33
+ clientId?: string;
34
+ caller?: StatewireHost.Caller;
35
+ context?: Statewire.Context;
36
+ attach?: StatewireHost.Attach;
37
+ onApplied?: () => void;
38
+ onSettle?: (outcome: CommandsOutcome) => void;
40
39
  };
41
- type CommandsHost = {
42
- setListener: (listener: CommandsListener | null) => void;
43
- submit?: (call: CommandsSubmission) => Promise<unknown>;
44
- /** Registered command names, read live. */
45
- methods?: () => string[];
46
- abort?: () => void;
40
+ export type CommandsHost = {
41
+ setListener: (listener: CommandsListener | null) => void;
42
+ submit?: (call: CommandsSubmission) => Promise<unknown>;
43
+ /** Registered command names, read live. */
44
+ methods?: () => string[];
45
+ abort?: () => void;
47
46
  };
48
- declare const getCommandsHost: (commands: object) => CommandsHost | undefined;
49
- declare const bindCommandsHost: (commands: object, host: CommandsHost) => void;
50
- declare const useStatewireCommands: <THandlers extends Statewire.Commands>(commands: (THandlers & ThisType<StatewireHost.Ctx>) | undefined | null | false, options?: StatewireHost.CommandsOptions) => Statewire.CommandsProxy<StatewireHost.HandledCommands<THandlers>>;
51
- //#endregion
52
- export { CommandsHost, CommandsInvocation, CommandsListener, CommandsOutcome, CommandsSubmission, bindCommandsHost, documentIdentity, getCommandsHost, getStateHost, useStatewireCommands, useStatewireState };
47
+ export declare const getCommandsHost: (commands: object) => CommandsHost | undefined;
48
+ export declare const bindCommandsHost: (commands: object, host: CommandsHost) => void;
49
+ export declare const useStatewireCommands: <THandlers extends Statewire.Commands>(commands: (THandlers & ThisType<StatewireHost.Ctx>) | undefined | null | false, options?: StatewireHost.CommandsOptions) => Statewire.CommandsProxy<StatewireHost.HandledCommands<THandlers>>;
53
50
  //# sourceMappingURL=host.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","names":[],"sources":["../../src/host/host.ts"],"mappings":";;;cAmBa,mBAAoB,kBAAkB;;cAItC,eACX,kBACC,cAAc;cAeJ,oBAAqB,QAChC,YAAY,qBACD,QAAQ,cAAc,SAAS;KAqGhC;WACD;WACA;WACA;WACA;WACA;WACA;;KAGC;EACN;EAAkB;;EAClB;EAAkB;;KAEZ;EACV,UAAU,KAAK;EACf,YAAY,KAAK;EACjB,YAAY,KAAK;;EAEjB,aAAa,KAAK;EAClB,WAAW,KAAK,oBAAoB,SAAS;;KAGnC;EACV;EACA;EACA;EACA,SAAS,cAAc;EACvB,UAAU,UAAU;EACpB,SAAS,cAAc;EACvB;EACA,YAAY,SAAS;;KAGX;EACV,cAAc,UAAU;EACxB,UAAU,MAAM,uBAAuB;;EAEvC;EACA;;cAKW,kBAAmB,qBAAmB;cAGtC,mBAAoB,kBAAkB,MAAM;cA0O5C,uBAAwB,kBAAkB,UAAU,UAC/D,WACK,YAAY,SAAS,cAAc,kCAIxC,UAAU,cAAc,oBACvB,UAAU,cAAc,cAAc,gBAAgB"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/host/host.ts"],"names":[],"mappings":"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"}
package/dist/host/host.js CHANGED
@@ -5,7 +5,7 @@ import { createStateDraft } from "./draft.js";
5
5
  import { createMethodProxy } from "../util/methodProxy.js";
6
6
  import { StatewireSendError } from "../types.js";
7
7
  import { useEffect, useState } from "@assistant-ui/tap/react-shim";
8
- //#region src/host/host.ts
8
+ // src/host/host.ts
9
9
  const isDev = () => typeof process === "undefined" || process.env["NODE_ENV"] !== "production";
10
10
  const stateHosts = /* @__PURE__ */ new WeakMap();
11
11
  const documentIdentity = (protocol, key) => JSON.stringify([protocol, key ?? null]);
@@ -351,7 +351,6 @@ const useStatewireCommands = (commands, options) => {
351
351
  });
352
352
  return built.proxy;
353
353
  };
354
- //#endregion
355
354
  export { bindCommandsHost, documentIdentity, getCommandsHost, getStateHost, useStatewireCommands, useStatewireState };
356
355
 
357
356
  //# sourceMappingURL=host.js.map
@@ -1,8 +1,5 @@
1
- import { SocketHostState } from "./socket.js";
2
- import { MAX_FRAME_BODY_BYTES } from "../wire/limits.js";
3
- //#region src/host/http.d.ts
4
- declare const stream: (h: SocketHostState, request: Request) => Promise<Response>;
5
- declare const frames: (h: SocketHostState, request: Request) => Promise<Response>;
6
- //#endregion
7
- export { MAX_FRAME_BODY_BYTES, frames, stream };
1
+ import type { SocketHostState } from "./socket.js";
2
+ export { MAX_FRAME_BODY_BYTES } from "../wire/limits.js";
3
+ export declare const stream: (h: SocketHostState, request: Request) => Promise<Response>;
4
+ export declare const frames: (h: SocketHostState, request: Request) => Promise<Response>;
8
5
  //# sourceMappingURL=http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","names":[],"sources":["../../src/host/http.ts"],"mappings":";;;cA2Ua,SACX,GAAG,iBACH,SAAS,YACR,QAAQ;cAkCE,SACX,GAAG,iBACH,SAAS,YACR,QAAQ"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/host/http.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAA6B,eAAe,EAAE,oBAAiB;AAK3E,OAAO,EAAE,oBAAoB,EAAE,0BAAuB;AAsTtD,eAAO,MAAM,MAAM,GACjB,GAAG,eAAe,EAClB,SAAS,OAAO,KACf,OAAO,CAAC,QAAQ,CAOlB,CAAC;AA2BF,eAAO,MAAM,MAAM,GACjB,GAAG,eAAe,EAClB,SAAS,OAAO,KACf,OAAO,CAAC,QAAQ,CAkElB,CAAC"}
package/dist/host/http.js CHANGED
@@ -1,7 +1,7 @@
1
- import { MAX_FRAME_BODY_BYTES } from "../wire/limits.js";
2
1
  import { negotiateProtocols } from "../wire/protocol.js";
2
+ import { MAX_FRAME_BODY_BYTES } from "../wire/limits.js";
3
3
  import { CLIENT_ID_RE, PRINCIPAL_MISMATCH_MESSAGE, SUBSCRIBER_LIMIT_MESSAGE, admitFrame, atSubscriberLimit, authEquals, closeConn, expireLease, flush, parseFrame, parseFrameValue, register, sendTo } from "./socket.js";
4
- //#region src/host/http.ts
4
+ // src/host/http.ts
5
5
  const CLIENT_ID_HEADER = "Statewire-Client-Id";
6
6
  const LEASE_HEADER = "Statewire-Lease";
7
7
  const encoder = new TextEncoder();
@@ -244,7 +244,6 @@ const frames = async (h, request) => {
244
244
  }
245
245
  return Response.json({});
246
246
  };
247
- //#endregion
248
247
  export { MAX_FRAME_BODY_BYTES, frames, stream };
249
248
 
250
249
  //# sourceMappingURL=http.js.map