@learncard/core 1.0.0
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 +21 -0
- package/README.md +128 -0
- package/dist/README.md +89 -0
- package/dist/core.cjs.development.js +48753 -0
- package/dist/core.cjs.development.js.map +7 -0
- package/dist/core.cjs.production.min.js +896 -0
- package/dist/core.cjs.production.min.js.map +7 -0
- package/dist/core.d.ts +232 -0
- package/dist/core.esm.js +48756 -0
- package/dist/core.esm.js.map +7 -0
- package/dist/didkit/README.md +89 -0
- package/dist/didkit/didkit_wasm.d.ts +222 -0
- package/dist/didkit/didkit_wasm.js +1070 -0
- package/dist/didkit/didkit_wasm_bg.wasm +0 -0
- package/dist/didkit/didkit_wasm_bg.wasm.d.ts +48 -0
- package/dist/didkit/package.json +15 -0
- package/dist/didkit_wasm.d.ts +222 -0
- package/dist/didkit_wasm.js +1070 -0
- package/dist/didkit_wasm_bg.wasm +0 -0
- package/dist/didkit_wasm_bg.wasm.d.ts +48 -0
- package/dist/index.js +7 -0
- package/dist/package.json +15 -0
- package/package.json +54 -0
@@ -0,0 +1,89 @@
|
|
1
|
+
[](https://www.npmjs.com/package/@spruceid/didkit-wasm) [](https://www.npmjs.com/package/@spruceid/didkit-wasm-node)
|
2
|
+
<!-- Might want those badge in the main README. -->
|
3
|
+
|
4
|
+
# DIDKit WASM
|
5
|
+
|
6
|
+
## Prerequisites to Build from Source
|
7
|
+
|
8
|
+
NPM packages are available but if you would like to compile DIDKit yourself
|
9
|
+
(e.g. to enable different cryptographic backends) you will need the WASM
|
10
|
+
compiler toolchain as well as a specific build tool:
|
11
|
+
|
12
|
+
```bash
|
13
|
+
$ rustup target add wasm32-unknown-unknown
|
14
|
+
$ cargo install wasm-pack
|
15
|
+
# OR
|
16
|
+
# $ curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
|
17
|
+
```
|
18
|
+
|
19
|
+
## Installation and Usage
|
20
|
+
|
21
|
+
### Node
|
22
|
+
|
23
|
+
WASM can be used in Node.js (any recent version):
|
24
|
+
```bash
|
25
|
+
$ npm i @spruceid/didkit-wasm-node
|
26
|
+
```
|
27
|
+
|
28
|
+
Or build it from source:
|
29
|
+
```bash
|
30
|
+
$ wasm-pack build --target nodejs
|
31
|
+
```
|
32
|
+
|
33
|
+
### Web Frameworks (Bundled)
|
34
|
+
|
35
|
+
WASM can be used with web frameworks and bundlers like Webpack:
|
36
|
+
```bash
|
37
|
+
$ npm i @spruceid/didkit-wasm
|
38
|
+
```
|
39
|
+
|
40
|
+
Or build it from source:
|
41
|
+
```bash
|
42
|
+
$ wasm-pack build
|
43
|
+
```
|
44
|
+
|
45
|
+
> If Webpack doesn't work with the default configuration, you can have a look at
|
46
|
+
> our configuration for
|
47
|
+
> [tzprofiles](https://github.com/spruceid/tzprofiles/blob/main/dapp/webpack.config.js).
|
48
|
+
|
49
|
+
### Vanilla Javascript
|
50
|
+
|
51
|
+
WASM can be used with plain Javascript with newer browsers. As it cannot be used
|
52
|
+
as a NPM package you have to build it manually:
|
53
|
+
```bash
|
54
|
+
$ wasm-pack build --target web
|
55
|
+
```
|
56
|
+
|
57
|
+
The manual tests in `test/` serve as an example on how to import DIDKit.
|
58
|
+
|
59
|
+
## Tests
|
60
|
+
|
61
|
+
The `test/` directory contains manual tests to run in the browser. Instructions
|
62
|
+
are in the README of the directory.
|
63
|
+
|
64
|
+
## Non-Default Compilation
|
65
|
+
|
66
|
+
_**The current version of the `ring` crate does not provide all the symbols
|
67
|
+
needed to run on the browser, see DEPS.md**_
|
68
|
+
|
69
|
+
To compile all features plus `wasm32_c` on `ring`, a C compiler is needed, see
|
70
|
+
[spruceid/ssi](https://github.com/spruceid/didkit/tree/wasm):
|
71
|
+
|
72
|
+
On Ubuntu this one option is to install `clang` and `llvm`:
|
73
|
+
```bash
|
74
|
+
sudo apt install clang-10 llvm-10
|
75
|
+
```
|
76
|
+
|
77
|
+
Then to compile with all features:
|
78
|
+
```bash
|
79
|
+
TARGET_CC=clang-10 TARGET_AR=llvm-ar-10 wasm-pack build --out-dir pkg
|
80
|
+
```
|
81
|
+
|
82
|
+
To use a custom subset of features:
|
83
|
+
```bash
|
84
|
+
wasm-pack build --out-dir pkg -- --no-default-features --features=issue # issue credential/presentation
|
85
|
+
wasm-pack build --out-dir pkg -- --no-default-features --features=verify # verify credential/presentation
|
86
|
+
wasm-pack build --out-dir pkg -- --no-default-features --features=credential # issue/verify credential
|
87
|
+
wasm-pack build --out-dir pkg -- --no-default-features --features=presentation # issue/verify presentation
|
88
|
+
```
|
89
|
+
*don't forget to add `TARGET_CC` and `TARGET_AR` if using `ring` with `wasm32_c`*
|
@@ -0,0 +1,222 @@
|
|
1
|
+
/* tslint:disable */
|
2
|
+
/* eslint-disable */
|
3
|
+
/**
|
4
|
+
* @returns {string}
|
5
|
+
*/
|
6
|
+
export function getVersion(): string;
|
7
|
+
/**
|
8
|
+
* @param {string} did
|
9
|
+
* @param {string} input_metadata
|
10
|
+
* @returns {Promise<any>}
|
11
|
+
*/
|
12
|
+
export function resolveDID(did: string, input_metadata: string): Promise<any>;
|
13
|
+
/**
|
14
|
+
* @returns {string}
|
15
|
+
*/
|
16
|
+
export function generateEd25519Key(): string;
|
17
|
+
/**
|
18
|
+
* @param {Uint8Array} bytes
|
19
|
+
* @returns {string}
|
20
|
+
*/
|
21
|
+
export function generateEd25519KeyFromBytes(bytes: Uint8Array): string;
|
22
|
+
/**
|
23
|
+
* @param {string} method_pattern
|
24
|
+
* @param {string} jwk
|
25
|
+
* @returns {string}
|
26
|
+
*/
|
27
|
+
export function keyToDID(method_pattern: string, jwk: string): string;
|
28
|
+
/**
|
29
|
+
* @param {string} method_pattern
|
30
|
+
* @param {string} jwk
|
31
|
+
* @returns {Promise<any>}
|
32
|
+
*/
|
33
|
+
export function keyToVerificationMethod(method_pattern: string, jwk: string): Promise<any>;
|
34
|
+
/**
|
35
|
+
* @param {string} credential
|
36
|
+
* @param {string} proof_options
|
37
|
+
* @param {string} key
|
38
|
+
* @returns {Promise<any>}
|
39
|
+
*/
|
40
|
+
export function issueCredential(credential: string, proof_options: string, key: string): Promise<any>;
|
41
|
+
/**
|
42
|
+
* @param {string} credential
|
43
|
+
* @param {string} linked_data_proof_options
|
44
|
+
* @param {string} public_key
|
45
|
+
* @returns {Promise<any>}
|
46
|
+
*/
|
47
|
+
export function prepareIssueCredential(credential: string, linked_data_proof_options: string, public_key: string): Promise<any>;
|
48
|
+
/**
|
49
|
+
* @param {string} credential
|
50
|
+
* @param {string} preparation
|
51
|
+
* @param {string} signature
|
52
|
+
* @returns {Promise<any>}
|
53
|
+
*/
|
54
|
+
export function completeIssueCredential(credential: string, preparation: string, signature: string): Promise<any>;
|
55
|
+
/**
|
56
|
+
* @param {string} vc
|
57
|
+
* @param {string} proof_options
|
58
|
+
* @returns {Promise<any>}
|
59
|
+
*/
|
60
|
+
export function verifyCredential(vc: string, proof_options: string): Promise<any>;
|
61
|
+
/**
|
62
|
+
* @param {string} presentation
|
63
|
+
* @param {string} proof_options
|
64
|
+
* @param {string} key
|
65
|
+
* @returns {Promise<any>}
|
66
|
+
*/
|
67
|
+
export function issuePresentation(presentation: string, proof_options: string, key: string): Promise<any>;
|
68
|
+
/**
|
69
|
+
* @param {string} presentation
|
70
|
+
* @param {string} linked_data_proof_options
|
71
|
+
* @param {string} public_key
|
72
|
+
* @returns {Promise<any>}
|
73
|
+
*/
|
74
|
+
export function prepareIssuePresentation(presentation: string, linked_data_proof_options: string, public_key: string): Promise<any>;
|
75
|
+
/**
|
76
|
+
* @param {string} presentation
|
77
|
+
* @param {string} preparation
|
78
|
+
* @param {string} signature
|
79
|
+
* @returns {Promise<any>}
|
80
|
+
*/
|
81
|
+
export function completeIssuePresentation(presentation: string, preparation: string, signature: string): Promise<any>;
|
82
|
+
/**
|
83
|
+
* @param {string} vp
|
84
|
+
* @param {string} proof_options
|
85
|
+
* @returns {Promise<any>}
|
86
|
+
*/
|
87
|
+
export function verifyPresentation(vp: string, proof_options: string): Promise<any>;
|
88
|
+
/**
|
89
|
+
* @param {string} holder
|
90
|
+
* @param {string} linked_data_proof_options
|
91
|
+
* @param {string} key
|
92
|
+
* @returns {Promise<any>}
|
93
|
+
*/
|
94
|
+
export function DIDAuth(holder: string, linked_data_proof_options: string, key: string): Promise<any>;
|
95
|
+
/**
|
96
|
+
* @param {string} tz
|
97
|
+
* @returns {Promise<any>}
|
98
|
+
*/
|
99
|
+
export function JWKFromTezos(tz: string): Promise<any>;
|
100
|
+
/**
|
101
|
+
* @param {string} capability
|
102
|
+
* @param {string} linked_data_proof_options
|
103
|
+
* @param {string} parents
|
104
|
+
* @param {string} key
|
105
|
+
* @returns {Promise<any>}
|
106
|
+
*/
|
107
|
+
export function delegateCapability(capability: string, linked_data_proof_options: string, parents: string, key: string): Promise<any>;
|
108
|
+
/**
|
109
|
+
* @param {string} capability
|
110
|
+
* @param {string} linked_data_proof_options
|
111
|
+
* @param {string} parents
|
112
|
+
* @param {string} public_key
|
113
|
+
* @returns {Promise<any>}
|
114
|
+
*/
|
115
|
+
export function prepareDelegateCapability(capability: string, linked_data_proof_options: string, parents: string, public_key: string): Promise<any>;
|
116
|
+
/**
|
117
|
+
* @param {string} capability
|
118
|
+
* @param {string} preparation
|
119
|
+
* @param {string} signature
|
120
|
+
* @returns {Promise<any>}
|
121
|
+
*/
|
122
|
+
export function completeDelegateCapability(capability: string, preparation: string, signature: string): Promise<any>;
|
123
|
+
/**
|
124
|
+
* @param {string} delegation
|
125
|
+
* @returns {Promise<any>}
|
126
|
+
*/
|
127
|
+
export function verifyDelegation(delegation: string): Promise<any>;
|
128
|
+
/**
|
129
|
+
* @param {string} invocation
|
130
|
+
* @param {string} target_id
|
131
|
+
* @param {string} linked_data_proof_options
|
132
|
+
* @param {string} key
|
133
|
+
* @returns {Promise<any>}
|
134
|
+
*/
|
135
|
+
export function invokeCapability(invocation: string, target_id: string, linked_data_proof_options: string, key: string): Promise<any>;
|
136
|
+
/**
|
137
|
+
* @param {string} invocation
|
138
|
+
* @param {string} target_id
|
139
|
+
* @param {string} linked_data_proof_options
|
140
|
+
* @param {string} public_key
|
141
|
+
* @returns {Promise<any>}
|
142
|
+
*/
|
143
|
+
export function prepareInvokeCapability(invocation: string, target_id: string, linked_data_proof_options: string, public_key: string): Promise<any>;
|
144
|
+
/**
|
145
|
+
* @param {string} invocation
|
146
|
+
* @param {string} preparation
|
147
|
+
* @param {string} signature
|
148
|
+
* @returns {Promise<any>}
|
149
|
+
*/
|
150
|
+
export function completeInvokeCapability(invocation: string, preparation: string, signature: string): Promise<any>;
|
151
|
+
/**
|
152
|
+
* @param {string} invocation
|
153
|
+
* @returns {Promise<any>}
|
154
|
+
*/
|
155
|
+
export function verifyInvocationSignature(invocation: string): Promise<any>;
|
156
|
+
/**
|
157
|
+
* @param {string} invocation
|
158
|
+
* @param {string} delegation
|
159
|
+
* @returns {Promise<any>}
|
160
|
+
*/
|
161
|
+
export function verifyInvocation(invocation: string, delegation: string): Promise<any>;
|
162
|
+
|
163
|
+
export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
|
164
|
+
|
165
|
+
export interface InitOutput {
|
166
|
+
readonly memory: WebAssembly.Memory;
|
167
|
+
readonly getVersion: (a: number) => void;
|
168
|
+
readonly resolveDID: (a: number, b: number, c: number, d: number) => number;
|
169
|
+
readonly generateEd25519Key: (a: number) => void;
|
170
|
+
readonly generateEd25519KeyFromBytes: (a: number, b: number, c: number) => void;
|
171
|
+
readonly keyToDID: (a: number, b: number, c: number, d: number, e: number) => void;
|
172
|
+
readonly keyToVerificationMethod: (a: number, b: number, c: number, d: number) => number;
|
173
|
+
readonly issueCredential: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
174
|
+
readonly prepareIssueCredential: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
175
|
+
readonly completeIssueCredential: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
176
|
+
readonly verifyCredential: (a: number, b: number, c: number, d: number) => number;
|
177
|
+
readonly issuePresentation: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
178
|
+
readonly prepareIssuePresentation: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
179
|
+
readonly completeIssuePresentation: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
180
|
+
readonly verifyPresentation: (a: number, b: number, c: number, d: number) => number;
|
181
|
+
readonly DIDAuth: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
182
|
+
readonly JWKFromTezos: (a: number, b: number) => number;
|
183
|
+
readonly delegateCapability: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
|
184
|
+
readonly prepareDelegateCapability: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
|
185
|
+
readonly completeDelegateCapability: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
186
|
+
readonly verifyDelegation: (a: number, b: number) => number;
|
187
|
+
readonly invokeCapability: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
|
188
|
+
readonly prepareInvokeCapability: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => number;
|
189
|
+
readonly completeInvokeCapability: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
|
190
|
+
readonly verifyInvocationSignature: (a: number, b: number) => number;
|
191
|
+
readonly verifyInvocation: (a: number, b: number, c: number, d: number) => number;
|
192
|
+
readonly didkit_error_message: () => number;
|
193
|
+
readonly didkit_error_code: () => number;
|
194
|
+
readonly SHA1DCUpdate: (a: number, b: number, c: number) => void;
|
195
|
+
readonly sha1_compression_states: (a: number, b: number, c: number, d: number) => void;
|
196
|
+
readonly SHA1DCInit: (a: number) => void;
|
197
|
+
readonly SHA1DCSetSafeHash: (a: number, b: number) => void;
|
198
|
+
readonly SHA1DCSetUseUBC: (a: number, b: number) => void;
|
199
|
+
readonly SHA1DCSetUseDetectColl: (a: number, b: number) => void;
|
200
|
+
readonly SHA1DCSetDetectReducedRoundCollision: (a: number, b: number) => void;
|
201
|
+
readonly SHA1DCSetCallback: (a: number, b: number) => void;
|
202
|
+
readonly ubc_check: (a: number, b: number) => void;
|
203
|
+
readonly SHA1DCFinal: (a: number, b: number) => number;
|
204
|
+
readonly __wbindgen_malloc: (a: number) => number;
|
205
|
+
readonly __wbindgen_realloc: (a: number, b: number, c: number) => number;
|
206
|
+
readonly __wbindgen_export_2: WebAssembly.Table;
|
207
|
+
readonly _dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h91a8814f66f14b17: (a: number, b: number, c: number) => void;
|
208
|
+
readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
|
209
|
+
readonly __wbindgen_free: (a: number, b: number) => void;
|
210
|
+
readonly __wbindgen_exn_store: (a: number) => void;
|
211
|
+
readonly wasm_bindgen__convert__closures__invoke2_mut__h3ecfeb7a01c1be81: (a: number, b: number, c: number, d: number) => void;
|
212
|
+
}
|
213
|
+
|
214
|
+
/**
|
215
|
+
* If `module_or_path` is {RequestInfo} or {URL}, makes a request and
|
216
|
+
* for everything else, calls `WebAssembly.instantiate` directly.
|
217
|
+
*
|
218
|
+
* @param {InitInput | Promise<InitInput>} module_or_path
|
219
|
+
*
|
220
|
+
* @returns {Promise<InitOutput>}
|
221
|
+
*/
|
222
|
+
export default function init (module_or_path?: InitInput | Promise<InitInput>): Promise<InitOutput>;
|