@xyo-network/xl1-browser-system 5.0.13 → 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 +46 -0
- package/dist/browser/Xl1BrowserConfig.d.ts +30 -2
- package/dist/browser/Xl1BrowserConfig.d.ts.map +1 -1
- package/dist/browser/Xl1BrowserProvider.d.ts +17 -1
- package/dist/browser/Xl1BrowserProvider.d.ts.map +1 -1
- package/dist/browser/Xl1BrowserSystemActor.d.ts +8 -2
- package/dist/browser/Xl1BrowserSystemActor.d.ts.map +1 -1
- package/dist/browser/index.d.ts +1 -0
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.mjs +303 -8
- package/dist/browser/index.mjs.map +4 -4
- package/dist/browser/launchXl1BrowserGatewaySystem.d.ts +41 -0
- package/dist/browser/launchXl1BrowserGatewaySystem.d.ts.map +1 -0
- package/dist/browser/launchXl1BrowserSystem.d.ts +2 -1
- package/dist/browser/launchXl1BrowserSystem.d.ts.map +1 -1
- package/package.json +11 -11
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
|
|
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
|
|
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;
|
|
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;
|
|
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,
|
|
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"}
|
package/dist/browser/index.d.ts
CHANGED
|
@@ -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"}
|
package/dist/browser/index.mjs
CHANGED
|
@@ -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:
|
|
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
|
|
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,
|
|
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.
|
|
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.
|
|
44
|
-
"@xyo-network/xl1-sdk": "~5.0.
|
|
43
|
+
"@ariestools/provider-model": "~1.2.0",
|
|
44
|
+
"@xyo-network/xl1-sdk": "~5.0.15"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@ariestools/actor": "~1.
|
|
48
|
-
"@ariestools/actor-model": "~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.
|
|
54
|
+
"@ariestools/provider": "~1.2.0",
|
|
55
55
|
"@ariestools/sdk": "~8.1.7",
|
|
56
|
-
"@ariestools/toolchain": "~8.7.
|
|
57
|
-
"@ariestools/tsconfig": "~8.7.
|
|
58
|
-
"@ariestools/tsconfig-dom": "~8.7.
|
|
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.
|
|
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.
|
|
74
|
+
"@ariestools/actor": "^1.2",
|
|
75
75
|
"@ariestools/browser-kit": "^0.1"
|
|
76
76
|
},
|
|
77
77
|
"engines": {
|