@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
@@ -58,7 +58,7 @@ var MemoryXyoClient = class {
58
58
  };
59
59
 
60
60
  // src/provider/client/PermissionsStore/getPermissionsStoreFromTransport.ts
61
- var getPermissionsStoreFromTransport = (transport) => {
61
+ var getPermissionsStoreFromTransport = (_transport) => {
62
62
  throw new Error("Not implemented");
63
63
  };
64
64
 
@@ -717,7 +717,11 @@ var MemoryRpcTransport = class {
717
717
  }
718
718
  };
719
719
 
720
- // src/transport/post-message/PostMessageRpcTransport.ts
720
+ // src/transport/post-message/LegacyPostMessageRpcTransport.ts
721
+ import {
722
+ isJsonRpcError,
723
+ isJsonRpcSuccess
724
+ } from "@metamask/utils";
721
725
  import { isDefined } from "@xylabs/typeof";
722
726
  import { v4 as v43 } from "uuid";
723
727
 
@@ -726,23 +730,32 @@ var isRpcError = (data) => {
726
730
  return data && typeof data === "object" && "error" in data && data.error;
727
731
  };
728
732
 
729
- // src/transport/post-message/SessionEnvelope.ts
730
- var buildSessionMessageRequest = (data, destination) => {
731
- const request = {
732
- data,
733
- destination,
734
- sessionId: globalThis.xyoWalletExtensionId ?? ""
735
- };
736
- return request;
733
+ // src/transport/post-message/resolveData.ts
734
+ var hasMatchingId = (eventData, targetId) => {
735
+ return eventData?.id === targetId ? { legacyEventData: eventData } : false;
736
+ };
737
+ var hasMatchingNestedId = (eventData, targetId) => {
738
+ return eventData?.data?.id === targetId ? { eventData: eventData.data } : false;
739
+ };
740
+ var resolvedEvent = (event, targetId) => {
741
+ return hasMatchingId(event.data, targetId) || hasMatchingNestedId(event.data, targetId);
737
742
  };
738
743
 
739
- // src/transport/post-message/PostMessageRpcTransport.ts
740
- var PostMessageRpcTransport = class {
744
+ // src/transport/post-message/LegacyPostMessageRpcTransport.ts
745
+ var isValidBaseRpcEvent = (data) => {
746
+ 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");
747
+ };
748
+ var isRpcResponse = (data, targetId) => {
749
+ return isValidBaseRpcEvent(data) && (isDefined(targetId) ? data.id === targetId : true) && "result" in data && Array.isArray(data.result);
750
+ };
751
+ var LegacyPostMessageRpcTransport = class {
741
752
  destination;
742
753
  schemas;
743
- constructor(defaultDestination, schemas = XyoGatewayRpcSchemas) {
754
+ sessionId;
755
+ constructor(defaultDestination, schemas = XyoGatewayRpcSchemas, sessionId) {
744
756
  this.schemas = schemas;
745
757
  this.destination = defaultDestination;
758
+ this.sessionId = sessionId;
746
759
  }
747
760
  async sendRequest(method, params) {
748
761
  const id = v43();
@@ -759,22 +772,53 @@ var PostMessageRpcTransport = class {
759
772
  const id2 = body.id;
760
773
  const handler = (event) => {
761
774
  if (event.origin !== globalThis.window.origin) return;
762
- if (event.data.id !== id2) return;
775
+ if (!isRpcResponse(event.data, id2)) return;
776
+ const data = resolvedEvent(event, id2);
777
+ if (data === false) return;
763
778
  globalThis.removeEventListener("message", handler);
764
- if (event.data.result.some(isRpcError)) {
765
- reject(event.data.result[0]);
766
- } else {
767
- resolve(event.data.result[0]);
779
+ if (data.legacyEventData) {
780
+ if (data.legacyEventData.result.some(isRpcError)) {
781
+ reject(data.legacyEventData.result[0]);
782
+ } else {
783
+ resolve(data.legacyEventData.result[0]);
784
+ }
785
+ return;
786
+ }
787
+ if (data.eventData) {
788
+ if (isJsonRpcError(data.eventData)) {
789
+ reject(data.eventData);
790
+ return;
791
+ }
792
+ if (isJsonRpcSuccess(data.eventData)) {
793
+ resolve(data.eventData);
794
+ return;
795
+ }
796
+ reject(new Error("Unexpected response format"));
768
797
  }
769
798
  };
770
799
  globalThis.addEventListener("message", handler);
771
800
  globalThis.postMessage(
772
- buildSessionMessageRequest(body, this.destination),
801
+ {
802
+ data: body,
803
+ destination: this.destination,
804
+ sessionId: this.sessionId
805
+ },
773
806
  globalThis.location.origin
774
807
  );
775
808
  });
776
809
  }
777
810
  };
811
+ var PostMessageRpcTransport = LegacyPostMessageRpcTransport;
812
+
813
+ // src/transport/post-message/SessionEnvelope.ts
814
+ var buildSessionMessageRequest = (data, destination) => {
815
+ const request = {
816
+ data,
817
+ destination,
818
+ sessionId: globalThis.xyo.walletExtensionId() ?? ""
819
+ };
820
+ return request;
821
+ };
778
822
 
779
823
  // src/provider/datalake/AbstractXyoDataLake.ts
780
824
  import { ObjectHasher } from "@xyo-network/hash";
@@ -1331,6 +1375,7 @@ export {
1331
1375
  JsonRpcXyoRunner,
1332
1376
  JsonRpcXyoSigner,
1333
1377
  JsonRpcXyoViewer,
1378
+ LegacyPostMessageRpcTransport,
1334
1379
  MemoryPermissionsStore,
1335
1380
  MemoryRpcTransport,
1336
1381
  MemoryXyoClient,