@xyo-network/api-call-witness 5.3.1 → 5.3.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.
Files changed (61) hide show
  1. package/dist/neutral/Payload/identity/asApiCall.d.ts +1 -1
  2. package/dist/neutral/Payload/identity/asApiCallBase64Result.d.ts +1 -1
  3. package/dist/neutral/Payload/identity/asApiCallResult.d.ts +1 -1
  4. package/dist/neutral/Payload/identity/asApiCallXmlResult.d.ts +1 -1
  5. package/dist/neutral/Payload/identity/asApiUriCall.d.ts +1 -1
  6. package/dist/neutral/Payload/identity/asApiUriTemplateCall.d.ts +1 -1
  7. package/dist/neutral/Payload/types/ApiCallBase64Result.d.ts +1 -1
  8. package/dist/neutral/Payload/types/ApiCallBase64Result.d.ts.map +1 -1
  9. package/dist/neutral/Payload/types/ApiCallErrorResult.d.ts +1 -1
  10. package/dist/neutral/Payload/types/ApiCallErrorResult.d.ts.map +1 -1
  11. package/dist/neutral/Payload/types/ApiCallJsonResult.d.ts +2 -3
  12. package/dist/neutral/Payload/types/ApiCallJsonResult.d.ts.map +1 -1
  13. package/dist/neutral/Payload/types/ApiCallResult.d.ts +1 -1
  14. package/dist/neutral/Payload/types/ApiCallXmlResult.d.ts +1 -1
  15. package/dist/neutral/Payload/types/ApiCallXmlResult.d.ts.map +1 -1
  16. package/dist/neutral/Witness/Config.d.ts +3 -3
  17. package/dist/neutral/Witness/Witness.d.ts.map +1 -1
  18. package/dist/neutral/index.mjs +15 -14
  19. package/dist/neutral/index.mjs.map +1 -1
  20. package/dist/neutral/lib/checkIpfsUrl.d.ts.map +1 -1
  21. package/package.json +31 -28
  22. package/src/Payload/Schema.ts +0 -7
  23. package/src/Payload/identity/asApiCall.ts +0 -5
  24. package/src/Payload/identity/asApiCallBase64Result.ts +0 -5
  25. package/src/Payload/identity/asApiCallResult.ts +0 -5
  26. package/src/Payload/identity/asApiCallXmlResult.ts +0 -5
  27. package/src/Payload/identity/asApiUriCall.ts +0 -5
  28. package/src/Payload/identity/asApiUriTemplateCall.ts +0 -5
  29. package/src/Payload/identity/index.ts +0 -13
  30. package/src/Payload/identity/isApiCall.ts +0 -6
  31. package/src/Payload/identity/isApiCallBase64Result.ts +0 -8
  32. package/src/Payload/identity/isApiCallErrorResult.ts +0 -7
  33. package/src/Payload/identity/isApiCallResult.ts +0 -6
  34. package/src/Payload/identity/isApiCallXmlResult.ts +0 -8
  35. package/src/Payload/identity/isApiUriCall.ts +0 -4
  36. package/src/Payload/identity/isApiUriTemplateCall.ts +0 -5
  37. package/src/Payload/index.ts +0 -3
  38. package/src/Payload/types/ApiCall.ts +0 -4
  39. package/src/Payload/types/ApiCallBase64Result.ts +0 -15
  40. package/src/Payload/types/ApiCallErrorResult.ts +0 -13
  41. package/src/Payload/types/ApiCallFields.ts +0 -8
  42. package/src/Payload/types/ApiCallJsonResult.ts +0 -24
  43. package/src/Payload/types/ApiCallResult.ts +0 -12
  44. package/src/Payload/types/ApiCallXmlResult.ts +0 -13
  45. package/src/Payload/types/ApiUriCall.ts +0 -11
  46. package/src/Payload/types/ApiUriTemplateCall.ts +0 -12
  47. package/src/Payload/types/HttpMeta.ts +0 -4
  48. package/src/Payload/types/MimeTypes.ts +0 -13
  49. package/src/Payload/types/Queries.ts +0 -1
  50. package/src/Payload/types/Verb.ts +0 -1
  51. package/src/Payload/types/index.ts +0 -13
  52. package/src/Witness/Config.ts +0 -43
  53. package/src/Witness/Params.ts +0 -10
  54. package/src/Witness/Schema.ts +0 -4
  55. package/src/Witness/Witness.ts +0 -197
  56. package/src/Witness/index.ts +0 -4
  57. package/src/Witness/spec/opensea.nft-call.json +0 -41
  58. package/src/index.ts +0 -2
  59. package/src/lib/checkIpfsUrl.ts +0 -44
  60. package/src/lib/index.ts +0 -1
  61. package/src/types.d.ts +0 -1
@@ -1,2 +1,2 @@
1
- export declare const asApiCallPayload: import("@xylabs/object").AsTypeFunction<import("../index.ts").ApiCallPayload>;
1
+ export declare const asApiCallPayload: import("@xylabs/sdk-js").AsTypeFunction<import("../index.ts").ApiCallPayload>;
2
2
  //# sourceMappingURL=asApiCall.d.ts.map
@@ -1,2 +1,2 @@
1
- export declare const asApiCallBase64Result: import("@xylabs/object").AsTypeFunction<import("../index.ts").ApiCallBase64Result>;
1
+ export declare const asApiCallBase64Result: import("@xylabs/sdk-js").AsTypeFunction<import("../index.ts").ApiCallBase64Result>;
2
2
  //# sourceMappingURL=asApiCallBase64Result.d.ts.map
@@ -1,2 +1,2 @@
1
- export declare const asApiCallResult: import("@xylabs/object").AsTypeFunction<import("../index.ts").ApiCallResult>;
1
+ export declare const asApiCallResult: import("@xylabs/sdk-js").AsTypeFunction<import("../index.ts").ApiCallResult>;
2
2
  //# sourceMappingURL=asApiCallResult.d.ts.map
@@ -1,2 +1,2 @@
1
- export declare const asApiCallXmlResult: import("@xylabs/object").AsTypeFunction<import("../index.ts").ApiCallXmlResult>;
1
+ export declare const asApiCallXmlResult: import("@xylabs/sdk-js").AsTypeFunction<import("../index.ts").ApiCallXmlResult>;
2
2
  //# sourceMappingURL=asApiCallXmlResult.d.ts.map
@@ -1,2 +1,2 @@
1
- export declare const asApiUriCallPayload: import("@xylabs/object").AsTypeFunction<import("../index.ts").ApiUriCallPayload>;
1
+ export declare const asApiUriCallPayload: import("@xylabs/sdk-js").AsTypeFunction<import("../index.ts").ApiUriCallPayload>;
2
2
  //# sourceMappingURL=asApiUriCall.d.ts.map
@@ -1,4 +1,4 @@
1
- export declare const asApiUriTemplateCall: import("@xylabs/object").AsTypeFunction<import("@xyo-network/payload-model").PayloadFields & import("../index.ts").ApiCallFields & {
1
+ export declare const asApiUriTemplateCall: import("@xylabs/sdk-js").AsTypeFunction<import("@xyo-network/payload-model").PayloadFields & import("../index.ts").ApiCallFields & {
2
2
  params?: Record<string, string>;
3
3
  uriTemplate?: string;
4
4
  } & {
@@ -1,4 +1,4 @@
1
- import type { Hash } from '@xylabs/hex';
1
+ import type { Hash } from '@xylabs/sdk-js';
2
2
  import type { Payload } from '@xyo-network/payload-model';
3
3
  import type { ApiCallResultSchema } from '../Schema.ts';
4
4
  import type { ApiCallJsonResult } from './ApiCallJsonResult.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"ApiCallBase64Result.d.ts","sourceRoot":"","sources":["../../../../src/Payload/types/ApiCallBase64Result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,MAAM,MAAM,mBAAmB,GAAG,OAAO,CACvC;IACE,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAA;IACxG,IAAI,EAAE,MAAM,CAAA;CACb,EACD,mBAAmB,CACpB,CAAA"}
1
+ {"version":3,"file":"ApiCallBase64Result.d.ts","sourceRoot":"","sources":["../../../../src/Payload/types/ApiCallBase64Result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,MAAM,MAAM,mBAAmB,GAAG,OAAO,CACvC;IACE,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAA;IACxG,IAAI,EAAE,MAAM,CAAA;CACb,EACD,mBAAmB,CACpB,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { Hash } from '@xylabs/hex';
1
+ import type { Hash } from '@xylabs/sdk-js';
2
2
  import type { Payload } from '@xyo-network/payload-model';
3
3
  import type { ApiCallResultSchema } from '../Schema.ts';
4
4
  import type { HttpMeta } from './HttpMeta.ts';
@@ -1 +1 @@
1
- {"version":3,"file":"ApiCallErrorResult.d.ts","sourceRoot":"","sources":["../../../../src/Payload/types/ApiCallErrorResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACtC;IACE,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB,EACD,mBAAmB,CACpB,CAAA"}
1
+ {"version":3,"file":"ApiCallErrorResult.d.ts","sourceRoot":"","sources":["../../../../src/Payload/types/ApiCallErrorResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE7C,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACtC;IACE,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB,EACD,mBAAmB,CACpB,CAAA"}
@@ -1,5 +1,4 @@
1
- import type { Hash } from '@xylabs/hex';
2
- import type { JsonArray, JsonObject } from '@xylabs/object';
1
+ import type { Hash, JsonArray, JsonObject } from '@xylabs/sdk-js';
3
2
  import type { Payload } from '@xyo-network/payload-model';
4
3
  import { ApiCallResultSchema } from '../Schema.ts';
5
4
  export type ApiCallJsonResultType = JsonArray | JsonObject;
@@ -9,5 +8,5 @@ export type ApiCallJsonResult<T extends ApiCallJsonResultType = ApiCallJsonResul
9
8
  data: T;
10
9
  }, ApiCallResultSchema>;
11
10
  export declare const isApiCallJsonResult: <T extends ApiCallJsonResultType = ApiCallJsonResultType>(x?: unknown | null) => x is ApiCallJsonResult<T>;
12
- export declare const asApiCallJsonResult: import("@xylabs/object").AsTypeFunction<ApiCallJsonResult<ApiCallJsonResultType>>;
11
+ export declare const asApiCallJsonResult: import("@xylabs/sdk-js").AsTypeFunction<ApiCallJsonResult<ApiCallJsonResultType>>;
13
12
  //# sourceMappingURL=ApiCallJsonResult.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApiCallJsonResult.d.ts","sourceRoot":"","sources":["../../../../src/Payload/types/ApiCallJsonResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGlD,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,UAAU,CAAA;AAE1D,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,IAAI,OAAO,CAC9F;IACE,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE,kBAAkB,CAAA;IAC/B,IAAI,EAAE,CAAC,CAAA;CACR,EACD,mBAAmB,CACpB,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,EAAE,IAAI,OAAO,GAAG,IAAI,KAAG,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAEzI,CAAA;AACD,eAAO,MAAM,mBAAmB,mFAA8C,CAAA"}
1
+ {"version":3,"file":"ApiCallJsonResult.d.ts","sourceRoot":"","sources":["../../../../src/Payload/types/ApiCallJsonResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EAAE,SAAS,EAAE,UAAU,EAC5B,MAAM,gBAAgB,CAAA;AAEvB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAGlD,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,UAAU,CAAA;AAE1D,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,IAAI,OAAO,CAC9F;IACE,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE,kBAAkB,CAAA;IAC/B,IAAI,EAAE,CAAC,CAAA;CACR,EACD,mBAAmB,CACpB,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,CAAC,SAAS,qBAAqB,GAAG,qBAAqB,EAAE,IAAI,OAAO,GAAG,IAAI,KAAG,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAEzI,CAAA;AACD,eAAO,MAAM,mBAAmB,mFAA8C,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { JsonArray, JsonObject } from '@xylabs/object';
1
+ import type { JsonArray, JsonObject } from '@xylabs/sdk-js';
2
2
  import type { ApiCallBase64Result } from './ApiCallBase64Result.ts';
3
3
  import type { ApiCallErrorResult } from './ApiCallErrorResult.ts';
4
4
  import type { ApiCallJsonResult } from './ApiCallJsonResult.ts';
@@ -1,4 +1,4 @@
1
- import type { Hash } from '@xylabs/hex';
1
+ import type { Hash } from '@xylabs/sdk-js';
2
2
  import type { Payload } from '@xyo-network/payload-model';
3
3
  import type { ApiCallResultSchema } from '../Schema.ts';
4
4
  export type ApiCallXmlResult = Payload<{
@@ -1 +1 @@
1
- {"version":3,"file":"ApiCallXmlResult.d.ts","sourceRoot":"","sources":["../../../../src/Payload/types/ApiCallXmlResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG,OAAO,CACpC;IACE,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE,iBAAiB,GAAG,UAAU,CAAA;IAC3C,IAAI,EAAE,MAAM,CAAA;CACb,EACD,mBAAmB,CACpB,CAAA"}
1
+ {"version":3,"file":"ApiCallXmlResult.d.ts","sourceRoot":"","sources":["../../../../src/Payload/types/ApiCallXmlResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG,OAAO,CACpC;IACE,IAAI,EAAE,IAAI,CAAA;IACV,WAAW,EAAE,iBAAiB,GAAG,UAAU,CAAA;IAC3C,IAAI,EAAE,MAAM,CAAA;CACb,EACD,mBAAmB,CACpB,CAAA"}
@@ -18,9 +18,9 @@ export type ApiUriTemplateCallWitnessConfig = WitnessConfig<ApiCallWitnessConfig
18
18
  }>;
19
19
  export type ApiCallWitnessConfig = ApiUriCallWitnessConfig | ApiUriTemplateCallWitnessConfig | ApiCallWitnessConfigBase;
20
20
  export declare const isApiCallWitnessConfig: (x?: unknown | null) => x is ApiCallWitnessConfig;
21
- export declare const asApiCallWitnessConfig: import("@xylabs/object").AsTypeFunction<ApiCallWitnessConfig>;
21
+ export declare const asApiCallWitnessConfig: import("@xylabs/sdk-js").AsTypeFunction<ApiCallWitnessConfig>;
22
22
  export declare const isApiUriCallWitnessConfig: (value?: unknown) => value is ApiUriCallWitnessConfig;
23
- export declare const asApiUriCallWitnessConfig: import("@xylabs/object").AsTypeFunction<ApiUriCallWitnessConfig>;
23
+ export declare const asApiUriCallWitnessConfig: import("@xylabs/sdk-js").AsTypeFunction<ApiUriCallWitnessConfig>;
24
24
  export declare const isApiUriTemplateCallWitnessConfig: (value?: unknown) => value is ApiUriTemplateCallWitnessConfig;
25
- export declare const asApiUriTemplateCallWitnessConfig: import("@xylabs/object").AsTypeFunction<ApiUriTemplateCallWitnessConfig>;
25
+ export declare const asApiUriTemplateCallWitnessConfig: import("@xylabs/sdk-js").AsTypeFunction<ApiUriTemplateCallWitnessConfig>;
26
26
  //# sourceMappingURL=Config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAE/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAQxD,OAAO,KAAK,EAKV,cAAc,EACd,aAAa,EAEb,SAAS,EACV,MAAM,qBAAqB,CAAA;AAQ5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAGvD,qBAAa,cAAc,CAAC,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,CAAE,SAAQ,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC;IACtJ,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAuD;IACvG,gBAAyB,mBAAmB,EAAE,MAAM,CAA6B;IAEjF,IAAI,MAAM,IAAI,SAAS,CAEtB;IAED,IAAI,WAAW,uBAEd;IAED,IAAI,OAAO,uBAEV;IAED,UAAU,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,MAAM;IAiCzC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;cAMnE,cAAc,CAAC,UAAU,GAAE,cAAc,EAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAiCtF,OAAO;CAwEtB"}
1
+ {"version":3,"file":"Witness.d.ts","sourceRoot":"","sources":["../../../src/Witness/Witness.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AASxD,OAAO,KAAK,EAKV,cAAc,EACd,aAAa,EAEb,SAAS,EACV,MAAM,qBAAqB,CAAA;AAQ5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAGvD,qBAAa,cAAc,CAAC,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,CAAE,SAAQ,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC;IACtJ,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAAuD;IACvG,gBAAyB,mBAAmB,EAAE,MAAM,CAA6B;IAEjF,IAAI,MAAM,IAAI,SAAS,CAEtB;IAED,IAAI,WAAW,uBAEd;IAED,IAAI,OAAO,uBAEV;IAED,UAAU,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,MAAM;IAiCzC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;cAMnE,cAAc,CAAC,UAAU,GAAE,cAAc,EAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YAiCtF,OAAO;CAwEtB"}
@@ -1,5 +1,5 @@
1
1
  // src/Payload/identity/asApiCall.ts
2
- import { AsObjectFactory } from "@xylabs/object";
2
+ import { AsObjectFactory } from "@xylabs/sdk-js";
3
3
 
4
4
  // src/Payload/identity/isApiCall.ts
5
5
  import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
@@ -16,7 +16,7 @@ var isApiCallPayload = isPayloadOfSchemaType(ApiCallSchema);
16
16
  var asApiCallPayload = AsObjectFactory.create(isApiCallPayload);
17
17
 
18
18
  // src/Payload/identity/asApiCallBase64Result.ts
19
- import { AsObjectFactory as AsObjectFactory2 } from "@xylabs/object";
19
+ import { AsObjectFactory as AsObjectFactory2 } from "@xylabs/sdk-js";
20
20
 
21
21
  // src/Payload/identity/isApiCallBase64Result.ts
22
22
  import { isPayloadOfSchemaType as isPayloadOfSchemaType2 } from "@xyo-network/payload-model";
@@ -28,7 +28,7 @@ var isApiCallBase64Result = (x) => {
28
28
  var asApiCallBase64Result = AsObjectFactory2.create(isApiCallBase64Result);
29
29
 
30
30
  // src/Payload/identity/asApiCallResult.ts
31
- import { AsObjectFactory as AsObjectFactory3 } from "@xylabs/object";
31
+ import { AsObjectFactory as AsObjectFactory3 } from "@xylabs/sdk-js";
32
32
 
33
33
  // src/Payload/identity/isApiCallResult.ts
34
34
  import { isPayloadOfSchemaType as isPayloadOfSchemaType3 } from "@xyo-network/payload-model";
@@ -38,7 +38,7 @@ var isApiCallResult = isPayloadOfSchemaType3(ApiCallResultSchema);
38
38
  var asApiCallResult = AsObjectFactory3.create(isApiCallResult);
39
39
 
40
40
  // src/Payload/identity/asApiCallXmlResult.ts
41
- import { AsObjectFactory as AsObjectFactory4 } from "@xylabs/object";
41
+ import { AsObjectFactory as AsObjectFactory4 } from "@xylabs/sdk-js";
42
42
 
43
43
  // src/Payload/identity/isApiCallXmlResult.ts
44
44
  import { isPayloadOfSchemaType as isPayloadOfSchemaType4 } from "@xyo-network/payload-model";
@@ -50,7 +50,7 @@ var isApiCallXmlResult = (x) => {
50
50
  var asApiCallXmlResult = AsObjectFactory4.create(isApiCallXmlResult);
51
51
 
52
52
  // src/Payload/identity/asApiUriCall.ts
53
- import { AsObjectFactory as AsObjectFactory5 } from "@xylabs/object";
53
+ import { AsObjectFactory as AsObjectFactory5 } from "@xylabs/sdk-js";
54
54
 
55
55
  // src/Payload/identity/isApiUriCall.ts
56
56
  var isApiUriCallPayload = (value) => isApiCallPayload(value) && !!value.uri;
@@ -59,7 +59,7 @@ var isApiUriCallPayload = (value) => isApiCallPayload(value) && !!value.uri;
59
59
  var asApiUriCallPayload = AsObjectFactory5.create(isApiUriCallPayload);
60
60
 
61
61
  // src/Payload/identity/asApiUriTemplateCall.ts
62
- import { AsObjectFactory as AsObjectFactory6 } from "@xylabs/object";
62
+ import { AsObjectFactory as AsObjectFactory6 } from "@xylabs/sdk-js";
63
63
 
64
64
  // src/Payload/identity/isApiUriTemplateCall.ts
65
65
  var isApiUriTemplateCallPayload = (value) => isApiCallPayload(value) && !!(value.uriTemplate || value.params);
@@ -72,7 +72,7 @@ import { isPayloadOfSchemaType as isPayloadOfSchemaType5 } from "@xyo-network/pa
72
72
  var isApiCallErrorResult = (value) => !!isPayloadOfSchemaType5(ApiCallResultSchema) && (value.http?.status ?? 200) >= 400;
73
73
 
74
74
  // src/Payload/types/ApiCallJsonResult.ts
75
- import { AsObjectFactory as AsObjectFactory7 } from "@xylabs/object";
75
+ import { AsObjectFactory as AsObjectFactory7 } from "@xylabs/sdk-js";
76
76
  import { isPayloadOfSchemaType as isPayloadOfSchemaType6 } from "@xyo-network/payload-model";
77
77
  var isApiCallJsonResult = (x) => {
78
78
  return isPayloadOfSchemaType6(ApiCallResultSchema)(x) && x?.contentType === "application/json";
@@ -80,7 +80,7 @@ var isApiCallJsonResult = (x) => {
80
80
  var asApiCallJsonResult = AsObjectFactory7.create(isApiCallJsonResult);
81
81
 
82
82
  // src/Witness/Config.ts
83
- import { AsObjectFactory as AsObjectFactory8 } from "@xylabs/object";
83
+ import { AsObjectFactory as AsObjectFactory8 } from "@xylabs/sdk-js";
84
84
  import { isPayloadOfSchemaType as isPayloadOfSchemaType7 } from "@xyo-network/payload-model";
85
85
 
86
86
  // src/Witness/Schema.ts
@@ -96,19 +96,20 @@ var isApiUriTemplateCallWitnessConfig = (value) => isApiCallWitnessConfig(value)
96
96
  var asApiUriTemplateCallWitnessConfig = AsObjectFactory8.create(isApiUriTemplateCallWitnessConfig);
97
97
 
98
98
  // src/Witness/Witness.ts
99
- import { assertEx as assertEx2 } from "@xylabs/assert";
100
- import { axiosJsonConfig } from "@xylabs/axios";
101
- import { URL as URL2 } from "@xylabs/url";
99
+ import {
100
+ assertEx as assertEx2,
101
+ axiosJsonConfig,
102
+ URL as URL2
103
+ } from "@xylabs/sdk-js";
102
104
  import { AbstractWitness } from "@xyo-network/abstract-witness";
103
- import { PayloadBuilder } from "@xyo-network/payload-builder";
104
105
  import { isPayloadOfSchemaType as isPayloadOfSchemaType8 } from "@xyo-network/payload-model";
106
+ import { PayloadBuilder } from "@xyo-network/sdk-js";
105
107
  import { Axios } from "axios";
106
108
  import { fromByteArray } from "base64-js";
107
109
  import fillTemplate from "es6-dynamic-template";
108
110
 
109
111
  // src/lib/checkIpfsUrl.ts
110
- import { assertEx } from "@xylabs/assert";
111
- import { URL } from "@xylabs/url";
112
+ import { assertEx, URL } from "@xylabs/sdk-js";
112
113
  var allowIpfsIoRepair = true;
113
114
  var checkIpfsUrl = (urlToCheck, ipfsGateway) => {
114
115
  try {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Payload/identity/asApiCall.ts","../../src/Payload/identity/isApiCall.ts","../../src/Payload/Schema.ts","../../src/Payload/identity/asApiCallBase64Result.ts","../../src/Payload/identity/isApiCallBase64Result.ts","../../src/Payload/identity/asApiCallResult.ts","../../src/Payload/identity/isApiCallResult.ts","../../src/Payload/identity/asApiCallXmlResult.ts","../../src/Payload/identity/isApiCallXmlResult.ts","../../src/Payload/identity/asApiUriCall.ts","../../src/Payload/identity/isApiUriCall.ts","../../src/Payload/identity/asApiUriTemplateCall.ts","../../src/Payload/identity/isApiUriTemplateCall.ts","../../src/Payload/identity/isApiCallErrorResult.ts","../../src/Payload/types/ApiCallJsonResult.ts","../../src/Witness/Config.ts","../../src/Witness/Schema.ts","../../src/Witness/Witness.ts","../../src/lib/checkIpfsUrl.ts"],"sourcesContent":["import { AsObjectFactory } from '@xylabs/object'\n\nimport { isApiCallPayload } from './isApiCall.ts'\n\nexport const asApiCallPayload = AsObjectFactory.create(isApiCallPayload)\n","import { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ApiCallSchema } from '../Schema.ts'\nimport type { ApiCallPayload } from '../types/index.ts'\n\nexport const isApiCallPayload = isPayloadOfSchemaType<ApiCallPayload>(ApiCallSchema)\n","import { asSchema } from '@xyo-network/payload-model'\n\nexport const ApiCallSchema = asSchema('network.xyo.api.call', true)\nexport type ApiCallSchema = typeof ApiCallSchema\n\nexport const ApiCallResultSchema = asSchema(`${ApiCallSchema}.result`, true)\nexport type ApiCallResultSchema = typeof ApiCallResultSchema\n","import { AsObjectFactory } from '@xylabs/object'\n\nimport { isApiCallBase64Result } from './isApiCallBase64Result.ts'\n\nexport const asApiCallBase64Result = AsObjectFactory.create(isApiCallBase64Result)\n","import { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ApiCallResultSchema } from '../Schema.ts'\nimport type { ApiCallBase64Result, ApiCallResult } from '../types/index.ts'\n\nexport const isApiCallBase64Result = (x?: unknown | null): x is ApiCallBase64Result => {\n return isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema)(x) && typeof (x as ApiCallBase64Result)?.data === 'string'\n}\n","import { AsObjectFactory } from '@xylabs/object'\n\nimport { isApiCallResult } from './isApiCallResult.ts'\n\nexport const asApiCallResult = AsObjectFactory.create(isApiCallResult)\n","import { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ApiCallResultSchema } from '../Schema.ts'\nimport type { ApiCallResult } from '../types/index.ts'\n\nexport const isApiCallResult = isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema)\n","import { AsObjectFactory } from '@xylabs/object'\n\nimport { isApiCallXmlResult } from './isApiCallXmlResult.ts'\n\nexport const asApiCallXmlResult = AsObjectFactory.create(isApiCallXmlResult)\n","import { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ApiCallResultSchema } from '../Schema.ts'\nimport type { ApiCallResult, ApiCallXmlResult } from '../types/index.ts'\n\nexport const isApiCallXmlResult = (x?: unknown | null): x is ApiCallXmlResult => {\n return isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema)(x) && typeof (x as ApiCallXmlResult)?.data === 'string'\n}\n","import { AsObjectFactory } from '@xylabs/object'\n\nimport { isApiUriCallPayload } from './isApiUriCall.ts'\n\nexport const asApiUriCallPayload = AsObjectFactory.create(isApiUriCallPayload)\n","import type { ApiUriCallPayload } from '../types/index.ts'\nimport { isApiCallPayload } from './isApiCall.ts'\n\nexport const isApiUriCallPayload = (value?: unknown): value is ApiUriCallPayload => isApiCallPayload(value) && !!(value as ApiUriCallPayload).uri\n","import { AsObjectFactory } from '@xylabs/object'\n\nimport { isApiUriTemplateCallPayload } from './isApiUriTemplateCall.ts'\n\nexport const asApiUriTemplateCall = AsObjectFactory.create(isApiUriTemplateCallPayload)\n","import type { ApiUriTemplateCallPayload } from '../types/index.ts'\nimport { isApiCallPayload } from './isApiCall.ts'\n\nexport const isApiUriTemplateCallPayload = <T>(value: T): value is (ApiUriTemplateCallPayload & T) =>\n isApiCallPayload(value) && !!((value as ApiUriTemplateCallPayload).uriTemplate || (value as ApiUriTemplateCallPayload).params)\n","import { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ApiCallResultSchema } from '../Schema.ts'\nimport type { ApiCallErrorResult, ApiCallResult } from '../types/index.ts'\n\nexport const isApiCallErrorResult = (value: unknown): value is ApiCallErrorResult =>\n !!isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema) && ((value as ApiCallErrorResult).http?.status ?? 200) >= 400\n","import type { Hash } from '@xylabs/hex'\nimport type { JsonArray, JsonObject } from '@xylabs/object'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ApiCallResultSchema } from '../Schema.ts'\nimport type { ApiCallResult } from './ApiCallResult.ts'\n\nexport type ApiCallJsonResultType = JsonArray | JsonObject\n\nexport type ApiCallJsonResult<T extends ApiCallJsonResultType = ApiCallJsonResultType> = Payload<\n {\n call: Hash\n contentType: 'application/json'\n data: T\n },\n ApiCallResultSchema\n>\n\nexport const isApiCallJsonResult = <T extends ApiCallJsonResultType = ApiCallJsonResultType>(x?: unknown | null): x is ApiCallJsonResult<T> => {\n return isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema)(x) && (x as ApiCallJsonResult)?.contentType === 'application/json'\n}\nexport const asApiCallJsonResult = AsObjectFactory.create(isApiCallJsonResult)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport type { WitnessConfig } from '@xyo-network/witness-model'\n\nimport type {\n ApiCallPayload, ApiUriCallPayload, ApiUriTemplateCallPayload, MimeTypes,\n} from '../Payload/index.ts'\nimport { ApiCallWitnessConfigSchema } from './Schema.ts'\n\nexport type ApiCallWitnessConfigBase = WitnessConfig<{\n accept?: MimeTypes\n headers?: Record<string, string | undefined>\n queries?: ApiCallPayload['queries']\n schema: ApiCallWitnessConfigSchema\n timeout?: number\n verb?: ApiCallPayload['verb']\n}>\n\nexport type ApiUriCallWitnessConfig = WitnessConfig<\n ApiCallWitnessConfigBase & {\n uri: ApiUriCallPayload['uri']\n }\n>\n\nexport type ApiUriTemplateCallWitnessConfig = WitnessConfig<\n ApiCallWitnessConfigBase & {\n params?: Record<string, string>\n uriTemplate: ApiUriTemplateCallPayload['uriTemplate']\n }\n>\n\nexport type ApiCallWitnessConfig = ApiUriCallWitnessConfig | ApiUriTemplateCallWitnessConfig | ApiCallWitnessConfigBase\n\nexport const isApiCallWitnessConfig = isPayloadOfSchemaType<ApiCallWitnessConfig>(ApiCallWitnessConfigSchema)\nexport const asApiCallWitnessConfig = AsObjectFactory.create(isApiCallWitnessConfig)\n\nexport const isApiUriCallWitnessConfig = (value?: unknown): value is ApiUriCallWitnessConfig =>\n isApiCallWitnessConfig(value) && !!(value as ApiUriCallWitnessConfig).uri\nexport const asApiUriCallWitnessConfig = AsObjectFactory.create(isApiUriCallWitnessConfig)\n\nexport const isApiUriTemplateCallWitnessConfig = (value?: unknown): value is ApiUriTemplateCallWitnessConfig =>\n isApiCallWitnessConfig(value) && !!(value as ApiUriTemplateCallWitnessConfig).uriTemplate\nexport const asApiUriTemplateCallWitnessConfig = AsObjectFactory.create(isApiUriTemplateCallWitnessConfig)\n","import { asSchema } from '@xyo-network/payload-model'\n\nexport const ApiCallWitnessConfigSchema = asSchema('network.xyo.api.call.witness.config', true)\nexport type ApiCallWitnessConfigSchema = typeof ApiCallWitnessConfigSchema\n","/* eslint-disable max-statements */\n\nimport { assertEx } from '@xylabs/assert'\nimport { axiosJsonConfig } from '@xylabs/axios'\nimport type { Hash } from '@xylabs/hex'\nimport { URL } from '@xylabs/url'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Schema } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport type { AxiosError } from 'axios'\nimport { Axios } from 'axios'\nimport { fromByteArray } from 'base64-js'\nimport fillTemplate from 'es6-dynamic-template'\n\nimport { checkIpfsUrl } from '../lib/index.ts'\nimport type {\n ApiCallBase64Result,\n ApiCallErrorResult,\n ApiCallJsonResult,\n ApiCallJsonResultType,\n ApiCallPayload,\n ApiCallResult,\n ApiCallXmlResult,\n MimeTypes,\n} from '../Payload/index.ts'\nimport {\n ApiCallResultSchema,\n ApiCallSchema,\n asApiUriCallPayload,\n asApiUriTemplateCall,\n} from '../Payload/index.ts'\nimport { asApiUriCallWitnessConfig, asApiUriTemplateCallWitnessConfig } from './Config.ts'\nimport type { ApiCallWitnessParams } from './Params.ts'\nimport { ApiCallWitnessConfigSchema } from './Schema.ts'\n\nexport class ApiCallWitness<TParams extends ApiCallWitnessParams = ApiCallWitnessParams> extends AbstractWitness<TParams, ApiCallPayload, ApiCallResult> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, ApiCallWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = ApiCallWitnessConfigSchema\n\n get accept(): MimeTypes {\n return this.config.accept ?? 'application/json'\n }\n\n get ipfsGateway() {\n return this.params.ipfsGateway\n }\n\n get timeout() {\n return this.config.timeout\n }\n\n getFullUri(call?: ApiCallPayload): string {\n const { uri: callUri } = asApiUriCallPayload(call) ?? {}\n const {\n uriTemplate: callUriTemplate, params: callParams, queries: callQueries,\n } = asApiUriTemplateCall(call) ?? {}\n const { uri: configUri } = asApiUriCallWitnessConfig(this.config) ?? {}\n const {\n uriTemplate: configUriTemplate, params: configParams, queries: configQueries,\n } = asApiUriTemplateCallWitnessConfig(this.config) ?? {}\n\n const params = { ...configParams, ...callParams }\n\n let url: URL | undefined = undefined\n\n if (callUri) {\n url = new URL(callUri)\n } else if (callUriTemplate) {\n url = new URL(fillTemplate(callUriTemplate, params))\n } else if (configUri) {\n url = new URL(configUri)\n } else if (configUriTemplate) {\n url = new URL(fillTemplate(configUriTemplate, params))\n }\n\n if (url) {\n const queries = Object.entries({ ...configQueries, ...callQueries })\n for (let [key, value] of queries) url?.searchParams.set(key, value)\n return url.href\n }\n\n throw new Error('Unable to determine uri. No uri/uriTemplate specified in either the call or config.')\n }\n\n getHeaders(headers?: Record<string, string | undefined>): Record<string, string | undefined> {\n return {\n ...this.params.headers, ...this.config.headers, ...headers,\n }\n }\n\n protected override async observeHandler(inPayloads: ApiCallPayload[] = []): Promise<ApiCallResult[]> {\n await this.started('throw')\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType<ApiCallPayload>(ApiCallSchema)).map(async (call) => {\n const { verb: callVerb } = call\n const { verb: configVerb } = this.config\n const verb = callVerb ?? configVerb ?? 'get'\n const uri = this.getFullUri(call)\n\n const validatedUri = assertEx(checkIpfsUrl(uri, this.ipfsGateway), () => 'Invalid URI')\n\n if (verb === 'get') {\n return this.httpGet(validatedUri, (await PayloadBuilder.dataHash(call)))\n }\n\n const observation: ApiCallResult = {\n call: await PayloadBuilder.hash(call),\n schema: ApiCallResultSchema,\n }\n return observation\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.error(`Error [${this.config.name}]: ${error.message}`)\n console.log(error.stack)\n throw error\n }\n }\n\n // eslint-disable-next-line complexity\n private async httpGet(url: string, call: Hash, headers?: Record<string, string | undefined>): Promise<ApiCallResult> {\n const result: ApiCallResult = {\n call,\n schema: ApiCallResultSchema,\n }\n try {\n switch (this.accept) {\n case 'application/json': {\n const axios = new Axios(axiosJsonConfig({ headers: { ...this.getHeaders(headers), Accept: 'application/json' }, timeout: this.timeout }))\n const response = await axios.get<ApiCallJsonResultType>(url)\n if (response.status >= 200 && response.status < 300) {\n const jsonResult = result as ApiCallJsonResult\n jsonResult.data = response.data\n jsonResult.contentType = 'application/json'\n } else {\n const errorResult = result as ApiCallErrorResult\n errorResult.http = { status: response.status }\n }\n break\n }\n case 'application/xml':\n case 'text/xml': {\n const axios = new Axios({\n headers: { ...this.getHeaders(headers), Accept: this.accept },\n responseType: 'arraybuffer',\n timeout: this.timeout,\n })\n const response = await axios.get(url)\n if (response.status >= 200 && response.status < 300) {\n const xmlResult = result as ApiCallXmlResult\n xmlResult.data = Buffer.from(response.data, 'binary').toString('utf8')\n xmlResult.contentType = response.headers['content-type']?.toString() ?? 'application/xml'\n } else {\n const errorResult = result as ApiCallErrorResult\n errorResult.http = { status: response.status }\n }\n break\n }\n default: {\n const axios = new Axios({\n headers: this.params.headers, responseType: 'arraybuffer', timeout: this.timeout,\n })\n const response = await axios.get(url)\n if (response.status >= 200 && response.status < 300) {\n const jsonResult = result as ApiCallBase64Result\n jsonResult.data = fromByteArray(response.data)\n jsonResult.contentType = response.headers['content-type']?.toString() ?? 'application/octet-stream'\n } else {\n const errorResult = result as ApiCallErrorResult\n errorResult.http = { status: response.status }\n }\n break\n }\n }\n } catch (ex) {\n const axiosError = ex as AxiosError\n if (axiosError.isAxiosError) {\n if (axiosError?.response?.status !== undefined) {\n result.http = result.http ?? {}\n result.http.status = axiosError?.response?.status\n }\n if (axiosError?.code !== undefined) {\n result.http = result.http ?? {}\n result.http.code = axiosError?.code\n }\n return result\n } else {\n throw ex\n }\n }\n return result\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { URL } from '@xylabs/url'\n\nconst allowIpfsIoRepair = true\n\n/**\n * Returns the equivalent IPFS gateway URL for the supplied URL.\n * @param urlToCheck The URL to check\n * @returns If the supplied URL is an IPFS URL, it converts the URL to the\n * equivalent IPFS gateway URL. Otherwise, returns the original URL.\n */\nexport const checkIpfsUrl = (urlToCheck: string, ipfsGateway?: string): string => {\n try {\n const url = new URL(urlToCheck)\n let protocol = url.protocol\n let host = url.host\n let path = url.pathname\n const query = url.search\n if (protocol === 'ipfs:') {\n protocol = 'https:'\n host = assertEx(ipfsGateway, () => 'No ipfsGateway provided')\n path = url.host === 'ipfs' ? `ipfs${path}` : `ipfs/${url.host}${path}`\n const root = `${protocol}//${host}/${path}`\n return query?.length > 0 ? `${root}?${query}` : root\n } else if (allowIpfsIoRepair && protocol === 'https' && host === 'ipfs.io') {\n protocol = 'https:'\n host = assertEx(ipfsGateway, () => 'No ipfsGateway provided')\n const pathParts = path.split('/')\n if (pathParts[0] === 'ipfs') {\n pathParts.shift()\n }\n path = pathParts.join('/')\n const root = `${protocol}//${host}/${path}`\n return query?.length > 0 ? `${root}?${query}` : root\n } else {\n return urlToCheck\n }\n } catch {\n // const error = ex as Error\n // console.error(`${error.name}:${error.message} [${urlToCheck}]`)\n // console.log(error.stack)\n return urlToCheck\n }\n}\n"],"mappings":"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","names":["AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","AsObjectFactory","AsObjectFactory","AsObjectFactory","AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","AsObjectFactory","isPayloadOfSchemaType","asSchema","isPayloadOfSchemaType","AsObjectFactory","assertEx","URL","isPayloadOfSchemaType","URL","isPayloadOfSchemaType","assertEx"]}
1
+ {"version":3,"sources":["../../src/Payload/identity/asApiCall.ts","../../src/Payload/identity/isApiCall.ts","../../src/Payload/Schema.ts","../../src/Payload/identity/asApiCallBase64Result.ts","../../src/Payload/identity/isApiCallBase64Result.ts","../../src/Payload/identity/asApiCallResult.ts","../../src/Payload/identity/isApiCallResult.ts","../../src/Payload/identity/asApiCallXmlResult.ts","../../src/Payload/identity/isApiCallXmlResult.ts","../../src/Payload/identity/asApiUriCall.ts","../../src/Payload/identity/isApiUriCall.ts","../../src/Payload/identity/asApiUriTemplateCall.ts","../../src/Payload/identity/isApiUriTemplateCall.ts","../../src/Payload/identity/isApiCallErrorResult.ts","../../src/Payload/types/ApiCallJsonResult.ts","../../src/Witness/Config.ts","../../src/Witness/Schema.ts","../../src/Witness/Witness.ts","../../src/lib/checkIpfsUrl.ts"],"sourcesContent":["import { AsObjectFactory } from '@xylabs/sdk-js'\n\nimport { isApiCallPayload } from './isApiCall.ts'\n\nexport const asApiCallPayload = AsObjectFactory.create(isApiCallPayload)\n","import { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ApiCallSchema } from '../Schema.ts'\nimport type { ApiCallPayload } from '../types/index.ts'\n\nexport const isApiCallPayload = isPayloadOfSchemaType<ApiCallPayload>(ApiCallSchema)\n","import { asSchema } from '@xyo-network/payload-model'\n\nexport const ApiCallSchema = asSchema('network.xyo.api.call', true)\nexport type ApiCallSchema = typeof ApiCallSchema\n\nexport const ApiCallResultSchema = asSchema(`${ApiCallSchema}.result`, true)\nexport type ApiCallResultSchema = typeof ApiCallResultSchema\n","import { AsObjectFactory } from '@xylabs/sdk-js'\n\nimport { isApiCallBase64Result } from './isApiCallBase64Result.ts'\n\nexport const asApiCallBase64Result = AsObjectFactory.create(isApiCallBase64Result)\n","import { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ApiCallResultSchema } from '../Schema.ts'\nimport type { ApiCallBase64Result, ApiCallResult } from '../types/index.ts'\n\nexport const isApiCallBase64Result = (x?: unknown | null): x is ApiCallBase64Result => {\n return isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema)(x) && typeof (x as ApiCallBase64Result)?.data === 'string'\n}\n","import { AsObjectFactory } from '@xylabs/sdk-js'\n\nimport { isApiCallResult } from './isApiCallResult.ts'\n\nexport const asApiCallResult = AsObjectFactory.create(isApiCallResult)\n","import { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ApiCallResultSchema } from '../Schema.ts'\nimport type { ApiCallResult } from '../types/index.ts'\n\nexport const isApiCallResult = isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema)\n","import { AsObjectFactory } from '@xylabs/sdk-js'\n\nimport { isApiCallXmlResult } from './isApiCallXmlResult.ts'\n\nexport const asApiCallXmlResult = AsObjectFactory.create(isApiCallXmlResult)\n","import { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ApiCallResultSchema } from '../Schema.ts'\nimport type { ApiCallResult, ApiCallXmlResult } from '../types/index.ts'\n\nexport const isApiCallXmlResult = (x?: unknown | null): x is ApiCallXmlResult => {\n return isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema)(x) && typeof (x as ApiCallXmlResult)?.data === 'string'\n}\n","import { AsObjectFactory } from '@xylabs/sdk-js'\n\nimport { isApiUriCallPayload } from './isApiUriCall.ts'\n\nexport const asApiUriCallPayload = AsObjectFactory.create(isApiUriCallPayload)\n","import type { ApiUriCallPayload } from '../types/index.ts'\nimport { isApiCallPayload } from './isApiCall.ts'\n\nexport const isApiUriCallPayload = (value?: unknown): value is ApiUriCallPayload => isApiCallPayload(value) && !!(value as ApiUriCallPayload).uri\n","import { AsObjectFactory } from '@xylabs/sdk-js'\n\nimport { isApiUriTemplateCallPayload } from './isApiUriTemplateCall.ts'\n\nexport const asApiUriTemplateCall = AsObjectFactory.create(isApiUriTemplateCallPayload)\n","import type { ApiUriTemplateCallPayload } from '../types/index.ts'\nimport { isApiCallPayload } from './isApiCall.ts'\n\nexport const isApiUriTemplateCallPayload = <T>(value: T): value is (ApiUriTemplateCallPayload & T) =>\n isApiCallPayload(value) && !!((value as ApiUriTemplateCallPayload).uriTemplate || (value as ApiUriTemplateCallPayload).params)\n","import { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ApiCallResultSchema } from '../Schema.ts'\nimport type { ApiCallErrorResult, ApiCallResult } from '../types/index.ts'\n\nexport const isApiCallErrorResult = (value: unknown): value is ApiCallErrorResult =>\n !!isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema) && ((value as ApiCallErrorResult).http?.status ?? 200) >= 400\n","import type {\n Hash, JsonArray, JsonObject,\n} from '@xylabs/sdk-js'\nimport { AsObjectFactory } from '@xylabs/sdk-js'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport { ApiCallResultSchema } from '../Schema.ts'\nimport type { ApiCallResult } from './ApiCallResult.ts'\n\nexport type ApiCallJsonResultType = JsonArray | JsonObject\n\nexport type ApiCallJsonResult<T extends ApiCallJsonResultType = ApiCallJsonResultType> = Payload<\n {\n call: Hash\n contentType: 'application/json'\n data: T\n },\n ApiCallResultSchema\n>\n\nexport const isApiCallJsonResult = <T extends ApiCallJsonResultType = ApiCallJsonResultType>(x?: unknown | null): x is ApiCallJsonResult<T> => {\n return isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema)(x) && (x as ApiCallJsonResult)?.contentType === 'application/json'\n}\nexport const asApiCallJsonResult = AsObjectFactory.create(isApiCallJsonResult)\n","import { AsObjectFactory } from '@xylabs/sdk-js'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport type { WitnessConfig } from '@xyo-network/witness-model'\n\nimport type {\n ApiCallPayload, ApiUriCallPayload, ApiUriTemplateCallPayload, MimeTypes,\n} from '../Payload/index.ts'\nimport { ApiCallWitnessConfigSchema } from './Schema.ts'\n\nexport type ApiCallWitnessConfigBase = WitnessConfig<{\n accept?: MimeTypes\n headers?: Record<string, string | undefined>\n queries?: ApiCallPayload['queries']\n schema: ApiCallWitnessConfigSchema\n timeout?: number\n verb?: ApiCallPayload['verb']\n}>\n\nexport type ApiUriCallWitnessConfig = WitnessConfig<\n ApiCallWitnessConfigBase & {\n uri: ApiUriCallPayload['uri']\n }\n>\n\nexport type ApiUriTemplateCallWitnessConfig = WitnessConfig<\n ApiCallWitnessConfigBase & {\n params?: Record<string, string>\n uriTemplate: ApiUriTemplateCallPayload['uriTemplate']\n }\n>\n\nexport type ApiCallWitnessConfig = ApiUriCallWitnessConfig | ApiUriTemplateCallWitnessConfig | ApiCallWitnessConfigBase\n\nexport const isApiCallWitnessConfig = isPayloadOfSchemaType<ApiCallWitnessConfig>(ApiCallWitnessConfigSchema)\nexport const asApiCallWitnessConfig = AsObjectFactory.create(isApiCallWitnessConfig)\n\nexport const isApiUriCallWitnessConfig = (value?: unknown): value is ApiUriCallWitnessConfig =>\n isApiCallWitnessConfig(value) && !!(value as ApiUriCallWitnessConfig).uri\nexport const asApiUriCallWitnessConfig = AsObjectFactory.create(isApiUriCallWitnessConfig)\n\nexport const isApiUriTemplateCallWitnessConfig = (value?: unknown): value is ApiUriTemplateCallWitnessConfig =>\n isApiCallWitnessConfig(value) && !!(value as ApiUriTemplateCallWitnessConfig).uriTemplate\nexport const asApiUriTemplateCallWitnessConfig = AsObjectFactory.create(isApiUriTemplateCallWitnessConfig)\n","import { asSchema } from '@xyo-network/payload-model'\n\nexport const ApiCallWitnessConfigSchema = asSchema('network.xyo.api.call.witness.config', true)\nexport type ApiCallWitnessConfigSchema = typeof ApiCallWitnessConfigSchema\n","/* eslint-disable max-statements */\n\nimport type { Hash } from '@xylabs/sdk-js'\nimport {\n assertEx, axiosJsonConfig, URL,\n} from '@xylabs/sdk-js'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport type { Schema } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport { PayloadBuilder } from '@xyo-network/sdk-js'\nimport type { AxiosError } from 'axios'\nimport { Axios } from 'axios'\nimport { fromByteArray } from 'base64-js'\nimport fillTemplate from 'es6-dynamic-template'\n\nimport { checkIpfsUrl } from '../lib/index.ts'\nimport type {\n ApiCallBase64Result,\n ApiCallErrorResult,\n ApiCallJsonResult,\n ApiCallJsonResultType,\n ApiCallPayload,\n ApiCallResult,\n ApiCallXmlResult,\n MimeTypes,\n} from '../Payload/index.ts'\nimport {\n ApiCallResultSchema,\n ApiCallSchema,\n asApiUriCallPayload,\n asApiUriTemplateCall,\n} from '../Payload/index.ts'\nimport { asApiUriCallWitnessConfig, asApiUriTemplateCallWitnessConfig } from './Config.ts'\nimport type { ApiCallWitnessParams } from './Params.ts'\nimport { ApiCallWitnessConfigSchema } from './Schema.ts'\n\nexport class ApiCallWitness<TParams extends ApiCallWitnessParams = ApiCallWitnessParams> extends AbstractWitness<TParams, ApiCallPayload, ApiCallResult> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, ApiCallWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = ApiCallWitnessConfigSchema\n\n get accept(): MimeTypes {\n return this.config.accept ?? 'application/json'\n }\n\n get ipfsGateway() {\n return this.params.ipfsGateway\n }\n\n get timeout() {\n return this.config.timeout\n }\n\n getFullUri(call?: ApiCallPayload): string {\n const { uri: callUri } = asApiUriCallPayload(call) ?? {}\n const {\n uriTemplate: callUriTemplate, params: callParams, queries: callQueries,\n } = asApiUriTemplateCall(call) ?? {}\n const { uri: configUri } = asApiUriCallWitnessConfig(this.config) ?? {}\n const {\n uriTemplate: configUriTemplate, params: configParams, queries: configQueries,\n } = asApiUriTemplateCallWitnessConfig(this.config) ?? {}\n\n const params = { ...configParams, ...callParams }\n\n let url: URL | undefined = undefined\n\n if (callUri) {\n url = new URL(callUri)\n } else if (callUriTemplate) {\n url = new URL(fillTemplate(callUriTemplate, params))\n } else if (configUri) {\n url = new URL(configUri)\n } else if (configUriTemplate) {\n url = new URL(fillTemplate(configUriTemplate, params))\n }\n\n if (url) {\n const queries = Object.entries({ ...configQueries, ...callQueries })\n for (let [key, value] of queries) url?.searchParams.set(key, value)\n return url.href\n }\n\n throw new Error('Unable to determine uri. No uri/uriTemplate specified in either the call or config.')\n }\n\n getHeaders(headers?: Record<string, string | undefined>): Record<string, string | undefined> {\n return {\n ...this.params.headers, ...this.config.headers, ...headers,\n }\n }\n\n protected override async observeHandler(inPayloads: ApiCallPayload[] = []): Promise<ApiCallResult[]> {\n await this.started('throw')\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType<ApiCallPayload>(ApiCallSchema)).map(async (call) => {\n const { verb: callVerb } = call\n const { verb: configVerb } = this.config\n const verb = callVerb ?? configVerb ?? 'get'\n const uri = this.getFullUri(call)\n\n const validatedUri = assertEx(checkIpfsUrl(uri, this.ipfsGateway), () => 'Invalid URI')\n\n if (verb === 'get') {\n return this.httpGet(validatedUri, (await PayloadBuilder.dataHash(call)))\n }\n\n const observation: ApiCallResult = {\n call: await PayloadBuilder.hash(call),\n schema: ApiCallResultSchema,\n }\n return observation\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.error(`Error [${this.config.name}]: ${error.message}`)\n console.log(error.stack)\n throw error\n }\n }\n\n // eslint-disable-next-line complexity\n private async httpGet(url: string, call: Hash, headers?: Record<string, string | undefined>): Promise<ApiCallResult> {\n const result: ApiCallResult = {\n call,\n schema: ApiCallResultSchema,\n }\n try {\n switch (this.accept) {\n case 'application/json': {\n const axios = new Axios(axiosJsonConfig({ headers: { ...this.getHeaders(headers), Accept: 'application/json' }, timeout: this.timeout }))\n const response = await axios.get<ApiCallJsonResultType>(url)\n if (response.status >= 200 && response.status < 300) {\n const jsonResult = result as ApiCallJsonResult\n jsonResult.data = response.data\n jsonResult.contentType = 'application/json'\n } else {\n const errorResult = result as ApiCallErrorResult\n errorResult.http = { status: response.status }\n }\n break\n }\n case 'application/xml':\n case 'text/xml': {\n const axios = new Axios({\n headers: { ...this.getHeaders(headers), Accept: this.accept },\n responseType: 'arraybuffer',\n timeout: this.timeout,\n })\n const response = await axios.get(url)\n if (response.status >= 200 && response.status < 300) {\n const xmlResult = result as ApiCallXmlResult\n xmlResult.data = Buffer.from(response.data, 'binary').toString('utf8')\n xmlResult.contentType = response.headers['content-type']?.toString() ?? 'application/xml'\n } else {\n const errorResult = result as ApiCallErrorResult\n errorResult.http = { status: response.status }\n }\n break\n }\n default: {\n const axios = new Axios({\n headers: this.params.headers, responseType: 'arraybuffer', timeout: this.timeout,\n })\n const response = await axios.get(url)\n if (response.status >= 200 && response.status < 300) {\n const jsonResult = result as ApiCallBase64Result\n jsonResult.data = fromByteArray(response.data)\n jsonResult.contentType = response.headers['content-type']?.toString() ?? 'application/octet-stream'\n } else {\n const errorResult = result as ApiCallErrorResult\n errorResult.http = { status: response.status }\n }\n break\n }\n }\n } catch (ex) {\n const axiosError = ex as AxiosError\n if (axiosError.isAxiosError) {\n if (axiosError?.response?.status !== undefined) {\n result.http = result.http ?? {}\n result.http.status = axiosError?.response?.status\n }\n if (axiosError?.code !== undefined) {\n result.http = result.http ?? {}\n result.http.code = axiosError?.code\n }\n return result\n } else {\n throw ex\n }\n }\n return result\n }\n}\n","import { assertEx, URL } from '@xylabs/sdk-js'\n\nconst allowIpfsIoRepair = true\n\n/**\n * Returns the equivalent IPFS gateway URL for the supplied URL.\n * @param urlToCheck The URL to check\n * @returns If the supplied URL is an IPFS URL, it converts the URL to the\n * equivalent IPFS gateway URL. Otherwise, returns the original URL.\n */\nexport const checkIpfsUrl = (urlToCheck: string, ipfsGateway?: string): string => {\n try {\n const url = new URL(urlToCheck)\n let protocol = url.protocol\n let host = url.host\n let path = url.pathname\n const query = url.search\n if (protocol === 'ipfs:') {\n protocol = 'https:'\n host = assertEx(ipfsGateway, () => 'No ipfsGateway provided')\n path = url.host === 'ipfs' ? `ipfs${path}` : `ipfs/${url.host}${path}`\n const root = `${protocol}//${host}/${path}`\n return query?.length > 0 ? `${root}?${query}` : root\n } else if (allowIpfsIoRepair && protocol === 'https' && host === 'ipfs.io') {\n protocol = 'https:'\n host = assertEx(ipfsGateway, () => 'No ipfsGateway provided')\n const pathParts = path.split('/')\n if (pathParts[0] === 'ipfs') {\n pathParts.shift()\n }\n path = pathParts.join('/')\n const root = `${protocol}//${host}/${path}`\n return query?.length > 0 ? `${root}?${query}` : root\n } else {\n return urlToCheck\n }\n } catch {\n // const error = ex as Error\n // console.error(`${error.name}:${error.message} [${urlToCheck}]`)\n // console.log(error.stack)\n return urlToCheck\n }\n}\n"],"mappings":"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","names":["AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","AsObjectFactory","AsObjectFactory","AsObjectFactory","AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","AsObjectFactory","isPayloadOfSchemaType","asSchema","isPayloadOfSchemaType","AsObjectFactory","assertEx","URL","isPayloadOfSchemaType","URL","isPayloadOfSchemaType","assertEx"]}
@@ -1 +1 @@
1
- {"version":3,"file":"checkIpfsUrl.d.ts","sourceRoot":"","sources":["../../../src/lib/checkIpfsUrl.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,YAAY,MAAM,EAAE,cAAc,MAAM,KAAG,MAgCvE,CAAA"}
1
+ {"version":3,"file":"checkIpfsUrl.d.ts","sourceRoot":"","sources":["../../../src/lib/checkIpfsUrl.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,YAAY,MAAM,EAAE,cAAc,MAAM,KAAG,MAgCvE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyo-network/api-call-witness",
3
- "version": "5.3.1",
3
+ "version": "5.3.3",
4
4
  "description": "Typescript/Javascript Plugins for XYO Platform",
5
5
  "homepage": "https://xyo.network",
6
6
  "bugs": {
@@ -30,36 +30,39 @@
30
30
  "types": "dist/neutral/index.d.ts",
31
31
  "files": [
32
32
  "dist",
33
- "src",
34
- "!**/*.bench.*",
35
- "!**/*.spec.*",
36
- "!**/*.test.*"
33
+ "README.md"
37
34
  ],
38
- "dependencies": {
39
- "@xylabs/assert": "~5.0.64",
40
- "@xylabs/axios": "~5.0.64",
41
- "@xylabs/hex": "~5.0.64",
42
- "@xylabs/object": "~5.0.64",
43
- "@xylabs/url": "~5.0.64",
44
- "@xyo-network/abstract-witness": "~5.3.2",
45
- "@xyo-network/payload-builder": "~5.3.2",
46
- "@xyo-network/payload-model": "~5.3.2",
47
- "@xyo-network/witness-model": "~5.3.2",
48
- "axios": "^1.13.4",
49
- "base64-js": "~1.5.1",
50
- "es6-dynamic-template": "~2.0.0"
51
- },
52
35
  "devDependencies": {
53
- "@xylabs/ts-scripts-yarn3": "~7.3.2",
54
- "@xylabs/tsconfig": "~7.3.2",
55
- "@xylabs/vitest-extended": "~5.0.64",
56
- "@xyo-network/manifest": "~5.3.2",
57
- "@xyo-network/module-factory-locator": "~5.3.2",
58
- "@xyo-network/module-model": "~5.3.2",
59
- "@xyo-network/sentinel-model": "~5.3.2",
60
- "@xyo-network/wallet": "~5.3.2",
36
+ "@xylabs/sdk-js": "^5.0.90",
37
+ "@xylabs/ts-scripts-common": "~7.5.10",
38
+ "@xylabs/ts-scripts-yarn3": "~7.5.10",
39
+ "@xylabs/tsconfig": "~7.5.10",
40
+ "@xylabs/vitest-extended": "~5.0.90",
41
+ "@xyo-network/abstract-witness": "~5.3.5",
42
+ "@xyo-network/module-factory-locator": "~5.3.5",
43
+ "@xyo-network/module-model": "~5.3.5",
44
+ "@xyo-network/payload-model": "~5.3.5",
45
+ "@xyo-network/sdk-js": "~5.3.5",
46
+ "@xyo-network/sentinel-model": "~5.3.5",
47
+ "@xyo-network/wallet": "~5.3.5",
48
+ "@xyo-network/witness-model": "~5.3.5",
49
+ "axios": "^1.13.5",
50
+ "base64-js": "~1.5.1",
51
+ "es6-dynamic-template": "~2.0.0",
61
52
  "typescript": "~5.9.3",
62
- "vitest": "~4.0.18"
53
+ "vitest": "~4.1.2",
54
+ "zod": "^4.3.6"
55
+ },
56
+ "peerDependencies": {
57
+ "@xylabs/sdk-js": "^5",
58
+ "@xyo-network/abstract-witness": "^5",
59
+ "@xyo-network/payload-model": "^5",
60
+ "@xyo-network/sdk-js": "^5",
61
+ "@xyo-network/witness-model": "^5",
62
+ "axios": "^1",
63
+ "base64-js": "^1",
64
+ "es6-dynamic-template": "^2",
65
+ "zod": "^4"
63
66
  },
64
67
  "publishConfig": {
65
68
  "access": "public"
@@ -1,7 +0,0 @@
1
- import { asSchema } from '@xyo-network/payload-model'
2
-
3
- export const ApiCallSchema = asSchema('network.xyo.api.call', true)
4
- export type ApiCallSchema = typeof ApiCallSchema
5
-
6
- export const ApiCallResultSchema = asSchema(`${ApiCallSchema}.result`, true)
7
- export type ApiCallResultSchema = typeof ApiCallResultSchema
@@ -1,5 +0,0 @@
1
- import { AsObjectFactory } from '@xylabs/object'
2
-
3
- import { isApiCallPayload } from './isApiCall.ts'
4
-
5
- export const asApiCallPayload = AsObjectFactory.create(isApiCallPayload)
@@ -1,5 +0,0 @@
1
- import { AsObjectFactory } from '@xylabs/object'
2
-
3
- import { isApiCallBase64Result } from './isApiCallBase64Result.ts'
4
-
5
- export const asApiCallBase64Result = AsObjectFactory.create(isApiCallBase64Result)
@@ -1,5 +0,0 @@
1
- import { AsObjectFactory } from '@xylabs/object'
2
-
3
- import { isApiCallResult } from './isApiCallResult.ts'
4
-
5
- export const asApiCallResult = AsObjectFactory.create(isApiCallResult)
@@ -1,5 +0,0 @@
1
- import { AsObjectFactory } from '@xylabs/object'
2
-
3
- import { isApiCallXmlResult } from './isApiCallXmlResult.ts'
4
-
5
- export const asApiCallXmlResult = AsObjectFactory.create(isApiCallXmlResult)
@@ -1,5 +0,0 @@
1
- import { AsObjectFactory } from '@xylabs/object'
2
-
3
- import { isApiUriCallPayload } from './isApiUriCall.ts'
4
-
5
- export const asApiUriCallPayload = AsObjectFactory.create(isApiUriCallPayload)
@@ -1,5 +0,0 @@
1
- import { AsObjectFactory } from '@xylabs/object'
2
-
3
- import { isApiUriTemplateCallPayload } from './isApiUriTemplateCall.ts'
4
-
5
- export const asApiUriTemplateCall = AsObjectFactory.create(isApiUriTemplateCallPayload)
@@ -1,13 +0,0 @@
1
- export * from './asApiCall.ts'
2
- export * from './asApiCallBase64Result.ts'
3
- export * from './asApiCallResult.ts'
4
- export * from './asApiCallXmlResult.ts'
5
- export * from './asApiUriCall.ts'
6
- export * from './asApiUriTemplateCall.ts'
7
- export * from './isApiCall.ts'
8
- export * from './isApiCallBase64Result.ts'
9
- export * from './isApiCallErrorResult.ts'
10
- export * from './isApiCallResult.ts'
11
- export * from './isApiCallXmlResult.ts'
12
- export * from './isApiUriCall.ts'
13
- export * from './isApiUriTemplateCall.ts'
@@ -1,6 +0,0 @@
1
- import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
2
-
3
- import { ApiCallSchema } from '../Schema.ts'
4
- import type { ApiCallPayload } from '../types/index.ts'
5
-
6
- export const isApiCallPayload = isPayloadOfSchemaType<ApiCallPayload>(ApiCallSchema)
@@ -1,8 +0,0 @@
1
- import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
2
-
3
- import { ApiCallResultSchema } from '../Schema.ts'
4
- import type { ApiCallBase64Result, ApiCallResult } from '../types/index.ts'
5
-
6
- export const isApiCallBase64Result = (x?: unknown | null): x is ApiCallBase64Result => {
7
- return isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema)(x) && typeof (x as ApiCallBase64Result)?.data === 'string'
8
- }
@@ -1,7 +0,0 @@
1
- import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
2
-
3
- import { ApiCallResultSchema } from '../Schema.ts'
4
- import type { ApiCallErrorResult, ApiCallResult } from '../types/index.ts'
5
-
6
- export const isApiCallErrorResult = (value: unknown): value is ApiCallErrorResult =>
7
- !!isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema) && ((value as ApiCallErrorResult).http?.status ?? 200) >= 400
@@ -1,6 +0,0 @@
1
- import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
2
-
3
- import { ApiCallResultSchema } from '../Schema.ts'
4
- import type { ApiCallResult } from '../types/index.ts'
5
-
6
- export const isApiCallResult = isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema)
@@ -1,8 +0,0 @@
1
- import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
2
-
3
- import { ApiCallResultSchema } from '../Schema.ts'
4
- import type { ApiCallResult, ApiCallXmlResult } from '../types/index.ts'
5
-
6
- export const isApiCallXmlResult = (x?: unknown | null): x is ApiCallXmlResult => {
7
- return isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema)(x) && typeof (x as ApiCallXmlResult)?.data === 'string'
8
- }
@@ -1,4 +0,0 @@
1
- import type { ApiUriCallPayload } from '../types/index.ts'
2
- import { isApiCallPayload } from './isApiCall.ts'
3
-
4
- export const isApiUriCallPayload = (value?: unknown): value is ApiUriCallPayload => isApiCallPayload(value) && !!(value as ApiUriCallPayload).uri
@@ -1,5 +0,0 @@
1
- import type { ApiUriTemplateCallPayload } from '../types/index.ts'
2
- import { isApiCallPayload } from './isApiCall.ts'
3
-
4
- export const isApiUriTemplateCallPayload = <T>(value: T): value is (ApiUriTemplateCallPayload & T) =>
5
- isApiCallPayload(value) && !!((value as ApiUriTemplateCallPayload).uriTemplate || (value as ApiUriTemplateCallPayload).params)
@@ -1,3 +0,0 @@
1
- export * from './identity/index.ts'
2
- export * from './Schema.ts'
3
- export * from './types/index.ts'
@@ -1,4 +0,0 @@
1
- import type { ApiUriCallPayload } from './ApiUriCall.ts'
2
- import type { ApiUriTemplateCallPayload } from './ApiUriTemplateCall.ts'
3
-
4
- export type ApiCallPayload = ApiUriCallPayload | ApiUriTemplateCallPayload
@@ -1,15 +0,0 @@
1
- import type { Hash } from '@xylabs/hex'
2
- import type { Payload } from '@xyo-network/payload-model'
3
-
4
- import type { ApiCallResultSchema } from '../Schema.ts'
5
- import type { ApiCallJsonResult } from './ApiCallJsonResult.ts'
6
- import type { ApiCallXmlResult } from './ApiCallXmlResult.ts'
7
-
8
- export type ApiCallBase64Result = Payload<
9
- {
10
- call: Hash
11
- contentType: Exclude<Exclude<string, ApiCallJsonResult['contentType']>, ApiCallXmlResult['contentType']>
12
- data: string
13
- },
14
- ApiCallResultSchema
15
- >
@@ -1,13 +0,0 @@
1
- import type { Hash } from '@xylabs/hex'
2
- import type { Payload } from '@xyo-network/payload-model'
3
-
4
- import type { ApiCallResultSchema } from '../Schema.ts'
5
- import type { HttpMeta } from './HttpMeta.ts'
6
-
7
- export type ApiCallErrorResult = Payload<
8
- {
9
- call: Hash
10
- http?: HttpMeta
11
- },
12
- ApiCallResultSchema
13
- >
@@ -1,8 +0,0 @@
1
- import type { Queries } from './Queries.ts'
2
- import type { Verb } from './Verb.ts'
3
-
4
- export interface ApiCallFields {
5
- headers?: Record<string, string | undefined>
6
- queries?: Queries
7
- verb?: Verb
8
- }
@@ -1,24 +0,0 @@
1
- import type { Hash } from '@xylabs/hex'
2
- import type { JsonArray, JsonObject } from '@xylabs/object'
3
- import { AsObjectFactory } from '@xylabs/object'
4
- import type { Payload } from '@xyo-network/payload-model'
5
- import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
6
-
7
- import { ApiCallResultSchema } from '../Schema.ts'
8
- import type { ApiCallResult } from './ApiCallResult.ts'
9
-
10
- export type ApiCallJsonResultType = JsonArray | JsonObject
11
-
12
- export type ApiCallJsonResult<T extends ApiCallJsonResultType = ApiCallJsonResultType> = Payload<
13
- {
14
- call: Hash
15
- contentType: 'application/json'
16
- data: T
17
- },
18
- ApiCallResultSchema
19
- >
20
-
21
- export const isApiCallJsonResult = <T extends ApiCallJsonResultType = ApiCallJsonResultType>(x?: unknown | null): x is ApiCallJsonResult<T> => {
22
- return isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema)(x) && (x as ApiCallJsonResult)?.contentType === 'application/json'
23
- }
24
- export const asApiCallJsonResult = AsObjectFactory.create(isApiCallJsonResult)
@@ -1,12 +0,0 @@
1
- import type { JsonArray, JsonObject } from '@xylabs/object'
2
-
3
- import type { ApiCallBase64Result } from './ApiCallBase64Result.ts'
4
- import type { ApiCallErrorResult } from './ApiCallErrorResult.ts'
5
- import type { ApiCallJsonResult } from './ApiCallJsonResult.ts'
6
-
7
- type NewType = JsonObject
8
-
9
- export type ApiCallResult<TJson extends JsonArray | JsonObject = JsonArray | NewType>
10
- = | ApiCallBase64Result
11
- | ApiCallJsonResult<TJson>
12
- | ApiCallErrorResult
@@ -1,13 +0,0 @@
1
- import type { Hash } from '@xylabs/hex'
2
- import type { Payload } from '@xyo-network/payload-model'
3
-
4
- import type { ApiCallResultSchema } from '../Schema.ts'
5
-
6
- export type ApiCallXmlResult = Payload<
7
- {
8
- call: Hash
9
- contentType: 'application/xml' | 'text/xml'
10
- data: string
11
- },
12
- ApiCallResultSchema
13
- >
@@ -1,11 +0,0 @@
1
- import type { Payload } from '@xyo-network/payload-model'
2
-
3
- import type { ApiCallSchema } from '../Schema.ts'
4
- import type { ApiCallFields } from './ApiCallFields.ts'
5
-
6
- export type ApiUriCallPayload = Payload<
7
- ApiCallFields & {
8
- uri: string
9
- },
10
- ApiCallSchema
11
- >
@@ -1,12 +0,0 @@
1
- import type { Payload } from '@xyo-network/payload-model'
2
-
3
- import type { ApiCallSchema } from '../Schema.ts'
4
- import type { ApiCallFields } from './ApiCallFields.ts'
5
-
6
- export type ApiUriTemplateCallPayload = Payload<
7
- ApiCallFields & {
8
- params?: Record<string, string>
9
- uriTemplate?: string
10
- },
11
- ApiCallSchema
12
- >
@@ -1,4 +0,0 @@
1
- export interface HttpMeta {
2
- code?: string
3
- status?: number
4
- }
@@ -1,13 +0,0 @@
1
- // TODO: Bring in from some library or package for completeness
2
- export type MimeTypes
3
- = | 'application/json' // JSON format
4
- | 'application/octet-stream' // Binary data
5
- | 'application/pdf' // PDF format
6
- | 'application/xhtml+xml' // XHTML format
7
- | 'application/xml' // XML format
8
- | 'image/gif' // GIF image format
9
- | 'image/jpeg' // JPEG image format
10
- | 'image/png' // PNG image format
11
- | 'text/html' // HTML format
12
- | 'text/plain' // Plain text format
13
- | 'text/xml' // XML format (alternative)
@@ -1 +0,0 @@
1
- export type Queries = Record<string, string>
@@ -1 +0,0 @@
1
- export type Verb = 'get' | 'post'
@@ -1,13 +0,0 @@
1
- export * from './ApiCall.ts'
2
- export * from './ApiCallBase64Result.ts'
3
- export * from './ApiCallErrorResult.ts'
4
- export * from './ApiCallFields.ts'
5
- export * from './ApiCallJsonResult.ts'
6
- export * from './ApiCallResult.ts'
7
- export * from './ApiCallXmlResult.ts'
8
- export * from './ApiUriCall.ts'
9
- export * from './ApiUriTemplateCall.ts'
10
- export * from './HttpMeta.ts'
11
- export * from './MimeTypes.ts'
12
- export * from './Queries.ts'
13
- export * from './Verb.ts'
@@ -1,43 +0,0 @@
1
- import { AsObjectFactory } from '@xylabs/object'
2
- import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
3
- import type { WitnessConfig } from '@xyo-network/witness-model'
4
-
5
- import type {
6
- ApiCallPayload, ApiUriCallPayload, ApiUriTemplateCallPayload, MimeTypes,
7
- } from '../Payload/index.ts'
8
- import { ApiCallWitnessConfigSchema } from './Schema.ts'
9
-
10
- export type ApiCallWitnessConfigBase = WitnessConfig<{
11
- accept?: MimeTypes
12
- headers?: Record<string, string | undefined>
13
- queries?: ApiCallPayload['queries']
14
- schema: ApiCallWitnessConfigSchema
15
- timeout?: number
16
- verb?: ApiCallPayload['verb']
17
- }>
18
-
19
- export type ApiUriCallWitnessConfig = WitnessConfig<
20
- ApiCallWitnessConfigBase & {
21
- uri: ApiUriCallPayload['uri']
22
- }
23
- >
24
-
25
- export type ApiUriTemplateCallWitnessConfig = WitnessConfig<
26
- ApiCallWitnessConfigBase & {
27
- params?: Record<string, string>
28
- uriTemplate: ApiUriTemplateCallPayload['uriTemplate']
29
- }
30
- >
31
-
32
- export type ApiCallWitnessConfig = ApiUriCallWitnessConfig | ApiUriTemplateCallWitnessConfig | ApiCallWitnessConfigBase
33
-
34
- export const isApiCallWitnessConfig = isPayloadOfSchemaType<ApiCallWitnessConfig>(ApiCallWitnessConfigSchema)
35
- export const asApiCallWitnessConfig = AsObjectFactory.create(isApiCallWitnessConfig)
36
-
37
- export const isApiUriCallWitnessConfig = (value?: unknown): value is ApiUriCallWitnessConfig =>
38
- isApiCallWitnessConfig(value) && !!(value as ApiUriCallWitnessConfig).uri
39
- export const asApiUriCallWitnessConfig = AsObjectFactory.create(isApiUriCallWitnessConfig)
40
-
41
- export const isApiUriTemplateCallWitnessConfig = (value?: unknown): value is ApiUriTemplateCallWitnessConfig =>
42
- isApiCallWitnessConfig(value) && !!(value as ApiUriTemplateCallWitnessConfig).uriTemplate
43
- export const asApiUriTemplateCallWitnessConfig = AsObjectFactory.create(isApiUriTemplateCallWitnessConfig)
@@ -1,10 +0,0 @@
1
- import type { WitnessParams } from '@xyo-network/witness-model'
2
-
3
- import type { ApiCallWitnessConfig } from './Config.ts'
4
-
5
- export interface ApiCallWitnessParams extends WitnessParams<
6
- ApiCallWitnessConfig>
7
- {
8
- headers?: Record<string, string | undefined>
9
- ipfsGateway?: string
10
- }
@@ -1,4 +0,0 @@
1
- import { asSchema } from '@xyo-network/payload-model'
2
-
3
- export const ApiCallWitnessConfigSchema = asSchema('network.xyo.api.call.witness.config', true)
4
- export type ApiCallWitnessConfigSchema = typeof ApiCallWitnessConfigSchema
@@ -1,197 +0,0 @@
1
- /* eslint-disable max-statements */
2
-
3
- import { assertEx } from '@xylabs/assert'
4
- import { axiosJsonConfig } from '@xylabs/axios'
5
- import type { Hash } from '@xylabs/hex'
6
- import { URL } from '@xylabs/url'
7
- import { AbstractWitness } from '@xyo-network/abstract-witness'
8
- import { PayloadBuilder } from '@xyo-network/payload-builder'
9
- import type { Schema } from '@xyo-network/payload-model'
10
- import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
11
- import type { AxiosError } from 'axios'
12
- import { Axios } from 'axios'
13
- import { fromByteArray } from 'base64-js'
14
- import fillTemplate from 'es6-dynamic-template'
15
-
16
- import { checkIpfsUrl } from '../lib/index.ts'
17
- import type {
18
- ApiCallBase64Result,
19
- ApiCallErrorResult,
20
- ApiCallJsonResult,
21
- ApiCallJsonResultType,
22
- ApiCallPayload,
23
- ApiCallResult,
24
- ApiCallXmlResult,
25
- MimeTypes,
26
- } from '../Payload/index.ts'
27
- import {
28
- ApiCallResultSchema,
29
- ApiCallSchema,
30
- asApiUriCallPayload,
31
- asApiUriTemplateCall,
32
- } from '../Payload/index.ts'
33
- import { asApiUriCallWitnessConfig, asApiUriTemplateCallWitnessConfig } from './Config.ts'
34
- import type { ApiCallWitnessParams } from './Params.ts'
35
- import { ApiCallWitnessConfigSchema } from './Schema.ts'
36
-
37
- export class ApiCallWitness<TParams extends ApiCallWitnessParams = ApiCallWitnessParams> extends AbstractWitness<TParams, ApiCallPayload, ApiCallResult> {
38
- static override readonly configSchemas: Schema[] = [...super.configSchemas, ApiCallWitnessConfigSchema]
39
- static override readonly defaultConfigSchema: Schema = ApiCallWitnessConfigSchema
40
-
41
- get accept(): MimeTypes {
42
- return this.config.accept ?? 'application/json'
43
- }
44
-
45
- get ipfsGateway() {
46
- return this.params.ipfsGateway
47
- }
48
-
49
- get timeout() {
50
- return this.config.timeout
51
- }
52
-
53
- getFullUri(call?: ApiCallPayload): string {
54
- const { uri: callUri } = asApiUriCallPayload(call) ?? {}
55
- const {
56
- uriTemplate: callUriTemplate, params: callParams, queries: callQueries,
57
- } = asApiUriTemplateCall(call) ?? {}
58
- const { uri: configUri } = asApiUriCallWitnessConfig(this.config) ?? {}
59
- const {
60
- uriTemplate: configUriTemplate, params: configParams, queries: configQueries,
61
- } = asApiUriTemplateCallWitnessConfig(this.config) ?? {}
62
-
63
- const params = { ...configParams, ...callParams }
64
-
65
- let url: URL | undefined = undefined
66
-
67
- if (callUri) {
68
- url = new URL(callUri)
69
- } else if (callUriTemplate) {
70
- url = new URL(fillTemplate(callUriTemplate, params))
71
- } else if (configUri) {
72
- url = new URL(configUri)
73
- } else if (configUriTemplate) {
74
- url = new URL(fillTemplate(configUriTemplate, params))
75
- }
76
-
77
- if (url) {
78
- const queries = Object.entries({ ...configQueries, ...callQueries })
79
- for (let [key, value] of queries) url?.searchParams.set(key, value)
80
- return url.href
81
- }
82
-
83
- throw new Error('Unable to determine uri. No uri/uriTemplate specified in either the call or config.')
84
- }
85
-
86
- getHeaders(headers?: Record<string, string | undefined>): Record<string, string | undefined> {
87
- return {
88
- ...this.params.headers, ...this.config.headers, ...headers,
89
- }
90
- }
91
-
92
- protected override async observeHandler(inPayloads: ApiCallPayload[] = []): Promise<ApiCallResult[]> {
93
- await this.started('throw')
94
- try {
95
- const observations = await Promise.all(
96
- inPayloads.filter(isPayloadOfSchemaType<ApiCallPayload>(ApiCallSchema)).map(async (call) => {
97
- const { verb: callVerb } = call
98
- const { verb: configVerb } = this.config
99
- const verb = callVerb ?? configVerb ?? 'get'
100
- const uri = this.getFullUri(call)
101
-
102
- const validatedUri = assertEx(checkIpfsUrl(uri, this.ipfsGateway), () => 'Invalid URI')
103
-
104
- if (verb === 'get') {
105
- return this.httpGet(validatedUri, (await PayloadBuilder.dataHash(call)))
106
- }
107
-
108
- const observation: ApiCallResult = {
109
- call: await PayloadBuilder.hash(call),
110
- schema: ApiCallResultSchema,
111
- }
112
- return observation
113
- }),
114
- )
115
- return observations
116
- } catch (ex) {
117
- const error = ex as Error
118
- console.error(`Error [${this.config.name}]: ${error.message}`)
119
- console.log(error.stack)
120
- throw error
121
- }
122
- }
123
-
124
- // eslint-disable-next-line complexity
125
- private async httpGet(url: string, call: Hash, headers?: Record<string, string | undefined>): Promise<ApiCallResult> {
126
- const result: ApiCallResult = {
127
- call,
128
- schema: ApiCallResultSchema,
129
- }
130
- try {
131
- switch (this.accept) {
132
- case 'application/json': {
133
- const axios = new Axios(axiosJsonConfig({ headers: { ...this.getHeaders(headers), Accept: 'application/json' }, timeout: this.timeout }))
134
- const response = await axios.get<ApiCallJsonResultType>(url)
135
- if (response.status >= 200 && response.status < 300) {
136
- const jsonResult = result as ApiCallJsonResult
137
- jsonResult.data = response.data
138
- jsonResult.contentType = 'application/json'
139
- } else {
140
- const errorResult = result as ApiCallErrorResult
141
- errorResult.http = { status: response.status }
142
- }
143
- break
144
- }
145
- case 'application/xml':
146
- case 'text/xml': {
147
- const axios = new Axios({
148
- headers: { ...this.getHeaders(headers), Accept: this.accept },
149
- responseType: 'arraybuffer',
150
- timeout: this.timeout,
151
- })
152
- const response = await axios.get(url)
153
- if (response.status >= 200 && response.status < 300) {
154
- const xmlResult = result as ApiCallXmlResult
155
- xmlResult.data = Buffer.from(response.data, 'binary').toString('utf8')
156
- xmlResult.contentType = response.headers['content-type']?.toString() ?? 'application/xml'
157
- } else {
158
- const errorResult = result as ApiCallErrorResult
159
- errorResult.http = { status: response.status }
160
- }
161
- break
162
- }
163
- default: {
164
- const axios = new Axios({
165
- headers: this.params.headers, responseType: 'arraybuffer', timeout: this.timeout,
166
- })
167
- const response = await axios.get(url)
168
- if (response.status >= 200 && response.status < 300) {
169
- const jsonResult = result as ApiCallBase64Result
170
- jsonResult.data = fromByteArray(response.data)
171
- jsonResult.contentType = response.headers['content-type']?.toString() ?? 'application/octet-stream'
172
- } else {
173
- const errorResult = result as ApiCallErrorResult
174
- errorResult.http = { status: response.status }
175
- }
176
- break
177
- }
178
- }
179
- } catch (ex) {
180
- const axiosError = ex as AxiosError
181
- if (axiosError.isAxiosError) {
182
- if (axiosError?.response?.status !== undefined) {
183
- result.http = result.http ?? {}
184
- result.http.status = axiosError?.response?.status
185
- }
186
- if (axiosError?.code !== undefined) {
187
- result.http = result.http ?? {}
188
- result.http.code = axiosError?.code
189
- }
190
- return result
191
- } else {
192
- throw ex
193
- }
194
- }
195
- return result
196
- }
197
- }
@@ -1,4 +0,0 @@
1
- export * from './Config.ts'
2
- export * from './Params.ts'
3
- export * from './Schema.ts'
4
- export * from './Witness.ts'
@@ -1,41 +0,0 @@
1
- {
2
- "$schema": "https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json",
3
- "nodes": [
4
- {
5
- "config": {
6
- "name": "ApiCall",
7
- "schema": "network.xyo.node.config"
8
- },
9
- "modules": {
10
- "public": [
11
- {
12
- "config": {
13
- "language": "javascript",
14
- "name": "ApiCallWitness",
15
- "queries": {
16
- "limit": 1
17
- },
18
- "schema": "network.xyo.api.call.witness.config",
19
- "uriTemplate": "https://api.opensea.io/api/v2/chain/ethereum/account/${address}/nfts"
20
- }
21
- },
22
- {
23
- "config": {
24
- "language": "javascript",
25
- "name": "ApiCallSentinel",
26
- "schema": "network.xyo.sentinel.config",
27
- "synchronous": "true",
28
- "tasks": [
29
- {
30
- "input": true,
31
- "mod": "ApiCallWitness"
32
- }
33
- ]
34
- }
35
- }
36
- ]
37
- }
38
- }
39
- ],
40
- "schema": "network.xyo.manifest"
41
- }
package/src/index.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './Payload/index.ts'
2
- export * from './Witness/index.ts'
@@ -1,44 +0,0 @@
1
- import { assertEx } from '@xylabs/assert'
2
- import { URL } from '@xylabs/url'
3
-
4
- const allowIpfsIoRepair = true
5
-
6
- /**
7
- * Returns the equivalent IPFS gateway URL for the supplied URL.
8
- * @param urlToCheck The URL to check
9
- * @returns If the supplied URL is an IPFS URL, it converts the URL to the
10
- * equivalent IPFS gateway URL. Otherwise, returns the original URL.
11
- */
12
- export const checkIpfsUrl = (urlToCheck: string, ipfsGateway?: string): string => {
13
- try {
14
- const url = new URL(urlToCheck)
15
- let protocol = url.protocol
16
- let host = url.host
17
- let path = url.pathname
18
- const query = url.search
19
- if (protocol === 'ipfs:') {
20
- protocol = 'https:'
21
- host = assertEx(ipfsGateway, () => 'No ipfsGateway provided')
22
- path = url.host === 'ipfs' ? `ipfs${path}` : `ipfs/${url.host}${path}`
23
- const root = `${protocol}//${host}/${path}`
24
- return query?.length > 0 ? `${root}?${query}` : root
25
- } else if (allowIpfsIoRepair && protocol === 'https' && host === 'ipfs.io') {
26
- protocol = 'https:'
27
- host = assertEx(ipfsGateway, () => 'No ipfsGateway provided')
28
- const pathParts = path.split('/')
29
- if (pathParts[0] === 'ipfs') {
30
- pathParts.shift()
31
- }
32
- path = pathParts.join('/')
33
- const root = `${protocol}//${host}/${path}`
34
- return query?.length > 0 ? `${root}?${query}` : root
35
- } else {
36
- return urlToCheck
37
- }
38
- } catch {
39
- // const error = ex as Error
40
- // console.error(`${error.name}:${error.message} [${urlToCheck}]`)
41
- // console.log(error.stack)
42
- return urlToCheck
43
- }
44
- }
package/src/lib/index.ts DELETED
@@ -1 +0,0 @@
1
- export * from './checkIpfsUrl.ts'
package/src/types.d.ts DELETED
@@ -1 +0,0 @@
1
- declare module 'es6-dynamic-template'