@keetanetwork/anchor 0.0.18 → 0.0.20
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/lib/http-server.d.ts +1 -1
- package/lib/http-server.d.ts.map +1 -1
- package/lib/http-server.js +19 -3
- package/lib/http-server.js.map +1 -1
- package/lib/resolver.d.ts +18 -12
- package/lib/resolver.d.ts.map +1 -1
- package/lib/resolver.js +62 -0
- package/lib/resolver.js.map +1 -1
- package/lib/utils/asn1.d.ts.map +1 -1
- package/lib/utils/asn1.js +27 -2
- package/lib/utils/asn1.js.map +1 -1
- package/lib/utils/json.js +1 -1
- package/lib/utils/json.js.map +1 -1
- package/lib/utils/util.d.ts +7 -0
- package/lib/utils/util.d.ts.map +1 -0
- package/lib/utils/util.js +7 -0
- package/lib/utils/util.js.map +1 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/services/kyc/client.d.ts +1 -0
- package/services/kyc/client.d.ts.map +1 -1
- package/services/kyc/client.js +3 -0
- package/services/kyc/client.js.map +1 -1
package/lib/utils/asn1.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asn1.js","sourceRoot":"","sources":["../../../src/lib/utils/asn1.ts"],"names":[],"mappings":"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","sourcesContent":["import { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';\nimport type * as ASN1Types from '@keetanetwork/keetanet-client/lib/utils/asn1.ts';\nimport { isReferenceSchema } from './asn1.generated.js';\nimport { EncryptedContainer } from '../encrypted-container.js';\nimport { Buffer } from './buffer.js';\nimport { checkHashWithOID } from './external.js';\n\n/* ENUM */\ntype AccountKeyAlgorithm = InstanceType<typeof KeetaNetLib.Account>['keyType'];\n\n/**\n * An alias for the KeetaNetAccount type\n */\ntype KeetaNetAccount = ReturnType<typeof KeetaNetLib.Account.fromSeed<AccountKeyAlgorithm>>;\nconst KeetaNetAccount: typeof KeetaNetLib.Account = KeetaNetLib.Account;\n\n/*\n * We import this file to make sure that the `asn1js` types are\n * defined, since they are required by the `ASN1toJS` and `JStoASN1`\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type * as _ignored_asn1js from 'asn1js';\n\nimport { assert, createAssert, createIs } from 'typia';\n\nconst ASN1: typeof KeetaNetLib.Utils.ASN1 = KeetaNetLib.Utils.ASN1;\n\nconst ASN1toJS: typeof ASN1.ASN1toJS = ASN1.ASN1toJS;\nconst JStoASN1: typeof ASN1.JStoASN1 = ASN1.JStoASN1;\nconst BufferStorageASN1: typeof ASN1.BufferStorageASN1 = ASN1.BufferStorageASN1;\nconst ValidateASN1: typeof ASN1.ValidateASN1 = ASN1.ValidateASN1;\nconst ASN1CheckUtilities: typeof ASN1.ASN1CheckUtilities = ASN1.ASN1CheckUtilities;\n\nconst { isASN1ContextTag, isASN1Struct, isASN1String, isASN1Date, isASN1BitString, isASN1Set } = ASN1CheckUtilities;\n\ntype ASN1AnyJS = ASN1Types.ASN1AnyJS;\ntype ASN1OID = ASN1Types.ASN1OID;\ntype ASN1ContextTag = ASN1Types.ASN1ContextTag;\ntype Schema = ASN1Types.ValidateASN1.Schema;\ntype SchemaMap<T extends Schema> = ASN1Types.ValidateASN1.SchemaMap<T>;\ntype StructFieldSchema = Schema | { optional: Schema };\ntype StructSchema = Extract<Schema, { type: 'struct' }>;\ntype StructFieldSchemaMap = { [field: string]: StructFieldSchema };\ntype SchemaPreparer = (schema: Schema, value: unknown) => unknown;\n\ntype EncodeOptions = {\n\tattributeName?: string;\n\tvaluePrinter?: (value: unknown) => string;\n};\n\nconst assertStructFieldSchemaMap = createAssert<StructFieldSchemaMap>();\nconst structSchemaGuard = createIs<StructSchema>();\n\nconst structSchemaCache = new WeakMap<StructSchema, Schema>();\n\nfunction defaultPrintValue(value: unknown): string {\n\ttry {\n\t\treturn(JSON.stringify(value));\n\t} catch {\n\t\treturn(String(value));\n\t}\n}\n\nfunction isOptionalSchema(candidate: unknown): candidate is { optional: Schema } {\n\treturn(typeof candidate === 'object' && candidate !== null && 'optional' in candidate);\n}\n\nfunction isStructSchema(candidate: Schema): candidate is StructSchema {\n\treturn(structSchemaGuard(candidate));\n}\n\nfunction ensureStructContains(schema: StructSchema): StructFieldSchemaMap {\n\tif (!schema.contains) {\n\t\treturn({});\n\t}\n\treturn(assertStructFieldSchemaMap(schema.contains));\n}\n\nfunction isPlainObject(value: unknown): value is { [key: string]: unknown } {\n\treturn(typeof value === 'object' && value !== null && !Array.isArray(value));\n}\n\nfunction getFieldNames(schema: StructSchema): string[] {\n\treturn(Array.isArray(schema.fieldNames) && schema.fieldNames.length > 0\n\t\t? [...schema.fieldNames]\n\t\t: Object.keys(ensureStructContains(schema)));\n}\n\nexport function contextualizeStructSchema(schema: Schema): Schema {\n\tif (!isStructSchema(schema)) {\n\t\treturn(schema);\n\t}\n\n\tconst cached = structSchemaCache.get(schema);\n\tif (cached) {\n\t\treturn(cached);\n\t}\n\n\tconst fieldNames = getFieldNames(schema);\n\tconst structContains = ensureStructContains(schema);\n\tconst contextualizedContains: StructFieldSchemaMap = {};\n\n\tfunction wrapWithExplicitContext(index: number, innerSchema: Schema): Schema {\n\t\tif (typeof innerSchema === 'object' && innerSchema !== null && 'type' in innerSchema && innerSchema.type === 'context') {\n\t\t\treturn(innerSchema);\n\t\t}\n\t\treturn({\n\t\t\ttype: 'context',\n\t\t\tkind: 'explicit',\n\t\t\tvalue: index,\n\t\t\tcontains: contextualizeStructSchema(innerSchema)\n\t\t});\n\t}\n\n\tfor (const [index, fieldName] of fieldNames.entries()) {\n\t\tconst fieldSchema = structContains[fieldName];\n\t\tif (!fieldSchema) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (isOptionalSchema(fieldSchema)) {\n\t\t\tcontextualizedContains[fieldName] = {\n\t\t\t\toptional: wrapWithExplicitContext(index, fieldSchema.optional)\n\t\t\t};\n\t\t\tcontinue;\n\t\t}\n\t\tcontextualizedContains[fieldName] = wrapWithExplicitContext(index, fieldSchema);\n\t}\n\n\tconst contextualized: Schema = {\n\t\ttype: 'struct',\n\t\tfieldNames,\n\t\tcontains: contextualizedContains\n\t};\n\n\tstructSchemaCache.set(schema, contextualized);\n\treturn(contextualized);\n}\n\nfunction resolveSchema(schema: Schema): Schema {\n\tlet current: Schema = schema;\n\twhile (typeof current === 'function') {\n\t\tcurrent = current();\n\t}\n\treturn(current);\n}\n\nfunction prepareContextValue(schema: Extract<Schema, { type: 'context' }>, value: unknown, prepare: SchemaPreparer): unknown {\n\tif (value === undefined) {\n\t\treturn(value);\n\t}\n\tif (isASN1ContextTag(value)) {\n\t\tconst preparedContains = prepare(schema.contains, value.contains);\n\t\tif (preparedContains !== value.contains) {\n\t\t\treturn({\n\t\t\t\ttype: 'context',\n\t\t\t\tkind: value.kind,\n\t\t\t\tvalue: value.value,\n\t\t\t\tcontains: preparedContains\n\t\t\t});\n\t\t}\n\t\treturn(value);\n\t}\n\tconst contains = prepare(schema.contains, value);\n\treturn({\n\t\ttype: 'context',\n\t\tkind: schema.kind,\n\t\tvalue: schema.value,\n\t\tcontains\n\t});\n}\n\nfunction prepareStructValue(schema: StructSchema, value: unknown): unknown {\n\tconst structContains = schema.contains ?? {};\n\tconst fieldNames = getFieldNames(schema);\n\n\tif (isASN1Struct(value)) {\n\t\tconst preparedContains: { [key: string]: unknown } = {};\n\t\tfor (const [fieldName, fieldValue] of Object.entries(value.contains ?? {})) {\n\t\t\tconst fieldSchema = structContains[fieldName];\n\t\t\tif (!fieldSchema) {\n\t\t\t\tpreparedContains[fieldName] = fieldValue;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst innerSchema = isOptionalSchema(fieldSchema) ? fieldSchema.optional : fieldSchema;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tpreparedContains[fieldName] = prepareValueForSchema(innerSchema, fieldValue);\n\t\t}\n\t\treturn({\n\t\t\ttype: 'struct',\n\t\t\tfieldNames: value.fieldNames ?? fieldNames,\n\t\t\tcontains: preparedContains\n\t\t});\n\t}\n\n\tif (!isPlainObject(value)) {\n\t\treturn(value);\n\t}\n\n\tconst preparedContains: { [key: string]: unknown } = {};\n\tfor (const fieldName of fieldNames) {\n\t\tconst fieldSchema = structContains[fieldName];\n\t\tif (!fieldSchema) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst fieldValue = value[fieldName];\n\t\tif (fieldValue === undefined) {\n\t\t\tif (!isOptionalSchema(fieldSchema)) {\n\t\t\t\tpreparedContains[fieldName] = fieldValue;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tconst innerSchema = isOptionalSchema(fieldSchema) ? fieldSchema.optional : fieldSchema;\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tpreparedContains[fieldName] = prepareValueForSchema(innerSchema, fieldValue);\n\t}\n\n\treturn({\n\t\ttype: 'struct',\n\t\tfieldNames,\n\t\tcontains: preparedContains\n\t});\n}\n\nfunction prepareValueForSchema(schema: Schema, value: unknown): unknown {\n\tconst resolved = resolveSchema(schema);\n\n\tif (value === undefined || value === null) {\n\t\treturn(value);\n\t}\n\n\tif (Array.isArray(resolved)) {\n\t\tif (!Array.isArray(value)) {\n\t\t\treturn(value);\n\t\t}\n\t\tconst result = [];\n\t\tfor (let i = 0; i < resolved.length; i++) {\n\t\t\tresult.push(prepareValueForSchema(assert<Schema>(resolved[i]), value[i]));\n\t\t}\n\t\treturn(result);\n\t}\tif (typeof resolved === 'object' && resolved !== null) {\n\t\tif ('optional' in resolved) {\n\t\t\tif (value === undefined) {\n\t\t\t\treturn(undefined);\n\t\t\t}\n\t\t\treturn(prepareValueForSchema(resolved.optional, value));\n\t\t}\n\t\tif ('sequenceOf' in resolved) {\n\t\t\tif (!Array.isArray(value)) {\n\t\t\t\treturn(value);\n\t\t\t}\n\t\t\treturn(value.map(item => prepareValueForSchema(resolved.sequenceOf, item)));\n\t\t}\n\t\tif ('choice' in resolved) {\n\t\t\tconst choices = Array.isArray(resolved.choice)\n\t\t\t\t? resolved.choice\n\t\t\t\t: Array.from(resolved.choice);\n\t\t\tfor (const choiceSchema of choices) {\n\t\t\t\tconst preparedChoice = prepareValueForSchema(choiceSchema, value);\n\t\t\t\tif (preparedChoice !== value) {\n\t\t\t\t\treturn(preparedChoice);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn(value);\n\t\t}\n\t\tif ('type' in resolved) {\n\t\t\tswitch (resolved.type) {\n\t\t\t\tcase 'context':\n\t\t\t\t\treturn(prepareContextValue(resolved, value, prepareValueForSchema));\n\t\t\t\tcase 'struct':\n\t\t\t\t\treturn(prepareStructValue(resolved, value));\n\t\t\t\tdefault:\n\t\t\t\t\treturn(value);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn(value);\n}\n\nexport function encodeValueBySchema(schema: Schema, value: unknown, options?: EncodeOptions): ASN1AnyJS {\n\tconst contextualized = contextualizeStructSchema(schema);\n\ttry {\n\t\tconst preparedUnknown = prepareValueForSchema(contextualized, value);\n\t\t// XXX:TODO Fix depth issue\n\t\t// @ts-ignore\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/consistent-type-assertions\n\t\treturn(ValidateASN1.againstSchema(preparedUnknown as ASN1AnyJS, contextualized));\n\t} catch (err) {\n\t\tconst printer = options?.valuePrinter ?? defaultPrintValue;\n\t\tconst prefix = options?.attributeName ? `Attribute ${options.attributeName}: ` : '';\n\t\tconst message = err instanceof Error ? err.message : String(err);\n\n\t\tthrow(new Error(`${prefix}${message} (value: ${printer(value)})`));\n\t}\n}\n\nexport function normalizeDecodedASN1(input: unknown, principals: KeetaNetAccount[]): unknown {\n\tif (input === undefined || input === null) {\n\t\treturn(input);\n\t}\n\tif (Array.isArray(input)) {\n\t\treturn(input.map(function(childInput) {\n\t\t\treturn(normalizeDecodedASN1(childInput, principals));\n\t\t}));\n\t}\n\tif (input instanceof Date) {\n\t\treturn(input);\n\t}\n\tif (Buffer.isBuffer(input) || input instanceof ArrayBuffer) {\n\t\treturn(input);\n\t}\n\tif (isASN1ContextTag(input)) {\n\t\treturn(normalizeDecodedASN1(input.contains, principals));\n\t}\n\tif (isASN1String(input)) {\n\t\treturn(normalizeDecodedASN1(input.value, principals));\n\t}\n\tif (isASN1Date(input)) {\n\t\treturn(input.date);\n\t}\n\tif (isASN1BitString(input)) {\n\t\treturn(input.value);\n\t}\n\tif (isASN1Struct(input)) {\n\t\tconst contains = input.contains ?? {};\n\t\tconst orderedNames = Array.isArray(input.fieldNames) && input.fieldNames.length > 0\n\t\t\t? input.fieldNames\n\t\t\t: Object.keys(contains);\n\t\tconst result: { [key: string]: unknown } = {};\n\t\tfor (const fieldName of orderedNames) {\n\t\t\tif (!Object.prototype.hasOwnProperty.call(contains, fieldName)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fieldValue = contains[fieldName];\n\t\t\tif (fieldValue !== undefined) {\n\t\t\t\tresult[fieldName] = normalizeDecodedASN1(fieldValue, principals);\n\t\t\t}\n\t\t}\n\n\t\tif (isReferenceSchema(input)) {\n\t\t\tconst url = input.contains.external.contains.url.value;\n\t\t\tconst mimeType = input.contains.external.contains.contentType.value;\n\t\t\tconst encryptionAlgoOID = input.contains.encryptionAlgorithm?.oid;\n\t\t\tconst digestInfo = input.contains.digest.contains;\n\t\t\tlet cachedValue: Blob | null = null;\n\t\t\tresult['$blob'] = async function(additionalPrincipals?: ConstructorParameters<typeof EncryptedContainer>[0]): Promise<Blob> {\n\t\t\t\t/*\n\t\t\t\t * If we already have the cached value, return it\n\t\t\t\t */\n\t\t\t\tif (cachedValue) {\n\t\t\t\t\treturn(cachedValue);\n\t\t\t\t}\n\t\t\t\t/*\n\t\t\t\t * Fetch the remote data\n\t\t\t\t */\n\t\t\t\tconst result = await fetch(url);\n\t\t\t\tlet data = await result.arrayBuffer();\n\n\t\t\t\t/*\n\t\t\t\t * Decrypt the data, if encrypted\n\t\t\t\t */\n\t\t\t\tif (encryptionAlgoOID) {\n\t\t\t\t\tswitch (encryptionAlgoOID) {\n\t\t\t\t\t\tcase '1.3.6.1.4.1.62675.2':\n\t\t\t\t\t\tcase 'KeetaEncryptedContainerV1': {\n\t\t\t\t\t\t\tconst container = EncryptedContainer.fromEncryptedBuffer(data, [\n\t\t\t\t\t\t\t\t...principals,\n\t\t\t\t\t\t\t\t...(additionalPrincipals ?? [])\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\tdata = await container.getPlaintext();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tthrow(new Error(`Unsupported encryption algorithm OID: ${encryptionAlgoOID}`));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/*\n\t\t\t\t * Compute and verify the hash (of the plain text)\n\t\t\t\t */\n\t\t\t\tif (!Buffer.isBuffer(digestInfo.digest)) {\n\t\t\t\t\tthrow(new TypeError('Digest value is not a buffer'));\n\t\t\t\t}\n\t\t\t\tconst validHash = await checkHashWithOID(data, {\n\t\t\t\t\tdigest: digestInfo.digest,\n\t\t\t\t\tdigestAlgorithm: digestInfo.digestAlgorithm\n\t\t\t\t});\n\t\t\t\tif (validHash !== true) {\n\t\t\t\t\tthrow(validHash);\n\t\t\t\t}\n\n\t\t\t\tconst blob = new Blob([data], { type: mimeType });\n\t\t\t\tcachedValue = blob;\n\t\t\t\treturn(blob);\n\t\t\t}\n\t\t}\n\t\treturn(result);\n\t}\n\tif (isASN1Set(input)) {\n\t\treturn({\n\t\t\tname: normalizeDecodedASN1(input.name, principals),\n\t\t\tvalue: normalizeDecodedASN1(input.value, principals)\n\t\t});\n\t}\n\tif (isPlainObject(input)) {\n\t\tconst result: { [key: string]: unknown } = {};\n\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\tresult[key] = normalizeDecodedASN1(value, principals);\n\t\t}\n\t\treturn(result);\n\t}\n\n\treturn(input);\n}\n\nexport type {\n\tASN1AnyJS,\n\tASN1OID,\n\tASN1ContextTag,\n\tSchema,\n\tSchemaMap\n};\n\nexport {\n\tASN1toJS,\n\tJStoASN1,\n\tBufferStorageASN1,\n\tValidateASN1\n};\n"]}
|
|
1
|
+
{"version":3,"file":"asn1.js","sourceRoot":"","sources":["../../../src/lib/utils/asn1.ts"],"names":[],"mappings":"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","sourcesContent":["import { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';\nimport type * as ASN1Types from '@keetanetwork/keetanet-client/lib/utils/asn1.ts';\nimport { isReferenceSchema } from './asn1.generated.js';\nimport { EncryptedContainer } from '../encrypted-container.js';\nimport { Buffer, bufferToArrayBuffer } from './buffer.js';\nimport { checkHashWithOID } from './external.js';\n\n/* ENUM */\ntype AccountKeyAlgorithm = InstanceType<typeof KeetaNetLib.Account>['keyType'];\n\n/**\n * An alias for the KeetaNetAccount type\n */\ntype KeetaNetAccount = ReturnType<typeof KeetaNetLib.Account.fromSeed<AccountKeyAlgorithm>>;\nconst KeetaNetAccount: typeof KeetaNetLib.Account = KeetaNetLib.Account;\n\n/*\n * We import this file to make sure that the `asn1js` types are\n * defined, since they are required by the `ASN1toJS` and `JStoASN1`\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport type * as _ignored_asn1js from 'asn1js';\n\nimport { assert, createAssert, createIs } from 'typia';\n\nconst ASN1: typeof KeetaNetLib.Utils.ASN1 = KeetaNetLib.Utils.ASN1;\n\nconst ASN1toJS: typeof ASN1.ASN1toJS = ASN1.ASN1toJS;\nconst JStoASN1: typeof ASN1.JStoASN1 = ASN1.JStoASN1;\nconst BufferStorageASN1: typeof ASN1.BufferStorageASN1 = ASN1.BufferStorageASN1;\nconst ValidateASN1: typeof ASN1.ValidateASN1 = ASN1.ValidateASN1;\nconst ASN1CheckUtilities: typeof ASN1.ASN1CheckUtilities = ASN1.ASN1CheckUtilities;\n\nconst { isASN1ContextTag, isASN1Struct, isASN1String, isASN1Date, isASN1BitString, isASN1Set } = ASN1CheckUtilities;\n\ntype ASN1AnyJS = ASN1Types.ASN1AnyJS;\ntype ASN1OID = ASN1Types.ASN1OID;\ntype ASN1ContextTag = ASN1Types.ASN1ContextTag;\ntype Schema = ASN1Types.ValidateASN1.Schema;\ntype SchemaMap<T extends Schema> = ASN1Types.ValidateASN1.SchemaMap<T>;\ntype StructFieldSchema = Schema | { optional: Schema };\ntype StructSchema = Extract<Schema, { type: 'struct' }>;\ntype StructFieldSchemaMap = { [field: string]: StructFieldSchema };\ntype SchemaPreparer = (schema: Schema, value: unknown) => unknown;\n\ntype EncodeOptions = {\n\tattributeName?: string;\n\tvaluePrinter?: (value: unknown) => string;\n};\n\nconst assertStructFieldSchemaMap = createAssert<StructFieldSchemaMap>();\nconst structSchemaGuard = createIs<StructSchema>();\n\nconst structSchemaCache = new WeakMap<StructSchema, Schema>();\n\nfunction defaultPrintValue(value: unknown): string {\n\ttry {\n\t\treturn(JSON.stringify(value));\n\t} catch {\n\t\treturn(String(value));\n\t}\n}\n\nfunction isOptionalSchema(candidate: unknown): candidate is { optional: Schema } {\n\treturn(typeof candidate === 'object' && candidate !== null && 'optional' in candidate);\n}\n\nfunction isStructSchema(candidate: Schema): candidate is StructSchema {\n\treturn(structSchemaGuard(candidate));\n}\n\nfunction ensureStructContains(schema: StructSchema): StructFieldSchemaMap {\n\tif (!schema.contains) {\n\t\treturn({});\n\t}\n\treturn(assertStructFieldSchemaMap(schema.contains));\n}\n\nfunction isPlainObject(value: unknown): value is { [key: string]: unknown } {\n\treturn(typeof value === 'object' && value !== null && !Array.isArray(value));\n}\n\nfunction getFieldNames(schema: StructSchema): string[] {\n\treturn(Array.isArray(schema.fieldNames) && schema.fieldNames.length > 0\n\t\t? [...schema.fieldNames]\n\t\t: Object.keys(ensureStructContains(schema)));\n}\n\nexport function contextualizeStructSchema(schema: Schema): Schema {\n\tif (!isStructSchema(schema)) {\n\t\treturn(schema);\n\t}\n\n\tconst cached = structSchemaCache.get(schema);\n\tif (cached) {\n\t\treturn(cached);\n\t}\n\n\tconst fieldNames = getFieldNames(schema);\n\tconst structContains = ensureStructContains(schema);\n\tconst contextualizedContains: StructFieldSchemaMap = {};\n\n\tfunction wrapWithExplicitContext(index: number, innerSchema: Schema): Schema {\n\t\tif (typeof innerSchema === 'object' && innerSchema !== null && 'type' in innerSchema && innerSchema.type === 'context') {\n\t\t\treturn(innerSchema);\n\t\t}\n\t\treturn({\n\t\t\ttype: 'context',\n\t\t\tkind: 'explicit',\n\t\t\tvalue: index,\n\t\t\tcontains: contextualizeStructSchema(innerSchema)\n\t\t});\n\t}\n\n\tfor (const [index, fieldName] of fieldNames.entries()) {\n\t\tconst fieldSchema = structContains[fieldName];\n\t\tif (!fieldSchema) {\n\t\t\tcontinue;\n\t\t}\n\t\tif (isOptionalSchema(fieldSchema)) {\n\t\t\tcontextualizedContains[fieldName] = {\n\t\t\t\toptional: wrapWithExplicitContext(index, fieldSchema.optional)\n\t\t\t};\n\t\t\tcontinue;\n\t\t}\n\t\tcontextualizedContains[fieldName] = wrapWithExplicitContext(index, fieldSchema);\n\t}\n\n\tconst contextualized: Schema = {\n\t\ttype: 'struct',\n\t\tfieldNames,\n\t\tcontains: contextualizedContains\n\t};\n\n\tstructSchemaCache.set(schema, contextualized);\n\treturn(contextualized);\n}\n\nfunction resolveSchema(schema: Schema): Schema {\n\tlet current: Schema = schema;\n\twhile (typeof current === 'function') {\n\t\tcurrent = current();\n\t}\n\treturn(current);\n}\n\nfunction prepareContextValue(schema: Extract<Schema, { type: 'context' }>, value: unknown, prepare: SchemaPreparer): unknown {\n\tif (value === undefined) {\n\t\treturn(value);\n\t}\n\tif (isASN1ContextTag(value)) {\n\t\tconst preparedContains = prepare(schema.contains, value.contains);\n\t\tif (preparedContains !== value.contains) {\n\t\t\treturn({\n\t\t\t\ttype: 'context',\n\t\t\t\tkind: value.kind,\n\t\t\t\tvalue: value.value,\n\t\t\t\tcontains: preparedContains\n\t\t\t});\n\t\t}\n\t\treturn(value);\n\t}\n\tconst contains = prepare(schema.contains, value);\n\treturn({\n\t\ttype: 'context',\n\t\tkind: schema.kind,\n\t\tvalue: schema.value,\n\t\tcontains\n\t});\n}\n\nfunction prepareStructValue(schema: StructSchema, value: unknown): unknown {\n\tconst structContains = schema.contains ?? {};\n\tconst fieldNames = getFieldNames(schema);\n\n\tif (isASN1Struct(value)) {\n\t\tconst preparedContains: { [key: string]: unknown } = {};\n\t\tfor (const [fieldName, fieldValue] of Object.entries(value.contains ?? {})) {\n\t\t\tconst fieldSchema = structContains[fieldName];\n\t\t\tif (!fieldSchema) {\n\t\t\t\tpreparedContains[fieldName] = fieldValue;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst innerSchema = isOptionalSchema(fieldSchema) ? fieldSchema.optional : fieldSchema;\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\t\tpreparedContains[fieldName] = prepareValueForSchema(innerSchema, fieldValue);\n\t\t}\n\t\treturn({\n\t\t\ttype: 'struct',\n\t\t\tfieldNames: value.fieldNames ?? fieldNames,\n\t\t\tcontains: preparedContains\n\t\t});\n\t}\n\n\tif (!isPlainObject(value)) {\n\t\treturn(value);\n\t}\n\n\tconst preparedContains: { [key: string]: unknown } = {};\n\tfor (const fieldName of fieldNames) {\n\t\tconst fieldSchema = structContains[fieldName];\n\t\tif (!fieldSchema) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst fieldValue = value[fieldName];\n\t\tif (fieldValue === undefined) {\n\t\t\tif (!isOptionalSchema(fieldSchema)) {\n\t\t\t\tpreparedContains[fieldName] = fieldValue;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\t\tconst innerSchema = isOptionalSchema(fieldSchema) ? fieldSchema.optional : fieldSchema;\n\t\t// eslint-disable-next-line @typescript-eslint/no-use-before-define\n\t\tpreparedContains[fieldName] = prepareValueForSchema(innerSchema, fieldValue);\n\t}\n\n\treturn({\n\t\ttype: 'struct',\n\t\tfieldNames,\n\t\tcontains: preparedContains\n\t});\n}\n\nfunction prepareValueForSchema(schema: Schema, value: unknown): unknown {\n\tconst resolved = resolveSchema(schema);\n\n\tif (value === undefined || value === null) {\n\t\treturn(value);\n\t}\n\n\tif (Array.isArray(resolved)) {\n\t\tif (!Array.isArray(value)) {\n\t\t\treturn(value);\n\t\t}\n\t\tconst result = [];\n\t\tfor (let i = 0; i < resolved.length; i++) {\n\t\t\tresult.push(prepareValueForSchema(assert<Schema>(resolved[i]), value[i]));\n\t\t}\n\t\treturn(result);\n\t}\tif (typeof resolved === 'object' && resolved !== null) {\n\t\tif ('optional' in resolved) {\n\t\t\tif (value === undefined) {\n\t\t\t\treturn(undefined);\n\t\t\t}\n\t\t\treturn(prepareValueForSchema(resolved.optional, value));\n\t\t}\n\t\tif ('sequenceOf' in resolved) {\n\t\t\tif (!Array.isArray(value)) {\n\t\t\t\treturn(value);\n\t\t\t}\n\t\t\treturn(value.map(item => prepareValueForSchema(resolved.sequenceOf, item)));\n\t\t}\n\t\tif ('choice' in resolved) {\n\t\t\tconst choices = Array.isArray(resolved.choice)\n\t\t\t\t? resolved.choice\n\t\t\t\t: Array.from(resolved.choice);\n\t\t\tfor (const choiceSchema of choices) {\n\t\t\t\tconst preparedChoice = prepareValueForSchema(choiceSchema, value);\n\t\t\t\tif (preparedChoice !== value) {\n\t\t\t\t\treturn(preparedChoice);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn(value);\n\t\t}\n\t\tif ('type' in resolved) {\n\t\t\tswitch (resolved.type) {\n\t\t\t\tcase 'context':\n\t\t\t\t\treturn(prepareContextValue(resolved, value, prepareValueForSchema));\n\t\t\t\tcase 'struct':\n\t\t\t\t\treturn(prepareStructValue(resolved, value));\n\t\t\t\tdefault:\n\t\t\t\t\treturn(value);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn(value);\n}\n\nexport function encodeValueBySchema(schema: Schema, value: unknown, options?: EncodeOptions): ASN1AnyJS {\n\tconst contextualized = contextualizeStructSchema(schema);\n\ttry {\n\t\tconst preparedUnknown = prepareValueForSchema(contextualized, value);\n\t\t// XXX:TODO Fix depth issue\n\t\t// @ts-ignore\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/consistent-type-assertions\n\t\treturn(ValidateASN1.againstSchema(preparedUnknown as ASN1AnyJS, contextualized));\n\t} catch (err) {\n\t\tconst printer = options?.valuePrinter ?? defaultPrintValue;\n\t\tconst prefix = options?.attributeName ? `Attribute ${options.attributeName}: ` : '';\n\t\tconst message = err instanceof Error ? err.message : String(err);\n\n\t\tthrow(new Error(`${prefix}${message} (value: ${printer(value)})`));\n\t}\n}\n\nexport function normalizeDecodedASN1(input: unknown, principals: KeetaNetAccount[]): unknown {\n\tif (input === undefined || input === null) {\n\t\treturn(input);\n\t}\n\tif (Array.isArray(input)) {\n\t\treturn(input.map(function(childInput) {\n\t\t\treturn(normalizeDecodedASN1(childInput, principals));\n\t\t}));\n\t}\n\tif (input instanceof Date) {\n\t\treturn(input);\n\t}\n\tif (Buffer.isBuffer(input) || input instanceof ArrayBuffer) {\n\t\treturn(input);\n\t}\n\tif (isASN1ContextTag(input)) {\n\t\treturn(normalizeDecodedASN1(input.contains, principals));\n\t}\n\tif (isASN1String(input)) {\n\t\treturn(normalizeDecodedASN1(input.value, principals));\n\t}\n\tif (isASN1Date(input)) {\n\t\treturn(input.date);\n\t}\n\tif (isASN1BitString(input)) {\n\t\treturn(input.value);\n\t}\n\tif (isASN1Struct(input)) {\n\t\tconst contains = input.contains ?? {};\n\t\tconst orderedNames = Array.isArray(input.fieldNames) && input.fieldNames.length > 0\n\t\t\t? input.fieldNames\n\t\t\t: Object.keys(contains);\n\t\tconst result: { [key: string]: unknown } = {};\n\t\tfor (const fieldName of orderedNames) {\n\t\t\tif (!Object.prototype.hasOwnProperty.call(contains, fieldName)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst fieldValue = contains[fieldName];\n\t\t\tif (fieldValue !== undefined) {\n\t\t\t\tresult[fieldName] = normalizeDecodedASN1(fieldValue, principals);\n\t\t\t}\n\t\t}\n\n\t\tif (isReferenceSchema(input)) {\n\t\t\tconst url = input.contains.external.contains.url.value;\n\t\t\tconst mimeType = input.contains.external.contains.contentType.value;\n\t\t\tconst encryptionAlgoOID = input.contains.encryptionAlgorithm?.oid;\n\t\t\tconst digestInfo = input.contains.digest.contains;\n\t\t\tlet cachedValue: Blob | null = null;\n\t\t\tresult['$blob'] = async function(additionalPrincipals?: ConstructorParameters<typeof EncryptedContainer>[0]): Promise<Blob> {\n\t\t\t\t/*\n\t\t\t\t * If we already have the cached value, return it\n\t\t\t\t */\n\t\t\t\tif (cachedValue) {\n\t\t\t\t\treturn(cachedValue);\n\t\t\t\t}\n\t\t\t\t/*\n\t\t\t\t * Fetch the remote data\n\t\t\t\t */\n\t\t\t\tconst result = await fetch(url);\n\t\t\t\tif (!result.ok) {\n\t\t\t\t\tthrow(new Error(`Failed to fetch remote data from ${url}: ${result.status} ${result.statusText}`));\n\t\t\t\t}\n\n\t\t\t\tconst dataBlob = await result.blob();\n\t\t\t\tlet data = await dataBlob.arrayBuffer();\n\n\t\t\t\t/*\n\t\t\t\t * Sometimes people like to encode the data\n\t\t\t\t * in a JSON base64 string, check to see if\n\t\t\t\t * that's the case -- hopefully this doesn't\n\t\t\t\t * conflict with any legitimate use case\n\t\t\t\t */\n\t\t\t\tif (dataBlob.type === 'application/json') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst asJSON: unknown = JSON.parse(Buffer.from(data).toString('utf-8'));\n\t\t\t\t\t\tif (isPlainObject(asJSON)) {\n\t\t\t\t\t\t\tif (Object.keys(asJSON).length === 2) {\n\t\t\t\t\t\t\t\tif ('data' in asJSON && typeof asJSON.data === 'string' && 'mimeType' in asJSON && typeof asJSON.mimeType === 'string') {\n\t\t\t\t\t\t\t\t\tdata = bufferToArrayBuffer(Buffer.from(asJSON.data, 'base64'));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t/* Ignored */\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/*\n\t\t\t\t * Decrypt the data, if encrypted\n\t\t\t\t */\n\t\t\t\tif (encryptionAlgoOID) {\n\t\t\t\t\tswitch (encryptionAlgoOID) {\n\t\t\t\t\t\tcase '1.3.6.1.4.1.62675.2':\n\t\t\t\t\t\tcase 'KeetaEncryptedContainerV1': {\n\t\t\t\t\t\t\tconst container = EncryptedContainer.fromEncryptedBuffer(data, [\n\t\t\t\t\t\t\t\t...principals,\n\t\t\t\t\t\t\t\t...(additionalPrincipals ?? [])\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t\tdata = await container.getPlaintext();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tthrow(new Error(`Unsupported encryption algorithm OID: ${encryptionAlgoOID}`));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/*\n\t\t\t\t * Compute and verify the hash (of the plain text)\n\t\t\t\t */\n\t\t\t\tif (!Buffer.isBuffer(digestInfo.digest)) {\n\t\t\t\t\tthrow(new TypeError('Digest value is not a buffer'));\n\t\t\t\t}\n\t\t\t\tconst validHash = await checkHashWithOID(data, {\n\t\t\t\t\tdigest: digestInfo.digest,\n\t\t\t\t\tdigestAlgorithm: digestInfo.digestAlgorithm\n\t\t\t\t});\n\t\t\t\tif (validHash !== true) {\n\t\t\t\t\tthrow(validHash);\n\t\t\t\t}\n\n\t\t\t\tconst blob = new Blob([data], { type: mimeType });\n\t\t\t\tcachedValue = blob;\n\t\t\t\treturn(blob);\n\t\t\t}\n\t\t}\n\t\treturn(result);\n\t}\n\tif (isASN1Set(input)) {\n\t\treturn({\n\t\t\tname: normalizeDecodedASN1(input.name, principals),\n\t\t\tvalue: normalizeDecodedASN1(input.value, principals)\n\t\t});\n\t}\n\tif (isPlainObject(input)) {\n\t\tconst result: { [key: string]: unknown } = {};\n\t\tfor (const [key, value] of Object.entries(input)) {\n\t\t\tresult[key] = normalizeDecodedASN1(value, principals);\n\t\t}\n\t\treturn(result);\n\t}\n\n\treturn(input);\n}\n\nexport type {\n\tASN1AnyJS,\n\tASN1OID,\n\tASN1ContextTag,\n\tSchema,\n\tSchemaMap\n};\n\nexport {\n\tASN1toJS,\n\tJStoASN1,\n\tBufferStorageASN1,\n\tValidateASN1\n};\n"]}
|
package/lib/utils/json.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { types as nodeUtilsTypes } from 'util';
|
|
1
|
+
import { types as nodeUtilsTypes } from './util.js';
|
|
2
2
|
import { Buffer } from './buffer.js';
|
|
3
3
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4
4
|
function convertToJSONReplacer(key, jsonItem, options = { searchable: false }) {
|
package/lib/utils/json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/lib/utils/json.ts"],"names":[],"mappings":"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","sourcesContent":["import { types as nodeUtilsTypes } from 'util';\nimport { Buffer } from './buffer.js';\nimport type { JSONSerializable, ToJSONSerializable } from '@keetanetwork/keetanet-client/lib/utils/conversion.js';\nexport type { JSONSerializable, ToJSONSerializable };\n\ntype ConvertToJSONOptions = {\n\tsearchable?: boolean;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction convertToJSONReplacer(this: any, key: string, jsonItem: unknown, options: ConvertToJSONOptions = { searchable: false }): JSONSerializable {\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n\tconst item = this[key];\n\n\tswitch (typeof item) {\n\t\tcase 'string':\n\t\tcase 'boolean':\n\t\t\treturn(item);\n\t\tcase 'undefined':\n\t\t\treturn(String(item));\n\t\tcase 'symbol':\n\t\t\treturn(`[${item.toString()}]`);\n\t\tcase 'function':\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif ('toString' in item && typeof item.toString === 'function') {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call\n\t\t\t\tconst itemString: string = item.toString();\n\t\t\t\tif (itemString.toString().startsWith('class ')) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\t\treturn(`[Class ${item.name}]`);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\treturn(`[Function ${item.name}]`);\n\t\tcase 'bigint':\n\t\t\tif (item < BigInt(Number.MAX_SAFE_INTEGER) && item > BigInt(Number.MIN_SAFE_INTEGER)) {\n\t\t\t\treturn(Number(item.toString()));\n\t\t\t} else {\n\t\t\t\tif (item < 0n) {\n\t\t\t\t\tconst absItem = item * -1n;\n\t\t\t\t\tif (options.searchable) {\n\t\t\t\t\t\treturn(`-0x${absItem.toString(16)}`);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn(`-0x${absItem.toString(16)}[=>${item.toString(10)}]`);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (options.searchable) {\n\t\t\t\t\t\treturn(`0x${item.toString(16)}`);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn(`0x${item.toString(16)}[=>${item.toString(10)}]`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase 'number':\n\t\t\tif (options.searchable) {\n\t\t\t\tif (isNaN(item)) {\n\t\t\t\t\treturn('#NaN');\n\t\t\t\t}\n\n\t\t\t\tif (item === -Infinity) {\n\t\t\t\t\treturn('#-Inf');\n\t\t\t\t}\n\n\t\t\t\tif (item === Infinity) {\n\t\t\t\t\treturn('#Inf');\n\t\t\t\t}\n\n\t\t\t\treturn(item);\n\t\t\t}\n\n\t\t\tif (item === -Infinity) {\n\t\t\t\treturn('-∞');\n\t\t\t}\n\t\t\tif (item === Infinity) {\n\t\t\t\treturn('∞');\n\t\t\t}\n\n\t\t\tif (isNaN(item)) {\n\t\t\t\treturn('#NaN');\n\t\t\t}\n\n\t\t\treturn(item);\n\t\tdefault:\n\t\t\t/* We handle other cases outside of this switch */\n\t\t\tbreak;\n\t}\n\n\tif (item === undefined) {\n\t\treturn(String(item));\n\t}\n\n\tif (item === null) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn(item);\n\t}\n\n\tif (Array.isArray(item)) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn(item);\n\t}\n\n\tif (nodeUtilsTypes.isDate(item)) {\n\t\tif (options.searchable) {\n\t\t\treturn(item.toISOString());\n\t\t}\n\n\t\treturn(`[Date ${item.toISOString()}]`);\n\t}\n\n\tif (Buffer.isBuffer(item)) {\n\t\treturn(item.toString('base64'));\n\t}\n\n\tif (nodeUtilsTypes.isArrayBuffer(item)) {\n\t\treturn(Buffer.from(item).toString('base64'));\n\t}\n\n\tif (item instanceof Promise) {\n\t\treturn('[Promise]');\n\t}\n\n\tif (!(item instanceof Object)) {\n\t\tthrow(new Error(`internal error: Unknown type ${typeof item}`));\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-member-access\n\tif ('publicKeyString' in item && typeof item.publicKeyString === 'object' && item.publicKeyString !== null) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-member-access\n\t\tif ('get' in item.publicKeyString && item.publicKeyString.get !== undefined) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif (typeof item.publicKeyString.get === 'function') {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-inferrable-types\n\t\t\t\tlet addToString: string = 'UNKNOWN';\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\tif ('hasPrivateKey' in item && typeof item.hasPrivateKey === 'boolean') {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n\t\t\t\t\tconst hasPrivateKey = item.hasPrivateKey;\n\t\t\t\t\tif (hasPrivateKey) {\n\t\t\t\t\t\taddToString = 'PRIVATE';\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddToString = 'PUBLIC';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call\n\t\t\t\treturn(`[Account ${item.publicKeyString.get()} ${addToString}]`);\n\t\t\t}\n\t\t}\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\tif ('toJSON' in item && typeof item.toJSON === 'function') {\n\t\t/*\n\t\t * No need to call toJSON() if it's a function, as it will\n\t\t * be called by the JSON.stringify() function and passed in\n\t\t * as the second argument to this function (jsonItem).\n\t\t */\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-explicit-any,@typescript-eslint/consistent-type-assertions\n\t\treturn(jsonItem as any);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\tif ('constructor' in item && typeof item.constructor === 'function') {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-member-access\n\t\tif ('name' in item.constructor && typeof item.constructor.name === 'string') {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n\t\t\tconst typeID = item.constructor.name;\n\t\t\tif (typeID !== 'Object') {\n\t\t\t\treturn(`[Instance ${typeID}]`);\n\t\t\t}\n\t\t}\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\treturn(item);\n}\n\nexport function convertToJSON(input: unknown, options?: Parameters<typeof convertToJSONReplacer>[2]): JSONSerializable {\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-explicit-any\n\treturn(JSON.parse(JSON.stringify(input, function(this: any, key: string, value: unknown) {\n\t\treturn(convertToJSONReplacer.call(this, key, value, options));\n\t})));\n}\n\n/** @internal */\nexport const _Testing = {\n\tconvertToJSONReplacer\n};\n"]}
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/lib/utils/json.ts"],"names":[],"mappings":"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","sourcesContent":["import { types as nodeUtilsTypes } from './util.js';\nimport { Buffer } from './buffer.js';\nimport type { JSONSerializable, ToJSONSerializable } from '@keetanetwork/keetanet-client/lib/utils/conversion.js';\nexport type { JSONSerializable, ToJSONSerializable };\n\ntype ConvertToJSONOptions = {\n\tsearchable?: boolean;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction convertToJSONReplacer(this: any, key: string, jsonItem: unknown, options: ConvertToJSONOptions = { searchable: false }): JSONSerializable {\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n\tconst item = this[key];\n\n\tswitch (typeof item) {\n\t\tcase 'string':\n\t\tcase 'boolean':\n\t\t\treturn(item);\n\t\tcase 'undefined':\n\t\t\treturn(String(item));\n\t\tcase 'symbol':\n\t\t\treturn(`[${item.toString()}]`);\n\t\tcase 'function':\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif ('toString' in item && typeof item.toString === 'function') {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call\n\t\t\t\tconst itemString: string = item.toString();\n\t\t\t\tif (itemString.toString().startsWith('class ')) {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\t\treturn(`[Class ${item.name}]`);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\treturn(`[Function ${item.name}]`);\n\t\tcase 'bigint':\n\t\t\tif (item < BigInt(Number.MAX_SAFE_INTEGER) && item > BigInt(Number.MIN_SAFE_INTEGER)) {\n\t\t\t\treturn(Number(item.toString()));\n\t\t\t} else {\n\t\t\t\tif (item < 0n) {\n\t\t\t\t\tconst absItem = item * -1n;\n\t\t\t\t\tif (options.searchable) {\n\t\t\t\t\t\treturn(`-0x${absItem.toString(16)}`);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn(`-0x${absItem.toString(16)}[=>${item.toString(10)}]`);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (options.searchable) {\n\t\t\t\t\t\treturn(`0x${item.toString(16)}`);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn(`0x${item.toString(16)}[=>${item.toString(10)}]`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\tcase 'number':\n\t\t\tif (options.searchable) {\n\t\t\t\tif (isNaN(item)) {\n\t\t\t\t\treturn('#NaN');\n\t\t\t\t}\n\n\t\t\t\tif (item === -Infinity) {\n\t\t\t\t\treturn('#-Inf');\n\t\t\t\t}\n\n\t\t\t\tif (item === Infinity) {\n\t\t\t\t\treturn('#Inf');\n\t\t\t\t}\n\n\t\t\t\treturn(item);\n\t\t\t}\n\n\t\t\tif (item === -Infinity) {\n\t\t\t\treturn('-∞');\n\t\t\t}\n\t\t\tif (item === Infinity) {\n\t\t\t\treturn('∞');\n\t\t\t}\n\n\t\t\tif (isNaN(item)) {\n\t\t\t\treturn('#NaN');\n\t\t\t}\n\n\t\t\treturn(item);\n\t\tdefault:\n\t\t\t/* We handle other cases outside of this switch */\n\t\t\tbreak;\n\t}\n\n\tif (item === undefined) {\n\t\treturn(String(item));\n\t}\n\n\tif (item === null) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn(item);\n\t}\n\n\tif (Array.isArray(item)) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\t\treturn(item);\n\t}\n\n\tif (nodeUtilsTypes.isDate(item)) {\n\t\tif (options.searchable) {\n\t\t\treturn(item.toISOString());\n\t\t}\n\n\t\treturn(`[Date ${item.toISOString()}]`);\n\t}\n\n\tif (Buffer.isBuffer(item)) {\n\t\treturn(item.toString('base64'));\n\t}\n\n\tif (nodeUtilsTypes.isArrayBuffer(item)) {\n\t\treturn(Buffer.from(item).toString('base64'));\n\t}\n\n\tif (item instanceof Promise) {\n\t\treturn('[Promise]');\n\t}\n\n\tif (!(item instanceof Object)) {\n\t\tthrow(new Error(`internal error: Unknown type ${typeof item}`));\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-member-access\n\tif ('publicKeyString' in item && typeof item.publicKeyString === 'object' && item.publicKeyString !== null) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-member-access\n\t\tif ('get' in item.publicKeyString && item.publicKeyString.get !== undefined) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\tif (typeof item.publicKeyString.get === 'function') {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-inferrable-types\n\t\t\t\tlet addToString: string = 'UNKNOWN';\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\t\t\tif ('hasPrivateKey' in item && typeof item.hasPrivateKey === 'boolean') {\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n\t\t\t\t\tconst hasPrivateKey = item.hasPrivateKey;\n\t\t\t\t\tif (hasPrivateKey) {\n\t\t\t\t\t\taddToString = 'PRIVATE';\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddToString = 'PUBLIC';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call\n\t\t\t\treturn(`[Account ${item.publicKeyString.get()} ${addToString}]`);\n\t\t\t}\n\t\t}\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\tif ('toJSON' in item && typeof item.toJSON === 'function') {\n\t\t/*\n\t\t * No need to call toJSON() if it's a function, as it will\n\t\t * be called by the JSON.stringify() function and passed in\n\t\t * as the second argument to this function (jsonItem).\n\t\t */\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-explicit-any,@typescript-eslint/consistent-type-assertions\n\t\treturn(jsonItem as any);\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\tif ('constructor' in item && typeof item.constructor === 'function') {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-member-access\n\t\tif ('name' in item.constructor && typeof item.constructor.name === 'string') {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n\t\t\tconst typeID = item.constructor.name;\n\t\t\tif (typeID !== 'Object') {\n\t\t\t\treturn(`[Instance ${typeID}]`);\n\t\t\t}\n\t\t}\n\t}\n\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return\n\treturn(item);\n}\n\nexport function convertToJSON(input: unknown, options?: Parameters<typeof convertToJSONReplacer>[2]): JSONSerializable {\n\t// eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-explicit-any\n\treturn(JSON.parse(JSON.stringify(input, function(this: any, key: string, value: unknown) {\n\t\treturn(convertToJSONReplacer.call(this, key, value, options));\n\t})));\n}\n\n/** @internal */\nexport const _Testing = {\n\tconvertToJSONReplacer\n};\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';
|
|
2
|
+
declare const util: typeof KeetaNetLib.Utils.Helper.util;
|
|
3
|
+
declare const types: typeof util.types;
|
|
4
|
+
declare const inspect: typeof util.inspect;
|
|
5
|
+
export { types, inspect };
|
|
6
|
+
export default util;
|
|
7
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEnE,QAAA,MAAM,IAAI,EAAE,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,IAAoC,CAAC;AAEjF,QAAA,MAAM,KAAK,EAAE,OAAO,IAAI,CAAC,KAAkB,CAAC;AAC5C,QAAA,MAAM,OAAO,EAAE,OAAO,IAAI,CAAC,OAAsB,CAAC;AAElD,OAAO,EACN,KAAK,EACL,OAAO,EACP,CAAA;AAED,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/lib/utils/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,IAAI,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEnE,MAAM,IAAI,GAAyC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AAEjF,MAAM,KAAK,GAAsB,IAAI,CAAC,KAAK,CAAC;AAC5C,MAAM,OAAO,GAAwB,IAAI,CAAC,OAAO,CAAC;AAElD,OAAO,EACN,KAAK,EACL,OAAO,EACP,CAAA;AAED,eAAe,IAAI,CAAC","sourcesContent":["import { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';\n\nconst util: typeof KeetaNetLib.Utils.Helper.util = KeetaNetLib.Utils.Helper.util;\n\nconst types: typeof util.types = util.types;\nconst inspect: typeof util.inspect = util.inspect;\n\nexport {\n\ttypes,\n\tinspect\n}\n\nexport default util;\n"]}
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keetanetwork/anchor",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.20",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@keetanetwork/anchor",
|
|
9
|
-
"version": "0.0.
|
|
9
|
+
"version": "0.0.20",
|
|
10
10
|
"license": "SEE LICENSE IN LICENSE",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@keetanetwork/currency-info": "1.2.5",
|
package/package.json
CHANGED
package/services/kyc/client.d.ts
CHANGED
|
@@ -132,6 +132,7 @@ declare class KeetaKYCAnchorClient {
|
|
|
132
132
|
getCertificates(providerID: ProviderID, request: KeetaKYCAnchorCreateVerificationRequest & {
|
|
133
133
|
id: RequestID;
|
|
134
134
|
}): Promise<KeetaKYCAnchorClientGetCertificateResponse>;
|
|
135
|
+
getSupportedCountries(): Promise<CurrencyInfo.Country[]>;
|
|
135
136
|
getEstimate(..._ignore_args: unknown[]): Promise<never>;
|
|
136
137
|
checkLocality(..._ignore_args: unknown[]): Promise<never>;
|
|
137
138
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/services/kyc/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/services/kyc/client.ts"],"names":[],"mappings":"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"}
|
package/services/kyc/client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/services/kyc/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';\nimport * as CurrencyInfo from '@keetanetwork/currency-info';\nimport { createIs } from 'typia';\n\nimport { getDefaultResolver } from '../../config.js';\nimport { Certificate as KYCCertificate } from '../../lib/certificates.js';\n\nimport type {\n\tClient as KeetaNetClient,\n\tUserClient as KeetaNetUserClient\n} from '@keetanetwork/keetanet-client';\nimport type {\n\tKeetaKYCAnchorCreateVerificationRequest,\n\tKeetaKYCAnchorCreateVerificationResponse,\n\tKeetaKYCAnchorGetCertificateResponse\n} from './common.ts';\nimport {\n\tverifySignedData,\n\tgenerateSignedData\n} from './common.js';\nimport type { Logger } from '../../lib/log/index.ts';\nimport type Resolver from '../../lib/resolver.ts';\nimport type { ServiceMetadata } from '../../lib/resolver.ts';\nimport crypto from '../../lib/utils/crypto.js';\nimport { validateURL } from '../../lib/utils/url.js';\n\nconst PARANOID = true;\n\n/**\n * The configuration options for the KYC Anchor client.\n */\nexport type KeetaKYCAnchorClientConfig = {\n\t/**\n\t * The ID of the client. This is used to identify the client in logs.\n\t * If not provided, a random ID will be generated.\n\t */\n\tid?: string;\n\t/**\n\t * The logger to use for logging messages. If not provided, no logging\n\t * will be done.\n\t */\n\tlogger?: Logger;\n\t/**\n\t * The resolver to use for resolving KYC Anchor services. If not\n\t * provided, a default resolver will be created using the provided\n\t * client and network (if the network is also not provided and the\n\t * client is not a UserClient, an error occurs).\n\t */\n\tresolver?: Resolver;\n} & Omit<NonNullable<Parameters<typeof getDefaultResolver>[1]>, 'client'>;\n\n/**\n * Any kind of X.509v3 Certificate. This may or may not be a KYC certificate.\n */\ntype BaseCertificate = InstanceType<typeof KeetaNetLib.Utils.Certificate.Certificate>;\n\n/**\n * The response type for the {@link KeetaKYCAnchorClient['getCertificates']()} method of the KYC Anchor client.\n * It contains the certificate and optionally a set of intermediate certificates.\n */\ntype KeetaKYCAnchorClientGetCertificateResponse = ({\n\tok: true;\n\tresults: {\n\t\tcertificate: KYCCertificate;\n\t\tintermediates?: Set<BaseCertificate> | undefined;\n\t}[]\n} | {\n\tok: false;\n\tretryAfter: number;\n\treason: string;\n});\n\ntype KeetaKYCAnchorClientCreateVerificationRequest = Omit<KeetaKYCAnchorCreateVerificationRequest, 'signed' | 'account'> & {\n\taccount: InstanceType<typeof KeetaNetLib.Account>;\n};\n\n/**\n * An opaque type that represents a provider ID.\n */\ntype ProviderID = string & {\n\treadonly __providerID: unique symbol;\n};\n\n/**\n * An opaque type that represents a KYC Anchor request ID\n */\ntype RequestID = string & {\n\treadonly __requestID: unique symbol;\n};\n\n/**\n * A list of operations that can be performed by the KYC Anchor service.\n */\ntype KeetaKYCAnchorOperations = {\n\t[operation in keyof NonNullable<ServiceMetadata['services']['kyc']>[string]['operations']]?: (params?: { [key: string]: string; }) => URL;\n};\n\n/**\n * The service information for a KYC Anchor service.\n */\ntype KeetaKYCVerificationServiceInfo = {\n\toperations: {\n\t\t[operation in keyof KeetaKYCAnchorOperations]: Promise<KeetaKYCAnchorOperations[operation]>;\n\t};\n\tcountryCodes?: CurrencyInfo.Country[] | undefined;\n\tca: () => Promise<KYCCertificate>;\n};\n\n/**\n * For each matching KYC Anchor service, this type describes the\n * operations available and the country codes that the service supports.\n */\ntype GetEndpointsResult = {\n\t[id: ProviderID]: KeetaKYCVerificationServiceInfo;\n};\n\nconst isKeetaKYCAnchorCreateVerificationResponse = createIs<KeetaKYCAnchorCreateVerificationResponse>();\nconst isKeetaKYCAnchorGetCertificateResponse = createIs<KeetaKYCAnchorGetCertificateResponse>();\n\nasync function getEndpoints(resolver: Resolver, request: KeetaKYCAnchorCreateVerificationRequest): Promise<GetEndpointsResult | null> {\n\tconst response = await resolver.lookup('kyc', {\n\t\tcountryCodes: request.countryCodes\n\t});\n\n\tif (response === undefined) {\n\t\treturn(null);\n\t}\n\n\tconst serviceInfoPromises = Object.entries(response).map(async function([id, serviceInfo]): Promise<[ProviderID, KeetaKYCVerificationServiceInfo]> {\n\t\tconst countryCodesPromises = (await serviceInfo.countryCodes?.('array'))?.map(async function(countryCode) {\n\t\t\treturn(new CurrencyInfo.Country(CurrencyInfo.Country.assertCountryCode(await countryCode('string'))));\n\t\t});\n\n\t\tlet countryCodes: CurrencyInfo.Country[] | undefined;\n\t\tif (countryCodesPromises !== undefined) {\n\t\t\tconst countryCodesResults = await Promise.allSettled(countryCodesPromises);\n\t\t\tcountryCodes = countryCodesResults.map(function(result) {\n\t\t\t\tif (result.status === 'fulfilled') {\n\t\t\t\t\treturn(result.value);\n\t\t\t\t}\n\t\t\t\tthrow(result.reason);\n\t\t\t});\n\t\t}\n\n\t\tconst operations = await serviceInfo.operations('object');\n\t\tconst operationsFunctions: KeetaKYCVerificationServiceInfo['operations'] = {};\n\t\tfor (const [key, operation] of Object.entries(operations)) {\n\t\t\tif (operation === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tObject.defineProperty(operationsFunctions, key, {\n\t\t\t\tget: async function() {\n\t\t\t\t\tconst url = await operation('string');\n\t\t\t\t\treturn(function(params?: { [key: string]: string; }): URL {\n\t\t\t\t\t\tlet substitutedURL = url;\n\t\t\t\t\t\tfor (const [paramKey, paramValue] of Object.entries(params ?? {})) {\n\t\t\t\t\t\t\tsubstitutedURL = substitutedURL.replace(`{${paramKey}}`, encodeURIComponent(paramValue));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn(validateURL(substitutedURL));\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\t\t}\n\t\treturn([\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tid as ProviderID,\n\t\t\t{\n\t\t\t\tcountryCodes: countryCodes,\n\t\t\t\toperations: operationsFunctions,\n\t\t\t\tca: async function() {\n\t\t\t\t\tconst certificatePEM = await serviceInfo.ca?.('string');\n\t\t\t\t\tconst certificate = new KYCCertificate(certificatePEM);\n\n\t\t\t\t\treturn(certificate);\n\t\t\t\t}\n\t\t\t}\n\t\t]);\n\t});\n\n\tconst retval = Object.fromEntries(await Promise.all(serviceInfoPromises));\n\n\treturn(retval);\n}\n\ntype KeetaKYCAnchorCommonConfig = {\n\tid: ProviderID;\n\tserviceInfo: KeetaKYCVerificationServiceInfo;\n\trequest: KeetaKYCAnchorCreateVerificationRequest;\n\tclient: KeetaKYCAnchorClient;\n\toperations: NonNullable<Pick<KeetaKYCAnchorOperations, 'createVerification' | 'getCertificates'>>;\n\tlogger?: Logger | undefined;\n};\n\n/**\n * Represents an in-progress KYC verification request.\n */\nclass KeetaKYCVerification {\n\treadonly providerID: KeetaKYCAnchorCommonConfig['id'];\n\treadonly id: RequestID;\n\tprivate readonly serviceInfo: KeetaKYCAnchorCommonConfig['serviceInfo'];\n\tprivate readonly request: KeetaKYCAnchorCommonConfig['request'];\n\tprivate readonly logger?: KeetaKYCAnchorCommonConfig['logger'] | undefined;\n\tprivate readonly client: KeetaKYCAnchorCommonConfig['client'];\n\tprivate readonly response: Extract<KeetaKYCAnchorCreateVerificationResponse, { ok: true }>;\n\n\tprivate constructor(args: KeetaKYCAnchorCommonConfig, response: Extract<KeetaKYCAnchorCreateVerificationResponse, { ok: true }>) {\n\t\tthis.providerID = args.id;\n\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\tthis.id = response.id as RequestID;\n\t\tthis.serviceInfo = args.serviceInfo;\n\t\tthis.request = args.request;\n\t\tthis.client = args.client;\n\t\tthis.logger = args.logger;\n\t\tthis.response = response;\n\n\t\tthis.logger?.debug(`Created KYC verification for provider ID: ${this.providerID}, request: ${JSON.stringify(args.request)}, response: ${JSON.stringify(response)}`);\n\t}\n\n\tstatic async start(args: KeetaKYCAnchorCommonConfig): Promise<KeetaKYCVerification> {\n\t\targs.logger?.debug(`Starting KYC verification for provider ID: ${args.id}, request: ${JSON.stringify(args.request)}`);\n\n\t\tconst endpoints = args.operations;\n\t\tconst createVerification = endpoints.createVerification?.();\n\t\tif (createVerification === undefined) {\n\t\t\tthrow(new Error('KYC verification service does not support createVerification operation'));\n\t\t}\n\n\t\tconst requestInformation = await fetch(createVerification, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'Accept': 'application/json'\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\trequest: args.request\n\t\t\t})\n\t\t});\n\n\t\tconst requestInformationJSON: unknown = await requestInformation.json();\n\t\tif (!isKeetaKYCAnchorCreateVerificationResponse(requestInformationJSON)) {\n\t\t\tthrow(new Error(`Invalid response from KYC verification service: ${JSON.stringify(requestInformationJSON)}`));\n\t\t}\n\n\t\tif (!requestInformationJSON.ok) {\n\t\t\tthrow(new Error(`KYC verification request failed: ${requestInformationJSON.error}`));\n\t\t}\n\n\t\targs.logger?.debug(`KYC verification request successful, request ID ${requestInformationJSON.id}`);\n\n\t\treturn(new KeetaKYCVerification(args, requestInformationJSON));\n\n\t}\n\n\tget expectedCost(): typeof this.response.expectedCost {\n\t\treturn(this.response.expectedCost);\n\t}\n\n\tget webURL(): URL {\n\t\treturn(validateURL(this.response.webURL));\n\t}\n\n\tasync getProviderIssuerCertificate(): Promise<KYCCertificate> {\n\t\treturn(await this.serviceInfo.ca());\n\t}\n\n\tgetCertificates(): Promise<KeetaKYCAnchorClientGetCertificateResponse> {\n\t\treturn(this.client.getCertificates(this.providerID, {\n\t\t\tid: this.id,\n\t\t\t...this.request\n\t\t}));\n\t}\n}\n\n/**\n * Represents the KYC operations for a specific provider\n */\nclass KeetaKYCProvider {\n\treadonly id: ProviderID;\n\tprivate readonly serviceInfo: KeetaKYCVerificationServiceInfo;\n\tprivate readonly request: KeetaKYCAnchorCreateVerificationRequest;\n\tprivate readonly logger?: Logger | undefined;\n\tprivate readonly client: KeetaKYCAnchorClient;\n\tprivate readonly operations: NonNullable<Pick<KeetaKYCAnchorOperations, 'createVerification' | 'getCertificates'>>;\n\n\tprivate cachedCA?: KYCCertificate;\n\n\tconstructor(args: KeetaKYCAnchorCommonConfig) {\n\t\tthis.id = args.id;\n\t\tthis.serviceInfo = args.serviceInfo;\n\t\tthis.request = args.request;\n\t\tthis.client = args.client;\n\t\tthis.operations = args.operations;\n\t\tthis.logger = args.logger;\n\n\t\tthis.logger?.debug(`Created KYC verification for provider ID: ${args.id}, request: ${JSON.stringify(args.request)}`);\n\t}\n\n\tasync countryCodes(): Promise<CurrencyInfo.Country[] | undefined> {\n\t\treturn(this.serviceInfo.countryCodes);\n\t}\n\n\tasync ca(): Promise<KYCCertificate> {\n\t\tif (this.cachedCA !== undefined) {\n\t\t\treturn(this.cachedCA);\n\t\t}\n\n\t\tthis.cachedCA = await this.serviceInfo.ca();\n\n\t\treturn(this.cachedCA);\n\t}\n\n\tasync startVerification(): Promise<KeetaKYCVerification> {\n\t\treturn(await KeetaKYCVerification.start({\n\t\t\tid: this.id,\n\t\t\tserviceInfo: this.serviceInfo,\n\t\t\trequest: this.request,\n\t\t\tclient: this.client,\n\t\t\toperations: this.operations,\n\t\t\tlogger: this.logger\n\t\t}));\n\t}\n}\n\n\nclass KeetaKYCAnchorClient {\n\treadonly resolver: Resolver;\n\treadonly id: string;\n\tprivate readonly logger?: Logger | undefined;\n\n\tconstructor(client: KeetaNetClient | KeetaNetUserClient, config: KeetaKYCAnchorClientConfig = {}) {\n\t\tthis.resolver = config.resolver ?? getDefaultResolver(client, config);\n\t\tthis.id = config.id ?? crypto.randomUUID();\n\t\tthis.logger = config.logger;\n\t}\n\n\tasync createVerification(request: KeetaKYCAnchorClientCreateVerificationRequest): Promise<KeetaKYCProvider[]> {\n\t\tconst signedData = await generateSignedData(request.account.assertAccount());\n\n\t\tif (PARANOID) {\n\t\t\tconst check = await verifySignedData({ account: request.account.publicKeyString.get(), signed: signedData });\n\t\t\tif (!check) {\n\t\t\t\tthrow(new Error('Failed to verify signed data'));\n\t\t\t}\n\t\t}\n\n\t\tconst signedRequest: KeetaKYCAnchorCreateVerificationRequest = {\n\t\t\t...request,\n\t\t\taccount: request.account.publicKeyString.get(),\n\t\t\tsigned: signedData\n\t\t};\n\n\t\tconst endpoints = await getEndpoints(this.resolver, signedRequest);\n\t\tif (endpoints === null) {\n\t\t\tthrow(new Error('No KYC endpoints found for the given criteria'));\n\t\t}\n\n\t\tconst validEndpoints = await Promise.allSettled(Object.entries(endpoints).map(async ([id, serviceInfo]) => {\n\t\t\tconst endpoints = serviceInfo.operations;\n\t\t\t/*\n\t\t\t * Verify that we have the required operations\n\t\t\t * available to perform a KYC verification.\n\t\t\t */\n\t\t\tconst createVerification = await endpoints.createVerification;\n\t\t\tconst getCertificates = await endpoints.getCertificates;\n\t\t\tif (createVerification === undefined || getCertificates === undefined) {\n\t\t\t\tthis.logger?.warn(`KYC verification provider ${id} does not support required operations (createVerification, getCertificates)`);\n\n\t\t\t\treturn(null);\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * We can safely cast the ID to a ProviderID because it's a branded type\n\t\t\t * for this specific type\n\t\t\t */\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tconst providerID = id as ProviderID;\n\t\t\treturn(new KeetaKYCProvider({\n\t\t\t\tid: providerID,\n\t\t\t\tserviceInfo: serviceInfo,\n\t\t\t\trequest: signedRequest,\n\t\t\t\tclient: this,\n\t\t\t\tlogger: this.logger,\n\t\t\t\toperations: {\n\t\t\t\t\tcreateVerification,\n\t\t\t\t\tgetCertificates\n\t\t\t\t}\n\t\t\t}));\n\t\t}));\n\n\t\t/*\n\t\t * Filter out any endpoints that were not able to be resolved\n\t\t * or that did not have the required operations.\n\t\t */\n\t\tconst retval = validEndpoints.map(function(result) {\n\t\t\tif (result.status !== 'fulfilled') {\n\t\t\t\treturn(null);\n\t\t\t}\n\t\t\tif (result.value === null) {\n\t\t\t\treturn(null);\n\t\t\t}\n\t\t\treturn(result.value);\n\t\t}).filter(function(result) {\n\t\t\treturn(result !== null);\n\t\t});\n\n\t\tif (retval.length === 0) {\n\t\t\tthrow(new Error('No valid KYC verification endpoints found'));\n\t\t}\n\n\t\treturn(retval);\n\t}\n\n\tasync getCertificates(providerID: ProviderID, request: KeetaKYCAnchorCreateVerificationRequest & { id: RequestID; }): Promise<KeetaKYCAnchorClientGetCertificateResponse> {\n\t\tconst endpoints = await getEndpoints(this.resolver, request);\n\t\tif (endpoints === null) {\n\t\t\tthrow(new Error('No KYC endpoints found for the given criteria'));\n\t\t}\n\t\tconst providerEndpoints = endpoints[providerID];\n\t\tif (providerEndpoints === undefined) {\n\t\t\tthrow(new Error(`No KYC endpoints found for provider ID: ${providerID}`));\n\t\t}\n\n\t\tconst requestID = request.id;\n\t\tconst operations = providerEndpoints.operations;\n\t\tconst getCertificate = (await operations.getCertificates)?.({ id: requestID });\n\t\tif (getCertificate === undefined) {\n\t\t\tthrow(new Error('internal error: KYC verification service does not support getCertificate operation'));\n\t\t}\n\n\t\tconst response = await fetch(getCertificate, {\n\t\t\tmethod: 'GET',\n\t\t\theaders: {\n\t\t\t\t'Accept': 'application/json'\n\t\t\t}\n\t\t});\n\n\t\t/*\n\t\t * Handle retryable errors by passing them up to the caller to\n\t\t * retry.\n\t\t */\n\t\tif (response.status === 404) {\n\t\t\treturn({\n\t\t\t\tok: false,\n\t\t\t\tretryAfter: 500,\n\t\t\t\treason: 'Certificate not found'\n\t\t\t});\n\t\t}\n\n\t\t/*\n\t\t * Handle other errors as fatal errors that should not be retried.\n\t\t */\n\t\tif (!response.ok) {\n\t\t\tthrow(new Error(`Failed to get certificate: ${response.statusText}`));\n\t\t}\n\n\t\tconst responseJSON: unknown = await response.json();\n\t\tif (!isKeetaKYCAnchorGetCertificateResponse(responseJSON)) {\n\t\t\tthrow(new Error(`Invalid response from KYC certificate service: ${JSON.stringify(responseJSON)}`));\n\t\t}\n\n\t\tif (!responseJSON.ok) {\n\t\t\tthrow(new Error(`KYC certificate request failed: ${responseJSON.error}`));\n\t\t}\n\n\t\treturn({\n\t\t\tok: true,\n\t\t\tresults: responseJSON.results.map(function(result) {\n\t\t\t\tconst intermediates = result.intermediates?.map(function(intermediate) {\n\t\t\t\t\treturn(new KeetaNetLib.Utils.Certificate.Certificate(intermediate));\n\t\t\t\t});\n\n\t\t\t\tlet intermediatesSet;\n\t\t\t\tif (intermediates !== undefined && intermediates.length > 0) {\n\t\t\t\t\tintermediatesSet = new Set(intermediates);\n\t\t\t\t}\n\n\t\t\t\treturn({\n\t\t\t\t\tcertificate: new KYCCertificate(result.certificate),\n\t\t\t\t\tintermediates: intermediatesSet\n\t\t\t\t});\n\t\t\t})\n\t\t});\n\t}\n\n\tasync getEstimate(..._ignore_args: unknown[]): Promise<never> {\n\t\tthrow(new Error('not implemented'));\n\t}\n\n\tasync checkLocality(..._ignore_args: unknown[]): Promise<never> {\n\t\tthrow(new Error('not implemented'));\n\t}\n}\n\nexport default KeetaKYCAnchorClient;\n"]}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/services/kyc/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { lib as KeetaNetLib } from '@keetanetwork/keetanet-client';\nimport * as CurrencyInfo from '@keetanetwork/currency-info';\nimport { createIs } from 'typia';\n\nimport { getDefaultResolver } from '../../config.js';\nimport { Certificate as KYCCertificate } from '../../lib/certificates.js';\n\nimport type {\n\tClient as KeetaNetClient,\n\tUserClient as KeetaNetUserClient\n} from '@keetanetwork/keetanet-client';\nimport type {\n\tKeetaKYCAnchorCreateVerificationRequest,\n\tKeetaKYCAnchorCreateVerificationResponse,\n\tKeetaKYCAnchorGetCertificateResponse\n} from './common.ts';\nimport {\n\tverifySignedData,\n\tgenerateSignedData\n} from './common.js';\nimport type { Logger } from '../../lib/log/index.ts';\nimport type Resolver from '../../lib/resolver.ts';\nimport type { ServiceMetadata } from '../../lib/resolver.ts';\nimport crypto from '../../lib/utils/crypto.js';\nimport { validateURL } from '../../lib/utils/url.js';\n\nconst PARANOID = true;\n\n/**\n * The configuration options for the KYC Anchor client.\n */\nexport type KeetaKYCAnchorClientConfig = {\n\t/**\n\t * The ID of the client. This is used to identify the client in logs.\n\t * If not provided, a random ID will be generated.\n\t */\n\tid?: string;\n\t/**\n\t * The logger to use for logging messages. If not provided, no logging\n\t * will be done.\n\t */\n\tlogger?: Logger;\n\t/**\n\t * The resolver to use for resolving KYC Anchor services. If not\n\t * provided, a default resolver will be created using the provided\n\t * client and network (if the network is also not provided and the\n\t * client is not a UserClient, an error occurs).\n\t */\n\tresolver?: Resolver;\n} & Omit<NonNullable<Parameters<typeof getDefaultResolver>[1]>, 'client'>;\n\n/**\n * Any kind of X.509v3 Certificate. This may or may not be a KYC certificate.\n */\ntype BaseCertificate = InstanceType<typeof KeetaNetLib.Utils.Certificate.Certificate>;\n\n/**\n * The response type for the {@link KeetaKYCAnchorClient['getCertificates']()} method of the KYC Anchor client.\n * It contains the certificate and optionally a set of intermediate certificates.\n */\ntype KeetaKYCAnchorClientGetCertificateResponse = ({\n\tok: true;\n\tresults: {\n\t\tcertificate: KYCCertificate;\n\t\tintermediates?: Set<BaseCertificate> | undefined;\n\t}[]\n} | {\n\tok: false;\n\tretryAfter: number;\n\treason: string;\n});\n\ntype KeetaKYCAnchorClientCreateVerificationRequest = Omit<KeetaKYCAnchorCreateVerificationRequest, 'signed' | 'account'> & {\n\taccount: InstanceType<typeof KeetaNetLib.Account>;\n};\n\n/**\n * An opaque type that represents a provider ID.\n */\ntype ProviderID = string & {\n\treadonly __providerID: unique symbol;\n};\n\n/**\n * An opaque type that represents a KYC Anchor request ID\n */\ntype RequestID = string & {\n\treadonly __requestID: unique symbol;\n};\n\n/**\n * A list of operations that can be performed by the KYC Anchor service.\n */\ntype KeetaKYCAnchorOperations = {\n\t[operation in keyof NonNullable<ServiceMetadata['services']['kyc']>[string]['operations']]?: (params?: { [key: string]: string; }) => URL;\n};\n\n/**\n * The service information for a KYC Anchor service.\n */\ntype KeetaKYCVerificationServiceInfo = {\n\toperations: {\n\t\t[operation in keyof KeetaKYCAnchorOperations]: Promise<KeetaKYCAnchorOperations[operation]>;\n\t};\n\tcountryCodes?: CurrencyInfo.Country[] | undefined;\n\tca: () => Promise<KYCCertificate>;\n};\n\n/**\n * For each matching KYC Anchor service, this type describes the\n * operations available and the country codes that the service supports.\n */\ntype GetEndpointsResult = {\n\t[id: ProviderID]: KeetaKYCVerificationServiceInfo;\n};\n\nconst isKeetaKYCAnchorCreateVerificationResponse = createIs<KeetaKYCAnchorCreateVerificationResponse>();\nconst isKeetaKYCAnchorGetCertificateResponse = createIs<KeetaKYCAnchorGetCertificateResponse>();\n\nasync function getEndpoints(resolver: Resolver, request: KeetaKYCAnchorCreateVerificationRequest): Promise<GetEndpointsResult | null> {\n\tconst response = await resolver.lookup('kyc', {\n\t\tcountryCodes: request.countryCodes\n\t});\n\n\tif (response === undefined) {\n\t\treturn(null);\n\t}\n\n\tconst serviceInfoPromises = Object.entries(response).map(async function([id, serviceInfo]): Promise<[ProviderID, KeetaKYCVerificationServiceInfo]> {\n\t\tconst countryCodesPromises = (await serviceInfo.countryCodes?.('array'))?.map(async function(countryCode) {\n\t\t\treturn(new CurrencyInfo.Country(CurrencyInfo.Country.assertCountryCode(await countryCode('string'))));\n\t\t});\n\n\t\tlet countryCodes: CurrencyInfo.Country[] | undefined;\n\t\tif (countryCodesPromises !== undefined) {\n\t\t\tconst countryCodesResults = await Promise.allSettled(countryCodesPromises);\n\t\t\tcountryCodes = countryCodesResults.map(function(result) {\n\t\t\t\tif (result.status === 'fulfilled') {\n\t\t\t\t\treturn(result.value);\n\t\t\t\t}\n\t\t\t\tthrow(result.reason);\n\t\t\t});\n\t\t}\n\n\t\tconst operations = await serviceInfo.operations('object');\n\t\tconst operationsFunctions: KeetaKYCVerificationServiceInfo['operations'] = {};\n\t\tfor (const [key, operation] of Object.entries(operations)) {\n\t\t\tif (operation === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tObject.defineProperty(operationsFunctions, key, {\n\t\t\t\tget: async function() {\n\t\t\t\t\tconst url = await operation('string');\n\t\t\t\t\treturn(function(params?: { [key: string]: string; }): URL {\n\t\t\t\t\t\tlet substitutedURL = url;\n\t\t\t\t\t\tfor (const [paramKey, paramValue] of Object.entries(params ?? {})) {\n\t\t\t\t\t\t\tsubstitutedURL = substitutedURL.replace(`{${paramKey}}`, encodeURIComponent(paramValue));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn(validateURL(substitutedURL));\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t});\n\t\t}\n\t\treturn([\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tid as ProviderID,\n\t\t\t{\n\t\t\t\tcountryCodes: countryCodes,\n\t\t\t\toperations: operationsFunctions,\n\t\t\t\tca: async function() {\n\t\t\t\t\tconst certificatePEM = await serviceInfo.ca?.('string');\n\t\t\t\t\tconst certificate = new KYCCertificate(certificatePEM);\n\n\t\t\t\t\treturn(certificate);\n\t\t\t\t}\n\t\t\t}\n\t\t]);\n\t});\n\n\tconst retval = Object.fromEntries(await Promise.all(serviceInfoPromises));\n\n\treturn(retval);\n}\n\ntype KeetaKYCAnchorCommonConfig = {\n\tid: ProviderID;\n\tserviceInfo: KeetaKYCVerificationServiceInfo;\n\trequest: KeetaKYCAnchorCreateVerificationRequest;\n\tclient: KeetaKYCAnchorClient;\n\toperations: NonNullable<Pick<KeetaKYCAnchorOperations, 'createVerification' | 'getCertificates'>>;\n\tlogger?: Logger | undefined;\n};\n\n/**\n * Represents an in-progress KYC verification request.\n */\nclass KeetaKYCVerification {\n\treadonly providerID: KeetaKYCAnchorCommonConfig['id'];\n\treadonly id: RequestID;\n\tprivate readonly serviceInfo: KeetaKYCAnchorCommonConfig['serviceInfo'];\n\tprivate readonly request: KeetaKYCAnchorCommonConfig['request'];\n\tprivate readonly logger?: KeetaKYCAnchorCommonConfig['logger'] | undefined;\n\tprivate readonly client: KeetaKYCAnchorCommonConfig['client'];\n\tprivate readonly response: Extract<KeetaKYCAnchorCreateVerificationResponse, { ok: true }>;\n\n\tprivate constructor(args: KeetaKYCAnchorCommonConfig, response: Extract<KeetaKYCAnchorCreateVerificationResponse, { ok: true }>) {\n\t\tthis.providerID = args.id;\n\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\tthis.id = response.id as RequestID;\n\t\tthis.serviceInfo = args.serviceInfo;\n\t\tthis.request = args.request;\n\t\tthis.client = args.client;\n\t\tthis.logger = args.logger;\n\t\tthis.response = response;\n\n\t\tthis.logger?.debug(`Created KYC verification for provider ID: ${this.providerID}, request: ${JSON.stringify(args.request)}, response: ${JSON.stringify(response)}`);\n\t}\n\n\tstatic async start(args: KeetaKYCAnchorCommonConfig): Promise<KeetaKYCVerification> {\n\t\targs.logger?.debug(`Starting KYC verification for provider ID: ${args.id}, request: ${JSON.stringify(args.request)}`);\n\n\t\tconst endpoints = args.operations;\n\t\tconst createVerification = endpoints.createVerification?.();\n\t\tif (createVerification === undefined) {\n\t\t\tthrow(new Error('KYC verification service does not support createVerification operation'));\n\t\t}\n\n\t\tconst requestInformation = await fetch(createVerification, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t'Accept': 'application/json'\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\trequest: args.request\n\t\t\t})\n\t\t});\n\n\t\tconst requestInformationJSON: unknown = await requestInformation.json();\n\t\tif (!isKeetaKYCAnchorCreateVerificationResponse(requestInformationJSON)) {\n\t\t\tthrow(new Error(`Invalid response from KYC verification service: ${JSON.stringify(requestInformationJSON)}`));\n\t\t}\n\n\t\tif (!requestInformationJSON.ok) {\n\t\t\tthrow(new Error(`KYC verification request failed: ${requestInformationJSON.error}`));\n\t\t}\n\n\t\targs.logger?.debug(`KYC verification request successful, request ID ${requestInformationJSON.id}`);\n\n\t\treturn(new KeetaKYCVerification(args, requestInformationJSON));\n\n\t}\n\n\tget expectedCost(): typeof this.response.expectedCost {\n\t\treturn(this.response.expectedCost);\n\t}\n\n\tget webURL(): URL {\n\t\treturn(validateURL(this.response.webURL));\n\t}\n\n\tasync getProviderIssuerCertificate(): Promise<KYCCertificate> {\n\t\treturn(await this.serviceInfo.ca());\n\t}\n\n\tgetCertificates(): Promise<KeetaKYCAnchorClientGetCertificateResponse> {\n\t\treturn(this.client.getCertificates(this.providerID, {\n\t\t\tid: this.id,\n\t\t\t...this.request\n\t\t}));\n\t}\n}\n\n/**\n * Represents the KYC operations for a specific provider\n */\nclass KeetaKYCProvider {\n\treadonly id: ProviderID;\n\tprivate readonly serviceInfo: KeetaKYCVerificationServiceInfo;\n\tprivate readonly request: KeetaKYCAnchorCreateVerificationRequest;\n\tprivate readonly logger?: Logger | undefined;\n\tprivate readonly client: KeetaKYCAnchorClient;\n\tprivate readonly operations: NonNullable<Pick<KeetaKYCAnchorOperations, 'createVerification' | 'getCertificates'>>;\n\n\tprivate cachedCA?: KYCCertificate;\n\n\tconstructor(args: KeetaKYCAnchorCommonConfig) {\n\t\tthis.id = args.id;\n\t\tthis.serviceInfo = args.serviceInfo;\n\t\tthis.request = args.request;\n\t\tthis.client = args.client;\n\t\tthis.operations = args.operations;\n\t\tthis.logger = args.logger;\n\n\t\tthis.logger?.debug(`Created KYC verification for provider ID: ${args.id}, request: ${JSON.stringify(args.request)}`);\n\t}\n\n\tasync countryCodes(): Promise<CurrencyInfo.Country[] | undefined> {\n\t\treturn(this.serviceInfo.countryCodes);\n\t}\n\n\tasync ca(): Promise<KYCCertificate> {\n\t\tif (this.cachedCA !== undefined) {\n\t\t\treturn(this.cachedCA);\n\t\t}\n\n\t\tthis.cachedCA = await this.serviceInfo.ca();\n\n\t\treturn(this.cachedCA);\n\t}\n\n\tasync startVerification(): Promise<KeetaKYCVerification> {\n\t\treturn(await KeetaKYCVerification.start({\n\t\t\tid: this.id,\n\t\t\tserviceInfo: this.serviceInfo,\n\t\t\trequest: this.request,\n\t\t\tclient: this.client,\n\t\t\toperations: this.operations,\n\t\t\tlogger: this.logger\n\t\t}));\n\t}\n}\n\n\nclass KeetaKYCAnchorClient {\n\treadonly resolver: Resolver;\n\treadonly id: string;\n\tprivate readonly logger?: Logger | undefined;\n\n\tconstructor(client: KeetaNetClient | KeetaNetUserClient, config: KeetaKYCAnchorClientConfig = {}) {\n\t\tthis.resolver = config.resolver ?? getDefaultResolver(client, config);\n\t\tthis.id = config.id ?? crypto.randomUUID();\n\t\tthis.logger = config.logger;\n\t}\n\n\tasync createVerification(request: KeetaKYCAnchorClientCreateVerificationRequest): Promise<KeetaKYCProvider[]> {\n\t\tconst signedData = await generateSignedData(request.account.assertAccount());\n\n\t\tif (PARANOID) {\n\t\t\tconst check = await verifySignedData({ account: request.account.publicKeyString.get(), signed: signedData });\n\t\t\tif (!check) {\n\t\t\t\tthrow(new Error('Failed to verify signed data'));\n\t\t\t}\n\t\t}\n\n\t\tconst signedRequest: KeetaKYCAnchorCreateVerificationRequest = {\n\t\t\t...request,\n\t\t\taccount: request.account.publicKeyString.get(),\n\t\t\tsigned: signedData\n\t\t};\n\n\t\tconst endpoints = await getEndpoints(this.resolver, signedRequest);\n\t\tif (endpoints === null) {\n\t\t\tthrow(new Error('No KYC endpoints found for the given criteria'));\n\t\t}\n\n\t\tconst validEndpoints = await Promise.allSettled(Object.entries(endpoints).map(async ([id, serviceInfo]) => {\n\t\t\tconst endpoints = serviceInfo.operations;\n\t\t\t/*\n\t\t\t * Verify that we have the required operations\n\t\t\t * available to perform a KYC verification.\n\t\t\t */\n\t\t\tconst createVerification = await endpoints.createVerification;\n\t\t\tconst getCertificates = await endpoints.getCertificates;\n\t\t\tif (createVerification === undefined || getCertificates === undefined) {\n\t\t\t\tthis.logger?.warn(`KYC verification provider ${id} does not support required operations (createVerification, getCertificates)`);\n\n\t\t\t\treturn(null);\n\t\t\t}\n\n\t\t\t/*\n\t\t\t * We can safely cast the ID to a ProviderID because it's a branded type\n\t\t\t * for this specific type\n\t\t\t */\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tconst providerID = id as ProviderID;\n\t\t\treturn(new KeetaKYCProvider({\n\t\t\t\tid: providerID,\n\t\t\t\tserviceInfo: serviceInfo,\n\t\t\t\trequest: signedRequest,\n\t\t\t\tclient: this,\n\t\t\t\tlogger: this.logger,\n\t\t\t\toperations: {\n\t\t\t\t\tcreateVerification,\n\t\t\t\t\tgetCertificates\n\t\t\t\t}\n\t\t\t}));\n\t\t}));\n\n\t\t/*\n\t\t * Filter out any endpoints that were not able to be resolved\n\t\t * or that did not have the required operations.\n\t\t */\n\t\tconst retval = validEndpoints.map(function(result) {\n\t\t\tif (result.status !== 'fulfilled') {\n\t\t\t\treturn(null);\n\t\t\t}\n\t\t\tif (result.value === null) {\n\t\t\t\treturn(null);\n\t\t\t}\n\t\t\treturn(result.value);\n\t\t}).filter(function(result) {\n\t\t\treturn(result !== null);\n\t\t});\n\n\t\tif (retval.length === 0) {\n\t\t\tthrow(new Error('No valid KYC verification endpoints found'));\n\t\t}\n\n\t\treturn(retval);\n\t}\n\n\tasync getCertificates(providerID: ProviderID, request: KeetaKYCAnchorCreateVerificationRequest & { id: RequestID; }): Promise<KeetaKYCAnchorClientGetCertificateResponse> {\n\t\tconst endpoints = await getEndpoints(this.resolver, request);\n\t\tif (endpoints === null) {\n\t\t\tthrow(new Error('No KYC endpoints found for the given criteria'));\n\t\t}\n\t\tconst providerEndpoints = endpoints[providerID];\n\t\tif (providerEndpoints === undefined) {\n\t\t\tthrow(new Error(`No KYC endpoints found for provider ID: ${providerID}`));\n\t\t}\n\n\t\tconst requestID = request.id;\n\t\tconst operations = providerEndpoints.operations;\n\t\tconst getCertificate = (await operations.getCertificates)?.({ id: requestID });\n\t\tif (getCertificate === undefined) {\n\t\t\tthrow(new Error('internal error: KYC verification service does not support getCertificate operation'));\n\t\t}\n\n\t\tconst response = await fetch(getCertificate, {\n\t\t\tmethod: 'GET',\n\t\t\theaders: {\n\t\t\t\t'Accept': 'application/json'\n\t\t\t}\n\t\t});\n\n\t\t/*\n\t\t * Handle retryable errors by passing them up to the caller to\n\t\t * retry.\n\t\t */\n\t\tif (response.status === 404) {\n\t\t\treturn({\n\t\t\t\tok: false,\n\t\t\t\tretryAfter: 500,\n\t\t\t\treason: 'Certificate not found'\n\t\t\t});\n\t\t}\n\n\t\t/*\n\t\t * Handle other errors as fatal errors that should not be retried.\n\t\t */\n\t\tif (!response.ok) {\n\t\t\tthrow(new Error(`Failed to get certificate: ${response.statusText}`));\n\t\t}\n\n\t\tconst responseJSON: unknown = await response.json();\n\t\tif (!isKeetaKYCAnchorGetCertificateResponse(responseJSON)) {\n\t\t\tthrow(new Error(`Invalid response from KYC certificate service: ${JSON.stringify(responseJSON)}`));\n\t\t}\n\n\t\tif (!responseJSON.ok) {\n\t\t\tthrow(new Error(`KYC certificate request failed: ${responseJSON.error}`));\n\t\t}\n\n\t\treturn({\n\t\t\tok: true,\n\t\t\tresults: responseJSON.results.map(function(result) {\n\t\t\t\tconst intermediates = result.intermediates?.map(function(intermediate) {\n\t\t\t\t\treturn(new KeetaNetLib.Utils.Certificate.Certificate(intermediate));\n\t\t\t\t});\n\n\t\t\t\tlet intermediatesSet;\n\t\t\t\tif (intermediates !== undefined && intermediates.length > 0) {\n\t\t\t\t\tintermediatesSet = new Set(intermediates);\n\t\t\t\t}\n\n\t\t\t\treturn({\n\t\t\t\t\tcertificate: new KYCCertificate(result.certificate),\n\t\t\t\t\tintermediates: intermediatesSet\n\t\t\t\t});\n\t\t\t})\n\t\t});\n\t}\n\n\tasync getSupportedCountries(): Promise<CurrencyInfo.Country[]> {\n\t\treturn(await this.resolver.listSupportedKYCCountries());\n\t}\n\n\tasync getEstimate(..._ignore_args: unknown[]): Promise<never> {\n\t\tthrow(new Error('not implemented'));\n\t}\n\n\tasync checkLocality(..._ignore_args: unknown[]): Promise<never> {\n\t\tthrow(new Error('not implemented'));\n\t}\n}\n\nexport default KeetaKYCAnchorClient;\n"]}
|