@xyo-network/xl1-browser-system 5.0.14 → 5.0.15

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/README.md CHANGED
@@ -36,6 +36,17 @@ export function xl1ConfigFor(host: string) {
36
36
  }
37
37
  ```
38
38
 
39
+ For an RPC-backed viewer, use the complete RPC URL:
40
+
41
+ ```ts
42
+ import { createXl1RpcBrowserSystemConfig } from '@xyo-network/xl1-browser-system'
43
+
44
+ const config = createXl1RpcBrowserSystemConfig({
45
+ endpoint: 'https://api.example/rpc',
46
+ host: 'worker',
47
+ })
48
+ ```
49
+
39
50
  The resulting object contains actor selections, named connections, and provider
40
51
  bindings. It contains no module paths or executable code.
41
52
 
@@ -51,6 +62,41 @@ const localConfig = createXl1RestBrowserSystemConfig({
51
62
  })
52
63
  ```
53
64
 
65
+ ## Read-only and signed gateway systems
66
+
67
+ `launchXl1BrowserGatewaySystem` is the stock launcher for all four gateway
68
+ plans: REST or RPC, each read-only or signed. It creates the serializable config
69
+ once, supplies non-serializable signing state through runtime homes, launches
70
+ one provider system, and exposes its actor and gateway.
71
+
72
+ ```ts
73
+ import { Account } from '@xyo-network/sdk'
74
+ import { launchXl1BrowserGatewaySystem } from '@xyo-network/xl1-browser-system'
75
+
76
+ const account = await Account.random()
77
+ const session = await launchXl1BrowserGatewaySystem({
78
+ endpoint: 'https://sample.mainnet.xyo.space',
79
+ host: 'page',
80
+ rpcUrl: 'https://sample.mainnet.xyo.space/rpc',
81
+ signerAccount: account,
82
+ transport: 'rest',
83
+ })
84
+
85
+ await session.gateway.connection.viewer?.block.currentBlockNumber()
86
+ if (session.gateway.moniker === 'XyoGatewayRunner') {
87
+ await session.gateway.signer.address()
88
+ }
89
+ ```
90
+
91
+ For an injected or remote signer, pass `signerTransport`; for a custom local
92
+ signer implementation, pass `signerFactory` and a bundle-stable
93
+ `signerProviderId`. Precedence is `signerFactory`, then `signerAccount`, then
94
+ `signerTransport`. Accounts, transports, and factories never enter the config.
95
+
96
+ The lower-level `createXl1RestBrowserSystemConfig`,
97
+ `createXl1RpcBrowserSystemConfig`, and `launchXl1BrowserSystem` APIs remain
98
+ available when an application supplies its own actors or provider catalog.
99
+
54
100
  When adding a custom provider candidate, pass a stable explicit identifier to
55
101
  `providerCandidateFromClass`. Constructor names can be changed by production
56
102
  minifiers and must not become configuration identifiers:
@@ -4,7 +4,7 @@ import type { LocatorConfig, PrimeCachesMode } from '@xyo-network/xl1-sdk';
4
4
  export interface Xl1BrowserSystemConfig extends LocatorConfig {
5
5
  readonly actors: readonly BrowserActorSelection[];
6
6
  }
7
- /** Options for the standard read-only REST-backed XL1 browser system. */
7
+ /** Options for a standard REST-backed XL1 browser system. */
8
8
  export interface CreateXl1RestBrowserSystemConfigOptions {
9
9
  readonly actors?: readonly BrowserActorSelection[];
10
10
  readonly dataLakeEndpoint?: string;
@@ -12,13 +12,41 @@ export interface CreateXl1RestBrowserSystemConfigOptions {
12
12
  readonly host?: string;
13
13
  readonly layout?: Xl1RestEndpointLayout;
14
14
  readonly primeCaches?: PrimeCachesMode;
15
+ readonly rpcUrl?: string;
16
+ readonly signer?: Xl1BrowserSignerConfig;
15
17
  }
18
+ /** Options for a standard RPC-backed XL1 browser system. */
19
+ export interface CreateXl1RpcBrowserSystemConfigOptions {
20
+ readonly actors?: readonly BrowserActorSelection[];
21
+ readonly dataLakeEndpoint?: string;
22
+ readonly endpoint: string;
23
+ readonly host?: string;
24
+ readonly primeCaches?: PrimeCachesMode;
25
+ readonly signer?: Xl1BrowserSignerConfig;
26
+ }
27
+ /** Selects the built-in account signer supplied through the runtime context. */
28
+ export interface Xl1BrowserAccountSignerConfig {
29
+ readonly type: 'account';
30
+ }
31
+ /** Selects a connectionless signer factory supplied by the owner realm. */
32
+ export interface Xl1BrowserProviderSignerConfig {
33
+ readonly provider: string;
34
+ readonly type: 'provider';
35
+ }
36
+ /** Selects a JsonRpc signer whose transport is supplied through runtime handles. */
37
+ export interface Xl1BrowserRpcSignerConfig {
38
+ readonly type: 'rpc';
39
+ }
40
+ /** Serializable signer selection for a write-capable browser system. */
41
+ export type Xl1BrowserSignerConfig = Xl1BrowserAccountSignerConfig | Xl1BrowserProviderSignerConfig | Xl1BrowserRpcSignerConfig;
16
42
  /** How the REST gateway's finalized, chain-state, and index URLs are derived from its endpoint. */
17
43
  export type Xl1RestEndpointLayout = 'path' | 'subdomain';
18
44
  /** Parses XL1 locator fields and browser actor selections without importing code from config. */
19
45
  export declare function parseXl1BrowserSystemConfig(input: unknown): Xl1BrowserSystemConfig;
20
46
  /** Projects the XL1 config onto the neutral fields browser-kit compiles. */
21
47
  export declare function toBrowserSystemConfig(config: Xl1BrowserSystemConfig): BrowserSystemConfig;
22
- /** Creates explicit REST connections and provider bindings for a read-only XL1 gateway actor. */
48
+ /** Creates explicit REST connections and provider bindings for one XL1 browser gateway actor. */
23
49
  export declare function createXl1RestBrowserSystemConfig(options: CreateXl1RestBrowserSystemConfigOptions): Xl1BrowserSystemConfig;
50
+ /** Creates explicit RPC connections and provider bindings for one XL1 browser gateway actor. */
51
+ export declare function createXl1RpcBrowserSystemConfig(options: CreateXl1RpcBrowserSystemConfigOptions): Xl1BrowserSystemConfig;
24
52
  //# sourceMappingURL=Xl1BrowserConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Xl1BrowserConfig.d.ts","sourceRoot":"","sources":["../../src/Xl1BrowserConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAEV,aAAa,EACb,eAAe,EAGhB,MAAM,sBAAsB,CAAA;AAyB7B,iEAAiE;AACjE,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAA;CAClD;AAED,yEAAyE;AACzE,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAA;IAClD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAA;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAA;CACvC;AAED,mGAAmG;AACnG,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,WAAW,CAAA;AAExD,iGAAiG;AACjG,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAWlF;AAED,4EAA4E;AAC5E,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,sBAAsB,GAC7B,mBAAmB,CAMrB;AAED,iGAAiG;AACjG,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,uCAAuC,GAC/C,sBAAsB,CA0CxB"}
1
+ {"version":3,"file":"Xl1BrowserConfig.d.ts","sourceRoot":"","sources":["../../src/Xl1BrowserConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAEV,aAAa,EACb,eAAe,EAGhB,MAAM,sBAAsB,CAAA;AAmC7B,iEAAiE;AACjE,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAA;CAClD;AAED,6DAA6D;AAC7D,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAA;IAClD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAA;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAA;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAA;CACzC;AAED,4DAA4D;AAC5D,MAAM,WAAW,sCAAsC;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAA;IAClD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAA;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAA;CACzC;AAED,gFAAgF;AAChF,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CACzB;AAED,2EAA2E;AAC3E,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAC1B;AAED,oFAAoF;AACpF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CACrB;AAED,wEAAwE;AACxE,MAAM,MAAM,sBAAsB,GAC5B,6BAA6B,GAC7B,8BAA8B,GAC9B,yBAAyB,CAAA;AAE/B,mGAAmG;AACnG,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,WAAW,CAAA;AAExD,iGAAiG;AACjG,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAWlF;AAED,4EAA4E;AAC5E,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,sBAAsB,GAC7B,mBAAmB,CAMrB;AAED,iGAAiG;AACjG,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,uCAAuC,GAC/C,sBAAsB,CAuDxB;AAED,gGAAgG;AAChG,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C,sBAAsB,CA4CxB"}
@@ -1,10 +1,17 @@
1
1
  import type { BrowserSystemProvisioner } from '@ariestools/browser-kit';
2
- import type { CreatableProviderContext, ProviderDescriptor as Xl1ProviderDescriptor, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-sdk';
2
+ import type { CreatableProviderContext, CreatableProviderFactory, ProviderDescriptor as Xl1ProviderDescriptor, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-sdk';
3
3
  import type { Xl1BrowserSystemConfig } from './Xl1BrowserConfig.ts';
4
4
  /** Stable browser-provider identifier retained across production minification. */
5
5
  export declare const SimpleXyoConnectionViewerProviderId = "SimpleXyoConnectionViewer";
6
6
  /** Stable browser-provider identifier retained across production minification. */
7
7
  export declare const SimpleXyoGatewayProviderId = "SimpleXyoGateway";
8
+ /** Stable id for the account-backed signer adapted to a browser runtime home. */
9
+ export declare const BrowserSimpleXyoSignerProviderId = "BrowserSimpleXyoSigner";
10
+ /** Exact runtime factory paired with the descriptor used during config resolution. */
11
+ export interface Xl1BrowserProviderRegistration {
12
+ readonly descriptor: Xl1ProviderDescriptor;
13
+ readonly factory: CreatableProviderFactory;
14
+ }
8
15
  /** Browser-kit plan metadata retaining the XL1 provider class used by the provisioner. */
9
16
  export interface Xl1BrowserProviderDeclaration {
10
17
  readonly connectionTypes: readonly string[];
@@ -19,11 +26,20 @@ export type Xl1BrowserProviderRuntimeContext = Omit<CreatableProviderContext, 'c
19
26
  export interface CreateXl1BrowserSystemProvisionerOptions {
20
27
  readonly config: Xl1BrowserSystemConfig;
21
28
  readonly context?: Xl1BrowserProviderRuntimeContext;
29
+ readonly providerRegistrations?: readonly Xl1BrowserProviderRegistration[];
22
30
  }
23
31
  /** Adapts one XL1 provider candidate into neutral browser-kit plan metadata. */
24
32
  export declare function xl1BrowserProviderDeclaration(descriptor: Xl1ProviderDescriptor): Xl1BrowserProviderDeclaration;
25
33
  /** Returns the XL1 provider catalog available to browser-system configuration. */
26
34
  export declare function xl1BrowserProviderCandidates(): Xl1ProviderDescriptor[];
35
+ /**
36
+ * Adapts an exact factory supplied by the owner realm into plan metadata.
37
+ *
38
+ * The factory is a runtime home, so its provider is intentionally presented as
39
+ * connectionless to the serializable planner. The exact factory is restored by
40
+ * the provisioner after resolution rather than reconstructed from its class.
41
+ */
42
+ export declare function xl1BrowserProviderRegistrationFromFactory(factory: CreatableProviderFactory, id?: string): Xl1BrowserProviderRegistration;
27
43
  /** Adapts an XL1 provider catalog for browser-kit planning. */
28
44
  export declare function xl1BrowserProviderDeclarations(candidates?: readonly Xl1ProviderDescriptor[]): Xl1BrowserProviderDeclaration[];
29
45
  /** Creates the owner-realm provisioner that instantiates one resolved XL1 locator. */
@@ -1 +1 @@
1
- {"version":3,"file":"Xl1BrowserProvider.d.ts","sourceRoot":"","sources":["../../src/Xl1BrowserProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAGvE,OAAO,KAAK,EAEV,wBAAwB,EAGxB,kBAAkB,IAAI,qBAAqB,EAC3C,8BAA8B,EAC/B,MAAM,sBAAsB,CAAA;AAU7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAEnE,kFAAkF;AAClF,eAAO,MAAM,mCAAmC,8BAA8B,CAAA;AAC9E,kFAAkF;AAClF,eAAO,MAAM,0BAA0B,qBAAqB,CAAA;AAE5D,0FAA0F;AAC1F,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAA;CACpC;AAED,qFAAqF;AACrF,MAAM,MAAM,gCAAgC,GAAG,IAAI,CACjD,wBAAwB,EACxB,QAAQ,GAAG,SAAS,CACrB,CAAA;AAED,8DAA8D;AAC9D,MAAM,WAAW,wCAAwC;IACvD,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,gCAAgC,CAAA;CACpD;AAED,gFAAgF;AAChF,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,qBAAqB,GAChC,6BAA6B,CAQ/B;AAED,kFAAkF;AAClF,wBAAgB,4BAA4B,IAAI,qBAAqB,EAAE,CAMtE;AAED,+DAA+D;AAC/D,wBAAgB,8BAA8B,CAC5C,UAAU,GAAE,SAAS,qBAAqB,EAAmC,GAC5E,6BAA6B,EAAE,CAEjC;AAED,sFAAsF;AACtF,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,wCAAwC,GAChD,wBAAwB,CAAC,8BAA8B,CAAC,CA8D1D"}
1
+ {"version":3,"file":"Xl1BrowserProvider.d.ts","sourceRoot":"","sources":["../../src/Xl1BrowserProvider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAGvE,OAAO,KAAK,EAEV,wBAAwB,EACxB,wBAAwB,EAGxB,kBAAkB,IAAI,qBAAqB,EAC3C,8BAA8B,EAC/B,MAAM,sBAAsB,CAAA;AAW7B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAEnE,kFAAkF;AAClF,eAAO,MAAM,mCAAmC,8BAA8B,CAAA;AAC9E,kFAAkF;AAClF,eAAO,MAAM,0BAA0B,qBAAqB,CAAA;AAC5D,iFAAiF;AACjF,eAAO,MAAM,gCAAgC,2BAA2B,CAAA;AAExE,sFAAsF;AACtF,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAA;IAC1C,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAA;CAC3C;AAED,0FAA0F;AAC1F,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IACpC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAA;CACpC;AAED,qFAAqF;AACrF,MAAM,MAAM,gCAAgC,GAAG,IAAI,CACjD,wBAAwB,EACxB,QAAQ,GAAG,SAAS,CACrB,CAAA;AAED,8DAA8D;AAC9D,MAAM,WAAW,wCAAwC;IACvD,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAA;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,gCAAgC,CAAA;IACnD,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,8BAA8B,EAAE,CAAA;CAC3E;AAED,gFAAgF;AAChF,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,qBAAqB,GAChC,6BAA6B,CAQ/B;AAED,kFAAkF;AAClF,wBAAgB,4BAA4B,IAAI,qBAAqB,EAAE,CAOtE;AAED;;;;;;GAMG;AACH,wBAAgB,yCAAyC,CACvD,OAAO,EAAE,wBAAwB,EACjC,EAAE,GAAE,MAA6B,GAChC,8BAA8B,CAShC;AAED,+DAA+D;AAC/D,wBAAgB,8BAA8B,CAC5C,UAAU,GAAE,SAAS,qBAAqB,EAAmC,GAC5E,6BAA6B,EAAE,CAEjC;AAED,sFAAsF;AACtF,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,wCAAwC,GAChD,wBAAwB,CAAC,8BAA8B,CAAC,CAqE1D"}
@@ -2,18 +2,24 @@ import type { ProviderActorParams } from '@ariestools/actor';
2
2
  import { ProviderActor } from '@ariestools/actor';
3
3
  import type { BrowserActor, ResolvedBrowserProviderPlan, ResolvedBrowserSystemConfig } from '@ariestools/browser-kit';
4
4
  import { BrowserActorCatalog as BrowserActorCatalogInstance } from '@ariestools/browser-kit';
5
- import type { ProviderFactoryLocatorInstance, XyoGateway } from '@xyo-network/xl1-sdk';
5
+ import type { ProviderFactoryLocatorInstance, XyoGateway, XyoGatewayRunner } from '@xyo-network/xl1-sdk';
6
6
  export declare const Xl1BrowserSystemActorType: "xl1-system";
7
7
  export declare const Xl1BrowserSystemWithDataLakeActorType: "xl1-system-with-data-lake";
8
+ export declare const Xl1BrowserRunnerSystemActorType: "xl1-runner-system";
9
+ export declare const Xl1BrowserRunnerSystemWithDataLakeActorType: "xl1-runner-system-with-data-lake";
8
10
  export interface Xl1BrowserSystemActorParams extends ProviderActorParams<ProviderFactoryLocatorInstance, ResolvedBrowserSystemConfig, unknown, ResolvedBrowserProviderPlan> {
9
11
  }
10
12
  /** Resident actor representing one configured XL1 gateway system. */
11
13
  export declare class Xl1BrowserSystemActor extends ProviderActor<Xl1BrowserSystemActorParams> {
12
14
  /** Resolves the gateway owned by this actor's immutable provider system. */
13
- getGateway(): Promise<XyoGateway>;
15
+ getGateway(): Promise<XyoGateway | XyoGatewayRunner>;
16
+ /** Resolves the required write-capable gateway from a runner-system actor. */
17
+ getGatewayRunner(): Promise<XyoGatewayRunner>;
14
18
  }
15
19
  export declare const Xl1BrowserSystemActorDependencies: readonly ["XyoGateway"];
16
20
  export declare const Xl1BrowserSystemWithDataLakeActorDependencies: readonly ["XyoGateway", "DataLakeViewer"];
21
+ export declare const Xl1BrowserRunnerSystemActorDependencies: readonly ["XyoGatewayRunner"];
22
+ export declare const Xl1BrowserRunnerSystemWithDataLakeActorDependencies: readonly ["XyoGatewayRunner", "DataLakeRunner", "DataLakeViewer"];
17
23
  /** Creates the default actor catalog and optionally installs application actors. */
18
24
  export declare function createXl1BrowserActorCatalog(): BrowserActorCatalogInstance<BrowserActor, ProviderFactoryLocatorInstance<import("@xyo-network/xl1-sdk").ProcessProviderContextType>>;
19
25
  //# sourceMappingURL=Xl1BrowserSystemActor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Xl1BrowserSystemActor.d.ts","sourceRoot":"","sources":["../../src/Xl1BrowserSystemActor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EACV,YAAY,EACZ,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,mBAAmB,IAAI,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAE5F,OAAO,KAAK,EACV,8BAA8B,EAC9B,UAAU,EACX,MAAM,sBAAsB,CAAA;AAM7B,eAAO,MAAM,yBAAyB,EAAG,YAAqB,CAAA;AAC9D,eAAO,MAAM,qCAAqC,EAAG,2BAAoC,CAAA;AAEzF,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB,CACtE,8BAA8B,EAC9B,2BAA2B,EAC3B,OAAO,EACP,2BAA2B,CAC5B;CAAG;AAEJ,qEAAqE;AACrE,qBAAa,qBAAsB,SAAQ,aAAa,CAAC,2BAA2B,CAAC;IACnF,4EAA4E;IACtE,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;CAMxC;AAED,eAAO,MAAM,iCAAiC,yBAA+B,CAAA;AAC7E,eAAO,MAAM,6CAA6C,2CAGhD,CAAA;AAEV,oFAAoF;AACpF,wBAAgB,4BAA4B,yIAyC3C"}
1
+ {"version":3,"file":"Xl1BrowserSystemActor.d.ts","sourceRoot":"","sources":["../../src/Xl1BrowserSystemActor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EACV,YAAY,EACZ,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,mBAAmB,IAAI,2BAA2B,EAAE,MAAM,yBAAyB,CAAA;AAE5F,OAAO,KAAK,EACV,8BAA8B,EAC9B,UAAU,EACV,gBAAgB,EACjB,MAAM,sBAAsB,CAAA;AAQ7B,eAAO,MAAM,yBAAyB,EAAG,YAAqB,CAAA;AAC9D,eAAO,MAAM,qCAAqC,EAAG,2BAAoC,CAAA;AACzF,eAAO,MAAM,+BAA+B,EAAG,mBAA4B,CAAA;AAC3E,eAAO,MAAM,2CAA2C,EAAG,kCAA2C,CAAA;AAEtG,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB,CACtE,8BAA8B,EAC9B,2BAA2B,EAC3B,OAAO,EACP,2BAA2B,CAC5B;CAAG;AAEJ,qEAAqE;AACrE,qBAAa,qBAAsB,SAAQ,aAAa,CAAC,2BAA2B,CAAC;IACnF,4EAA4E;IACtE,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,gBAAgB,CAAC;IAU1D,8EAA8E;IACxE,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAMpD;AAED,eAAO,MAAM,iCAAiC,yBAA+B,CAAA;AAC7E,eAAO,MAAM,6CAA6C,2CAGhD,CAAA;AACV,eAAO,MAAM,uCAAuC,+BAAqC,CAAA;AACzF,eAAO,MAAM,mDAAmD,mEAItD,CAAA;AAEV,oFAAoF;AACpF,wBAAgB,4BAA4B,yIAmE3C"}
@@ -1,3 +1,4 @@
1
+ export * from './launchXl1BrowserGatewaySystem.ts';
1
2
  export * from './launchXl1BrowserSystem.ts';
2
3
  export * from './Xl1BrowserConfig.ts';
3
4
  export * from './Xl1BrowserProvider.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAA;AAClD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA"}
@@ -1,3 +1,10 @@
1
+ // src/launchXl1BrowserGatewaySystem.ts
2
+ import {
3
+ DefaultAccountKey,
4
+ SimpleConnectionHandleCache,
5
+ XyoSignerMoniker as XyoSignerMoniker2
6
+ } from "@xyo-network/xl1-sdk";
7
+
1
8
  // src/launchXl1BrowserSystem.ts
2
9
  import { launchBrowserSystem } from "@ariestools/browser-kit";
3
10
 
@@ -7,15 +14,22 @@ import {
7
14
  BlockViewerMoniker,
8
15
  ChainContractViewerMoniker,
9
16
  ChainStateViewerMoniker,
17
+ DataLakeRunnerMoniker as DataLakeRunnerMoniker2,
10
18
  DataLakeViewerMoniker as DataLakeViewerMoniker2,
11
19
  FinalizationViewerMoniker,
12
20
  IndexViewerMoniker,
21
+ MempoolRunnerMoniker,
13
22
  NetworkStakeStepRewardsByPositionViewerMoniker,
14
23
  parseLocatorConfigFields,
15
24
  restConnectionFromS3Bucket,
16
25
  restGatewayConfigFromEndpoint,
26
+ SIGNER_RPC_CONNECTION,
27
+ synthesizeRpcConnectionBindings,
17
28
  XyoConnectionMoniker,
18
- XyoGatewayMoniker as XyoGatewayMoniker2
29
+ XyoGatewayMoniker as XyoGatewayMoniker2,
30
+ XyoGatewayRunnerMoniker as XyoGatewayRunnerMoniker2,
31
+ XyoRunnerMoniker,
32
+ XyoSignerMoniker
19
33
  } from "@xyo-network/xl1-sdk";
20
34
 
21
35
  // src/Xl1BrowserProvider.ts
@@ -28,10 +42,12 @@ import {
28
42
  providerCandidateFromClass,
29
43
  ProviderFactoryLocator,
30
44
  SimpleXyoConnectionViewer,
31
- SimpleXyoGateway
45
+ SimpleXyoGateway,
46
+ SimpleXyoSigner
32
47
  } from "@xyo-network/xl1-sdk";
33
48
  var SimpleXyoConnectionViewerProviderId = "SimpleXyoConnectionViewer";
34
49
  var SimpleXyoGatewayProviderId = "SimpleXyoGateway";
50
+ var BrowserSimpleXyoSignerProviderId = "BrowserSimpleXyoSigner";
35
51
  function xl1BrowserProviderDeclaration(descriptor) {
36
52
  return Object.freeze({
37
53
  connectionTypes: Object.freeze([...descriptor.connectionTypes]),
@@ -44,15 +60,32 @@ function xl1BrowserProviderDeclaration(descriptor) {
44
60
  function xl1BrowserProviderCandidates() {
45
61
  return [
46
62
  ...allProviderCandidates(),
63
+ browserRuntimeProviderCandidateFromClass(SimpleXyoSigner, BrowserSimpleXyoSignerProviderId),
47
64
  providerCandidateFromClass(SimpleXyoConnectionViewer, SimpleXyoConnectionViewerProviderId),
48
65
  providerCandidateFromClass(SimpleXyoGateway, SimpleXyoGatewayProviderId)
49
66
  ];
50
67
  }
68
+ function xl1BrowserProviderRegistrationFromFactory(factory, id = factory.providerName) {
69
+ return {
70
+ descriptor: {
71
+ ...providerCandidateFromClass(factory.creatableProvider, id),
72
+ connectionTypes: ["none"],
73
+ dependencies: [...factory.dependencies]
74
+ },
75
+ factory
76
+ };
77
+ }
51
78
  function xl1BrowserProviderDeclarations(candidates = xl1BrowserProviderCandidates()) {
52
79
  return candidates.map(xl1BrowserProviderDeclaration);
53
80
  }
54
81
  function createXl1BrowserSystemProvisioner(options) {
55
82
  return async (input) => {
83
+ const registeredFactories = new Map(
84
+ options.providerRegistrations?.map((registration) => [
85
+ registration.descriptor.id,
86
+ registration.factory
87
+ ])
88
+ );
56
89
  const providerBindings = mergeResolvedProviderBindings(
57
90
  options.config.providerBindings,
58
91
  input.compiled.config.providerBindings
@@ -71,7 +104,7 @@ function createXl1BrowserSystemProvisioner(options) {
71
104
  for (const selected of input.compiled.resolution.selected) {
72
105
  const declaration = selected;
73
106
  const descriptor = declaration.xl1;
74
- locator.register(descriptor.creatableProvider.factory([
107
+ locator.register(registeredFactories.get(descriptor.id) ?? descriptor.creatableProvider.factory([
75
108
  ...descriptor.dependencies ?? descriptor.creatableProvider.dependencies
76
109
  ]));
77
110
  }
@@ -112,6 +145,12 @@ function createXl1BrowserSystemProvisioner(options) {
112
145
  };
113
146
  };
114
147
  }
148
+ function browserRuntimeProviderCandidateFromClass(creatableProvider, id) {
149
+ return {
150
+ ...providerCandidateFromClass(creatableProvider, id),
151
+ connectionTypes: ["none"]
152
+ };
153
+ }
115
154
  function mergeResolvedProviderBindings(authored, resolved) {
116
155
  return Object.fromEntries(Object.entries(resolved).map(([moniker, binding]) => [
117
156
  moniker,
@@ -150,25 +189,45 @@ function isCreatableProviderInstance(value) {
150
189
  import { ProviderActor } from "@ariestools/actor";
151
190
  import { BrowserActorCatalog as BrowserActorCatalogInstance } from "@ariestools/browser-kit";
152
191
  import {
192
+ DataLakeRunnerMoniker,
153
193
  DataLakeViewerMoniker,
154
- XyoGatewayMoniker
194
+ XyoGatewayMoniker,
195
+ XyoGatewayRunnerMoniker
155
196
  } from "@xyo-network/xl1-sdk";
156
197
  var Xl1BrowserSystemActorType = "xl1-system";
157
198
  var Xl1BrowserSystemWithDataLakeActorType = "xl1-system-with-data-lake";
199
+ var Xl1BrowserRunnerSystemActorType = "xl1-runner-system";
200
+ var Xl1BrowserRunnerSystemWithDataLakeActorType = "xl1-runner-system-with-data-lake";
158
201
  var Xl1BrowserSystemActor = class extends ProviderActor {
159
202
  /** Resolves the gateway owned by this actor's immutable provider system. */
160
203
  async getGateway() {
161
204
  if (this.status !== "started") {
162
205
  throw new Error(`XL1 browser system actor is not running (status: ${this.status})`);
163
206
  }
207
+ if (this.providerSystem.resolution.bindings[XyoGatewayRunnerMoniker] !== void 0) {
208
+ return await this.getProvider(XyoGatewayRunnerMoniker);
209
+ }
164
210
  return await this.getProvider(XyoGatewayMoniker);
165
211
  }
212
+ /** Resolves the required write-capable gateway from a runner-system actor. */
213
+ async getGatewayRunner() {
214
+ if (this.status !== "started") {
215
+ throw new Error(`XL1 browser system actor is not running (status: ${this.status})`);
216
+ }
217
+ return await this.getProvider(XyoGatewayRunnerMoniker);
218
+ }
166
219
  };
167
220
  var Xl1BrowserSystemActorDependencies = [XyoGatewayMoniker];
168
221
  var Xl1BrowserSystemWithDataLakeActorDependencies = [
169
222
  XyoGatewayMoniker,
170
223
  DataLakeViewerMoniker
171
224
  ];
225
+ var Xl1BrowserRunnerSystemActorDependencies = [XyoGatewayRunnerMoniker];
226
+ var Xl1BrowserRunnerSystemWithDataLakeActorDependencies = [
227
+ XyoGatewayRunnerMoniker,
228
+ DataLakeRunnerMoniker,
229
+ DataLakeViewerMoniker
230
+ ];
172
231
  function createXl1BrowserActorCatalog() {
173
232
  const catalog = new BrowserActorCatalogInstance();
174
233
  const create = async (id, providerContext) => await Xl1BrowserSystemActor.create({
@@ -191,6 +250,22 @@ function createXl1BrowserActorCatalog() {
191
250
  dependencies: Xl1BrowserSystemWithDataLakeActorDependencies,
192
251
  type: Xl1BrowserSystemWithDataLakeActorType
193
252
  });
253
+ catalog.register({
254
+ create: async ({ id, providerContext }) => await create(
255
+ id,
256
+ providerContext
257
+ ),
258
+ dependencies: Xl1BrowserRunnerSystemActorDependencies,
259
+ type: Xl1BrowserRunnerSystemActorType
260
+ });
261
+ catalog.register({
262
+ create: async ({ id, providerContext }) => await create(
263
+ id,
264
+ providerContext
265
+ ),
266
+ dependencies: Xl1BrowserRunnerSystemWithDataLakeActorDependencies,
267
+ type: Xl1BrowserRunnerSystemWithDataLakeActorType
268
+ });
194
269
  return catalog;
195
270
  }
196
271
 
@@ -239,18 +314,125 @@ function createXl1RestBrowserSystemConfig(options) {
239
314
  };
240
315
  providerBindings[DataLakeViewerMoniker2] = { connection: "rest-data-lake" };
241
316
  }
317
+ if (options.signer !== void 0) {
318
+ if (options.rpcUrl === void 0) {
319
+ throw new Error("XL1 REST runner browser system requires rpcUrl");
320
+ }
321
+ addRunnerBindings(
322
+ connections,
323
+ providerBindings,
324
+ options.rpcUrl,
325
+ options.signer,
326
+ options.dataLakeEndpoint !== void 0
327
+ );
328
+ }
242
329
  if (options.primeCaches !== void 0) {
243
330
  providerBindings[NetworkStakeStepRewardsByPositionViewerMoniker] = { primeCaches: options.primeCaches };
244
331
  }
245
332
  return parseXl1BrowserSystemConfig({
246
333
  actors: options.actors ?? [{
247
334
  host: options.host,
248
- type: options.dataLakeEndpoint === void 0 ? Xl1BrowserSystemActorType : Xl1BrowserSystemWithDataLakeActorType
335
+ type: xl1BrowserSystemActorType(
336
+ options.signer !== void 0,
337
+ options.dataLakeEndpoint !== void 0
338
+ )
249
339
  }],
250
340
  connections,
251
341
  providerBindings
252
342
  });
253
343
  }
344
+ function createXl1RpcBrowserSystemConfig(options) {
345
+ const connections = {
346
+ "default-rpc": {
347
+ protocol: "http",
348
+ type: "rpc",
349
+ url: options.endpoint
350
+ }
351
+ };
352
+ const providerBindings = {
353
+ ...synthesizeRpcConnectionBindings(),
354
+ [XyoConnectionMoniker]: { provider: SimpleXyoConnectionViewerProviderId },
355
+ [XyoGatewayMoniker2]: { provider: SimpleXyoGatewayProviderId }
356
+ };
357
+ if (options.dataLakeEndpoint !== void 0) {
358
+ connections["rest-data-lake"] = {
359
+ baseUrl: options.dataLakeEndpoint,
360
+ type: "rest"
361
+ };
362
+ providerBindings[DataLakeViewerMoniker2] = { connection: "rest-data-lake" };
363
+ }
364
+ if (options.signer !== void 0) {
365
+ addRunnerBindings(
366
+ connections,
367
+ providerBindings,
368
+ options.endpoint,
369
+ options.signer,
370
+ options.dataLakeEndpoint !== void 0
371
+ );
372
+ }
373
+ if (options.primeCaches !== void 0) {
374
+ providerBindings[NetworkStakeStepRewardsByPositionViewerMoniker] = { primeCaches: options.primeCaches };
375
+ }
376
+ return parseXl1BrowserSystemConfig({
377
+ actors: options.actors ?? [{
378
+ host: options.host,
379
+ type: xl1BrowserSystemActorType(
380
+ options.signer !== void 0,
381
+ options.dataLakeEndpoint !== void 0
382
+ )
383
+ }],
384
+ connections,
385
+ providerBindings
386
+ });
387
+ }
388
+ function addRunnerBindings(connections, providerBindings, rpcUrl, signer, hasDataLake) {
389
+ connections["default-rpc"] = {
390
+ protocol: "http",
391
+ type: "rpc",
392
+ url: rpcUrl
393
+ };
394
+ providerBindings[MempoolRunnerMoniker] = {
395
+ connection: "default-rpc",
396
+ provider: "JsonRpcMempoolRunner"
397
+ };
398
+ providerBindings[XyoRunnerMoniker] = {
399
+ connection: "default-rpc",
400
+ provider: "JsonRpcXyoRunner"
401
+ };
402
+ providerBindings[XyoConnectionMoniker] = { provider: "SimpleXyoConnectionRunner" };
403
+ providerBindings[XyoGatewayMoniker2] = { provider: "SimpleXyoGatewayRunner" };
404
+ providerBindings[XyoGatewayRunnerMoniker2] = { provider: "SimpleXyoGatewayRunner" };
405
+ if (hasDataLake) {
406
+ providerBindings[DataLakeRunnerMoniker2] = {
407
+ connection: "rest-data-lake",
408
+ provider: "RestDataLakeRunner"
409
+ };
410
+ }
411
+ switch (signer.type) {
412
+ case "account": {
413
+ providerBindings[XyoSignerMoniker] = { provider: BrowserSimpleXyoSignerProviderId };
414
+ break;
415
+ }
416
+ case "provider": {
417
+ providerBindings[XyoSignerMoniker] = { provider: signer.provider };
418
+ break;
419
+ }
420
+ case "rpc": {
421
+ connections[SIGNER_RPC_CONNECTION] = { protocol: "http", type: "rpc" };
422
+ providerBindings[XyoSignerMoniker] = {
423
+ connection: SIGNER_RPC_CONNECTION,
424
+ provider: "JsonRpcXyoSigner"
425
+ };
426
+ break;
427
+ }
428
+ }
429
+ }
430
+ function xl1BrowserSystemActorType(isRunner, hasDataLake) {
431
+ if (isRunner) {
432
+ return hasDataLake ? Xl1BrowserRunnerSystemWithDataLakeActorType : Xl1BrowserRunnerSystemActorType;
433
+ }
434
+ return hasDataLake ? Xl1BrowserSystemWithDataLakeActorType : Xl1BrowserSystemActorType;
435
+ }
254
436
  function restGatewayConfigFromPathEndpoint(endpoint) {
255
437
  const baseUrl = endpoint.endsWith("/") ? endpoint.slice(0, -1) : endpoint;
256
438
  return {
@@ -277,7 +459,11 @@ function isRecord(value) {
277
459
  async function launchXl1BrowserSystem(options) {
278
460
  const config = parseXl1BrowserSystemConfig(options.config);
279
461
  const actorCatalog = options.actorCatalog ?? createXl1BrowserActorCatalog();
280
- const providerDescriptors = xl1BrowserProviderDeclarations(options.providerCandidates);
462
+ const providerCandidates = mergedProviderCandidates(
463
+ options.providerCandidates ?? xl1BrowserProviderCandidates(),
464
+ options.providerRegistrations
465
+ );
466
+ const providerDescriptors = xl1BrowserProviderDeclarations(providerCandidates);
281
467
  return await launchBrowserSystem({
282
468
  actorCatalog,
283
469
  config: toBrowserSystemConfig(config),
@@ -286,14 +472,120 @@ async function launchXl1BrowserSystem(options) {
286
472
  providerDescriptors,
287
473
  provision: createXl1BrowserSystemProvisioner({
288
474
  config,
289
- context: options.context
475
+ context: options.context,
476
+ providerRegistrations: options.providerRegistrations
290
477
  }),
291
478
  readyTimeoutMs: options.readyTimeoutMs
292
479
  });
293
480
  }
481
+ function mergedProviderCandidates(candidates, registrations) {
482
+ const result = new Map(candidates.map((candidate) => [candidate.id, candidate]));
483
+ for (const registration of registrations ?? []) {
484
+ result.set(registration.descriptor.id, registration.descriptor);
485
+ }
486
+ return [...result.values()];
487
+ }
488
+
489
+ // src/launchXl1BrowserGatewaySystem.ts
490
+ async function launchXl1BrowserGatewaySystem(options) {
491
+ const signing = browserSignerRuntime(options);
492
+ const config = options.transport === "rest" ? createXl1RestBrowserSystemConfig({
493
+ dataLakeEndpoint: options.dataLakeEndpoint,
494
+ endpoint: options.endpoint,
495
+ host: options.host,
496
+ layout: options.layout,
497
+ primeCaches: options.primeCaches,
498
+ rpcUrl: options.rpcUrl,
499
+ signer: signing.config
500
+ }) : createXl1RpcBrowserSystemConfig({
501
+ dataLakeEndpoint: options.dataLakeEndpoint,
502
+ endpoint: options.endpoint,
503
+ host: options.host,
504
+ primeCaches: options.primeCaches,
505
+ signer: signing.config
506
+ });
507
+ const session = await launchXl1BrowserSystem({
508
+ config,
509
+ context: signing.context,
510
+ host: options.host,
511
+ identity: options.identity,
512
+ providerCandidates: options.providerCandidates,
513
+ providerRegistrations: signing.registrations,
514
+ readyTimeoutMs: options.readyTimeoutMs
515
+ });
516
+ try {
517
+ const actor = session.actors.find((candidate) => candidate instanceof Xl1BrowserSystemActor);
518
+ if (actor === void 0) throw new Error("XL1 browser system actor was not created");
519
+ const gateway = await actor.getGateway();
520
+ return {
521
+ actor,
522
+ actors: session.actors,
523
+ gateway,
524
+ identity: session.identity,
525
+ stop: async () => await session.stop(),
526
+ system: session.system
527
+ };
528
+ } catch (launchError) {
529
+ const [stopResult] = await Promise.allSettled([session.stop()]);
530
+ if (stopResult.status === "rejected") {
531
+ throw new AggregateError(
532
+ [launchError, stopResult.reason],
533
+ "XL1 browser system failed to expose a gateway and stop cleanly",
534
+ { cause: launchError }
535
+ );
536
+ }
537
+ throw launchError;
538
+ }
539
+ }
540
+ function browserSignerRuntime(options) {
541
+ if (options.signerFactory !== void 0) {
542
+ const registration = xl1BrowserProviderRegistrationFromFactory(
543
+ options.signerFactory,
544
+ options.signerProviderId
545
+ );
546
+ return {
547
+ config: { provider: registration.descriptor.id, type: "provider" },
548
+ context: options.context,
549
+ registrations: [registration]
550
+ };
551
+ }
552
+ if (options.signerAccount !== void 0) {
553
+ return {
554
+ config: { type: "account" },
555
+ context: {
556
+ caches: {},
557
+ singletons: {},
558
+ ...options.context,
559
+ accounts: {
560
+ ...options.context?.accounts,
561
+ [DefaultAccountKey]: options.signerAccount
562
+ }
563
+ }
564
+ };
565
+ }
566
+ if (options.signerTransport !== void 0) {
567
+ const connectionHandles = options.context?.connectionHandles ?? new SimpleConnectionHandleCache();
568
+ connectionHandles.set(`rpc-transport:${XyoSignerMoniker2}`, options.signerTransport);
569
+ return {
570
+ config: { type: "rpc" },
571
+ context: {
572
+ caches: {},
573
+ singletons: {},
574
+ ...options.context,
575
+ connectionHandles
576
+ }
577
+ };
578
+ }
579
+ return { context: options.context };
580
+ }
294
581
  export {
582
+ BrowserSimpleXyoSignerProviderId,
295
583
  SimpleXyoConnectionViewerProviderId,
296
584
  SimpleXyoGatewayProviderId,
585
+ Xl1BrowserRunnerSystemActorDependencies,
586
+ Xl1BrowserRunnerSystemActorType,
587
+ Xl1BrowserRunnerSystemWithDataLakeActorDependencies,
588
+ Xl1BrowserRunnerSystemWithDataLakeActorType,
297
589
  Xl1BrowserSystemActor,
298
590
  Xl1BrowserSystemActorDependencies,
299
591
  Xl1BrowserSystemActorType,
@@ -302,11 +594,14 @@ export {
302
594
  createXl1BrowserActorCatalog,
303
595
  createXl1BrowserSystemProvisioner,
304
596
  createXl1RestBrowserSystemConfig,
597
+ createXl1RpcBrowserSystemConfig,
598
+ launchXl1BrowserGatewaySystem,
305
599
  launchXl1BrowserSystem,
306
600
  parseXl1BrowserSystemConfig,
307
601
  toBrowserSystemConfig,
308
602
  xl1BrowserProviderCandidates,
309
603
  xl1BrowserProviderDeclaration,
310
- xl1BrowserProviderDeclarations
604
+ xl1BrowserProviderDeclarations,
605
+ xl1BrowserProviderRegistrationFromFactory
311
606
  };
312
607
  //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/launchXl1BrowserSystem.ts", "../../src/Xl1BrowserConfig.ts", "../../src/Xl1BrowserProvider.ts", "../../src/Xl1BrowserSystemActor.ts"],
4
- "sourcesContent": ["import type {\n BrowserActor,\n BrowserActorCatalog,\n BrowserProviderDescriptor,\n BrowserSystemIdentity,\n BrowserSystemSession,\n} from '@ariestools/browser-kit'\nimport { launchBrowserSystem } from '@ariestools/browser-kit'\nimport type {\n ProviderDescriptor as Xl1ProviderDescriptor,\n ProviderFactoryLocatorInstance,\n} from '@xyo-network/xl1-sdk'\n\nimport {\n parseXl1BrowserSystemConfig,\n toBrowserSystemConfig,\n} from './Xl1BrowserConfig.ts'\nimport {\n createXl1BrowserSystemProvisioner,\n xl1BrowserProviderDeclarations,\n type Xl1BrowserProviderRuntimeContext,\n} from './Xl1BrowserProvider.ts'\nimport { createXl1BrowserActorCatalog } from './Xl1BrowserSystemActor.ts'\n\n/** Inputs for launching one owner-resolved XL1 browser provider system. */\nexport interface LaunchXl1BrowserSystemOptions<TActor extends BrowserActor = BrowserActor> {\n readonly actorCatalog?: BrowserActorCatalog<TActor, ProviderFactoryLocatorInstance>\n readonly config: unknown\n readonly context?: Xl1BrowserProviderRuntimeContext\n readonly host?: string\n readonly identity?: BrowserSystemIdentity\n readonly providerCandidates?: readonly Xl1ProviderDescriptor[]\n readonly readyTimeoutMs?: number\n}\n\n/** Parses, resolves, provisions, and starts one XL1 system from browser-safe config. */\nexport async function launchXl1BrowserSystem<TActor extends BrowserActor = BrowserActor>(\n options: LaunchXl1BrowserSystemOptions<TActor>,\n): Promise<BrowserSystemSession<TActor, ProviderFactoryLocatorInstance>> {\n const config = parseXl1BrowserSystemConfig(options.config)\n const actorCatalog = options.actorCatalog\n ?? createXl1BrowserActorCatalog() as BrowserActorCatalog<TActor, ProviderFactoryLocatorInstance>\n const providerDescriptors = xl1BrowserProviderDeclarations(options.providerCandidates)\n return await launchBrowserSystem({\n actorCatalog,\n config: toBrowserSystemConfig(config),\n host: options.host,\n identity: options.identity,\n providerDescriptors: providerDescriptors as unknown as BrowserProviderDescriptor[],\n provision: createXl1BrowserSystemProvisioner({\n config,\n context: options.context,\n }),\n readyTimeoutMs: options.readyTimeoutMs,\n })\n}\n", "import type {\n BrowserActorSelection,\n BrowserSystemConfig,\n} from '@ariestools/browser-kit'\nimport { parseBrowserSystemConfig } from '@ariestools/browser-kit'\nimport type {\n ConnectionsConfig,\n LocatorConfig,\n PrimeCachesMode,\n ProviderBindingsConfig,\n RestGatewayConfig,\n} from '@xyo-network/xl1-sdk'\nimport {\n BlockViewerMoniker,\n ChainContractViewerMoniker,\n ChainStateViewerMoniker,\n DataLakeViewerMoniker,\n FinalizationViewerMoniker,\n IndexViewerMoniker,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n parseLocatorConfigFields,\n restConnectionFromS3Bucket,\n restGatewayConfigFromEndpoint,\n XyoConnectionMoniker,\n XyoGatewayMoniker,\n} from '@xyo-network/xl1-sdk'\n\nimport {\n SimpleXyoConnectionViewerProviderId,\n SimpleXyoGatewayProviderId,\n} from './Xl1BrowserProvider.ts'\nimport {\n Xl1BrowserSystemActorType,\n Xl1BrowserSystemWithDataLakeActorType,\n} from './Xl1BrowserSystemActor.ts'\n\n/** Authored XL1 locator fields plus browser actor selections. */\nexport interface Xl1BrowserSystemConfig extends LocatorConfig {\n readonly actors: readonly BrowserActorSelection[]\n}\n\n/** Options for the standard read-only REST-backed XL1 browser system. */\nexport interface CreateXl1RestBrowserSystemConfigOptions {\n readonly actors?: readonly BrowserActorSelection[]\n readonly dataLakeEndpoint?: string\n readonly endpoint: string\n readonly host?: string\n readonly layout?: Xl1RestEndpointLayout\n readonly primeCaches?: PrimeCachesMode\n}\n\n/** How the REST gateway's finalized, chain-state, and index URLs are derived from its endpoint. */\nexport type Xl1RestEndpointLayout = 'path' | 'subdomain'\n\n/** Parses XL1 locator fields and browser actor selections without importing code from config. */\nexport function parseXl1BrowserSystemConfig(input: unknown): Xl1BrowserSystemConfig {\n const locatorConfig = parseLocatorConfigFields(input)\n const browserConfig = parseBrowserSystemConfig({\n actors: isRecord(input) ? input['actors'] : undefined,\n connections: locatorConfig.connections,\n providerBindings: toBrowserProviderBindings(locatorConfig.providerBindings),\n })\n return Object.freeze({\n ...locatorConfig,\n actors: Object.freeze([...(browserConfig.actors ?? [])]),\n })\n}\n\n/** Projects the XL1 config onto the neutral fields browser-kit compiles. */\nexport function toBrowserSystemConfig(\n config: Xl1BrowserSystemConfig,\n): BrowserSystemConfig {\n return {\n actors: config.actors,\n connections: config.connections,\n providerBindings: toBrowserProviderBindings(config.providerBindings),\n }\n}\n\n/** Creates explicit REST connections and provider bindings for a read-only XL1 gateway actor. */\nexport function createXl1RestBrowserSystemConfig(\n options: CreateXl1RestBrowserSystemConfigOptions,\n): Xl1BrowserSystemConfig {\n const buckets = options.layout === 'path'\n ? restGatewayConfigFromPathEndpoint(options.endpoint)\n : restGatewayConfigFromEndpoint(options.endpoint)\n const finalized = buckets.finalized\n if (finalized === undefined) throw new Error('XL1 REST gateway has no finalized bucket')\n\n const connections: ConnectionsConfig = {\n 'rest-chain-state': restConnectionFromS3Bucket(buckets.chainState ?? finalized),\n 'rest-finalized': restConnectionFromS3Bucket(finalized),\n 'rest-index': restConnectionFromS3Bucket(buckets.index ?? finalized),\n }\n const providerBindings: ProviderBindingsConfig = {\n [BlockViewerMoniker]: { connection: 'rest-finalized' },\n [ChainContractViewerMoniker]: { connection: 'rest-chain-state' },\n [ChainStateViewerMoniker]: { connection: 'rest-chain-state' },\n [FinalizationViewerMoniker]: { connection: 'rest-finalized' },\n [IndexViewerMoniker]: { connection: 'rest-index' },\n [XyoConnectionMoniker]: { provider: SimpleXyoConnectionViewerProviderId },\n [XyoGatewayMoniker]: { provider: SimpleXyoGatewayProviderId },\n }\n if (options.dataLakeEndpoint !== undefined) {\n connections['rest-data-lake'] = {\n baseUrl: options.dataLakeEndpoint,\n type: 'rest',\n }\n providerBindings[DataLakeViewerMoniker] = { connection: 'rest-data-lake' }\n }\n if (options.primeCaches !== undefined) {\n providerBindings[NetworkStakeStepRewardsByPositionViewerMoniker] = { primeCaches: options.primeCaches }\n }\n\n return parseXl1BrowserSystemConfig({\n actors: options.actors ?? [{\n host: options.host,\n type: options.dataLakeEndpoint === undefined\n ? Xl1BrowserSystemActorType\n : Xl1BrowserSystemWithDataLakeActorType,\n }],\n connections,\n providerBindings,\n })\n}\n\nfunction restGatewayConfigFromPathEndpoint(\n endpoint: string,\n): Required<Pick<RestGatewayConfig, 'chainState' | 'finalized' | 'index'>> {\n const baseUrl = endpoint.endsWith('/') ? endpoint.slice(0, -1) : endpoint\n return {\n chainState: { readUrl: `${baseUrl}/state` },\n finalized: { readUrl: `${baseUrl}/blocks` },\n index: { readUrl: `${baseUrl}/indexes` },\n }\n}\n\nfunction toBrowserProviderBindings(\n bindings: ProviderBindingsConfig,\n): NonNullable<BrowserSystemConfig['providerBindings']> {\n return Object.fromEntries(Object.entries(bindings).map(([moniker, binding]) => [\n moniker,\n binding === undefined\n ? {}\n : {\n connection: binding.connection,\n options: binding.options,\n provider: binding.provider,\n },\n ]))\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n", "import { stopOrShutdown } from '@ariestools/actor'\nimport type { BrowserSystemProvisioner } from '@ariestools/browser-kit'\nimport { createResolvedBrowserProviderPlan } from '@ariestools/browser-kit'\nimport { createResolvedProviderSystem } from '@ariestools/provider-model'\nimport type {\n ConnectionsConfig,\n CreatableProviderContext,\n CreatableProviderInstance,\n ProviderBindingsConfig,\n ProviderDescriptor as Xl1ProviderDescriptor,\n ProviderFactoryLocatorInstance,\n} from '@xyo-network/xl1-sdk'\nimport {\n allProviderCandidates,\n compileLocatorConfig,\n providerCandidateFromClass,\n ProviderFactoryLocator,\n SimpleXyoConnectionViewer,\n SimpleXyoGateway,\n} from '@xyo-network/xl1-sdk'\n\nimport type { Xl1BrowserSystemConfig } from './Xl1BrowserConfig.ts'\n\n/** Stable browser-provider identifier retained across production minification. */\nexport const SimpleXyoConnectionViewerProviderId = 'SimpleXyoConnectionViewer'\n/** Stable browser-provider identifier retained across production minification. */\nexport const SimpleXyoGatewayProviderId = 'SimpleXyoGateway'\n\n/** Browser-kit plan metadata retaining the XL1 provider class used by the provisioner. */\nexport interface Xl1BrowserProviderDeclaration {\n readonly connectionTypes: readonly string[]\n readonly dependencies: readonly string[]\n readonly id: string\n readonly monikers: readonly string[]\n readonly xl1: Xl1ProviderDescriptor\n}\n\n/** Non-serializable XL1 runtime homes supplied by the realm that owns the system. */\nexport type Xl1BrowserProviderRuntimeContext = Omit<\n CreatableProviderContext,\n 'config' | 'locator'\n>\n\n/** Options captured by the XL1 browser-system provisioner. */\nexport interface CreateXl1BrowserSystemProvisionerOptions {\n readonly config: Xl1BrowserSystemConfig\n readonly context?: Xl1BrowserProviderRuntimeContext\n}\n\n/** Adapts one XL1 provider candidate into neutral browser-kit plan metadata. */\nexport function xl1BrowserProviderDeclaration(\n descriptor: Xl1ProviderDescriptor,\n): Xl1BrowserProviderDeclaration {\n return Object.freeze({\n connectionTypes: Object.freeze([...descriptor.connectionTypes]),\n dependencies: Object.freeze([...(descriptor.dependencies ?? [])]),\n id: descriptor.id,\n monikers: Object.freeze([...descriptor.satisfies]),\n xl1: descriptor,\n })\n}\n\n/** Returns the XL1 provider catalog available to browser-system configuration. */\nexport function xl1BrowserProviderCandidates(): Xl1ProviderDescriptor[] {\n return [\n ...allProviderCandidates(),\n providerCandidateFromClass(SimpleXyoConnectionViewer, SimpleXyoConnectionViewerProviderId),\n providerCandidateFromClass(SimpleXyoGateway, SimpleXyoGatewayProviderId),\n ]\n}\n\n/** Adapts an XL1 provider catalog for browser-kit planning. */\nexport function xl1BrowserProviderDeclarations(\n candidates: readonly Xl1ProviderDescriptor[] = xl1BrowserProviderCandidates(),\n): Xl1BrowserProviderDeclaration[] {\n return candidates.map(xl1BrowserProviderDeclaration)\n}\n\n/** Creates the owner-realm provisioner that instantiates one resolved XL1 locator. */\nexport function createXl1BrowserSystemProvisioner(\n options: CreateXl1BrowserSystemProvisionerOptions,\n): BrowserSystemProvisioner<ProviderFactoryLocatorInstance> {\n return async (input) => {\n const providerBindings = mergeResolvedProviderBindings(\n options.config.providerBindings,\n input.compiled.config.providerBindings,\n )\n const locatorConfig = compileLocatorConfig({\n ...options.config,\n connections: input.compiled.config.connections as ConnectionsConfig,\n providerBindings,\n })\n const locator = new ProviderFactoryLocator({\n caches: {},\n singletons: {},\n ...options.context,\n config: locatorConfig,\n })\n for (const selected of input.compiled.resolution.selected) {\n const declaration = selected as unknown as Xl1BrowserProviderDeclaration\n const descriptor = declaration.xl1\n locator.register(descriptor.creatableProvider.factory([\n ...(descriptor.dependencies ?? descriptor.creatableProvider.dependencies),\n ]))\n }\n locator.freeze()\n\n try {\n for (const moniker of input.compiled.declaration.dependencies) {\n await locator.getInstance(moniker)\n }\n } catch (startError) {\n const releaseError = await releaseXl1Providers(locator).catch(error => error)\n if (releaseError !== undefined) {\n throw new AggregateError(\n [startError, releaseError],\n 'XL1 browser provider provisioning and cleanup both failed',\n { cause: startError },\n )\n }\n throw startError\n }\n\n const resolvedConfig = Object.freeze({\n ...options.config,\n actors: input.config.actors,\n connections: input.compiled.config.connections as ConnectionsConfig,\n providerBindings,\n })\n const system = createResolvedProviderSystem({\n config: resolvedConfig,\n locator,\n resolution: createResolvedBrowserProviderPlan(input.compiled.resolution),\n })\n let releasePromise: Promise<void> | undefined\n return {\n release: () => {\n releasePromise ??= releaseXl1Providers(locator)\n return releasePromise\n },\n system,\n }\n }\n}\n\nfunction mergeResolvedProviderBindings(\n authored: ProviderBindingsConfig,\n resolved: Readonly<Record<string, {\n readonly connection?: string\n readonly options?: Readonly<Record<string, unknown>>\n readonly provider?: string\n } | undefined>>,\n): ProviderBindingsConfig {\n return Object.fromEntries(Object.entries(resolved).map(([moniker, binding]) => [\n moniker,\n {\n ...authored[moniker],\n ...binding,\n },\n ]))\n}\n\nasync function releaseXl1Providers(locator: ProviderFactoryLocatorInstance): Promise<void> {\n const instances = await instantiatedProviders(locator)\n for (const instance of instances) instance.requestCancel?.()\n\n const errors: unknown[] = []\n for (const instance of instances.toReversed()) {\n try {\n await stopOrShutdown(instance)\n } catch (error) {\n errors.push(error)\n }\n }\n if (errors.length > 0) {\n throw new AggregateError(errors, `${errors.length} XL1 browser provider(s) failed to stop`)\n }\n}\n\nasync function instantiatedProviders(\n locator: ProviderFactoryLocatorInstance,\n): Promise<(CreatableProviderInstance & { requestCancel?(reason?: unknown): void })[]> {\n const instances = await Promise.all(\n Object.values(locator.context.singletons).map(async value => await value),\n )\n return [...new Set(instances)].filter(isCreatableProviderInstance)\n}\n\nfunction isCreatableProviderInstance(\n value: unknown,\n): value is CreatableProviderInstance & { requestCancel?(reason?: unknown): void } {\n return typeof value === 'object'\n && value !== null\n && 'stop' in value\n && typeof value.stop === 'function'\n}\n", "import type {\n ProviderActorContext,\n ProviderActorParams,\n} from '@ariestools/actor'\nimport { ProviderActor } from '@ariestools/actor'\nimport type {\n BrowserActor,\n ResolvedBrowserProviderPlan,\n ResolvedBrowserSystemConfig,\n} from '@ariestools/browser-kit'\nimport { BrowserActorCatalog as BrowserActorCatalogInstance } from '@ariestools/browser-kit'\nimport type { CreatableName } from '@ariestools/sdk'\nimport type {\n ProviderFactoryLocatorInstance,\n XyoGateway,\n} from '@xyo-network/xl1-sdk'\nimport {\n DataLakeViewerMoniker,\n XyoGatewayMoniker,\n} from '@xyo-network/xl1-sdk'\n\nexport const Xl1BrowserSystemActorType = 'xl1-system' as const\nexport const Xl1BrowserSystemWithDataLakeActorType = 'xl1-system-with-data-lake' as const\n\nexport interface Xl1BrowserSystemActorParams extends ProviderActorParams<\n ProviderFactoryLocatorInstance,\n ResolvedBrowserSystemConfig,\n unknown,\n ResolvedBrowserProviderPlan\n> {}\n\n/** Resident actor representing one configured XL1 gateway system. */\nexport class Xl1BrowserSystemActor extends ProviderActor<Xl1BrowserSystemActorParams> {\n /** Resolves the gateway owned by this actor's immutable provider system. */\n async getGateway(): Promise<XyoGateway> {\n if (this.status !== 'started') {\n throw new Error(`XL1 browser system actor is not running (status: ${this.status})`)\n }\n return await this.getProvider<XyoGateway>(XyoGatewayMoniker)\n }\n}\n\nexport const Xl1BrowserSystemActorDependencies = [XyoGatewayMoniker] as const\nexport const Xl1BrowserSystemWithDataLakeActorDependencies = [\n XyoGatewayMoniker,\n DataLakeViewerMoniker,\n] as const\n\n/** Creates the default actor catalog and optionally installs application actors. */\nexport function createXl1BrowserActorCatalog() {\n const catalog = new BrowserActorCatalogInstance<BrowserActor, ProviderFactoryLocatorInstance>()\n const create = async (\n id: string,\n providerContext: ProviderActorContext<\n ProviderFactoryLocatorInstance,\n ResolvedBrowserSystemConfig,\n unknown,\n ResolvedBrowserProviderPlan\n >,\n ) => await Xl1BrowserSystemActor.create({\n name: id as CreatableName,\n providerContext,\n })\n catalog.register({\n create: async ({ id, providerContext }) => await create(\n id,\n providerContext as ProviderActorContext<\n ProviderFactoryLocatorInstance,\n ResolvedBrowserSystemConfig,\n unknown,\n ResolvedBrowserProviderPlan\n >,\n ),\n dependencies: Xl1BrowserSystemActorDependencies,\n type: Xl1BrowserSystemActorType,\n })\n catalog.register({\n create: async ({ id, providerContext }) => await create(\n id,\n providerContext as ProviderActorContext<\n ProviderFactoryLocatorInstance,\n ResolvedBrowserSystemConfig,\n unknown,\n ResolvedBrowserProviderPlan\n >,\n ),\n dependencies: Xl1BrowserSystemWithDataLakeActorDependencies,\n type: Xl1BrowserSystemWithDataLakeActorType,\n })\n return catalog\n}\n"],
5
- "mappings": "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",
6
- "names": ["DataLakeViewerMoniker", "XyoGatewayMoniker", "XyoGatewayMoniker", "DataLakeViewerMoniker"]
3
+ "sources": ["../../src/launchXl1BrowserGatewaySystem.ts", "../../src/launchXl1BrowserSystem.ts", "../../src/Xl1BrowserConfig.ts", "../../src/Xl1BrowserProvider.ts", "../../src/Xl1BrowserSystemActor.ts"],
4
+ "sourcesContent": ["import type {\n BrowserSystemIdentity,\n BrowserSystemSession,\n} from '@ariestools/browser-kit'\nimport type {\n CreatableProviderFactory,\n PrimeCachesMode,\n ProviderDescriptor as Xl1ProviderDescriptor,\n ProviderFactoryLocatorInstance,\n RpcTransport,\n XyoGateway,\n XyoGatewayRunner,\n XyoSignerRpcSchemas,\n} from '@xyo-network/xl1-sdk'\nimport {\n DefaultAccountKey,\n SimpleConnectionHandleCache,\n XyoSignerMoniker,\n} from '@xyo-network/xl1-sdk'\n\nimport { launchXl1BrowserSystem } from './launchXl1BrowserSystem.ts'\nimport type {\n Xl1BrowserSignerConfig,\n Xl1RestEndpointLayout,\n} from './Xl1BrowserConfig.ts'\nimport {\n createXl1RestBrowserSystemConfig,\n createXl1RpcBrowserSystemConfig,\n} from './Xl1BrowserConfig.ts'\nimport type {\n Xl1BrowserProviderRegistration,\n Xl1BrowserProviderRuntimeContext,\n} from './Xl1BrowserProvider.ts'\nimport { xl1BrowserProviderRegistrationFromFactory } from './Xl1BrowserProvider.ts'\nimport { Xl1BrowserSystemActor } from './Xl1BrowserSystemActor.ts'\n\n/** How a browser gateway reads XL1 chain data. */\nexport type Xl1BrowserGatewayTransport = 'rest' | 'rpc'\n\n/** Account instance accepted by the browser provider runtime home. */\nexport type Xl1BrowserSignerAccount = NonNullable<\n Xl1BrowserProviderRuntimeContext['accounts']\n>[string]\n\n/** Inputs for launching one standard browser-owned XL1 gateway system. */\nexport interface LaunchXl1BrowserGatewaySystemOptions {\n readonly context?: Xl1BrowserProviderRuntimeContext\n readonly dataLakeEndpoint?: string\n /** REST root for REST mode, or the complete RPC URL for RPC mode. */\n readonly endpoint: string\n readonly host?: string\n readonly identity?: BrowserSystemIdentity\n readonly layout?: Xl1RestEndpointLayout\n readonly primeCaches?: PrimeCachesMode\n readonly providerCandidates?: readonly Xl1ProviderDescriptor[]\n readonly readyTimeoutMs?: number\n /** Required for a signed REST system; ignored for RPC systems. */\n readonly rpcUrl?: string\n readonly signerAccount?: Xl1BrowserSignerAccount\n readonly signerFactory?: CreatableProviderFactory\n /** Stable config identifier for signerFactory; defaults to its providerName. */\n readonly signerProviderId?: string\n readonly signerTransport?: RpcTransport<XyoSignerRpcSchemas>\n readonly transport: Xl1BrowserGatewayTransport\n}\n\n/** Running stock XL1 browser system with its actor and gateway exposed. */\nexport interface Xl1BrowserGatewaySystemSession\n extends BrowserSystemSession<Xl1BrowserSystemActor, ProviderFactoryLocatorInstance> {\n readonly actor: Xl1BrowserSystemActor\n readonly gateway: XyoGateway | XyoGatewayRunner\n}\n\n/**\n * Launches a read-only or signed REST/RPC gateway through one browser-kit\n * provider system. Signing precedence is factory, account, then RPC transport.\n */\nexport async function launchXl1BrowserGatewaySystem(\n options: LaunchXl1BrowserGatewaySystemOptions,\n): Promise<Xl1BrowserGatewaySystemSession> {\n const signing = browserSignerRuntime(options)\n const config = options.transport === 'rest'\n ? createXl1RestBrowserSystemConfig({\n dataLakeEndpoint: options.dataLakeEndpoint,\n endpoint: options.endpoint,\n host: options.host,\n layout: options.layout,\n primeCaches: options.primeCaches,\n rpcUrl: options.rpcUrl,\n signer: signing.config,\n })\n : createXl1RpcBrowserSystemConfig({\n dataLakeEndpoint: options.dataLakeEndpoint,\n endpoint: options.endpoint,\n host: options.host,\n primeCaches: options.primeCaches,\n signer: signing.config,\n })\n const session = await launchXl1BrowserSystem<Xl1BrowserSystemActor>({\n config,\n context: signing.context,\n host: options.host,\n identity: options.identity,\n providerCandidates: options.providerCandidates,\n providerRegistrations: signing.registrations,\n readyTimeoutMs: options.readyTimeoutMs,\n })\n\n try {\n const actor = session.actors.find(candidate => candidate instanceof Xl1BrowserSystemActor)\n if (actor === undefined) throw new Error('XL1 browser system actor was not created')\n const gateway = await actor.getGateway()\n return {\n actor,\n actors: session.actors,\n gateway,\n identity: session.identity,\n stop: async () => await session.stop(),\n system: session.system,\n }\n } catch (launchError) {\n const [stopResult] = await Promise.allSettled([session.stop()])\n if (stopResult.status === 'rejected') {\n throw new AggregateError(\n [launchError, stopResult.reason],\n 'XL1 browser system failed to expose a gateway and stop cleanly',\n { cause: launchError },\n )\n }\n throw launchError\n }\n}\n\ninterface BrowserSignerRuntime {\n readonly config?: Xl1BrowserSignerConfig\n readonly context?: Xl1BrowserProviderRuntimeContext\n readonly registrations?: readonly Xl1BrowserProviderRegistration[]\n}\n\nfunction browserSignerRuntime(\n options: LaunchXl1BrowserGatewaySystemOptions,\n): BrowserSignerRuntime {\n if (options.signerFactory !== undefined) {\n const registration = xl1BrowserProviderRegistrationFromFactory(\n options.signerFactory,\n options.signerProviderId,\n )\n return {\n config: { provider: registration.descriptor.id, type: 'provider' },\n context: options.context,\n registrations: [registration],\n }\n }\n if (options.signerAccount !== undefined) {\n return {\n config: { type: 'account' },\n context: {\n caches: {},\n singletons: {},\n ...options.context,\n accounts: {\n ...options.context?.accounts,\n [DefaultAccountKey]: options.signerAccount,\n },\n },\n }\n }\n if (options.signerTransport !== undefined) {\n const connectionHandles = options.context?.connectionHandles\n ?? new SimpleConnectionHandleCache()\n connectionHandles.set(`rpc-transport:${XyoSignerMoniker}`, options.signerTransport)\n return {\n config: { type: 'rpc' },\n context: {\n caches: {},\n singletons: {},\n ...options.context,\n connectionHandles,\n },\n }\n }\n return { context: options.context }\n}\n", "import type {\n BrowserActor,\n BrowserActorCatalog,\n BrowserProviderDescriptor,\n BrowserSystemIdentity,\n BrowserSystemSession,\n} from '@ariestools/browser-kit'\nimport { launchBrowserSystem } from '@ariestools/browser-kit'\nimport type {\n ProviderDescriptor as Xl1ProviderDescriptor,\n ProviderFactoryLocatorInstance,\n} from '@xyo-network/xl1-sdk'\n\nimport {\n parseXl1BrowserSystemConfig,\n toBrowserSystemConfig,\n} from './Xl1BrowserConfig.ts'\nimport {\n createXl1BrowserSystemProvisioner,\n xl1BrowserProviderCandidates,\n xl1BrowserProviderDeclarations,\n type Xl1BrowserProviderRegistration,\n type Xl1BrowserProviderRuntimeContext,\n} from './Xl1BrowserProvider.ts'\nimport { createXl1BrowserActorCatalog } from './Xl1BrowserSystemActor.ts'\n\n/** Inputs for launching one owner-resolved XL1 browser provider system. */\nexport interface LaunchXl1BrowserSystemOptions<TActor extends BrowserActor = BrowserActor> {\n readonly actorCatalog?: BrowserActorCatalog<TActor, ProviderFactoryLocatorInstance>\n readonly config: unknown\n readonly context?: Xl1BrowserProviderRuntimeContext\n readonly host?: string\n readonly identity?: BrowserSystemIdentity\n readonly providerCandidates?: readonly Xl1ProviderDescriptor[]\n readonly providerRegistrations?: readonly Xl1BrowserProviderRegistration[]\n readonly readyTimeoutMs?: number\n}\n\n/** Parses, resolves, provisions, and starts one XL1 system from browser-safe config. */\nexport async function launchXl1BrowserSystem<TActor extends BrowserActor = BrowserActor>(\n options: LaunchXl1BrowserSystemOptions<TActor>,\n): Promise<BrowserSystemSession<TActor, ProviderFactoryLocatorInstance>> {\n const config = parseXl1BrowserSystemConfig(options.config)\n const actorCatalog = options.actorCatalog\n ?? createXl1BrowserActorCatalog() as BrowserActorCatalog<TActor, ProviderFactoryLocatorInstance>\n const providerCandidates = mergedProviderCandidates(\n options.providerCandidates ?? xl1BrowserProviderCandidates(),\n options.providerRegistrations,\n )\n const providerDescriptors = xl1BrowserProviderDeclarations(providerCandidates)\n return await launchBrowserSystem({\n actorCatalog,\n config: toBrowserSystemConfig(config),\n host: options.host,\n identity: options.identity,\n providerDescriptors: providerDescriptors as unknown as BrowserProviderDescriptor[],\n provision: createXl1BrowserSystemProvisioner({\n config,\n context: options.context,\n providerRegistrations: options.providerRegistrations,\n }),\n readyTimeoutMs: options.readyTimeoutMs,\n })\n}\n\nfunction mergedProviderCandidates(\n candidates: readonly Xl1ProviderDescriptor[],\n registrations: readonly Xl1BrowserProviderRegistration[] | undefined,\n): Xl1ProviderDescriptor[] {\n const result = new Map(candidates.map(candidate => [candidate.id, candidate]))\n for (const registration of registrations ?? []) {\n result.set(registration.descriptor.id, registration.descriptor)\n }\n return [...result.values()]\n}\n", "import type {\n BrowserActorSelection,\n BrowserSystemConfig,\n} from '@ariestools/browser-kit'\nimport { parseBrowserSystemConfig } from '@ariestools/browser-kit'\nimport type {\n ConnectionsConfig,\n LocatorConfig,\n PrimeCachesMode,\n ProviderBindingsConfig,\n RestGatewayConfig,\n} from '@xyo-network/xl1-sdk'\nimport {\n BlockViewerMoniker,\n ChainContractViewerMoniker,\n ChainStateViewerMoniker,\n DataLakeRunnerMoniker,\n DataLakeViewerMoniker,\n FinalizationViewerMoniker,\n IndexViewerMoniker,\n MempoolRunnerMoniker,\n NetworkStakeStepRewardsByPositionViewerMoniker,\n parseLocatorConfigFields,\n restConnectionFromS3Bucket,\n restGatewayConfigFromEndpoint,\n SIGNER_RPC_CONNECTION,\n synthesizeRpcConnectionBindings,\n XyoConnectionMoniker,\n XyoGatewayMoniker,\n XyoGatewayRunnerMoniker,\n XyoRunnerMoniker,\n XyoSignerMoniker,\n} from '@xyo-network/xl1-sdk'\n\nimport {\n BrowserSimpleXyoSignerProviderId,\n SimpleXyoConnectionViewerProviderId,\n SimpleXyoGatewayProviderId,\n} from './Xl1BrowserProvider.ts'\nimport {\n Xl1BrowserRunnerSystemActorType,\n Xl1BrowserRunnerSystemWithDataLakeActorType,\n Xl1BrowserSystemActorType,\n Xl1BrowserSystemWithDataLakeActorType,\n} from './Xl1BrowserSystemActor.ts'\n\n/** Authored XL1 locator fields plus browser actor selections. */\nexport interface Xl1BrowserSystemConfig extends LocatorConfig {\n readonly actors: readonly BrowserActorSelection[]\n}\n\n/** Options for a standard REST-backed XL1 browser system. */\nexport interface CreateXl1RestBrowserSystemConfigOptions {\n readonly actors?: readonly BrowserActorSelection[]\n readonly dataLakeEndpoint?: string\n readonly endpoint: string\n readonly host?: string\n readonly layout?: Xl1RestEndpointLayout\n readonly primeCaches?: PrimeCachesMode\n readonly rpcUrl?: string\n readonly signer?: Xl1BrowserSignerConfig\n}\n\n/** Options for a standard RPC-backed XL1 browser system. */\nexport interface CreateXl1RpcBrowserSystemConfigOptions {\n readonly actors?: readonly BrowserActorSelection[]\n readonly dataLakeEndpoint?: string\n readonly endpoint: string\n readonly host?: string\n readonly primeCaches?: PrimeCachesMode\n readonly signer?: Xl1BrowserSignerConfig\n}\n\n/** Selects the built-in account signer supplied through the runtime context. */\nexport interface Xl1BrowserAccountSignerConfig {\n readonly type: 'account'\n}\n\n/** Selects a connectionless signer factory supplied by the owner realm. */\nexport interface Xl1BrowserProviderSignerConfig {\n readonly provider: string\n readonly type: 'provider'\n}\n\n/** Selects a JsonRpc signer whose transport is supplied through runtime handles. */\nexport interface Xl1BrowserRpcSignerConfig {\n readonly type: 'rpc'\n}\n\n/** Serializable signer selection for a write-capable browser system. */\nexport type Xl1BrowserSignerConfig\n = | Xl1BrowserAccountSignerConfig\n | Xl1BrowserProviderSignerConfig\n | Xl1BrowserRpcSignerConfig\n\n/** How the REST gateway's finalized, chain-state, and index URLs are derived from its endpoint. */\nexport type Xl1RestEndpointLayout = 'path' | 'subdomain'\n\n/** Parses XL1 locator fields and browser actor selections without importing code from config. */\nexport function parseXl1BrowserSystemConfig(input: unknown): Xl1BrowserSystemConfig {\n const locatorConfig = parseLocatorConfigFields(input)\n const browserConfig = parseBrowserSystemConfig({\n actors: isRecord(input) ? input['actors'] : undefined,\n connections: locatorConfig.connections,\n providerBindings: toBrowserProviderBindings(locatorConfig.providerBindings),\n })\n return Object.freeze({\n ...locatorConfig,\n actors: Object.freeze([...(browserConfig.actors ?? [])]),\n })\n}\n\n/** Projects the XL1 config onto the neutral fields browser-kit compiles. */\nexport function toBrowserSystemConfig(\n config: Xl1BrowserSystemConfig,\n): BrowserSystemConfig {\n return {\n actors: config.actors,\n connections: config.connections,\n providerBindings: toBrowserProviderBindings(config.providerBindings),\n }\n}\n\n/** Creates explicit REST connections and provider bindings for one XL1 browser gateway actor. */\nexport function createXl1RestBrowserSystemConfig(\n options: CreateXl1RestBrowserSystemConfigOptions,\n): Xl1BrowserSystemConfig {\n const buckets = options.layout === 'path'\n ? restGatewayConfigFromPathEndpoint(options.endpoint)\n : restGatewayConfigFromEndpoint(options.endpoint)\n const finalized = buckets.finalized\n if (finalized === undefined) throw new Error('XL1 REST gateway has no finalized bucket')\n\n const connections: ConnectionsConfig = {\n 'rest-chain-state': restConnectionFromS3Bucket(buckets.chainState ?? finalized),\n 'rest-finalized': restConnectionFromS3Bucket(finalized),\n 'rest-index': restConnectionFromS3Bucket(buckets.index ?? finalized),\n }\n const providerBindings: ProviderBindingsConfig = {\n [BlockViewerMoniker]: { connection: 'rest-finalized' },\n [ChainContractViewerMoniker]: { connection: 'rest-chain-state' },\n [ChainStateViewerMoniker]: { connection: 'rest-chain-state' },\n [FinalizationViewerMoniker]: { connection: 'rest-finalized' },\n [IndexViewerMoniker]: { connection: 'rest-index' },\n [XyoConnectionMoniker]: { provider: SimpleXyoConnectionViewerProviderId },\n [XyoGatewayMoniker]: { provider: SimpleXyoGatewayProviderId },\n }\n if (options.dataLakeEndpoint !== undefined) {\n connections['rest-data-lake'] = {\n baseUrl: options.dataLakeEndpoint,\n type: 'rest',\n }\n providerBindings[DataLakeViewerMoniker] = { connection: 'rest-data-lake' }\n }\n if (options.signer !== undefined) {\n if (options.rpcUrl === undefined) {\n throw new Error('XL1 REST runner browser system requires rpcUrl')\n }\n addRunnerBindings(\n connections,\n providerBindings,\n options.rpcUrl,\n options.signer,\n options.dataLakeEndpoint !== undefined,\n )\n }\n if (options.primeCaches !== undefined) {\n providerBindings[NetworkStakeStepRewardsByPositionViewerMoniker] = { primeCaches: options.primeCaches }\n }\n\n return parseXl1BrowserSystemConfig({\n actors: options.actors ?? [{\n host: options.host,\n type: xl1BrowserSystemActorType(\n options.signer !== undefined,\n options.dataLakeEndpoint !== undefined,\n ),\n }],\n connections,\n providerBindings,\n })\n}\n\n/** Creates explicit RPC connections and provider bindings for one XL1 browser gateway actor. */\nexport function createXl1RpcBrowserSystemConfig(\n options: CreateXl1RpcBrowserSystemConfigOptions,\n): Xl1BrowserSystemConfig {\n const connections: ConnectionsConfig = {\n 'default-rpc': {\n protocol: 'http',\n type: 'rpc',\n url: options.endpoint,\n },\n }\n const providerBindings: ProviderBindingsConfig = {\n ...synthesizeRpcConnectionBindings(),\n [XyoConnectionMoniker]: { provider: SimpleXyoConnectionViewerProviderId },\n [XyoGatewayMoniker]: { provider: SimpleXyoGatewayProviderId },\n }\n if (options.dataLakeEndpoint !== undefined) {\n connections['rest-data-lake'] = {\n baseUrl: options.dataLakeEndpoint,\n type: 'rest',\n }\n providerBindings[DataLakeViewerMoniker] = { connection: 'rest-data-lake' }\n }\n if (options.signer !== undefined) {\n addRunnerBindings(\n connections,\n providerBindings,\n options.endpoint,\n options.signer,\n options.dataLakeEndpoint !== undefined,\n )\n }\n if (options.primeCaches !== undefined) {\n providerBindings[NetworkStakeStepRewardsByPositionViewerMoniker] = { primeCaches: options.primeCaches }\n }\n\n return parseXl1BrowserSystemConfig({\n actors: options.actors ?? [{\n host: options.host,\n type: xl1BrowserSystemActorType(\n options.signer !== undefined,\n options.dataLakeEndpoint !== undefined,\n ),\n }],\n connections,\n providerBindings,\n })\n}\n\nfunction addRunnerBindings(\n connections: ConnectionsConfig,\n providerBindings: ProviderBindingsConfig,\n rpcUrl: string,\n signer: Xl1BrowserSignerConfig,\n hasDataLake: boolean,\n): void {\n connections['default-rpc'] = {\n protocol: 'http',\n type: 'rpc',\n url: rpcUrl,\n }\n providerBindings[MempoolRunnerMoniker] = {\n connection: 'default-rpc',\n provider: 'JsonRpcMempoolRunner',\n }\n providerBindings[XyoRunnerMoniker] = {\n connection: 'default-rpc',\n provider: 'JsonRpcXyoRunner',\n }\n providerBindings[XyoConnectionMoniker] = { provider: 'SimpleXyoConnectionRunner' }\n providerBindings[XyoGatewayMoniker] = { provider: 'SimpleXyoGatewayRunner' }\n providerBindings[XyoGatewayRunnerMoniker] = { provider: 'SimpleXyoGatewayRunner' }\n if (hasDataLake) {\n providerBindings[DataLakeRunnerMoniker] = {\n connection: 'rest-data-lake',\n provider: 'RestDataLakeRunner',\n }\n }\n\n switch (signer.type) {\n case 'account': {\n providerBindings[XyoSignerMoniker] = { provider: BrowserSimpleXyoSignerProviderId }\n break\n }\n case 'provider': {\n providerBindings[XyoSignerMoniker] = { provider: signer.provider }\n break\n }\n case 'rpc': {\n connections[SIGNER_RPC_CONNECTION] = { protocol: 'http', type: 'rpc' }\n providerBindings[XyoSignerMoniker] = {\n connection: SIGNER_RPC_CONNECTION,\n provider: 'JsonRpcXyoSigner',\n }\n break\n }\n }\n}\n\nfunction xl1BrowserSystemActorType(\n isRunner: boolean,\n hasDataLake: boolean,\n): typeof Xl1BrowserSystemActorType\n | typeof Xl1BrowserSystemWithDataLakeActorType\n | typeof Xl1BrowserRunnerSystemActorType\n | typeof Xl1BrowserRunnerSystemWithDataLakeActorType {\n if (isRunner) {\n return hasDataLake\n ? Xl1BrowserRunnerSystemWithDataLakeActorType\n : Xl1BrowserRunnerSystemActorType\n }\n return hasDataLake\n ? Xl1BrowserSystemWithDataLakeActorType\n : Xl1BrowserSystemActorType\n}\n\nfunction restGatewayConfigFromPathEndpoint(\n endpoint: string,\n): Required<Pick<RestGatewayConfig, 'chainState' | 'finalized' | 'index'>> {\n const baseUrl = endpoint.endsWith('/') ? endpoint.slice(0, -1) : endpoint\n return {\n chainState: { readUrl: `${baseUrl}/state` },\n finalized: { readUrl: `${baseUrl}/blocks` },\n index: { readUrl: `${baseUrl}/indexes` },\n }\n}\n\nfunction toBrowserProviderBindings(\n bindings: ProviderBindingsConfig,\n): NonNullable<BrowserSystemConfig['providerBindings']> {\n return Object.fromEntries(Object.entries(bindings).map(([moniker, binding]) => [\n moniker,\n binding === undefined\n ? {}\n : {\n connection: binding.connection,\n options: binding.options,\n provider: binding.provider,\n },\n ]))\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n", "import { stopOrShutdown } from '@ariestools/actor'\nimport type { BrowserSystemProvisioner } from '@ariestools/browser-kit'\nimport { createResolvedBrowserProviderPlan } from '@ariestools/browser-kit'\nimport { createResolvedProviderSystem } from '@ariestools/provider-model'\nimport type {\n ConnectionsConfig,\n CreatableProviderContext,\n CreatableProviderFactory,\n CreatableProviderInstance,\n ProviderBindingsConfig,\n ProviderDescriptor as Xl1ProviderDescriptor,\n ProviderFactoryLocatorInstance,\n} from '@xyo-network/xl1-sdk'\nimport {\n allProviderCandidates,\n compileLocatorConfig,\n providerCandidateFromClass,\n ProviderFactoryLocator,\n SimpleXyoConnectionViewer,\n SimpleXyoGateway,\n SimpleXyoSigner,\n} from '@xyo-network/xl1-sdk'\n\nimport type { Xl1BrowserSystemConfig } from './Xl1BrowserConfig.ts'\n\n/** Stable browser-provider identifier retained across production minification. */\nexport const SimpleXyoConnectionViewerProviderId = 'SimpleXyoConnectionViewer'\n/** Stable browser-provider identifier retained across production minification. */\nexport const SimpleXyoGatewayProviderId = 'SimpleXyoGateway'\n/** Stable id for the account-backed signer adapted to a browser runtime home. */\nexport const BrowserSimpleXyoSignerProviderId = 'BrowserSimpleXyoSigner'\n\n/** Exact runtime factory paired with the descriptor used during config resolution. */\nexport interface Xl1BrowserProviderRegistration {\n readonly descriptor: Xl1ProviderDescriptor\n readonly factory: CreatableProviderFactory\n}\n\n/** Browser-kit plan metadata retaining the XL1 provider class used by the provisioner. */\nexport interface Xl1BrowserProviderDeclaration {\n readonly connectionTypes: readonly string[]\n readonly dependencies: readonly string[]\n readonly id: string\n readonly monikers: readonly string[]\n readonly xl1: Xl1ProviderDescriptor\n}\n\n/** Non-serializable XL1 runtime homes supplied by the realm that owns the system. */\nexport type Xl1BrowserProviderRuntimeContext = Omit<\n CreatableProviderContext,\n 'config' | 'locator'\n>\n\n/** Options captured by the XL1 browser-system provisioner. */\nexport interface CreateXl1BrowserSystemProvisionerOptions {\n readonly config: Xl1BrowserSystemConfig\n readonly context?: Xl1BrowserProviderRuntimeContext\n readonly providerRegistrations?: readonly Xl1BrowserProviderRegistration[]\n}\n\n/** Adapts one XL1 provider candidate into neutral browser-kit plan metadata. */\nexport function xl1BrowserProviderDeclaration(\n descriptor: Xl1ProviderDescriptor,\n): Xl1BrowserProviderDeclaration {\n return Object.freeze({\n connectionTypes: Object.freeze([...descriptor.connectionTypes]),\n dependencies: Object.freeze([...(descriptor.dependencies ?? [])]),\n id: descriptor.id,\n monikers: Object.freeze([...descriptor.satisfies]),\n xl1: descriptor,\n })\n}\n\n/** Returns the XL1 provider catalog available to browser-system configuration. */\nexport function xl1BrowserProviderCandidates(): Xl1ProviderDescriptor[] {\n return [\n ...allProviderCandidates(),\n browserRuntimeProviderCandidateFromClass(SimpleXyoSigner, BrowserSimpleXyoSignerProviderId),\n providerCandidateFromClass(SimpleXyoConnectionViewer, SimpleXyoConnectionViewerProviderId),\n providerCandidateFromClass(SimpleXyoGateway, SimpleXyoGatewayProviderId),\n ]\n}\n\n/**\n * Adapts an exact factory supplied by the owner realm into plan metadata.\n *\n * The factory is a runtime home, so its provider is intentionally presented as\n * connectionless to the serializable planner. The exact factory is restored by\n * the provisioner after resolution rather than reconstructed from its class.\n */\nexport function xl1BrowserProviderRegistrationFromFactory(\n factory: CreatableProviderFactory,\n id: string = factory.providerName,\n): Xl1BrowserProviderRegistration {\n return {\n descriptor: {\n ...providerCandidateFromClass(factory.creatableProvider, id),\n connectionTypes: ['none'],\n dependencies: [...factory.dependencies],\n },\n factory,\n }\n}\n\n/** Adapts an XL1 provider catalog for browser-kit planning. */\nexport function xl1BrowserProviderDeclarations(\n candidates: readonly Xl1ProviderDescriptor[] = xl1BrowserProviderCandidates(),\n): Xl1BrowserProviderDeclaration[] {\n return candidates.map(xl1BrowserProviderDeclaration)\n}\n\n/** Creates the owner-realm provisioner that instantiates one resolved XL1 locator. */\nexport function createXl1BrowserSystemProvisioner(\n options: CreateXl1BrowserSystemProvisionerOptions,\n): BrowserSystemProvisioner<ProviderFactoryLocatorInstance> {\n return async (input) => {\n const registeredFactories = new Map(\n options.providerRegistrations?.map(registration => [\n registration.descriptor.id,\n registration.factory,\n ]),\n )\n const providerBindings = mergeResolvedProviderBindings(\n options.config.providerBindings,\n input.compiled.config.providerBindings,\n )\n const locatorConfig = compileLocatorConfig({\n ...options.config,\n connections: input.compiled.config.connections as ConnectionsConfig,\n providerBindings,\n })\n const locator = new ProviderFactoryLocator({\n caches: {},\n singletons: {},\n ...options.context,\n config: locatorConfig,\n })\n for (const selected of input.compiled.resolution.selected) {\n const declaration = selected as unknown as Xl1BrowserProviderDeclaration\n const descriptor = declaration.xl1\n locator.register(registeredFactories.get(descriptor.id)\n ?? descriptor.creatableProvider.factory([\n ...(descriptor.dependencies ?? descriptor.creatableProvider.dependencies),\n ]))\n }\n locator.freeze()\n\n try {\n for (const moniker of input.compiled.declaration.dependencies) {\n await locator.getInstance(moniker)\n }\n } catch (startError) {\n const releaseError = await releaseXl1Providers(locator).catch(error => error)\n if (releaseError !== undefined) {\n throw new AggregateError(\n [startError, releaseError],\n 'XL1 browser provider provisioning and cleanup both failed',\n { cause: startError },\n )\n }\n throw startError\n }\n\n const resolvedConfig = Object.freeze({\n ...options.config,\n actors: input.config.actors,\n connections: input.compiled.config.connections as ConnectionsConfig,\n providerBindings,\n })\n const system = createResolvedProviderSystem({\n config: resolvedConfig,\n locator,\n resolution: createResolvedBrowserProviderPlan(input.compiled.resolution),\n })\n let releasePromise: Promise<void> | undefined\n return {\n release: () => {\n releasePromise ??= releaseXl1Providers(locator)\n return releasePromise\n },\n system,\n }\n }\n}\n\nfunction browserRuntimeProviderCandidateFromClass(\n creatableProvider: Parameters<typeof providerCandidateFromClass>[0],\n id: string,\n): Xl1ProviderDescriptor {\n return {\n ...providerCandidateFromClass(creatableProvider, id),\n connectionTypes: ['none'],\n }\n}\n\nfunction mergeResolvedProviderBindings(\n authored: ProviderBindingsConfig,\n resolved: Readonly<Record<string, {\n readonly connection?: string\n readonly options?: Readonly<Record<string, unknown>>\n readonly provider?: string\n } | undefined>>,\n): ProviderBindingsConfig {\n return Object.fromEntries(Object.entries(resolved).map(([moniker, binding]) => [\n moniker,\n {\n ...authored[moniker],\n ...binding,\n },\n ]))\n}\n\nasync function releaseXl1Providers(locator: ProviderFactoryLocatorInstance): Promise<void> {\n const instances = await instantiatedProviders(locator)\n for (const instance of instances) instance.requestCancel?.()\n\n const errors: unknown[] = []\n for (const instance of instances.toReversed()) {\n try {\n await stopOrShutdown(instance)\n } catch (error) {\n errors.push(error)\n }\n }\n if (errors.length > 0) {\n throw new AggregateError(errors, `${errors.length} XL1 browser provider(s) failed to stop`)\n }\n}\n\nasync function instantiatedProviders(\n locator: ProviderFactoryLocatorInstance,\n): Promise<(CreatableProviderInstance & { requestCancel?(reason?: unknown): void })[]> {\n const instances = await Promise.all(\n Object.values(locator.context.singletons).map(async value => await value),\n )\n return [...new Set(instances)].filter(isCreatableProviderInstance)\n}\n\nfunction isCreatableProviderInstance(\n value: unknown,\n): value is CreatableProviderInstance & { requestCancel?(reason?: unknown): void } {\n return typeof value === 'object'\n && value !== null\n && 'stop' in value\n && typeof value.stop === 'function'\n}\n", "import type {\n ProviderActorContext,\n ProviderActorParams,\n} from '@ariestools/actor'\nimport { ProviderActor } from '@ariestools/actor'\nimport type {\n BrowserActor,\n ResolvedBrowserProviderPlan,\n ResolvedBrowserSystemConfig,\n} from '@ariestools/browser-kit'\nimport { BrowserActorCatalog as BrowserActorCatalogInstance } from '@ariestools/browser-kit'\nimport type { CreatableName } from '@ariestools/sdk'\nimport type {\n ProviderFactoryLocatorInstance,\n XyoGateway,\n XyoGatewayRunner,\n} from '@xyo-network/xl1-sdk'\nimport {\n DataLakeRunnerMoniker,\n DataLakeViewerMoniker,\n XyoGatewayMoniker,\n XyoGatewayRunnerMoniker,\n} from '@xyo-network/xl1-sdk'\n\nexport const Xl1BrowserSystemActorType = 'xl1-system' as const\nexport const Xl1BrowserSystemWithDataLakeActorType = 'xl1-system-with-data-lake' as const\nexport const Xl1BrowserRunnerSystemActorType = 'xl1-runner-system' as const\nexport const Xl1BrowserRunnerSystemWithDataLakeActorType = 'xl1-runner-system-with-data-lake' as const\n\nexport interface Xl1BrowserSystemActorParams extends ProviderActorParams<\n ProviderFactoryLocatorInstance,\n ResolvedBrowserSystemConfig,\n unknown,\n ResolvedBrowserProviderPlan\n> {}\n\n/** Resident actor representing one configured XL1 gateway system. */\nexport class Xl1BrowserSystemActor extends ProviderActor<Xl1BrowserSystemActorParams> {\n /** Resolves the gateway owned by this actor's immutable provider system. */\n async getGateway(): Promise<XyoGateway | XyoGatewayRunner> {\n if (this.status !== 'started') {\n throw new Error(`XL1 browser system actor is not running (status: ${this.status})`)\n }\n if (this.providerSystem.resolution.bindings[XyoGatewayRunnerMoniker] !== undefined) {\n return await this.getProvider<XyoGatewayRunner>(XyoGatewayRunnerMoniker)\n }\n return await this.getProvider<XyoGateway>(XyoGatewayMoniker)\n }\n\n /** Resolves the required write-capable gateway from a runner-system actor. */\n async getGatewayRunner(): Promise<XyoGatewayRunner> {\n if (this.status !== 'started') {\n throw new Error(`XL1 browser system actor is not running (status: ${this.status})`)\n }\n return await this.getProvider<XyoGatewayRunner>(XyoGatewayRunnerMoniker)\n }\n}\n\nexport const Xl1BrowserSystemActorDependencies = [XyoGatewayMoniker] as const\nexport const Xl1BrowserSystemWithDataLakeActorDependencies = [\n XyoGatewayMoniker,\n DataLakeViewerMoniker,\n] as const\nexport const Xl1BrowserRunnerSystemActorDependencies = [XyoGatewayRunnerMoniker] as const\nexport const Xl1BrowserRunnerSystemWithDataLakeActorDependencies = [\n XyoGatewayRunnerMoniker,\n DataLakeRunnerMoniker,\n DataLakeViewerMoniker,\n] as const\n\n/** Creates the default actor catalog and optionally installs application actors. */\nexport function createXl1BrowserActorCatalog() {\n const catalog = new BrowserActorCatalogInstance<BrowserActor, ProviderFactoryLocatorInstance>()\n const create = async (\n id: string,\n providerContext: ProviderActorContext<\n ProviderFactoryLocatorInstance,\n ResolvedBrowserSystemConfig,\n unknown,\n ResolvedBrowserProviderPlan\n >,\n ) => await Xl1BrowserSystemActor.create({\n name: id as CreatableName,\n providerContext,\n })\n catalog.register({\n create: async ({ id, providerContext }) => await create(\n id,\n providerContext as ProviderActorContext<\n ProviderFactoryLocatorInstance,\n ResolvedBrowserSystemConfig,\n unknown,\n ResolvedBrowserProviderPlan\n >,\n ),\n dependencies: Xl1BrowserSystemActorDependencies,\n type: Xl1BrowserSystemActorType,\n })\n catalog.register({\n create: async ({ id, providerContext }) => await create(\n id,\n providerContext as ProviderActorContext<\n ProviderFactoryLocatorInstance,\n ResolvedBrowserSystemConfig,\n unknown,\n ResolvedBrowserProviderPlan\n >,\n ),\n dependencies: Xl1BrowserSystemWithDataLakeActorDependencies,\n type: Xl1BrowserSystemWithDataLakeActorType,\n })\n catalog.register({\n create: async ({ id, providerContext }) => await create(\n id,\n providerContext as ProviderActorContext<\n ProviderFactoryLocatorInstance,\n ResolvedBrowserSystemConfig,\n unknown,\n ResolvedBrowserProviderPlan\n >,\n ),\n dependencies: Xl1BrowserRunnerSystemActorDependencies,\n type: Xl1BrowserRunnerSystemActorType,\n })\n catalog.register({\n create: async ({ id, providerContext }) => await create(\n id,\n providerContext as ProviderActorContext<\n ProviderFactoryLocatorInstance,\n ResolvedBrowserSystemConfig,\n unknown,\n ResolvedBrowserProviderPlan\n >,\n ),\n dependencies: Xl1BrowserRunnerSystemWithDataLakeActorDependencies,\n type: Xl1BrowserRunnerSystemWithDataLakeActorType,\n })\n return catalog\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["XyoSignerMoniker", "DataLakeRunnerMoniker", "DataLakeViewerMoniker", "XyoGatewayMoniker", "XyoGatewayRunnerMoniker", "XyoGatewayMoniker", "DataLakeViewerMoniker", "XyoGatewayRunnerMoniker", "DataLakeRunnerMoniker", "XyoSignerMoniker"]
7
7
  }
@@ -0,0 +1,41 @@
1
+ import type { BrowserSystemIdentity, BrowserSystemSession } from '@ariestools/browser-kit';
2
+ import type { CreatableProviderFactory, PrimeCachesMode, ProviderDescriptor as Xl1ProviderDescriptor, ProviderFactoryLocatorInstance, RpcTransport, XyoGateway, XyoGatewayRunner, XyoSignerRpcSchemas } from '@xyo-network/xl1-sdk';
3
+ import type { Xl1RestEndpointLayout } from './Xl1BrowserConfig.ts';
4
+ import type { Xl1BrowserProviderRuntimeContext } from './Xl1BrowserProvider.ts';
5
+ import { Xl1BrowserSystemActor } from './Xl1BrowserSystemActor.ts';
6
+ /** How a browser gateway reads XL1 chain data. */
7
+ export type Xl1BrowserGatewayTransport = 'rest' | 'rpc';
8
+ /** Account instance accepted by the browser provider runtime home. */
9
+ export type Xl1BrowserSignerAccount = NonNullable<Xl1BrowserProviderRuntimeContext['accounts']>[string];
10
+ /** Inputs for launching one standard browser-owned XL1 gateway system. */
11
+ export interface LaunchXl1BrowserGatewaySystemOptions {
12
+ readonly context?: Xl1BrowserProviderRuntimeContext;
13
+ readonly dataLakeEndpoint?: string;
14
+ /** REST root for REST mode, or the complete RPC URL for RPC mode. */
15
+ readonly endpoint: string;
16
+ readonly host?: string;
17
+ readonly identity?: BrowserSystemIdentity;
18
+ readonly layout?: Xl1RestEndpointLayout;
19
+ readonly primeCaches?: PrimeCachesMode;
20
+ readonly providerCandidates?: readonly Xl1ProviderDescriptor[];
21
+ readonly readyTimeoutMs?: number;
22
+ /** Required for a signed REST system; ignored for RPC systems. */
23
+ readonly rpcUrl?: string;
24
+ readonly signerAccount?: Xl1BrowserSignerAccount;
25
+ readonly signerFactory?: CreatableProviderFactory;
26
+ /** Stable config identifier for signerFactory; defaults to its providerName. */
27
+ readonly signerProviderId?: string;
28
+ readonly signerTransport?: RpcTransport<XyoSignerRpcSchemas>;
29
+ readonly transport: Xl1BrowserGatewayTransport;
30
+ }
31
+ /** Running stock XL1 browser system with its actor and gateway exposed. */
32
+ export interface Xl1BrowserGatewaySystemSession extends BrowserSystemSession<Xl1BrowserSystemActor, ProviderFactoryLocatorInstance> {
33
+ readonly actor: Xl1BrowserSystemActor;
34
+ readonly gateway: XyoGateway | XyoGatewayRunner;
35
+ }
36
+ /**
37
+ * Launches a read-only or signed REST/RPC gateway through one browser-kit
38
+ * provider system. Signing precedence is factory, account, then RPC transport.
39
+ */
40
+ export declare function launchXl1BrowserGatewaySystem(options: LaunchXl1BrowserGatewaySystemOptions): Promise<Xl1BrowserGatewaySystemSession>;
41
+ //# sourceMappingURL=launchXl1BrowserGatewaySystem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launchXl1BrowserGatewaySystem.d.ts","sourceRoot":"","sources":["../../src/launchXl1BrowserGatewaySystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EACV,wBAAwB,EACxB,eAAe,EACf,kBAAkB,IAAI,qBAAqB,EAC3C,8BAA8B,EAC9B,YAAY,EACZ,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,sBAAsB,CAAA;AAQ7B,OAAO,KAAK,EAEV,qBAAqB,EACtB,MAAM,uBAAuB,CAAA;AAK9B,OAAO,KAAK,EAEV,gCAAgC,EACjC,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AAElE,kDAAkD;AAClD,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,KAAK,CAAA;AAEvD,sEAAsE;AACtE,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAC/C,gCAAgC,CAAC,UAAU,CAAC,CAC7C,CAAC,MAAM,CAAC,CAAA;AAET,0EAA0E;AAC1E,MAAM,WAAW,oCAAoC;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,gCAAgC,CAAA;IACnD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAA;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAA;IACvC,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAA;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAA;IAC9D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,kEAAkE;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,uBAAuB,CAAA;IAChD,QAAQ,CAAC,aAAa,CAAC,EAAE,wBAAwB,CAAA;IACjD,gFAAgF;IAChF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAA;IAC5D,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAA;CAC/C;AAED,2EAA2E;AAC3E,MAAM,WAAW,8BACf,SAAQ,oBAAoB,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;IACnF,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAA;IACrC,QAAQ,CAAC,OAAO,EAAE,UAAU,GAAG,gBAAgB,CAAA;CAChD;AAED;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,oCAAoC,GAC5C,OAAO,CAAC,8BAA8B,CAAC,CAoDzC"}
@@ -1,6 +1,6 @@
1
1
  import type { BrowserActor, BrowserActorCatalog, BrowserSystemIdentity, BrowserSystemSession } from '@ariestools/browser-kit';
2
2
  import type { ProviderDescriptor as Xl1ProviderDescriptor, ProviderFactoryLocatorInstance } from '@xyo-network/xl1-sdk';
3
- import { type Xl1BrowserProviderRuntimeContext } from './Xl1BrowserProvider.ts';
3
+ import { type Xl1BrowserProviderRegistration, type Xl1BrowserProviderRuntimeContext } from './Xl1BrowserProvider.ts';
4
4
  /** Inputs for launching one owner-resolved XL1 browser provider system. */
5
5
  export interface LaunchXl1BrowserSystemOptions<TActor extends BrowserActor = BrowserActor> {
6
6
  readonly actorCatalog?: BrowserActorCatalog<TActor, ProviderFactoryLocatorInstance>;
@@ -9,6 +9,7 @@ export interface LaunchXl1BrowserSystemOptions<TActor extends BrowserActor = Bro
9
9
  readonly host?: string;
10
10
  readonly identity?: BrowserSystemIdentity;
11
11
  readonly providerCandidates?: readonly Xl1ProviderDescriptor[];
12
+ readonly providerRegistrations?: readonly Xl1BrowserProviderRegistration[];
12
13
  readonly readyTimeoutMs?: number;
13
14
  }
14
15
  /** Parses, resolves, provisions, and starts one XL1 system from browser-safe config. */
@@ -1 +1 @@
1
- {"version":3,"file":"launchXl1BrowserSystem.d.ts","sourceRoot":"","sources":["../../src/launchXl1BrowserSystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EAEnB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EACV,kBAAkB,IAAI,qBAAqB,EAC3C,8BAA8B,EAC/B,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EAGL,KAAK,gCAAgC,EACtC,MAAM,yBAAyB,CAAA;AAGhC,2EAA2E;AAC3E,MAAM,WAAW,6BAA6B,CAAC,MAAM,SAAS,YAAY,GAAG,YAAY;IACvF,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAA;IACnF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,gCAAgC,CAAA;IACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAA;IACzC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAA;IAC9D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CACjC;AAED,wFAAwF;AACxF,wBAAsB,sBAAsB,CAAC,MAAM,SAAS,YAAY,GAAG,YAAY,EACrF,OAAO,EAAE,6BAA6B,CAAC,MAAM,CAAC,GAC7C,OAAO,CAAC,oBAAoB,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC,CAiBvE"}
1
+ {"version":3,"file":"launchXl1BrowserSystem.d.ts","sourceRoot":"","sources":["../../src/launchXl1BrowserSystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EAEnB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EACV,kBAAkB,IAAI,qBAAqB,EAC3C,8BAA8B,EAC/B,MAAM,sBAAsB,CAAA;AAM7B,OAAO,EAIL,KAAK,8BAA8B,EACnC,KAAK,gCAAgC,EACtC,MAAM,yBAAyB,CAAA;AAGhC,2EAA2E;AAC3E,MAAM,WAAW,6BAA6B,CAAC,MAAM,SAAS,YAAY,GAAG,YAAY;IACvF,QAAQ,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAA;IACnF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,gCAAgC,CAAA;IACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAA;IACzC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,qBAAqB,EAAE,CAAA;IAC9D,QAAQ,CAAC,qBAAqB,CAAC,EAAE,SAAS,8BAA8B,EAAE,CAAA;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CACjC;AAED,wFAAwF;AACxF,wBAAsB,sBAAsB,CAAC,MAAM,SAAS,YAAY,GAAG,YAAY,EACrF,OAAO,EAAE,6BAA6B,CAAC,MAAM,CAAC,GAC7C,OAAO,CAAC,oBAAoB,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAC,CAsBvE"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json.schemastore.org/package.json",
3
3
  "name": "@xyo-network/xl1-browser-system",
4
- "version": "5.0.14",
4
+ "version": "5.0.15",
5
5
  "description": "Config-driven XL1 provider actor systems for browser runtimes",
6
6
  "homepage": "https://xylabs.com",
7
7
  "bugs": {
@@ -40,22 +40,22 @@
40
40
  "README.md"
41
41
  ],
42
42
  "dependencies": {
43
- "@ariestools/provider-model": "~1.1.1",
44
- "@xyo-network/xl1-sdk": "~5.0.14"
43
+ "@ariestools/provider-model": "~1.2.0",
44
+ "@xyo-network/xl1-sdk": "~5.0.15"
45
45
  },
46
46
  "devDependencies": {
47
- "@ariestools/actor": "~1.1.1",
48
- "@ariestools/actor-model": "~1.1.1",
47
+ "@ariestools/actor": "~1.2.0",
48
+ "@ariestools/actor-model": "~1.2.0",
49
49
  "@ariestools/browser-kit": "~0.1.1",
50
50
  "@ariestools/browser-kit-page": "~0.1.1",
51
51
  "@ariestools/browser-kit-plugin": "~0.1.1",
52
52
  "@ariestools/browser-kit-service-worker": "~0.1.1",
53
53
  "@ariestools/browser-kit-worker": "~0.1.1",
54
- "@ariestools/provider": "~1.1.1",
54
+ "@ariestools/provider": "~1.2.0",
55
55
  "@ariestools/sdk": "~8.1.7",
56
- "@ariestools/toolchain": "~8.7.26",
57
- "@ariestools/tsconfig": "~8.7.26",
58
- "@ariestools/tsconfig-dom": "~8.7.26",
56
+ "@ariestools/toolchain": "~8.7.27",
57
+ "@ariestools/tsconfig": "~8.7.27",
58
+ "@ariestools/tsconfig-dom": "~8.7.27",
59
59
  "@opentelemetry/api": "~1.9.1",
60
60
  "@xyo-network/sdk": "~7.2.3",
61
61
  "@xyo-network/sdk-protocol": "~7.2.3",
@@ -66,12 +66,12 @@
66
66
  "msw": "~2.15.0",
67
67
  "playwright": "~1.62.1",
68
68
  "typescript": "~6.0.3",
69
- "vite": "~8.2.0",
69
+ "vite": "~8.2.1",
70
70
  "vitest": "~4.1.10",
71
71
  "zod": "~4.4.3"
72
72
  },
73
73
  "peerDependencies": {
74
- "@ariestools/actor": "^1.1",
74
+ "@ariestools/actor": "^1.2",
75
75
  "@ariestools/browser-kit": "^0.1"
76
76
  },
77
77
  "engines": {