@owlmeans/did 0.1.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.
Files changed (90) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +552 -0
  3. package/build/.gitkeep +0 -0
  4. package/build/consts.d.ts +9 -0
  5. package/build/consts.d.ts.map +1 -0
  6. package/build/consts.js +9 -0
  7. package/build/consts.js.map +1 -0
  8. package/build/errors.d.ts +22 -0
  9. package/build/errors.d.ts.map +1 -0
  10. package/build/errors.js +41 -0
  11. package/build/errors.js.map +1 -0
  12. package/build/i18n/en.json +8 -0
  13. package/build/i18n/wallet-en.json +99 -0
  14. package/build/i18n.d.ts +2 -0
  15. package/build/i18n.d.ts.map +1 -0
  16. package/build/i18n.js +6 -0
  17. package/build/i18n.js.map +1 -0
  18. package/build/index.d.ts +9 -0
  19. package/build/index.d.ts.map +1 -0
  20. package/build/index.js +8 -0
  21. package/build/index.js.map +1 -0
  22. package/build/model.d.ts +4 -0
  23. package/build/model.d.ts.map +1 -0
  24. package/build/model.js +41 -0
  25. package/build/model.js.map +1 -0
  26. package/build/plugins/ed25519owl.d.ts +3 -0
  27. package/build/plugins/ed25519owl.d.ts.map +1 -0
  28. package/build/plugins/ed25519owl.js +23 -0
  29. package/build/plugins/ed25519owl.js.map +1 -0
  30. package/build/plugins/exports.d.ts +3 -0
  31. package/build/plugins/exports.d.ts.map +1 -0
  32. package/build/plugins/exports.js +3 -0
  33. package/build/plugins/exports.js.map +1 -0
  34. package/build/plugins/index.d.ts +2 -0
  35. package/build/plugins/index.d.ts.map +1 -0
  36. package/build/plugins/index.js +6 -0
  37. package/build/plugins/index.js.map +1 -0
  38. package/build/types.d.ts +64 -0
  39. package/build/types.d.ts.map +1 -0
  40. package/build/types.js +2 -0
  41. package/build/types.js.map +1 -0
  42. package/build/utils/index.d.ts +4 -0
  43. package/build/utils/index.d.ts.map +1 -0
  44. package/build/utils/index.js +4 -0
  45. package/build/utils/index.js.map +1 -0
  46. package/build/utils/key.d.ts +3 -0
  47. package/build/utils/key.d.ts.map +1 -0
  48. package/build/utils/key.js +24 -0
  49. package/build/utils/key.js.map +1 -0
  50. package/build/utils/mnemonic.d.ts +6 -0
  51. package/build/utils/mnemonic.d.ts.map +1 -0
  52. package/build/utils/mnemonic.js +15 -0
  53. package/build/utils/mnemonic.js.map +1 -0
  54. package/build/utils.d.ts +5 -0
  55. package/build/utils.d.ts.map +1 -0
  56. package/build/utils.js +24 -0
  57. package/build/utils.js.map +1 -0
  58. package/build/wallet/index.d.ts +2 -0
  59. package/build/wallet/index.d.ts.map +1 -0
  60. package/build/wallet/index.js +2 -0
  61. package/build/wallet/index.js.map +1 -0
  62. package/build/wallet/types.d.ts +30 -0
  63. package/build/wallet/types.d.ts.map +1 -0
  64. package/build/wallet/types.js +2 -0
  65. package/build/wallet/types.js.map +1 -0
  66. package/build/wallet.d.ts +3 -0
  67. package/build/wallet.d.ts.map +1 -0
  68. package/build/wallet.js +151 -0
  69. package/build/wallet.js.map +1 -0
  70. package/package.json +42 -0
  71. package/src/consts.ts +16 -0
  72. package/src/errors.ts +51 -0
  73. package/src/i18n/en.json +8 -0
  74. package/src/i18n/wallet-en.json +99 -0
  75. package/src/i18n.ts +7 -0
  76. package/src/index.ts +9 -0
  77. package/src/model.ts +52 -0
  78. package/src/plugins/ed25519owl.ts +35 -0
  79. package/src/plugins/exports.ts +3 -0
  80. package/src/plugins/index.ts +9 -0
  81. package/src/types.ts +89 -0
  82. package/src/utils/index.ts +4 -0
  83. package/src/utils/key.ts +29 -0
  84. package/src/utils/mnemonic.ts +24 -0
  85. package/src/utils.ts +34 -0
  86. package/src/wallet/index.ts +2 -0
  87. package/src/wallet/types.ts +43 -0
  88. package/src/wallet.ts +183 -0
  89. package/tsconfig.json +16 -0
  90. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,99 @@
1
+ {
2
+ "createKey": {
3
+ "title": "Create new key",
4
+ "description": "Some orgnanization or service asks you to create a new crypto key",
5
+ "unknown-reason": "Be cautious! We do not know why you are asked to create a new key.",
6
+ "proceed": {
7
+ "label": "Confirm"
8
+ },
9
+ "cancel": {
10
+ "label": "Cancel"
11
+ }
12
+ },
13
+ "getEntityKey": {
14
+ "title": "Get public key for an ortnaization",
15
+ "description": "Some service asks you to provide a public key and related data for an orgnanization profile",
16
+ "unknown-reason": "Be cautious! We do not know why you are asked to provide this key.",
17
+ "proceed": {
18
+ "label": "Confirm"
19
+ },
20
+ "cancel": {
21
+ "label": "Cancel"
22
+ }
23
+ },
24
+ "sign": {
25
+ "title": "Sign with the key",
26
+ "description": "Some service asks you to sign a document with your key",
27
+ "unknown-reason": "Be cautious! We do not know why you are asked to make this signature.",
28
+ "proceed": {
29
+ "label": "Confirm"
30
+ },
31
+ "cancel": {
32
+ "label": "Cancel"
33
+ }
34
+ },
35
+ "masterSign": {
36
+ "title": "Sign with the primary key",
37
+ "description": "Some service asks you to sign a document with your primary key, that most likely should be used only with OwlMeans services",
38
+ "unknown-reason": "Be cautious! We do not know why you are asked to make this signature.",
39
+ "proceed": {
40
+ "label": "Confirm"
41
+ },
42
+ "cancel": {
43
+ "label": "Cancel"
44
+ }
45
+ },
46
+ "getMasterDid": {
47
+ "title": "Get your primary DID",
48
+ "description": "Some service asks for your primary decentralized address, that most likely should be shared only with OwlMeans services",
49
+ "unknown-reason": "Be cautious! We do not know why you are asked to share your primary DID.",
50
+ "proceed": {
51
+ "label": "Confirm"
52
+ },
53
+ "cancel": {
54
+ "label": "Cancel"
55
+ }
56
+ },
57
+ "selectKey": {
58
+ "title": "Choose a key",
59
+ "description": "Some service asks you to choose a key to get its public detials",
60
+ "unknown-reason": "Be cautious! We do not know why you are asked to provide public info of one of your keys.",
61
+ "proceed": {
62
+ "label": "Confirm"
63
+ },
64
+ "cancel": {
65
+ "label": "Cancel"
66
+ }
67
+ },
68
+ "getPublicDetails": {
69
+ "title": "Get public key",
70
+ "description": "Some service asks for a public key linked to your organization profile",
71
+ "unknown-reason": "Be cautious! We do not know why you are asked to share your public key.",
72
+ "proceed": {
73
+ "label": "Confirm"
74
+ },
75
+ "cancel": {
76
+ "label": "Cancel"
77
+ }
78
+ },
79
+ "requestPermissions": {
80
+ "title": "Requested permissions",
81
+ "description": "Some service asks to perform an action sequence with your wallet",
82
+ "unknown-reason": "Be cautious! We do not know why you are asked to perform these actions.",
83
+ "proceed": {
84
+ "label": "Confirm"
85
+ },
86
+ "cancel": {
87
+ "label": "Cancel"
88
+ },
89
+ "method": {
90
+ "createKey": "Create new crypto key",
91
+ "getEntityKey": "Get an organization public key",
92
+ "sign": "Sign some data with your key",
93
+ "masterSign": "Sign data with your primary key",
94
+ "getMasterDid": "Get your primary ID",
95
+ "selectKey": "Get one of your public keys",
96
+ "getPublicDetails": "Get your public key"
97
+ }
98
+ }
99
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":""}
package/build/i18n.js ADDED
@@ -0,0 +1,6 @@
1
+ import { addI18nLib } from '@owlmeans/i18n';
2
+ import en from './i18n/en.json' with { type: 'json' };
3
+ import walletEn from './i18n/wallet-en.json' with { type: 'json' };
4
+ addI18nLib('en', 'keys', en, { ns: 'did' });
5
+ addI18nLib('en', 'wallet', walletEn, { ns: 'did' });
6
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C,OAAO,EAAE,MAAM,gBAAgB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AACrD,OAAO,QAAQ,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAElE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;AAC3C,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ export type * from './types.js';
2
+ export * from './i18n.js';
3
+ export * from './consts.js';
4
+ export * from './wallet.js';
5
+ export * from './model.js';
6
+ export * from './errors.js';
7
+ export * from './plugins/index.js';
8
+ export * from './wallet/index.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,mBAAmB,YAAY,CAAA;AAC/B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA"}
package/build/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export * from './i18n.js';
2
+ export * from './consts.js';
3
+ export * from './wallet.js';
4
+ export * from './model.js';
5
+ export * from './errors.js';
6
+ export * from './plugins/index.js';
7
+ export * from './wallet/index.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { type KeyPair } from '@owlmeans/basic-keys';
2
+ import type { DIDKeyModel } from './types.js';
3
+ export declare const makeDidKeyModel: (input?: KeyPair | string) => DIDKeyModel;
4
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAM7C,eAAO,MAAM,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,KAAK,WA4C3D,CAAA"}
package/build/model.js ADDED
@@ -0,0 +1,41 @@
1
+ import { makeKeyPairModel, plugins } from '@owlmeans/basic-keys';
2
+ import { DIDKeyError } from './errors.js';
3
+ import { assertType, prepareKey } from '@owlmeans/basic-keys/utils';
4
+ import { base64 } from '@scure/base';
5
+ import { KP_SEP, MAX_DEPTH } from './consts.js';
6
+ export const makeDidKeyModel = input => {
7
+ if (typeof input == 'string') {
8
+ const plugin = plugins[input];
9
+ if (plugin != null && (plugin.fromSeed == null || plugin.derive == null)) {
10
+ throw new DIDKeyError(`non-derivable:${input}`);
11
+ }
12
+ }
13
+ const model = makeKeyPairModel(input);
14
+ model.derive = path => {
15
+ if (model.keyPair == null) {
16
+ throw new DIDKeyError('no:keypair');
17
+ }
18
+ assertType(model.keyPair?.type);
19
+ if (model.keyPair.privateKey == null) {
20
+ throw new DIDKeyError('no:pk');
21
+ }
22
+ const items = path.split(KP_SEP).filter(item => item != null && item !== '');
23
+ if (items.length > MAX_DEPTH) {
24
+ throw new DIDKeyError('too:deep');
25
+ }
26
+ const item = items.shift();
27
+ if (item == null) {
28
+ throw new DIDKeyError('no:path');
29
+ }
30
+ const newKey = [model.keyPair.type, base64.encode(plugins[model.keyPair.type].derive(prepareKey(model.keyPair.privateKey), item))].join(':');
31
+ const derived = makeDidKeyModel(newKey);
32
+ if (derived.keyPair == null) {
33
+ throw new DIDKeyError('derived:missgenerated');
34
+ }
35
+ derived.keyPair.path = path;
36
+ derived.keyPair.parent = model.exportAddress();
37
+ return items.length > 0 ? derived.derive(items.join(KP_SEP)) : derived;
38
+ };
39
+ return model;
40
+ };
41
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAgB,MAAM,sBAAsB,CAAA;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE/C,MAAM,CAAC,MAAM,eAAe,GAA8C,KAAK,CAAC,EAAE;IAChF,IAAI,OAAO,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QAC7B,IAAI,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,WAAW,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAA;QACjD,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAgB,gBAAgB,CAAC,KAAK,CAAgB,CAAA;IAEjE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;QACpB,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YAC1B,MAAM,IAAI,WAAW,CAAC,YAAY,CAAC,CAAA;QACrC,CAAC;QACD,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;YACrC,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;QAChC,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,CAAA;QAE5E,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,WAAW,CAAC,UAAU,CAAC,CAAA;QACnC,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAC1B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,WAAW,CAAC,SAAS,CAAC,CAAA;QAClC,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAC/C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAChF,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEZ,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;QACvC,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,WAAW,CAAC,uBAAuB,CAAC,CAAA;QAChD,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAA;QAC3B,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,aAAa,EAAE,CAAA;QAE9C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IACxE,CAAC,CAAA;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { KeyPlugin } from '@owlmeans/basic-keys/plugins';
2
+ export declare const ed25519owlPluginBuilder: (type?: string) => KeyPlugin;
3
+ //# sourceMappingURL=ed25519owl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ed25519owl.d.ts","sourceRoot":"","sources":["../../src/plugins/ed25519owl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AAQ7D,eAAO,MAAM,uBAAuB,UAAU,MAAM,KAAa,SAyBhE,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { ed25519 } from '@noble/curves/ed25519';
2
+ import { KEY_OWL } from '../consts.js';
3
+ import { base58, utf8 } from '@scure/base';
4
+ import { concatBytes, randomBytes } from '@noble/hashes/utils';
5
+ import { hmac } from '@noble/hashes/hmac';
6
+ import { sha512 } from '@noble/hashes/sha512';
7
+ import { keccak_256 } from '@noble/hashes/sha3';
8
+ export const ed25519owlPluginBuilder = (type = KEY_OWL) => {
9
+ const key = {
10
+ type: type,
11
+ random: () => key.fromSeed(randomBytes(32)),
12
+ derive: (pk, path) => hmac(sha512, pk.slice(32), concatBytes(pk.slice(0, 32), utf8.decode(path))),
13
+ fromSeed: (seed) => hmac(sha512, utf8.decode(type), seed),
14
+ sign: (data, pk) => ed25519.sign(data, pk.slice(0, 32)),
15
+ verify: (data, signature, pub) => ed25519.verify(signature, data, pub),
16
+ toPublic: pk => ed25519.getPublicKey(pk.slice(0, 32)),
17
+ toAdress: pub => base58.encode(keccak_256(pub.slice(4)).slice(-20)),
18
+ encrypt: () => { throw new Error(`${key.type}:encryption-support`); },
19
+ decrypt: () => { throw new Error(`${key.type}:encryption-support`); }
20
+ };
21
+ return key;
22
+ };
23
+ //# sourceMappingURL=ed25519owl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ed25519owl.js","sourceRoot":"","sources":["../../src/plugins/ed25519owl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAE/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAe,OAAO,EAAa,EAAE;IAC3E,MAAM,GAAG,GAAc;QACrB,IAAI,EAAE,IAAI;QAEV,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,QAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAE5C,MAAM,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CACnB,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAE7E,QAAQ,EAAE,CAAC,IAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;QAErE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEvD,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC;QAEtE,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAErD,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAEnE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,qBAAqB,CAAC,CAAA,CAAC,CAAC;QAEpE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,qBAAqB,CAAC,CAAA,CAAC,CAAC;KACrE,CAAA;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './index.js';
2
+ export * from './ed25519owl.js';
3
+ //# sourceMappingURL=exports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exports.d.ts","sourceRoot":"","sources":["../../src/plugins/exports.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './index.js';
2
+ export * from './ed25519owl.js';
3
+ //# sourceMappingURL=exports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/plugins/exports.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const plugins: Record<string, import("@owlmeans/basic-keys/plugins").KeyPlugin>;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,OAAO,kEAAe,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { plugins as basicPlugins } from '@owlmeans/basic-keys';
2
+ import { ed25519owlPluginBuilder } from './ed25519owl.js';
3
+ const owlPluginInstance = ed25519owlPluginBuilder();
4
+ basicPlugins[owlPluginInstance.type] = owlPluginInstance;
5
+ export const plugins = basicPlugins;
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAEzD,MAAM,iBAAiB,GAAG,uBAAuB,EAAE,CAAA;AAEnD,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAA;AAExD,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAA"}
@@ -0,0 +1,64 @@
1
+ import type { Profile } from '@owlmeans/auth';
2
+ import type { KeyPair, KeyPairModel } from '@owlmeans/basic-keys';
3
+ import type { Resource, ResourceRecord } from '@owlmeans/resource';
4
+ export interface DIDWallet {
5
+ store: DIDStore;
6
+ generate: (opts?: MnemonicOptions) => Promise<void>;
7
+ mnemonic: (crash?: boolean) => Promise<string | false>;
8
+ master: () => Promise<DIDKeyModel>;
9
+ add: (key: DIDKeyModel, meta: KeyMeta) => Promise<void>;
10
+ meta: (key: string | DIDKeyModel) => Promise<KeyMeta>;
11
+ update: (key: DIDKeyModel, meta: KeyMeta) => Promise<[DIDKeyModel, KeyMeta]>;
12
+ get: (did: string) => Promise<DIDKeyModel | null>;
13
+ find: (meta: Partial<KeyMeta>) => Promise<DIDKeyModel[]>;
14
+ provide: (mate: Partial<KeyMeta>) => Promise<DIDKeyModel[]>;
15
+ remove: (did: string | KeyMeta | DIDKeyModel) => Promise<DIDKeyModel>;
16
+ all: () => Promise<DIDKeyModel[]>;
17
+ allMeta: () => Promise<KeyMeta[]>;
18
+ }
19
+ export interface MakeDIDWalletOptions {
20
+ force?: boolean;
21
+ allowEmpty?: boolean;
22
+ mnemonic?: MnemonicOptions;
23
+ type?: string;
24
+ allowCustomType?: boolean;
25
+ }
26
+ export interface DIDStore {
27
+ master: MasterResource;
28
+ keys: KeyPairResource;
29
+ meta: KeyMetaResource;
30
+ }
31
+ export interface MasterResource extends Resource<KeySeedRecord> {
32
+ }
33
+ export interface KeyPairResource extends Resource<KeyPairRecord> {
34
+ }
35
+ export interface KeyMetaResource extends Resource<KeyMetaRecord> {
36
+ }
37
+ export interface KeyPairRecord extends ResourceRecord, DIDKeyPair {
38
+ }
39
+ export interface KeySeedRecord extends ResourceRecord, KeySeed {
40
+ }
41
+ export interface KeyMetaRecord extends ResourceRecord, KeyMeta {
42
+ id: string;
43
+ }
44
+ export interface KeySeed extends DIDKeyPair {
45
+ entropy?: string;
46
+ seed?: string;
47
+ }
48
+ export interface KeyMeta extends Partial<Profile> {
49
+ id: string;
50
+ name: string;
51
+ entityId?: string;
52
+ }
53
+ export interface MnemonicOptions {
54
+ size?: number;
55
+ }
56
+ export interface DIDKeyPair extends KeyPair {
57
+ path?: string;
58
+ parent?: string;
59
+ }
60
+ export interface DIDKeyModel extends KeyPairModel {
61
+ keyPair?: DIDKeyPair;
62
+ derive: (path: string) => DIDKeyModel;
63
+ }
64
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/build/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from './mnemonic.js';
2
+ export * from './key.js';
3
+ export * from '../utils.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './mnemonic.js';
2
+ export * from './key.js';
3
+ export * from '../utils.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { DIDKeyPair } from '../types.js';
2
+ export declare const produceKey: (seed: string | Uint8Array, type?: string) => DIDKeyPair;
3
+ //# sourceMappingURL=key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key.d.ts","sourceRoot":"","sources":["../../src/utils/key.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,eAAO,MAAM,UAAU,SAAU,MAAM,GAAG,UAAU,SAAQ,MAAM,eAoBjE,CAAA"}
@@ -0,0 +1,24 @@
1
+ import { assertType } from '@owlmeans/basic-keys/utils';
2
+ import { KEY_OWL } from '../consts.js';
3
+ import { base64 } from '@scure/base';
4
+ import { plugins } from '../plugins/index.js';
5
+ import { DIDKeyError } from '../errors.js';
6
+ export const produceKey = (seed, type = KEY_OWL) => {
7
+ if (typeof seed === 'string') {
8
+ seed = base64.decode(seed);
9
+ }
10
+ assertType(type);
11
+ if (plugins[type].fromSeed == null) {
12
+ throw new DIDKeyError(`non-derivable:${type}`);
13
+ }
14
+ const privateKey = plugins[type].fromSeed(seed);
15
+ const publicKey = plugins[type].toPublic(privateKey);
16
+ const keyPair = {
17
+ privateKey: base64.encode(privateKey),
18
+ publicKey: base64.encode(publicKey),
19
+ address: plugins[type].toAdress(publicKey),
20
+ type,
21
+ };
22
+ return keyPair;
23
+ };
24
+ //# sourceMappingURL=key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key.js","sourceRoot":"","sources":["../../src/utils/key.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG1C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAyB,EAAE,OAAe,OAAO,EAAE,EAAE;IAC9E,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IACD,UAAU,CAAC,IAAI,CAAC,CAAA;IAEhB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,WAAW,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IACpD,MAAM,OAAO,GAAe;QAC1B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;QACrC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;QACnC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC1C,IAAI;KACL,CAAA;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { MnemonicOptions } from '../types.js';
2
+ export declare const generateMnemonic: (opts?: MnemonicOptions) => string;
3
+ export declare const toSeed: (mnemonic: string) => string;
4
+ export declare const toEntropy: (mnemonic: string) => string;
5
+ export declare const toMnemonic: (seed: string) => string;
6
+ //# sourceMappingURL=mnemonic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mnemonic.d.ts","sourceRoot":"","sources":["../../src/utils/mnemonic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAKlD,eAAO,MAAM,gBAAgB,UAAW,eAAe,KAAG,MASzD,CAAA;AAED,eAAO,MAAM,MAAM,aAAc,MAAM,KAAG,MACG,CAAA;AAE7C,eAAO,MAAM,SAAS,aAAc,MAAM,KAAG,MACH,CAAA;AAE1C,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MACY,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { generateMnemonic as generate, mnemonicToSeedSync, entropyToMnemonic } from '@scure/bip39';
2
+ import { hex, base64 } from '@scure/base';
3
+ import { wordlist } from '@scure/bip39/wordlists/english';
4
+ export const generateMnemonic = (opts) => {
5
+ const size = opts?.size ?? 18;
6
+ if (size < 12 || size > 24) {
7
+ throw new SyntaxError('Mnemonic size should be between 12 and 24');
8
+ }
9
+ const strength = Math.round(256 * size / 24);
10
+ return generate(wordlist, strength + (32 - strength % 32));
11
+ };
12
+ export const toSeed = (mnemonic) => base64.encode(mnemonicToSeedSync(mnemonic));
13
+ export const toEntropy = (mnemonic) => hex.encode(mnemonicToSeedSync(mnemonic));
14
+ export const toMnemonic = (seed) => entropyToMnemonic(hex.decode(seed), wordlist);
15
+ //# sourceMappingURL=mnemonic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mnemonic.js","sourceRoot":"","sources":["../../src/utils/mnemonic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,IAAI,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAClG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AAEzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAsB,EAAU,EAAE;IACjE,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,EAAE,CAAA;IAE7B,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,WAAW,CAAC,2CAA2C,CAAC,CAAA;IACpE,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC,CAAA;IAC5C,OAAO,QAAQ,CAAC,QAAe,EAAE,QAAQ,GAAG,CAAC,EAAE,GAAG,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAA;AACnE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,QAAgB,EAAU,EAAE,CACjD,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAA;AAE7C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAU,EAAE,CACpD,GAAG,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAA;AAE1C,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CACjD,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAe,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { KeyMeta } from './types.js';
2
+ export declare const toPath: (...args: (string | string[])[]) => string;
3
+ export declare const mataToPath: (meta: Partial<KeyMeta>) => string;
4
+ export declare const matchMeta: (haystack: KeyMeta, needle: Partial<KeyMeta>) => boolean;
5
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEzC,eAAO,MAAM,MAAM,YAAa,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,WAEvC,CAAA;AAEd,eAAO,MAAM,UAAU,SAAU,OAAO,CAAC,OAAO,CAAC,KAAG,MAcnD,CAAA;AAID,eAAO,MAAM,SAAS,aAAc,OAAO,UAAU,OAAO,CAAC,OAAO,CAAC,KAAG,OAQlE,CAAA"}
package/build/utils.js ADDED
@@ -0,0 +1,24 @@
1
+ import { ENTITY_PREFIX, KP_SEP, PREFIX_SEP, PROFILE_PREFIX, SERVICE_PREFIX } from './consts.js';
2
+ export const toPath = (...args) => args.map(arg => Array.isArray(arg) ? arg.join(PREFIX_SEP) : arg).join(KP_SEP);
3
+ export const mataToPath = (meta) => {
4
+ const { scopes, id, entityId } = meta;
5
+ const items = [];
6
+ if (scopes != null && scopes.length === 1) {
7
+ items.push([SERVICE_PREFIX, scopes[0]]);
8
+ }
9
+ if (entityId != null) {
10
+ items.push([ENTITY_PREFIX, entityId]);
11
+ }
12
+ if (id != null) {
13
+ items.push([PROFILE_PREFIX, id]);
14
+ }
15
+ return toPath(...items);
16
+ };
17
+ const skipFields = ['name'];
18
+ export const matchMeta = (haystack, needle) => Object.entries(needle).every(([key, value]) => skipFields.includes(key)
19
+ || (haystack[key] != null
20
+ && (Array.isArray(value)
21
+ ? Array.isArray(haystack[key])
22
+ && value.every(value => haystack[key].includes(value))
23
+ : haystack[key] === value)));
24
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAG/F,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,GAAG,IAA2B,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAChE,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CACvD,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAEd,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAsB,EAAU,EAAE;IAC3D,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IACrC,MAAM,KAAK,GAA0B,EAAE,CAAA;IACvC,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzC,CAAC;IACD,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAA;IACvC,CAAC;IACD,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAA;IAClC,CAAC;IAED,OAAO,MAAM,CAAC,GAAG,KAAK,CAAC,CAAA;AACzB,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,CAAA;AAE3B,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAiB,EAAE,MAAwB,EAAW,EAAE,CAChF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAC5C,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;OACrB,CAAC,QAAQ,CAAC,GAA4B,CAAC,IAAI,IAAI;WAC7C,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACtB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAA4B,CAAC,CAAC;mBACpD,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAE,QAAQ,CAAC,GAA4B,CAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC9F,CAAC,CAAC,QAAQ,CAAC,GAA4B,CAAC,KAAK,KAAK,CAAC,CACtD,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export type * from './types.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AACA,mBAAmB,YAAY,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import { DIDKeyPair, KeyMeta } from '../types.js';
2
+ export interface WalletFacade {
3
+ sign: (entityId: string | null, payload: Uint8Array, opts?: WalletOptions) => Promise<Uint8Array>;
4
+ createKey: (entityId: string, opts?: NewKeyOptions) => Promise<string>;
5
+ getEntityKey: (entityId: string, opts?: WalletOptions) => Promise<WalletKey>;
6
+ getMasterDid: (opts?: RequestReason) => Promise<string>;
7
+ selectKey: (opts?: WalletOptions) => Promise<WalletKey>;
8
+ getPublicDetails: (did: string, opts?: RequestReason) => Promise<WalletKey>;
9
+ requestPermissions: (methods: string[], opts?: WalletOptions) => Promise<boolean>;
10
+ close: () => Promise<void>;
11
+ }
12
+ export interface WalletKey {
13
+ key: Partial<DIDKeyPair>;
14
+ meta: KeyMeta;
15
+ }
16
+ export interface RequestReason {
17
+ intro?: string;
18
+ reason?: string;
19
+ timestamp?: number;
20
+ }
21
+ export interface WalletOptions extends RequestReason {
22
+ purpose?: string;
23
+ type?: string;
24
+ profileId?: string;
25
+ service?: string;
26
+ }
27
+ export interface NewKeyOptions extends WalletOptions {
28
+ name: string;
29
+ }
30
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/wallet/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAEjD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IAEjG,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAEtE,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IAI5E,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAEvD,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IAEvD,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IAE3E,kBAAkB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAEjF,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IACxB,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,IAAI,EAAE,MAAM,CAAA;CACb"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/wallet/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import type { DIDStore, DIDWallet, MakeDIDWalletOptions } from './types.js';
2
+ export declare const makeWallet: (store: DIDStore, opts?: MakeDIDWalletOptions) => Promise<DIDWallet>;
3
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,QAAQ,EAAE,SAAS,EAA0B,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAShH,eAAO,MAAM,UAAU,UAAiB,QAAQ,SAAS,oBAAoB,uBA4K5E,CAAA"}