@openwallet-foundation/askar-shared 0.3.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 +191 -0
- package/README.md +44 -0
- package/build/askar/Askar.d.ts +437 -0
- package/build/askar/Askar.js +3 -0
- package/build/askar/Askar.js.map +1 -0
- package/build/askar/index.d.ts +2 -0
- package/build/askar/index.js +19 -0
- package/build/askar/index.js.map +1 -0
- package/build/askar/register.d.ts +5 -0
- package/build/askar/register.js +8 -0
- package/build/askar/register.js.map +1 -0
- package/build/crypto/AeadParams.d.ts +9 -0
- package/build/crypto/AeadParams.js +11 -0
- package/build/crypto/AeadParams.js.map +1 -0
- package/build/crypto/CryptoBox.d.ts +24 -0
- package/build/crypto/CryptoBox.js +23 -0
- package/build/crypto/CryptoBox.js.map +1 -0
- package/build/crypto/Ecdh1PU.d.ts +58 -0
- package/build/crypto/Ecdh1PU.js +77 -0
- package/build/crypto/Ecdh1PU.js.map +1 -0
- package/build/crypto/EcdhEs.d.ts +46 -0
- package/build/crypto/EcdhEs.js +64 -0
- package/build/crypto/EcdhEs.js.map +1 -0
- package/build/crypto/EncryptedBuffer.d.ts +20 -0
- package/build/crypto/EncryptedBuffer.js +36 -0
- package/build/crypto/EncryptedBuffer.js.map +1 -0
- package/build/crypto/Jwk.d.ts +18 -0
- package/build/crypto/Jwk.js +24 -0
- package/build/crypto/Jwk.js.map +1 -0
- package/build/crypto/Key.d.ts +73 -0
- package/build/crypto/Key.js +101 -0
- package/build/crypto/Key.js.map +1 -0
- package/build/crypto/handles.d.ts +46 -0
- package/build/crypto/handles.js +123 -0
- package/build/crypto/handles.js.map +1 -0
- package/build/crypto/index.d.ts +8 -0
- package/build/crypto/index.js +25 -0
- package/build/crypto/index.js.map +1 -0
- package/build/enums/EntryOperation.d.ts +5 -0
- package/build/enums/EntryOperation.js +10 -0
- package/build/enums/EntryOperation.js.map +1 -0
- package/build/enums/KeyAlgorithm.d.ts +20 -0
- package/build/enums/KeyAlgorithm.js +38 -0
- package/build/enums/KeyAlgorithm.js.map +1 -0
- package/build/enums/KeyBackend.d.ts +6 -0
- package/build/enums/KeyBackend.js +24 -0
- package/build/enums/KeyBackend.js.map +1 -0
- package/build/enums/KeyMethod.d.ts +4 -0
- package/build/enums/KeyMethod.js +9 -0
- package/build/enums/KeyMethod.js.map +1 -0
- package/build/enums/LogLevel.d.ts +9 -0
- package/build/enums/LogLevel.js +14 -0
- package/build/enums/LogLevel.js.map +1 -0
- package/build/enums/SignatureAlgorithm.d.ts +6 -0
- package/build/enums/SignatureAlgorithm.js +11 -0
- package/build/enums/SignatureAlgorithm.js.map +1 -0
- package/build/enums/index.d.ts +5 -0
- package/build/enums/index.js +22 -0
- package/build/enums/index.js.map +1 -0
- package/build/error.d.ts +12 -0
- package/build/error.js +21 -0
- package/build/error.js.map +1 -0
- package/build/index.d.ts +6 -0
- package/build/index.js +23 -0
- package/build/index.js.map +1 -0
- package/build/migration.d.ts +10 -0
- package/build/migration.js +11 -0
- package/build/migration.js.map +1 -0
- package/build/store/Entry.d.ts +21 -0
- package/build/store/Entry.js +38 -0
- package/build/store/Entry.js.map +1 -0
- package/build/store/EntryList.d.ts +17 -0
- package/build/store/EntryList.js +40 -0
- package/build/store/EntryList.js.map +1 -0
- package/build/store/KeyEntry.d.ts +23 -0
- package/build/store/KeyEntry.js +40 -0
- package/build/store/KeyEntry.js.map +1 -0
- package/build/store/KeyEntryList.d.ts +15 -0
- package/build/store/KeyEntryList.js +33 -0
- package/build/store/KeyEntryList.js.map +1 -0
- package/build/store/OpenSession.d.ts +14 -0
- package/build/store/OpenSession.js +27 -0
- package/build/store/OpenSession.js.map +1 -0
- package/build/store/Scan.d.ts +28 -0
- package/build/store/Scan.js +67 -0
- package/build/store/Scan.js.map +1 -0
- package/build/store/Session.d.ts +86 -0
- package/build/store/Session.js +182 -0
- package/build/store/Session.js.map +1 -0
- package/build/store/Store.d.ts +58 -0
- package/build/store/Store.js +87 -0
- package/build/store/Store.js.map +1 -0
- package/build/store/StoreKeyMethod.d.ts +11 -0
- package/build/store/StoreKeyMethod.js +20 -0
- package/build/store/StoreKeyMethod.js.map +1 -0
- package/build/store/index.d.ts +9 -0
- package/build/store/index.js +26 -0
- package/build/store/index.js.map +1 -0
- package/package.json +36 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration = void 0;
|
|
4
|
+
const askar_1 = require("./askar");
|
|
5
|
+
class Migration {
|
|
6
|
+
static async migrate(options) {
|
|
7
|
+
await askar_1.askar.migrateIndySdk(options);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.Migration = Migration;
|
|
11
|
+
//# sourceMappingURL=migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migration.js","sourceRoot":"","sources":["../src/migration.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAS/B,MAAa,SAAS;IACb,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAyB;QACnD,MAAM,aAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;IACrC,CAAC;CACF;AAJD,8BAIC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { EntryListHandle } from '../crypto';
|
|
2
|
+
export type EntryObject = {
|
|
3
|
+
name: string;
|
|
4
|
+
value: Record<string, unknown> | string;
|
|
5
|
+
tags: Record<string, unknown>;
|
|
6
|
+
category: string;
|
|
7
|
+
};
|
|
8
|
+
export declare class Entry {
|
|
9
|
+
private _list;
|
|
10
|
+
private _pos;
|
|
11
|
+
constructor({ list, position }: {
|
|
12
|
+
list: EntryListHandle;
|
|
13
|
+
position: number;
|
|
14
|
+
});
|
|
15
|
+
get category(): string;
|
|
16
|
+
get name(): string;
|
|
17
|
+
get value(): string;
|
|
18
|
+
private get rawValue();
|
|
19
|
+
get tags(): Record<string, unknown>;
|
|
20
|
+
toJson(shouldParseValueToJson?: boolean): EntryObject;
|
|
21
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Entry = void 0;
|
|
4
|
+
const buffer_1 = require("buffer");
|
|
5
|
+
class Entry {
|
|
6
|
+
constructor({ list, position }) {
|
|
7
|
+
this._list = list;
|
|
8
|
+
this._pos = position;
|
|
9
|
+
}
|
|
10
|
+
get category() {
|
|
11
|
+
return this._list.getCategory(this._pos);
|
|
12
|
+
}
|
|
13
|
+
get name() {
|
|
14
|
+
return this._list.getName(this._pos);
|
|
15
|
+
}
|
|
16
|
+
get value() {
|
|
17
|
+
return buffer_1.Buffer.from(this.rawValue).toString();
|
|
18
|
+
}
|
|
19
|
+
get rawValue() {
|
|
20
|
+
return this._list.getValue(this._pos);
|
|
21
|
+
}
|
|
22
|
+
get tags() {
|
|
23
|
+
const tags = this._list.getTags(this._pos);
|
|
24
|
+
if (!tags)
|
|
25
|
+
return {};
|
|
26
|
+
return JSON.parse(tags);
|
|
27
|
+
}
|
|
28
|
+
toJson(shouldParseValueToJson = false) {
|
|
29
|
+
return {
|
|
30
|
+
name: this.name,
|
|
31
|
+
value: shouldParseValueToJson ? JSON.parse(this.value) : this.value,
|
|
32
|
+
tags: this.tags,
|
|
33
|
+
category: this.category,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.Entry = Entry;
|
|
38
|
+
//# sourceMappingURL=Entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Entry.js","sourceRoot":"","sources":["../../src/store/Entry.ts"],"names":[],"mappings":";;;AAEA,mCAA+B;AAS/B,MAAa,KAAK;IAIhB,YAAmB,EAAE,IAAI,EAAE,QAAQ,EAA+C;QAChF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;IACtB,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,IAAW,KAAK;QACd,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC9C,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC;IAED,IAAW,IAAI;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE1C,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAA;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAA;IACpD,CAAC;IAEM,MAAM,CAAC,sBAAsB,GAAG,KAAK;QAC1C,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,sBAAsB,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAA6B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;YAChG,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAA;IACH,CAAC;CACF;AAxCD,sBAwCC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { EntryObject } from '.';
|
|
2
|
+
import type { EntryListHandle } from '../crypto';
|
|
3
|
+
import { Entry } from './Entry';
|
|
4
|
+
export declare class EntryList {
|
|
5
|
+
private _handle;
|
|
6
|
+
private _length;
|
|
7
|
+
constructor({ handle, length }: {
|
|
8
|
+
handle: EntryListHandle;
|
|
9
|
+
length?: number;
|
|
10
|
+
});
|
|
11
|
+
get handle(): EntryListHandle;
|
|
12
|
+
get length(): number;
|
|
13
|
+
getEntryByIndex(index: number): Entry;
|
|
14
|
+
private forEachEntry;
|
|
15
|
+
find(cb: (entry: Entry, index?: number) => boolean): Entry | undefined;
|
|
16
|
+
toArray(valuesAreJson?: boolean): EntryObject[];
|
|
17
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EntryList = void 0;
|
|
4
|
+
const askar_1 = require("../askar");
|
|
5
|
+
const Entry_1 = require("./Entry");
|
|
6
|
+
class EntryList {
|
|
7
|
+
constructor({ handle, length }) {
|
|
8
|
+
this._length = 0;
|
|
9
|
+
this._handle = handle;
|
|
10
|
+
this._length = length || askar_1.askar.entryListCount({ entryListHandle: handle });
|
|
11
|
+
}
|
|
12
|
+
get handle() {
|
|
13
|
+
return this._handle;
|
|
14
|
+
}
|
|
15
|
+
get length() {
|
|
16
|
+
return this._length;
|
|
17
|
+
}
|
|
18
|
+
getEntryByIndex(index) {
|
|
19
|
+
return new Entry_1.Entry({ list: this.handle, position: index });
|
|
20
|
+
}
|
|
21
|
+
forEachEntry(cb) {
|
|
22
|
+
for (let i = 0; i < this.length; i++) {
|
|
23
|
+
cb(this.getEntryByIndex(i), i);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
find(cb) {
|
|
27
|
+
for (let i = 0; i < this.length; i++) {
|
|
28
|
+
const item = this.getEntryByIndex(i);
|
|
29
|
+
if (cb(item))
|
|
30
|
+
return item;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
toArray(valuesAreJson) {
|
|
34
|
+
const list = [];
|
|
35
|
+
this.forEachEntry((entry) => list.push(entry.toJson(valuesAreJson)));
|
|
36
|
+
return list;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.EntryList = EntryList;
|
|
40
|
+
//# sourceMappingURL=EntryList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntryList.js","sourceRoot":"","sources":["../../src/store/EntryList.ts"],"names":[],"mappings":";;;AAGA,oCAAgC;AAEhC,mCAA+B;AAE/B,MAAa,SAAS;IAIpB,YAAmB,EAAE,MAAM,EAAE,MAAM,EAAgD;QAF3E,YAAO,GAAG,CAAC,CAAA;QAGjB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,aAAK,CAAC,cAAc,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAEM,eAAe,CAAC,KAAa;QAClC,OAAO,IAAI,aAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;IAC1D,CAAC;IAEO,YAAY,CAAC,EAA6C;QAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;IAEM,IAAI,CAAC,EAA6C;QACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;YACpC,IAAI,EAAE,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAA;QAC3B,CAAC;IACH,CAAC;IAEM,OAAO,CAAC,aAAuB;QACpC,MAAM,IAAI,GAAkB,EAAE,CAAA;QAC9B,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;QACpE,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAvCD,8BAuCC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { KeyEntryListHandle } from '../crypto';
|
|
2
|
+
import { Key } from '../crypto';
|
|
3
|
+
export type KeyEntryObject = {
|
|
4
|
+
algorithm: string;
|
|
5
|
+
name: string;
|
|
6
|
+
metadata: string | null;
|
|
7
|
+
tags: Record<string, unknown>;
|
|
8
|
+
key: Key;
|
|
9
|
+
};
|
|
10
|
+
export declare class KeyEntry {
|
|
11
|
+
private _list;
|
|
12
|
+
private _pos;
|
|
13
|
+
constructor({ list, pos }: {
|
|
14
|
+
list: KeyEntryListHandle;
|
|
15
|
+
pos: number;
|
|
16
|
+
});
|
|
17
|
+
get algorithm(): string;
|
|
18
|
+
get name(): string;
|
|
19
|
+
get metadata(): string | null;
|
|
20
|
+
get tags(): Record<string, unknown>;
|
|
21
|
+
get key(): Key;
|
|
22
|
+
toJson(): KeyEntryObject;
|
|
23
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KeyEntry = void 0;
|
|
4
|
+
const crypto_1 = require("../crypto");
|
|
5
|
+
class KeyEntry {
|
|
6
|
+
constructor({ list, pos }) {
|
|
7
|
+
this._list = list;
|
|
8
|
+
this._pos = pos;
|
|
9
|
+
}
|
|
10
|
+
get algorithm() {
|
|
11
|
+
return this._list.getAlgorithm(this._pos);
|
|
12
|
+
}
|
|
13
|
+
get name() {
|
|
14
|
+
return this._list.getName(this._pos);
|
|
15
|
+
}
|
|
16
|
+
get metadata() {
|
|
17
|
+
const metadata = this._list.getMetadata(this._pos);
|
|
18
|
+
return metadata;
|
|
19
|
+
}
|
|
20
|
+
get tags() {
|
|
21
|
+
const tags = this._list.getTags(this._pos);
|
|
22
|
+
if (!tags)
|
|
23
|
+
return {};
|
|
24
|
+
return JSON.parse(tags);
|
|
25
|
+
}
|
|
26
|
+
get key() {
|
|
27
|
+
return new crypto_1.Key(this._list.loadKey(this._pos));
|
|
28
|
+
}
|
|
29
|
+
toJson() {
|
|
30
|
+
return {
|
|
31
|
+
algorithm: this.algorithm,
|
|
32
|
+
name: this.name,
|
|
33
|
+
metadata: this.metadata,
|
|
34
|
+
tags: this.tags,
|
|
35
|
+
key: this.key,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.KeyEntry = KeyEntry;
|
|
40
|
+
//# sourceMappingURL=KeyEntry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyEntry.js","sourceRoot":"","sources":["../../src/store/KeyEntry.ts"],"names":[],"mappings":";;;AAEA,sCAA+B;AAU/B,MAAa,QAAQ;IAInB,YAAmB,EAAE,IAAI,EAAE,GAAG,EAA6C;QACzE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;IACjB,CAAC;IAED,IAAW,SAAS;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3C,CAAC;IAED,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,IAAW,QAAQ;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAElD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,IAAW,IAAI;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAE1C,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAA;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAA;IACpD,CAAC;IAED,IAAW,GAAG;QACZ,OAAO,IAAI,YAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/C,CAAC;IAEM,MAAM;QACX,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAA;IACH,CAAC;CACF;AA3CD,4BA2CC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { KeyEntryObject } from '.';
|
|
2
|
+
import type { KeyEntryListHandle } from '../crypto';
|
|
3
|
+
import { KeyEntry } from './KeyEntry';
|
|
4
|
+
export declare class KeyEntryList {
|
|
5
|
+
private _handle;
|
|
6
|
+
private _len;
|
|
7
|
+
constructor({ handle }: {
|
|
8
|
+
handle: KeyEntryListHandle;
|
|
9
|
+
});
|
|
10
|
+
get handle(): KeyEntryListHandle;
|
|
11
|
+
get length(): number;
|
|
12
|
+
getEntryByIndex(index: number): KeyEntry;
|
|
13
|
+
forEachKeyEntry(cb: (entry: KeyEntry, index?: number) => unknown): void;
|
|
14
|
+
toArray(): KeyEntryObject[];
|
|
15
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KeyEntryList = void 0;
|
|
4
|
+
const askar_1 = require("../askar");
|
|
5
|
+
const KeyEntry_1 = require("./KeyEntry");
|
|
6
|
+
class KeyEntryList {
|
|
7
|
+
constructor({ handle }) {
|
|
8
|
+
this._len = 0;
|
|
9
|
+
this._handle = handle;
|
|
10
|
+
this._len = askar_1.askar.keyEntryListCount({ keyEntryListHandle: handle });
|
|
11
|
+
}
|
|
12
|
+
get handle() {
|
|
13
|
+
return this._handle;
|
|
14
|
+
}
|
|
15
|
+
get length() {
|
|
16
|
+
return this._len;
|
|
17
|
+
}
|
|
18
|
+
getEntryByIndex(index) {
|
|
19
|
+
return new KeyEntry_1.KeyEntry({ list: this.handle, pos: index });
|
|
20
|
+
}
|
|
21
|
+
forEachKeyEntry(cb) {
|
|
22
|
+
for (let i = 0; i < this.length; i++) {
|
|
23
|
+
cb(this.getEntryByIndex(i), i);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
toArray() {
|
|
27
|
+
const list = [];
|
|
28
|
+
this.forEachKeyEntry((key) => list.push(key.toJson()));
|
|
29
|
+
return list;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.KeyEntryList = KeyEntryList;
|
|
33
|
+
//# sourceMappingURL=KeyEntryList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyEntryList.js","sourceRoot":"","sources":["../../src/store/KeyEntryList.ts"],"names":[],"mappings":";;;AAGA,oCAAgC;AAEhC,yCAAqC;AAErC,MAAa,YAAY;IAIvB,YAAmB,EAAE,MAAM,EAAkC;QAFrD,SAAI,GAAG,CAAC,CAAA;QAGd,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,IAAI,GAAG,aAAK,CAAC,iBAAiB,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,CAAA;IACrE,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAEM,eAAe,CAAC,KAAa;QAClC,OAAO,IAAI,mBAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IACxD,CAAC;IAEM,eAAe,CAAC,EAAgD;QACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAChC,CAAC;IACH,CAAC;IAEM,OAAO;QACZ,MAAM,IAAI,GAAqB,EAAE,CAAA;QACjC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QACtD,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAhCD,oCAgCC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { StoreHandle } from '../crypto';
|
|
2
|
+
import { Session } from './Session';
|
|
3
|
+
export declare class OpenSession {
|
|
4
|
+
private store;
|
|
5
|
+
private profile?;
|
|
6
|
+
private isTxn;
|
|
7
|
+
private session?;
|
|
8
|
+
constructor({ store, isTxn, profile }: {
|
|
9
|
+
store: StoreHandle;
|
|
10
|
+
profile?: string;
|
|
11
|
+
isTxn: boolean;
|
|
12
|
+
});
|
|
13
|
+
open(): Promise<Session>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenSession = void 0;
|
|
4
|
+
const askar_1 = require("../askar");
|
|
5
|
+
const error_1 = require("../error");
|
|
6
|
+
const Session_1 = require("./Session");
|
|
7
|
+
class OpenSession {
|
|
8
|
+
constructor({ store, isTxn, profile }) {
|
|
9
|
+
this.store = store;
|
|
10
|
+
this.isTxn = isTxn;
|
|
11
|
+
this.profile = profile;
|
|
12
|
+
}
|
|
13
|
+
async open() {
|
|
14
|
+
if (!this.store)
|
|
15
|
+
throw error_1.AskarError.customError({ message: 'Cannot start session from closed store' });
|
|
16
|
+
if (this.session)
|
|
17
|
+
throw error_1.AskarError.customError({ message: 'Session already opened' });
|
|
18
|
+
const sessionHandle = await askar_1.askar.sessionStart({
|
|
19
|
+
profile: this.profile,
|
|
20
|
+
asTransaction: this.isTxn,
|
|
21
|
+
storeHandle: this.store,
|
|
22
|
+
});
|
|
23
|
+
return new Session_1.Session({ isTxn: this.isTxn, handle: sessionHandle });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.OpenSession = OpenSession;
|
|
27
|
+
//# sourceMappingURL=OpenSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenSession.js","sourceRoot":"","sources":["../../src/store/OpenSession.ts"],"names":[],"mappings":";;;AAEA,oCAAgC;AAChC,oCAAqC;AAErC,uCAAmC;AAEnC,MAAa,WAAW;IAOtB,YAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAA4D;QACpG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,MAAM,kBAAU,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC,CAAA;QACpG,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,kBAAU,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAA;QACrF,MAAM,aAAa,GAAG,MAAM,aAAK,CAAC,YAAY,CAAC;YAC7C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,aAAa,EAAE,IAAI,CAAC,KAAK;YACzB,WAAW,EAAE,IAAI,CAAC,KAAK;SACxB,CAAC,CAAA;QACF,OAAO,IAAI,iBAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;IAClE,CAAC;CACF;AAvBD,kCAuBC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ScanHandle } from '../crypto';
|
|
2
|
+
import type { EntryObject } from './Entry';
|
|
3
|
+
import type { Store } from './Store';
|
|
4
|
+
export declare class Scan {
|
|
5
|
+
private _handle?;
|
|
6
|
+
private _listHandle?;
|
|
7
|
+
private store;
|
|
8
|
+
private profile?;
|
|
9
|
+
private category;
|
|
10
|
+
private tagFilter?;
|
|
11
|
+
private offset?;
|
|
12
|
+
private limit?;
|
|
13
|
+
private orderBy?;
|
|
14
|
+
private descending?;
|
|
15
|
+
constructor({ store, category, limit, offset, profile, tagFilter, orderBy, descending, }: {
|
|
16
|
+
store: Store;
|
|
17
|
+
profile?: string;
|
|
18
|
+
category: string;
|
|
19
|
+
tagFilter?: Record<string, unknown>;
|
|
20
|
+
offset?: number;
|
|
21
|
+
limit?: number;
|
|
22
|
+
orderBy?: string;
|
|
23
|
+
descending?: boolean;
|
|
24
|
+
});
|
|
25
|
+
get handle(): ScanHandle | undefined;
|
|
26
|
+
private forEachRow;
|
|
27
|
+
fetchAll(): Promise<EntryObject[]>;
|
|
28
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Scan = void 0;
|
|
4
|
+
const askar_1 = require("../askar");
|
|
5
|
+
const error_1 = require("../error");
|
|
6
|
+
const EntryList_1 = require("./EntryList");
|
|
7
|
+
class Scan {
|
|
8
|
+
constructor({ store, category, limit, offset, profile, tagFilter, orderBy, descending, }) {
|
|
9
|
+
this.category = category;
|
|
10
|
+
this.profile = profile;
|
|
11
|
+
this.tagFilter = tagFilter;
|
|
12
|
+
this.offset = offset;
|
|
13
|
+
this.limit = limit;
|
|
14
|
+
this.orderBy = orderBy;
|
|
15
|
+
this.descending = descending;
|
|
16
|
+
this.store = store;
|
|
17
|
+
}
|
|
18
|
+
get handle() {
|
|
19
|
+
return this._handle;
|
|
20
|
+
}
|
|
21
|
+
async forEachRow(cb) {
|
|
22
|
+
var _a;
|
|
23
|
+
if (!this.handle) {
|
|
24
|
+
if (!((_a = this.store) === null || _a === void 0 ? void 0 : _a.handle))
|
|
25
|
+
throw error_1.AskarError.customError({ message: 'Cannot scan from closed store' });
|
|
26
|
+
this._handle = await askar_1.askar.scanStart({
|
|
27
|
+
storeHandle: this.store.handle,
|
|
28
|
+
profile: this.profile,
|
|
29
|
+
category: this.category,
|
|
30
|
+
tagFilter: this.tagFilter,
|
|
31
|
+
limit: this.limit,
|
|
32
|
+
offset: this.offset,
|
|
33
|
+
orderBy: this.orderBy,
|
|
34
|
+
descending: this.descending,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
if (!this._handle) {
|
|
38
|
+
throw error_1.AskarError.customError({ message: 'Handle is not set. Invalid state reached.' });
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
let recordCount = 0;
|
|
42
|
+
// Loop while limit not reached (or no limit specified)
|
|
43
|
+
while (!this.limit || recordCount < this.limit) {
|
|
44
|
+
const listHandle = await askar_1.askar.scanNext({ scanHandle: this._handle });
|
|
45
|
+
if (!listHandle)
|
|
46
|
+
break;
|
|
47
|
+
this._listHandle = listHandle;
|
|
48
|
+
const list = new EntryList_1.EntryList({ handle: this._listHandle });
|
|
49
|
+
recordCount = recordCount + list.length;
|
|
50
|
+
for (let index = 0; index < list.length; index++) {
|
|
51
|
+
const entry = list.getEntryByIndex(index);
|
|
52
|
+
cb(entry);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
askar_1.askar.scanFree({ scanHandle: this._handle });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async fetchAll() {
|
|
61
|
+
const rows = [];
|
|
62
|
+
await this.forEachRow((row) => rows.push(row.toJson()));
|
|
63
|
+
return rows;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.Scan = Scan;
|
|
67
|
+
//# sourceMappingURL=Scan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Scan.js","sourceRoot":"","sources":["../../src/store/Scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { Key, SessionHandle } from '../crypto';
|
|
2
|
+
import type { KeyAlgorithm } from '../enums';
|
|
3
|
+
export declare class Session {
|
|
4
|
+
private _handle?;
|
|
5
|
+
private isTxn;
|
|
6
|
+
constructor({ handle, isTxn }: {
|
|
7
|
+
handle?: SessionHandle;
|
|
8
|
+
isTxn: boolean;
|
|
9
|
+
});
|
|
10
|
+
get isTransaction(): boolean;
|
|
11
|
+
get handle(): SessionHandle | undefined;
|
|
12
|
+
count({ category, tagFilter }: {
|
|
13
|
+
category: string;
|
|
14
|
+
tagFilter?: Record<string, unknown>;
|
|
15
|
+
}): Promise<number>;
|
|
16
|
+
fetch({ category, name, forUpdate, isJson, }: {
|
|
17
|
+
category: string;
|
|
18
|
+
name: string;
|
|
19
|
+
forUpdate?: boolean;
|
|
20
|
+
isJson?: boolean;
|
|
21
|
+
}): Promise<import("./Entry").EntryObject | null>;
|
|
22
|
+
fetchAll({ category, forUpdate, limit, tagFilter, isJson, orderBy, descending, }: {
|
|
23
|
+
category: string;
|
|
24
|
+
tagFilter?: Record<string, unknown>;
|
|
25
|
+
limit?: number;
|
|
26
|
+
forUpdate?: boolean;
|
|
27
|
+
orderBy?: string;
|
|
28
|
+
descending?: boolean;
|
|
29
|
+
isJson?: boolean;
|
|
30
|
+
}): Promise<import("./Entry").EntryObject[]>;
|
|
31
|
+
insert({ category, name, expiryMs, tags, value, }: {
|
|
32
|
+
category: string;
|
|
33
|
+
name: string;
|
|
34
|
+
value: string | Record<string, unknown>;
|
|
35
|
+
tags?: Record<string, unknown>;
|
|
36
|
+
expiryMs?: number;
|
|
37
|
+
}): Promise<void>;
|
|
38
|
+
replace({ category, name, expiryMs, tags, value, }: {
|
|
39
|
+
category: string;
|
|
40
|
+
name: string;
|
|
41
|
+
value: string | Record<string, unknown>;
|
|
42
|
+
tags?: Record<string, unknown>;
|
|
43
|
+
expiryMs?: number;
|
|
44
|
+
}): Promise<void>;
|
|
45
|
+
remove({ category, name }: {
|
|
46
|
+
category: string;
|
|
47
|
+
name: string;
|
|
48
|
+
}): Promise<void>;
|
|
49
|
+
removeAll({ category, tagFilter }: {
|
|
50
|
+
category: string;
|
|
51
|
+
tagFilter?: Record<string, unknown>;
|
|
52
|
+
}): Promise<void>;
|
|
53
|
+
insertKey({ name, key, expiryMs, metadata, tags, }: {
|
|
54
|
+
name: string;
|
|
55
|
+
key: Key;
|
|
56
|
+
metadata?: string;
|
|
57
|
+
tags?: Record<string, unknown>;
|
|
58
|
+
expiryMs?: number;
|
|
59
|
+
}): Promise<void>;
|
|
60
|
+
fetchKey({ name, forUpdate }: {
|
|
61
|
+
name: string;
|
|
62
|
+
forUpdate?: boolean;
|
|
63
|
+
}): Promise<import("./KeyEntry").KeyEntryObject | null>;
|
|
64
|
+
fetchAllKeys({ forUpdate, algorithm, limit, tagFilter, thumbprint, }: {
|
|
65
|
+
algorithm?: KeyAlgorithm;
|
|
66
|
+
thumbprint?: string;
|
|
67
|
+
tagFilter?: Record<string, unknown>;
|
|
68
|
+
limit?: number;
|
|
69
|
+
forUpdate?: boolean;
|
|
70
|
+
}): Promise<import("./KeyEntry").KeyEntryObject[]>;
|
|
71
|
+
updateKey({ name, expiryMs, metadata, tags, }: {
|
|
72
|
+
name: string;
|
|
73
|
+
metadata?: string;
|
|
74
|
+
tags?: Record<string, unknown>;
|
|
75
|
+
expiryMs?: number;
|
|
76
|
+
}): Promise<void>;
|
|
77
|
+
removeKey({ name }: {
|
|
78
|
+
name: string;
|
|
79
|
+
}): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* @note also closes the session
|
|
82
|
+
*/
|
|
83
|
+
commit(): Promise<void>;
|
|
84
|
+
rollback(): Promise<void>;
|
|
85
|
+
close(): Promise<void>;
|
|
86
|
+
}
|