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.
- package/dist/client/changes.d.ts +3 -6
- package/dist/client/changes.d.ts.map +1 -1
- package/dist/client/changes.js +1 -2
- package/dist/client/connection.d.ts +80 -83
- package/dist/client/connection.d.ts.map +1 -1
- package/dist/client/connection.js +2 -3
- package/dist/client/connection.js.map +1 -1
- package/dist/client/core.d.ts +39 -41
- package/dist/client/core.d.ts.map +1 -1
- package/dist/client/core.js +2 -3
- package/dist/client/session.d.ts +93 -95
- package/dist/client/session.d.ts.map +1 -1
- package/dist/client/session.js +6 -7
- package/dist/client/session.js.map +1 -1
- package/dist/client/sessionStore.d.ts +11 -14
- package/dist/client/sessionStore.d.ts.map +1 -1
- package/dist/client/sessionStore.js +1 -2
- package/dist/client/storageError.d.ts +2 -5
- package/dist/client/storageError.d.ts.map +1 -1
- package/dist/client/storageError.js +1 -2
- package/dist/client/timing.d.ts +11 -14
- package/dist/client/timing.d.ts.map +1 -1
- package/dist/client/timing.js +1 -2
- package/dist/document.d.ts +17 -20
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +1 -2
- package/dist/host/adapter.d.ts +4 -7
- package/dist/host/adapter.d.ts.map +1 -1
- package/dist/host/adapter.js +1 -2
- package/dist/host/draft.d.ts +13 -16
- package/dist/host/draft.d.ts.map +1 -1
- package/dist/host/draft.js +1 -2
- package/dist/host/engine.d.ts +7 -10
- package/dist/host/engine.d.ts.map +1 -1
- package/dist/host/engine.js +1 -2
- package/dist/host/host.d.ts +42 -45
- package/dist/host/host.d.ts.map +1 -1
- package/dist/host/host.js +1 -2
- package/dist/host/http.d.ts +4 -7
- package/dist/host/http.d.ts.map +1 -1
- package/dist/host/http.js +2 -3
- package/dist/host/socket.d.ts +148 -145
- package/dist/host/socket.d.ts.map +1 -1
- package/dist/host/socket.js +30 -12
- package/dist/host/socket.js.map +1 -1
- package/dist/host/synced.d.ts +3 -6
- package/dist/host/synced.d.ts.map +1 -1
- package/dist/host/synced.js +1 -2
- package/dist/host/work.d.ts +2 -5
- package/dist/host/work.d.ts.map +1 -1
- package/dist/host/work.js +1 -2
- package/dist/host-internal.d.ts +101 -93
- package/dist/host-internal.d.ts.map +1 -1
- package/dist/host.d.ts +90 -91
- package/dist/host.d.ts.map +1 -1
- package/dist/index.d.ts +11 -8
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -1
- package/dist/statewire.d.ts +265 -268
- package/dist/statewire.d.ts.map +1 -1
- package/dist/statewire.js +1 -2
- package/dist/storage.d.ts +23 -26
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +1 -2
- package/dist/transports/fake-sse.d.ts +7 -10
- package/dist/transports/fake-sse.d.ts.map +1 -1
- package/dist/transports/fake-sse.js +1 -2
- package/dist/transports/fixtures.d.ts +19 -25
- package/dist/transports/fixtures.d.ts.map +1 -1
- package/dist/transports/fixtures.js +1 -2
- package/dist/transports/remote.d.ts +8 -11
- package/dist/transports/remote.d.ts.map +1 -1
- package/dist/transports/remote.js +1 -2
- package/dist/transports/sse-parser.d.ts +1 -4
- package/dist/transports/sse-parser.d.ts.map +1 -1
- package/dist/transports/sse-parser.js +1 -2
- package/dist/transports/sse.d.ts +50 -53
- package/dist/transports/sse.d.ts.map +1 -1
- package/dist/transports/sse.js +2 -3
- package/dist/transports/testing.d.ts +31 -34
- package/dist/transports/testing.d.ts.map +1 -1
- package/dist/transports/testing.js +1 -2
- package/dist/transports/ws.d.ts +5 -7
- package/dist/transports/ws.d.ts.map +1 -1
- package/dist/transports/ws.js +3 -4
- package/dist/transports/ws.js.map +1 -1
- package/dist/types.d.ts +81 -78
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -2
- package/dist/util/draftTraps.d.ts +2 -4
- package/dist/util/draftTraps.d.ts.map +1 -1
- package/dist/util/draftTraps.js +1 -2
- package/dist/util/macrotask.d.ts +1 -4
- package/dist/util/macrotask.d.ts.map +1 -1
- package/dist/util/macrotask.js +1 -2
- package/dist/util/methodProxy.d.ts +1 -4
- package/dist/util/methodProxy.d.ts.map +1 -1
- package/dist/util/methodProxy.js +1 -2
- package/dist/util/randomId.d.ts +1 -4
- package/dist/util/randomId.d.ts.map +1 -1
- package/dist/util/randomId.js +1 -2
- package/dist/util/recordMutations.d.ts +5 -7
- package/dist/util/recordMutations.d.ts.map +1 -1
- package/dist/util/recordMutations.js +1 -2
- package/dist/util/statePath.d.ts +9 -12
- package/dist/util/statePath.d.ts.map +1 -1
- package/dist/util/statePath.js +1 -2
- package/dist/wire/context.d.ts +7 -12
- package/dist/wire/context.d.ts.map +1 -1
- package/dist/wire/context.js +2 -3
- package/dist/wire/documents.d.ts +36 -39
- package/dist/wire/documents.d.ts.map +1 -1
- package/dist/wire/documents.js +2 -3
- package/dist/wire/documents.js.map +1 -1
- package/dist/wire/limits.d.ts +7 -10
- package/dist/wire/limits.d.ts.map +1 -1
- package/dist/wire/limits.js +1 -2
- package/dist/wire/meta.d.ts +9 -11
- package/dist/wire/meta.d.ts.map +1 -1
- package/dist/wire/meta.js +1 -2
- package/dist/wire/meta.js.map +1 -1
- package/dist/wire/ops.d.ts +9 -12
- package/dist/wire/ops.d.ts.map +1 -1
- package/dist/wire/ops.js +1 -2
- package/dist/wire/protocol.d.ts +53 -56
- package/dist/wire/protocol.d.ts.map +1 -1
- package/dist/wire/protocol.js +1 -2
- package/dist/wire/version.d.ts +1 -4
- package/dist/wire/version.d.ts.map +1 -1
- package/dist/wire/version.js +1 -2
- package/package.json +6 -6
- package/src/client/connection.ts +13 -15
- package/src/host/socket.ts +63 -6
- package/src/host-internal.ts +12 -0
package/dist/document.d.ts
CHANGED
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
21
|
-
|
|
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
|
package/dist/document.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","
|
|
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
|
-
|
|
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
|
package/dist/host/adapter.d.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { StatewireHostInternal } from "../host-internal.js";
|
|
2
|
-
|
|
3
|
-
declare const
|
|
4
|
-
declare const
|
|
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","
|
|
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"}
|
package/dist/host/adapter.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CLIENT_ID_RE } from "./socket.js";
|
|
2
|
-
|
|
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
|
package/dist/host/draft.d.ts
CHANGED
|
@@ -1,25 +1,22 @@
|
|
|
1
|
-
import { Statewire } from "../types.js";
|
|
2
|
-
import { StatewirePath } from "../wire/ops.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
package/dist/host/draft.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft.d.ts","
|
|
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"}
|
package/dist/host/draft.js
CHANGED
|
@@ -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
|
-
|
|
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
|
package/dist/host/engine.d.ts
CHANGED
|
@@ -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
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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","
|
|
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"}
|
package/dist/host/engine.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
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
|
package/dist/host/host.d.ts
CHANGED
|
@@ -1,53 +1,50 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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
|
-
|
|
18
|
-
|
|
15
|
+
export type CommandsOutcome = {
|
|
16
|
+
type: "accepted";
|
|
17
|
+
payload?: unknown;
|
|
19
18
|
} | {
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
type: "rejected";
|
|
20
|
+
error: unknown;
|
|
22
21
|
};
|
|
23
|
-
type CommandsListener = {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
package/dist/host/host.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.d.ts","
|
|
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
|
-
|
|
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
|
package/dist/host/http.d.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { SocketHostState } from "./socket.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
declare const
|
|
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
|
package/dist/host/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","
|
|
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
|
-
|
|
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
|