@naylence/runtime 0.3.6 → 0.3.9

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 (82) hide show
  1. package/dist/browser/index.cjs +262 -172
  2. package/dist/browser/index.mjs +261 -173
  3. package/dist/cjs/_env-shim.js +3 -1
  4. package/dist/cjs/naylence/fame/config/extended-fame-config.js +2 -1
  5. package/dist/cjs/naylence/fame/connector/broadcast-channel-connector-factory.js +12 -4
  6. package/dist/cjs/naylence/fame/connector/broadcast-channel-connector.browser.js +14 -6
  7. package/dist/cjs/naylence/fame/connector/broadcast-channel-listener-factory.js +3 -1
  8. package/dist/cjs/naylence/fame/connector/broadcast-channel-listener.js +11 -7
  9. package/dist/cjs/naylence/fame/connector/index.js +2 -1
  10. package/dist/cjs/naylence/fame/connector/inpage-connector-factory.js +2 -1
  11. package/dist/cjs/naylence/fame/connector/inpage-connector.js +13 -6
  12. package/dist/cjs/naylence/fame/connector/inpage-listener-factory.js +4 -4
  13. package/dist/cjs/naylence/fame/connector/inpage-listener.js +5 -2
  14. package/dist/cjs/naylence/fame/delivery/default-delivery-tracker.js +4 -62
  15. package/dist/cjs/naylence/fame/fabric/fabric-registry.js +41 -0
  16. package/dist/cjs/naylence/fame/fabric/in-process-fame-fabric.js +3 -0
  17. package/dist/cjs/naylence/fame/fabric/index.js +3 -1
  18. package/dist/cjs/naylence/fame/grants/broadcast-channel-connection-grant.js +6 -3
  19. package/dist/cjs/naylence/fame/grants/inpage-connection-grant.js +4 -2
  20. package/dist/cjs/naylence/fame/http/oauth2-token-router.js +9 -9
  21. package/dist/cjs/naylence/fame/node/admission/default-node-attach-client.js +34 -5
  22. package/dist/cjs/naylence/fame/node/upstream-session-manager.js +40 -8
  23. package/dist/cjs/naylence/fame/security/auth/oauth2-pkce-token-provider-factory.js +10 -6
  24. package/dist/cjs/naylence/fame/security/auth/oauth2-pkce-token-provider.js +1 -2
  25. package/dist/cjs/naylence/fame/security/default-security-manager.js +2 -1
  26. package/dist/cjs/naylence/fame/security/trust-store/noop-trust-store-provider-factory.js +2 -2
  27. package/dist/cjs/naylence/fame/security/trust-store/trust-store-provider-factory.js +2 -2
  28. package/dist/cjs/naylence/fame/util/index.js +3 -1
  29. package/dist/cjs/node.js +4 -1
  30. package/dist/cjs/runtime-isomorphic.js +4 -1
  31. package/dist/cjs/version.js +2 -2
  32. package/dist/esm/_env-shim.js +3 -1
  33. package/dist/esm/browser.js +2 -2
  34. package/dist/esm/naylence/fame/config/extended-fame-config.js +2 -1
  35. package/dist/esm/naylence/fame/connector/broadcast-channel-connector-factory.js +12 -4
  36. package/dist/esm/naylence/fame/connector/broadcast-channel-connector.browser.js +14 -6
  37. package/dist/esm/naylence/fame/connector/broadcast-channel-listener-factory.js +3 -1
  38. package/dist/esm/naylence/fame/connector/broadcast-channel-listener.js +11 -7
  39. package/dist/esm/naylence/fame/connector/index.js +2 -2
  40. package/dist/esm/naylence/fame/connector/inpage-connector-factory.js +2 -1
  41. package/dist/esm/naylence/fame/connector/inpage-connector.js +13 -6
  42. package/dist/esm/naylence/fame/connector/inpage-listener-factory.js +4 -4
  43. package/dist/esm/naylence/fame/connector/inpage-listener.js +5 -2
  44. package/dist/esm/naylence/fame/delivery/default-delivery-tracker.js +4 -62
  45. package/dist/esm/naylence/fame/fabric/fabric-registry.js +37 -0
  46. package/dist/esm/naylence/fame/fabric/in-process-fame-fabric.js +3 -0
  47. package/dist/esm/naylence/fame/fabric/index.js +1 -0
  48. package/dist/esm/naylence/fame/grants/broadcast-channel-connection-grant.js +6 -3
  49. package/dist/esm/naylence/fame/grants/inpage-connection-grant.js +4 -2
  50. package/dist/esm/naylence/fame/http/oauth2-token-router.js +9 -9
  51. package/dist/esm/naylence/fame/node/admission/default-node-attach-client.js +34 -5
  52. package/dist/esm/naylence/fame/node/upstream-session-manager.js +40 -8
  53. package/dist/esm/naylence/fame/security/auth/oauth2-pkce-token-provider-factory.js +10 -6
  54. package/dist/esm/naylence/fame/security/auth/oauth2-pkce-token-provider.js +1 -2
  55. package/dist/esm/naylence/fame/security/default-security-manager.js +2 -1
  56. package/dist/esm/naylence/fame/security/index.js +1 -1
  57. package/dist/esm/naylence/fame/security/trust-store/noop-trust-store-provider-factory.js +3 -3
  58. package/dist/esm/naylence/fame/security/trust-store/trust-store-provider-factory.js +3 -3
  59. package/dist/esm/naylence/fame/util/index.js +1 -0
  60. package/dist/esm/node.js +2 -1
  61. package/dist/esm/runtime-isomorphic.js +2 -0
  62. package/dist/esm/version.js +2 -2
  63. package/dist/node/index.cjs +259 -171
  64. package/dist/node/index.mjs +258 -172
  65. package/dist/node/node.cjs +225 -136
  66. package/dist/node/node.mjs +223 -137
  67. package/dist/types/browser.d.ts +2 -2
  68. package/dist/types/naylence/fame/connector/broadcast-channel-connector-factory.d.ts +1 -0
  69. package/dist/types/naylence/fame/connector/index.d.ts +3 -3
  70. package/dist/types/naylence/fame/delivery/default-delivery-tracker.d.ts +0 -6
  71. package/dist/types/naylence/fame/fabric/fabric-registry.d.ts +29 -0
  72. package/dist/types/naylence/fame/fabric/index.d.ts +1 -0
  73. package/dist/types/naylence/fame/node/admission/default-node-attach-client.d.ts +1 -0
  74. package/dist/types/naylence/fame/security/index.d.ts +1 -1
  75. package/dist/types/naylence/fame/security/trust-store/noop-trust-store-provider-factory.d.ts +3 -3
  76. package/dist/types/naylence/fame/security/trust-store/trust-store-provider-factory.d.ts +4 -4
  77. package/dist/types/naylence/fame/security/trust-store/trust-store-provider.d.ts +5 -5
  78. package/dist/types/naylence/fame/util/index.d.ts +1 -0
  79. package/dist/types/node.d.ts +2 -1
  80. package/dist/types/runtime-isomorphic.d.ts +1 -0
  81. package/dist/types/version.d.ts +1 -1
  82. package/package.json +1 -1
@@ -3,7 +3,7 @@ export { InPageConnector, INPAGE_CONNECTOR_TYPE, type InPageConnectorConfig, } f
3
3
  export { BroadcastChannelConnector, BROADCAST_CHANNEL_CONNECTOR_TYPE, type BroadcastChannelConnectorConfig, } from './naylence/fame/connector/broadcast-channel-connector.js';
4
4
  export { InPageConnectorFactory, type InPageConnectorFactoryConfig, FACTORY_META as INPAGE_CONNECTOR_FACTORY_META, } from './naylence/fame/connector/inpage-connector-factory.js';
5
5
  export { BroadcastChannelConnectorFactory, type BroadcastChannelConnectorFactoryConfig, FACTORY_META as BROADCAST_CHANNEL_CONNECTOR_FACTORY_META, } from './naylence/fame/connector/broadcast-channel-connector-factory.js';
6
- export { InPageListener, } from './naylence/fame/connector/inpage-listener.js';
6
+ export { InPageListener } from './naylence/fame/connector/inpage-listener.js';
7
7
  export { InPageListenerFactory, type InPageListenerFactoryConfig, FACTORY_META as INPAGE_LISTENER_FACTORY_META, } from './naylence/fame/connector/inpage-listener-factory.js';
8
- export { BroadcastChannelListener, } from './naylence/fame/connector/broadcast-channel-listener.js';
8
+ export { BroadcastChannelListener } from './naylence/fame/connector/broadcast-channel-listener.js';
9
9
  export { BroadcastChannelListenerFactory, type BroadcastChannelListenerFactoryConfig, FACTORY_META as BROADCAST_CHANNEL_LISTENER_FACTORY_META, } from './naylence/fame/connector/broadcast-channel-listener-factory.js';
@@ -9,6 +9,7 @@ export interface BroadcastChannelConnectorFactoryConfig extends ConnectorConfig,
9
9
  inboxCapacity?: number;
10
10
  localNodeId?: string;
11
11
  initialTargetNodeId?: string | '*';
12
+ passive?: boolean;
12
13
  }
13
14
  export interface CreateBroadcastChannelConnectorOptions {
14
15
  authorization?: AuthorizationContext;
@@ -19,12 +19,12 @@ export { InPageConnector, INPAGE_CONNECTOR_TYPE, type InPageConnectorConfig, } f
19
19
  export { BroadcastChannelConnector, BROADCAST_CHANNEL_CONNECTOR_TYPE, type BroadcastChannelConnectorConfig, } from './broadcast-channel-connector.js';
20
20
  export { _NoopFlowController } from './noop-flow-controller.js';
21
21
  export { TransportListener } from './transport-listener.js';
22
- export { TRANSPORT_LISTENER_FACTORY_BASE_TYPE } from './transport-listener-factory.js';
23
- export type { TransportListenerFactory } from './transport-listener-factory.js';
22
+ export { TransportListenerFactory, TRANSPORT_LISTENER_FACTORY_BASE_TYPE, } from './transport-listener-factory.js';
23
+ export type { TransportListenerFactory as TransportListenerFactoryType } from './transport-listener-factory.js';
24
24
  export type { TransportListenerConfig } from './transport-listener-config.js';
25
25
  export type { HttpServer, HttpRouter } from './http-server.js';
26
26
  export { DefaultHttpServer } from './default-http-server.js';
27
27
  export { WebSocketListener, getWebsocketListenerInstance, } from './websocket-listener.js';
28
28
  export { HttpListener, getHttpListenerInstance } from './http-listener.js';
29
- export { InPageListener, getInPageListenerInstance } from './inpage-listener.js';
29
+ export { InPageListener, getInPageListenerInstance, } from './inpage-listener.js';
30
30
  export { BroadcastChannelListener, getBroadcastChannelListenerInstance, } from './broadcast-channel-listener.js';
@@ -38,9 +38,6 @@ export declare class DefaultDeliveryTracker extends TaskSpawner implements NodeE
38
38
  private readonly ackDoneSince;
39
39
  private readonly replyDoneSince;
40
40
  private readonly pendingAckDispatches;
41
- private readonly recentlyHandled;
42
- private readonly recentlyHandledOrder;
43
- private readonly recentlyHandledTtlMs;
44
41
  private isPreparingToStop;
45
42
  private shutdownRequestedAtMs;
46
43
  private readonly shutdownRetryGraceMs;
@@ -102,9 +99,6 @@ export declare class DefaultDeliveryTracker extends TaskSpawner implements NodeE
102
99
  private sweepFuturesLoop;
103
100
  private statusIsTerminal;
104
101
  private sendAck;
105
- private markRecentlyHandled;
106
- private wasRecentlyHandled;
107
- private trimRecentlyHandled;
108
102
  private getShutdownRetryDeferDelay;
109
103
  }
110
104
  export {};
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Fabric Registry
3
+ *
4
+ * Provides a mapping from nodes to their associated fabrics.
5
+ * This allows agents to retrieve the fabric they were registered on
6
+ * without relying on the global fabric stack.
7
+ */
8
+ import type { FameFabric } from '@naylence/core';
9
+ import type { NodeLike } from '../node/node-like.js';
10
+ /**
11
+ * @internal
12
+ * Associates a node with its fabric. This should only be called
13
+ * by fabric implementations when they create or adopt a node.
14
+ *
15
+ * @param node - The node to associate
16
+ * @param fabric - The fabric that owns the node
17
+ */
18
+ export declare function _setFabricForNode(node: NodeLike, fabric: FameFabric): void;
19
+ /**
20
+ * Retrieves the fabric associated with a node.
21
+ *
22
+ * This is useful for agents that need to access the fabric they
23
+ * were registered on, particularly in environments where multiple
24
+ * fabrics exist (e.g., React with multiple FabricProviders).
25
+ *
26
+ * @param node - The node to look up
27
+ * @returns The fabric associated with the node, or undefined if not found
28
+ */
29
+ export declare function getFabricForNode(node: NodeLike): FameFabric | undefined;
@@ -1,2 +1,3 @@
1
1
  export { InProcessFameFabric } from './in-process-fame-fabric.js';
2
2
  export { InProcessFameFabricFactory, FAME_FABRIC_FACTORY_BASE_TYPE, } from './in-process-fame-fabric-factory.js';
3
+ export { getFabricForNode } from './fabric-registry.js';
@@ -14,6 +14,7 @@ export declare class DefaultNodeAttachClient implements NodeAttachClient {
14
14
  private readonly replicaStickinessManager;
15
15
  private readonly buffer;
16
16
  private inHandshake;
17
+ private expectedSystemId;
17
18
  constructor(options?: DefaultNodeAttachClientOptions);
18
19
  attach(node: NodeLike, originType: DeliveryOriginType, connector: FameConnector, welcomeFrame: NodeWelcomeFrame, finalHandler: FameEnvelopeHandler, keys?: Array<Record<string, unknown>>, callbackGrants?: Array<Record<string, unknown>>): Promise<AttachInfo>;
19
20
  private awaitAck;
@@ -57,7 +57,7 @@ export * from './signing/envelope-signer.js';
57
57
  export * from './signing/envelope-verifier.js';
58
58
  export { SigningConfig as SigningConfigClass, type SigningConfigOptions, } from './signing/signing-config.js';
59
59
  export { canonicalJson, decodeBase64Url, frameDigest, immutableHeaders, } from './signing/eddsa-signer-verifier.js';
60
- export { encodeUtf8, } from './signing/eddsa-utils.js';
60
+ export { encodeUtf8 } from './signing/eddsa-utils.js';
61
61
  export { EdDSAEnvelopeSigner, type EdDSAEnvelopeSignerOptions, } from './signing/eddsa-envelope-signer.js';
62
62
  export * from './crypto/providers/crypto-provider.js';
63
63
  export * from './crypto/providers/default-crypto-provider.js';
@@ -1,7 +1,7 @@
1
- import { TrustStoreProviderFactory, type TrustStoreProviderConfig } from "./trust-store-provider-factory.js";
2
- import type { TrustStoreProvider } from "./trust-store-provider.js";
1
+ import { TrustStoreProviderFactory, type TrustStoreProviderConfig } from './trust-store-provider-factory.js';
2
+ import type { TrustStoreProvider } from './trust-store-provider.js';
3
3
  export interface NoopTrustStoreProviderConfig extends TrustStoreProviderConfig {
4
- readonly type: "NoopTrustStoreProvider";
4
+ readonly type: 'NoopTrustStoreProvider';
5
5
  }
6
6
  export declare const FACTORY_META: {
7
7
  readonly base: "TrustStoreProviderFactory";
@@ -1,6 +1,6 @@
1
- import type { CreateResourceOptions, ResourceConfig } from "@naylence/factory";
2
- import { AbstractResourceFactory } from "@naylence/factory";
3
- import type { TrustAnchor, TrustStoreProvider } from "./trust-store-provider.js";
1
+ import type { CreateResourceOptions, ResourceConfig } from '@naylence/factory';
2
+ import { AbstractResourceFactory } from '@naylence/factory';
3
+ import type { TrustAnchor, TrustStoreProvider } from './trust-store-provider.js';
4
4
  export interface TrustStoreProviderConfig extends ResourceConfig {
5
5
  readonly type: string;
6
6
  }
@@ -8,7 +8,7 @@ export interface TrustStoreProviderDependencies {
8
8
  readonly env?: Record<string, unknown> | null;
9
9
  readonly [key: string]: unknown;
10
10
  }
11
- export interface CreateTrustStoreProviderOptions extends Omit<CreateResourceOptions, "factoryArgs"> {
11
+ export interface CreateTrustStoreProviderOptions extends Omit<CreateResourceOptions, 'factoryArgs'> {
12
12
  readonly factoryArgs?: unknown[];
13
13
  readonly dependencies?: TrustStoreProviderDependencies;
14
14
  }
@@ -16,7 +16,7 @@ export interface TrustStoreProvider {
16
16
  onUpdate?(callback: () => void): () => void;
17
17
  initialize?(): Promise<void> | void;
18
18
  }
19
- export type TrustBundleSourceType = "INLINE_PEM" | "DATA_PEM" | "FILE" | "HTTPS_BUNDLE";
19
+ export type TrustBundleSourceType = 'INLINE_PEM' | 'DATA_PEM' | 'FILE' | 'HTTPS_BUNDLE';
20
20
  export interface TrustBundlePins {
21
21
  readonly hashPins?: readonly string[];
22
22
  readonly allowedSpkis?: readonly string[];
@@ -24,19 +24,19 @@ export interface TrustBundlePins {
24
24
  readonly refreshIntervalMs?: number;
25
25
  }
26
26
  export interface InlinePemSource {
27
- readonly type: "INLINE_PEM";
27
+ readonly type: 'INLINE_PEM';
28
28
  readonly pem: string;
29
29
  }
30
30
  export interface DataPemSource {
31
- readonly type: "DATA_PEM";
31
+ readonly type: 'DATA_PEM';
32
32
  readonly dataUri: string;
33
33
  }
34
34
  export interface FilePemSource {
35
- readonly type: "FILE";
35
+ readonly type: 'FILE';
36
36
  readonly path: string;
37
37
  }
38
38
  export interface HttpsBundleSource extends TrustBundlePins {
39
- readonly type: "HTTPS_BUNDLE";
39
+ readonly type: 'HTTPS_BUNDLE';
40
40
  readonly url: string;
41
41
  }
42
42
  export type TrustBundleSource = InlinePemSource | DataPemSource | FilePemSource | HttpsBundleSource;
@@ -13,6 +13,7 @@ export * from './metrics-emitter.js';
13
13
  export * from './util.js';
14
14
  export * from './logicals.js';
15
15
  export * from './ttl-validation.js';
16
+ export { safeImport } from './lazy-import.js';
16
17
  export { normalizeEnvelopeSnapshot } from './logging-types.js';
17
18
  export type { Logger, LogEntry, LogProcessor, LogTransport, EnvelopeSnapshot, EnvelopeSnapshotInput, } from './logging-types.js';
18
19
  export type { SpawnedTask, TaskSpawnerConfig, ShutdownOptions, TaskState, TaskTimeoutError, TaskCancelledError, } from './task-types.js';
@@ -11,7 +11,8 @@ export * from './naylence/fame/placement/node-placement-strategy-factory.js';
11
11
  export * from './naylence/fame/transport/transport-provisioner.js';
12
12
  export * from './naylence/fame/welcome/index.js';
13
13
  export * from './naylence/fame/sentinel/index.js';
14
- export { HttpStatelessConnector, QueueFullError, type HttpStatelessConnectorConfig, DefaultHttpServer, getWebsocketListenerInstance, TransportListener, TRANSPORT_LISTENER_FACTORY_BASE_TYPE, type TransportListenerFactory, type TransportListenerConfig, type HttpServer, type HttpRouter, WebSocketListener, HttpListener, getHttpListenerInstance, InPageListener, getInPageListenerInstance, } from './naylence/fame/connector/index.js';
14
+ export { HttpStatelessConnector, QueueFullError, type HttpStatelessConnectorConfig, DefaultHttpServer, getWebsocketListenerInstance, TransportListener, TransportListenerFactory, TRANSPORT_LISTENER_FACTORY_BASE_TYPE, type TransportListenerConfig, type HttpServer, type HttpRouter, WebSocketListener, HttpListener, getHttpListenerInstance, InPageListener, getInPageListenerInstance, } from './naylence/fame/connector/index.js';
15
+ export { safeImport } from './naylence/fame/util/lazy-import.js';
15
16
  export { InProcessFameFabric, InProcessFameFabricFactory, FAME_FABRIC_FACTORY_BASE_TYPE, } from './naylence/fame/fabric/index.js';
16
17
  export { normalizeExtendedFameConfig, type ExtendedFameConfig, } from './naylence/fame/config/index.js';
17
18
  export { createJwksRouter, type CreateJwksRouterOptions, } from './naylence/fame/http/jwks-api-router.js';
@@ -33,5 +33,6 @@ export * from './naylence/fame/placement/node-placement-strategy.js';
33
33
  export * from './naylence/fame/placement/node-placement-strategy-factory.js';
34
34
  export * from './naylence/fame/transport/transport-provisioner.js';
35
35
  export * from './naylence/fame/welcome/index.js';
36
+ export { getFabricForNode } from './naylence/fame/fabric/fabric-registry.js';
36
37
  type PluginModuleLoader = (specifier: string) => Promise<Record<string, unknown>>;
37
38
  export declare const __runtimePluginLoader: PluginModuleLoader;
@@ -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.6";
5
+ export declare const VERSION = "0.3.9";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naylence/runtime",
3
- "version": "0.3.6",
3
+ "version": "0.3.9",
4
4
  "type": "module",
5
5
  "description": "Naylence Runtime - Complete TypeScript runtime",
6
6
  "author": "Naylence Dev <naylencedev@gmail.com>",