@hyperledger/anoncreds-nodejs 0.3.5-alpha-20260107085331 → 0.4.0-alpha-20260212142546

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.
@@ -3,11 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getNativeAnoncreds = void 0;
7
- const fs_1 = __importDefault(require("fs"));
8
- const os_1 = __importDefault(require("os"));
9
- const path_1 = __importDefault(require("path"));
10
- const ffi_napi_1 = require("@2060.io/ffi-napi");
6
+ exports.getNativeAnonCreds = void 0;
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ const node_os_1 = __importDefault(require("node:os"));
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ const koffi_1 = __importDefault(require("koffi"));
11
11
  const bindings_1 = require("./bindings");
12
12
  const LIBNAME = 'anoncreds';
13
13
  const ENV_VAR = 'LIB_ANONCREDS_PATH';
@@ -22,10 +22,10 @@ const libPaths = {
22
22
  win32: ['c:\\windows\\system32\\'],
23
23
  };
24
24
  // Alias for a simple function to check if the path exists
25
- const doesPathExist = fs_1.default.existsSync;
25
+ const doesPathExist = node_fs_1.default.existsSync;
26
26
  const getLibrary = () => {
27
27
  // Detect OS; darwin, linux and windows are only supported
28
- const platform = os_1.default.platform();
28
+ const platform = node_os_1.default.platform();
29
29
  if (platform !== 'linux' && platform !== 'win32' && platform !== 'darwin')
30
30
  throw new Error(`Unsupported platform: ${platform}. linux, win32 and darwin are supported.`);
31
31
  // Get a potential path from the environment variable
@@ -34,29 +34,33 @@ const getLibrary = () => {
34
34
  const platformPaths = libPaths[platform];
35
35
  // Look for the file in the native directory of the package.
36
36
  // node-pre-gyp will download the binaries to this directory after installing the package
37
- platformPaths.unshift(path_1.default.join(__dirname, '../../native'));
37
+ platformPaths.unshift(node_path_1.default.join(__dirname, '../../native'));
38
38
  // Check if the path from the environment variable is supplied and add it
39
39
  // We use unshift here so that when we want to get a valid library path this will be the first to resolve
40
40
  if (pathFromEnvironment)
41
41
  platformPaths.unshift(pathFromEnvironment);
42
42
  // Create the path + file
43
- const libaries = platformPaths.map((p) => { var _a; return path_1.default.join(p, `${(_a = extensions[platform].prefix) !== null && _a !== void 0 ? _a : ''}${LIBNAME}${extensions[platform].extension}`); });
44
- // Gaurd so we quit if there is no valid path for the library
45
- if (!libaries.some(doesPathExist))
46
- throw new Error(`Could not find ${LIBNAME} with these paths: ${libaries.join(' ')}`);
43
+ const libraries = platformPaths.map((p) => { var _a; return node_path_1.default.join(p, `${(_a = extensions[platform].prefix) !== null && _a !== void 0 ? _a : ''}${LIBNAME}${extensions[platform].extension}`); });
44
+ // Guard so we quit if there is no valid path for the library
45
+ if (!libraries.some((libraryPath) => doesPathExist(libraryPath)))
46
+ throw new Error(`Could not find ${LIBNAME} with these paths: ${libraries.join(' ')}`);
47
47
  // Get the first valid library
48
48
  // Casting here as a string because there is a guard of none of the paths
49
- const validLibraryPath = libaries.find((l) => doesPathExist(l));
50
- // TODO
51
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
52
- // @ts-expect-error
53
- return (0, ffi_napi_1.Library)(validLibraryPath, bindings_1.nativeBindings);
49
+ const validLibraryPath = libraries.find((l) => doesPathExist(l));
50
+ // Load the library using koffi
51
+ const lib = koffi_1.default.load(validLibraryPath);
52
+ // Bind all the native functions
53
+ const methods = {};
54
+ for (const [name, [returnType, argumentTypes]] of Object.entries(bindings_1.nativeBindings)) {
55
+ methods[name] = lib.func(name, returnType, argumentTypes);
56
+ }
57
+ return methods;
54
58
  };
55
- let nativeAnoncreds;
56
- const getNativeAnoncreds = () => {
57
- if (!nativeAnoncreds)
58
- nativeAnoncreds = getLibrary();
59
- return nativeAnoncreds;
59
+ let nativeAnonCreds;
60
+ const getNativeAnonCreds = () => {
61
+ if (!nativeAnonCreds)
62
+ nativeAnonCreds = getLibrary();
63
+ return nativeAnonCreds;
60
64
  };
61
- exports.getNativeAnoncreds = getNativeAnoncreds;
65
+ exports.getNativeAnonCreds = getNativeAnonCreds;
62
66
  //# sourceMappingURL=register.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/library/register.ts"],"names":[],"mappings":";;;;;;AAEA,4CAAmB;AACnB,4CAAmB;AACnB,gDAAuB;AACvB,gDAA2C;AAE3C,yCAA2C;AAE3C,MAAM,OAAO,GAAG,WAAW,CAAA;AAC3B,MAAM,OAAO,GAAG,oBAAoB,CAAA;AAMpC,MAAM,UAAU,GAAiB;IAC/B,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE;IAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;IAC1C,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;CAC7B,CAAA;AAED,MAAM,QAAQ,GAA+B;IAC3C,MAAM,EAAE,CAAC,iBAAiB,EAAE,WAAW,EAAE,oBAAoB,CAAC;IAC9D,KAAK,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACvC,KAAK,EAAE,CAAC,yBAAyB,CAAC;CACnC,CAAA;AAED,0DAA0D;AAC1D,MAAM,aAAa,GAAG,YAAE,CAAC,UAAU,CAAA;AAEnC,MAAM,UAAU,GAAG,GAAG,EAAE;IACtB,0DAA0D;IAC1D,MAAM,QAAQ,GAAG,YAAE,CAAC,QAAQ,EAAE,CAAA;IAE9B,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ;QACvE,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,0CAA0C,CAAC,CAAA;IAE9F,qDAAqD;IACrD,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAEhD,uDAAuD;IACvD,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAExC,4DAA4D;IAC5D,yFAAyF;IACzF,aAAa,CAAC,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAA;IAE3D,yEAAyE;IACzE,yGAAyG;IACzG,IAAI,mBAAmB;QAAE,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAA;IAEnE,yBAAyB;IACzB,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WACvC,OAAA,cAAI,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,MAAA,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,mCAAI,EAAE,GAAG,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA,EAAA,CAChG,CAAA;IAED,6DAA6D;IAC7D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,sBAAsB,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEtF,8BAA8B;IAC9B,yEAAyE;IACzE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAW,CAAA;IAEzE,OAAO;IACP,6DAA6D;IAC7D,mBAAmB;IACnB,OAAO,IAAA,kBAAO,EAAC,gBAAgB,EAAE,yBAAc,CAAC,CAAA;AAClD,CAAC,CAAA;AAED,IAAI,eAA0C,CAAA;AACvC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,IAAI,CAAC,eAAe;QAAE,eAAe,GAAG,UAAU,EAA8B,CAAA;IAChF,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA;AAHY,QAAA,kBAAkB,sBAG9B"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/library/register.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperledger/anoncreds-nodejs",
3
- "version": "0.3.5-alpha-20260107085331",
3
+ "version": "0.4.0-alpha-20260212142546",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Nodejs wrapper for Anoncreds",
6
6
  "main": "build/index",
@@ -20,17 +20,13 @@
20
20
  "scripts"
21
21
  ],
22
22
  "dependencies": {
23
- "@2060.io/ffi-napi": "^4.0.9",
24
- "@2060.io/ref-napi": "^3.0.6",
25
- "ref-array-di": "1.2.2",
26
- "ref-struct-di": "1.1.1",
27
- "@hyperledger/anoncreds-shared": "0.3.5-alpha-20260107085331"
23
+ "koffi": "^2.15.1",
24
+ "@hyperledger/anoncreds-shared": "0.4.0-alpha-20260212142546"
28
25
  },
29
26
  "devDependencies": {
30
27
  "@types/node": "^20.12.11",
31
- "@types/ref-array-di": "^1.2.3",
32
- "@types/ref-struct-di": "^1.1.6",
33
- "typescript": "~5.4.5"
28
+ "typescript": "~5.4.5",
29
+ "vitest": "^4.0.12"
34
30
  },
35
31
  "binary": {
36
32
  "version": "v0.2.3",
@@ -38,7 +34,7 @@
38
34
  "packageName": "library-{platform}-{arch}.tar.gz"
39
35
  },
40
36
  "engines": {
41
- "node": ">= 18"
37
+ "node": ">= 20"
42
38
  },
43
39
  "scripts": {
44
40
  "check-types": "pnpm compile --noEmit",