@xyo-network/api-call-witness 2.86.5 → 2.87.0-rc.1

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.
@@ -1,5 +1,5 @@
1
1
  import { Hash } from '@xylabs/hex';
2
- import { JsonArray, JsonObject } from '@xyo-network/object';
2
+ import { JsonArray, JsonObject } from '@xylabs/object';
3
3
  import { Payload } from '@xyo-network/payload-model';
4
4
  export declare const ApiCallSchema = "network.xyo.api.call";
5
5
  export type ApiCallSchema = typeof ApiCallSchema;
@@ -22,12 +22,12 @@ export declare const asApiUriCall: {
22
22
  uri: string;
23
23
  } & {
24
24
  schema: "network.xyo.api.call";
25
- }>(value: unknown, config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType | undefined;
25
+ }>(value: unknown, config?: import("@xylabs/object").TypeCheckConfig | undefined): TType | undefined;
26
26
  <TType_1 extends import("@xyo-network/payload-model").SchemaFields & object & ApiCallFields & {
27
27
  uri: string;
28
28
  } & {
29
29
  schema: "network.xyo.api.call";
30
- }>(value: unknown, assert: string | (() => string), config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType_1;
30
+ }>(value: unknown, assert: string | (() => string), config?: import("@xylabs/object").TypeCheckConfig | undefined): TType_1;
31
31
  };
32
32
  export type ApiUriTemplateCall = Payload<ApiCallFields & {
33
33
  params?: Record<string, unknown>;
@@ -45,21 +45,21 @@ export declare const asApiUriTemplateCall: {
45
45
  uriTemplate?: string | undefined;
46
46
  } & {
47
47
  schema: "network.xyo.api.call";
48
- }>(value: unknown, config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType | undefined;
48
+ }>(value: unknown, config?: import("@xylabs/object").TypeCheckConfig | undefined): TType | undefined;
49
49
  <TType_1 extends import("@xyo-network/payload-model").SchemaFields & object & ApiCallFields & {
50
50
  params?: Record<string, unknown> | undefined;
51
51
  uriTemplate?: string | undefined;
52
52
  } & {
53
53
  schema: "network.xyo.api.call";
54
- }>(value: unknown, assert: string | (() => string), config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType_1;
54
+ }>(value: unknown, assert: string | (() => string), config?: import("@xylabs/object").TypeCheckConfig | undefined): TType_1;
55
55
  };
56
56
  export type ApiCall = ApiUriCall | ApiUriTemplateCall;
57
57
  export declare const ApiCallResultSchema = "network.xyo.api.call.result";
58
58
  export type ApiCallResultSchema = typeof ApiCallResultSchema;
59
59
  export declare const isApiCall: (x?: unknown) => x is ApiCall;
60
60
  export declare const asApiCall: {
61
- <TType extends ApiCall>(value: unknown, config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType | undefined;
62
- <TType_1 extends ApiCall>(value: unknown, assert: string | (() => string), config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType_1;
61
+ <TType extends ApiCall>(value: unknown, config?: import("@xylabs/object").TypeCheckConfig | undefined): TType | undefined;
62
+ <TType_1 extends ApiCall>(value: unknown, assert: string | (() => string), config?: import("@xylabs/object").TypeCheckConfig | undefined): TType_1;
63
63
  };
64
64
  export interface HttpMeta {
65
65
  code?: string;
@@ -85,14 +85,14 @@ export declare const asApiCallJsonResult: {
85
85
  data: ApiCallJsonResultType;
86
86
  } & {
87
87
  schema: "network.xyo.api.call.result";
88
- }>(value: unknown, config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType | undefined;
88
+ }>(value: unknown, config?: import("@xylabs/object").TypeCheckConfig | undefined): TType | undefined;
89
89
  <TType_1 extends import("@xyo-network/payload-model").SchemaFields & object & {
90
90
  call: Hash;
91
91
  contentType: 'application/json';
92
92
  data: ApiCallJsonResultType;
93
93
  } & {
94
94
  schema: "network.xyo.api.call.result";
95
- }>(value: unknown, assert: string | (() => string), config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType_1;
95
+ }>(value: unknown, assert: string | (() => string), config?: import("@xylabs/object").TypeCheckConfig | undefined): TType_1;
96
96
  };
97
97
  export type ApiCallBase64Result = Payload<{
98
98
  call: Hash;
@@ -106,7 +106,7 @@ export type ApiCallErrorResult = Payload<{
106
106
  export type ApiCallResult<TJson extends JsonArray | JsonObject = JsonArray | JsonObject> = ApiCallBase64Result | ApiCallJsonResult<TJson> | ApiCallErrorResult;
107
107
  export declare const isApiCallResult: (x?: unknown) => x is ApiCallResult<JsonArray | JsonObject>;
108
108
  export declare const asApiCallResult: {
109
- <TType extends ApiCallResult<JsonArray | JsonObject>>(value: unknown, config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType | undefined;
110
- <TType_1 extends ApiCallResult<JsonArray | JsonObject>>(value: unknown, assert: string | (() => string), config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType_1;
109
+ <TType extends ApiCallResult<JsonArray | JsonObject>>(value: unknown, config?: import("@xylabs/object").TypeCheckConfig | undefined): TType | undefined;
110
+ <TType_1 extends ApiCallResult<JsonArray | JsonObject>>(value: unknown, assert: string | (() => string), config?: import("@xylabs/object").TypeCheckConfig | undefined): TType_1;
111
111
  };
112
112
  //# sourceMappingURL=Payload.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Payload.d.ts","sourceRoot":"","sources":["../../src/Payload.ts"],"names":[],"mappings":"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"}
@@ -54,7 +54,7 @@ __export(src_exports, {
54
54
  module.exports = __toCommonJS(src_exports);
55
55
 
56
56
  // src/Config.ts
57
- var import_object = require("@xyo-network/object");
57
+ var import_object = require("@xylabs/object");
58
58
  var import_payload_model = require("@xyo-network/payload-model");
59
59
  var ApiCallWitnessConfigSchema = "network.xyo.api.call.witness.config";
60
60
  var isApiCallWitnessConfig = (0, import_payload_model.isPayloadOfSchemaType)(ApiCallWitnessConfigSchema);
@@ -65,7 +65,7 @@ var isApiUriTemplateCallWitnessConfig = (value) => isApiCallWitnessConfig(value)
65
65
  var asApiUriTemplateCallWitnessConfig = import_object.AsObjectFactory.create(isApiUriTemplateCallWitnessConfig);
66
66
 
67
67
  // src/Payload.ts
68
- var import_object2 = require("@xyo-network/object");
68
+ var import_object2 = require("@xylabs/object");
69
69
  var import_payload_model2 = require("@xyo-network/payload-model");
70
70
  var ApiCallSchema = "network.xyo.api.call";
71
71
  var isApiUriCall = (value) => isApiCall(value) && !!value.uri;
@@ -174,7 +174,7 @@ var ApiCallWitness = class extends import_abstract_witness.AbstractWitness {
174
174
  return this.httpGet(validatedUri, uri);
175
175
  }
176
176
  const observation = {
177
- call: await import_hash.PayloadHasher.hashAsync(call),
177
+ call: await import_hash.PayloadHasher.hash(call),
178
178
  schema: ApiCallResultSchema
179
179
  };
180
180
  return observation;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Config.ts","../../src/Payload.ts","../../src/Witness.ts","../../src/lib/checkIpfsUrl.ts"],"sourcesContent":["export * from './Config'\nexport * from './Payload'\nexport * from './Witness'\n","import { AsObjectFactory } from '@xyo-network/object'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport { WitnessConfig } from '@xyo-network/witness-model'\n\nimport { ApiCall, ApiUriCall, ApiUriTemplateCall } from './Payload'\n\nexport const ApiCallWitnessConfigSchema = 'network.xyo.api.call.witness.config'\nexport type ApiCallWitnessConfigSchema = typeof ApiCallWitnessConfigSchema\n\nexport type ApiCallWitnessConfigBase = WitnessConfig<{\n accept?: 'application/json'\n queries?: ApiCall['queries']\n schema: ApiCallWitnessConfigSchema\n timeout?: number\n verb?: ApiCall['verb']\n}>\n\nexport type ApiUriCallWitnessConfig = WitnessConfig<\n ApiCallWitnessConfigBase & {\n uri: ApiUriCall['uri']\n }\n>\n\nexport type ApiUriTemplateCallWitnessConfig = WitnessConfig<\n ApiCallWitnessConfigBase & {\n params?: Record<string, unknown>\n uriTemplate: ApiUriTemplateCall['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 { Hash } from '@xylabs/hex'\nimport { AsObjectFactory, JsonArray, JsonObject } from '@xyo-network/object'\nimport { isPayloadOfSchemaType, Payload } from '@xyo-network/payload-model'\n\nexport const ApiCallSchema = 'network.xyo.api.call'\nexport type ApiCallSchema = typeof ApiCallSchema\n\nexport type Verb = 'get' | 'post'\nexport type Queries = Record<string, string>\n\nexport interface ApiCallFields {\n queries?: Queries\n verb?: Verb\n}\n\nexport type ApiUriCall = Payload<\n ApiCallFields & {\n uri: string\n },\n ApiCallSchema\n>\nexport const isApiUriCall = (value?: unknown): value is ApiUriCall => isApiCall(value) && !!(value as ApiUriCall).uri\nexport const asApiUriCall = AsObjectFactory.create(isApiUriCall)\n\nexport type ApiUriTemplateCall = Payload<\n ApiCallFields & {\n params?: Record<string, unknown>\n uriTemplate?: string\n },\n ApiCallSchema\n>\nexport const isApiUriTemplateCall = (value?: unknown): value is ApiUriTemplateCall =>\n isApiCall(value) && !!((value as ApiUriTemplateCall).uriTemplate || (value as ApiUriTemplateCall).params)\nexport const asApiUriTemplateCall = AsObjectFactory.create(isApiUriTemplateCall)\n\nexport type ApiCall = ApiUriCall | ApiUriTemplateCall\n\nexport const ApiCallResultSchema = 'network.xyo.api.call.result'\nexport type ApiCallResultSchema = typeof ApiCallResultSchema\n\nexport const isApiCall = isPayloadOfSchemaType<ApiCall>(ApiCallSchema)\nexport const asApiCall = AsObjectFactory.create(isApiCall)\n\nexport interface HttpMeta {\n code?: string\n status?: number\n}\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(ApiCallResultSchema)(x) && (x as ApiCallJsonResult)?.contentType === 'application/json'\n}\nexport const asApiCallJsonResult = AsObjectFactory.create(isApiCallJsonResult)\n\nexport type ApiCallBase64Result = Payload<\n {\n call: Hash\n contentType: Exclude<string, ApiCallJsonResult['contentType']>\n data: string\n },\n ApiCallResultSchema\n>\n\nexport type ApiCallErrorResult = Payload<\n {\n call: Hash\n http?: HttpMeta\n },\n ApiCallResultSchema\n>\n\nexport type ApiCallResult<TJson extends JsonArray | JsonObject = JsonArray | JsonObject> =\n | ApiCallBase64Result\n | ApiCallJsonResult<TJson>\n | ApiCallErrorResult\n\nexport const isApiCallResult = isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema)\nexport const asApiCallResult = AsObjectFactory.create(isApiCallResult)\n","import { assertEx } from '@xylabs/assert'\nimport { Axios, AxiosError, AxiosJson } from '@xylabs/axios'\nimport { Hash } from '@xylabs/hex'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { fromByteArray } from 'base64-js'\nimport template from 'es6-template-strings'\n\nimport { ApiCallWitnessConfig, ApiCallWitnessConfigSchema, asApiUriCallWitnessConfig, asApiUriTemplateCallWitnessConfig } from './Config'\nimport { checkIpfsUrl } from './lib'\nimport {\n ApiCall,\n ApiCallBase64Result,\n ApiCallErrorResult,\n ApiCallJsonResult,\n ApiCallJsonResultType,\n ApiCallResult,\n ApiCallResultSchema,\n ApiCallSchema,\n asApiUriCall,\n asApiUriTemplateCall,\n} from './Payload'\n\nexport type ApiCallWitnessParams = WitnessParams<\n ApiCallWitnessConfig,\n {\n headers?: Record<string, string | undefined>\n ipfsGateway?: string\n }\n>\n\nexport class ApiCallWitness<TParams extends ApiCallWitnessParams = ApiCallWitnessParams> extends AbstractWitness<TParams, ApiCall, ApiCallResult> {\n static override configSchemas = [ApiCallWitnessConfigSchema]\n\n get accept() {\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?: ApiCall): string {\n const { uri: callUri } = asApiUriCall(call) ?? {}\n const { uriTemplate: callUriTemplate, params: callParams, queries: callQueries } = asApiUriTemplateCall(call) ?? {}\n const { uri: configUri } = asApiUriCallWitnessConfig(this.config) ?? {}\n const { uriTemplate: configUriTemplate, params: configParams, queries: configQueries } = 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(template(callUriTemplate, params))\n } else if (configUri) {\n url = new URL(configUri)\n } else if (configUriTemplate) {\n url = new URL(template(configUriTemplate, params))\n }\n\n if (url) {\n const queries = Object.entries({ ...configQueries, ...callQueries })\n queries.map(([key, value]) => 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 protected override async observeHandler(inPayloads: ApiCall[] = []): Promise<ApiCallResult[]> {\n await this.started('throw')\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType(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, uri)\n }\n\n const observation: ApiCallResult = {\n call: await PayloadHasher.hashAsync(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 private async httpGet(url: string, call: Hash): 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 AxiosJson({ headers: this.params.headers, 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 = {\n status: response.status,\n }\n }\n break\n }\n default: {\n const axios = new Axios({ headers: this.params.headers, responseType: 'arraybuffer', timeout: this.timeout })\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(Buffer.from(response.data, 'binary'))\n jsonResult.contentType = response.headers['content-type']?.toString() ?? 'application/octet-stream'\n } else {\n const errorResult = result as ApiCallErrorResult\n errorResult.http = {\n status: response.status,\n }\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'\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":["import_object","import_payload_model","import_assert","import_payload_model","template"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Config.ts","../../src/Payload.ts","../../src/Witness.ts","../../src/lib/checkIpfsUrl.ts"],"sourcesContent":["export * from './Config'\nexport * from './Payload'\nexport * from './Witness'\n","import { AsObjectFactory } from '@xylabs/object'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport { WitnessConfig } from '@xyo-network/witness-model'\n\nimport { ApiCall, ApiUriCall, ApiUriTemplateCall } from './Payload'\n\nexport const ApiCallWitnessConfigSchema = 'network.xyo.api.call.witness.config'\nexport type ApiCallWitnessConfigSchema = typeof ApiCallWitnessConfigSchema\n\nexport type ApiCallWitnessConfigBase = WitnessConfig<{\n accept?: 'application/json'\n queries?: ApiCall['queries']\n schema: ApiCallWitnessConfigSchema\n timeout?: number\n verb?: ApiCall['verb']\n}>\n\nexport type ApiUriCallWitnessConfig = WitnessConfig<\n ApiCallWitnessConfigBase & {\n uri: ApiUriCall['uri']\n }\n>\n\nexport type ApiUriTemplateCallWitnessConfig = WitnessConfig<\n ApiCallWitnessConfigBase & {\n params?: Record<string, unknown>\n uriTemplate: ApiUriTemplateCall['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 { Hash } from '@xylabs/hex'\nimport { AsObjectFactory, JsonArray, JsonObject } from '@xylabs/object'\nimport { isPayloadOfSchemaType, Payload } from '@xyo-network/payload-model'\n\nexport const ApiCallSchema = 'network.xyo.api.call'\nexport type ApiCallSchema = typeof ApiCallSchema\n\nexport type Verb = 'get' | 'post'\nexport type Queries = Record<string, string>\n\nexport interface ApiCallFields {\n queries?: Queries\n verb?: Verb\n}\n\nexport type ApiUriCall = Payload<\n ApiCallFields & {\n uri: string\n },\n ApiCallSchema\n>\nexport const isApiUriCall = (value?: unknown): value is ApiUriCall => isApiCall(value) && !!(value as ApiUriCall).uri\nexport const asApiUriCall = AsObjectFactory.create(isApiUriCall)\n\nexport type ApiUriTemplateCall = Payload<\n ApiCallFields & {\n params?: Record<string, unknown>\n uriTemplate?: string\n },\n ApiCallSchema\n>\nexport const isApiUriTemplateCall = (value?: unknown): value is ApiUriTemplateCall =>\n isApiCall(value) && !!((value as ApiUriTemplateCall).uriTemplate || (value as ApiUriTemplateCall).params)\nexport const asApiUriTemplateCall = AsObjectFactory.create(isApiUriTemplateCall)\n\nexport type ApiCall = ApiUriCall | ApiUriTemplateCall\n\nexport const ApiCallResultSchema = 'network.xyo.api.call.result'\nexport type ApiCallResultSchema = typeof ApiCallResultSchema\n\nexport const isApiCall = isPayloadOfSchemaType<ApiCall>(ApiCallSchema)\nexport const asApiCall = AsObjectFactory.create(isApiCall)\n\nexport interface HttpMeta {\n code?: string\n status?: number\n}\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(ApiCallResultSchema)(x) && (x as ApiCallJsonResult)?.contentType === 'application/json'\n}\nexport const asApiCallJsonResult = AsObjectFactory.create(isApiCallJsonResult)\n\nexport type ApiCallBase64Result = Payload<\n {\n call: Hash\n contentType: Exclude<string, ApiCallJsonResult['contentType']>\n data: string\n },\n ApiCallResultSchema\n>\n\nexport type ApiCallErrorResult = Payload<\n {\n call: Hash\n http?: HttpMeta\n },\n ApiCallResultSchema\n>\n\nexport type ApiCallResult<TJson extends JsonArray | JsonObject = JsonArray | JsonObject> =\n | ApiCallBase64Result\n | ApiCallJsonResult<TJson>\n | ApiCallErrorResult\n\nexport const isApiCallResult = isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema)\nexport const asApiCallResult = AsObjectFactory.create(isApiCallResult)\n","import { assertEx } from '@xylabs/assert'\nimport { Axios, AxiosError, AxiosJson } from '@xylabs/axios'\nimport { Hash } from '@xylabs/hex'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { fromByteArray } from 'base64-js'\nimport template from 'es6-template-strings'\n\nimport { ApiCallWitnessConfig, ApiCallWitnessConfigSchema, asApiUriCallWitnessConfig, asApiUriTemplateCallWitnessConfig } from './Config'\nimport { checkIpfsUrl } from './lib'\nimport {\n ApiCall,\n ApiCallBase64Result,\n ApiCallErrorResult,\n ApiCallJsonResult,\n ApiCallJsonResultType,\n ApiCallResult,\n ApiCallResultSchema,\n ApiCallSchema,\n asApiUriCall,\n asApiUriTemplateCall,\n} from './Payload'\n\nexport type ApiCallWitnessParams = WitnessParams<\n ApiCallWitnessConfig,\n {\n headers?: Record<string, string | undefined>\n ipfsGateway?: string\n }\n>\n\nexport class ApiCallWitness<TParams extends ApiCallWitnessParams = ApiCallWitnessParams> extends AbstractWitness<TParams, ApiCall, ApiCallResult> {\n static override configSchemas = [ApiCallWitnessConfigSchema]\n\n get accept() {\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?: ApiCall): string {\n const { uri: callUri } = asApiUriCall(call) ?? {}\n const { uriTemplate: callUriTemplate, params: callParams, queries: callQueries } = asApiUriTemplateCall(call) ?? {}\n const { uri: configUri } = asApiUriCallWitnessConfig(this.config) ?? {}\n const { uriTemplate: configUriTemplate, params: configParams, queries: configQueries } = 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(template(callUriTemplate, params))\n } else if (configUri) {\n url = new URL(configUri)\n } else if (configUriTemplate) {\n url = new URL(template(configUriTemplate, params))\n }\n\n if (url) {\n const queries = Object.entries({ ...configQueries, ...callQueries })\n queries.map(([key, value]) => 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 protected override async observeHandler(inPayloads: ApiCall[] = []): Promise<ApiCallResult[]> {\n await this.started('throw')\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType(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, uri)\n }\n\n const observation: ApiCallResult = {\n call: await PayloadHasher.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 private async httpGet(url: string, call: Hash): 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 AxiosJson({ headers: this.params.headers, 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 = {\n status: response.status,\n }\n }\n break\n }\n default: {\n const axios = new Axios({ headers: this.params.headers, responseType: 'arraybuffer', timeout: this.timeout })\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(Buffer.from(response.data, 'binary'))\n jsonResult.contentType = response.headers['content-type']?.toString() ?? 'application/octet-stream'\n } else {\n const errorResult = result as ApiCallErrorResult\n errorResult.http = {\n status: response.status,\n }\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'\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":["import_object","import_payload_model","import_assert","import_payload_model","template"]}
@@ -1,5 +1,5 @@
1
1
  // src/Config.ts
2
- import { AsObjectFactory } from "@xyo-network/object";
2
+ import { AsObjectFactory } from "@xylabs/object";
3
3
  import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
4
4
  var ApiCallWitnessConfigSchema = "network.xyo.api.call.witness.config";
5
5
  var isApiCallWitnessConfig = isPayloadOfSchemaType(ApiCallWitnessConfigSchema);
@@ -10,7 +10,7 @@ var isApiUriTemplateCallWitnessConfig = (value) => isApiCallWitnessConfig(value)
10
10
  var asApiUriTemplateCallWitnessConfig = AsObjectFactory.create(isApiUriTemplateCallWitnessConfig);
11
11
 
12
12
  // src/Payload.ts
13
- import { AsObjectFactory as AsObjectFactory2 } from "@xyo-network/object";
13
+ import { AsObjectFactory as AsObjectFactory2 } from "@xylabs/object";
14
14
  import { isPayloadOfSchemaType as isPayloadOfSchemaType2 } from "@xyo-network/payload-model";
15
15
  var ApiCallSchema = "network.xyo.api.call";
16
16
  var isApiUriCall = (value) => isApiCall(value) && !!value.uri;
@@ -119,7 +119,7 @@ var ApiCallWitness = class extends AbstractWitness {
119
119
  return this.httpGet(validatedUri, uri);
120
120
  }
121
121
  const observation = {
122
- call: await PayloadHasher.hashAsync(call),
122
+ call: await PayloadHasher.hash(call),
123
123
  schema: ApiCallResultSchema
124
124
  };
125
125
  return observation;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Config.ts","../../src/Payload.ts","../../src/Witness.ts","../../src/lib/checkIpfsUrl.ts"],"sourcesContent":["import { AsObjectFactory } from '@xyo-network/object'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport { WitnessConfig } from '@xyo-network/witness-model'\n\nimport { ApiCall, ApiUriCall, ApiUriTemplateCall } from './Payload'\n\nexport const ApiCallWitnessConfigSchema = 'network.xyo.api.call.witness.config'\nexport type ApiCallWitnessConfigSchema = typeof ApiCallWitnessConfigSchema\n\nexport type ApiCallWitnessConfigBase = WitnessConfig<{\n accept?: 'application/json'\n queries?: ApiCall['queries']\n schema: ApiCallWitnessConfigSchema\n timeout?: number\n verb?: ApiCall['verb']\n}>\n\nexport type ApiUriCallWitnessConfig = WitnessConfig<\n ApiCallWitnessConfigBase & {\n uri: ApiUriCall['uri']\n }\n>\n\nexport type ApiUriTemplateCallWitnessConfig = WitnessConfig<\n ApiCallWitnessConfigBase & {\n params?: Record<string, unknown>\n uriTemplate: ApiUriTemplateCall['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 { Hash } from '@xylabs/hex'\nimport { AsObjectFactory, JsonArray, JsonObject } from '@xyo-network/object'\nimport { isPayloadOfSchemaType, Payload } from '@xyo-network/payload-model'\n\nexport const ApiCallSchema = 'network.xyo.api.call'\nexport type ApiCallSchema = typeof ApiCallSchema\n\nexport type Verb = 'get' | 'post'\nexport type Queries = Record<string, string>\n\nexport interface ApiCallFields {\n queries?: Queries\n verb?: Verb\n}\n\nexport type ApiUriCall = Payload<\n ApiCallFields & {\n uri: string\n },\n ApiCallSchema\n>\nexport const isApiUriCall = (value?: unknown): value is ApiUriCall => isApiCall(value) && !!(value as ApiUriCall).uri\nexport const asApiUriCall = AsObjectFactory.create(isApiUriCall)\n\nexport type ApiUriTemplateCall = Payload<\n ApiCallFields & {\n params?: Record<string, unknown>\n uriTemplate?: string\n },\n ApiCallSchema\n>\nexport const isApiUriTemplateCall = (value?: unknown): value is ApiUriTemplateCall =>\n isApiCall(value) && !!((value as ApiUriTemplateCall).uriTemplate || (value as ApiUriTemplateCall).params)\nexport const asApiUriTemplateCall = AsObjectFactory.create(isApiUriTemplateCall)\n\nexport type ApiCall = ApiUriCall | ApiUriTemplateCall\n\nexport const ApiCallResultSchema = 'network.xyo.api.call.result'\nexport type ApiCallResultSchema = typeof ApiCallResultSchema\n\nexport const isApiCall = isPayloadOfSchemaType<ApiCall>(ApiCallSchema)\nexport const asApiCall = AsObjectFactory.create(isApiCall)\n\nexport interface HttpMeta {\n code?: string\n status?: number\n}\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(ApiCallResultSchema)(x) && (x as ApiCallJsonResult)?.contentType === 'application/json'\n}\nexport const asApiCallJsonResult = AsObjectFactory.create(isApiCallJsonResult)\n\nexport type ApiCallBase64Result = Payload<\n {\n call: Hash\n contentType: Exclude<string, ApiCallJsonResult['contentType']>\n data: string\n },\n ApiCallResultSchema\n>\n\nexport type ApiCallErrorResult = Payload<\n {\n call: Hash\n http?: HttpMeta\n },\n ApiCallResultSchema\n>\n\nexport type ApiCallResult<TJson extends JsonArray | JsonObject = JsonArray | JsonObject> =\n | ApiCallBase64Result\n | ApiCallJsonResult<TJson>\n | ApiCallErrorResult\n\nexport const isApiCallResult = isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema)\nexport const asApiCallResult = AsObjectFactory.create(isApiCallResult)\n","import { assertEx } from '@xylabs/assert'\nimport { Axios, AxiosError, AxiosJson } from '@xylabs/axios'\nimport { Hash } from '@xylabs/hex'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { fromByteArray } from 'base64-js'\nimport template from 'es6-template-strings'\n\nimport { ApiCallWitnessConfig, ApiCallWitnessConfigSchema, asApiUriCallWitnessConfig, asApiUriTemplateCallWitnessConfig } from './Config'\nimport { checkIpfsUrl } from './lib'\nimport {\n ApiCall,\n ApiCallBase64Result,\n ApiCallErrorResult,\n ApiCallJsonResult,\n ApiCallJsonResultType,\n ApiCallResult,\n ApiCallResultSchema,\n ApiCallSchema,\n asApiUriCall,\n asApiUriTemplateCall,\n} from './Payload'\n\nexport type ApiCallWitnessParams = WitnessParams<\n ApiCallWitnessConfig,\n {\n headers?: Record<string, string | undefined>\n ipfsGateway?: string\n }\n>\n\nexport class ApiCallWitness<TParams extends ApiCallWitnessParams = ApiCallWitnessParams> extends AbstractWitness<TParams, ApiCall, ApiCallResult> {\n static override configSchemas = [ApiCallWitnessConfigSchema]\n\n get accept() {\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?: ApiCall): string {\n const { uri: callUri } = asApiUriCall(call) ?? {}\n const { uriTemplate: callUriTemplate, params: callParams, queries: callQueries } = asApiUriTemplateCall(call) ?? {}\n const { uri: configUri } = asApiUriCallWitnessConfig(this.config) ?? {}\n const { uriTemplate: configUriTemplate, params: configParams, queries: configQueries } = 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(template(callUriTemplate, params))\n } else if (configUri) {\n url = new URL(configUri)\n } else if (configUriTemplate) {\n url = new URL(template(configUriTemplate, params))\n }\n\n if (url) {\n const queries = Object.entries({ ...configQueries, ...callQueries })\n queries.map(([key, value]) => 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 protected override async observeHandler(inPayloads: ApiCall[] = []): Promise<ApiCallResult[]> {\n await this.started('throw')\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType(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, uri)\n }\n\n const observation: ApiCallResult = {\n call: await PayloadHasher.hashAsync(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 private async httpGet(url: string, call: Hash): 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 AxiosJson({ headers: this.params.headers, 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 = {\n status: response.status,\n }\n }\n break\n }\n default: {\n const axios = new Axios({ headers: this.params.headers, responseType: 'arraybuffer', timeout: this.timeout })\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(Buffer.from(response.data, 'binary'))\n jsonResult.contentType = response.headers['content-type']?.toString() ?? 'application/octet-stream'\n } else {\n const errorResult = result as ApiCallErrorResult\n errorResult.http = {\n status: response.status,\n }\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'\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","assertEx","isPayloadOfSchemaType","isPayloadOfSchemaType","assertEx"]}
1
+ {"version":3,"sources":["../../src/Config.ts","../../src/Payload.ts","../../src/Witness.ts","../../src/lib/checkIpfsUrl.ts"],"sourcesContent":["import { AsObjectFactory } from '@xylabs/object'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport { WitnessConfig } from '@xyo-network/witness-model'\n\nimport { ApiCall, ApiUriCall, ApiUriTemplateCall } from './Payload'\n\nexport const ApiCallWitnessConfigSchema = 'network.xyo.api.call.witness.config'\nexport type ApiCallWitnessConfigSchema = typeof ApiCallWitnessConfigSchema\n\nexport type ApiCallWitnessConfigBase = WitnessConfig<{\n accept?: 'application/json'\n queries?: ApiCall['queries']\n schema: ApiCallWitnessConfigSchema\n timeout?: number\n verb?: ApiCall['verb']\n}>\n\nexport type ApiUriCallWitnessConfig = WitnessConfig<\n ApiCallWitnessConfigBase & {\n uri: ApiUriCall['uri']\n }\n>\n\nexport type ApiUriTemplateCallWitnessConfig = WitnessConfig<\n ApiCallWitnessConfigBase & {\n params?: Record<string, unknown>\n uriTemplate: ApiUriTemplateCall['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 { Hash } from '@xylabs/hex'\nimport { AsObjectFactory, JsonArray, JsonObject } from '@xylabs/object'\nimport { isPayloadOfSchemaType, Payload } from '@xyo-network/payload-model'\n\nexport const ApiCallSchema = 'network.xyo.api.call'\nexport type ApiCallSchema = typeof ApiCallSchema\n\nexport type Verb = 'get' | 'post'\nexport type Queries = Record<string, string>\n\nexport interface ApiCallFields {\n queries?: Queries\n verb?: Verb\n}\n\nexport type ApiUriCall = Payload<\n ApiCallFields & {\n uri: string\n },\n ApiCallSchema\n>\nexport const isApiUriCall = (value?: unknown): value is ApiUriCall => isApiCall(value) && !!(value as ApiUriCall).uri\nexport const asApiUriCall = AsObjectFactory.create(isApiUriCall)\n\nexport type ApiUriTemplateCall = Payload<\n ApiCallFields & {\n params?: Record<string, unknown>\n uriTemplate?: string\n },\n ApiCallSchema\n>\nexport const isApiUriTemplateCall = (value?: unknown): value is ApiUriTemplateCall =>\n isApiCall(value) && !!((value as ApiUriTemplateCall).uriTemplate || (value as ApiUriTemplateCall).params)\nexport const asApiUriTemplateCall = AsObjectFactory.create(isApiUriTemplateCall)\n\nexport type ApiCall = ApiUriCall | ApiUriTemplateCall\n\nexport const ApiCallResultSchema = 'network.xyo.api.call.result'\nexport type ApiCallResultSchema = typeof ApiCallResultSchema\n\nexport const isApiCall = isPayloadOfSchemaType<ApiCall>(ApiCallSchema)\nexport const asApiCall = AsObjectFactory.create(isApiCall)\n\nexport interface HttpMeta {\n code?: string\n status?: number\n}\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(ApiCallResultSchema)(x) && (x as ApiCallJsonResult)?.contentType === 'application/json'\n}\nexport const asApiCallJsonResult = AsObjectFactory.create(isApiCallJsonResult)\n\nexport type ApiCallBase64Result = Payload<\n {\n call: Hash\n contentType: Exclude<string, ApiCallJsonResult['contentType']>\n data: string\n },\n ApiCallResultSchema\n>\n\nexport type ApiCallErrorResult = Payload<\n {\n call: Hash\n http?: HttpMeta\n },\n ApiCallResultSchema\n>\n\nexport type ApiCallResult<TJson extends JsonArray | JsonObject = JsonArray | JsonObject> =\n | ApiCallBase64Result\n | ApiCallJsonResult<TJson>\n | ApiCallErrorResult\n\nexport const isApiCallResult = isPayloadOfSchemaType<ApiCallResult>(ApiCallResultSchema)\nexport const asApiCallResult = AsObjectFactory.create(isApiCallResult)\n","import { assertEx } from '@xylabs/assert'\nimport { Axios, AxiosError, AxiosJson } from '@xylabs/axios'\nimport { Hash } from '@xylabs/hex'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport { PayloadHasher } from '@xyo-network/hash'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { fromByteArray } from 'base64-js'\nimport template from 'es6-template-strings'\n\nimport { ApiCallWitnessConfig, ApiCallWitnessConfigSchema, asApiUriCallWitnessConfig, asApiUriTemplateCallWitnessConfig } from './Config'\nimport { checkIpfsUrl } from './lib'\nimport {\n ApiCall,\n ApiCallBase64Result,\n ApiCallErrorResult,\n ApiCallJsonResult,\n ApiCallJsonResultType,\n ApiCallResult,\n ApiCallResultSchema,\n ApiCallSchema,\n asApiUriCall,\n asApiUriTemplateCall,\n} from './Payload'\n\nexport type ApiCallWitnessParams = WitnessParams<\n ApiCallWitnessConfig,\n {\n headers?: Record<string, string | undefined>\n ipfsGateway?: string\n }\n>\n\nexport class ApiCallWitness<TParams extends ApiCallWitnessParams = ApiCallWitnessParams> extends AbstractWitness<TParams, ApiCall, ApiCallResult> {\n static override configSchemas = [ApiCallWitnessConfigSchema]\n\n get accept() {\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?: ApiCall): string {\n const { uri: callUri } = asApiUriCall(call) ?? {}\n const { uriTemplate: callUriTemplate, params: callParams, queries: callQueries } = asApiUriTemplateCall(call) ?? {}\n const { uri: configUri } = asApiUriCallWitnessConfig(this.config) ?? {}\n const { uriTemplate: configUriTemplate, params: configParams, queries: configQueries } = 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(template(callUriTemplate, params))\n } else if (configUri) {\n url = new URL(configUri)\n } else if (configUriTemplate) {\n url = new URL(template(configUriTemplate, params))\n }\n\n if (url) {\n const queries = Object.entries({ ...configQueries, ...callQueries })\n queries.map(([key, value]) => 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 protected override async observeHandler(inPayloads: ApiCall[] = []): Promise<ApiCallResult[]> {\n await this.started('throw')\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType(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, uri)\n }\n\n const observation: ApiCallResult = {\n call: await PayloadHasher.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 private async httpGet(url: string, call: Hash): 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 AxiosJson({ headers: this.params.headers, 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 = {\n status: response.status,\n }\n }\n break\n }\n default: {\n const axios = new Axios({ headers: this.params.headers, responseType: 'arraybuffer', timeout: this.timeout })\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(Buffer.from(response.data, 'binary'))\n jsonResult.contentType = response.headers['content-type']?.toString() ?? 'application/octet-stream'\n } else {\n const errorResult = result as ApiCallErrorResult\n errorResult.http = {\n status: response.status,\n }\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'\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","assertEx","isPayloadOfSchemaType","isPayloadOfSchemaType","assertEx"]}
@@ -19,8 +19,8 @@ export type ApiUriTemplateCallWitnessConfig = WitnessConfig<ApiCallWitnessConfig
19
19
  export type ApiCallWitnessConfig = ApiUriCallWitnessConfig | ApiUriTemplateCallWitnessConfig | ApiCallWitnessConfigBase;
20
20
  export declare const isApiCallWitnessConfig: (x?: unknown) => x is ApiCallWitnessConfig;
21
21
  export declare const asApiCallWitnessConfig: {
22
- <TType extends ApiCallWitnessConfig>(value: unknown, config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType | undefined;
23
- <TType_1 extends ApiCallWitnessConfig>(value: unknown, assert: string | (() => string), config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType_1;
22
+ <TType extends ApiCallWitnessConfig>(value: unknown, config?: import("@xylabs/object").TypeCheckConfig | undefined): TType | undefined;
23
+ <TType_1 extends ApiCallWitnessConfig>(value: unknown, assert: string | (() => string), config?: import("@xylabs/object").TypeCheckConfig | undefined): TType_1;
24
24
  };
25
25
  export declare const isApiUriCallWitnessConfig: (value?: unknown) => value is import("@xyo-network/payload-model").SchemaFields & object & {
26
26
  readonly archivist?: string | undefined;
@@ -29,6 +29,7 @@ export declare const isApiUriCallWitnessConfig: (value?: unknown) => value is im
29
29
  readonly paging?: Record<string, {
30
30
  size?: number | undefined;
31
31
  }> | undefined;
32
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
32
33
  schema: "network.xyo.api.call.witness.config";
33
34
  readonly security?: {
34
35
  readonly allowAnonymous?: boolean | undefined;
@@ -47,6 +48,7 @@ export declare const isApiUriCallWitnessConfig: (value?: unknown) => value is im
47
48
  readonly paging?: Record<string, {
48
49
  size?: number | undefined;
49
50
  }> | undefined;
51
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
50
52
  schema: "network.xyo.api.call.witness.config";
51
53
  readonly security?: {
52
54
  readonly allowAnonymous?: boolean | undefined;
@@ -75,6 +77,7 @@ export declare const asApiUriCallWitnessConfig: {
75
77
  readonly paging?: Record<string, {
76
78
  size?: number | undefined;
77
79
  }> | undefined;
80
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
78
81
  schema: "network.xyo.api.call.witness.config";
79
82
  readonly security?: {
80
83
  readonly allowAnonymous?: boolean | undefined;
@@ -93,6 +96,7 @@ export declare const asApiUriCallWitnessConfig: {
93
96
  readonly paging?: Record<string, {
94
97
  size?: number | undefined;
95
98
  }> | undefined;
99
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
96
100
  schema: "network.xyo.api.call.witness.config";
97
101
  readonly security?: {
98
102
  readonly allowAnonymous?: boolean | undefined;
@@ -112,7 +116,7 @@ export declare const asApiUriCallWitnessConfig: {
112
116
  verb?: ApiCall['verb'];
113
117
  } & {
114
118
  uri: ApiUriCall['uri'];
115
- }>(value: unknown, config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType | undefined;
119
+ }>(value: unknown, config?: import("@xylabs/object").TypeCheckConfig | undefined): TType | undefined;
116
120
  <TType_1 extends import("@xyo-network/payload-model").SchemaFields & object & {
117
121
  readonly archivist?: string | undefined;
118
122
  readonly labels?: import("@xyo-network/module-model").Labels | undefined;
@@ -120,6 +124,7 @@ export declare const asApiUriCallWitnessConfig: {
120
124
  readonly paging?: Record<string, {
121
125
  size?: number | undefined;
122
126
  }> | undefined;
127
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
123
128
  schema: "network.xyo.api.call.witness.config";
124
129
  readonly security?: {
125
130
  readonly allowAnonymous?: boolean | undefined;
@@ -138,6 +143,7 @@ export declare const asApiUriCallWitnessConfig: {
138
143
  readonly paging?: Record<string, {
139
144
  size?: number | undefined;
140
145
  }> | undefined;
146
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
141
147
  schema: "network.xyo.api.call.witness.config";
142
148
  readonly security?: {
143
149
  readonly allowAnonymous?: boolean | undefined;
@@ -157,7 +163,7 @@ export declare const asApiUriCallWitnessConfig: {
157
163
  verb?: ApiCall['verb'];
158
164
  } & {
159
165
  uri: ApiUriCall['uri'];
160
- }>(value: unknown, assert: string | (() => string), config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType_1;
166
+ }>(value: unknown, assert: string | (() => string), config?: import("@xylabs/object").TypeCheckConfig | undefined): TType_1;
161
167
  };
162
168
  export declare const isApiUriTemplateCallWitnessConfig: (value?: unknown) => value is import("@xyo-network/payload-model").SchemaFields & object & {
163
169
  readonly archivist?: string | undefined;
@@ -166,6 +172,7 @@ export declare const isApiUriTemplateCallWitnessConfig: (value?: unknown) => val
166
172
  readonly paging?: Record<string, {
167
173
  size?: number | undefined;
168
174
  }> | undefined;
175
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
169
176
  schema: "network.xyo.api.call.witness.config";
170
177
  readonly security?: {
171
178
  readonly allowAnonymous?: boolean | undefined;
@@ -184,6 +191,7 @@ export declare const isApiUriTemplateCallWitnessConfig: (value?: unknown) => val
184
191
  readonly paging?: Record<string, {
185
192
  size?: number | undefined;
186
193
  }> | undefined;
194
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
187
195
  schema: "network.xyo.api.call.witness.config";
188
196
  readonly security?: {
189
197
  readonly allowAnonymous?: boolean | undefined;
@@ -213,6 +221,7 @@ export declare const asApiUriTemplateCallWitnessConfig: {
213
221
  readonly paging?: Record<string, {
214
222
  size?: number | undefined;
215
223
  }> | undefined;
224
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
216
225
  schema: "network.xyo.api.call.witness.config";
217
226
  readonly security?: {
218
227
  readonly allowAnonymous?: boolean | undefined;
@@ -231,6 +240,7 @@ export declare const asApiUriTemplateCallWitnessConfig: {
231
240
  readonly paging?: Record<string, {
232
241
  size?: number | undefined;
233
242
  }> | undefined;
243
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
234
244
  schema: "network.xyo.api.call.witness.config";
235
245
  readonly security?: {
236
246
  readonly allowAnonymous?: boolean | undefined;
@@ -251,7 +261,7 @@ export declare const asApiUriTemplateCallWitnessConfig: {
251
261
  } & {
252
262
  params?: Record<string, unknown> | undefined;
253
263
  uriTemplate: ApiUriTemplateCall['uriTemplate'];
254
- }>(value: unknown, config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType | undefined;
264
+ }>(value: unknown, config?: import("@xylabs/object").TypeCheckConfig | undefined): TType | undefined;
255
265
  <TType_1 extends import("@xyo-network/payload-model").SchemaFields & object & {
256
266
  readonly archivist?: string | undefined;
257
267
  readonly labels?: import("@xyo-network/module-model").Labels | undefined;
@@ -259,6 +269,7 @@ export declare const asApiUriTemplateCallWitnessConfig: {
259
269
  readonly paging?: Record<string, {
260
270
  size?: number | undefined;
261
271
  }> | undefined;
272
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
262
273
  schema: "network.xyo.api.call.witness.config";
263
274
  readonly security?: {
264
275
  readonly allowAnonymous?: boolean | undefined;
@@ -277,6 +288,7 @@ export declare const asApiUriTemplateCallWitnessConfig: {
277
288
  readonly paging?: Record<string, {
278
289
  size?: number | undefined;
279
290
  }> | undefined;
291
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
280
292
  schema: "network.xyo.api.call.witness.config";
281
293
  readonly security?: {
282
294
  readonly allowAnonymous?: boolean | undefined;
@@ -297,6 +309,6 @@ export declare const asApiUriTemplateCallWitnessConfig: {
297
309
  } & {
298
310
  params?: Record<string, unknown> | undefined;
299
311
  uriTemplate: ApiUriTemplateCall['uriTemplate'];
300
- }>(value: unknown, assert: string | (() => string), config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType_1;
312
+ }>(value: unknown, assert: string | (() => string), config?: import("@xylabs/object").TypeCheckConfig | undefined): TType_1;
301
313
  };
302
314
  //# sourceMappingURL=Config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE1D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAEnE,eAAO,MAAM,0BAA0B,wCAAwC,CAAA;AAC/E,MAAM,MAAM,0BAA0B,GAAG,OAAO,0BAA0B,CAAA;AAE1E,MAAM,MAAM,wBAAwB,GAAG,aAAa,CAAC;IACnD,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC5B,MAAM,EAAE,0BAA0B,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CACvB,CAAC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,aAAa,CACjD,wBAAwB,GAAG;IACzB,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAA;CACvB,CACF,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG,aAAa,CACzD,wBAAwB,GAAG;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,WAAW,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAA;CAC/C,CACF,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,GAAG,+BAA+B,GAAG,wBAAwB,CAAA;AAEvH,eAAO,MAAM,sBAAsB,4CAA0E,CAAA;AAC7G,eAAO,MAAM,sBAAsB;;;CAAiD,CAAA;AAEpF,eAAO,MAAM,yBAAyB,WAAY,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAxB7C,OAAO,CAAC,SAAS,CAAC;YACpB,0BAA0B;;WAE3B,OAAO,CAAC,MAAM,CAAC;;SAKf,UAAU,CAAC,KAAK,CAAC;CAiBiD,CAAA;AAC3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA1B1B,OAAO,CAAC,SAAS,CAAC;gBACpB,0BAA0B;;eAE3B,OAAO,CAAC,MAAM,CAAC;;aAKf,UAAU,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBARd,OAAO,CAAC,SAAS,CAAC;gBACpB,0BAA0B;;eAE3B,OAAO,CAAC,MAAM,CAAC;;aAKf,UAAU,CAAC,KAAK,CAAC;;CAkBgE,CAAA;AAE1F,eAAO,MAAM,iCAAiC,WAAY,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA5BrD,OAAO,CAAC,SAAS,CAAC;YACpB,0BAA0B;;WAE3B,OAAO,CAAC,MAAM,CAAC;;;iBAYP,kBAAkB,CAAC,aAAa,CAAC;CAcyC,CAAA;AAC3F,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA9BlC,OAAO,CAAC,SAAS,CAAC;gBACpB,0BAA0B;;eAE3B,OAAO,CAAC,MAAM,CAAC;;;qBAYP,kBAAkB,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAftC,OAAO,CAAC,SAAS,CAAC;gBACpB,0BAA0B;;eAE3B,OAAO,CAAC,MAAM,CAAC;;;qBAYP,kBAAkB,CAAC,aAAa,CAAC;;CAewD,CAAA"}
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE1D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAEnE,eAAO,MAAM,0BAA0B,wCAAwC,CAAA;AAC/E,MAAM,MAAM,0BAA0B,GAAG,OAAO,0BAA0B,CAAA;AAE1E,MAAM,MAAM,wBAAwB,GAAG,aAAa,CAAC;IACnD,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC5B,MAAM,EAAE,0BAA0B,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CACvB,CAAC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,aAAa,CACjD,wBAAwB,GAAG;IACzB,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAA;CACvB,CACF,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG,aAAa,CACzD,wBAAwB,GAAG;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,WAAW,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAA;CAC/C,CACF,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,GAAG,+BAA+B,GAAG,wBAAwB,CAAA;AAEvH,eAAO,MAAM,sBAAsB,4CAA0E,CAAA;AAC7G,eAAO,MAAM,sBAAsB;;;CAAiD,CAAA;AAEpF,eAAO,MAAM,yBAAyB,WAAY,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAxB7C,OAAO,CAAC,SAAS,CAAC;YACpB,0BAA0B;;WAE3B,OAAO,CAAC,MAAM,CAAC;;SAKf,UAAU,CAAC,KAAK,CAAC;CAiBiD,CAAA;AAC3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA1B1B,OAAO,CAAC,SAAS,CAAC;gBACpB,0BAA0B;;eAE3B,OAAO,CAAC,MAAM,CAAC;;aAKf,UAAU,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBARd,OAAO,CAAC,SAAS,CAAC;gBACpB,0BAA0B;;eAE3B,OAAO,CAAC,MAAM,CAAC;;aAKf,UAAU,CAAC,KAAK,CAAC;;CAkBgE,CAAA;AAE1F,eAAO,MAAM,iCAAiC,WAAY,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA5BrD,OAAO,CAAC,SAAS,CAAC;YACpB,0BAA0B;;WAE3B,OAAO,CAAC,MAAM,CAAC;;;iBAYP,kBAAkB,CAAC,aAAa,CAAC;CAcyC,CAAA;AAC3F,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA9BlC,OAAO,CAAC,SAAS,CAAC;gBACpB,0BAA0B;;eAE3B,OAAO,CAAC,MAAM,CAAC;;;qBAYP,kBAAkB,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAftC,OAAO,CAAC,SAAS,CAAC;gBACpB,0BAA0B;;eAE3B,OAAO,CAAC,MAAM,CAAC;;;qBAYP,kBAAkB,CAAC,aAAa,CAAC;;CAewD,CAAA"}
@@ -19,8 +19,8 @@ export type ApiUriTemplateCallWitnessConfig = WitnessConfig<ApiCallWitnessConfig
19
19
  export type ApiCallWitnessConfig = ApiUriCallWitnessConfig | ApiUriTemplateCallWitnessConfig | ApiCallWitnessConfigBase;
20
20
  export declare const isApiCallWitnessConfig: (x?: unknown) => x is ApiCallWitnessConfig;
21
21
  export declare const asApiCallWitnessConfig: {
22
- <TType extends ApiCallWitnessConfig>(value: unknown, config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType | undefined;
23
- <TType_1 extends ApiCallWitnessConfig>(value: unknown, assert: string | (() => string), config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType_1;
22
+ <TType extends ApiCallWitnessConfig>(value: unknown, config?: import("@xylabs/object").TypeCheckConfig | undefined): TType | undefined;
23
+ <TType_1 extends ApiCallWitnessConfig>(value: unknown, assert: string | (() => string), config?: import("@xylabs/object").TypeCheckConfig | undefined): TType_1;
24
24
  };
25
25
  export declare const isApiUriCallWitnessConfig: (value?: unknown) => value is import("@xyo-network/payload-model").SchemaFields & object & {
26
26
  readonly archivist?: string | undefined;
@@ -29,6 +29,7 @@ export declare const isApiUriCallWitnessConfig: (value?: unknown) => value is im
29
29
  readonly paging?: Record<string, {
30
30
  size?: number | undefined;
31
31
  }> | undefined;
32
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
32
33
  schema: "network.xyo.api.call.witness.config";
33
34
  readonly security?: {
34
35
  readonly allowAnonymous?: boolean | undefined;
@@ -47,6 +48,7 @@ export declare const isApiUriCallWitnessConfig: (value?: unknown) => value is im
47
48
  readonly paging?: Record<string, {
48
49
  size?: number | undefined;
49
50
  }> | undefined;
51
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
50
52
  schema: "network.xyo.api.call.witness.config";
51
53
  readonly security?: {
52
54
  readonly allowAnonymous?: boolean | undefined;
@@ -75,6 +77,7 @@ export declare const asApiUriCallWitnessConfig: {
75
77
  readonly paging?: Record<string, {
76
78
  size?: number | undefined;
77
79
  }> | undefined;
80
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
78
81
  schema: "network.xyo.api.call.witness.config";
79
82
  readonly security?: {
80
83
  readonly allowAnonymous?: boolean | undefined;
@@ -93,6 +96,7 @@ export declare const asApiUriCallWitnessConfig: {
93
96
  readonly paging?: Record<string, {
94
97
  size?: number | undefined;
95
98
  }> | undefined;
99
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
96
100
  schema: "network.xyo.api.call.witness.config";
97
101
  readonly security?: {
98
102
  readonly allowAnonymous?: boolean | undefined;
@@ -112,7 +116,7 @@ export declare const asApiUriCallWitnessConfig: {
112
116
  verb?: ApiCall['verb'];
113
117
  } & {
114
118
  uri: ApiUriCall['uri'];
115
- }>(value: unknown, config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType | undefined;
119
+ }>(value: unknown, config?: import("@xylabs/object").TypeCheckConfig | undefined): TType | undefined;
116
120
  <TType_1 extends import("@xyo-network/payload-model").SchemaFields & object & {
117
121
  readonly archivist?: string | undefined;
118
122
  readonly labels?: import("@xyo-network/module-model").Labels | undefined;
@@ -120,6 +124,7 @@ export declare const asApiUriCallWitnessConfig: {
120
124
  readonly paging?: Record<string, {
121
125
  size?: number | undefined;
122
126
  }> | undefined;
127
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
123
128
  schema: "network.xyo.api.call.witness.config";
124
129
  readonly security?: {
125
130
  readonly allowAnonymous?: boolean | undefined;
@@ -138,6 +143,7 @@ export declare const asApiUriCallWitnessConfig: {
138
143
  readonly paging?: Record<string, {
139
144
  size?: number | undefined;
140
145
  }> | undefined;
146
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
141
147
  schema: "network.xyo.api.call.witness.config";
142
148
  readonly security?: {
143
149
  readonly allowAnonymous?: boolean | undefined;
@@ -157,7 +163,7 @@ export declare const asApiUriCallWitnessConfig: {
157
163
  verb?: ApiCall['verb'];
158
164
  } & {
159
165
  uri: ApiUriCall['uri'];
160
- }>(value: unknown, assert: string | (() => string), config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType_1;
166
+ }>(value: unknown, assert: string | (() => string), config?: import("@xylabs/object").TypeCheckConfig | undefined): TType_1;
161
167
  };
162
168
  export declare const isApiUriTemplateCallWitnessConfig: (value?: unknown) => value is import("@xyo-network/payload-model").SchemaFields & object & {
163
169
  readonly archivist?: string | undefined;
@@ -166,6 +172,7 @@ export declare const isApiUriTemplateCallWitnessConfig: (value?: unknown) => val
166
172
  readonly paging?: Record<string, {
167
173
  size?: number | undefined;
168
174
  }> | undefined;
175
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
169
176
  schema: "network.xyo.api.call.witness.config";
170
177
  readonly security?: {
171
178
  readonly allowAnonymous?: boolean | undefined;
@@ -184,6 +191,7 @@ export declare const isApiUriTemplateCallWitnessConfig: (value?: unknown) => val
184
191
  readonly paging?: Record<string, {
185
192
  size?: number | undefined;
186
193
  }> | undefined;
194
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
187
195
  schema: "network.xyo.api.call.witness.config";
188
196
  readonly security?: {
189
197
  readonly allowAnonymous?: boolean | undefined;
@@ -213,6 +221,7 @@ export declare const asApiUriTemplateCallWitnessConfig: {
213
221
  readonly paging?: Record<string, {
214
222
  size?: number | undefined;
215
223
  }> | undefined;
224
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
216
225
  schema: "network.xyo.api.call.witness.config";
217
226
  readonly security?: {
218
227
  readonly allowAnonymous?: boolean | undefined;
@@ -231,6 +240,7 @@ export declare const asApiUriTemplateCallWitnessConfig: {
231
240
  readonly paging?: Record<string, {
232
241
  size?: number | undefined;
233
242
  }> | undefined;
243
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
234
244
  schema: "network.xyo.api.call.witness.config";
235
245
  readonly security?: {
236
246
  readonly allowAnonymous?: boolean | undefined;
@@ -251,7 +261,7 @@ export declare const asApiUriTemplateCallWitnessConfig: {
251
261
  } & {
252
262
  params?: Record<string, unknown> | undefined;
253
263
  uriTemplate: ApiUriTemplateCall['uriTemplate'];
254
- }>(value: unknown, config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType | undefined;
264
+ }>(value: unknown, config?: import("@xylabs/object").TypeCheckConfig | undefined): TType | undefined;
255
265
  <TType_1 extends import("@xyo-network/payload-model").SchemaFields & object & {
256
266
  readonly archivist?: string | undefined;
257
267
  readonly labels?: import("@xyo-network/module-model").Labels | undefined;
@@ -259,6 +269,7 @@ export declare const asApiUriTemplateCallWitnessConfig: {
259
269
  readonly paging?: Record<string, {
260
270
  size?: number | undefined;
261
271
  }> | undefined;
272
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
262
273
  schema: "network.xyo.api.call.witness.config";
263
274
  readonly security?: {
264
275
  readonly allowAnonymous?: boolean | undefined;
@@ -277,6 +288,7 @@ export declare const asApiUriTemplateCallWitnessConfig: {
277
288
  readonly paging?: Record<string, {
278
289
  size?: number | undefined;
279
290
  }> | undefined;
291
+ readonly retry?: import("@xylabs/retry").RetryConfig | undefined;
280
292
  schema: "network.xyo.api.call.witness.config";
281
293
  readonly security?: {
282
294
  readonly allowAnonymous?: boolean | undefined;
@@ -297,6 +309,6 @@ export declare const asApiUriTemplateCallWitnessConfig: {
297
309
  } & {
298
310
  params?: Record<string, unknown> | undefined;
299
311
  uriTemplate: ApiUriTemplateCall['uriTemplate'];
300
- }>(value: unknown, assert: string | (() => string), config?: import("@xyo-network/object").TypeCheckConfig | undefined): TType_1;
312
+ }>(value: unknown, assert: string | (() => string), config?: import("@xylabs/object").TypeCheckConfig | undefined): TType_1;
301
313
  };
302
314
  //# sourceMappingURL=Config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE1D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAEnE,eAAO,MAAM,0BAA0B,wCAAwC,CAAA;AAC/E,MAAM,MAAM,0BAA0B,GAAG,OAAO,0BAA0B,CAAA;AAE1E,MAAM,MAAM,wBAAwB,GAAG,aAAa,CAAC;IACnD,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC5B,MAAM,EAAE,0BAA0B,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CACvB,CAAC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,aAAa,CACjD,wBAAwB,GAAG;IACzB,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAA;CACvB,CACF,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG,aAAa,CACzD,wBAAwB,GAAG;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,WAAW,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAA;CAC/C,CACF,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,GAAG,+BAA+B,GAAG,wBAAwB,CAAA;AAEvH,eAAO,MAAM,sBAAsB,4CAA0E,CAAA;AAC7G,eAAO,MAAM,sBAAsB;;;CAAiD,CAAA;AAEpF,eAAO,MAAM,yBAAyB,WAAY,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAxB7C,OAAO,CAAC,SAAS,CAAC;YACpB,0BAA0B;;WAE3B,OAAO,CAAC,MAAM,CAAC;;SAKf,UAAU,CAAC,KAAK,CAAC;CAiBiD,CAAA;AAC3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA1B1B,OAAO,CAAC,SAAS,CAAC;gBACpB,0BAA0B;;eAE3B,OAAO,CAAC,MAAM,CAAC;;aAKf,UAAU,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBARd,OAAO,CAAC,SAAS,CAAC;gBACpB,0BAA0B;;eAE3B,OAAO,CAAC,MAAM,CAAC;;aAKf,UAAU,CAAC,KAAK,CAAC;;CAkBgE,CAAA;AAE1F,eAAO,MAAM,iCAAiC,WAAY,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA5BrD,OAAO,CAAC,SAAS,CAAC;YACpB,0BAA0B;;WAE3B,OAAO,CAAC,MAAM,CAAC;;;iBAYP,kBAAkB,CAAC,aAAa,CAAC;CAcyC,CAAA;AAC3F,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA9BlC,OAAO,CAAC,SAAS,CAAC;gBACpB,0BAA0B;;eAE3B,OAAO,CAAC,MAAM,CAAC;;;qBAYP,kBAAkB,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAftC,OAAO,CAAC,SAAS,CAAC;gBACpB,0BAA0B;;eAE3B,OAAO,CAAC,MAAM,CAAC;;;qBAYP,kBAAkB,CAAC,aAAa,CAAC;;CAewD,CAAA"}
1
+ {"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../src/Config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE1D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAEnE,eAAO,MAAM,0BAA0B,wCAAwC,CAAA;AAC/E,MAAM,MAAM,0BAA0B,GAAG,OAAO,0BAA0B,CAAA;AAE1E,MAAM,MAAM,wBAAwB,GAAG,aAAa,CAAC;IACnD,MAAM,CAAC,EAAE,kBAAkB,CAAA;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC5B,MAAM,EAAE,0BAA0B,CAAA;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;CACvB,CAAC,CAAA;AAEF,MAAM,MAAM,uBAAuB,GAAG,aAAa,CACjD,wBAAwB,GAAG;IACzB,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAA;CACvB,CACF,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG,aAAa,CACzD,wBAAwB,GAAG;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,WAAW,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAA;CAC/C,CACF,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,GAAG,+BAA+B,GAAG,wBAAwB,CAAA;AAEvH,eAAO,MAAM,sBAAsB,4CAA0E,CAAA;AAC7G,eAAO,MAAM,sBAAsB;;;CAAiD,CAAA;AAEpF,eAAO,MAAM,yBAAyB,WAAY,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAxB7C,OAAO,CAAC,SAAS,CAAC;YACpB,0BAA0B;;WAE3B,OAAO,CAAC,MAAM,CAAC;;SAKf,UAAU,CAAC,KAAK,CAAC;CAiBiD,CAAA;AAC3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA1B1B,OAAO,CAAC,SAAS,CAAC;gBACpB,0BAA0B;;eAE3B,OAAO,CAAC,MAAM,CAAC;;aAKf,UAAU,CAAC,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBARd,OAAO,CAAC,SAAS,CAAC;gBACpB,0BAA0B;;eAE3B,OAAO,CAAC,MAAM,CAAC;;aAKf,UAAU,CAAC,KAAK,CAAC;;CAkBgE,CAAA;AAE1F,eAAO,MAAM,iCAAiC,WAAY,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA5BrD,OAAO,CAAC,SAAS,CAAC;YACpB,0BAA0B;;WAE3B,OAAO,CAAC,MAAM,CAAC;;;iBAYP,kBAAkB,CAAC,aAAa,CAAC;CAcyC,CAAA;AAC3F,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA9BlC,OAAO,CAAC,SAAS,CAAC;gBACpB,0BAA0B;;eAE3B,OAAO,CAAC,MAAM,CAAC;;;qBAYP,kBAAkB,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAftC,OAAO,CAAC,SAAS,CAAC;gBACpB,0BAA0B;;eAE3B,OAAO,CAAC,MAAM,CAAC;;;qBAYP,kBAAkB,CAAC,aAAa,CAAC;;CAewD,CAAA"}