@naylence/runtime 0.3.5-test.942 → 0.3.5-test.944

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 (36) hide show
  1. package/dist/browser/index.cjs +380 -8
  2. package/dist/browser/index.mjs +380 -8
  3. package/dist/cjs/naylence/fame/connector/broadcast-channel-connector-factory.js +12 -0
  4. package/dist/cjs/naylence/fame/connector/broadcast-channel-connector.browser.js +69 -1
  5. package/dist/cjs/naylence/fame/connector/broadcast-channel-listener.js +35 -0
  6. package/dist/cjs/naylence/fame/connector/inpage-connector-factory.js +12 -0
  7. package/dist/cjs/naylence/fame/connector/inpage-connector.js +66 -1
  8. package/dist/cjs/naylence/fame/connector/inpage-listener.js +49 -2
  9. package/dist/cjs/naylence/fame/connector/transport-frame.js +101 -0
  10. package/dist/cjs/naylence/fame/grants/broadcast-channel-connection-grant.js +28 -0
  11. package/dist/cjs/naylence/fame/grants/inpage-connection-grant.js +28 -0
  12. package/dist/cjs/version.js +2 -2
  13. package/dist/esm/naylence/fame/connector/broadcast-channel-connector-factory.js +12 -0
  14. package/dist/esm/naylence/fame/connector/broadcast-channel-connector.browser.js +69 -1
  15. package/dist/esm/naylence/fame/connector/broadcast-channel-listener.js +35 -0
  16. package/dist/esm/naylence/fame/connector/inpage-connector-factory.js +12 -0
  17. package/dist/esm/naylence/fame/connector/inpage-connector.js +66 -1
  18. package/dist/esm/naylence/fame/connector/inpage-listener.js +49 -2
  19. package/dist/esm/naylence/fame/connector/transport-frame.js +94 -0
  20. package/dist/esm/naylence/fame/grants/broadcast-channel-connection-grant.js +28 -0
  21. package/dist/esm/naylence/fame/grants/inpage-connection-grant.js +28 -0
  22. package/dist/esm/version.js +2 -2
  23. package/dist/node/index.cjs +380 -8
  24. package/dist/node/index.mjs +380 -8
  25. package/dist/node/node.cjs +396 -8
  26. package/dist/node/node.mjs +396 -8
  27. package/dist/types/naylence/fame/connector/broadcast-channel-connector-factory.d.ts +2 -0
  28. package/dist/types/naylence/fame/connector/broadcast-channel-connector.browser.d.ts +4 -0
  29. package/dist/types/naylence/fame/connector/inpage-connector-factory.d.ts +2 -0
  30. package/dist/types/naylence/fame/connector/inpage-connector.d.ts +4 -0
  31. package/dist/types/naylence/fame/connector/inpage-listener.d.ts +1 -0
  32. package/dist/types/naylence/fame/connector/transport-frame.d.ts +58 -0
  33. package/dist/types/naylence/fame/grants/broadcast-channel-connection-grant.d.ts +6 -0
  34. package/dist/types/naylence/fame/grants/inpage-connection-grant.d.ts +8 -0
  35. package/dist/types/version.d.ts +1 -1
  36. package/package.json +1 -1
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Transport frame layer for multiplexing logical links on physical channels.
3
+ *
4
+ * This lightweight framing layer wraps raw FAME payloads to enable multiple
5
+ * logical connections over a single physical channel (BroadcastChannel or InPage bus).
6
+ *
7
+ * The transport frame does NOT modify FAME envelopes - it only wraps the raw
8
+ * Uint8Array payload at the connector level.
9
+ */
10
+ /**
11
+ * Transport frame version for future compatibility
12
+ */
13
+ export declare const TRANSPORT_FRAME_VERSION = 1;
14
+ /**
15
+ * Transport frame structure that wraps raw payloads
16
+ */
17
+ export interface TransportFrame {
18
+ /** Version of the transport frame format */
19
+ v: number;
20
+ /** Source node ID (connector-local) */
21
+ src: string;
22
+ /** Destination node ID (connector-local) */
23
+ dst: string;
24
+ /** Raw payload (FAME envelope as Uint8Array) */
25
+ payload: Uint8Array;
26
+ }
27
+ /**
28
+ * Wrap a raw payload in a transport frame
29
+ *
30
+ * @param payload - Raw FAME envelope bytes
31
+ * @param srcNodeId - Local node ID (this connector)
32
+ * @param dstNodeId - Remote node ID (target connector)
33
+ * @returns Transport frame ready for transmission
34
+ */
35
+ export declare function wrapTransportFrame(payload: Uint8Array, srcNodeId: string, dstNodeId: string): TransportFrame;
36
+ /**
37
+ * Serialize a transport frame for transmission over the bus
38
+ *
39
+ * @param frame - Transport frame to serialize
40
+ * @returns Serialized frame data ready for postMessage/dispatchEvent
41
+ */
42
+ export declare function serializeTransportFrame(frame: TransportFrame): unknown;
43
+ /**
44
+ * Unwrap a transport frame, validating source and destination
45
+ *
46
+ * @param raw - Raw data from the bus
47
+ * @param localNodeId - This connector's node ID
48
+ * @param remoteNodeId - Expected remote node ID
49
+ * @returns Unwrapped payload if frame is valid and addressed to us, null otherwise
50
+ */
51
+ export declare function unwrapTransportFrame(raw: unknown, localNodeId: string, remoteNodeId: string): Uint8Array | null;
52
+ /**
53
+ * Check if raw data looks like a transport frame
54
+ *
55
+ * @param raw - Raw data from the bus
56
+ * @returns True if this appears to be a transport frame
57
+ */
58
+ export declare function isTransportFrame(raw: unknown): boolean;
@@ -6,6 +6,8 @@ export interface BroadcastChannelConnectionGrant extends ConnectionGrant {
6
6
  type: typeof BROADCAST_CHANNEL_CONNECTION_GRANT_TYPE;
7
7
  channelName?: string;
8
8
  inboxCapacity?: number;
9
+ localNodeId?: string;
10
+ remoteNodeId?: string;
9
11
  }
10
12
  export type BroadcastChannelConnectionGrantLike = ConnectionGrantLike & {
11
13
  type?: string;
@@ -13,6 +15,10 @@ export type BroadcastChannelConnectionGrantLike = ConnectionGrantLike & {
13
15
  channel_name?: unknown;
14
16
  inboxCapacity?: unknown;
15
17
  inbox_capacity?: unknown;
18
+ localNodeId?: unknown;
19
+ local_node_id?: unknown;
20
+ remoteNodeId?: unknown;
21
+ remote_node_id?: unknown;
16
22
  };
17
23
  export type BroadcastChannelConnectorConfigLike = ConnectorConfig & BroadcastChannelConnectorConfig;
18
24
  export declare function isBroadcastChannelConnectionGrant(candidate: unknown): candidate is BroadcastChannelConnectionGrant;
@@ -6,6 +6,8 @@ export interface InPageConnectionGrant extends ConnectionGrant {
6
6
  type: typeof INPAGE_CONNECTION_GRANT_TYPE;
7
7
  channelName?: string;
8
8
  inboxCapacity?: number;
9
+ localNodeId?: string;
10
+ remoteNodeId?: string;
9
11
  }
10
12
  export type InPageConnectionGrantLike = ConnectionGrantLike & {
11
13
  type?: string;
@@ -13,11 +15,17 @@ export type InPageConnectionGrantLike = ConnectionGrantLike & {
13
15
  channel_name?: unknown;
14
16
  inboxCapacity?: unknown;
15
17
  inbox_capacity?: unknown;
18
+ localNodeId?: unknown;
19
+ local_node_id?: unknown;
20
+ remoteNodeId?: unknown;
21
+ remote_node_id?: unknown;
16
22
  };
17
23
  export type InPageConnectorConfigLike = ConnectorConfig & {
18
24
  type: typeof INPAGE_CONNECTOR_TYPE;
19
25
  channelName?: string;
20
26
  inboxCapacity?: number;
27
+ localNodeId?: string;
28
+ remoteNodeId?: string;
21
29
  };
22
30
  export declare function isInPageConnectionGrant(candidate: unknown): candidate is InPageConnectionGrant;
23
31
  export declare function normalizeInPageConnectionGrant(candidate: InPageConnectionGrantLike): InPageConnectionGrant;
@@ -2,4 +2,4 @@
2
2
  * The package version, injected at build time.
3
3
  * @internal
4
4
  */
5
- export declare const VERSION = "0.3.5-test.942";
5
+ export declare const VERSION = "0.3.5-test.944";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naylence/runtime",
3
- "version": "0.3.5-test.942",
3
+ "version": "0.3.5-test.944",
4
4
  "type": "module",
5
5
  "description": "Naylence Runtime - Complete TypeScript runtime",
6
6
  "author": "Naylence Dev <naylencedev@gmail.com>",