saro-dat 3.2.0 → 3.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/README.md +25 -25
- package/dist/dat.certificate.d.ts +4 -4
- package/dist/dat.certificate.d.ts.map +1 -1
- package/dist/dat.certificate.js +7 -16
- package/dist/dat.certificate.js.map +1 -1
- package/dist/dat.d.ts.map +1 -1
- package/dist/dat.js +3 -2
- package/dist/dat.js.map +1 -1
- package/dist/dat.manager.d.ts.map +1 -1
- package/dist/dat.manager.js +11 -3
- package/dist/dat.manager.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/util/DatInteger.d.ts +1 -1
- package/dist/util/DatInteger.d.ts.map +1 -1
- package/dist/util/DatInteger.js +12 -10
- package/dist/util/DatInteger.js.map +1 -1
- package/package.json +5 -3
- package/dist/dat.bank.d.ts +0 -12
- package/dist/dat.bank.d.ts.map +0 -1
- package/dist/dat.bank.js +0 -68
- package/dist/dat.bank.js.map +0 -1
- package/dist/dat.key.d.ts +0 -20
- package/dist/dat.key.d.ts.map +0 -1
- package/dist/dat.key.js +0 -110
- package/dist/dat.key.js.map +0 -1
- package/dist/util/DatUnixtime.d.ts +0 -6
- package/dist/util/DatUnixtime.d.ts.map +0 -1
- package/dist/util/DatUnixtime.js +0 -16
- package/dist/util/DatUnixtime.js.map +0 -1
package/README.md
CHANGED
|
@@ -27,34 +27,34 @@
|
|
|
27
27
|
- mac mini m4 2024 basic (10 core)
|
|
28
28
|
- [bench.test.ts](src/bench.test.ts)
|
|
29
29
|
```
|
|
30
|
-
plain:
|
|
31
|
-
secure:
|
|
30
|
+
plain: q4ik3eJpdYtp9uuOUCMzUMluZQD2XKPpywZPsYOgRcGtqW4IbLoFPZbPrWd3t783NAuEHKoB4KiyaZXalHW5RbT2Z8Z1uWLIBEfw
|
|
31
|
+
secure: 8UKf9bdUkC9ns1WG7tYxv9t65XnhiLBJ9OyPFV2VkyiVa2gRC79OXoKQWbURMoxVNStnxbxkHYvzSZjjKc041UbaifBh2KoDyOWY
|
|
32
32
|
|
|
33
33
|
Multi-Thread
|
|
34
|
-
P256 AES128GCMN Issue * 10000 :
|
|
35
|
-
P256 AES128GCMN Parse * 10000 :
|
|
36
|
-
P256 AES256GCMN Issue * 10000 :
|
|
37
|
-
P256 AES256GCMN Parse * 10000 :
|
|
38
|
-
P384 AES128GCMN Issue * 10000 :
|
|
39
|
-
P384 AES128GCMN Parse * 10000 :
|
|
40
|
-
P384 AES256GCMN Issue * 10000 :
|
|
41
|
-
P384 AES256GCMN Parse * 10000 :
|
|
34
|
+
P256 AES128GCMN Issue * 10000 : 206ms
|
|
35
|
+
P256 AES128GCMN Parse * 10000 : 195ms
|
|
36
|
+
P256 AES256GCMN Issue * 10000 : 187ms
|
|
37
|
+
P256 AES256GCMN Parse * 10000 : 178ms
|
|
38
|
+
P384 AES128GCMN Issue * 10000 : 1005ms
|
|
39
|
+
P384 AES128GCMN Parse * 10000 : 857ms
|
|
40
|
+
P384 AES256GCMN Issue * 10000 : 1044ms
|
|
41
|
+
P384 AES256GCMN Parse * 10000 : 839ms
|
|
42
42
|
P521 AES128GCMN Issue * 10000 : 2512ms
|
|
43
|
-
P521 AES128GCMN Parse * 10000 :
|
|
44
|
-
P521 AES256GCMN Issue * 10000 :
|
|
45
|
-
P521 AES256GCMN Parse * 10000 :
|
|
43
|
+
P521 AES128GCMN Parse * 10000 : 1876ms
|
|
44
|
+
P521 AES256GCMN Issue * 10000 : 2462ms
|
|
45
|
+
P521 AES256GCMN Parse * 10000 : 1972ms
|
|
46
46
|
|
|
47
47
|
Single-Thread
|
|
48
|
-
P256 AES128GCMN Issue * 10000 :
|
|
49
|
-
P256 AES128GCMN Parse * 10000 :
|
|
50
|
-
P256 AES256GCMN Issue * 10000 :
|
|
51
|
-
P256 AES256GCMN Parse * 10000 :
|
|
52
|
-
P384 AES128GCMN Issue * 10000 :
|
|
53
|
-
P384 AES128GCMN Parse * 10000 :
|
|
54
|
-
P384 AES256GCMN Issue * 10000 :
|
|
55
|
-
P384 AES256GCMN Parse * 10000 :
|
|
56
|
-
P521 AES128GCMN Issue * 10000 :
|
|
57
|
-
P521 AES128GCMN Parse * 10000 :
|
|
58
|
-
P521 AES256GCMN Issue * 10000 :
|
|
59
|
-
P521 AES256GCMN Parse * 10000 :
|
|
48
|
+
P256 AES128GCMN Issue * 10000 : 466ms
|
|
49
|
+
P256 AES128GCMN Parse * 10000 : 701ms
|
|
50
|
+
P256 AES256GCMN Issue * 10000 : 444ms
|
|
51
|
+
P256 AES256GCMN Parse * 10000 : 701ms
|
|
52
|
+
P384 AES128GCMN Issue * 10000 : 4088ms
|
|
53
|
+
P384 AES128GCMN Parse * 10000 : 3514ms
|
|
54
|
+
P384 AES256GCMN Issue * 10000 : 4097ms
|
|
55
|
+
P384 AES256GCMN Parse * 10000 : 3531ms
|
|
56
|
+
P521 AES128GCMN Issue * 10000 : 9563ms
|
|
57
|
+
P521 AES128GCMN Parse * 10000 : 7554ms
|
|
58
|
+
P521 AES256GCMN Issue * 10000 : 9623ms
|
|
59
|
+
P521 AES256GCMN Parse * 10000 : 7490ms
|
|
60
60
|
```
|
|
@@ -3,10 +3,10 @@ export declare class DatCertificate {
|
|
|
3
3
|
readonly cid: bigint;
|
|
4
4
|
readonly _signatureKey: DatSignatureKey;
|
|
5
5
|
readonly _cryptoKey: DatCryptoKey;
|
|
6
|
-
readonly _datIssueBegin:
|
|
7
|
-
readonly _datIssueEnd:
|
|
8
|
-
readonly _datTtl:
|
|
9
|
-
constructor(cid: bigint | number, signatureKey: DatSignatureKey, cryptoKey: DatCryptoKey, datIssueBegin: number, datIssueEnd: number, datTtl: number);
|
|
6
|
+
readonly _datIssueBegin: bigint;
|
|
7
|
+
readonly _datIssueEnd: bigint;
|
|
8
|
+
readonly _datTtl: bigint;
|
|
9
|
+
constructor(cid: bigint | number, signatureKey: DatSignatureKey, cryptoKey: DatCryptoKey, datIssueBegin: number | bigint | string, datIssueEnd: number | bigint | string, datTtl: number | bigint | string);
|
|
10
10
|
exports(datSignatureKeyOutOption: DatSignatureKeyOutOption): Promise<string>;
|
|
11
11
|
static imports(format: string): Promise<DatCertificate>;
|
|
12
12
|
issuable(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dat.certificate.d.ts","sourceRoot":"","sources":["../src/dat.certificate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAc,eAAe,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"dat.certificate.d.ts","sourceRoot":"","sources":["../src/dat.certificate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAc,eAAe,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAGhG,qBAAa,cAAc;IACvB,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,aAAa,EAAE,eAAe,CAAC;IAC/C,SAAgB,UAAU,EAAE,YAAY,CAAC;IACzC,SAAgB,cAAc,EAAE,MAAM,CAAC;IACvC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,OAAO,EAAE,MAAM,CAAC;gBAG5B,GAAG,EAAE,MAAM,GAAC,MAAM,EAClB,YAAY,EAAE,eAAe,EAC7B,SAAS,EAAE,YAAY,EACvB,aAAa,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,EACnC,WAAW,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,EACjC,MAAM,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM;IAY1B,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;WAYrE,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAc7D,QAAQ,IAAI,OAAO;IAInB,OAAO,IAAI,OAAO;IAIlB,aAAa,IAAI,OAAO;CAG3B"}
|
package/dist/dat.certificate.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { DatCryptoKey, DatInteger, DatSignatureKey,
|
|
1
|
+
import { DatCryptoKey, DatInteger, DatSignatureKey, } from "./index.js";
|
|
2
|
+
import { Unixtime } from "infinite-unixtime";
|
|
2
3
|
export class DatCertificate {
|
|
3
4
|
cid;
|
|
4
5
|
_signatureKey;
|
|
@@ -8,21 +9,12 @@ export class DatCertificate {
|
|
|
8
9
|
_datTtl;
|
|
9
10
|
constructor(cid, signatureKey, cryptoKey, datIssueBegin, datIssueEnd, datTtl) {
|
|
10
11
|
cid = DatInteger.toCid(cid, `Invalid cid(Certificate ID) is HEX ${cid}`);
|
|
11
|
-
if (!DatInteger.isBetween(datIssueBegin, 0)) {
|
|
12
|
-
throw new Error(`Invalid issueBegin: issueBegin is positive int or 0 ${datIssueBegin}`);
|
|
13
|
-
}
|
|
14
|
-
if (!DatInteger.isBetween(datIssueEnd, 0)) {
|
|
15
|
-
throw new Error(`Invalid issueEnd: issueEnd is positive int or 0 ${datIssueEnd}`);
|
|
16
|
-
}
|
|
17
|
-
if (!DatInteger.isBetween(datTtl, 1)) {
|
|
18
|
-
throw new Error(`Invalid datTtl: datTtl is positive int ${datTtl}`);
|
|
19
|
-
}
|
|
20
12
|
this.cid = cid;
|
|
21
13
|
this._signatureKey = signatureKey;
|
|
22
14
|
this._cryptoKey = cryptoKey;
|
|
23
|
-
this._datIssueBegin =
|
|
24
|
-
this._datIssueEnd =
|
|
25
|
-
this._datTtl =
|
|
15
|
+
this._datIssueBegin = DatInteger.toBigInt(datIssueBegin, `Invalid: datIssueBegin is positive int or 0 ${datIssueBegin}`, 0n);
|
|
16
|
+
this._datIssueEnd = DatInteger.toBigInt(datIssueEnd, `Invalid: datIssueEnd is positive int or 0 ${datIssueEnd}`, 0n);
|
|
17
|
+
this._datTtl = DatInteger.toBigInt(datTtl, `Invalid: datTtl is positive int or 0 ${datTtl}`, 0n);
|
|
26
18
|
}
|
|
27
19
|
async exports(datSignatureKeyOutOption) {
|
|
28
20
|
const cid = this.cid.toString(16);
|
|
@@ -49,11 +41,10 @@ export class DatCertificate {
|
|
|
49
41
|
throw new Error("Invalid Certificate format");
|
|
50
42
|
}
|
|
51
43
|
issuable() {
|
|
52
|
-
|
|
53
|
-
return this.hasSigningKey() && now >= this._datIssueBegin && now <= this._datIssueEnd;
|
|
44
|
+
return this.hasSigningKey() && Unixtime.now().between(this._datIssueBegin, this._datIssueEnd, true);
|
|
54
45
|
}
|
|
55
46
|
expired() {
|
|
56
|
-
return
|
|
47
|
+
return Unixtime.now().after(this._datIssueEnd + this._datTtl, true);
|
|
57
48
|
}
|
|
58
49
|
hasSigningKey() {
|
|
59
50
|
return this._signatureKey.hasSigningKey();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dat.certificate.js","sourceRoot":"","sources":["../src/dat.certificate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAE,UAAU,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"dat.certificate.js","sourceRoot":"","sources":["../src/dat.certificate.ts"],"names":[],"mappings":"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"}
|
package/dist/dat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dat.d.ts","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dat.d.ts","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"AAGA,qBAAa,GAAG;IACZ,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAM;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAS;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAK;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAM;IAC3B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAsB;IAClD,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAsB;IACnD,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAsB;gBAE1C,GAAG,EAAE,MAAM,GAAC,SAAS,GAAC,IAAI;IAgBtC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAC,MAAM,GAAC,SAAS,GAAC,IAAI,GAAG,GAAG;IAOhD,OAAO,IAAI,OAAO;IAIlB,KAAK,IAAI,MAAM;CAGlB;AAED,qBAAa,UAAU;IACnB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;gBAEtB,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;IAKnD,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,QAAQ,IAAI,MAAM;IAIlB,cAAc,IAAI,MAAM;CAG3B"}
|
package/dist/dat.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { DatArrayBuffer, DatBytes, DatInteger,
|
|
1
|
+
import { DatArrayBuffer, DatBytes, DatInteger, } from "./index.js";
|
|
2
|
+
import { Unixtime } from "infinite-unixtime";
|
|
2
3
|
export class Dat {
|
|
3
4
|
dat = '';
|
|
4
5
|
_format = false;
|
|
@@ -30,7 +31,7 @@ export class Dat {
|
|
|
30
31
|
return new Dat(dat);
|
|
31
32
|
}
|
|
32
33
|
expired() {
|
|
33
|
-
return !this._format ||
|
|
34
|
+
return !this._format || Unixtime.now().after(this._expire, true);
|
|
34
35
|
}
|
|
35
36
|
_body() {
|
|
36
37
|
return this.dat.substring(0, this.dat.lastIndexOf('.'));
|
package/dist/dat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dat.js","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"dat.js","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dat.manager.d.ts","sourceRoot":"","sources":["../src/dat.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,GAAG,EAGH,cAAc,EACd,UAAU,EACV,wBAAwB,
|
|
1
|
+
{"version":3,"file":"dat.manager.d.ts","sourceRoot":"","sources":["../src/dat.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,GAAG,EAGH,cAAc,EACd,UAAU,EACV,wBAAwB,EAC3B,MAAM,YAAY,CAAC;AAGpB,qBAAa,UAAU;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;gBAEpC,MAAM,GAAE,cAAc,GAAG,IAAW,EAAE,YAAY,GAAE,cAAc,EAAO;IAKrF,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,cAAc,EAAE,GAAG,UAAU;WA0B/C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IASnD,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlF,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAIlC,KAAK,CAAC,KAAK,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,EAAE,MAAM,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAOzI,KAAK,CAAC,GAAG,EAAE,GAAG,GAAC,MAAM,GAAC,SAAS,GAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;WAWnD,KAAK,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,EAAE,MAAM,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;WAWtK,KAAK,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,GAAC,MAAM,GAAC,SAAS,GAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;CAavG"}
|
package/dist/dat.manager.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Dat, DatArrayBuffer, DatBytes, DatCertificate, DatPayload,
|
|
1
|
+
import { Dat, DatArrayBuffer, DatBytes, DatCertificate, DatPayload, } from "./index.js";
|
|
2
|
+
import { Unixtime } from "infinite-unixtime";
|
|
2
3
|
export class DatManager {
|
|
3
4
|
issuer;
|
|
4
5
|
certificates;
|
|
@@ -17,7 +18,14 @@ export class DatManager {
|
|
|
17
18
|
}
|
|
18
19
|
certificates.push(certificate);
|
|
19
20
|
}
|
|
20
|
-
certificates.sort((a, b) =>
|
|
21
|
+
certificates.sort((a, b) => {
|
|
22
|
+
if (a._datIssueEnd == b._datIssueEnd) {
|
|
23
|
+
return 0;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
return a._datIssueEnd < b._datIssueEnd ? -1 : 1;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
21
29
|
const issuer = certificates.findLast(e => e.issuable()) || null;
|
|
22
30
|
return new DatManager(issuer, certificates);
|
|
23
31
|
}
|
|
@@ -50,7 +58,7 @@ export class DatManager {
|
|
|
50
58
|
throw new Error("Invalid DAT: CID(Certificate ID) Not Found");
|
|
51
59
|
}
|
|
52
60
|
static async issue(certificate, plain, secure) {
|
|
53
|
-
const now =
|
|
61
|
+
const now = Unixtime.now().time;
|
|
54
62
|
const expire = now + certificate._datTtl;
|
|
55
63
|
const cid = certificate.cid.toString(16);
|
|
56
64
|
const plainBase64 = DatBytes.toBase64Url(plain);
|
package/dist/dat.manager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dat.manager.js","sourceRoot":"","sources":["../src/dat.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,GAAG,EACH,cAAc,EACd,QAAQ,EACR,cAAc,EACd,UAAU,
|
|
1
|
+
{"version":3,"file":"dat.manager.js","sourceRoot":"","sources":["../src/dat.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,GAAG,EACH,cAAc,EACd,QAAQ,EACR,cAAc,EACd,UAAU,GAEb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAE3C,MAAM,OAAO,UAAU;IACF,MAAM,CAAwB;IAC9B,YAAY,CAAmB;IAEhD,YAAY,SAAgC,IAAI,EAAE,eAAiC,EAAE;QACjF,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,iBAAmC;QAC3C,IAAI,YAAY,GAAqB,EAAE,CAAC;QAExC,KAAK,MAAM,WAAW,IAAI,iBAAiB,EAAE,CAAC;YAC1C,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,4DAA4D,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;YACnG,CAAC;YACD,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;gBACxB,SAAS;YACb,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvB,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;gBACnC,OAAO,CAAC,CAAC;YACb,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC;QAEhE,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAc;QAC/B,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;aACb,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aACxD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CACxB,CAAC;QACF,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,wBAAkD;QAC5D,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1G,CAAC;IAED,IAAI,CAAC,GAAW;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAuD,EAAE,MAAwD;QACzH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAA8B;QACtC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACtB,OAAO,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAA2B,EAAE,KAAuD,EAAE,MAAwD;QAC7J,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;QAChC,MAAM,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC;QACzC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpH,MAAM,IAAI,GAAG,GAAG,MAAM,IAAI,GAAG,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;QAChE,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACzF,OAAO,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAA2B,EAAE,GAA8B;QAC1E,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,MAAM,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IACxF,CAAC;CACJ"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export * as DatInteger from "./util/DatInteger.js";
|
|
2
|
-
export * as DatUnixtime from "./util/DatUnixtime.js";
|
|
3
2
|
export * as DatBytes from "./util/DatBytes.js";
|
|
4
3
|
export * as DatArrayBufferLike from "./util/DatArrayBufferLike.js";
|
|
5
4
|
export * as DatArrayBuffer from "./util/DatArrayBuffer.js";
|
|
@@ -7,6 +6,6 @@ export * as DatUint8Array from "./util/DatUint8Array.js";
|
|
|
7
6
|
export * from "./crypto.js";
|
|
8
7
|
export * from "./signature.js";
|
|
9
8
|
export * from "./dat.js";
|
|
10
|
-
export * from "./dat.certificate";
|
|
11
|
-
export * from "./dat.manager";
|
|
9
|
+
export * from "./dat.certificate.js";
|
|
10
|
+
export * from "./dat.manager.js";
|
|
12
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,kBAAkB,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAC;AACzD,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export * as DatInteger from "./util/DatInteger.js";
|
|
2
|
-
export * as DatUnixtime from "./util/DatUnixtime.js";
|
|
3
2
|
export * as DatBytes from "./util/DatBytes.js";
|
|
4
3
|
export * as DatArrayBufferLike from "./util/DatArrayBufferLike.js";
|
|
5
4
|
export * as DatArrayBuffer from "./util/DatArrayBuffer.js";
|
|
@@ -7,6 +6,6 @@ export * as DatUint8Array from "./util/DatUint8Array.js";
|
|
|
7
6
|
export * from "./crypto.js";
|
|
8
7
|
export * from "./signature.js";
|
|
9
8
|
export * from "./dat.js";
|
|
10
|
-
export * from "./dat.certificate";
|
|
11
|
-
export * from "./dat.manager";
|
|
9
|
+
export * from "./dat.certificate.js";
|
|
10
|
+
export * from "./dat.manager.js";
|
|
12
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,kBAAkB,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,cAAc,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAC;AACzD,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare function parse(no: number | string): number;
|
|
2
2
|
export declare function toCid(cid: number | string | bigint, error?: string): bigint;
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function toBigInt(no: bigint | number | string, errorMessage?: string, min?: bigint | undefined, max?: bigint | undefined): bigint;
|
|
4
4
|
//# sourceMappingURL=DatInteger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatInteger.d.ts","sourceRoot":"","sources":["../../src/util/DatInteger.ts"],"names":[],"mappings":"AACA,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAC,MAAM,GAAG,MAAM,CAK/C;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,EAAE,KAAK,GAAE,MAAsB,GAAG,MAAM,CAatF;AAED,wBAAgB,
|
|
1
|
+
{"version":3,"file":"DatInteger.d.ts","sourceRoot":"","sources":["../../src/util/DatInteger.ts"],"names":[],"mappings":"AACA,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAC,MAAM,GAAG,MAAM,CAK/C;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,EAAE,KAAK,GAAE,MAAsB,GAAG,MAAM,CAatF;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,EAAE,YAAY,GAAE,MAAyB,EAAE,GAAG,GAAE,MAAM,GAAC,SAAqB,EAAE,GAAG,GAAE,MAAM,GAAC,SAAqB,GAAG,MAAM,CAYxK"}
|
package/dist/util/DatInteger.js
CHANGED
|
@@ -25,16 +25,18 @@ export function toCid(cid, error = 'Invalid CID') {
|
|
|
25
25
|
catch (e) { }
|
|
26
26
|
throw new Error(error);
|
|
27
27
|
}
|
|
28
|
-
export function
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
28
|
+
export function toBigInt(no, errorMessage = 'is not integer', min = undefined, max = undefined) {
|
|
29
|
+
try {
|
|
30
|
+
let n = BigInt(no);
|
|
31
|
+
if (typeof min !== 'undefined' && !(n >= min)) {
|
|
32
|
+
throw new Error();
|
|
33
|
+
}
|
|
34
|
+
if (typeof max !== 'undefined' && !(n <= max)) {
|
|
35
|
+
throw new Error();
|
|
36
|
+
}
|
|
37
|
+
return n;
|
|
37
38
|
}
|
|
38
|
-
|
|
39
|
+
catch (e) { }
|
|
40
|
+
throw new Error(errorMessage);
|
|
39
41
|
}
|
|
40
42
|
//# sourceMappingURL=DatInteger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatInteger.js","sourceRoot":"","sources":["../../src/util/DatInteger.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,KAAK,CAAC,EAAiB;IACnC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QACzB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAyB,EAAE,QAAgB,aAAa;IAC1E,IAAI,CAAC;QACD,IAAI,CAAC,GAAgB,IAAI,CAAC;QAC1B,QAAQ,OAAO,GAAG,EAAE,CAAC;YACjB,KAAK,QAAQ;gBAAE,CAAC,GAAG,GAAG,CAAC;gBAAC,MAAM;YAC9B,KAAK,QAAQ;gBAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAAC,MAAM;YACtC,KAAK,QAAQ;gBAAE,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;gBAAC,MAAM;QACjD,CAAC;QACD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC;YACnD,OAAO,CAAC,CAAC;QACb,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IACd,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"DatInteger.js","sourceRoot":"","sources":["../../src/util/DatInteger.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,KAAK,CAAC,EAAiB;IACnC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QACzB,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAyB,EAAE,QAAgB,aAAa;IAC1E,IAAI,CAAC;QACD,IAAI,CAAC,GAAgB,IAAI,CAAC;QAC1B,QAAQ,OAAO,GAAG,EAAE,CAAC;YACjB,KAAK,QAAQ;gBAAE,CAAC,GAAG,GAAG,CAAC;gBAAC,MAAM;YAC9B,KAAK,QAAQ;gBAAE,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAAC,MAAM;YACtC,KAAK,QAAQ;gBAAE,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;gBAAC,MAAM;QACjD,CAAC;QACD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,mBAAmB,EAAE,CAAC;YACnD,OAAO,CAAC,CAAC;QACb,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IACd,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,EAAwB,EAAE,eAAuB,gBAAgB,EAAE,MAAwB,SAAS,EAAE,MAAwB,SAAS;IAC5J,IAAI,CAAC;QACD,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACnB,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,EAAE,CAAC;QACtB,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;IACd,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;AAClC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "saro-dat",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"description": "Distributed Access Token",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"dat",
|
|
7
7
|
"distributed",
|
|
8
8
|
"access",
|
|
9
9
|
"token",
|
|
10
|
-
"
|
|
10
|
+
"web",
|
|
11
|
+
"session"
|
|
11
12
|
],
|
|
12
13
|
"author": "marker",
|
|
13
14
|
"license": "MIT",
|
|
@@ -40,7 +41,8 @@
|
|
|
40
41
|
"prepublishOnly": "npm run build"
|
|
41
42
|
},
|
|
42
43
|
"dependencies": {
|
|
43
|
-
"@noble/curves": "^2.2.0"
|
|
44
|
+
"@noble/curves": "^2.2.0",
|
|
45
|
+
"infinite-unixtime": "^1.1.3"
|
|
44
46
|
},
|
|
45
47
|
"devDependencies": {
|
|
46
48
|
"@types/node": "^25.7.0",
|
package/dist/dat.bank.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Dat, DatKey, DatPayload, DatSignatureKeyOutOption } from "./index.js";
|
|
2
|
-
export declare class DatBank {
|
|
3
|
-
private readonly issueKey;
|
|
4
|
-
private readonly verifyKeys;
|
|
5
|
-
constructor(issueKey?: DatKey | null, verifyKeys?: DatKey[]);
|
|
6
|
-
static imports(format: string): Promise<DatBank>;
|
|
7
|
-
exports(datSignatureKeyOutOption: DatSignatureKeyOutOption): Promise<string>;
|
|
8
|
-
find(kid: string): DatKey | null;
|
|
9
|
-
toDat(plain: ArrayBufferLike | Uint8Array | string | null | undefined, secure: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<string>;
|
|
10
|
-
toPayload(dat: Dat | string | undefined | null): Promise<DatPayload>;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=dat.bank.d.ts.map
|
package/dist/dat.bank.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dat.bank.d.ts","sourceRoot":"","sources":["../src/dat.bank.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,wBAAwB,EAAG,MAAM,YAAY,CAAC;AAE/E,qBAAa,OAAO;IAChB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;gBAE1B,QAAQ,GAAE,MAAM,GAAG,IAAW,EAAE,UAAU,GAAE,MAAM,EAAO;WAKxD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0BhD,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlF,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAI1B,KAAK,CAAC,KAAK,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,EAAE,MAAM,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAOzI,SAAS,CAAC,GAAG,EAAE,GAAG,GAAC,MAAM,GAAC,SAAS,GAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;CAUvE"}
|
package/dist/dat.bank.js
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { Dat, DatKey, } from "./index.js";
|
|
11
|
-
export class DatBank {
|
|
12
|
-
constructor(issueKey = null, verifyKeys = []) {
|
|
13
|
-
this.issueKey = issueKey;
|
|
14
|
-
this.verifyKeys = verifyKeys;
|
|
15
|
-
}
|
|
16
|
-
static imports(format) {
|
|
17
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
18
|
-
const lines = format.split('\n').map(e => e.trim()).filter(e => !!e);
|
|
19
|
-
let keys = [];
|
|
20
|
-
for (const line of lines) {
|
|
21
|
-
const key = yield DatKey.imports(line);
|
|
22
|
-
if (keys.find(e => e.kid === key.kid)) {
|
|
23
|
-
throw new Error(`Invalid DAT KEYS - Duplicate KID ${key.kid}`);
|
|
24
|
-
}
|
|
25
|
-
keys.push(key);
|
|
26
|
-
}
|
|
27
|
-
keys.sort((a, b) => a.issueBegin - b.issueBegin);
|
|
28
|
-
let issueKey = null;
|
|
29
|
-
for (let i = keys.length - 1; i >= 0; i--) {
|
|
30
|
-
const key = keys[i];
|
|
31
|
-
if (key.isIssuable()) {
|
|
32
|
-
issueKey = key;
|
|
33
|
-
break;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return new DatBank(issueKey, keys);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
exports(datSignatureKeyOutOption) {
|
|
40
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
return (yield Promise.all(this.verifyKeys.map(e => e.exports(datSignatureKeyOutOption)))).join('\n');
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
find(kid) {
|
|
45
|
-
return this.verifyKeys.find(e => e.kid === kid) || null;
|
|
46
|
-
}
|
|
47
|
-
toDat(plain, secure) {
|
|
48
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
-
if (this.issueKey) {
|
|
50
|
-
return yield this.issueKey.toDat(plain, secure);
|
|
51
|
-
}
|
|
52
|
-
throw new Error("Invalid DAT: Signing Key Does Not Exist");
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
toPayload(dat) {
|
|
56
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
-
if (!(dat = Dat.from(dat)).format) {
|
|
58
|
-
throw new Error("Invalid DAT: Format");
|
|
59
|
-
}
|
|
60
|
-
const key = this.find(dat.kid);
|
|
61
|
-
if (key != null) {
|
|
62
|
-
return key.toPayload(dat);
|
|
63
|
-
}
|
|
64
|
-
throw new Error("Invalid DAT: KID Not Found");
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=dat.bank.js.map
|
package/dist/dat.bank.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dat.bank.js","sourceRoot":"","sources":["../src/dat.bank.ts"],"names":[],"mappings":"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"}
|
package/dist/dat.key.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Dat, DatCryptoKey, DatPayload, DatSignatureKey, DatSignatureKeyOutOption } from "./index.js";
|
|
2
|
-
export declare class DatKey {
|
|
3
|
-
readonly kid: string;
|
|
4
|
-
readonly signatureKey: DatSignatureKey;
|
|
5
|
-
readonly cryptoKey: DatCryptoKey;
|
|
6
|
-
readonly issueBegin: number;
|
|
7
|
-
readonly issueEnd: number;
|
|
8
|
-
readonly tokenTtl: number;
|
|
9
|
-
constructor(kid: string, signatureKey: DatSignatureKey, cryptoKey: DatCryptoKey, issueBegin: number, issueEnd: number, tokenTtl: number);
|
|
10
|
-
exports(datSignatureKeyOutOption: DatSignatureKeyOutOption): Promise<string>;
|
|
11
|
-
static imports(format: string): Promise<DatKey>;
|
|
12
|
-
private static _import_ver_2;
|
|
13
|
-
toDat(plain: ArrayBufferLike | Uint8Array | string | null | undefined, secure: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<string>;
|
|
14
|
-
toPayload(dat: Dat | string | undefined | null): Promise<DatPayload>;
|
|
15
|
-
isPreIssuance(): boolean;
|
|
16
|
-
isIssuable(): boolean;
|
|
17
|
-
expiredVerifying(): boolean;
|
|
18
|
-
hasSigningKey(): boolean;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=dat.key.d.ts.map
|
package/dist/dat.key.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dat.key.d.ts","sourceRoot":"","sources":["../src/dat.key.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,GAAG,EAIH,YAAY,EAEZ,UAAU,EACV,eAAe,EACf,wBAAwB,EAE3B,MAAM,YAAY,CAAC;AAEpB,qBAAa,MAAM;IACf,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,YAAY,EAAE,eAAe,CAAC;IAC9C,SAAgB,SAAS,EAAE,YAAY,CAAC;IACxC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAG7B,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,eAAe,EAC7B,SAAS,EAAE,YAAY,EACvB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM;IAsBd,OAAO,CAAC,wBAAwB,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;WAYrE,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;mBAWhC,aAAa;IAU5B,KAAK,CAAC,KAAK,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,EAAE,MAAM,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAWzI,SAAS,CAAC,GAAG,EAAE,GAAG,GAAC,MAAM,GAAC,SAAS,GAAC,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;IAcpE,aAAa,IAAI,OAAO;IAIxB,UAAU,IAAI,OAAO;IAKrB,gBAAgB,IAAI,OAAO;IAI3B,aAAa,IAAI,OAAO;CAG3B"}
|
package/dist/dat.key.js
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { Dat, DAT_VERSION, DatArrayBuffer, DatBytes, DatCryptoKey, DatInteger, DatPayload, DatSignatureKey, DatUnixtime, } from "./index.js";
|
|
11
|
-
export class DatKey {
|
|
12
|
-
constructor(kid, signatureKey, cryptoKey, issueBegin, issueEnd, tokenTtl) {
|
|
13
|
-
if (kid.match(/[.\r\n]/) != null) {
|
|
14
|
-
throw new Error(`Invalid Kid: kid is not allowed ".", "\\r", "\\n"" ${kid}`);
|
|
15
|
-
}
|
|
16
|
-
if (!DatInteger.isBetween(issueBegin, 0)) {
|
|
17
|
-
throw new Error(`Invalid issueBegin: issueBegin is positive int or 0 ${issueBegin}`);
|
|
18
|
-
}
|
|
19
|
-
if (!DatInteger.isBetween(issueEnd, 0)) {
|
|
20
|
-
throw new Error(`Invalid issueEnd: issueEnd is positive int or 0 ${issueEnd}`);
|
|
21
|
-
}
|
|
22
|
-
if (!DatInteger.isBetween(tokenTtl, 1)) {
|
|
23
|
-
throw new Error(`Invalid tokenTtl: tokenTtl is positive int ${tokenTtl}`);
|
|
24
|
-
}
|
|
25
|
-
this.kid = kid;
|
|
26
|
-
this.signatureKey = signatureKey;
|
|
27
|
-
this.cryptoKey = cryptoKey;
|
|
28
|
-
this.issueBegin = Math.floor(issueBegin);
|
|
29
|
-
this.issueEnd = Math.floor(issueEnd);
|
|
30
|
-
this.tokenTtl = Math.floor(tokenTtl);
|
|
31
|
-
}
|
|
32
|
-
exports(datSignatureKeyOutOption) {
|
|
33
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
const kid = this.kid;
|
|
35
|
-
const signAlg = this.signatureKey.algorithm;
|
|
36
|
-
const signKey = yield this.signatureKey.exports(datSignatureKeyOutOption);
|
|
37
|
-
const cryptoAlg = this.cryptoKey.algorithm;
|
|
38
|
-
const cryptoKey = yield this.cryptoKey.exports();
|
|
39
|
-
const issueBegin = this.issueBegin;
|
|
40
|
-
const issueEnd = this.issueEnd;
|
|
41
|
-
const tokenTtl = this.tokenTtl;
|
|
42
|
-
return `${DAT_VERSION}.${kid}.${signAlg}.${signKey}.${cryptoAlg}.${cryptoKey}.${issueBegin}.${issueEnd}.${tokenTtl}`;
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
static imports(format) {
|
|
46
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
const split = format.split(".");
|
|
48
|
-
switch (split[0] || '0') {
|
|
49
|
-
case '2':
|
|
50
|
-
case '1':
|
|
51
|
-
if (split.length == 9) {
|
|
52
|
-
return yield DatKey._import_ver_2(split);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
throw new Error("Invalid format");
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
static _import_ver_2(split) {
|
|
59
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
const kid = split[1];
|
|
61
|
-
const signKey = yield DatSignatureKey.imports(split[2], split[3]);
|
|
62
|
-
const cryptoKey = yield DatCryptoKey.imports(split[4], split[5]);
|
|
63
|
-
const issueBegin = Number(split[6]);
|
|
64
|
-
const issueEnd = Number(split[7]);
|
|
65
|
-
const tokenTtl = Number(split[8]);
|
|
66
|
-
return new DatKey(kid, signKey, cryptoKey, issueBegin, issueEnd, tokenTtl);
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
toDat(plain, secure) {
|
|
70
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
-
const now = DatUnixtime.now();
|
|
72
|
-
const exp = now + this.tokenTtl;
|
|
73
|
-
const kid = this.kid;
|
|
74
|
-
const plainBase64 = DatBytes.toBase64Url(plain);
|
|
75
|
-
const securedBase64 = DatArrayBuffer.toBase64Url(yield this.cryptoKey.encrypt(DatArrayBuffer.from(secure)));
|
|
76
|
-
const body = `${exp}.${kid}.${plainBase64}.${securedBase64}`;
|
|
77
|
-
const sign = DatArrayBuffer.toBase64Url(yield this.signatureKey.sign(body));
|
|
78
|
-
return `${body}.${sign}`;
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
toPayload(dat) {
|
|
82
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
83
|
-
dat = Dat.from(dat);
|
|
84
|
-
if (!dat.format) {
|
|
85
|
-
throw new Error("Invalid DAT: Format");
|
|
86
|
-
}
|
|
87
|
-
if (dat.expired()) {
|
|
88
|
-
throw new Error("Invalid DAT: Expired");
|
|
89
|
-
}
|
|
90
|
-
if (!(yield this.signatureKey.verify(dat.body(), dat.signature))) {
|
|
91
|
-
throw new Error('Invalid DAT: Signature');
|
|
92
|
-
}
|
|
93
|
-
return new DatPayload(dat.expire, dat.plain, yield this.cryptoKey.decrypt(dat.secure));
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
isPreIssuance() {
|
|
97
|
-
return DatUnixtime.now() <= this.issueBegin;
|
|
98
|
-
}
|
|
99
|
-
isIssuable() {
|
|
100
|
-
const now = DatUnixtime.now();
|
|
101
|
-
return this.hasSigningKey() && now > this.issueBegin && now <= this.issueEnd;
|
|
102
|
-
}
|
|
103
|
-
expiredVerifying() {
|
|
104
|
-
return DatUnixtime.isPast(this.issueEnd + this.tokenTtl);
|
|
105
|
-
}
|
|
106
|
-
hasSigningKey() {
|
|
107
|
-
return this.signatureKey.hasSigningKey();
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=dat.key.js.map
|
package/dist/dat.key.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dat.key.js","sourceRoot":"","sources":["../src/dat.key.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export declare function now(): number;
|
|
2
|
-
export declare function from(date: Date): number;
|
|
3
|
-
export declare function isPast(unixtime: number): boolean;
|
|
4
|
-
export declare function isNotPast(unixtime: number): boolean;
|
|
5
|
-
export declare function isFuture(unixtime: number): boolean;
|
|
6
|
-
//# sourceMappingURL=DatUnixtime.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DatUnixtime.d.ts","sourceRoot":"","sources":["../../src/util/DatUnixtime.ts"],"names":[],"mappings":"AAAA,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEvC;AAED,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAElD"}
|
package/dist/util/DatUnixtime.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export function now() {
|
|
2
|
-
return from(new Date());
|
|
3
|
-
}
|
|
4
|
-
export function from(date) {
|
|
5
|
-
return Math.floor(date.getTime() / 1000);
|
|
6
|
-
}
|
|
7
|
-
export function isPast(unixtime) {
|
|
8
|
-
return unixtime < now();
|
|
9
|
-
}
|
|
10
|
-
export function isNotPast(unixtime) {
|
|
11
|
-
return unixtime >= now();
|
|
12
|
-
}
|
|
13
|
-
export function isFuture(unixtime) {
|
|
14
|
-
return unixtime > now();
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=DatUnixtime.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DatUnixtime.js","sourceRoot":"","sources":["../../src/util/DatUnixtime.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG;IACf,OAAO,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAU;IAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,QAAgB;IACnC,OAAO,QAAQ,GAAG,GAAG,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,QAAgB;IACtC,OAAO,QAAQ,IAAI,GAAG,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACrC,OAAO,QAAQ,GAAG,GAAG,EAAE,CAAC;AAC5B,CAAC"}
|