@hyperledger/anoncreds-nodejs 0.5.0-alpha-20261027231318 → 0.5.0-alpha-20261106180141

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/build/index.mjs CHANGED
@@ -26,7 +26,7 @@ const stringListToStringListStruct = (stringList) => {
26
26
  data: stringList
27
27
  };
28
28
  };
29
- const byteBufferToString = (byteBuffer) => koffi.decode.string(byteBuffer.data, byteBuffer.len);
29
+ const byteBufferToString = (byteBuffer) => koffi.decode(byteBuffer.data, "char", byteBuffer.len);
30
30
  const objectHandleListToObjectHandleListStruct = (objectHandleList) => {
31
31
  return {
32
32
  count: objectHandleList.length,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["koffi","koffi"],"sources":["../src/ffi/alloc.ts","../src/ffi/conversion.ts","../src/ffi/primitives.ts","../src/ffi/serialize.ts","../src/ffi/structures.ts","../src/library/bindings.ts","../src/library/register.ts","../src/NodeJSAnoncreds.ts","../src/index.ts"],"sourcesContent":["export const allocatePointer = () => {\n return [undefined] as [unknown]\n}\n\nexport const allocateStringBuffer = () => {\n return [undefined] as [unknown]\n}\n\nexport const allocateInt32Buffer = () => {\n return [0] as [number]\n}\n\nexport const allocateInt8Buffer = () => {\n return [0] as [number]\n}\n\nexport const allocateByteBuffer = () => {\n return {} as unknown\n}\n\nexport const allocateSecretBuffer = () => {\n return {} as unknown\n}\n\nexport const allocateEncryptedBuffer = () => {\n return {} as unknown\n}\n\nexport const allocateAeadParams = () => {\n return {} as unknown\n}\n\nexport const allocateLocalKeyHandle = allocatePointer\n\nexport const allocateStringListHandle = allocatePointer\n","import type { ObjectHandle } from '@hyperledger/anoncreds-shared'\nimport koffi from 'koffi'\n\nexport const stringListToStringListStruct = (stringList: Array<string>) => {\n return {\n count: stringList.length,\n data: stringList,\n }\n}\n\n// Reads a UTF-8 byte buffer that AnonCreds allocated as a string. koffi.decode(data, type, len) would make a new array\n// type on every call, which koffi never frees\nexport const byteBufferToString = (byteBuffer: { data: unknown; len: number }): string =>\n koffi.decode.string(byteBuffer.data, byteBuffer.len)\n\nexport const objectHandleListToObjectHandleListStruct = (objectHandleList: Array<ObjectHandle>) => {\n return {\n count: objectHandleList.length,\n data: objectHandleList.map((h) => h.handle),\n }\n}\n\nexport const i32ListToI32ListStruct = (i32List: Array<number>) => {\n return {\n count: i32List.length,\n data: i32List,\n }\n}\n","import * as koffi from 'koffi'\n\nexport const FFI_UINT8 = koffi.types.uint8_t\nexport const FFI_UINT64 = koffi.types.uint64_t\nexport const FFI_USIZE = koffi.types.size_t\nexport const FFI_INT8 = koffi.types.int8_t\nexport const FFI_INT32 = koffi.types.int32_t\nexport const FFI_INT64 = koffi.types.int64_t\nexport const FFI_STRING = koffi.types.string\nexport const FFI_VOID = koffi.types.void\n\n// AnonCreds allocates the strings it returns: return values and out parameters. koffi converts these to a JS string and\n// then calls anoncreds_string_free on the original pointer. Strings that JS passes to AnonCreds use FFI_STRING\nlet freeAnoncredsString: ((pointer: unknown) => void) | undefined\nexport const setFreeAnoncredsString = (free: (pointer: unknown) => void) => {\n freeAnoncredsString = free\n}\nexport const FFI_ANONCREDS_STRING = koffi.disposable('anoncreds_string', FFI_STRING, (pointer: unknown) => {\n if (!pointer) return\n\n // Fails loudly instead of leaking the string, should a string ever be converted before the library is loaded\n if (!freeAnoncredsString) throw new Error('Cannot free an AnonCreds string before the AnonCreds library is loaded')\n freeAnoncredsString(pointer)\n})\n\nexport const FFI_OBJECT_HANDLE = FFI_USIZE\n\nexport const FFI_ERROR_CODE = FFI_INT64\n","import { ObjectHandle } from '@hyperledger/anoncreds-shared'\nimport {\n i32ListToI32ListStruct,\n objectHandleListToObjectHandleListStruct,\n stringListToStringListStruct,\n} from './conversion'\n\nconst serialize = (arg: unknown): unknown => {\n switch (typeof arg) {\n case 'undefined':\n return null\n case 'boolean':\n return Number(arg)\n case 'string':\n return arg\n case 'number':\n return arg\n case 'function':\n return arg\n case 'object':\n if (arg instanceof ObjectHandle) {\n return arg.handle\n }\n if (Array.isArray(arg)) {\n if (arg.every((it) => typeof it === 'string')) {\n return stringListToStringListStruct(arg)\n }\n if (arg.every((it) => it instanceof ObjectHandle)) {\n return objectHandleListToObjectHandleListStruct(arg)\n }\n if (arg.every((it) => typeof it === 'number')) {\n return i32ListToI32ListStruct(arg)\n }\n }\n return JSON.stringify(arg)\n default:\n throw new Error('could not serialize value')\n }\n}\n\nexport const serializeArguments = <T extends Record<string, unknown> = Record<string, unknown>>(args: T) => {\n const retVal: Record<string, unknown> = {}\n for (const [key, val] of Object.entries(args)) {\n retVal[key] = serialize(val)\n }\n return retVal\n}\n","import koffi from 'koffi'\nimport { FFI_INT8, FFI_INT32, FFI_INT64, FFI_OBJECT_HANDLE, FFI_STRING, FFI_UINT8, FFI_USIZE } from './primitives'\n\nexport const ByteBufferStruct = koffi.struct('ByteBufferStruct', {\n len: FFI_INT64,\n data: koffi.pointer(FFI_UINT8),\n})\n\nexport type ByteBufferStructType = {\n len: number\n data: Uint8Array\n}\n\nexport const StringListStruct = koffi.struct('StringListStruct', {\n count: FFI_USIZE,\n data: koffi.pointer(FFI_STRING),\n})\n\nexport type StringListStructType = {\n count: number\n data: string[]\n}\n\nexport const I32ListStruct = koffi.struct('I32ListStruct', {\n count: FFI_USIZE,\n data: koffi.pointer(FFI_INT32),\n})\n\nexport type I32ListStructType = {\n count: number\n data: number[]\n}\n\nexport const CredRevInfoStruct = koffi.struct('CredRevInfoStruct', {\n reg_def: FFI_OBJECT_HANDLE,\n reg_def_private: FFI_OBJECT_HANDLE,\n status_list: FFI_OBJECT_HANDLE,\n reg_idx: FFI_INT64,\n})\n\nexport const CredentialEntryStruct = koffi.struct('CredentialEntryStruct', {\n credential: FFI_OBJECT_HANDLE,\n timestamp: FFI_INT32,\n rev_state: FFI_OBJECT_HANDLE,\n})\n\nexport const CredentialEntryStructList = koffi.struct('CredentialEntryStructList', {\n count: FFI_USIZE,\n data: koffi.pointer(CredentialEntryStruct),\n})\n\nexport const CredentialProveStruct = koffi.struct('CredentialProveStruct', {\n entry_idx: FFI_INT64,\n referent: FFI_STRING,\n is_predicate: FFI_INT8,\n reveal: FFI_INT8,\n})\n\nexport const CredentialProveStructList = koffi.struct('CredentialProveStructList', {\n count: FFI_USIZE,\n data: koffi.pointer(CredentialProveStruct),\n})\n\nexport const ObjectHandleStructList = koffi.struct('ObjectHandleStructList', {\n count: FFI_USIZE,\n data: koffi.pointer(FFI_OBJECT_HANDLE),\n})\n\nexport type ObjectHandleStructListType = {\n count: number\n data: number[]\n}\n\nexport const NonrevokedIntervalOverrideStruct = koffi.struct('NonrevokedIntervalOverrideStruct', {\n rev_reg_def_id: FFI_STRING,\n requested_from_ts: FFI_INT32,\n override_rev_status_list_ts: FFI_INT32,\n})\n\nexport const NonrevokedIntervalOverrideStructList = koffi.struct('NonrevokedIntervalOverrideStructList', {\n count: FFI_USIZE,\n data: koffi.pointer(NonrevokedIntervalOverrideStruct),\n})\n","import * as koffi from 'koffi'\nimport {\n ByteBufferStruct,\n CredentialEntryStructList,\n CredentialProveStructList,\n CredRevInfoStruct,\n FFI_ANONCREDS_STRING,\n FFI_ERROR_CODE,\n FFI_INT8,\n FFI_INT64,\n FFI_OBJECT_HANDLE,\n FFI_STRING,\n FFI_VOID,\n I32ListStruct,\n NonrevokedIntervalOverrideStructList,\n ObjectHandleStructList,\n StringListStruct,\n} from '../ffi'\n\n// koffi doesn't export the type of a type specifier\ntype TypeSpec = Parameters<typeof koffi.out>[0]\n\nexport const nativeBindings: Record<string, [TypeSpec, Array<TypeSpec>]> = {\n // Version and utilities\n anoncreds_version: [FFI_ANONCREDS_STRING, []],\n anoncreds_set_default_logger: [FFI_ERROR_CODE, []],\n\n // Error handling\n anoncreds_get_current_error: [FFI_ERROR_CODE, [koffi.out(koffi.pointer(FFI_ANONCREDS_STRING))]],\n\n // Nonce\n anoncreds_generate_nonce: [FFI_ERROR_CODE, [koffi.out(koffi.pointer(FFI_ANONCREDS_STRING))]],\n\n // Buffer and memory management\n anoncreds_buffer_free: [FFI_VOID, [ByteBufferStruct]],\n anoncreds_string_free: [FFI_VOID, [koffi.pointer(FFI_VOID)]],\n anoncreds_object_free: [FFI_VOID, [FFI_OBJECT_HANDLE]],\n\n // Object operations\n anoncreds_object_get_json: [FFI_ERROR_CODE, [FFI_OBJECT_HANDLE, koffi.out(koffi.pointer(ByteBufferStruct))]],\n anoncreds_object_get_type_name: [FFI_ERROR_CODE, [FFI_OBJECT_HANDLE, koffi.out(koffi.pointer(FFI_ANONCREDS_STRING))]],\n\n // Schema operations\n anoncreds_create_schema: [\n FFI_ERROR_CODE,\n [FFI_STRING, FFI_STRING, FFI_STRING, StringListStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_schema_from_json: [FFI_ERROR_CODE, [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))]],\n\n // Credential definition operations\n anoncreds_create_credential_definition: [\n FFI_ERROR_CODE,\n [\n FFI_STRING,\n FFI_OBJECT_HANDLE,\n FFI_STRING,\n FFI_STRING,\n FFI_STRING,\n FFI_INT8,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_credential_definition_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_credential_definition_private_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n\n // Key correctness proof\n anoncreds_key_correctness_proof_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n\n // Revocation registry operations\n anoncreds_create_revocation_registry_def: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_STRING,\n FFI_STRING,\n FFI_STRING,\n FFI_STRING,\n FFI_INT64,\n FFI_STRING,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_revocation_registry_definition_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_revocation_registry_definition_private_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_revocation_registry_definition_get_attribute: [\n FFI_ERROR_CODE,\n [FFI_OBJECT_HANDLE, FFI_STRING, koffi.out(koffi.pointer(FFI_ANONCREDS_STRING))],\n ],\n anoncreds_revocation_registry_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n\n // Revocation status list operations\n anoncreds_create_revocation_status_list: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_STRING,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_STRING,\n FFI_INT8,\n FFI_INT64,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_update_revocation_status_list: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n I32ListStruct,\n I32ListStruct,\n FFI_INT64,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_update_revocation_status_list_timestamp_only: [\n FFI_ERROR_CODE,\n [FFI_INT64, FFI_OBJECT_HANDLE, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_revocation_status_list_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n\n // Revocation state operations\n anoncreds_create_or_update_revocation_state: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_INT64,\n FFI_STRING,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_revocation_state_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n\n // Link secret operations\n anoncreds_create_link_secret: [FFI_ERROR_CODE, [koffi.out(koffi.pointer(FFI_ANONCREDS_STRING))]],\n\n // Credential offer operations\n anoncreds_create_credential_offer: [\n FFI_ERROR_CODE,\n [FFI_STRING, FFI_STRING, FFI_OBJECT_HANDLE, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_credential_offer_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n\n // Credential request operations\n anoncreds_create_credential_request: [\n FFI_ERROR_CODE,\n [\n FFI_STRING,\n FFI_STRING,\n FFI_OBJECT_HANDLE,\n FFI_STRING,\n FFI_STRING,\n FFI_OBJECT_HANDLE,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_credential_request_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_credential_request_metadata_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n\n // Credential operations\n anoncreds_create_credential: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n StringListStruct,\n StringListStruct,\n StringListStruct,\n koffi.pointer(CredRevInfoStruct),\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_credential_from_json: [FFI_ERROR_CODE, [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))]],\n anoncreds_credential_get_attribute: [\n FFI_ERROR_CODE,\n [FFI_OBJECT_HANDLE, FFI_STRING, koffi.out(koffi.pointer(FFI_ANONCREDS_STRING))],\n ],\n anoncreds_process_credential: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_STRING,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_encode_credential_attributes: [\n FFI_ERROR_CODE,\n [StringListStruct, koffi.out(koffi.pointer(FFI_ANONCREDS_STRING))],\n ],\n\n // W3C Credential operations\n anoncreds_create_w3c_credential: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n StringListStruct,\n StringListStruct,\n koffi.pointer(CredRevInfoStruct),\n FFI_STRING,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_w3c_credential_from_json: [FFI_ERROR_CODE, [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))]],\n anoncreds_credential_to_w3c: [\n FFI_ERROR_CODE,\n [FFI_OBJECT_HANDLE, FFI_STRING, FFI_STRING, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_credential_from_w3c: [FFI_ERROR_CODE, [FFI_OBJECT_HANDLE, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))]],\n anoncreds_process_w3c_credential: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_STRING,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_w3c_credential_get_integrity_proof_details: [\n FFI_ERROR_CODE,\n [FFI_OBJECT_HANDLE, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_w3c_credential_proof_get_attribute: [\n FFI_ERROR_CODE,\n [FFI_OBJECT_HANDLE, FFI_STRING, koffi.out(koffi.pointer(FFI_ANONCREDS_STRING))],\n ],\n\n // Presentation request operations\n anoncreds_presentation_request_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n\n // Presentation operations\n anoncreds_create_presentation: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n CredentialEntryStructList,\n CredentialProveStructList,\n StringListStruct,\n StringListStruct,\n FFI_STRING,\n ObjectHandleStructList,\n StringListStruct,\n ObjectHandleStructList,\n StringListStruct,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_presentation_from_json: [FFI_ERROR_CODE, [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))]],\n anoncreds_verify_presentation: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n ObjectHandleStructList,\n StringListStruct,\n ObjectHandleStructList,\n StringListStruct,\n ObjectHandleStructList,\n StringListStruct,\n ObjectHandleStructList,\n NonrevokedIntervalOverrideStructList,\n koffi.out(koffi.pointer(FFI_INT8)),\n ],\n ],\n\n // W3C Presentation operations\n anoncreds_create_w3c_presentation: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n CredentialEntryStructList,\n CredentialProveStructList,\n FFI_STRING,\n ObjectHandleStructList,\n StringListStruct,\n ObjectHandleStructList,\n StringListStruct,\n FFI_STRING,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_w3c_presentation_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_verify_w3c_presentation: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n ObjectHandleStructList,\n StringListStruct,\n ObjectHandleStructList,\n StringListStruct,\n ObjectHandleStructList,\n StringListStruct,\n ObjectHandleStructList,\n NonrevokedIntervalOverrideStructList,\n koffi.out(koffi.pointer(FFI_INT8)),\n ],\n ],\n} as const\n","import fs from 'node:fs'\nimport { createRequire } from 'node:module'\nimport os from 'node:os'\nimport path from 'node:path'\nimport koffi from 'koffi'\nimport { setFreeAnoncredsString } from '../ffi'\nimport { nativeBindings } from './bindings'\nimport type { NativeMethods } from './NativeBindingInterface'\n\nconst LIBNAME = 'anoncreds'\nconst ENV_VAR = 'LIB_ANONCREDS_PATH'\n\ntype Platform = 'darwin' | 'linux' | 'win32'\n\ntype ExtensionMap = Record<Platform, { prefix?: string; extension: string }>\n\nconst extensions: ExtensionMap = {\n darwin: { prefix: 'lib', extension: '.dylib' },\n linux: { prefix: 'lib', extension: '.so' },\n win32: { extension: '.dll' },\n}\n\nconst libPaths: Record<Platform, string[]> = {\n darwin: ['/usr/local/lib/', '/usr/lib/', '/opt/homebrew/opt/'],\n linux: ['/usr/lib/', '/usr/local/lib/'],\n win32: ['c:\\\\windows\\\\system32\\\\'],\n}\n\n// Alias for a simple function to check if the path exists\nconst doesPathExist = fs.existsSync\n\nconst getLibrary = () => {\n // Detect OS; darwin, linux and windows are only supported\n const platform = os.platform()\n\n if (platform !== 'linux' && platform !== 'win32' && platform !== 'darwin')\n throw new Error(`Unsupported platform: ${platform}. linux, win32 and darwin are supported.`)\n\n // Get a potential path from the environment variable\n const pathFromEnvironment = process.env[ENV_VAR]\n\n // Get the paths specific to the users operating system\n const platformPaths = libPaths[platform]\n\n // Look for the file in the native directory of the package.\n // node-pre-gyp will download the binaries to this directory after installing the package\n // The package root, from both the bundle in build and the sources (Vitest)\n try {\n const packageRoot = path.dirname(\n createRequire(import.meta.url).resolve('@hyperledger/anoncreds-nodejs/package.json')\n )\n platformPaths.unshift(path.join(packageRoot, 'native'))\n } catch {\n // Bundled to CommonJS: import.meta.url is empty. The environment variable below still works.\n }\n\n // Check if the path from the environment variable is supplied and add it\n // We use unshift here so that when we want to get a valid library path this will be the first to resolve\n if (pathFromEnvironment) platformPaths.unshift(pathFromEnvironment)\n\n // Create the path + file\n const libraries = platformPaths.map((p) =>\n path.join(p, `${extensions[platform].prefix ?? ''}${LIBNAME}${extensions[platform].extension}`)\n )\n\n // Guard so we quit if there is no valid path for the library\n if (!libraries.some((libraryPath) => doesPathExist(libraryPath)))\n throw new Error(`Could not find ${LIBNAME} with these paths: ${libraries.join(' ')}`)\n\n // Get the first valid library\n // Casting here as a string because there is a guard of none of the paths\n const validLibraryPath = libraries.find((l) => doesPathExist(l)) as string\n\n // Load the library using koffi\n const lib = koffi.load(validLibraryPath)\n\n // Bind all the native functions\n const methods: Partial<NativeMethods> = {}\n for (const [name, [returnType, argumentTypes]] of Object.entries(nativeBindings)) {\n methods[name as keyof NativeMethods] = lib.func(name, returnType, argumentTypes)\n }\n setFreeAnoncredsString((pointer) => methods.anoncreds_string_free?.(pointer))\n\n return methods as NativeMethods\n}\n\nlet nativeAnonCreds: NativeMethods | undefined\nexport const getNativeAnonCreds = () => {\n if (!nativeAnonCreds) nativeAnonCreds = getLibrary()\n return nativeAnonCreds\n}\n","import { TextEncoder } from 'node:util'\nimport type {\n Anoncreds,\n AnoncredsErrorObject,\n NativeCredentialEntry,\n NativeCredentialProve,\n NativeCredentialRevocationConfig,\n NativeNonRevokedIntervalOverride,\n} from '@hyperledger/anoncreds-shared'\nimport { AnoncredsError, ObjectHandle } from '@hyperledger/anoncreds-shared'\nimport {\n allocateByteBuffer,\n allocateInt8Buffer,\n allocatePointer,\n allocateStringBuffer,\n type ByteBufferStructType,\n byteBufferToString,\n serializeArguments,\n} from './ffi'\nimport { getNativeAnonCreds } from './library'\n\nfunction handleReturnPointer<Return>(returnValue: [unknown] | unknown): Return {\n const value = Array.isArray(returnValue) ? returnValue[0] : returnValue\n if (value === null || value === undefined) {\n throw AnoncredsError.customError({ message: 'Unexpected null pointer' })\n }\n\n return value as Return\n}\n\nexport class NodeJSAnoncreds implements Anoncreds {\n public get nativeAnoncreds() {\n return getNativeAnonCreds()\n }\n\n /**\n * Fetch the error from the native library and throw it as a JS error\n *\n * NOTE:\n * Checks whether the error code of the returned error matches the error code that was passed to the function.\n * If it doesn't, we throw an error with the original errorCode, and a custom message explaining we weren't able\n * to retrieve the error message from the native library. This should however not break functionality as long as\n * error codes are used rather than error messages for error handling.\n *\n */\n private getAnoncredsError(errorCode: number): AnoncredsError {\n const error = this.getCurrentError()\n if (error.code !== errorCode) {\n return new AnoncredsError({\n code: errorCode,\n message:\n 'Error details have already been overwritten on the native side, unable to retrieve error message for the error',\n })\n }\n\n return new AnoncredsError(error)\n }\n\n public getCurrentError(): AnoncredsErrorObject {\n const error = allocateStringBuffer()\n this.nativeAnoncreds.anoncreds_get_current_error(error)\n const serializedError = handleReturnPointer<string>(error)\n\n return JSON.parse(serializedError) as AnoncredsErrorObject\n }\n\n private handleError(errorCode: number) {\n if (errorCode === 0) return\n\n throw this.getAnoncredsError(errorCode)\n }\n\n public generateNonce(): string {\n const ret = allocateStringBuffer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_generate_nonce(ret)\n this.handleError(errorCode)\n\n return handleReturnPointer<string>(ret)\n }\n\n public createSchema(options: {\n name: string\n version: string\n issuerId: string\n attributeNames: string[]\n }): ObjectHandle {\n const { name, version, issuerId, attributeNames } = serializeArguments(options)\n\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_schema(name, version, issuerId, attributeNames, ret)\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public revocationRegistryDefinitionGetAttribute(options: { objectHandle: ObjectHandle; name: string }) {\n const { objectHandle, name } = serializeArguments(options)\n\n const ret = allocateStringBuffer()\n const errorCode = this.nativeAnoncreds.anoncreds_revocation_registry_definition_get_attribute(\n objectHandle,\n name,\n ret\n )\n this.handleError(errorCode)\n\n return handleReturnPointer<string>(ret)\n }\n\n public credentialGetAttribute(options: { objectHandle: ObjectHandle; name: string }): string | null {\n const { objectHandle, name } = serializeArguments(options)\n\n const ret = allocateStringBuffer()\n const errorCode = this.nativeAnoncreds.anoncreds_credential_get_attribute(objectHandle, name, ret)\n this.handleError(errorCode)\n\n const value = Array.isArray(ret) ? ret[0] : ret\n return (value as string) ?? null\n }\n\n public createCredentialDefinition(options: {\n schemaId: string\n schema: ObjectHandle\n issuerId: string\n tag: string\n signatureType: string\n supportRevocation: boolean\n }): {\n credentialDefinition: ObjectHandle\n credentialDefinitionPrivate: ObjectHandle\n keyCorrectnessProof: ObjectHandle\n } {\n const { schemaId, issuerId, schema, tag, signatureType, supportRevocation } = serializeArguments(options)\n\n const credentialDefinitionPtr = allocatePointer()\n const credentialDefinitionPrivatePtr = allocatePointer()\n const keyCorrectnessProofPtr = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_credential_definition(\n schemaId,\n schema,\n tag,\n issuerId,\n signatureType,\n supportRevocation,\n credentialDefinitionPtr,\n credentialDefinitionPrivatePtr,\n keyCorrectnessProofPtr\n )\n this.handleError(errorCode)\n\n return {\n credentialDefinition: new ObjectHandle(handleReturnPointer<number>(credentialDefinitionPtr)),\n credentialDefinitionPrivate: new ObjectHandle(handleReturnPointer<number>(credentialDefinitionPrivatePtr)),\n keyCorrectnessProof: new ObjectHandle(handleReturnPointer<number>(keyCorrectnessProofPtr)),\n }\n }\n\n public createCredential(options: {\n credentialDefinition: ObjectHandle\n credentialDefinitionPrivate: ObjectHandle\n credentialOffer: ObjectHandle\n credentialRequest: ObjectHandle\n attributeRawValues: Record<string, string>\n attributeEncodedValues?: Record<string, string>\n revocationConfiguration?: NativeCredentialRevocationConfig\n }): ObjectHandle {\n const { credentialDefinition, credentialDefinitionPrivate, credentialOffer, credentialRequest } =\n serializeArguments(options)\n\n const attributeNames = {\n count: Object.keys(options.attributeRawValues).length,\n data: Object.keys(options.attributeRawValues),\n }\n\n const attributeRawValues = {\n count: Object.keys(options.attributeRawValues).length,\n data: Object.values(options.attributeRawValues),\n }\n\n const attributeEncodedValues = options.attributeEncodedValues\n ? {\n count: Object.keys(options.attributeEncodedValues).length,\n data: Object.values(options.attributeEncodedValues),\n }\n : {}\n\n let revocationConfiguration = null\n if (options.revocationConfiguration) {\n const { revocationStatusList, revocationRegistryDefinitionPrivate, revocationRegistryDefinition, registryIndex } =\n serializeArguments(options.revocationConfiguration)\n revocationConfiguration = {\n reg_def: revocationRegistryDefinition,\n reg_def_private: revocationRegistryDefinitionPrivate,\n status_list: revocationStatusList,\n reg_idx: registryIndex,\n }\n }\n\n const credentialPtr = allocatePointer()\n const errorCode = this.nativeAnoncreds.anoncreds_create_credential(\n credentialDefinition,\n credentialDefinitionPrivate,\n credentialOffer,\n credentialRequest,\n attributeNames,\n attributeRawValues,\n attributeEncodedValues,\n revocationConfiguration,\n credentialPtr\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(credentialPtr))\n }\n\n public encodeCredentialAttributes(options: { attributeRawValues: string[] }): string[] {\n const { attributeRawValues } = serializeArguments(options)\n\n const ret = allocateStringBuffer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_encode_credential_attributes(attributeRawValues, ret)\n this.handleError(errorCode)\n\n const result = handleReturnPointer<string>(ret)\n\n return result.split(',')\n }\n\n public processCredential(options: {\n credential: ObjectHandle\n credentialRequestMetadata: ObjectHandle\n linkSecret: string\n credentialDefinition: ObjectHandle\n revocationRegistryDefinition?: ObjectHandle | undefined\n }): ObjectHandle {\n const { credential, credentialRequestMetadata, linkSecret, credentialDefinition } = serializeArguments(options)\n\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_process_credential(\n credential,\n credentialRequestMetadata,\n linkSecret,\n credentialDefinition,\n options.revocationRegistryDefinition?.handle ?? 0,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public createCredentialOffer(options: {\n schemaId: string\n credentialDefinitionId: string\n keyCorrectnessProof: ObjectHandle\n }): ObjectHandle {\n const { schemaId, credentialDefinitionId, keyCorrectnessProof } = serializeArguments(options)\n\n const ret = allocatePointer()\n const errorCode = this.nativeAnoncreds.anoncreds_create_credential_offer(\n schemaId,\n credentialDefinitionId,\n keyCorrectnessProof,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public createCredentialRequest(options: {\n entropy?: string\n proverDid?: string\n credentialDefinition: ObjectHandle\n linkSecret: string\n linkSecretId: string\n credentialOffer: ObjectHandle\n }): { credentialRequest: ObjectHandle; credentialRequestMetadata: ObjectHandle } {\n const { entropy, proverDid, credentialDefinition, linkSecret, linkSecretId, credentialOffer } =\n serializeArguments(options)\n\n const credentialRequestPtr = allocatePointer()\n const credentialRequestMetadataPtr = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_credential_request(\n entropy,\n proverDid,\n credentialDefinition,\n linkSecret,\n linkSecretId,\n credentialOffer,\n credentialRequestPtr,\n credentialRequestMetadataPtr\n )\n this.handleError(errorCode)\n\n return {\n credentialRequest: new ObjectHandle(handleReturnPointer<number>(credentialRequestPtr)),\n credentialRequestMetadata: new ObjectHandle(handleReturnPointer<number>(credentialRequestMetadataPtr)),\n }\n }\n\n public createLinkSecret(): string {\n const ret = allocateStringBuffer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_link_secret(ret)\n this.handleError(errorCode)\n\n return handleReturnPointer<string>(ret)\n }\n\n public createPresentation(options: {\n presentationRequest: ObjectHandle\n credentials: NativeCredentialEntry[]\n credentialsProve: NativeCredentialProve[]\n selfAttest: Record<string, string>\n linkSecret: string\n schemas: Record<string, ObjectHandle>\n credentialDefinitions: Record<string, ObjectHandle>\n }): ObjectHandle {\n const { presentationRequest, linkSecret } = serializeArguments(options)\n\n const selfAttestNames = {\n count: Object.keys(options.selfAttest).length,\n data: Object.keys(options.selfAttest),\n }\n\n const selfAttestValues = {\n count: Object.values(options.selfAttest).length,\n data: Object.values(options.selfAttest),\n }\n\n const credentialEntryList = this.convertCredentialList(options.credentials)\n const credentialProveList = this.convertCredentialProves(options.credentialsProve)\n const { schemaIds, schemas } = this.convertSchemas(options.schemas)\n const { credentialDefinitionIds, credentialDefinitions } = this.convertCredDefs(options.credentialDefinitions)\n\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_presentation(\n presentationRequest,\n credentialEntryList,\n credentialProveList,\n selfAttestNames as unknown as Buffer,\n selfAttestValues as unknown as Buffer,\n linkSecret,\n schemas,\n schemaIds,\n credentialDefinitions,\n credentialDefinitionIds,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public verifyPresentation(options: {\n presentation: ObjectHandle\n presentationRequest: ObjectHandle\n schemas: ObjectHandle[]\n schemaIds: string[]\n credentialDefinitions: ObjectHandle[]\n credentialDefinitionIds: string[]\n revocationRegistryDefinitions?: ObjectHandle[]\n revocationRegistryDefinitionIds?: string[]\n revocationStatusLists?: ObjectHandle[]\n nonRevokedIntervalOverrides?: NativeNonRevokedIntervalOverride[]\n }): boolean {\n const {\n presentation,\n presentationRequest,\n schemas,\n credentialDefinitions,\n revocationRegistryDefinitions,\n revocationStatusLists,\n revocationRegistryDefinitionIds,\n schemaIds,\n credentialDefinitionIds,\n } = serializeArguments(options)\n\n const nonRevokedIntervalOverrideList = this.convertNonRevokedIntervalOverrides(options.nonRevokedIntervalOverrides)\n\n const ret = allocateInt8Buffer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_verify_presentation(\n presentation,\n presentationRequest,\n schemas,\n schemaIds,\n credentialDefinitions,\n credentialDefinitionIds,\n revocationRegistryDefinitions ?? {},\n revocationRegistryDefinitionIds ?? {},\n revocationStatusLists ?? {},\n nonRevokedIntervalOverrideList,\n ret\n )\n this.handleError(errorCode)\n\n return Boolean(handleReturnPointer<number>(ret))\n }\n\n public createRevocationStatusList(options: {\n credentialDefinition: ObjectHandle\n revocationRegistryDefinitionId: string\n revocationRegistryDefinition: ObjectHandle\n revocationRegistryDefinitionPrivate: ObjectHandle\n issuerId: string\n issuanceByDefault: boolean\n timestamp?: number\n }): ObjectHandle {\n const {\n credentialDefinition,\n revocationRegistryDefinitionId,\n revocationRegistryDefinition,\n revocationRegistryDefinitionPrivate,\n issuerId,\n issuanceByDefault,\n timestamp,\n } = serializeArguments(options)\n\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_revocation_status_list(\n credentialDefinition,\n revocationRegistryDefinitionId,\n revocationRegistryDefinition,\n revocationRegistryDefinitionPrivate,\n issuerId,\n issuanceByDefault,\n timestamp ?? -1,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public updateRevocationStatusListTimestampOnly(options: {\n timestamp: number\n currentRevocationStatusList: ObjectHandle\n }): ObjectHandle {\n const { currentRevocationStatusList, timestamp } = serializeArguments(options)\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_update_revocation_status_list_timestamp_only(\n timestamp,\n currentRevocationStatusList,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public updateRevocationStatusList(options: {\n credentialDefinition: ObjectHandle\n revocationRegistryDefinition: ObjectHandle\n revocationRegistryDefinitionPrivate: ObjectHandle\n currentRevocationStatusList: ObjectHandle\n issued?: number[]\n revoked?: number[]\n timestamp?: number\n }): ObjectHandle {\n const {\n credentialDefinition,\n revocationRegistryDefinition,\n revocationRegistryDefinitionPrivate,\n currentRevocationStatusList,\n issued,\n revoked,\n timestamp,\n } = serializeArguments(options)\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_update_revocation_status_list(\n credentialDefinition,\n revocationRegistryDefinition,\n revocationRegistryDefinitionPrivate,\n currentRevocationStatusList,\n issued ?? {},\n revoked ?? {},\n timestamp ?? -1,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public createRevocationRegistryDefinition(options: {\n credentialDefinition: ObjectHandle\n credentialDefinitionId: string\n issuerId: string\n tag: string\n revocationRegistryType: string\n maximumCredentialNumber: number\n tailsDirectoryPath?: string\n }) {\n const {\n credentialDefinition,\n credentialDefinitionId,\n tag,\n revocationRegistryType,\n issuerId,\n maximumCredentialNumber,\n tailsDirectoryPath,\n } = serializeArguments(options)\n\n const revocationRegistryDefinitionPtr = allocatePointer()\n const revocationRegistryDefinitionPrivate = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_revocation_registry_def(\n credentialDefinition,\n credentialDefinitionId,\n issuerId,\n tag,\n revocationRegistryType,\n maximumCredentialNumber,\n tailsDirectoryPath,\n revocationRegistryDefinitionPtr,\n revocationRegistryDefinitionPrivate\n )\n this.handleError(errorCode)\n\n return {\n revocationRegistryDefinition: new ObjectHandle(handleReturnPointer<number>(revocationRegistryDefinitionPtr)),\n revocationRegistryDefinitionPrivate: new ObjectHandle(\n handleReturnPointer<number>(revocationRegistryDefinitionPrivate)\n ),\n }\n }\n\n public createOrUpdateRevocationState(options: {\n revocationRegistryDefinition: ObjectHandle\n revocationStatusList: ObjectHandle\n revocationRegistryIndex: number\n tailsPath: string\n oldRevocationState?: ObjectHandle\n oldRevocationStatusList?: ObjectHandle\n }): ObjectHandle {\n const { revocationRegistryDefinition, revocationStatusList, revocationRegistryIndex, tailsPath } =\n serializeArguments(options)\n\n const oldRevocationState = options.oldRevocationState ?? new ObjectHandle(0)\n const oldRevocationStatusList = options.oldRevocationStatusList ?? new ObjectHandle(0)\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_or_update_revocation_state(\n revocationRegistryDefinition,\n revocationStatusList,\n revocationRegistryIndex,\n tailsPath,\n oldRevocationState.handle,\n oldRevocationStatusList.handle,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public createW3cCredential(options: {\n credentialDefinition: ObjectHandle\n credentialDefinitionPrivate: ObjectHandle\n credentialOffer: ObjectHandle\n credentialRequest: ObjectHandle\n attributeRawValues: Record<string, string>\n revocationConfiguration?: NativeCredentialRevocationConfig\n w3cVersion?: string\n }): ObjectHandle {\n const { credentialDefinition, credentialDefinitionPrivate, credentialOffer, credentialRequest, w3cVersion } =\n serializeArguments(options)\n\n const attributeNames = this.convertAttributeNames(options.attributeRawValues)\n const attributeRawValues = this.convertAttributeRawValues(options.attributeRawValues)\n const revocationConfiguration = this.convertRevocationConfiguration(options.revocationConfiguration)\n\n const credentialPtr = allocatePointer()\n const errorCode = this.nativeAnoncreds.anoncreds_create_w3c_credential(\n credentialDefinition,\n credentialDefinitionPrivate,\n credentialOffer,\n credentialRequest,\n attributeNames,\n attributeRawValues,\n revocationConfiguration ?? 0,\n w3cVersion,\n credentialPtr\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(credentialPtr))\n }\n\n public processW3cCredential(options: {\n credential: ObjectHandle\n credentialRequestMetadata: ObjectHandle\n linkSecret: string\n credentialDefinition: ObjectHandle\n revocationRegistryDefinition?: ObjectHandle | undefined\n }): ObjectHandle {\n const { credential, credentialRequestMetadata, linkSecret, credentialDefinition } = serializeArguments(options)\n\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_process_w3c_credential(\n credential,\n credentialRequestMetadata,\n linkSecret,\n credentialDefinition,\n options.revocationRegistryDefinition?.handle ?? 0,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public createW3cPresentation(options: {\n presentationRequest: ObjectHandle\n credentials: NativeCredentialEntry[]\n credentialsProve: NativeCredentialProve[]\n linkSecret: string\n schemas: Record<string, ObjectHandle>\n credentialDefinitions: Record<string, ObjectHandle>\n w3cVersion?: string\n }): ObjectHandle {\n const { presentationRequest, linkSecret, w3cVersion } = serializeArguments(options)\n\n const credentialEntryList = this.convertCredentialList(options.credentials)\n const credentialProveList = this.convertCredentialProves(options.credentialsProve)\n const { schemaIds, schemas } = this.convertSchemas(options.schemas)\n const { credentialDefinitionIds, credentialDefinitions } = this.convertCredDefs(options.credentialDefinitions)\n\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_w3c_presentation(\n presentationRequest,\n credentialEntryList,\n credentialProveList,\n linkSecret,\n schemas,\n schemaIds,\n credentialDefinitions,\n credentialDefinitionIds,\n w3cVersion,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public verifyW3cPresentation(options: {\n presentation: ObjectHandle\n presentationRequest: ObjectHandle\n schemas: ObjectHandle[]\n schemaIds: string[]\n credentialDefinitions: ObjectHandle[]\n credentialDefinitionIds: string[]\n revocationRegistryDefinitions?: ObjectHandle[]\n revocationRegistryDefinitionIds?: string[]\n revocationStatusLists?: ObjectHandle[]\n nonRevokedIntervalOverrides?: NativeNonRevokedIntervalOverride[]\n }): boolean {\n const {\n presentation,\n presentationRequest,\n schemas,\n credentialDefinitions,\n revocationRegistryDefinitions,\n revocationStatusLists,\n revocationRegistryDefinitionIds,\n schemaIds,\n credentialDefinitionIds,\n } = serializeArguments(options)\n\n const nonRevokedIntervalOverrideList = this.convertNonRevokedIntervalOverrides(options.nonRevokedIntervalOverrides)\n\n const ret = allocateInt8Buffer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_verify_w3c_presentation(\n presentation,\n presentationRequest,\n schemas,\n schemaIds,\n credentialDefinitions,\n credentialDefinitionIds,\n revocationRegistryDefinitions ?? {},\n revocationRegistryDefinitionIds ?? {},\n revocationStatusLists ?? {},\n nonRevokedIntervalOverrideList,\n ret\n )\n this.handleError(errorCode)\n\n return Boolean(handleReturnPointer<number>(ret))\n }\n\n public credentialToW3c(options: { objectHandle: ObjectHandle; issuerId: string; w3cVersion?: string }): ObjectHandle {\n const { objectHandle, issuerId, w3cVersion } = serializeArguments(options)\n\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_credential_to_w3c(objectHandle, issuerId, w3cVersion, ret)\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public credentialFromW3c(options: { objectHandle: ObjectHandle }): ObjectHandle {\n const { objectHandle } = serializeArguments(options)\n\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_credential_from_w3c(objectHandle, ret)\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public w3cCredentialGetIntegrityProofDetails(options: { objectHandle: ObjectHandle }) {\n const { objectHandle } = serializeArguments(options)\n\n const ret = allocatePointer()\n const errorCode = this.nativeAnoncreds.anoncreds_w3c_credential_get_integrity_proof_details(objectHandle, ret)\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public w3cCredentialProofGetAttribute(options: { objectHandle: ObjectHandle; name: string }): string | null {\n const { objectHandle, name } = serializeArguments(options)\n\n const ret = allocateStringBuffer()\n const errorCode = this.nativeAnoncreds.anoncreds_w3c_credential_proof_get_attribute(objectHandle, name, ret)\n this.handleError(errorCode)\n\n const value = Array.isArray(ret) ? ret[0] : ret\n return (value as string) ?? null\n }\n\n public w3cCredentialFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_w3c_credential_from_json, options)\n }\n\n public w3cPresentationFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_w3c_presentation_from_json, options)\n }\n\n public version(): string {\n return this.nativeAnoncreds.anoncreds_version()\n }\n\n public setDefaultLogger(): void {\n const errorCode = this.nativeAnoncreds.anoncreds_set_default_logger()\n this.handleError(errorCode)\n }\n\n private objectFromJson(cb: (byteBuffer: ByteBufferStructType, ret: [unknown]) => number, options: { json: string }) {\n const ret = allocatePointer()\n\n const byteBuffer = new TextEncoder().encode(options.json)\n\n const errorCode = cb({ data: byteBuffer, len: byteBuffer.length }, ret)\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public presentationRequestFromJson(options: { json: string }) {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_presentation_request_from_json, options)\n }\n\n public credentialRequestFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_request_from_json, options)\n }\n\n public credentialRequestMetadataFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_request_metadata_from_json, options)\n }\n\n public revocationRegistryDefinitionFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_revocation_registry_definition_from_json, options)\n }\n\n public revocationRegistryFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_revocation_registry_from_json, options)\n }\n\n public revocationStatusListFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_revocation_status_list_from_json, options)\n }\n\n public revocationStateFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_revocation_state_from_json, options)\n }\n\n public presentationFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_presentation_from_json, options)\n }\n\n public credentialOfferFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_offer_from_json, options)\n }\n\n public schemaFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_schema_from_json, options)\n }\n\n public credentialFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_from_json, options)\n }\n\n public revocationRegistryDefinitionPrivateFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_revocation_registry_definition_private_from_json, options)\n }\n\n public credentialDefinitionFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_definition_from_json, options)\n }\n\n public credentialDefinitionPrivateFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_definition_private_from_json, options)\n }\n\n public keyCorrectnessProofFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_key_correctness_proof_from_json, options)\n }\n\n public getJson(options: { objectHandle: ObjectHandle }) {\n const { objectHandle } = serializeArguments(options)\n\n const ret = allocateByteBuffer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_object_get_json(objectHandle, ret)\n this.handleError(errorCode)\n\n const returnValue = handleReturnPointer<{ data: unknown; len: number }>(ret)\n const output = byteBufferToString(returnValue)\n\n this.nativeAnoncreds.anoncreds_buffer_free(returnValue)\n\n return output\n }\n\n public getTypeName(options: { objectHandle: ObjectHandle }) {\n const { objectHandle } = serializeArguments(options)\n\n const ret = allocateStringBuffer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_object_get_type_name(objectHandle, ret)\n this.handleError(errorCode)\n\n return handleReturnPointer<string>(ret)\n }\n\n public objectFree(options: { objectHandle: ObjectHandle }) {\n this.nativeAnoncreds.anoncreds_object_free(options.objectHandle.handle)\n }\n\n private convertCredentialList(credentials: NativeCredentialEntry[]) {\n const credentialEntries = credentials.map((value) => ({\n credential: value.credential.handle,\n timestamp: value.timestamp ?? -1,\n rev_state: value.revocationState?.handle ?? 0,\n }))\n\n return {\n count: credentialEntries.length,\n data: credentialEntries,\n }\n }\n\n private convertCredentialProves(credentialsProve: NativeCredentialProve[]) {\n const credentialProves = credentialsProve.map((value) => {\n const { entryIndex: entry_idx, isPredicate: is_predicate, reveal, referent } = serializeArguments(value)\n return { entry_idx, referent, is_predicate, reveal }\n })\n\n return {\n count: credentialProves.length,\n data: credentialProves,\n }\n }\n\n private convertSchemas(schemas: Record<string, ObjectHandle>) {\n const schemaKeys = Object.keys(schemas)\n const schemaIds = {\n count: schemaKeys.length,\n data: schemaKeys,\n }\n\n const schemaValues = Object.values(schemas)\n\n return {\n schemaIds,\n schemas: {\n count: schemaValues.length,\n data: schemaValues.map((o) => o.handle),\n },\n }\n }\n\n private convertCredDefs(credentialDefinitions: Record<string, ObjectHandle>) {\n const credentialDefinitionKeys = Object.keys(credentialDefinitions)\n const credentialDefinitionIds = {\n count: credentialDefinitionKeys.length,\n data: credentialDefinitionKeys,\n }\n\n const credentialDefinitionValues = Object.values(credentialDefinitions)\n const credentialDefinitionsList = {\n count: credentialDefinitionValues.length,\n data: credentialDefinitionValues.map((o) => o.handle),\n }\n\n return {\n credentialDefinitionIds,\n credentialDefinitions: credentialDefinitionsList,\n }\n }\n\n private convertNonRevokedIntervalOverrides(nonRevokedIntervalOverrides?: NativeNonRevokedIntervalOverride[]) {\n const nativeNonRevokedIntervalOverrides = nonRevokedIntervalOverrides?.map((value) => {\n const { requestedFromTimestamp, revocationRegistryDefinitionId, overrideRevocationStatusListTimestamp } =\n serializeArguments(value)\n return {\n rev_reg_def_id: revocationRegistryDefinitionId,\n requested_from_ts: requestedFromTimestamp,\n override_rev_status_list_ts: overrideRevocationStatusListTimestamp,\n }\n })\n\n return {\n count: nonRevokedIntervalOverrides?.length ?? 0,\n data: nativeNonRevokedIntervalOverrides,\n }\n }\n\n private convertAttributeNames(attributeRawValues: Record<string, string>) {\n return {\n count: Object.keys(attributeRawValues).length,\n data: Object.keys(attributeRawValues),\n }\n }\n\n private convertAttributeRawValues(attributeRawValues: Record<string, string>) {\n return {\n count: Object.keys(attributeRawValues).length,\n data: Object.values(attributeRawValues),\n }\n }\n\n private convertRevocationConfiguration(revocationConfiguration?: NativeCredentialRevocationConfig) {\n if (revocationConfiguration) {\n const { revocationRegistryDefinition, revocationRegistryDefinitionPrivate, revocationStatusList, registryIndex } =\n serializeArguments(revocationConfiguration)\n\n return {\n reg_def: revocationRegistryDefinition,\n reg_def_private: revocationRegistryDefinitionPrivate,\n status_list: revocationStatusList,\n reg_idx: registryIndex,\n }\n }\n }\n}\n","import { NativeAnoncreds } from '@hyperledger/anoncreds-shared'\nimport { NodeJSAnoncreds } from './NodeJSAnoncreds'\n\nexport const anoncredsNodeJS = new NodeJSAnoncreds()\nNativeAnoncreds.register(anoncredsNodeJS)\n\nexport * from '@hyperledger/anoncreds-shared'\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":["koffi","koffi"],"sources":["../src/ffi/alloc.ts","../src/ffi/conversion.ts","../src/ffi/primitives.ts","../src/ffi/serialize.ts","../src/ffi/structures.ts","../src/library/bindings.ts","../src/library/register.ts","../src/NodeJSAnoncreds.ts","../src/index.ts"],"sourcesContent":["export const allocatePointer = () => {\n return [undefined] as [unknown]\n}\n\nexport const allocateStringBuffer = () => {\n return [undefined] as [unknown]\n}\n\nexport const allocateInt32Buffer = () => {\n return [0] as [number]\n}\n\nexport const allocateInt8Buffer = () => {\n return [0] as [number]\n}\n\nexport const allocateByteBuffer = () => {\n return {} as unknown\n}\n\nexport const allocateSecretBuffer = () => {\n return {} as unknown\n}\n\nexport const allocateEncryptedBuffer = () => {\n return {} as unknown\n}\n\nexport const allocateAeadParams = () => {\n return {} as unknown\n}\n\nexport const allocateLocalKeyHandle = allocatePointer\n\nexport const allocateStringListHandle = allocatePointer\n","import type { ObjectHandle } from '@hyperledger/anoncreds-shared'\nimport koffi from 'koffi'\n\nexport const stringListToStringListStruct = (stringList: Array<string>) => {\n return {\n count: stringList.length,\n data: stringList,\n }\n}\n\nexport const byteBufferToString = (byteBuffer: { data: unknown; len: number }): string =>\n koffi.decode(byteBuffer.data, 'char', byteBuffer.len)\n\nexport const objectHandleListToObjectHandleListStruct = (objectHandleList: Array<ObjectHandle>) => {\n return {\n count: objectHandleList.length,\n data: objectHandleList.map((h) => h.handle),\n }\n}\n\nexport const i32ListToI32ListStruct = (i32List: Array<number>) => {\n return {\n count: i32List.length,\n data: i32List,\n }\n}\n","import * as koffi from 'koffi'\n\nexport const FFI_UINT8 = koffi.types.uint8_t\nexport const FFI_UINT64 = koffi.types.uint64_t\nexport const FFI_USIZE = koffi.types.size_t\nexport const FFI_INT8 = koffi.types.int8_t\nexport const FFI_INT32 = koffi.types.int32_t\nexport const FFI_INT64 = koffi.types.int64_t\nexport const FFI_STRING = koffi.types.string\nexport const FFI_VOID = koffi.types.void\n\n// AnonCreds allocates the strings it returns: return values and out parameters. koffi converts these to a JS string and\n// then calls anoncreds_string_free on the original pointer. Strings that JS passes to AnonCreds use FFI_STRING\nlet freeAnoncredsString: ((pointer: unknown) => void) | undefined\nexport const setFreeAnoncredsString = (free: (pointer: unknown) => void) => {\n freeAnoncredsString = free\n}\nexport const FFI_ANONCREDS_STRING = koffi.disposable('anoncreds_string', FFI_STRING, (pointer: unknown) => {\n if (!pointer) return\n\n // Fails loudly instead of leaking the string, should a string ever be converted before the library is loaded\n if (!freeAnoncredsString) throw new Error('Cannot free an AnonCreds string before the AnonCreds library is loaded')\n freeAnoncredsString(pointer)\n})\n\nexport const FFI_OBJECT_HANDLE = FFI_USIZE\n\nexport const FFI_ERROR_CODE = FFI_INT64\n","import { ObjectHandle } from '@hyperledger/anoncreds-shared'\nimport {\n i32ListToI32ListStruct,\n objectHandleListToObjectHandleListStruct,\n stringListToStringListStruct,\n} from './conversion'\n\nconst serialize = (arg: unknown): unknown => {\n switch (typeof arg) {\n case 'undefined':\n return null\n case 'boolean':\n return Number(arg)\n case 'string':\n return arg\n case 'number':\n return arg\n case 'function':\n return arg\n case 'object':\n if (arg instanceof ObjectHandle) {\n return arg.handle\n }\n if (Array.isArray(arg)) {\n if (arg.every((it) => typeof it === 'string')) {\n return stringListToStringListStruct(arg)\n }\n if (arg.every((it) => it instanceof ObjectHandle)) {\n return objectHandleListToObjectHandleListStruct(arg)\n }\n if (arg.every((it) => typeof it === 'number')) {\n return i32ListToI32ListStruct(arg)\n }\n }\n return JSON.stringify(arg)\n default:\n throw new Error('could not serialize value')\n }\n}\n\nexport const serializeArguments = <T extends Record<string, unknown> = Record<string, unknown>>(args: T) => {\n const retVal: Record<string, unknown> = {}\n for (const [key, val] of Object.entries(args)) {\n retVal[key] = serialize(val)\n }\n return retVal\n}\n","import koffi from 'koffi'\nimport { FFI_INT8, FFI_INT32, FFI_INT64, FFI_OBJECT_HANDLE, FFI_STRING, FFI_UINT8, FFI_USIZE } from './primitives'\n\nexport const ByteBufferStruct = koffi.struct('ByteBufferStruct', {\n len: FFI_INT64,\n data: koffi.pointer(FFI_UINT8),\n})\n\nexport type ByteBufferStructType = {\n len: number\n data: Uint8Array\n}\n\nexport const StringListStruct = koffi.struct('StringListStruct', {\n count: FFI_USIZE,\n data: koffi.pointer(FFI_STRING),\n})\n\nexport type StringListStructType = {\n count: number\n data: string[]\n}\n\nexport const I32ListStruct = koffi.struct('I32ListStruct', {\n count: FFI_USIZE,\n data: koffi.pointer(FFI_INT32),\n})\n\nexport type I32ListStructType = {\n count: number\n data: number[]\n}\n\nexport const CredRevInfoStruct = koffi.struct('CredRevInfoStruct', {\n reg_def: FFI_OBJECT_HANDLE,\n reg_def_private: FFI_OBJECT_HANDLE,\n status_list: FFI_OBJECT_HANDLE,\n reg_idx: FFI_INT64,\n})\n\nexport const CredentialEntryStruct = koffi.struct('CredentialEntryStruct', {\n credential: FFI_OBJECT_HANDLE,\n timestamp: FFI_INT32,\n rev_state: FFI_OBJECT_HANDLE,\n})\n\nexport const CredentialEntryStructList = koffi.struct('CredentialEntryStructList', {\n count: FFI_USIZE,\n data: koffi.pointer(CredentialEntryStruct),\n})\n\nexport const CredentialProveStruct = koffi.struct('CredentialProveStruct', {\n entry_idx: FFI_INT64,\n referent: FFI_STRING,\n is_predicate: FFI_INT8,\n reveal: FFI_INT8,\n})\n\nexport const CredentialProveStructList = koffi.struct('CredentialProveStructList', {\n count: FFI_USIZE,\n data: koffi.pointer(CredentialProveStruct),\n})\n\nexport const ObjectHandleStructList = koffi.struct('ObjectHandleStructList', {\n count: FFI_USIZE,\n data: koffi.pointer(FFI_OBJECT_HANDLE),\n})\n\nexport type ObjectHandleStructListType = {\n count: number\n data: number[]\n}\n\nexport const NonrevokedIntervalOverrideStruct = koffi.struct('NonrevokedIntervalOverrideStruct', {\n rev_reg_def_id: FFI_STRING,\n requested_from_ts: FFI_INT32,\n override_rev_status_list_ts: FFI_INT32,\n})\n\nexport const NonrevokedIntervalOverrideStructList = koffi.struct('NonrevokedIntervalOverrideStructList', {\n count: FFI_USIZE,\n data: koffi.pointer(NonrevokedIntervalOverrideStruct),\n})\n","import * as koffi from 'koffi'\nimport {\n ByteBufferStruct,\n CredentialEntryStructList,\n CredentialProveStructList,\n CredRevInfoStruct,\n FFI_ANONCREDS_STRING,\n FFI_ERROR_CODE,\n FFI_INT8,\n FFI_INT64,\n FFI_OBJECT_HANDLE,\n FFI_STRING,\n FFI_VOID,\n I32ListStruct,\n NonrevokedIntervalOverrideStructList,\n ObjectHandleStructList,\n StringListStruct,\n} from '../ffi'\n\n// koffi doesn't export the type of a type specifier\ntype TypeSpec = Parameters<typeof koffi.out>[0]\n\nexport const nativeBindings: Record<string, [TypeSpec, Array<TypeSpec>]> = {\n // Version and utilities\n anoncreds_version: [FFI_ANONCREDS_STRING, []],\n anoncreds_set_default_logger: [FFI_ERROR_CODE, []],\n\n // Error handling\n anoncreds_get_current_error: [FFI_ERROR_CODE, [koffi.out(koffi.pointer(FFI_ANONCREDS_STRING))]],\n\n // Nonce\n anoncreds_generate_nonce: [FFI_ERROR_CODE, [koffi.out(koffi.pointer(FFI_ANONCREDS_STRING))]],\n\n // Buffer and memory management\n anoncreds_buffer_free: [FFI_VOID, [ByteBufferStruct]],\n anoncreds_string_free: [FFI_VOID, [koffi.pointer(FFI_VOID)]],\n anoncreds_object_free: [FFI_VOID, [FFI_OBJECT_HANDLE]],\n\n // Object operations\n anoncreds_object_get_json: [FFI_ERROR_CODE, [FFI_OBJECT_HANDLE, koffi.out(koffi.pointer(ByteBufferStruct))]],\n anoncreds_object_get_type_name: [FFI_ERROR_CODE, [FFI_OBJECT_HANDLE, koffi.out(koffi.pointer(FFI_ANONCREDS_STRING))]],\n\n // Schema operations\n anoncreds_create_schema: [\n FFI_ERROR_CODE,\n [FFI_STRING, FFI_STRING, FFI_STRING, StringListStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_schema_from_json: [FFI_ERROR_CODE, [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))]],\n\n // Credential definition operations\n anoncreds_create_credential_definition: [\n FFI_ERROR_CODE,\n [\n FFI_STRING,\n FFI_OBJECT_HANDLE,\n FFI_STRING,\n FFI_STRING,\n FFI_STRING,\n FFI_INT8,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_credential_definition_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_credential_definition_private_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n\n // Key correctness proof\n anoncreds_key_correctness_proof_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n\n // Revocation registry operations\n anoncreds_create_revocation_registry_def: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_STRING,\n FFI_STRING,\n FFI_STRING,\n FFI_STRING,\n FFI_INT64,\n FFI_STRING,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_revocation_registry_definition_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_revocation_registry_definition_private_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_revocation_registry_definition_get_attribute: [\n FFI_ERROR_CODE,\n [FFI_OBJECT_HANDLE, FFI_STRING, koffi.out(koffi.pointer(FFI_ANONCREDS_STRING))],\n ],\n anoncreds_revocation_registry_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n\n // Revocation status list operations\n anoncreds_create_revocation_status_list: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_STRING,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_STRING,\n FFI_INT8,\n FFI_INT64,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_update_revocation_status_list: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n I32ListStruct,\n I32ListStruct,\n FFI_INT64,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_update_revocation_status_list_timestamp_only: [\n FFI_ERROR_CODE,\n [FFI_INT64, FFI_OBJECT_HANDLE, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_revocation_status_list_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n\n // Revocation state operations\n anoncreds_create_or_update_revocation_state: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_INT64,\n FFI_STRING,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_revocation_state_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n\n // Link secret operations\n anoncreds_create_link_secret: [FFI_ERROR_CODE, [koffi.out(koffi.pointer(FFI_ANONCREDS_STRING))]],\n\n // Credential offer operations\n anoncreds_create_credential_offer: [\n FFI_ERROR_CODE,\n [FFI_STRING, FFI_STRING, FFI_OBJECT_HANDLE, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_credential_offer_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n\n // Credential request operations\n anoncreds_create_credential_request: [\n FFI_ERROR_CODE,\n [\n FFI_STRING,\n FFI_STRING,\n FFI_OBJECT_HANDLE,\n FFI_STRING,\n FFI_STRING,\n FFI_OBJECT_HANDLE,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_credential_request_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_credential_request_metadata_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n\n // Credential operations\n anoncreds_create_credential: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n StringListStruct,\n StringListStruct,\n StringListStruct,\n koffi.pointer(CredRevInfoStruct),\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_credential_from_json: [FFI_ERROR_CODE, [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))]],\n anoncreds_credential_get_attribute: [\n FFI_ERROR_CODE,\n [FFI_OBJECT_HANDLE, FFI_STRING, koffi.out(koffi.pointer(FFI_ANONCREDS_STRING))],\n ],\n anoncreds_process_credential: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_STRING,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_encode_credential_attributes: [\n FFI_ERROR_CODE,\n [StringListStruct, koffi.out(koffi.pointer(FFI_ANONCREDS_STRING))],\n ],\n\n // W3C Credential operations\n anoncreds_create_w3c_credential: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n StringListStruct,\n StringListStruct,\n koffi.pointer(CredRevInfoStruct),\n FFI_STRING,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_w3c_credential_from_json: [FFI_ERROR_CODE, [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))]],\n anoncreds_credential_to_w3c: [\n FFI_ERROR_CODE,\n [FFI_OBJECT_HANDLE, FFI_STRING, FFI_STRING, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_credential_from_w3c: [FFI_ERROR_CODE, [FFI_OBJECT_HANDLE, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))]],\n anoncreds_process_w3c_credential: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n FFI_STRING,\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_w3c_credential_get_integrity_proof_details: [\n FFI_ERROR_CODE,\n [FFI_OBJECT_HANDLE, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_w3c_credential_proof_get_attribute: [\n FFI_ERROR_CODE,\n [FFI_OBJECT_HANDLE, FFI_STRING, koffi.out(koffi.pointer(FFI_ANONCREDS_STRING))],\n ],\n\n // Presentation request operations\n anoncreds_presentation_request_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n\n // Presentation operations\n anoncreds_create_presentation: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n CredentialEntryStructList,\n CredentialProveStructList,\n StringListStruct,\n StringListStruct,\n FFI_STRING,\n ObjectHandleStructList,\n StringListStruct,\n ObjectHandleStructList,\n StringListStruct,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_presentation_from_json: [FFI_ERROR_CODE, [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))]],\n anoncreds_verify_presentation: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n ObjectHandleStructList,\n StringListStruct,\n ObjectHandleStructList,\n StringListStruct,\n ObjectHandleStructList,\n StringListStruct,\n ObjectHandleStructList,\n NonrevokedIntervalOverrideStructList,\n koffi.out(koffi.pointer(FFI_INT8)),\n ],\n ],\n\n // W3C Presentation operations\n anoncreds_create_w3c_presentation: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n CredentialEntryStructList,\n CredentialProveStructList,\n FFI_STRING,\n ObjectHandleStructList,\n StringListStruct,\n ObjectHandleStructList,\n StringListStruct,\n FFI_STRING,\n koffi.out(koffi.pointer(FFI_OBJECT_HANDLE)),\n ],\n ],\n anoncreds_w3c_presentation_from_json: [\n FFI_ERROR_CODE,\n [ByteBufferStruct, koffi.out(koffi.pointer(FFI_OBJECT_HANDLE))],\n ],\n anoncreds_verify_w3c_presentation: [\n FFI_ERROR_CODE,\n [\n FFI_OBJECT_HANDLE,\n FFI_OBJECT_HANDLE,\n ObjectHandleStructList,\n StringListStruct,\n ObjectHandleStructList,\n StringListStruct,\n ObjectHandleStructList,\n StringListStruct,\n ObjectHandleStructList,\n NonrevokedIntervalOverrideStructList,\n koffi.out(koffi.pointer(FFI_INT8)),\n ],\n ],\n} as const\n","import fs from 'node:fs'\nimport { createRequire } from 'node:module'\nimport os from 'node:os'\nimport path from 'node:path'\nimport koffi from 'koffi'\nimport { setFreeAnoncredsString } from '../ffi'\nimport { nativeBindings } from './bindings'\nimport type { NativeMethods } from './NativeBindingInterface'\n\nconst LIBNAME = 'anoncreds'\nconst ENV_VAR = 'LIB_ANONCREDS_PATH'\n\ntype Platform = 'darwin' | 'linux' | 'win32'\n\ntype ExtensionMap = Record<Platform, { prefix?: string; extension: string }>\n\nconst extensions: ExtensionMap = {\n darwin: { prefix: 'lib', extension: '.dylib' },\n linux: { prefix: 'lib', extension: '.so' },\n win32: { extension: '.dll' },\n}\n\nconst libPaths: Record<Platform, string[]> = {\n darwin: ['/usr/local/lib/', '/usr/lib/', '/opt/homebrew/opt/'],\n linux: ['/usr/lib/', '/usr/local/lib/'],\n win32: ['c:\\\\windows\\\\system32\\\\'],\n}\n\n// Alias for a simple function to check if the path exists\nconst doesPathExist = fs.existsSync\n\nconst getLibrary = () => {\n // Detect OS; darwin, linux and windows are only supported\n const platform = os.platform()\n\n if (platform !== 'linux' && platform !== 'win32' && platform !== 'darwin')\n throw new Error(`Unsupported platform: ${platform}. linux, win32 and darwin are supported.`)\n\n // Get a potential path from the environment variable\n const pathFromEnvironment = process.env[ENV_VAR]\n\n // Get the paths specific to the users operating system\n const platformPaths = libPaths[platform]\n\n // Look for the file in the native directory of the package.\n // node-pre-gyp will download the binaries to this directory after installing the package\n // The package root, from both the bundle in build and the sources (Vitest)\n try {\n const packageRoot = path.dirname(\n createRequire(import.meta.url).resolve('@hyperledger/anoncreds-nodejs/package.json')\n )\n platformPaths.unshift(path.join(packageRoot, 'native'))\n } catch {\n // Bundled to CommonJS: import.meta.url is empty. The environment variable below still works.\n }\n\n // Check if the path from the environment variable is supplied and add it\n // We use unshift here so that when we want to get a valid library path this will be the first to resolve\n if (pathFromEnvironment) platformPaths.unshift(pathFromEnvironment)\n\n // Create the path + file\n const libraries = platformPaths.map((p) =>\n path.join(p, `${extensions[platform].prefix ?? ''}${LIBNAME}${extensions[platform].extension}`)\n )\n\n // Guard so we quit if there is no valid path for the library\n if (!libraries.some((libraryPath) => doesPathExist(libraryPath)))\n throw new Error(`Could not find ${LIBNAME} with these paths: ${libraries.join(' ')}`)\n\n // Get the first valid library\n // Casting here as a string because there is a guard of none of the paths\n const validLibraryPath = libraries.find((l) => doesPathExist(l)) as string\n\n // Load the library using koffi\n const lib = koffi.load(validLibraryPath)\n\n // Bind all the native functions\n const methods: Partial<NativeMethods> = {}\n for (const [name, [returnType, argumentTypes]] of Object.entries(nativeBindings)) {\n methods[name as keyof NativeMethods] = lib.func(name, returnType, argumentTypes)\n }\n setFreeAnoncredsString((pointer) => methods.anoncreds_string_free?.(pointer))\n\n return methods as NativeMethods\n}\n\nlet nativeAnonCreds: NativeMethods | undefined\nexport const getNativeAnonCreds = () => {\n if (!nativeAnonCreds) nativeAnonCreds = getLibrary()\n return nativeAnonCreds\n}\n","import { TextEncoder } from 'node:util'\nimport type {\n Anoncreds,\n AnoncredsErrorObject,\n NativeCredentialEntry,\n NativeCredentialProve,\n NativeCredentialRevocationConfig,\n NativeNonRevokedIntervalOverride,\n} from '@hyperledger/anoncreds-shared'\nimport { AnoncredsError, ObjectHandle } from '@hyperledger/anoncreds-shared'\nimport {\n allocateByteBuffer,\n allocateInt8Buffer,\n allocatePointer,\n allocateStringBuffer,\n type ByteBufferStructType,\n byteBufferToString,\n serializeArguments,\n} from './ffi'\nimport { getNativeAnonCreds } from './library'\n\nfunction handleReturnPointer<Return>(returnValue: [unknown] | unknown): Return {\n const value = Array.isArray(returnValue) ? returnValue[0] : returnValue\n if (value === null || value === undefined) {\n throw AnoncredsError.customError({ message: 'Unexpected null pointer' })\n }\n\n return value as Return\n}\n\nexport class NodeJSAnoncreds implements Anoncreds {\n public get nativeAnoncreds() {\n return getNativeAnonCreds()\n }\n\n /**\n * Fetch the error from the native library and throw it as a JS error\n *\n * NOTE:\n * Checks whether the error code of the returned error matches the error code that was passed to the function.\n * If it doesn't, we throw an error with the original errorCode, and a custom message explaining we weren't able\n * to retrieve the error message from the native library. This should however not break functionality as long as\n * error codes are used rather than error messages for error handling.\n *\n */\n private getAnoncredsError(errorCode: number): AnoncredsError {\n const error = this.getCurrentError()\n if (error.code !== errorCode) {\n return new AnoncredsError({\n code: errorCode,\n message:\n 'Error details have already been overwritten on the native side, unable to retrieve error message for the error',\n })\n }\n\n return new AnoncredsError(error)\n }\n\n public getCurrentError(): AnoncredsErrorObject {\n const error = allocateStringBuffer()\n this.nativeAnoncreds.anoncreds_get_current_error(error)\n const serializedError = handleReturnPointer<string>(error)\n\n return JSON.parse(serializedError) as AnoncredsErrorObject\n }\n\n private handleError(errorCode: number) {\n if (errorCode === 0) return\n\n throw this.getAnoncredsError(errorCode)\n }\n\n public generateNonce(): string {\n const ret = allocateStringBuffer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_generate_nonce(ret)\n this.handleError(errorCode)\n\n return handleReturnPointer<string>(ret)\n }\n\n public createSchema(options: {\n name: string\n version: string\n issuerId: string\n attributeNames: string[]\n }): ObjectHandle {\n const { name, version, issuerId, attributeNames } = serializeArguments(options)\n\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_schema(name, version, issuerId, attributeNames, ret)\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public revocationRegistryDefinitionGetAttribute(options: { objectHandle: ObjectHandle; name: string }) {\n const { objectHandle, name } = serializeArguments(options)\n\n const ret = allocateStringBuffer()\n const errorCode = this.nativeAnoncreds.anoncreds_revocation_registry_definition_get_attribute(\n objectHandle,\n name,\n ret\n )\n this.handleError(errorCode)\n\n return handleReturnPointer<string>(ret)\n }\n\n public credentialGetAttribute(options: { objectHandle: ObjectHandle; name: string }): string | null {\n const { objectHandle, name } = serializeArguments(options)\n\n const ret = allocateStringBuffer()\n const errorCode = this.nativeAnoncreds.anoncreds_credential_get_attribute(objectHandle, name, ret)\n this.handleError(errorCode)\n\n const value = Array.isArray(ret) ? ret[0] : ret\n return (value as string) ?? null\n }\n\n public createCredentialDefinition(options: {\n schemaId: string\n schema: ObjectHandle\n issuerId: string\n tag: string\n signatureType: string\n supportRevocation: boolean\n }): {\n credentialDefinition: ObjectHandle\n credentialDefinitionPrivate: ObjectHandle\n keyCorrectnessProof: ObjectHandle\n } {\n const { schemaId, issuerId, schema, tag, signatureType, supportRevocation } = serializeArguments(options)\n\n const credentialDefinitionPtr = allocatePointer()\n const credentialDefinitionPrivatePtr = allocatePointer()\n const keyCorrectnessProofPtr = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_credential_definition(\n schemaId,\n schema,\n tag,\n issuerId,\n signatureType,\n supportRevocation,\n credentialDefinitionPtr,\n credentialDefinitionPrivatePtr,\n keyCorrectnessProofPtr\n )\n this.handleError(errorCode)\n\n return {\n credentialDefinition: new ObjectHandle(handleReturnPointer<number>(credentialDefinitionPtr)),\n credentialDefinitionPrivate: new ObjectHandle(handleReturnPointer<number>(credentialDefinitionPrivatePtr)),\n keyCorrectnessProof: new ObjectHandle(handleReturnPointer<number>(keyCorrectnessProofPtr)),\n }\n }\n\n public createCredential(options: {\n credentialDefinition: ObjectHandle\n credentialDefinitionPrivate: ObjectHandle\n credentialOffer: ObjectHandle\n credentialRequest: ObjectHandle\n attributeRawValues: Record<string, string>\n attributeEncodedValues?: Record<string, string>\n revocationConfiguration?: NativeCredentialRevocationConfig\n }): ObjectHandle {\n const { credentialDefinition, credentialDefinitionPrivate, credentialOffer, credentialRequest } =\n serializeArguments(options)\n\n const attributeNames = {\n count: Object.keys(options.attributeRawValues).length,\n data: Object.keys(options.attributeRawValues),\n }\n\n const attributeRawValues = {\n count: Object.keys(options.attributeRawValues).length,\n data: Object.values(options.attributeRawValues),\n }\n\n const attributeEncodedValues = options.attributeEncodedValues\n ? {\n count: Object.keys(options.attributeEncodedValues).length,\n data: Object.values(options.attributeEncodedValues),\n }\n : {}\n\n let revocationConfiguration = null\n if (options.revocationConfiguration) {\n const { revocationStatusList, revocationRegistryDefinitionPrivate, revocationRegistryDefinition, registryIndex } =\n serializeArguments(options.revocationConfiguration)\n revocationConfiguration = {\n reg_def: revocationRegistryDefinition,\n reg_def_private: revocationRegistryDefinitionPrivate,\n status_list: revocationStatusList,\n reg_idx: registryIndex,\n }\n }\n\n const credentialPtr = allocatePointer()\n const errorCode = this.nativeAnoncreds.anoncreds_create_credential(\n credentialDefinition,\n credentialDefinitionPrivate,\n credentialOffer,\n credentialRequest,\n attributeNames,\n attributeRawValues,\n attributeEncodedValues,\n revocationConfiguration,\n credentialPtr\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(credentialPtr))\n }\n\n public encodeCredentialAttributes(options: { attributeRawValues: string[] }): string[] {\n const { attributeRawValues } = serializeArguments(options)\n\n const ret = allocateStringBuffer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_encode_credential_attributes(attributeRawValues, ret)\n this.handleError(errorCode)\n\n const result = handleReturnPointer<string>(ret)\n\n return result.split(',')\n }\n\n public processCredential(options: {\n credential: ObjectHandle\n credentialRequestMetadata: ObjectHandle\n linkSecret: string\n credentialDefinition: ObjectHandle\n revocationRegistryDefinition?: ObjectHandle | undefined\n }): ObjectHandle {\n const { credential, credentialRequestMetadata, linkSecret, credentialDefinition } = serializeArguments(options)\n\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_process_credential(\n credential,\n credentialRequestMetadata,\n linkSecret,\n credentialDefinition,\n options.revocationRegistryDefinition?.handle ?? 0,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public createCredentialOffer(options: {\n schemaId: string\n credentialDefinitionId: string\n keyCorrectnessProof: ObjectHandle\n }): ObjectHandle {\n const { schemaId, credentialDefinitionId, keyCorrectnessProof } = serializeArguments(options)\n\n const ret = allocatePointer()\n const errorCode = this.nativeAnoncreds.anoncreds_create_credential_offer(\n schemaId,\n credentialDefinitionId,\n keyCorrectnessProof,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public createCredentialRequest(options: {\n entropy?: string\n proverDid?: string\n credentialDefinition: ObjectHandle\n linkSecret: string\n linkSecretId: string\n credentialOffer: ObjectHandle\n }): { credentialRequest: ObjectHandle; credentialRequestMetadata: ObjectHandle } {\n const { entropy, proverDid, credentialDefinition, linkSecret, linkSecretId, credentialOffer } =\n serializeArguments(options)\n\n const credentialRequestPtr = allocatePointer()\n const credentialRequestMetadataPtr = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_credential_request(\n entropy,\n proverDid,\n credentialDefinition,\n linkSecret,\n linkSecretId,\n credentialOffer,\n credentialRequestPtr,\n credentialRequestMetadataPtr\n )\n this.handleError(errorCode)\n\n return {\n credentialRequest: new ObjectHandle(handleReturnPointer<number>(credentialRequestPtr)),\n credentialRequestMetadata: new ObjectHandle(handleReturnPointer<number>(credentialRequestMetadataPtr)),\n }\n }\n\n public createLinkSecret(): string {\n const ret = allocateStringBuffer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_link_secret(ret)\n this.handleError(errorCode)\n\n return handleReturnPointer<string>(ret)\n }\n\n public createPresentation(options: {\n presentationRequest: ObjectHandle\n credentials: NativeCredentialEntry[]\n credentialsProve: NativeCredentialProve[]\n selfAttest: Record<string, string>\n linkSecret: string\n schemas: Record<string, ObjectHandle>\n credentialDefinitions: Record<string, ObjectHandle>\n }): ObjectHandle {\n const { presentationRequest, linkSecret } = serializeArguments(options)\n\n const selfAttestNames = {\n count: Object.keys(options.selfAttest).length,\n data: Object.keys(options.selfAttest),\n }\n\n const selfAttestValues = {\n count: Object.values(options.selfAttest).length,\n data: Object.values(options.selfAttest),\n }\n\n const credentialEntryList = this.convertCredentialList(options.credentials)\n const credentialProveList = this.convertCredentialProves(options.credentialsProve)\n const { schemaIds, schemas } = this.convertSchemas(options.schemas)\n const { credentialDefinitionIds, credentialDefinitions } = this.convertCredDefs(options.credentialDefinitions)\n\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_presentation(\n presentationRequest,\n credentialEntryList,\n credentialProveList,\n selfAttestNames as unknown as Buffer,\n selfAttestValues as unknown as Buffer,\n linkSecret,\n schemas,\n schemaIds,\n credentialDefinitions,\n credentialDefinitionIds,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public verifyPresentation(options: {\n presentation: ObjectHandle\n presentationRequest: ObjectHandle\n schemas: ObjectHandle[]\n schemaIds: string[]\n credentialDefinitions: ObjectHandle[]\n credentialDefinitionIds: string[]\n revocationRegistryDefinitions?: ObjectHandle[]\n revocationRegistryDefinitionIds?: string[]\n revocationStatusLists?: ObjectHandle[]\n nonRevokedIntervalOverrides?: NativeNonRevokedIntervalOverride[]\n }): boolean {\n const {\n presentation,\n presentationRequest,\n schemas,\n credentialDefinitions,\n revocationRegistryDefinitions,\n revocationStatusLists,\n revocationRegistryDefinitionIds,\n schemaIds,\n credentialDefinitionIds,\n } = serializeArguments(options)\n\n const nonRevokedIntervalOverrideList = this.convertNonRevokedIntervalOverrides(options.nonRevokedIntervalOverrides)\n\n const ret = allocateInt8Buffer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_verify_presentation(\n presentation,\n presentationRequest,\n schemas,\n schemaIds,\n credentialDefinitions,\n credentialDefinitionIds,\n revocationRegistryDefinitions ?? {},\n revocationRegistryDefinitionIds ?? {},\n revocationStatusLists ?? {},\n nonRevokedIntervalOverrideList,\n ret\n )\n this.handleError(errorCode)\n\n return Boolean(handleReturnPointer<number>(ret))\n }\n\n public createRevocationStatusList(options: {\n credentialDefinition: ObjectHandle\n revocationRegistryDefinitionId: string\n revocationRegistryDefinition: ObjectHandle\n revocationRegistryDefinitionPrivate: ObjectHandle\n issuerId: string\n issuanceByDefault: boolean\n timestamp?: number\n }): ObjectHandle {\n const {\n credentialDefinition,\n revocationRegistryDefinitionId,\n revocationRegistryDefinition,\n revocationRegistryDefinitionPrivate,\n issuerId,\n issuanceByDefault,\n timestamp,\n } = serializeArguments(options)\n\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_revocation_status_list(\n credentialDefinition,\n revocationRegistryDefinitionId,\n revocationRegistryDefinition,\n revocationRegistryDefinitionPrivate,\n issuerId,\n issuanceByDefault,\n timestamp ?? -1,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public updateRevocationStatusListTimestampOnly(options: {\n timestamp: number\n currentRevocationStatusList: ObjectHandle\n }): ObjectHandle {\n const { currentRevocationStatusList, timestamp } = serializeArguments(options)\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_update_revocation_status_list_timestamp_only(\n timestamp,\n currentRevocationStatusList,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public updateRevocationStatusList(options: {\n credentialDefinition: ObjectHandle\n revocationRegistryDefinition: ObjectHandle\n revocationRegistryDefinitionPrivate: ObjectHandle\n currentRevocationStatusList: ObjectHandle\n issued?: number[]\n revoked?: number[]\n timestamp?: number\n }): ObjectHandle {\n const {\n credentialDefinition,\n revocationRegistryDefinition,\n revocationRegistryDefinitionPrivate,\n currentRevocationStatusList,\n issued,\n revoked,\n timestamp,\n } = serializeArguments(options)\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_update_revocation_status_list(\n credentialDefinition,\n revocationRegistryDefinition,\n revocationRegistryDefinitionPrivate,\n currentRevocationStatusList,\n issued ?? {},\n revoked ?? {},\n timestamp ?? -1,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public createRevocationRegistryDefinition(options: {\n credentialDefinition: ObjectHandle\n credentialDefinitionId: string\n issuerId: string\n tag: string\n revocationRegistryType: string\n maximumCredentialNumber: number\n tailsDirectoryPath?: string\n }) {\n const {\n credentialDefinition,\n credentialDefinitionId,\n tag,\n revocationRegistryType,\n issuerId,\n maximumCredentialNumber,\n tailsDirectoryPath,\n } = serializeArguments(options)\n\n const revocationRegistryDefinitionPtr = allocatePointer()\n const revocationRegistryDefinitionPrivate = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_revocation_registry_def(\n credentialDefinition,\n credentialDefinitionId,\n issuerId,\n tag,\n revocationRegistryType,\n maximumCredentialNumber,\n tailsDirectoryPath,\n revocationRegistryDefinitionPtr,\n revocationRegistryDefinitionPrivate\n )\n this.handleError(errorCode)\n\n return {\n revocationRegistryDefinition: new ObjectHandle(handleReturnPointer<number>(revocationRegistryDefinitionPtr)),\n revocationRegistryDefinitionPrivate: new ObjectHandle(\n handleReturnPointer<number>(revocationRegistryDefinitionPrivate)\n ),\n }\n }\n\n public createOrUpdateRevocationState(options: {\n revocationRegistryDefinition: ObjectHandle\n revocationStatusList: ObjectHandle\n revocationRegistryIndex: number\n tailsPath: string\n oldRevocationState?: ObjectHandle\n oldRevocationStatusList?: ObjectHandle\n }): ObjectHandle {\n const { revocationRegistryDefinition, revocationStatusList, revocationRegistryIndex, tailsPath } =\n serializeArguments(options)\n\n const oldRevocationState = options.oldRevocationState ?? new ObjectHandle(0)\n const oldRevocationStatusList = options.oldRevocationStatusList ?? new ObjectHandle(0)\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_or_update_revocation_state(\n revocationRegistryDefinition,\n revocationStatusList,\n revocationRegistryIndex,\n tailsPath,\n oldRevocationState.handle,\n oldRevocationStatusList.handle,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public createW3cCredential(options: {\n credentialDefinition: ObjectHandle\n credentialDefinitionPrivate: ObjectHandle\n credentialOffer: ObjectHandle\n credentialRequest: ObjectHandle\n attributeRawValues: Record<string, string>\n revocationConfiguration?: NativeCredentialRevocationConfig\n w3cVersion?: string\n }): ObjectHandle {\n const { credentialDefinition, credentialDefinitionPrivate, credentialOffer, credentialRequest, w3cVersion } =\n serializeArguments(options)\n\n const attributeNames = this.convertAttributeNames(options.attributeRawValues)\n const attributeRawValues = this.convertAttributeRawValues(options.attributeRawValues)\n const revocationConfiguration = this.convertRevocationConfiguration(options.revocationConfiguration)\n\n const credentialPtr = allocatePointer()\n const errorCode = this.nativeAnoncreds.anoncreds_create_w3c_credential(\n credentialDefinition,\n credentialDefinitionPrivate,\n credentialOffer,\n credentialRequest,\n attributeNames,\n attributeRawValues,\n revocationConfiguration ?? 0,\n w3cVersion,\n credentialPtr\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(credentialPtr))\n }\n\n public processW3cCredential(options: {\n credential: ObjectHandle\n credentialRequestMetadata: ObjectHandle\n linkSecret: string\n credentialDefinition: ObjectHandle\n revocationRegistryDefinition?: ObjectHandle | undefined\n }): ObjectHandle {\n const { credential, credentialRequestMetadata, linkSecret, credentialDefinition } = serializeArguments(options)\n\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_process_w3c_credential(\n credential,\n credentialRequestMetadata,\n linkSecret,\n credentialDefinition,\n options.revocationRegistryDefinition?.handle ?? 0,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public createW3cPresentation(options: {\n presentationRequest: ObjectHandle\n credentials: NativeCredentialEntry[]\n credentialsProve: NativeCredentialProve[]\n linkSecret: string\n schemas: Record<string, ObjectHandle>\n credentialDefinitions: Record<string, ObjectHandle>\n w3cVersion?: string\n }): ObjectHandle {\n const { presentationRequest, linkSecret, w3cVersion } = serializeArguments(options)\n\n const credentialEntryList = this.convertCredentialList(options.credentials)\n const credentialProveList = this.convertCredentialProves(options.credentialsProve)\n const { schemaIds, schemas } = this.convertSchemas(options.schemas)\n const { credentialDefinitionIds, credentialDefinitions } = this.convertCredDefs(options.credentialDefinitions)\n\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_create_w3c_presentation(\n presentationRequest,\n credentialEntryList,\n credentialProveList,\n linkSecret,\n schemas,\n schemaIds,\n credentialDefinitions,\n credentialDefinitionIds,\n w3cVersion,\n ret\n )\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public verifyW3cPresentation(options: {\n presentation: ObjectHandle\n presentationRequest: ObjectHandle\n schemas: ObjectHandle[]\n schemaIds: string[]\n credentialDefinitions: ObjectHandle[]\n credentialDefinitionIds: string[]\n revocationRegistryDefinitions?: ObjectHandle[]\n revocationRegistryDefinitionIds?: string[]\n revocationStatusLists?: ObjectHandle[]\n nonRevokedIntervalOverrides?: NativeNonRevokedIntervalOverride[]\n }): boolean {\n const {\n presentation,\n presentationRequest,\n schemas,\n credentialDefinitions,\n revocationRegistryDefinitions,\n revocationStatusLists,\n revocationRegistryDefinitionIds,\n schemaIds,\n credentialDefinitionIds,\n } = serializeArguments(options)\n\n const nonRevokedIntervalOverrideList = this.convertNonRevokedIntervalOverrides(options.nonRevokedIntervalOverrides)\n\n const ret = allocateInt8Buffer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_verify_w3c_presentation(\n presentation,\n presentationRequest,\n schemas,\n schemaIds,\n credentialDefinitions,\n credentialDefinitionIds,\n revocationRegistryDefinitions ?? {},\n revocationRegistryDefinitionIds ?? {},\n revocationStatusLists ?? {},\n nonRevokedIntervalOverrideList,\n ret\n )\n this.handleError(errorCode)\n\n return Boolean(handleReturnPointer<number>(ret))\n }\n\n public credentialToW3c(options: { objectHandle: ObjectHandle; issuerId: string; w3cVersion?: string }): ObjectHandle {\n const { objectHandle, issuerId, w3cVersion } = serializeArguments(options)\n\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_credential_to_w3c(objectHandle, issuerId, w3cVersion, ret)\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public credentialFromW3c(options: { objectHandle: ObjectHandle }): ObjectHandle {\n const { objectHandle } = serializeArguments(options)\n\n const ret = allocatePointer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_credential_from_w3c(objectHandle, ret)\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public w3cCredentialGetIntegrityProofDetails(options: { objectHandle: ObjectHandle }) {\n const { objectHandle } = serializeArguments(options)\n\n const ret = allocatePointer()\n const errorCode = this.nativeAnoncreds.anoncreds_w3c_credential_get_integrity_proof_details(objectHandle, ret)\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public w3cCredentialProofGetAttribute(options: { objectHandle: ObjectHandle; name: string }): string | null {\n const { objectHandle, name } = serializeArguments(options)\n\n const ret = allocateStringBuffer()\n const errorCode = this.nativeAnoncreds.anoncreds_w3c_credential_proof_get_attribute(objectHandle, name, ret)\n this.handleError(errorCode)\n\n const value = Array.isArray(ret) ? ret[0] : ret\n return (value as string) ?? null\n }\n\n public w3cCredentialFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_w3c_credential_from_json, options)\n }\n\n public w3cPresentationFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_w3c_presentation_from_json, options)\n }\n\n public version(): string {\n return this.nativeAnoncreds.anoncreds_version()\n }\n\n public setDefaultLogger(): void {\n const errorCode = this.nativeAnoncreds.anoncreds_set_default_logger()\n this.handleError(errorCode)\n }\n\n private objectFromJson(cb: (byteBuffer: ByteBufferStructType, ret: [unknown]) => number, options: { json: string }) {\n const ret = allocatePointer()\n\n const byteBuffer = new TextEncoder().encode(options.json)\n\n const errorCode = cb({ data: byteBuffer, len: byteBuffer.length }, ret)\n this.handleError(errorCode)\n\n return new ObjectHandle(handleReturnPointer<number>(ret))\n }\n\n public presentationRequestFromJson(options: { json: string }) {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_presentation_request_from_json, options)\n }\n\n public credentialRequestFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_request_from_json, options)\n }\n\n public credentialRequestMetadataFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_request_metadata_from_json, options)\n }\n\n public revocationRegistryDefinitionFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_revocation_registry_definition_from_json, options)\n }\n\n public revocationRegistryFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_revocation_registry_from_json, options)\n }\n\n public revocationStatusListFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_revocation_status_list_from_json, options)\n }\n\n public revocationStateFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_revocation_state_from_json, options)\n }\n\n public presentationFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_presentation_from_json, options)\n }\n\n public credentialOfferFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_offer_from_json, options)\n }\n\n public schemaFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_schema_from_json, options)\n }\n\n public credentialFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_from_json, options)\n }\n\n public revocationRegistryDefinitionPrivateFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_revocation_registry_definition_private_from_json, options)\n }\n\n public credentialDefinitionFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_definition_from_json, options)\n }\n\n public credentialDefinitionPrivateFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_credential_definition_private_from_json, options)\n }\n\n public keyCorrectnessProofFromJson(options: { json: string }): ObjectHandle {\n return this.objectFromJson(this.nativeAnoncreds.anoncreds_key_correctness_proof_from_json, options)\n }\n\n public getJson(options: { objectHandle: ObjectHandle }) {\n const { objectHandle } = serializeArguments(options)\n\n const ret = allocateByteBuffer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_object_get_json(objectHandle, ret)\n this.handleError(errorCode)\n\n const returnValue = handleReturnPointer<{ data: unknown; len: number }>(ret)\n const output = byteBufferToString(returnValue)\n\n this.nativeAnoncreds.anoncreds_buffer_free(returnValue)\n\n return output\n }\n\n public getTypeName(options: { objectHandle: ObjectHandle }) {\n const { objectHandle } = serializeArguments(options)\n\n const ret = allocateStringBuffer()\n\n const errorCode = this.nativeAnoncreds.anoncreds_object_get_type_name(objectHandle, ret)\n this.handleError(errorCode)\n\n return handleReturnPointer<string>(ret)\n }\n\n public objectFree(options: { objectHandle: ObjectHandle }) {\n this.nativeAnoncreds.anoncreds_object_free(options.objectHandle.handle)\n }\n\n private convertCredentialList(credentials: NativeCredentialEntry[]) {\n const credentialEntries = credentials.map((value) => ({\n credential: value.credential.handle,\n timestamp: value.timestamp ?? -1,\n rev_state: value.revocationState?.handle ?? 0,\n }))\n\n return {\n count: credentialEntries.length,\n data: credentialEntries,\n }\n }\n\n private convertCredentialProves(credentialsProve: NativeCredentialProve[]) {\n const credentialProves = credentialsProve.map((value) => {\n const { entryIndex: entry_idx, isPredicate: is_predicate, reveal, referent } = serializeArguments(value)\n return { entry_idx, referent, is_predicate, reveal }\n })\n\n return {\n count: credentialProves.length,\n data: credentialProves,\n }\n }\n\n private convertSchemas(schemas: Record<string, ObjectHandle>) {\n const schemaKeys = Object.keys(schemas)\n const schemaIds = {\n count: schemaKeys.length,\n data: schemaKeys,\n }\n\n const schemaValues = Object.values(schemas)\n\n return {\n schemaIds,\n schemas: {\n count: schemaValues.length,\n data: schemaValues.map((o) => o.handle),\n },\n }\n }\n\n private convertCredDefs(credentialDefinitions: Record<string, ObjectHandle>) {\n const credentialDefinitionKeys = Object.keys(credentialDefinitions)\n const credentialDefinitionIds = {\n count: credentialDefinitionKeys.length,\n data: credentialDefinitionKeys,\n }\n\n const credentialDefinitionValues = Object.values(credentialDefinitions)\n const credentialDefinitionsList = {\n count: credentialDefinitionValues.length,\n data: credentialDefinitionValues.map((o) => o.handle),\n }\n\n return {\n credentialDefinitionIds,\n credentialDefinitions: credentialDefinitionsList,\n }\n }\n\n private convertNonRevokedIntervalOverrides(nonRevokedIntervalOverrides?: NativeNonRevokedIntervalOverride[]) {\n const nativeNonRevokedIntervalOverrides = nonRevokedIntervalOverrides?.map((value) => {\n const { requestedFromTimestamp, revocationRegistryDefinitionId, overrideRevocationStatusListTimestamp } =\n serializeArguments(value)\n return {\n rev_reg_def_id: revocationRegistryDefinitionId,\n requested_from_ts: requestedFromTimestamp,\n override_rev_status_list_ts: overrideRevocationStatusListTimestamp,\n }\n })\n\n return {\n count: nonRevokedIntervalOverrides?.length ?? 0,\n data: nativeNonRevokedIntervalOverrides,\n }\n }\n\n private convertAttributeNames(attributeRawValues: Record<string, string>) {\n return {\n count: Object.keys(attributeRawValues).length,\n data: Object.keys(attributeRawValues),\n }\n }\n\n private convertAttributeRawValues(attributeRawValues: Record<string, string>) {\n return {\n count: Object.keys(attributeRawValues).length,\n data: Object.values(attributeRawValues),\n }\n }\n\n private convertRevocationConfiguration(revocationConfiguration?: NativeCredentialRevocationConfig) {\n if (revocationConfiguration) {\n const { revocationRegistryDefinition, revocationRegistryDefinitionPrivate, revocationStatusList, registryIndex } =\n serializeArguments(revocationConfiguration)\n\n return {\n reg_def: revocationRegistryDefinition,\n reg_def_private: revocationRegistryDefinitionPrivate,\n status_list: revocationStatusList,\n reg_idx: registryIndex,\n }\n }\n }\n}\n","import { NativeAnoncreds } from '@hyperledger/anoncreds-shared'\nimport { NodeJSAnoncreds } from './NodeJSAnoncreds'\n\nexport const anoncredsNodeJS = new NodeJSAnoncreds()\nNativeAnoncreds.register(anoncredsNodeJS)\n\nexport * from '@hyperledger/anoncreds-shared'\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperledger/anoncreds-nodejs",
3
- "version": "0.5.0-alpha-20261027231318",
3
+ "version": "0.5.0-alpha-20261106180141",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Nodejs wrapper for Anoncreds",
6
6
  "main": "./build/index.mjs",
@@ -28,8 +28,8 @@
28
28
  "scripts"
29
29
  ],
30
30
  "dependencies": {
31
- "@hyperledger/anoncreds-shared": "0.5.0-alpha-20261027231318",
32
- "koffi": "^3.3.4"
31
+ "@hyperledger/anoncreds-shared": "0.5.0-alpha-20261106180141",
32
+ "koffi": "^3.3.6"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/node": "^22.20.5",