@xyo-network/xl1-gateway 1.30.1 → 1.30.3

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.
@@ -0,0 +1,39 @@
1
+ import type { Hash, Promisable, PromisableArray } from '@xylabs/sdk-js';
2
+ import type { NextOptions, Sequence } from '@xyo-network/sdk-js';
3
+ import { type DataLakeData, type DataLakeRunnerMethods, type DataLakeViewerMethods } from '@xyo-network/xl1-protocol-lib';
4
+ import type { DataLakePageRpcSchemas, RpcTransport } from '@xyo-network/xl1-rpc';
5
+ /**
6
+ * Shared base for page-side data lake providers. Holds the wallet-mediated
7
+ * JSON-RPC transport and the opaque per-origin lake `id`, and provides the
8
+ * read-side implementations (`get`, `next`) common to viewers and runners.
9
+ * Not constructable on its own — instantiate {@link DataLakePageViewer} or
10
+ * {@link DataLakePageRunner} depending on the granted capability.
11
+ */
12
+ export declare abstract class AbstractDataLakePageProvider {
13
+ protected readonly id: string;
14
+ protected readonly transport: RpcTransport<DataLakePageRpcSchemas>;
15
+ constructor(transport: RpcTransport<DataLakePageRpcSchemas>, id: string);
16
+ get(hashes: Hash[]): Promise<DataLakeData[]>;
17
+ next(_options?: NextOptions<Sequence>): PromisableArray<DataLakeData>;
18
+ }
19
+ /**
20
+ * Read-only page-side data lake provider — proxies `get` (and `next` once
21
+ * implemented) through the wallet's JSON-RPC transport. Bound to a single
22
+ * approved lake `id`; construct one instance per `viewer`-capability grant.
23
+ */
24
+ export declare class DataLakePageViewer extends AbstractDataLakePageProvider implements DataLakeViewerMethods {
25
+ readonly moniker: "DataLakeViewer";
26
+ }
27
+ /**
28
+ * Read/write page-side data lake provider — adds `insert` (and `clear` /
29
+ * `delete` once implemented) on top of the viewer surface. Requires the
30
+ * wallet grant to include the `runner` capability. Bound to a single
31
+ * approved lake `id`.
32
+ */
33
+ export declare class DataLakePageRunner extends AbstractDataLakePageProvider implements DataLakeRunnerMethods {
34
+ readonly moniker: "DataLakeRunner";
35
+ clear(): Promisable<void>;
36
+ delete(_hashes: Hash[]): PromisableArray<DataLakeData>;
37
+ insert(items: DataLakeData[]): Promise<DataLakeData[]>;
38
+ }
39
+ //# sourceMappingURL=PageProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageProvider.d.ts","sourceRoot":"","sources":["../../../src/dataLakes/PageProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EAAE,UAAU,EAAE,eAAe,EAClC,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EACL,KAAK,YAAY,EAAE,KAAK,qBAAqB,EAAyB,KAAK,qBAAqB,EAEjG,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGhF;;;;;;GAMG;AACH,8BAAsB,4BAA4B;IAChD,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,sBAAsB,CAAC,CAAA;gBAEtD,SAAS,EAAE,YAAY,CAAC,sBAAsB,CAAC,EAAE,EAAE,EAAE,MAAM;IAKjE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIlD,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,YAAY,CAAC;CAGtE;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,4BAA6B,YAAW,qBAAqB;IACnG,QAAQ,CAAC,OAAO,mBAAwB;CACzC;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,4BAA6B,YAAW,qBAAqB;IACnG,QAAQ,CAAC,OAAO,mBAAwB;IAExC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC;IAIzB,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC;IAIhD,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAG7D"}
@@ -0,0 +1,2 @@
1
+ export * from './PageProvider.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dataLakes/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
@@ -1,3 +1,4 @@
1
+ export * from './dataLakes/index.ts';
1
2
  export * from './GatewayBuilder.ts';
2
3
  export * from './XyoSignerWrapper.ts';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA"}
@@ -11,6 +11,42 @@ var __decorateClass = (decorators, target, key, kind) => {
11
11
  };
12
12
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
13
13
 
14
+ // src/dataLakes/PageProvider.ts
15
+ import {
16
+ DataLakeRunnerMoniker,
17
+ DataLakeViewerMoniker
18
+ } from "@xyo-network/xl1-protocol-lib";
19
+ import { DataLakesGetMethod, DataLakesInsertMethod } from "@xyo-network/xl1-rpc";
20
+ var AbstractDataLakePageProvider = class {
21
+ id;
22
+ transport;
23
+ constructor(transport, id) {
24
+ this.transport = transport;
25
+ this.id = id;
26
+ }
27
+ async get(hashes) {
28
+ return await this.transport.sendRequest(DataLakesGetMethod, [{ id: this.id, hashes }]);
29
+ }
30
+ next(_options) {
31
+ throw new Error("Method [next] not implemented.");
32
+ }
33
+ };
34
+ var DataLakePageViewer = class extends AbstractDataLakePageProvider {
35
+ moniker = DataLakeViewerMoniker;
36
+ };
37
+ var DataLakePageRunner = class extends AbstractDataLakePageProvider {
38
+ moniker = DataLakeRunnerMoniker;
39
+ clear() {
40
+ throw new Error("Method [clear] not implemented.");
41
+ }
42
+ delete(_hashes) {
43
+ throw new Error("Method [delete] not implemented.");
44
+ }
45
+ async insert(items) {
46
+ return await this.transport.sendRequest(DataLakesInsertMethod, [{ id: this.id, payloads: items }]);
47
+ }
48
+ };
49
+
14
50
  // src/GatewayBuilder.ts
15
51
  import { isDefined } from "@xylabs/sdk-js";
16
52
  import { XyoGatewayMoniker, XyoGatewayRunnerMoniker } from "@xyo-network/xl1-protocol-lib";
@@ -101,7 +137,10 @@ var GatewayBuilder = class {
101
137
  }
102
138
  };
103
139
  export {
140
+ AbstractDataLakePageProvider,
141
+ DataLakePageRunner,
142
+ DataLakePageViewer,
104
143
  GatewayBuilder,
105
144
  XyoSignerWrapper
106
145
  };
107
- //# sourceMappingURL=index.mjs.map
146
+ //# sourceMappingURL=index.mjs.map
@@ -1 +1,7 @@
1
- {"version":3,"sources":["../../src/GatewayBuilder.ts","../../src/XyoSignerWrapper.ts"],"sourcesContent":["import { isDefined } from '@xylabs/sdk-js'\nimport type {\n XyoGateway, XyoGatewayRunner, XyoSigner,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XyoGatewayMoniker, XyoGatewayRunnerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport type {\n CreatableProviderFactory, RemoteConfig, RpcRemoteConfig,\n} from '@xyo-network/xl1-protocol-sdk'\nimport type { BlockValidators } from '@xyo-network/xl1-providers'\nimport { basicRemoteRunnerLocator, basicRemoteViewerLocator } from '@xyo-network/xl1-providers'\n\nimport { XyoSignerWrapper } from './XyoSignerWrapper.ts'\n\n/**\n * Fluent builder for client-side XL1 gateways. Hides the locator system from\n * 3rd parties so they can spin up a XyoGateway (read-only) or XyoGatewayRunner\n * (transacting) without touching ProviderFactoryLocator, RemoteConfig, or any\n * JsonRpc transport plumbing.\n *\n * @example\n * const gateway = await new GatewayBuilder()\n * .rpcUrl('https://rpc.xl1.example')\n * .build()\n *\n * @example\n * const runner = await new GatewayBuilder()\n * .rpcUrl('https://rpc.xl1.example')\n * .build(mySigner)\n */\nexport class GatewayBuilder {\n private _additionalProviders: CreatableProviderFactory[] = []\n private _additionalRunnerProviders: CreatableProviderFactory[] = []\n private _dataLakeEndpoint: string | undefined\n private _name = 'gateway-client'\n private _rpc: RpcRemoteConfig | undefined\n private _validators: BlockValidators | undefined\n\n additionalProviders(factories: CreatableProviderFactory[]): this {\n this._additionalProviders = factories\n return this\n }\n\n additionalRunnerProviders(factories: CreatableProviderFactory[]): this {\n this._additionalRunnerProviders = factories\n return this\n }\n\n build(): Promise<XyoGateway>\n build(signer: XyoSigner): Promise<XyoGatewayRunner>\n async build(signer?: XyoSigner): Promise<XyoGateway | XyoGatewayRunner> {\n if (!isDefined(this._rpc)) {\n throw new Error('GatewayBuilder: rpcUrl() or postMessage() must be set before build()')\n }\n const remoteConfig: RemoteConfig = { rpc: this._rpc }\n\n if (signer === undefined) {\n const locator = await basicRemoteViewerLocator(this._name, remoteConfig, this._dataLakeEndpoint, {\n validators: this._validators,\n additionalProviders: this._additionalProviders,\n })\n return await locator.getInstance<XyoGateway>(XyoGatewayMoniker)\n }\n\n const signerFactory = XyoSignerWrapper.factory<XyoSignerWrapper>(XyoSignerWrapper.dependencies, { signer })\n const locator = await basicRemoteRunnerLocator(this._name, remoteConfig, undefined, this._dataLakeEndpoint, {\n validators: this._validators,\n additionalProviders: this._additionalProviders,\n additionalRunnerProviders: this._additionalRunnerProviders,\n signerFactory,\n })\n return await locator.getInstance<XyoGatewayRunner>(XyoGatewayRunnerMoniker)\n }\n\n dataLakeEndpoint(endpoint: string): this {\n this._dataLakeEndpoint = endpoint\n return this\n }\n\n name(name: string): this {\n this._name = name\n return this\n }\n\n postMessage(networkId: string, sessionId: string): this {\n this._rpc = {\n protocol: 'postMessage', networkId, sessionId,\n }\n return this\n }\n\n rpcUrl(url: string): this {\n this._rpc = { protocol: 'http', url }\n return this\n }\n\n validators(validators: BlockValidators): this {\n this._validators = validators\n return this\n }\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport type {\n SignedHydratedTransactionWithHashMeta, TransactionBoundWitness, XyoSigner,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XyoSignerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport type { CreatableProviderParams } from '@xyo-network/xl1-protocol-sdk'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Parameters for XyoSignerWrapper. */\nexport interface XyoSignerWrapperParams extends CreatableProviderParams {\n signer: XyoSigner\n}\n\n/**\n * Adapts a pre-built XyoSigner instance into a CreatableProvider so it can be\n * registered with a ProviderFactoryLocator. Used by GatewayBuilder.build(signer).\n */\n@creatableProvider()\nexport class XyoSignerWrapper extends AbstractCreatableProvider<XyoSignerWrapperParams> implements XyoSigner {\n static readonly defaultMoniker = XyoSignerMoniker\n static readonly dependencies = []\n static readonly monikers = [XyoSignerMoniker]\n moniker = XyoSignerWrapper.defaultMoniker\n\n address(): Promisable<Address> {\n return this.params.signer.address()\n }\n\n signTransaction(tx: [TransactionBoundWitness, Payload[]]): Promisable<SignedHydratedTransactionWithHashMeta> {\n return this.params.signer.signTransaction(tx)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,iBAAiB;AAI1B,SAAS,mBAAmB,+BAA+B;AAK3D,SAAS,0BAA0B,gCAAgC;;;ACJnE,SAAS,wBAAwB;AAEjC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAYA,IAAM,mBAAN,cAA+B,0BAAuE;AAAA,EAI3G,UAAU,iBAAiB;AAAA,EAE3B,UAA+B;AAC7B,WAAO,KAAK,OAAO,OAAO,QAAQ;AAAA,EACpC;AAAA,EAEA,gBAAgB,IAA6F;AAC3G,WAAO,KAAK,OAAO,OAAO,gBAAgB,EAAE;AAAA,EAC9C;AACF;AAZE,cADW,kBACK,kBAAiB;AACjC,cAFW,kBAEK,gBAAe,CAAC;AAChC,cAHW,kBAGK,YAAW,CAAC,gBAAgB;AAHjC,mBAAN;AAAA,EADN,kBAAkB;AAAA,GACN;;;ADON,IAAM,iBAAN,MAAqB;AAAA,EAClB,uBAAmD,CAAC;AAAA,EACpD,6BAAyD,CAAC;AAAA,EAC1D;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EAER,oBAAoB,WAA6C;AAC/D,SAAK,uBAAuB;AAC5B,WAAO;AAAA,EACT;AAAA,EAEA,0BAA0B,WAA6C;AACrE,SAAK,6BAA6B;AAClC,WAAO;AAAA,EACT;AAAA,EAIA,MAAM,MAAM,QAA4D;AACtE,QAAI,CAAC,UAAU,KAAK,IAAI,GAAG;AACzB,YAAM,IAAI,MAAM,sEAAsE;AAAA,IACxF;AACA,UAAM,eAA6B,EAAE,KAAK,KAAK,KAAK;AAEpD,QAAI,WAAW,QAAW;AACxB,YAAMA,WAAU,MAAM,yBAAyB,KAAK,OAAO,cAAc,KAAK,mBAAmB;AAAA,QAC/F,YAAY,KAAK;AAAA,QACjB,qBAAqB,KAAK;AAAA,MAC5B,CAAC;AACD,aAAO,MAAMA,SAAQ,YAAwB,iBAAiB;AAAA,IAChE;AAEA,UAAM,gBAAgB,iBAAiB,QAA0B,iBAAiB,cAAc,EAAE,OAAO,CAAC;AAC1G,UAAM,UAAU,MAAM,yBAAyB,KAAK,OAAO,cAAc,QAAW,KAAK,mBAAmB;AAAA,MAC1G,YAAY,KAAK;AAAA,MACjB,qBAAqB,KAAK;AAAA,MAC1B,2BAA2B,KAAK;AAAA,MAChC;AAAA,IACF,CAAC;AACD,WAAO,MAAM,QAAQ,YAA8B,uBAAuB;AAAA,EAC5E;AAAA,EAEA,iBAAiB,UAAwB;AACvC,SAAK,oBAAoB;AACzB,WAAO;AAAA,EACT;AAAA,EAEA,KAAK,MAAoB;AACvB,SAAK,QAAQ;AACb,WAAO;AAAA,EACT;AAAA,EAEA,YAAY,WAAmB,WAAyB;AACtD,SAAK,OAAO;AAAA,MACV,UAAU;AAAA,MAAe;AAAA,MAAW;AAAA,IACtC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,KAAmB;AACxB,SAAK,OAAO,EAAE,UAAU,QAAQ,IAAI;AACpC,WAAO;AAAA,EACT;AAAA,EAEA,WAAW,YAAmC;AAC5C,SAAK,cAAc;AACnB,WAAO;AAAA,EACT;AACF;","names":["locator"]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/dataLakes/PageProvider.ts", "../../src/GatewayBuilder.ts", "../../src/XyoSignerWrapper.ts"],
4
+ "sourcesContent": ["import type {\n Hash, Promisable, PromisableArray,\n} from '@xylabs/sdk-js'\nimport type { NextOptions, Sequence } from '@xyo-network/sdk-js'\nimport {\n type DataLakeData, type DataLakeRunnerMethods, DataLakeRunnerMoniker, type DataLakeViewerMethods,\n DataLakeViewerMoniker,\n} from '@xyo-network/xl1-protocol-lib'\nimport type { DataLakePageRpcSchemas, RpcTransport } from '@xyo-network/xl1-rpc'\nimport { DataLakesGetMethod, DataLakesInsertMethod } from '@xyo-network/xl1-rpc'\n\n/**\n * Shared base for page-side data lake providers. Holds the wallet-mediated\n * JSON-RPC transport and the opaque per-origin lake `id`, and provides the\n * read-side implementations (`get`, `next`) common to viewers and runners.\n * Not constructable on its own \u2014 instantiate {@link DataLakePageViewer} or\n * {@link DataLakePageRunner} depending on the granted capability.\n */\nexport abstract class AbstractDataLakePageProvider {\n protected readonly id: string\n protected readonly transport: RpcTransport<DataLakePageRpcSchemas>\n\n constructor(transport: RpcTransport<DataLakePageRpcSchemas>, id: string) {\n this.transport = transport\n this.id = id\n }\n\n async get(hashes: Hash[]): Promise<DataLakeData[]> {\n return await this.transport.sendRequest(DataLakesGetMethod, [{ id: this.id, hashes }])\n }\n\n next(_options?: NextOptions<Sequence>): PromisableArray<DataLakeData> {\n throw new Error('Method [next] not implemented.')\n }\n}\n\n/**\n * Read-only page-side data lake provider \u2014 proxies `get` (and `next` once\n * implemented) through the wallet's JSON-RPC transport. Bound to a single\n * approved lake `id`; construct one instance per `viewer`-capability grant.\n */\nexport class DataLakePageViewer extends AbstractDataLakePageProvider implements DataLakeViewerMethods {\n readonly moniker = DataLakeViewerMoniker\n}\n\n/**\n * Read/write page-side data lake provider \u2014 adds `insert` (and `clear` /\n * `delete` once implemented) on top of the viewer surface. Requires the\n * wallet grant to include the `runner` capability. Bound to a single\n * approved lake `id`.\n */\nexport class DataLakePageRunner extends AbstractDataLakePageProvider implements DataLakeRunnerMethods {\n readonly moniker = DataLakeRunnerMoniker\n\n clear(): Promisable<void> {\n throw new Error('Method [clear] not implemented.')\n }\n\n delete(_hashes: Hash[]): PromisableArray<DataLakeData> {\n throw new Error('Method [delete] not implemented.')\n }\n\n async insert(items: DataLakeData[]): Promise<DataLakeData[]> {\n return await this.transport.sendRequest(DataLakesInsertMethod, [{ id: this.id, payloads: items }])\n }\n}\n", "import { isDefined } from '@xylabs/sdk-js'\nimport type {\n XyoGateway, XyoGatewayRunner, XyoSigner,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XyoGatewayMoniker, XyoGatewayRunnerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport type {\n CreatableProviderFactory, RemoteConfig, RpcRemoteConfig,\n} from '@xyo-network/xl1-protocol-sdk'\nimport type { BlockValidators } from '@xyo-network/xl1-providers'\nimport { basicRemoteRunnerLocator, basicRemoteViewerLocator } from '@xyo-network/xl1-providers'\n\nimport { XyoSignerWrapper } from './XyoSignerWrapper.ts'\n\n/**\n * Fluent builder for client-side XL1 gateways. Hides the locator system from\n * 3rd parties so they can spin up a XyoGateway (read-only) or XyoGatewayRunner\n * (transacting) without touching ProviderFactoryLocator, RemoteConfig, or any\n * JsonRpc transport plumbing.\n *\n * @example\n * const gateway = await new GatewayBuilder()\n * .rpcUrl('https://rpc.xl1.example')\n * .build()\n *\n * @example\n * const runner = await new GatewayBuilder()\n * .rpcUrl('https://rpc.xl1.example')\n * .build(mySigner)\n */\nexport class GatewayBuilder {\n private _additionalProviders: CreatableProviderFactory[] = []\n private _additionalRunnerProviders: CreatableProviderFactory[] = []\n private _dataLakeEndpoint: string | undefined\n private _name = 'gateway-client'\n private _rpc: RpcRemoteConfig | undefined\n private _validators: BlockValidators | undefined\n\n additionalProviders(factories: CreatableProviderFactory[]): this {\n this._additionalProviders = factories\n return this\n }\n\n additionalRunnerProviders(factories: CreatableProviderFactory[]): this {\n this._additionalRunnerProviders = factories\n return this\n }\n\n build(): Promise<XyoGateway>\n build(signer: XyoSigner): Promise<XyoGatewayRunner>\n async build(signer?: XyoSigner): Promise<XyoGateway | XyoGatewayRunner> {\n if (!isDefined(this._rpc)) {\n throw new Error('GatewayBuilder: rpcUrl() or postMessage() must be set before build()')\n }\n const remoteConfig: RemoteConfig = { rpc: this._rpc }\n\n if (signer === undefined) {\n const locator = await basicRemoteViewerLocator(this._name, remoteConfig, this._dataLakeEndpoint, {\n validators: this._validators,\n additionalProviders: this._additionalProviders,\n })\n return await locator.getInstance<XyoGateway>(XyoGatewayMoniker)\n }\n\n const signerFactory = XyoSignerWrapper.factory<XyoSignerWrapper>(XyoSignerWrapper.dependencies, { signer })\n const locator = await basicRemoteRunnerLocator(this._name, remoteConfig, undefined, this._dataLakeEndpoint, {\n validators: this._validators,\n additionalProviders: this._additionalProviders,\n additionalRunnerProviders: this._additionalRunnerProviders,\n signerFactory,\n })\n return await locator.getInstance<XyoGatewayRunner>(XyoGatewayRunnerMoniker)\n }\n\n dataLakeEndpoint(endpoint: string): this {\n this._dataLakeEndpoint = endpoint\n return this\n }\n\n name(name: string): this {\n this._name = name\n return this\n }\n\n postMessage(networkId: string, sessionId: string): this {\n this._rpc = {\n protocol: 'postMessage', networkId, sessionId,\n }\n return this\n }\n\n rpcUrl(url: string): this {\n this._rpc = { protocol: 'http', url }\n return this\n }\n\n validators(validators: BlockValidators): this {\n this._validators = validators\n return this\n }\n}\n", "import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport type {\n SignedHydratedTransactionWithHashMeta, TransactionBoundWitness, XyoSigner,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XyoSignerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport type { CreatableProviderParams } from '@xyo-network/xl1-protocol-sdk'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Parameters for XyoSignerWrapper. */\nexport interface XyoSignerWrapperParams extends CreatableProviderParams {\n signer: XyoSigner\n}\n\n/**\n * Adapts a pre-built XyoSigner instance into a CreatableProvider so it can be\n * registered with a ProviderFactoryLocator. Used by GatewayBuilder.build(signer).\n */\n@creatableProvider()\nexport class XyoSignerWrapper extends AbstractCreatableProvider<XyoSignerWrapperParams> implements XyoSigner {\n static readonly defaultMoniker = XyoSignerMoniker\n static readonly dependencies = []\n static readonly monikers = [XyoSignerMoniker]\n moniker = XyoSignerWrapper.defaultMoniker\n\n address(): Promisable<Address> {\n return this.params.signer.address()\n }\n\n signTransaction(tx: [TransactionBoundWitness, Payload[]]): Promisable<SignedHydratedTransactionWithHashMeta> {\n return this.params.signer.signTransaction(tx)\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["locator"]
7
+ }
@@ -0,0 +1,39 @@
1
+ import type { Hash, Promisable, PromisableArray } from '@xylabs/sdk-js';
2
+ import type { NextOptions, Sequence } from '@xyo-network/sdk-js';
3
+ import { type DataLakeData, type DataLakeRunnerMethods, type DataLakeViewerMethods } from '@xyo-network/xl1-protocol-lib';
4
+ import type { DataLakePageRpcSchemas, RpcTransport } from '@xyo-network/xl1-rpc';
5
+ /**
6
+ * Shared base for page-side data lake providers. Holds the wallet-mediated
7
+ * JSON-RPC transport and the opaque per-origin lake `id`, and provides the
8
+ * read-side implementations (`get`, `next`) common to viewers and runners.
9
+ * Not constructable on its own — instantiate {@link DataLakePageViewer} or
10
+ * {@link DataLakePageRunner} depending on the granted capability.
11
+ */
12
+ export declare abstract class AbstractDataLakePageProvider {
13
+ protected readonly id: string;
14
+ protected readonly transport: RpcTransport<DataLakePageRpcSchemas>;
15
+ constructor(transport: RpcTransport<DataLakePageRpcSchemas>, id: string);
16
+ get(hashes: Hash[]): Promise<DataLakeData[]>;
17
+ next(_options?: NextOptions<Sequence>): PromisableArray<DataLakeData>;
18
+ }
19
+ /**
20
+ * Read-only page-side data lake provider — proxies `get` (and `next` once
21
+ * implemented) through the wallet's JSON-RPC transport. Bound to a single
22
+ * approved lake `id`; construct one instance per `viewer`-capability grant.
23
+ */
24
+ export declare class DataLakePageViewer extends AbstractDataLakePageProvider implements DataLakeViewerMethods {
25
+ readonly moniker: "DataLakeViewer";
26
+ }
27
+ /**
28
+ * Read/write page-side data lake provider — adds `insert` (and `clear` /
29
+ * `delete` once implemented) on top of the viewer surface. Requires the
30
+ * wallet grant to include the `runner` capability. Bound to a single
31
+ * approved lake `id`.
32
+ */
33
+ export declare class DataLakePageRunner extends AbstractDataLakePageProvider implements DataLakeRunnerMethods {
34
+ readonly moniker: "DataLakeRunner";
35
+ clear(): Promisable<void>;
36
+ delete(_hashes: Hash[]): PromisableArray<DataLakeData>;
37
+ insert(items: DataLakeData[]): Promise<DataLakeData[]>;
38
+ }
39
+ //# sourceMappingURL=PageProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageProvider.d.ts","sourceRoot":"","sources":["../../../src/dataLakes/PageProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EAAE,UAAU,EAAE,eAAe,EAClC,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EACL,KAAK,YAAY,EAAE,KAAK,qBAAqB,EAAyB,KAAK,qBAAqB,EAEjG,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGhF;;;;;;GAMG;AACH,8BAAsB,4BAA4B;IAChD,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,sBAAsB,CAAC,CAAA;gBAEtD,SAAS,EAAE,YAAY,CAAC,sBAAsB,CAAC,EAAE,EAAE,EAAE,MAAM;IAKjE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIlD,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,YAAY,CAAC;CAGtE;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,4BAA6B,YAAW,qBAAqB;IACnG,QAAQ,CAAC,OAAO,mBAAwB;CACzC;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,4BAA6B,YAAW,qBAAqB;IACnG,QAAQ,CAAC,OAAO,mBAAwB;IAExC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC;IAIzB,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC;IAIhD,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAG7D"}
@@ -0,0 +1,2 @@
1
+ export * from './PageProvider.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dataLakes/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
@@ -1,3 +1,4 @@
1
+ export * from './dataLakes/index.ts';
1
2
  export * from './GatewayBuilder.ts';
2
3
  export * from './XyoSignerWrapper.ts';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA"}
@@ -11,6 +11,42 @@ var __decorateClass = (decorators, target, key, kind) => {
11
11
  };
12
12
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
13
13
 
14
+ // src/dataLakes/PageProvider.ts
15
+ import {
16
+ DataLakeRunnerMoniker,
17
+ DataLakeViewerMoniker
18
+ } from "@xyo-network/xl1-protocol-lib";
19
+ import { DataLakesGetMethod, DataLakesInsertMethod } from "@xyo-network/xl1-rpc";
20
+ var AbstractDataLakePageProvider = class {
21
+ id;
22
+ transport;
23
+ constructor(transport, id) {
24
+ this.transport = transport;
25
+ this.id = id;
26
+ }
27
+ async get(hashes) {
28
+ return await this.transport.sendRequest(DataLakesGetMethod, [{ id: this.id, hashes }]);
29
+ }
30
+ next(_options) {
31
+ throw new Error("Method [next] not implemented.");
32
+ }
33
+ };
34
+ var DataLakePageViewer = class extends AbstractDataLakePageProvider {
35
+ moniker = DataLakeViewerMoniker;
36
+ };
37
+ var DataLakePageRunner = class extends AbstractDataLakePageProvider {
38
+ moniker = DataLakeRunnerMoniker;
39
+ clear() {
40
+ throw new Error("Method [clear] not implemented.");
41
+ }
42
+ delete(_hashes) {
43
+ throw new Error("Method [delete] not implemented.");
44
+ }
45
+ async insert(items) {
46
+ return await this.transport.sendRequest(DataLakesInsertMethod, [{ id: this.id, payloads: items }]);
47
+ }
48
+ };
49
+
14
50
  // src/GatewayBuilder.ts
15
51
  import { isDefined } from "@xylabs/sdk-js";
16
52
  import { XyoGatewayMoniker, XyoGatewayRunnerMoniker } from "@xyo-network/xl1-protocol-lib";
@@ -101,7 +137,10 @@ var GatewayBuilder = class {
101
137
  }
102
138
  };
103
139
  export {
140
+ AbstractDataLakePageProvider,
141
+ DataLakePageRunner,
142
+ DataLakePageViewer,
104
143
  GatewayBuilder,
105
144
  XyoSignerWrapper
106
145
  };
107
- //# sourceMappingURL=index.mjs.map
146
+ //# sourceMappingURL=index.mjs.map
@@ -1 +1,7 @@
1
- {"version":3,"sources":["../../src/GatewayBuilder.ts","../../src/XyoSignerWrapper.ts"],"sourcesContent":["import { isDefined } from '@xylabs/sdk-js'\nimport type {\n XyoGateway, XyoGatewayRunner, XyoSigner,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XyoGatewayMoniker, XyoGatewayRunnerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport type {\n CreatableProviderFactory, RemoteConfig, RpcRemoteConfig,\n} from '@xyo-network/xl1-protocol-sdk'\nimport type { BlockValidators } from '@xyo-network/xl1-providers'\nimport { basicRemoteRunnerLocator, basicRemoteViewerLocator } from '@xyo-network/xl1-providers'\n\nimport { XyoSignerWrapper } from './XyoSignerWrapper.ts'\n\n/**\n * Fluent builder for client-side XL1 gateways. Hides the locator system from\n * 3rd parties so they can spin up a XyoGateway (read-only) or XyoGatewayRunner\n * (transacting) without touching ProviderFactoryLocator, RemoteConfig, or any\n * JsonRpc transport plumbing.\n *\n * @example\n * const gateway = await new GatewayBuilder()\n * .rpcUrl('https://rpc.xl1.example')\n * .build()\n *\n * @example\n * const runner = await new GatewayBuilder()\n * .rpcUrl('https://rpc.xl1.example')\n * .build(mySigner)\n */\nexport class GatewayBuilder {\n private _additionalProviders: CreatableProviderFactory[] = []\n private _additionalRunnerProviders: CreatableProviderFactory[] = []\n private _dataLakeEndpoint: string | undefined\n private _name = 'gateway-client'\n private _rpc: RpcRemoteConfig | undefined\n private _validators: BlockValidators | undefined\n\n additionalProviders(factories: CreatableProviderFactory[]): this {\n this._additionalProviders = factories\n return this\n }\n\n additionalRunnerProviders(factories: CreatableProviderFactory[]): this {\n this._additionalRunnerProviders = factories\n return this\n }\n\n build(): Promise<XyoGateway>\n build(signer: XyoSigner): Promise<XyoGatewayRunner>\n async build(signer?: XyoSigner): Promise<XyoGateway | XyoGatewayRunner> {\n if (!isDefined(this._rpc)) {\n throw new Error('GatewayBuilder: rpcUrl() or postMessage() must be set before build()')\n }\n const remoteConfig: RemoteConfig = { rpc: this._rpc }\n\n if (signer === undefined) {\n const locator = await basicRemoteViewerLocator(this._name, remoteConfig, this._dataLakeEndpoint, {\n validators: this._validators,\n additionalProviders: this._additionalProviders,\n })\n return await locator.getInstance<XyoGateway>(XyoGatewayMoniker)\n }\n\n const signerFactory = XyoSignerWrapper.factory<XyoSignerWrapper>(XyoSignerWrapper.dependencies, { signer })\n const locator = await basicRemoteRunnerLocator(this._name, remoteConfig, undefined, this._dataLakeEndpoint, {\n validators: this._validators,\n additionalProviders: this._additionalProviders,\n additionalRunnerProviders: this._additionalRunnerProviders,\n signerFactory,\n })\n return await locator.getInstance<XyoGatewayRunner>(XyoGatewayRunnerMoniker)\n }\n\n dataLakeEndpoint(endpoint: string): this {\n this._dataLakeEndpoint = endpoint\n return this\n }\n\n name(name: string): this {\n this._name = name\n return this\n }\n\n postMessage(networkId: string, sessionId: string): this {\n this._rpc = {\n protocol: 'postMessage', networkId, sessionId,\n }\n return this\n }\n\n rpcUrl(url: string): this {\n this._rpc = { protocol: 'http', url }\n return this\n }\n\n validators(validators: BlockValidators): this {\n this._validators = validators\n return this\n }\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport type {\n SignedHydratedTransactionWithHashMeta, TransactionBoundWitness, XyoSigner,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XyoSignerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport type { CreatableProviderParams } from '@xyo-network/xl1-protocol-sdk'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Parameters for XyoSignerWrapper. */\nexport interface XyoSignerWrapperParams extends CreatableProviderParams {\n signer: XyoSigner\n}\n\n/**\n * Adapts a pre-built XyoSigner instance into a CreatableProvider so it can be\n * registered with a ProviderFactoryLocator. Used by GatewayBuilder.build(signer).\n */\n@creatableProvider()\nexport class XyoSignerWrapper extends AbstractCreatableProvider<XyoSignerWrapperParams> implements XyoSigner {\n static readonly defaultMoniker = XyoSignerMoniker\n static readonly dependencies = []\n static readonly monikers = [XyoSignerMoniker]\n moniker = XyoSignerWrapper.defaultMoniker\n\n address(): Promisable<Address> {\n return this.params.signer.address()\n }\n\n signTransaction(tx: [TransactionBoundWitness, Payload[]]): Promisable<SignedHydratedTransactionWithHashMeta> {\n return this.params.signer.signTransaction(tx)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,iBAAiB;AAI1B,SAAS,mBAAmB,+BAA+B;AAK3D,SAAS,0BAA0B,gCAAgC;;;ACJnE,SAAS,wBAAwB;AAEjC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAYA,IAAM,mBAAN,cAA+B,0BAAuE;AAAA,EAI3G,UAAU,iBAAiB;AAAA,EAE3B,UAA+B;AAC7B,WAAO,KAAK,OAAO,OAAO,QAAQ;AAAA,EACpC;AAAA,EAEA,gBAAgB,IAA6F;AAC3G,WAAO,KAAK,OAAO,OAAO,gBAAgB,EAAE;AAAA,EAC9C;AACF;AAZE,cADW,kBACK,kBAAiB;AACjC,cAFW,kBAEK,gBAAe,CAAC;AAChC,cAHW,kBAGK,YAAW,CAAC,gBAAgB;AAHjC,mBAAN;AAAA,EADN,kBAAkB;AAAA,GACN;;;ADON,IAAM,iBAAN,MAAqB;AAAA,EAClB,uBAAmD,CAAC;AAAA,EACpD,6BAAyD,CAAC;AAAA,EAC1D;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EAER,oBAAoB,WAA6C;AAC/D,SAAK,uBAAuB;AAC5B,WAAO;AAAA,EACT;AAAA,EAEA,0BAA0B,WAA6C;AACrE,SAAK,6BAA6B;AAClC,WAAO;AAAA,EACT;AAAA,EAIA,MAAM,MAAM,QAA4D;AACtE,QAAI,CAAC,UAAU,KAAK,IAAI,GAAG;AACzB,YAAM,IAAI,MAAM,sEAAsE;AAAA,IACxF;AACA,UAAM,eAA6B,EAAE,KAAK,KAAK,KAAK;AAEpD,QAAI,WAAW,QAAW;AACxB,YAAMA,WAAU,MAAM,yBAAyB,KAAK,OAAO,cAAc,KAAK,mBAAmB;AAAA,QAC/F,YAAY,KAAK;AAAA,QACjB,qBAAqB,KAAK;AAAA,MAC5B,CAAC;AACD,aAAO,MAAMA,SAAQ,YAAwB,iBAAiB;AAAA,IAChE;AAEA,UAAM,gBAAgB,iBAAiB,QAA0B,iBAAiB,cAAc,EAAE,OAAO,CAAC;AAC1G,UAAM,UAAU,MAAM,yBAAyB,KAAK,OAAO,cAAc,QAAW,KAAK,mBAAmB;AAAA,MAC1G,YAAY,KAAK;AAAA,MACjB,qBAAqB,KAAK;AAAA,MAC1B,2BAA2B,KAAK;AAAA,MAChC;AAAA,IACF,CAAC;AACD,WAAO,MAAM,QAAQ,YAA8B,uBAAuB;AAAA,EAC5E;AAAA,EAEA,iBAAiB,UAAwB;AACvC,SAAK,oBAAoB;AACzB,WAAO;AAAA,EACT;AAAA,EAEA,KAAK,MAAoB;AACvB,SAAK,QAAQ;AACb,WAAO;AAAA,EACT;AAAA,EAEA,YAAY,WAAmB,WAAyB;AACtD,SAAK,OAAO;AAAA,MACV,UAAU;AAAA,MAAe;AAAA,MAAW;AAAA,IACtC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,KAAmB;AACxB,SAAK,OAAO,EAAE,UAAU,QAAQ,IAAI;AACpC,WAAO;AAAA,EACT;AAAA,EAEA,WAAW,YAAmC;AAC5C,SAAK,cAAc;AACnB,WAAO;AAAA,EACT;AACF;","names":["locator"]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/dataLakes/PageProvider.ts", "../../src/GatewayBuilder.ts", "../../src/XyoSignerWrapper.ts"],
4
+ "sourcesContent": ["import type {\n Hash, Promisable, PromisableArray,\n} from '@xylabs/sdk-js'\nimport type { NextOptions, Sequence } from '@xyo-network/sdk-js'\nimport {\n type DataLakeData, type DataLakeRunnerMethods, DataLakeRunnerMoniker, type DataLakeViewerMethods,\n DataLakeViewerMoniker,\n} from '@xyo-network/xl1-protocol-lib'\nimport type { DataLakePageRpcSchemas, RpcTransport } from '@xyo-network/xl1-rpc'\nimport { DataLakesGetMethod, DataLakesInsertMethod } from '@xyo-network/xl1-rpc'\n\n/**\n * Shared base for page-side data lake providers. Holds the wallet-mediated\n * JSON-RPC transport and the opaque per-origin lake `id`, and provides the\n * read-side implementations (`get`, `next`) common to viewers and runners.\n * Not constructable on its own \u2014 instantiate {@link DataLakePageViewer} or\n * {@link DataLakePageRunner} depending on the granted capability.\n */\nexport abstract class AbstractDataLakePageProvider {\n protected readonly id: string\n protected readonly transport: RpcTransport<DataLakePageRpcSchemas>\n\n constructor(transport: RpcTransport<DataLakePageRpcSchemas>, id: string) {\n this.transport = transport\n this.id = id\n }\n\n async get(hashes: Hash[]): Promise<DataLakeData[]> {\n return await this.transport.sendRequest(DataLakesGetMethod, [{ id: this.id, hashes }])\n }\n\n next(_options?: NextOptions<Sequence>): PromisableArray<DataLakeData> {\n throw new Error('Method [next] not implemented.')\n }\n}\n\n/**\n * Read-only page-side data lake provider \u2014 proxies `get` (and `next` once\n * implemented) through the wallet's JSON-RPC transport. Bound to a single\n * approved lake `id`; construct one instance per `viewer`-capability grant.\n */\nexport class DataLakePageViewer extends AbstractDataLakePageProvider implements DataLakeViewerMethods {\n readonly moniker = DataLakeViewerMoniker\n}\n\n/**\n * Read/write page-side data lake provider \u2014 adds `insert` (and `clear` /\n * `delete` once implemented) on top of the viewer surface. Requires the\n * wallet grant to include the `runner` capability. Bound to a single\n * approved lake `id`.\n */\nexport class DataLakePageRunner extends AbstractDataLakePageProvider implements DataLakeRunnerMethods {\n readonly moniker = DataLakeRunnerMoniker\n\n clear(): Promisable<void> {\n throw new Error('Method [clear] not implemented.')\n }\n\n delete(_hashes: Hash[]): PromisableArray<DataLakeData> {\n throw new Error('Method [delete] not implemented.')\n }\n\n async insert(items: DataLakeData[]): Promise<DataLakeData[]> {\n return await this.transport.sendRequest(DataLakesInsertMethod, [{ id: this.id, payloads: items }])\n }\n}\n", "import { isDefined } from '@xylabs/sdk-js'\nimport type {\n XyoGateway, XyoGatewayRunner, XyoSigner,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XyoGatewayMoniker, XyoGatewayRunnerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport type {\n CreatableProviderFactory, RemoteConfig, RpcRemoteConfig,\n} from '@xyo-network/xl1-protocol-sdk'\nimport type { BlockValidators } from '@xyo-network/xl1-providers'\nimport { basicRemoteRunnerLocator, basicRemoteViewerLocator } from '@xyo-network/xl1-providers'\n\nimport { XyoSignerWrapper } from './XyoSignerWrapper.ts'\n\n/**\n * Fluent builder for client-side XL1 gateways. Hides the locator system from\n * 3rd parties so they can spin up a XyoGateway (read-only) or XyoGatewayRunner\n * (transacting) without touching ProviderFactoryLocator, RemoteConfig, or any\n * JsonRpc transport plumbing.\n *\n * @example\n * const gateway = await new GatewayBuilder()\n * .rpcUrl('https://rpc.xl1.example')\n * .build()\n *\n * @example\n * const runner = await new GatewayBuilder()\n * .rpcUrl('https://rpc.xl1.example')\n * .build(mySigner)\n */\nexport class GatewayBuilder {\n private _additionalProviders: CreatableProviderFactory[] = []\n private _additionalRunnerProviders: CreatableProviderFactory[] = []\n private _dataLakeEndpoint: string | undefined\n private _name = 'gateway-client'\n private _rpc: RpcRemoteConfig | undefined\n private _validators: BlockValidators | undefined\n\n additionalProviders(factories: CreatableProviderFactory[]): this {\n this._additionalProviders = factories\n return this\n }\n\n additionalRunnerProviders(factories: CreatableProviderFactory[]): this {\n this._additionalRunnerProviders = factories\n return this\n }\n\n build(): Promise<XyoGateway>\n build(signer: XyoSigner): Promise<XyoGatewayRunner>\n async build(signer?: XyoSigner): Promise<XyoGateway | XyoGatewayRunner> {\n if (!isDefined(this._rpc)) {\n throw new Error('GatewayBuilder: rpcUrl() or postMessage() must be set before build()')\n }\n const remoteConfig: RemoteConfig = { rpc: this._rpc }\n\n if (signer === undefined) {\n const locator = await basicRemoteViewerLocator(this._name, remoteConfig, this._dataLakeEndpoint, {\n validators: this._validators,\n additionalProviders: this._additionalProviders,\n })\n return await locator.getInstance<XyoGateway>(XyoGatewayMoniker)\n }\n\n const signerFactory = XyoSignerWrapper.factory<XyoSignerWrapper>(XyoSignerWrapper.dependencies, { signer })\n const locator = await basicRemoteRunnerLocator(this._name, remoteConfig, undefined, this._dataLakeEndpoint, {\n validators: this._validators,\n additionalProviders: this._additionalProviders,\n additionalRunnerProviders: this._additionalRunnerProviders,\n signerFactory,\n })\n return await locator.getInstance<XyoGatewayRunner>(XyoGatewayRunnerMoniker)\n }\n\n dataLakeEndpoint(endpoint: string): this {\n this._dataLakeEndpoint = endpoint\n return this\n }\n\n name(name: string): this {\n this._name = name\n return this\n }\n\n postMessage(networkId: string, sessionId: string): this {\n this._rpc = {\n protocol: 'postMessage', networkId, sessionId,\n }\n return this\n }\n\n rpcUrl(url: string): this {\n this._rpc = { protocol: 'http', url }\n return this\n }\n\n validators(validators: BlockValidators): this {\n this._validators = validators\n return this\n }\n}\n", "import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport type {\n SignedHydratedTransactionWithHashMeta, TransactionBoundWitness, XyoSigner,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XyoSignerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport type { CreatableProviderParams } from '@xyo-network/xl1-protocol-sdk'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Parameters for XyoSignerWrapper. */\nexport interface XyoSignerWrapperParams extends CreatableProviderParams {\n signer: XyoSigner\n}\n\n/**\n * Adapts a pre-built XyoSigner instance into a CreatableProvider so it can be\n * registered with a ProviderFactoryLocator. Used by GatewayBuilder.build(signer).\n */\n@creatableProvider()\nexport class XyoSignerWrapper extends AbstractCreatableProvider<XyoSignerWrapperParams> implements XyoSigner {\n static readonly defaultMoniker = XyoSignerMoniker\n static readonly dependencies = []\n static readonly monikers = [XyoSignerMoniker]\n moniker = XyoSignerWrapper.defaultMoniker\n\n address(): Promisable<Address> {\n return this.params.signer.address()\n }\n\n signTransaction(tx: [TransactionBoundWitness, Payload[]]): Promisable<SignedHydratedTransactionWithHashMeta> {\n return this.params.signer.signTransaction(tx)\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["locator"]
7
+ }
@@ -0,0 +1,39 @@
1
+ import type { Hash, Promisable, PromisableArray } from '@xylabs/sdk-js';
2
+ import type { NextOptions, Sequence } from '@xyo-network/sdk-js';
3
+ import { type DataLakeData, type DataLakeRunnerMethods, type DataLakeViewerMethods } from '@xyo-network/xl1-protocol-lib';
4
+ import type { DataLakePageRpcSchemas, RpcTransport } from '@xyo-network/xl1-rpc';
5
+ /**
6
+ * Shared base for page-side data lake providers. Holds the wallet-mediated
7
+ * JSON-RPC transport and the opaque per-origin lake `id`, and provides the
8
+ * read-side implementations (`get`, `next`) common to viewers and runners.
9
+ * Not constructable on its own — instantiate {@link DataLakePageViewer} or
10
+ * {@link DataLakePageRunner} depending on the granted capability.
11
+ */
12
+ export declare abstract class AbstractDataLakePageProvider {
13
+ protected readonly id: string;
14
+ protected readonly transport: RpcTransport<DataLakePageRpcSchemas>;
15
+ constructor(transport: RpcTransport<DataLakePageRpcSchemas>, id: string);
16
+ get(hashes: Hash[]): Promise<DataLakeData[]>;
17
+ next(_options?: NextOptions<Sequence>): PromisableArray<DataLakeData>;
18
+ }
19
+ /**
20
+ * Read-only page-side data lake provider — proxies `get` (and `next` once
21
+ * implemented) through the wallet's JSON-RPC transport. Bound to a single
22
+ * approved lake `id`; construct one instance per `viewer`-capability grant.
23
+ */
24
+ export declare class DataLakePageViewer extends AbstractDataLakePageProvider implements DataLakeViewerMethods {
25
+ readonly moniker: "DataLakeViewer";
26
+ }
27
+ /**
28
+ * Read/write page-side data lake provider — adds `insert` (and `clear` /
29
+ * `delete` once implemented) on top of the viewer surface. Requires the
30
+ * wallet grant to include the `runner` capability. Bound to a single
31
+ * approved lake `id`.
32
+ */
33
+ export declare class DataLakePageRunner extends AbstractDataLakePageProvider implements DataLakeRunnerMethods {
34
+ readonly moniker: "DataLakeRunner";
35
+ clear(): Promisable<void>;
36
+ delete(_hashes: Hash[]): PromisableArray<DataLakeData>;
37
+ insert(items: DataLakeData[]): Promise<DataLakeData[]>;
38
+ }
39
+ //# sourceMappingURL=PageProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageProvider.d.ts","sourceRoot":"","sources":["../../../src/dataLakes/PageProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EAAE,UAAU,EAAE,eAAe,EAClC,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EACL,KAAK,YAAY,EAAE,KAAK,qBAAqB,EAAyB,KAAK,qBAAqB,EAEjG,MAAM,+BAA+B,CAAA;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGhF;;;;;;GAMG;AACH,8BAAsB,4BAA4B;IAChD,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IAC7B,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,sBAAsB,CAAC,CAAA;gBAEtD,SAAS,EAAE,YAAY,CAAC,sBAAsB,CAAC,EAAE,EAAE,EAAE,MAAM;IAKjE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIlD,IAAI,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,YAAY,CAAC;CAGtE;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,4BAA6B,YAAW,qBAAqB;IACnG,QAAQ,CAAC,OAAO,mBAAwB;CACzC;AAED;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,4BAA6B,YAAW,qBAAqB;IACnG,QAAQ,CAAC,OAAO,mBAAwB;IAExC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC;IAIzB,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC;IAIhD,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAG7D"}
@@ -0,0 +1,2 @@
1
+ export * from './PageProvider.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dataLakes/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA"}
@@ -1,3 +1,4 @@
1
+ export * from './dataLakes/index.ts';
1
2
  export * from './GatewayBuilder.ts';
2
3
  export * from './XyoSignerWrapper.ts';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA"}
@@ -11,6 +11,42 @@ var __decorateClass = (decorators, target, key, kind) => {
11
11
  };
12
12
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
13
13
 
14
+ // src/dataLakes/PageProvider.ts
15
+ import {
16
+ DataLakeRunnerMoniker,
17
+ DataLakeViewerMoniker
18
+ } from "@xyo-network/xl1-protocol-lib";
19
+ import { DataLakesGetMethod, DataLakesInsertMethod } from "@xyo-network/xl1-rpc";
20
+ var AbstractDataLakePageProvider = class {
21
+ id;
22
+ transport;
23
+ constructor(transport, id) {
24
+ this.transport = transport;
25
+ this.id = id;
26
+ }
27
+ async get(hashes) {
28
+ return await this.transport.sendRequest(DataLakesGetMethod, [{ id: this.id, hashes }]);
29
+ }
30
+ next(_options) {
31
+ throw new Error("Method [next] not implemented.");
32
+ }
33
+ };
34
+ var DataLakePageViewer = class extends AbstractDataLakePageProvider {
35
+ moniker = DataLakeViewerMoniker;
36
+ };
37
+ var DataLakePageRunner = class extends AbstractDataLakePageProvider {
38
+ moniker = DataLakeRunnerMoniker;
39
+ clear() {
40
+ throw new Error("Method [clear] not implemented.");
41
+ }
42
+ delete(_hashes) {
43
+ throw new Error("Method [delete] not implemented.");
44
+ }
45
+ async insert(items) {
46
+ return await this.transport.sendRequest(DataLakesInsertMethod, [{ id: this.id, payloads: items }]);
47
+ }
48
+ };
49
+
14
50
  // src/GatewayBuilder.ts
15
51
  import { isDefined } from "@xylabs/sdk-js";
16
52
  import { XyoGatewayMoniker, XyoGatewayRunnerMoniker } from "@xyo-network/xl1-protocol-lib";
@@ -101,7 +137,10 @@ var GatewayBuilder = class {
101
137
  }
102
138
  };
103
139
  export {
140
+ AbstractDataLakePageProvider,
141
+ DataLakePageRunner,
142
+ DataLakePageViewer,
104
143
  GatewayBuilder,
105
144
  XyoSignerWrapper
106
145
  };
107
- //# sourceMappingURL=index.mjs.map
146
+ //# sourceMappingURL=index.mjs.map
@@ -1 +1,7 @@
1
- {"version":3,"sources":["../../src/GatewayBuilder.ts","../../src/XyoSignerWrapper.ts"],"sourcesContent":["import { isDefined } from '@xylabs/sdk-js'\nimport type {\n XyoGateway, XyoGatewayRunner, XyoSigner,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XyoGatewayMoniker, XyoGatewayRunnerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport type {\n CreatableProviderFactory, RemoteConfig, RpcRemoteConfig,\n} from '@xyo-network/xl1-protocol-sdk'\nimport type { BlockValidators } from '@xyo-network/xl1-providers'\nimport { basicRemoteRunnerLocator, basicRemoteViewerLocator } from '@xyo-network/xl1-providers'\n\nimport { XyoSignerWrapper } from './XyoSignerWrapper.ts'\n\n/**\n * Fluent builder for client-side XL1 gateways. Hides the locator system from\n * 3rd parties so they can spin up a XyoGateway (read-only) or XyoGatewayRunner\n * (transacting) without touching ProviderFactoryLocator, RemoteConfig, or any\n * JsonRpc transport plumbing.\n *\n * @example\n * const gateway = await new GatewayBuilder()\n * .rpcUrl('https://rpc.xl1.example')\n * .build()\n *\n * @example\n * const runner = await new GatewayBuilder()\n * .rpcUrl('https://rpc.xl1.example')\n * .build(mySigner)\n */\nexport class GatewayBuilder {\n private _additionalProviders: CreatableProviderFactory[] = []\n private _additionalRunnerProviders: CreatableProviderFactory[] = []\n private _dataLakeEndpoint: string | undefined\n private _name = 'gateway-client'\n private _rpc: RpcRemoteConfig | undefined\n private _validators: BlockValidators | undefined\n\n additionalProviders(factories: CreatableProviderFactory[]): this {\n this._additionalProviders = factories\n return this\n }\n\n additionalRunnerProviders(factories: CreatableProviderFactory[]): this {\n this._additionalRunnerProviders = factories\n return this\n }\n\n build(): Promise<XyoGateway>\n build(signer: XyoSigner): Promise<XyoGatewayRunner>\n async build(signer?: XyoSigner): Promise<XyoGateway | XyoGatewayRunner> {\n if (!isDefined(this._rpc)) {\n throw new Error('GatewayBuilder: rpcUrl() or postMessage() must be set before build()')\n }\n const remoteConfig: RemoteConfig = { rpc: this._rpc }\n\n if (signer === undefined) {\n const locator = await basicRemoteViewerLocator(this._name, remoteConfig, this._dataLakeEndpoint, {\n validators: this._validators,\n additionalProviders: this._additionalProviders,\n })\n return await locator.getInstance<XyoGateway>(XyoGatewayMoniker)\n }\n\n const signerFactory = XyoSignerWrapper.factory<XyoSignerWrapper>(XyoSignerWrapper.dependencies, { signer })\n const locator = await basicRemoteRunnerLocator(this._name, remoteConfig, undefined, this._dataLakeEndpoint, {\n validators: this._validators,\n additionalProviders: this._additionalProviders,\n additionalRunnerProviders: this._additionalRunnerProviders,\n signerFactory,\n })\n return await locator.getInstance<XyoGatewayRunner>(XyoGatewayRunnerMoniker)\n }\n\n dataLakeEndpoint(endpoint: string): this {\n this._dataLakeEndpoint = endpoint\n return this\n }\n\n name(name: string): this {\n this._name = name\n return this\n }\n\n postMessage(networkId: string, sessionId: string): this {\n this._rpc = {\n protocol: 'postMessage', networkId, sessionId,\n }\n return this\n }\n\n rpcUrl(url: string): this {\n this._rpc = { protocol: 'http', url }\n return this\n }\n\n validators(validators: BlockValidators): this {\n this._validators = validators\n return this\n }\n}\n","import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport type {\n SignedHydratedTransactionWithHashMeta, TransactionBoundWitness, XyoSigner,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XyoSignerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport type { CreatableProviderParams } from '@xyo-network/xl1-protocol-sdk'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Parameters for XyoSignerWrapper. */\nexport interface XyoSignerWrapperParams extends CreatableProviderParams {\n signer: XyoSigner\n}\n\n/**\n * Adapts a pre-built XyoSigner instance into a CreatableProvider so it can be\n * registered with a ProviderFactoryLocator. Used by GatewayBuilder.build(signer).\n */\n@creatableProvider()\nexport class XyoSignerWrapper extends AbstractCreatableProvider<XyoSignerWrapperParams> implements XyoSigner {\n static readonly defaultMoniker = XyoSignerMoniker\n static readonly dependencies = []\n static readonly monikers = [XyoSignerMoniker]\n moniker = XyoSignerWrapper.defaultMoniker\n\n address(): Promisable<Address> {\n return this.params.signer.address()\n }\n\n signTransaction(tx: [TransactionBoundWitness, Payload[]]): Promisable<SignedHydratedTransactionWithHashMeta> {\n return this.params.signer.signTransaction(tx)\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,SAAS,iBAAiB;AAI1B,SAAS,mBAAmB,+BAA+B;AAK3D,SAAS,0BAA0B,gCAAgC;;;ACJnE,SAAS,wBAAwB;AAEjC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAYA,IAAM,mBAAN,cAA+B,0BAAuE;AAAA,EAI3G,UAAU,iBAAiB;AAAA,EAE3B,UAA+B;AAC7B,WAAO,KAAK,OAAO,OAAO,QAAQ;AAAA,EACpC;AAAA,EAEA,gBAAgB,IAA6F;AAC3G,WAAO,KAAK,OAAO,OAAO,gBAAgB,EAAE;AAAA,EAC9C;AACF;AAZE,cADW,kBACK,kBAAiB;AACjC,cAFW,kBAEK,gBAAe,CAAC;AAChC,cAHW,kBAGK,YAAW,CAAC,gBAAgB;AAHjC,mBAAN;AAAA,EADN,kBAAkB;AAAA,GACN;;;ADON,IAAM,iBAAN,MAAqB;AAAA,EAClB,uBAAmD,CAAC;AAAA,EACpD,6BAAyD,CAAC;AAAA,EAC1D;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EAER,oBAAoB,WAA6C;AAC/D,SAAK,uBAAuB;AAC5B,WAAO;AAAA,EACT;AAAA,EAEA,0BAA0B,WAA6C;AACrE,SAAK,6BAA6B;AAClC,WAAO;AAAA,EACT;AAAA,EAIA,MAAM,MAAM,QAA4D;AACtE,QAAI,CAAC,UAAU,KAAK,IAAI,GAAG;AACzB,YAAM,IAAI,MAAM,sEAAsE;AAAA,IACxF;AACA,UAAM,eAA6B,EAAE,KAAK,KAAK,KAAK;AAEpD,QAAI,WAAW,QAAW;AACxB,YAAMA,WAAU,MAAM,yBAAyB,KAAK,OAAO,cAAc,KAAK,mBAAmB;AAAA,QAC/F,YAAY,KAAK;AAAA,QACjB,qBAAqB,KAAK;AAAA,MAC5B,CAAC;AACD,aAAO,MAAMA,SAAQ,YAAwB,iBAAiB;AAAA,IAChE;AAEA,UAAM,gBAAgB,iBAAiB,QAA0B,iBAAiB,cAAc,EAAE,OAAO,CAAC;AAC1G,UAAM,UAAU,MAAM,yBAAyB,KAAK,OAAO,cAAc,QAAW,KAAK,mBAAmB;AAAA,MAC1G,YAAY,KAAK;AAAA,MACjB,qBAAqB,KAAK;AAAA,MAC1B,2BAA2B,KAAK;AAAA,MAChC;AAAA,IACF,CAAC;AACD,WAAO,MAAM,QAAQ,YAA8B,uBAAuB;AAAA,EAC5E;AAAA,EAEA,iBAAiB,UAAwB;AACvC,SAAK,oBAAoB;AACzB,WAAO;AAAA,EACT;AAAA,EAEA,KAAK,MAAoB;AACvB,SAAK,QAAQ;AACb,WAAO;AAAA,EACT;AAAA,EAEA,YAAY,WAAmB,WAAyB;AACtD,SAAK,OAAO;AAAA,MACV,UAAU;AAAA,MAAe;AAAA,MAAW;AAAA,IACtC;AACA,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,KAAmB;AACxB,SAAK,OAAO,EAAE,UAAU,QAAQ,IAAI;AACpC,WAAO;AAAA,EACT;AAAA,EAEA,WAAW,YAAmC;AAC5C,SAAK,cAAc;AACnB,WAAO;AAAA,EACT;AACF;","names":["locator"]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/dataLakes/PageProvider.ts", "../../src/GatewayBuilder.ts", "../../src/XyoSignerWrapper.ts"],
4
+ "sourcesContent": ["import type {\n Hash, Promisable, PromisableArray,\n} from '@xylabs/sdk-js'\nimport type { NextOptions, Sequence } from '@xyo-network/sdk-js'\nimport {\n type DataLakeData, type DataLakeRunnerMethods, DataLakeRunnerMoniker, type DataLakeViewerMethods,\n DataLakeViewerMoniker,\n} from '@xyo-network/xl1-protocol-lib'\nimport type { DataLakePageRpcSchemas, RpcTransport } from '@xyo-network/xl1-rpc'\nimport { DataLakesGetMethod, DataLakesInsertMethod } from '@xyo-network/xl1-rpc'\n\n/**\n * Shared base for page-side data lake providers. Holds the wallet-mediated\n * JSON-RPC transport and the opaque per-origin lake `id`, and provides the\n * read-side implementations (`get`, `next`) common to viewers and runners.\n * Not constructable on its own \u2014 instantiate {@link DataLakePageViewer} or\n * {@link DataLakePageRunner} depending on the granted capability.\n */\nexport abstract class AbstractDataLakePageProvider {\n protected readonly id: string\n protected readonly transport: RpcTransport<DataLakePageRpcSchemas>\n\n constructor(transport: RpcTransport<DataLakePageRpcSchemas>, id: string) {\n this.transport = transport\n this.id = id\n }\n\n async get(hashes: Hash[]): Promise<DataLakeData[]> {\n return await this.transport.sendRequest(DataLakesGetMethod, [{ id: this.id, hashes }])\n }\n\n next(_options?: NextOptions<Sequence>): PromisableArray<DataLakeData> {\n throw new Error('Method [next] not implemented.')\n }\n}\n\n/**\n * Read-only page-side data lake provider \u2014 proxies `get` (and `next` once\n * implemented) through the wallet's JSON-RPC transport. Bound to a single\n * approved lake `id`; construct one instance per `viewer`-capability grant.\n */\nexport class DataLakePageViewer extends AbstractDataLakePageProvider implements DataLakeViewerMethods {\n readonly moniker = DataLakeViewerMoniker\n}\n\n/**\n * Read/write page-side data lake provider \u2014 adds `insert` (and `clear` /\n * `delete` once implemented) on top of the viewer surface. Requires the\n * wallet grant to include the `runner` capability. Bound to a single\n * approved lake `id`.\n */\nexport class DataLakePageRunner extends AbstractDataLakePageProvider implements DataLakeRunnerMethods {\n readonly moniker = DataLakeRunnerMoniker\n\n clear(): Promisable<void> {\n throw new Error('Method [clear] not implemented.')\n }\n\n delete(_hashes: Hash[]): PromisableArray<DataLakeData> {\n throw new Error('Method [delete] not implemented.')\n }\n\n async insert(items: DataLakeData[]): Promise<DataLakeData[]> {\n return await this.transport.sendRequest(DataLakesInsertMethod, [{ id: this.id, payloads: items }])\n }\n}\n", "import { isDefined } from '@xylabs/sdk-js'\nimport type {\n XyoGateway, XyoGatewayRunner, XyoSigner,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XyoGatewayMoniker, XyoGatewayRunnerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport type {\n CreatableProviderFactory, RemoteConfig, RpcRemoteConfig,\n} from '@xyo-network/xl1-protocol-sdk'\nimport type { BlockValidators } from '@xyo-network/xl1-providers'\nimport { basicRemoteRunnerLocator, basicRemoteViewerLocator } from '@xyo-network/xl1-providers'\n\nimport { XyoSignerWrapper } from './XyoSignerWrapper.ts'\n\n/**\n * Fluent builder for client-side XL1 gateways. Hides the locator system from\n * 3rd parties so they can spin up a XyoGateway (read-only) or XyoGatewayRunner\n * (transacting) without touching ProviderFactoryLocator, RemoteConfig, or any\n * JsonRpc transport plumbing.\n *\n * @example\n * const gateway = await new GatewayBuilder()\n * .rpcUrl('https://rpc.xl1.example')\n * .build()\n *\n * @example\n * const runner = await new GatewayBuilder()\n * .rpcUrl('https://rpc.xl1.example')\n * .build(mySigner)\n */\nexport class GatewayBuilder {\n private _additionalProviders: CreatableProviderFactory[] = []\n private _additionalRunnerProviders: CreatableProviderFactory[] = []\n private _dataLakeEndpoint: string | undefined\n private _name = 'gateway-client'\n private _rpc: RpcRemoteConfig | undefined\n private _validators: BlockValidators | undefined\n\n additionalProviders(factories: CreatableProviderFactory[]): this {\n this._additionalProviders = factories\n return this\n }\n\n additionalRunnerProviders(factories: CreatableProviderFactory[]): this {\n this._additionalRunnerProviders = factories\n return this\n }\n\n build(): Promise<XyoGateway>\n build(signer: XyoSigner): Promise<XyoGatewayRunner>\n async build(signer?: XyoSigner): Promise<XyoGateway | XyoGatewayRunner> {\n if (!isDefined(this._rpc)) {\n throw new Error('GatewayBuilder: rpcUrl() or postMessage() must be set before build()')\n }\n const remoteConfig: RemoteConfig = { rpc: this._rpc }\n\n if (signer === undefined) {\n const locator = await basicRemoteViewerLocator(this._name, remoteConfig, this._dataLakeEndpoint, {\n validators: this._validators,\n additionalProviders: this._additionalProviders,\n })\n return await locator.getInstance<XyoGateway>(XyoGatewayMoniker)\n }\n\n const signerFactory = XyoSignerWrapper.factory<XyoSignerWrapper>(XyoSignerWrapper.dependencies, { signer })\n const locator = await basicRemoteRunnerLocator(this._name, remoteConfig, undefined, this._dataLakeEndpoint, {\n validators: this._validators,\n additionalProviders: this._additionalProviders,\n additionalRunnerProviders: this._additionalRunnerProviders,\n signerFactory,\n })\n return await locator.getInstance<XyoGatewayRunner>(XyoGatewayRunnerMoniker)\n }\n\n dataLakeEndpoint(endpoint: string): this {\n this._dataLakeEndpoint = endpoint\n return this\n }\n\n name(name: string): this {\n this._name = name\n return this\n }\n\n postMessage(networkId: string, sessionId: string): this {\n this._rpc = {\n protocol: 'postMessage', networkId, sessionId,\n }\n return this\n }\n\n rpcUrl(url: string): this {\n this._rpc = { protocol: 'http', url }\n return this\n }\n\n validators(validators: BlockValidators): this {\n this._validators = validators\n return this\n }\n}\n", "import type { Address, Promisable } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/sdk-js'\nimport type {\n SignedHydratedTransactionWithHashMeta, TransactionBoundWitness, XyoSigner,\n} from '@xyo-network/xl1-protocol-lib'\nimport { XyoSignerMoniker } from '@xyo-network/xl1-protocol-lib'\nimport type { CreatableProviderParams } from '@xyo-network/xl1-protocol-sdk'\nimport {\n AbstractCreatableProvider,\n creatableProvider,\n} from '@xyo-network/xl1-protocol-sdk'\n\n/** Parameters for XyoSignerWrapper. */\nexport interface XyoSignerWrapperParams extends CreatableProviderParams {\n signer: XyoSigner\n}\n\n/**\n * Adapts a pre-built XyoSigner instance into a CreatableProvider so it can be\n * registered with a ProviderFactoryLocator. Used by GatewayBuilder.build(signer).\n */\n@creatableProvider()\nexport class XyoSignerWrapper extends AbstractCreatableProvider<XyoSignerWrapperParams> implements XyoSigner {\n static readonly defaultMoniker = XyoSignerMoniker\n static readonly dependencies = []\n static readonly monikers = [XyoSignerMoniker]\n moniker = XyoSignerWrapper.defaultMoniker\n\n address(): Promisable<Address> {\n return this.params.signer.address()\n }\n\n signTransaction(tx: [TransactionBoundWitness, Payload[]]): Promisable<SignedHydratedTransactionWithHashMeta> {\n return this.params.signer.signTransaction(tx)\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["locator"]
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/xl1-gateway",
3
- "version": "1.30.1",
3
+ "version": "1.30.3",
4
4
  "description": "XYO Layer One Gateway SDK",
5
5
  "homepage": "https://xylabs.com",
6
6
  "bugs": {
@@ -44,9 +44,10 @@
44
44
  "README.md"
45
45
  ],
46
46
  "dependencies": {
47
- "@xyo-network/xl1-protocol-lib": "~1.30.1",
48
- "@xyo-network/xl1-providers": "~1.30.1",
49
- "@xyo-network/xl1-protocol-sdk": "~1.30.1"
47
+ "@xyo-network/xl1-protocol-lib": "~1.30.3",
48
+ "@xyo-network/xl1-rpc": "~1.30.3",
49
+ "@xyo-network/xl1-protocol-sdk": "~1.30.3",
50
+ "@xyo-network/xl1-providers": "~1.30.3"
50
51
  },
51
52
  "devDependencies": {
52
53
  "@bitauth/libauth": "~3.0.0",
@@ -61,8 +62,8 @@
61
62
  "@xylabs/geo": "^5.1.2",
62
63
  "@xylabs/sdk-js": "^5.1.2",
63
64
  "@xylabs/threads": "~5.1.2",
64
- "@xylabs/toolchain": "~7.13.24",
65
- "@xylabs/tsconfig": "~7.13.24",
65
+ "@xylabs/toolchain": "~8.0.3",
66
+ "@xylabs/tsconfig": "~8.0.3",
66
67
  "@xylabs/vitest-extended": "^5.1.2",
67
68
  "@xyo-network/account": "~5.6.2",
68
69
  "@xyo-network/account-model": "~5.6.3",
@@ -100,14 +101,14 @@
100
101
  "observable-fns": "~0.6.1",
101
102
  "pako": "^2.1.0",
102
103
  "store2": "~2.14.4",
103
- "typescript": "~5.9.3",
104
+ "typescript": "~6.0.3",
104
105
  "uuid": "~14.0.0",
105
- "vite": "^8.0.12",
106
+ "vite": "^8.0.13",
106
107
  "vitest": "~4.1.6",
107
108
  "wasm-feature-detect": "~1.8.0",
108
109
  "webextension-polyfill": "^0.12.0",
109
110
  "zod": "~4.4.3",
110
- "@xyo-network/xl1-network-model": "~1.30.1"
111
+ "@xyo-network/xl1-network-model": "~1.30.3"
111
112
  },
112
113
  "peerDependencies": {
113
114
  "@bitauth/libauth": "~3.0",