@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.
- package/dist/neutral/Payload/identity/asApiCall.d.ts +1 -1
- package/dist/neutral/Payload/identity/asApiCallBase64Result.d.ts +1 -1
- package/dist/neutral/Payload/identity/asApiCallResult.d.ts +1 -1
- package/dist/neutral/Payload/identity/asApiCallXmlResult.d.ts +1 -1
- package/dist/neutral/Payload/identity/asApiUriCall.d.ts +1 -1
- package/dist/neutral/Payload/identity/asApiUriTemplateCall.d.ts +1 -1
- package/dist/neutral/Payload/types/ApiCallBase64Result.d.ts +1 -1
- package/dist/neutral/Payload/types/ApiCallBase64Result.d.ts.map +1 -1
- package/dist/neutral/Payload/types/ApiCallErrorResult.d.ts +1 -1
- package/dist/neutral/Payload/types/ApiCallErrorResult.d.ts.map +1 -1
- package/dist/neutral/Payload/types/ApiCallJsonResult.d.ts +2 -3
- package/dist/neutral/Payload/types/ApiCallJsonResult.d.ts.map +1 -1
- package/dist/neutral/Payload/types/ApiCallResult.d.ts +1 -1
- package/dist/neutral/Payload/types/ApiCallXmlResult.d.ts +1 -1
- package/dist/neutral/Payload/types/ApiCallXmlResult.d.ts.map +1 -1
- package/dist/neutral/Witness/Config.d.ts +3 -3
- package/dist/neutral/Witness/Witness.d.ts.map +1 -1
- package/dist/neutral/index.mjs +15 -14
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/lib/checkIpfsUrl.d.ts.map +1 -1
- package/package.json +31 -28
- package/src/Payload/Schema.ts +0 -7
- package/src/Payload/identity/asApiCall.ts +0 -5
- package/src/Payload/identity/asApiCallBase64Result.ts +0 -5
- package/src/Payload/identity/asApiCallResult.ts +0 -5
- package/src/Payload/identity/asApiCallXmlResult.ts +0 -5
- package/src/Payload/identity/asApiUriCall.ts +0 -5
- package/src/Payload/identity/asApiUriTemplateCall.ts +0 -5
- package/src/Payload/identity/index.ts +0 -13
- package/src/Payload/identity/isApiCall.ts +0 -6
- package/src/Payload/identity/isApiCallBase64Result.ts +0 -8
- package/src/Payload/identity/isApiCallErrorResult.ts +0 -7
- package/src/Payload/identity/isApiCallResult.ts +0 -6
- package/src/Payload/identity/isApiCallXmlResult.ts +0 -8
- package/src/Payload/identity/isApiUriCall.ts +0 -4
- package/src/Payload/identity/isApiUriTemplateCall.ts +0 -5
- package/src/Payload/index.ts +0 -3
- package/src/Payload/types/ApiCall.ts +0 -4
- package/src/Payload/types/ApiCallBase64Result.ts +0 -15
- package/src/Payload/types/ApiCallErrorResult.ts +0 -13
- package/src/Payload/types/ApiCallFields.ts +0 -8
- package/src/Payload/types/ApiCallJsonResult.ts +0 -24
- package/src/Payload/types/ApiCallResult.ts +0 -12
- package/src/Payload/types/ApiCallXmlResult.ts +0 -13
- package/src/Payload/types/ApiUriCall.ts +0 -11
- package/src/Payload/types/ApiUriTemplateCall.ts +0 -12
- package/src/Payload/types/HttpMeta.ts +0 -4
- package/src/Payload/types/MimeTypes.ts +0 -13
- package/src/Payload/types/Queries.ts +0 -1
- package/src/Payload/types/Verb.ts +0 -1
- package/src/Payload/types/index.ts +0 -13
- package/src/Witness/Config.ts +0 -43
- package/src/Witness/Params.ts +0 -10
- package/src/Witness/Schema.ts +0 -4
- package/src/Witness/Witness.ts +0 -197
- package/src/Witness/index.ts +0 -4
- package/src/Witness/spec/opensea.nft-call.json +0 -41
- package/src/index.ts +0 -2
- package/src/lib/checkIpfsUrl.ts +0 -44
- package/src/lib/index.ts +0 -1
- package/src/types.d.ts +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const asApiCallPayload: import("@xylabs/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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,
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiCallErrorResult.d.ts","sourceRoot":"","sources":["../../../../src/Payload/types/ApiCallErrorResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,
|
|
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/
|
|
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/
|
|
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,
|
|
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/
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiCallXmlResult.d.ts","sourceRoot":"","sources":["../../../../src/Payload/types/ApiCallXmlResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,
|
|
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/
|
|
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/
|
|
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/
|
|
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;
|
|
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"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/Payload/identity/asApiCall.ts
|
|
2
|
-
import { AsObjectFactory } from "@xylabs/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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 {
|
|
100
|
-
|
|
101
|
-
|
|
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/
|
|
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":"
|
|
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.
|
|
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
|
-
"
|
|
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/
|
|
54
|
-
"@xylabs/
|
|
55
|
-
"@xylabs/
|
|
56
|
-
"@
|
|
57
|
-
"@
|
|
58
|
-
"@xyo-network/
|
|
59
|
-
"@xyo-network/
|
|
60
|
-
"@xyo-network/
|
|
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.
|
|
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"
|
package/src/Payload/Schema.ts
DELETED
|
@@ -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,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,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,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)
|
package/src/Payload/index.ts
DELETED
|
@@ -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,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,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'
|
package/src/Witness/Config.ts
DELETED
|
@@ -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)
|
package/src/Witness/Params.ts
DELETED
|
@@ -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
|
-
}
|
package/src/Witness/Schema.ts
DELETED
package/src/Witness/Witness.ts
DELETED
|
@@ -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
|
-
}
|
package/src/Witness/index.ts
DELETED
|
@@ -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
package/src/lib/checkIpfsUrl.ts
DELETED
|
@@ -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'
|