@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.
- package/LICENSE +192 -0
- package/README.md +38 -0
- package/build/NodeJSAnoncreds.d.ts +185 -0
- package/build/NodeJSAnoncreds.js +318 -0
- package/build/NodeJSAnoncreds.js.map +1 -0
- package/build/error.d.ts +1 -0
- package/build/error.js +16 -0
- package/build/error.js.map +1 -0
- package/build/ffi/alloc.d.ts +5 -0
- package/build/ffi/alloc.js +18 -0
- package/build/ffi/alloc.js.map +1 -0
- package/build/ffi/conversion.d.ts +8 -0
- package/build/ffi/conversion.js +8 -0
- package/build/ffi/conversion.js.map +1 -0
- package/build/ffi/index.d.ts +5 -0
- package/build/ffi/index.js +18 -0
- package/build/ffi/index.js.map +1 -0
- package/build/ffi/primitives.d.ts +13 -0
- package/build/ffi/primitives.js +20 -0
- package/build/ffi/primitives.js.map +1 -0
- package/build/ffi/serialize.d.ts +16 -0
- package/build/ffi/serialize.js +55 -0
- package/build/ffi/serialize.js.map +1 -0
- package/build/ffi/structures.d.ts +101 -0
- package/build/ffi/structures.js +102 -0
- package/build/ffi/structures.js.map +1 -0
- package/build/index.d.ts +3 -0
- package/build/index.js +19 -0
- package/build/index.js.map +1 -0
- package/build/library/NativeBindingInterface.d.ts +27 -0
- package/build/library/NativeBindingInterface.js +4 -0
- package/build/library/NativeBindingInterface.js.map +1 -0
- package/build/library/bindings.d.ts +177 -0
- package/build/library/bindings.js +170 -0
- package/build/library/bindings.js.map +1 -0
- package/build/library/index.d.ts +3 -0
- package/build/library/index.js +16 -0
- package/build/library/index.js.map +1 -0
- package/build/library/register.d.ts +43 -0
- package/build/library/register.js +56 -0
- package/build/library/register.js.map +1 -0
- package/package.json +53 -0
- 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
|
+
}
|
package/scripts/arch.js
ADDED
|
@@ -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
|
+
}
|