@xyo-network/xl1-rpc 1.10.0 → 1.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/neutral/index.mjs +64 -19
  2. package/dist/neutral/index.mjs.map +1 -1
  3. package/dist/neutral/provider/client/PermissionsStore/getPermissionsStoreFromTransport.d.ts +1 -1
  4. package/dist/neutral/provider/client/PermissionsStore/getPermissionsStoreFromTransport.d.ts.map +1 -1
  5. package/dist/neutral/provider/connection/XyoConnection.d.ts +2 -2
  6. package/dist/neutral/provider/connection/XyoConnection.d.ts.map +1 -1
  7. package/dist/neutral/transport/post-message/LegacyPostMessageRpcTransport.d.ts +15 -0
  8. package/dist/neutral/transport/post-message/LegacyPostMessageRpcTransport.d.ts.map +1 -0
  9. package/dist/neutral/transport/post-message/index.d.ts +1 -1
  10. package/dist/neutral/transport/post-message/index.d.ts.map +1 -1
  11. package/dist/neutral/transport/post-message/resolveData.d.ts +13 -0
  12. package/dist/neutral/transport/post-message/resolveData.d.ts.map +1 -0
  13. package/dist/node/index-node.mjs +64 -19
  14. package/dist/node/index-node.mjs.map +1 -1
  15. package/dist/node/provider/client/PermissionsStore/getPermissionsStoreFromTransport.d.ts +1 -1
  16. package/dist/node/provider/client/PermissionsStore/getPermissionsStoreFromTransport.d.ts.map +1 -1
  17. package/dist/node/provider/connection/XyoConnection.d.ts +2 -2
  18. package/dist/node/provider/connection/XyoConnection.d.ts.map +1 -1
  19. package/dist/node/transport/post-message/LegacyPostMessageRpcTransport.d.ts +15 -0
  20. package/dist/node/transport/post-message/LegacyPostMessageRpcTransport.d.ts.map +1 -0
  21. package/dist/node/transport/post-message/index.d.ts +1 -1
  22. package/dist/node/transport/post-message/index.d.ts.map +1 -1
  23. package/dist/node/transport/post-message/resolveData.d.ts +13 -0
  24. package/dist/node/transport/post-message/resolveData.d.ts.map +1 -0
  25. package/package.json +26 -26
  26. package/src/provider/client/PermissionsStore/getPermissionsStoreFromTransport.ts +1 -1
  27. package/src/provider/connection/XyoConnection.ts +5 -2
  28. package/src/provider/connection/spec/XyoConnection.ts +1 -0
  29. package/src/provider/signer/spec/RpcEngineXyoSigner.spec.ts +1 -0
  30. package/src/transport/post-message/LegacyPostMessageRpcTransport.ts +117 -0
  31. package/src/transport/post-message/SessionEnvelope.ts +1 -1
  32. package/src/transport/post-message/helpers.ts +1 -1
  33. package/src/transport/post-message/index.ts +1 -1
  34. package/src/transport/post-message/resolveData.ts +30 -0
  35. package/src/types/global.d.ts +1 -1
  36. package/dist/neutral/transport/post-message/PostMessageRpcTransport.d.ts +0 -12
  37. package/dist/neutral/transport/post-message/PostMessageRpcTransport.d.ts.map +0 -1
  38. package/dist/node/transport/post-message/PostMessageRpcTransport.d.ts +0 -12
  39. package/dist/node/transport/post-message/PostMessageRpcTransport.d.ts.map +0 -1
  40. package/src/transport/post-message/PostMessageRpcTransport.ts +0 -73
@@ -642,7 +642,7 @@ var MemoryXyoClient = class {
642
642
  };
643
643
 
644
644
  // src/provider/client/PermissionsStore/getPermissionsStoreFromTransport.ts
645
- var getPermissionsStoreFromTransport = (transport) => {
645
+ var getPermissionsStoreFromTransport = (_transport) => {
646
646
  throw new Error("Not implemented");
647
647
  };
648
648
 
@@ -754,7 +754,11 @@ var MemoryRpcTransport = class {
754
754
  }
755
755
  };
756
756
 
757
- // src/transport/post-message/PostMessageRpcTransport.ts
757
+ // src/transport/post-message/LegacyPostMessageRpcTransport.ts
758
+ import {
759
+ isJsonRpcError,
760
+ isJsonRpcSuccess
761
+ } from "@metamask/utils";
758
762
  import { isDefined } from "@xylabs/typeof";
759
763
  import { v4 as v43 } from "uuid";
760
764
 
@@ -763,23 +767,32 @@ var isRpcError = (data) => {
763
767
  return data && typeof data === "object" && "error" in data && data.error;
764
768
  };
765
769
 
766
- // src/transport/post-message/SessionEnvelope.ts
767
- var buildSessionMessageRequest = (data, destination) => {
768
- const request = {
769
- data,
770
- destination,
771
- sessionId: globalThis.xyoWalletExtensionId ?? ""
772
- };
773
- return request;
770
+ // src/transport/post-message/resolveData.ts
771
+ var hasMatchingId = (eventData, targetId) => {
772
+ return eventData?.id === targetId ? { legacyEventData: eventData } : false;
773
+ };
774
+ var hasMatchingNestedId = (eventData, targetId) => {
775
+ return eventData?.data?.id === targetId ? { eventData: eventData.data } : false;
776
+ };
777
+ var resolvedEvent = (event, targetId) => {
778
+ return hasMatchingId(event.data, targetId) || hasMatchingNestedId(event.data, targetId);
774
779
  };
775
780
 
776
- // src/transport/post-message/PostMessageRpcTransport.ts
777
- var PostMessageRpcTransport = class {
781
+ // src/transport/post-message/LegacyPostMessageRpcTransport.ts
782
+ var isValidBaseRpcEvent = (data) => {
783
+ return !!(data && typeof data === "object" && "jsonrpc" in data && data.jsonrpc === "2.0" && "method" in data && typeof data.method === "string" && "id" in data && typeof data.id === "string");
784
+ };
785
+ var isRpcResponse = (data, targetId) => {
786
+ return isValidBaseRpcEvent(data) && (isDefined(targetId) ? data.id === targetId : true) && "result" in data && Array.isArray(data.result);
787
+ };
788
+ var LegacyPostMessageRpcTransport = class {
778
789
  destination;
779
790
  schemas;
780
- constructor(defaultDestination, schemas = XyoGatewayRpcSchemas) {
791
+ sessionId;
792
+ constructor(defaultDestination, schemas = XyoGatewayRpcSchemas, sessionId) {
781
793
  this.schemas = schemas;
782
794
  this.destination = defaultDestination;
795
+ this.sessionId = sessionId;
783
796
  }
784
797
  async sendRequest(method, params) {
785
798
  const id = v43();
@@ -796,22 +809,53 @@ var PostMessageRpcTransport = class {
796
809
  const id2 = body.id;
797
810
  const handler = (event) => {
798
811
  if (event.origin !== globalThis.window.origin) return;
799
- if (event.data.id !== id2) return;
812
+ if (!isRpcResponse(event.data, id2)) return;
813
+ const data = resolvedEvent(event, id2);
814
+ if (data === false) return;
800
815
  globalThis.removeEventListener("message", handler);
801
- if (event.data.result.some(isRpcError)) {
802
- reject(event.data.result[0]);
803
- } else {
804
- resolve(event.data.result[0]);
816
+ if (data.legacyEventData) {
817
+ if (data.legacyEventData.result.some(isRpcError)) {
818
+ reject(data.legacyEventData.result[0]);
819
+ } else {
820
+ resolve(data.legacyEventData.result[0]);
821
+ }
822
+ return;
823
+ }
824
+ if (data.eventData) {
825
+ if (isJsonRpcError(data.eventData)) {
826
+ reject(data.eventData);
827
+ return;
828
+ }
829
+ if (isJsonRpcSuccess(data.eventData)) {
830
+ resolve(data.eventData);
831
+ return;
832
+ }
833
+ reject(new Error("Unexpected response format"));
805
834
  }
806
835
  };
807
836
  globalThis.addEventListener("message", handler);
808
837
  globalThis.postMessage(
809
- buildSessionMessageRequest(body, this.destination),
838
+ {
839
+ data: body,
840
+ destination: this.destination,
841
+ sessionId: this.sessionId
842
+ },
810
843
  globalThis.location.origin
811
844
  );
812
845
  });
813
846
  }
814
847
  };
848
+ var PostMessageRpcTransport = LegacyPostMessageRpcTransport;
849
+
850
+ // src/transport/post-message/SessionEnvelope.ts
851
+ var buildSessionMessageRequest = (data, destination) => {
852
+ const request = {
853
+ data,
854
+ destination,
855
+ sessionId: globalThis.xyo.walletExtensionId() ?? ""
856
+ };
857
+ return request;
858
+ };
815
859
 
816
860
  // src/provider/datalake/AbstractXyoDataLake.ts
817
861
  import { ObjectHasher } from "@xyo-network/hash";
@@ -1368,6 +1412,7 @@ export {
1368
1412
  JsonRpcXyoRunner,
1369
1413
  JsonRpcXyoSigner,
1370
1414
  JsonRpcXyoViewer,
1415
+ LegacyPostMessageRpcTransport,
1371
1416
  MemoryPermissionsStore,
1372
1417
  MemoryRpcTransport,
1373
1418
  MemoryXyoClient,