@hyperledger/anoncreds-nodejs 0.1.0-dev.2

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.
Files changed (43) hide show
  1. package/LICENSE +192 -0
  2. package/README.md +38 -0
  3. package/build/NodeJSAnoncreds.d.ts +185 -0
  4. package/build/NodeJSAnoncreds.js +318 -0
  5. package/build/NodeJSAnoncreds.js.map +1 -0
  6. package/build/error.d.ts +1 -0
  7. package/build/error.js +16 -0
  8. package/build/error.js.map +1 -0
  9. package/build/ffi/alloc.d.ts +5 -0
  10. package/build/ffi/alloc.js +18 -0
  11. package/build/ffi/alloc.js.map +1 -0
  12. package/build/ffi/conversion.d.ts +8 -0
  13. package/build/ffi/conversion.js +8 -0
  14. package/build/ffi/conversion.js.map +1 -0
  15. package/build/ffi/index.d.ts +5 -0
  16. package/build/ffi/index.js +18 -0
  17. package/build/ffi/index.js.map +1 -0
  18. package/build/ffi/primitives.d.ts +13 -0
  19. package/build/ffi/primitives.js +20 -0
  20. package/build/ffi/primitives.js.map +1 -0
  21. package/build/ffi/serialize.d.ts +16 -0
  22. package/build/ffi/serialize.js +55 -0
  23. package/build/ffi/serialize.js.map +1 -0
  24. package/build/ffi/structures.d.ts +101 -0
  25. package/build/ffi/structures.js +102 -0
  26. package/build/ffi/structures.js.map +1 -0
  27. package/build/index.d.ts +3 -0
  28. package/build/index.js +19 -0
  29. package/build/index.js.map +1 -0
  30. package/build/library/NativeBindingInterface.d.ts +27 -0
  31. package/build/library/NativeBindingInterface.js +4 -0
  32. package/build/library/NativeBindingInterface.js.map +1 -0
  33. package/build/library/bindings.d.ts +177 -0
  34. package/build/library/bindings.js +170 -0
  35. package/build/library/bindings.js.map +1 -0
  36. package/build/library/index.d.ts +3 -0
  37. package/build/library/index.js +16 -0
  38. package/build/library/index.js.map +1 -0
  39. package/build/library/register.d.ts +43 -0
  40. package/build/library/register.js +56 -0
  41. package/build/library/register.js.map +1 -0
  42. package/package.json +53 -0
  43. package/scripts/arch.js +22 -0
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./NativeBindingInterface"), exports);
14
+ __exportStar(require("./bindings"), exports);
15
+ __exportStar(require("./register"), exports);
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/library/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2DAAwC;AACxC,6CAA0B;AAC1B,6CAA0B"}
@@ -0,0 +1,43 @@
1
+ export declare const nativeAnoncreds: {
2
+ anoncreds_buffer_free: (args_0: Buffer) => unknown;
3
+ anoncreds_create_credential: (args_0: number, args_1: number, args_2: number, args_3: number, args_4: Buffer, args_5: Buffer, args_6: Buffer, args_7: string, args_8: number, args_9: Buffer, args_10: Buffer) => unknown;
4
+ anoncreds_create_credential_definition: (args_0: string, args_1: number, args_2: string, args_3: string, args_4: string, args_5: number, args_6: Buffer, args_7: Buffer, args_8: Buffer) => unknown;
5
+ anoncreds_create_credential_offer: (args_0: string, args_1: string, args_2: number, args_3: Buffer) => unknown;
6
+ anoncreds_create_credential_request: (args_0: string, args_1: number, args_2: number, args_3: string, args_4: number, args_5: Buffer, args_6: Buffer) => unknown;
7
+ anoncreds_create_master_secret: (args_0: Buffer) => unknown;
8
+ anoncreds_create_or_update_revocation_state: (args_0: number, args_1: number, args_2: number, args_3: string, args_4: number, args_5: number, args_6: Buffer) => unknown;
9
+ anoncreds_create_presentation: (args_0: number, args_1: Buffer, args_2: Buffer, args_3: Buffer, args_4: Buffer, args_5: number, args_6: Buffer, args_7: Buffer, args_8: Buffer, args_9: Buffer, args_10: Buffer) => unknown;
10
+ anoncreds_create_revocation_registry_def: (args_0: number, args_1: string, args_2: string, args_3: string, args_4: string, args_5: number, args_6: string, args_7: Buffer, args_8: Buffer) => unknown;
11
+ anoncreds_create_schema: (args_0: string, args_1: string, args_2: string, args_3: Buffer, args_4: Buffer) => unknown;
12
+ anoncreds_credential_get_attribute: (args_0: number, args_1: string, args_2: Buffer) => unknown;
13
+ anoncreds_encode_credential_attributes: (args_0: Buffer, args_1: Buffer) => unknown;
14
+ anoncreds_generate_nonce: (args_0: Buffer) => unknown;
15
+ anoncreds_get_current_error: (args_0: Buffer) => unknown;
16
+ anoncreds_object_free: (args_0: number) => unknown;
17
+ anoncreds_object_get_json: (args_0: number, args_1: Buffer) => unknown;
18
+ anoncreds_object_get_type_name: (args_0: number, args_1: Buffer) => unknown;
19
+ anoncreds_presentation_request_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
20
+ anoncreds_process_credential: (args_0: number, args_1: number, args_2: number, args_3: number, args_4: number, args_5: Buffer) => unknown;
21
+ anoncreds_revocation_registry_definition_get_attribute: (args_0: number, args_1: string, args_2: Buffer) => unknown;
22
+ anoncreds_set_default_logger: () => unknown;
23
+ anoncreds_verify_presentation: (args_0: number, args_1: number, args_2: Buffer, args_3: Buffer, args_4: Buffer, args_5: Buffer, args_6: Buffer, args_7: Buffer, args_8: Buffer, args_9: Buffer) => unknown;
24
+ anoncreds_create_revocation_status_list: (args_0: string, args_1: number, args_2: number, args_3: number, args_4: Buffer) => unknown;
25
+ anoncreds_update_revocation_status_list_timestamp_only: (args_0: number, args_1: number, args_2: Buffer) => unknown;
26
+ anoncreds_update_revocation_status_list: (args_0: number, args_1: Buffer, args_2: Buffer, args_3: number, args_4: number, args_5: Buffer) => unknown;
27
+ anoncreds_version: () => string;
28
+ anoncreds_master_secret_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
29
+ anoncreds_credential_request_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
30
+ anoncreds_credential_request_metadata_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
31
+ anoncreds_presentation_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
32
+ anoncreds_credential_offer_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
33
+ anoncreds_revocation_registry_definition_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
34
+ anoncreds_revocation_registry_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
35
+ anoncreds_revocation_state_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
36
+ anoncreds_credential_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
37
+ anoncreds_credential_definition_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
38
+ anoncreds_credential_definition_private_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
39
+ anoncreds_revocation_registry_definition_private_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
40
+ anoncreds_revocation_registry_delta_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
41
+ anoncreds_key_correctness_proof_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
42
+ anoncreds_schema_from_json: (args_0: Buffer, args_1: Buffer) => unknown;
43
+ };
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.nativeAnoncreds = void 0;
7
+ const ffi_napi_1 = require("ffi-napi");
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const os_1 = __importDefault(require("os"));
10
+ const path_1 = __importDefault(require("path"));
11
+ const bindings_1 = require("./bindings");
12
+ const LIBNAME = 'anoncreds';
13
+ const ENV_VAR = 'LIB_ANONCREDS_PATH';
14
+ const extensions = {
15
+ darwin: { prefix: 'lib', extension: '.dylib' },
16
+ linux: { prefix: 'lib', extension: '.so' },
17
+ win32: { extension: '.dll' },
18
+ };
19
+ const libPaths = {
20
+ darwin: ['/usr/local/lib/', '/usr/lib/', '/opt/homebrew/opt/'],
21
+ linux: ['/usr/lib/', '/usr/local/lib/'],
22
+ win32: ['c:\\windows\\system32\\'],
23
+ };
24
+ // Alias for a simple function to check if the path exists
25
+ const doesPathExist = fs_1.default.existsSync;
26
+ const getLibrary = () => {
27
+ // Detect OS; darwin, linux and windows are only supported
28
+ const platform = os_1.default.platform();
29
+ if (platform !== 'linux' && platform !== 'win32' && platform !== 'darwin')
30
+ throw new Error(`Unsupported platform: ${platform}. linux, win32 and darwin are supported.`);
31
+ // Get a potential path from the environment variable
32
+ const pathFromEnvironment = process.env[ENV_VAR];
33
+ // Get the paths specific to the users operating system
34
+ const platformPaths = libPaths[platform];
35
+ // Look for the file in the native directory of the package.
36
+ // node-pre-gyp will download the binaries to this directory after installing the package
37
+ platformPaths.unshift(path_1.default.join(__dirname, '../../native'));
38
+ // Check if the path from the environment variable is supplied and add it
39
+ // We use unshift here so that when we want to get a valid library path this will be the first to resolve
40
+ if (pathFromEnvironment)
41
+ platformPaths.unshift(pathFromEnvironment);
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(' ')}`);
47
+ // Get the first valid library
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-ignore
53
+ return (0, ffi_napi_1.Library)(validLibraryPath, bindings_1.nativeBindings);
54
+ };
55
+ exports.nativeAnoncreds = getLibrary();
56
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/library/register.ts"],"names":[],"mappings":";;;;;;AAEA,uCAAkC;AAClC,4CAAmB;AACnB,4CAAmB;AACnB,gDAAuB;AAEvB,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,GAAoC;IAChD,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,aAAa;IACb,OAAO,IAAA,kBAAO,EAAC,gBAAgB,EAAE,yBAAc,CAAC,CAAA;AAClD,CAAC,CAAA;AAEY,QAAA,eAAe,GAAG,UAAU,EAA8B,CAAA"}
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@hyperledger/anoncreds-nodejs",
3
+ "version": "0.1.0-dev.2",
4
+ "license": "Apache-2.0",
5
+ "description": "Nodejs wrapper for Anoncreds",
6
+ "main": "build/index",
7
+ "source": "src/index",
8
+ "homepage": "https://github.com/hyperledger/anoncreds/tree/main/wrappers/javascript/anoncreds-nodejs",
9
+ "author": "Hyperledger (https://github.com/hyperledger)",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "https://github.com/hyperledger/anoncreds",
13
+ "directory": "wrappers/javascript/anoncreds-nodejs"
14
+ },
15
+ "publishConfig": {
16
+ "access": "public"
17
+ },
18
+ "files": [
19
+ "build",
20
+ "scripts"
21
+ ],
22
+ "scripts": {
23
+ "build": "yarn clean && yarn compile",
24
+ "clean": "rimraf -rf ./build",
25
+ "compile": "tsc -p tsconfig.build.json",
26
+ "install": "node-pre-gyp install --target_arch=$(node scripts/arch.js)"
27
+ },
28
+ "dependencies": {
29
+ "@hyperledger/anoncreds-shared": "0.1.0-dev.2",
30
+ "@mapbox/node-pre-gyp": "^1.0.10",
31
+ "ffi-napi": "4.0.3",
32
+ "node-cache": "5.1.2",
33
+ "ref-array-di": "1.2.2",
34
+ "ref-napi": "3.0.3",
35
+ "ref-struct-di": "1.1.1"
36
+ },
37
+ "devDependencies": {
38
+ "@types/ffi-napi": "4.0.5",
39
+ "@types/node": "17.0.31",
40
+ "@types/ref-array-di": "1.2.3",
41
+ "@types/ref-napi": "3.0.6",
42
+ "@types/ref-struct-di": "1.1.6",
43
+ "typescript": "4.5.5"
44
+ },
45
+ "binary": {
46
+ "module_name": "anoncreds",
47
+ "module_path": "native",
48
+ "remote_path": "v0.1.0-dev.2",
49
+ "host": "https://github.com/hyperledger/anoncreds/release/download/",
50
+ "package_name": "library-{platform}-{arch}.tar.gz"
51
+ },
52
+ "gitHead": "b1e2be51ffd03d6f96e665cd4f7b755e909f34a4"
53
+ }
@@ -0,0 +1,22 @@
1
+ const os = require('os')
2
+
3
+ // Find appropriate target architecture for retrieving the anoncreds library
4
+ const arch = os.arch()
5
+
6
+ // Architecture mapping
7
+ // This is used because node-pre-gyp uses `os.arch()` for
8
+ // architecture detection, but our library uses a different
9
+ // naming convention
10
+ const archTable = {
11
+ x64: 'x86_64',
12
+ arm64: 'aarch64',
13
+ }
14
+
15
+ const targetArchitecture = archTable[arch]
16
+
17
+ if (targetArchitecture) {
18
+ // We console.log here because when we use the `yarn install` script
19
+ // er evaluate this script and use the output as an argument to
20
+ // node-pre-gyp as `--arch=$(node -e arch.js)`
21
+ console.log(targetArchitecture)
22
+ }