saro-dat 2.0.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,66 +1,12 @@
1
1
  # DAT - Distributed Access Token
2
2
 
3
- # NPM
4
- ```
5
- saro-dat
6
- ```
7
-
8
- # DAT
9
- ```
10
- # Example
11
- signature_algorithm: P256
12
- crypto_algorithm: AES128GCMN
13
- plain: 123
14
- secure: asdf
15
-
16
- # DAT result Example
17
- 1776530737.11.MTIz.8yKUvzs7mg3tDwdeA9I2gNOliewpTgm9OVbEY3Qh6io.qfnqmXKuNE3MfRr576rxNMCchxbY1iqC07-woJcbCudt2O0BAyK_86ypaSfLJjkGq9FZxpGrsgBDkk-xQhGvmA
18
- ```
19
-
20
- > ```expire```.```kid```.```plain```.```secure```.```sign```
3
+ ## Document
21
4
 
22
- - ```expire```: number
23
- - Unix-Timestamp (sec)
24
- - ```kid```: stringifiable
25
- - key id
26
- - ```plain```: base64 url no pad
27
- - Text Data
28
- - ```secure```: base64 url no pad
29
- - Encrypted Text Data
30
- - ```sign```: base64 url no pad
31
- - dat-bank\[kid\].sign(expire.kid.plain.secure)
5
+ ### [DAT Run Online](https://dat.saro.me)
32
6
 
33
- # DAT KEY
34
- ```
35
- # Example
36
- 1.2.P256.DErFl-U5h4fdbnAXTTs2GikkJgZwYXV25v2EdFeXIXs.AES128GCMN.5VEziIzCu2LRsK1XS6OYxA.1776541326.1776544626.1800
37
- ```
38
- > ```version```.```kid```.```signature-algorithm```.```signature-key```.```crypto-algorithm```.```crypto-key```.```issue-begin```.```issue-end```.```token-ttl```
39
-
40
- - ```version```: number
41
- - dat-key format version
42
- - ```kid```: stringifiable
43
- - key id
44
- - ```signature-algorithm```: text
45
- - sign algorithm
46
- - ```signature-key```: base64 url no pad
47
- > The signature-key is categorized into three types: FULL (signing-key~verifying-key), SIGNING (signing-key), and VERIFYING (~verifying-key).
48
- >
49
- > Whether a key is for sign or verify can be distinguished by the presence of a leading tilde (~). Generally, if you output the sign key alone, the public key can be derived from it (using the private key). However, depending on the platform, this derivation feature may not be available; in such cases, you should output the full key and parse it for use.
50
- - FULL: \<signing key base64\>~\<verifying key base64\>
51
- - SIGNING: \<signing key base64\>
52
- - VERIFYING: ~\<verifying key base64\>
53
- - ```crypto-algorithm```: text
54
- - crypto algorithm,
55
- - ```crypto-key```: base64 url no pad
56
- - crypto key
57
- - ```issue-begin```: number
58
- - issue begin time
59
- - ```issue-end```: number
60
- - issue end time
61
- - ```token-ttl```: number
62
- - token(dat) TTL
7
+ ### [What is DAT](https://dat.saro.me/--/intro)
63
8
 
9
+ ### [Example](https://dat.saro.me/--/libs/npm-saro-dat)
64
10
 
65
11
  ## support signature algorithm
66
12
  | name | algorithm |
@@ -76,11 +22,23 @@ secure: asdf
76
22
  | AES256GCMN | aes-256-cbc n(nonce + body) |
77
23
 
78
24
 
79
- ### See Also
80
- - Libraries
81
- - [Rust](https://github.com/saro-lab/dat-rust)
82
- - [Java, Kotlin](https://github.com/saro-lab/dat-maven)
83
- - DatKey Generate Service
84
- - [DAT Bank: Binary Docker, Kubernetes](https://github.com/saro-lab/dat-bank)
85
-
86
-
25
+ # Performance
26
+ - random plain and secure test
27
+ - mac mini m4 2024 basic (10 core)
28
+ - [performance.test.ts](src/performance.test.ts)
29
+ ```
30
+ plain: oPlAzKK2N62hHCIvJhvqkiBXwzt8eiS5vLavzL409GthN9ZeVZyr0uDFPfVEYwiC5BQ5Yuwp4z1mW5cFIZI161C8skuLmK9DrozH
31
+ secure: jNfQ5AVhjJVRfG3vmBF2NrpZLFpbOaeUbUMaTqlbOEnZ0cGtzLfDf1rLV9H4G6AstYn6QBaQhyiuJHcHLFTsunPyS6Bm3WKQE0Ih
32
+ P256/AES128GCMN Issue * 10000 : 455ms
33
+ P256/AES128GCMN Parse * 10000 : 700ms
34
+ P256/AES256GCMN Issue * 10000 : 443ms
35
+ P256/AES256GCMN Parse * 10000 : 688ms
36
+ P384/AES128GCMN Issue * 10000 : 4022ms
37
+ P384/AES128GCMN Parse * 10000 : 3466ms
38
+ P384/AES256GCMN Issue * 10000 : 4043ms
39
+ P384/AES256GCMN Parse * 10000 : 3448ms
40
+ P521/AES128GCMN Issue * 10000 : 9544ms
41
+ P521/AES128GCMN Parse * 10000 : 7433ms
42
+ P521/AES256GCMN Issue * 10000 : 9485ms
43
+ P521/AES256GCMN Parse * 10000 : 7419ms
44
+ ```
@@ -1 +1 @@
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;IAmBhD,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"}
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 CHANGED
@@ -1,46 +1,68 @@
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
+ };
1
10
  import { Dat, DatKey, } from "./index.js";
2
11
  export class DatBank {
3
- issueKey;
4
- verifyKeys;
5
12
  constructor(issueKey = null, verifyKeys = []) {
6
13
  this.issueKey = issueKey;
7
14
  this.verifyKeys = verifyKeys;
8
15
  }
9
- static async imports(format) {
10
- const lines = format.split('\n').map(e => e.trim()).filter(e => !!e);
11
- let keys = [];
12
- for (const line of lines) {
13
- const key = await DatKey.imports(line);
14
- if (keys.find(e => e.kid === key.kid)) {
15
- throw new Error(`Invalid DAT KEYS - Duplicate KID ${key.kid}`);
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);
16
26
  }
17
- keys.push(key);
18
- }
19
- keys.sort((a, b) => a.issueBegin - b.issueBegin);
20
- const issueKey = keys.findLast(e => e.isIssuable()) || null;
21
- return new DatBank(issueKey, keys);
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
+ });
22
38
  }
23
- async exports(datSignatureKeyOutOption) {
24
- return (await Promise.all(this.verifyKeys.map(e => e.exports(datSignatureKeyOutOption)))).join('\n');
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
+ });
25
43
  }
26
44
  find(kid) {
27
45
  return this.verifyKeys.find(e => e.kid === kid) || null;
28
46
  }
29
- async toDat(plain, secure) {
30
- if (this.issueKey) {
31
- return await this.issueKey.toDat(plain, secure);
32
- }
33
- throw new Error("Invalid DAT: Signing Key Does Not Exist");
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
+ });
34
54
  }
35
- async toPayload(dat) {
36
- if (!(dat = Dat.from(dat)).format) {
37
- throw new Error("Invalid DAT: Format");
38
- }
39
- const key = this.find(dat.kid);
40
- if (key != null) {
41
- return key.toPayload(dat);
42
- }
43
- throw new Error("Invalid DAT: KID Not Found");
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
+ });
44
66
  }
45
67
  }
46
68
  //# sourceMappingURL=dat.bank.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dat.bank.js","sourceRoot":"","sources":["../src/dat.bank.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dat.bank.js","sourceRoot":"","sources":["../src/dat.bank.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { DatCryptoKey, DatSignatureKey, DatSignatureKeyOutOption } from "./index.js";
2
+ export declare class DatCertificate {
3
+ readonly certificateId: number;
4
+ readonly _signatureKey: DatSignatureKey;
5
+ readonly _cryptoKey: DatCryptoKey;
6
+ readonly _datIssueBegin: number;
7
+ readonly _datIssueEnd: number;
8
+ readonly _datTtl: number;
9
+ constructor(certificateId: number, signatureKey: DatSignatureKey, cryptoKey: DatCryptoKey, datIssueBegin: number, datIssueEnd: number, datTtl: number);
10
+ exports(datSignatureKeyOutOption: DatSignatureKeyOutOption): Promise<string>;
11
+ static imports(format: string): Promise<DatCertificate>;
12
+ issuable(): boolean;
13
+ expired(): boolean;
14
+ hasSigningKey(): boolean;
15
+ }
16
+ //# sourceMappingURL=dat.certificate.d.ts.map
@@ -0,0 +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,EAAe,MAAM,YAAY,CAAC;AAE7G,qBAAa,cAAc;IACvB,SAAgB,aAAa,EAAE,MAAM,CAAC;IACtC,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,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,eAAe,EAC7B,SAAS,EAAE,YAAY,EACvB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM;IAsBZ,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;IAKnB,OAAO,IAAI,OAAO;IAIlB,aAAa,IAAI,OAAO;CAG3B"}
@@ -0,0 +1,64 @@
1
+ import { DatCryptoKey, DatInteger, DatSignatureKey, DatUnixtime, } from "./index.js";
2
+ export class DatCertificate {
3
+ certificateId;
4
+ _signatureKey;
5
+ _cryptoKey;
6
+ _datIssueBegin;
7
+ _datIssueEnd;
8
+ _datTtl;
9
+ constructor(certificateId, signatureKey, cryptoKey, datIssueBegin, datIssueEnd, datTtl) {
10
+ if (!DatInteger.isBetween(certificateId, 0)) {
11
+ throw new Error(`Invalid certificate id: certificate id is positive int or 0 ${datIssueBegin}`);
12
+ }
13
+ if (!DatInteger.isBetween(datIssueBegin, 0)) {
14
+ throw new Error(`Invalid issueBegin: issueBegin is positive int or 0 ${datIssueBegin}`);
15
+ }
16
+ if (!DatInteger.isBetween(datIssueEnd, 0)) {
17
+ throw new Error(`Invalid issueEnd: issueEnd is positive int or 0 ${datIssueEnd}`);
18
+ }
19
+ if (!DatInteger.isBetween(datTtl, 1)) {
20
+ throw new Error(`Invalid datTtl: datTtl is positive int ${datTtl}`);
21
+ }
22
+ this.certificateId = certificateId;
23
+ this._signatureKey = signatureKey;
24
+ this._cryptoKey = cryptoKey;
25
+ this._datIssueBegin = Math.floor(datIssueBegin);
26
+ this._datIssueEnd = Math.floor(datIssueEnd);
27
+ this._datTtl = Math.floor(datTtl);
28
+ }
29
+ async exports(datSignatureKeyOutOption) {
30
+ const certificateId = this.certificateId.toString(16);
31
+ const signatureAlgorithm = this._signatureKey.algorithm;
32
+ const signatureKey = await this._signatureKey.exports(datSignatureKeyOutOption);
33
+ const cryptoAlg = this._cryptoKey.algorithm;
34
+ const cryptoKey = await this._cryptoKey.exports();
35
+ const datIssueBegin = this._datIssueBegin;
36
+ const datIssueEnd = this._datIssueEnd;
37
+ const datTtl = this._datTtl;
38
+ return `${certificateId}.${signatureAlgorithm}.${signatureKey}.${cryptoAlg}.${cryptoKey}.${datIssueBegin}.${datIssueEnd}.${datTtl}`;
39
+ }
40
+ static async imports(format) {
41
+ const split = format.split(".");
42
+ if (split.length == 8) {
43
+ const certificateId = Number.parseInt(split[0], 16);
44
+ const signatureKey = await DatSignatureKey.imports(split[1], split[2]);
45
+ const cryptoKey = await DatCryptoKey.imports(split[3], split[4]);
46
+ const datIssueBegin = Number(split[5]);
47
+ const datIssueEnd = Number(split[6]);
48
+ const datTtl = Number(split[7]);
49
+ return new DatCertificate(certificateId, signatureKey, cryptoKey, datIssueBegin, datIssueEnd, datTtl);
50
+ }
51
+ throw new Error("Invalid Certificate format");
52
+ }
53
+ issuable() {
54
+ const now = DatUnixtime.now();
55
+ return this.hasSigningKey() && now >= this._datIssueBegin && now <= this._datIssueEnd;
56
+ }
57
+ expired() {
58
+ return DatUnixtime.isPast(this._datIssueEnd + this._datTtl);
59
+ }
60
+ hasSigningKey() {
61
+ return this._signatureKey.hasSigningKey();
62
+ }
63
+ }
64
+ //# sourceMappingURL=dat.certificate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dat.certificate.js","sourceRoot":"","sources":["../src/dat.certificate.ts"],"names":[],"mappings":"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"}
package/dist/dat.d.ts CHANGED
@@ -1,15 +1,15 @@
1
1
  export declare class Dat {
2
- readonly format: boolean;
3
2
  readonly dat: string;
4
- readonly expire: number;
5
- readonly kid: string;
6
- readonly plain: ArrayBuffer;
7
- readonly secure: ArrayBuffer;
8
- readonly signature: ArrayBuffer;
3
+ readonly _format: boolean;
4
+ readonly _expire: number;
5
+ readonly _certificateId: number;
6
+ readonly _plain: ArrayBuffer;
7
+ readonly _secure: ArrayBuffer;
8
+ readonly _signature: ArrayBuffer;
9
9
  constructor(dat: string | undefined | null);
10
10
  static from(dat: Dat | string | undefined | null): Dat;
11
11
  expired(): boolean;
12
- body(): string;
12
+ _body(): string;
13
13
  }
14
14
  export declare class DatPayload {
15
15
  readonly expire: number;
package/dist/dat.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dat.d.ts","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"AAOA,qBAAa,GAAG;IACZ,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAS;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAM;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAK;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAM;IAC1B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAsB;IACjD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAsB;IAClD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAsB;gBAEzC,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,IAAI,IAAI,MAAM;CAGjB;AAED,qBAAa,UAAU;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;gBAEtB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;IAMnE,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,MAAM,IAAI,MAAM,CAEnB;CACJ"}
1
+ {"version":3,"file":"dat.d.ts","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"AAOA,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,cAAc,EAAE,MAAM,CAAK;IACpC,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,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;gBAEtB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW;IAMnE,IAAI,KAAK,IAAI,MAAM,CAElB;IACD,IAAI,MAAM,IAAI,MAAM,CAEnB;CACJ"}
package/dist/dat.js CHANGED
@@ -1,23 +1,23 @@
1
1
  import { DatBytes, DatArrayBuffer, DatInteger, DatUnixtime, } from "./index.js";
2
2
  export class Dat {
3
- format = false;
4
3
  dat = '';
5
- expire = 0;
6
- kid = '';
7
- plain = new ArrayBuffer(0);
8
- secure = new ArrayBuffer(0);
9
- signature = new ArrayBuffer(0);
4
+ _format = false;
5
+ _expire = 0;
6
+ _certificateId = 0;
7
+ _plain = new ArrayBuffer(0);
8
+ _secure = new ArrayBuffer(0);
9
+ _signature = new ArrayBuffer(0);
10
10
  constructor(dat) {
11
11
  if (dat) {
12
12
  const parts = (this.dat = dat || '').split('.');
13
13
  if (dat && parts.length == 5) {
14
14
  try {
15
- this.expire = DatInteger.parse(parts[0]);
16
- this.kid = parts[1];
17
- this.plain = DatArrayBuffer.fromBase64Url(parts[2]);
18
- this.secure = DatArrayBuffer.fromBase64Url(parts[3]);
19
- this.signature = DatArrayBuffer.fromBase64Url(parts[4]);
20
- this.format = (this.signature.byteLength > 0 && this.expire >= 0);
15
+ this._expire = DatInteger.parse(parts[0]);
16
+ this._certificateId = Number.parseInt(parts[1], 16);
17
+ this._plain = DatArrayBuffer.fromBase64Url(parts[2]);
18
+ this._secure = DatArrayBuffer.fromBase64Url(parts[3]);
19
+ this._signature = DatArrayBuffer.fromBase64Url(parts[4]);
20
+ this._format = (this._signature.byteLength > 0 && this._expire >= 0);
21
21
  }
22
22
  catch (e) { }
23
23
  }
@@ -30,9 +30,9 @@ export class Dat {
30
30
  return new Dat(dat);
31
31
  }
32
32
  expired() {
33
- return !this.format || DatUnixtime.isPast(this.expire);
33
+ return !this._format || DatUnixtime.isPast(this._expire);
34
34
  }
35
- body() {
35
+ _body() {
36
36
  return this.dat.substring(0, this.dat.lastIndexOf('.'));
37
37
  }
38
38
  }
package/dist/dat.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dat.js","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,cAAc,EACd,UAAU,EACV,WAAW,GACd,MAAM,YAAY,CAAC;AAEpB,MAAM,OAAO,GAAG;IACH,MAAM,GAAY,KAAK,CAAC;IACxB,GAAG,GAAW,EAAE,CAAC;IACjB,MAAM,GAAW,CAAC,CAAC;IACnB,GAAG,GAAW,EAAE,CAAC;IACjB,KAAK,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IACzC,SAAS,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAErD,YAAY,GAA0B;QAClC,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACD,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpD,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrD,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxD,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;gBACtE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YAClB,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAA8B;QACtC,IAAI,GAAG,YAAY,GAAG,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC;QACf,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,OAAO;QACH,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI;QACA,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;CACJ;AAED,MAAM,OAAO,UAAU;IACV,MAAM,CAAS;IACf,UAAU,CAAc;IACxB,WAAW,CAAc;IAElC,YAAY,MAAc,EAAE,KAAkB,EAAE,MAAmB;QAC/D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK;QACL,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,MAAM;QACN,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;CACJ"}
1
+ {"version":3,"file":"dat.js","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,cAAc,EACd,UAAU,EACV,WAAW,GACd,MAAM,YAAY,CAAC;AAEpB,MAAM,OAAO,GAAG;IACH,GAAG,GAAW,EAAE,CAAC;IACjB,OAAO,GAAY,KAAK,CAAC;IACzB,OAAO,GAAW,CAAC,CAAC;IACpB,cAAc,GAAW,CAAC,CAAC;IAC3B,MAAM,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAC1C,UAAU,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAEtD,YAAY,GAA0B;QAClC,IAAI,GAAG,EAAE,CAAC;YACN,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACpD,IAAI,CAAC,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrD,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzD,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;gBACzE,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC,CAAA,CAAC;YAClB,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAA8B;QACtC,IAAI,GAAG,YAAY,GAAG,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC;QACf,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAED,OAAO;QACH,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;CACJ;AAED,MAAM,OAAO,UAAU;IACV,MAAM,CAAS;IACf,UAAU,CAAc;IACxB,WAAW,CAAc;IAElC,YAAY,MAAc,EAAE,KAAkB,EAAE,MAAmB;QAC/D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK;QACL,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,MAAM;QACN,OAAO,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;CACJ"}
package/dist/dat.key.js CHANGED
@@ -1,11 +1,14 @@
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
+ };
1
10
  import { Dat, DAT_VERSION, DatArrayBuffer, DatBytes, DatCryptoKey, DatInteger, DatPayload, DatSignatureKey, DatUnixtime, } from "./index.js";
2
11
  export class DatKey {
3
- kid;
4
- signatureKey;
5
- cryptoKey;
6
- issueBegin;
7
- issueEnd;
8
- tokenTtl;
9
12
  constructor(kid, signatureKey, cryptoKey, issueBegin, issueEnd, tokenTtl) {
10
13
  if (kid.match(/[.\r\n]/) != null) {
11
14
  throw new Error(`Invalid Kid: kid is not allowed ".", "\\r", "\\n"" ${kid}`);
@@ -26,59 +29,69 @@ export class DatKey {
26
29
  this.issueEnd = Math.floor(issueEnd);
27
30
  this.tokenTtl = Math.floor(tokenTtl);
28
31
  }
29
- async exports(datSignatureKeyOutOption) {
30
- const kid = this.kid;
31
- const signAlg = this.signatureKey.algorithm;
32
- const signKey = await this.signatureKey.exports(datSignatureKeyOutOption);
33
- const cryptoAlg = this.cryptoKey.algorithm;
34
- const cryptoKey = await this.cryptoKey.exports();
35
- const issueBegin = this.issueBegin;
36
- const issueEnd = this.issueEnd;
37
- const tokenTtl = this.tokenTtl;
38
- return `${DAT_VERSION}.${kid}.${signAlg}.${signKey}.${cryptoAlg}.${cryptoKey}.${issueBegin}.${issueEnd}.${tokenTtl}`;
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
+ });
39
44
  }
40
- static async imports(format) {
41
- const split = format.split(".");
42
- switch (split[0] || '0') {
43
- case '2':
44
- case '1':
45
- if (split.length == 9) {
46
- return await DatKey._import_ver_2(split);
47
- }
48
- }
49
- throw new Error("Invalid format");
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
+ });
50
57
  }
51
- static async _import_ver_2(split) {
52
- const kid = split[1];
53
- const signKey = await DatSignatureKey.imports(split[2], split[3]);
54
- const cryptoKey = await DatCryptoKey.imports(split[4], split[5]);
55
- const issueBegin = Number(split[6]);
56
- const issueEnd = Number(split[7]);
57
- const tokenTtl = Number(split[8]);
58
- return new DatKey(kid, signKey, cryptoKey, issueBegin, issueEnd, tokenTtl);
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
+ });
59
68
  }
60
- async toDat(plain, secure) {
61
- const now = DatUnixtime.now();
62
- const exp = now + this.tokenTtl;
63
- const kid = this.kid;
64
- const plainBase64 = DatBytes.toBase64Url(plain);
65
- const securedBase64 = DatArrayBuffer.toBase64Url(await this.cryptoKey.encrypt(DatArrayBuffer.from(secure)));
66
- const body = `${exp}.${kid}.${plainBase64}.${securedBase64}`;
67
- const sign = DatArrayBuffer.toBase64Url(await this.signatureKey.sign(body));
68
- return `${body}.${sign}`;
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
+ });
69
80
  }
70
- async toPayload(dat) {
71
- dat = Dat.from(dat);
72
- if (!dat.format) {
73
- throw new Error("Invalid DAT: Format");
74
- }
75
- if (dat.expired()) {
76
- throw new Error("Invalid DAT: Expired");
77
- }
78
- if (!await this.signatureKey.verify(dat.body(), dat.signature)) {
79
- throw new Error('Invalid DAT: Signature');
80
- }
81
- return new DatPayload(dat.expire, dat.plain, await this.cryptoKey.decrypt(dat.secure));
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
+ });
82
95
  }
83
96
  isPreIssuance() {
84
97
  return DatUnixtime.now() <= this.issueBegin;
@@ -1 +1 @@
1
- {"version":3,"file":"dat.key.js","sourceRoot":"","sources":["../src/dat.key.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,GAAG,EACH,WAAW,EACX,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,UAAU,EACV,eAAe,EAEf,WAAW,GACd,MAAM,YAAY,CAAC;AAEpB,MAAM,OAAO,MAAM;IACC,GAAG,CAAS;IACZ,YAAY,CAAkB;IAC9B,SAAS,CAAe;IACxB,UAAU,CAAS;IACnB,QAAQ,CAAS;IACjB,QAAQ,CAAS;IAEjC,YACI,GAAW,EACX,YAA6B,EAC7B,SAAuB,EACvB,UAAkB,EAClB,QAAgB,EAChB,QAAgB;QAEhB,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,sDAAsD,GAAG,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,uDAAuD,UAAU,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,mDAAmD,QAAQ,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,8CAA8C,QAAQ,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,wBAAkD;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;QAC3C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,OAAO,GAAG,WAAW,IAAI,GAAG,IAAI,OAAO,IAAI,OAAO,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;IACzH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAc;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,QAAQ,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;YACtB,KAAK,GAAG,CAAC;YAAC,KAAK,GAAG;gBACd,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACpB,OAAO,MAAM,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;gBAC5C,CAAC;QACT,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACtC,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAe;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,OAAO,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC9E,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAuD,EAAE,MAAwD;QACzH,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5G,MAAM,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAA8B;QAC1C,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACd,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,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;IAC1F,CAAC;IAED,aAAa;QACT,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,UAAU,CAAA;IAC/C,CAAC;IAED,UAAU;QACN,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAA;IAChF,CAAC;IAED,gBAAgB;QACZ,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;IAC7C,CAAC;CACJ"}
1
+ {"version":3,"file":"dat.key.js","sourceRoot":"","sources":["../src/dat.key.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { Dat, DatCertificate, DatPayload, DatSignatureKeyOutOption } from "./index.js";
2
+ export declare class DatManager {
3
+ private readonly issuer;
4
+ private readonly certificates;
5
+ constructor(issuer?: DatCertificate | null, certificates?: DatCertificate[]);
6
+ static from(inputCertificates: DatCertificate[]): DatManager;
7
+ static imports(format: string): Promise<DatManager>;
8
+ exports(datSignatureKeyOutOption: DatSignatureKeyOutOption): Promise<string>;
9
+ find(certificateId: number): DatCertificate | null;
10
+ issue(plain: ArrayBufferLike | Uint8Array | string | null | undefined, secure: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<string>;
11
+ parse(dat: Dat | string | undefined | null): Promise<DatPayload>;
12
+ static issue(certificate: DatCertificate, plain: ArrayBufferLike | Uint8Array | string | null | undefined, secure: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<string>;
13
+ static parse(certificate: DatCertificate, dat: Dat | string | undefined | null): Promise<DatPayload>;
14
+ }
15
+ //# sourceMappingURL=dat.manager.d.ts.map
@@ -0,0 +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,EAE3B,MAAM,YAAY,CAAC;AAEpB,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;WAoB/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,aAAa,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAI5C,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"}
@@ -0,0 +1,76 @@
1
+ import { Dat, DatArrayBuffer, DatBytes, DatCertificate, DatPayload, DatUnixtime, } from "./index.js";
2
+ export class DatManager {
3
+ issuer;
4
+ certificates;
5
+ constructor(issuer = null, certificates = []) {
6
+ this.issuer = issuer;
7
+ this.certificates = certificates;
8
+ }
9
+ static from(inputCertificates) {
10
+ let certificates = [];
11
+ for (const certificate of inputCertificates) {
12
+ if (certificates.find(e => e.certificateId === certificate.certificateId)) {
13
+ throw new Error(`Invalid DAT Certificates - Duplicate Certificate Id ${certificate.certificateId}`);
14
+ }
15
+ if (certificate.expired()) {
16
+ continue;
17
+ }
18
+ certificates.push(certificate);
19
+ }
20
+ certificates.sort((a, b) => a._datIssueEnd - b._datIssueEnd);
21
+ const issuer = certificates.findLast(e => e.issuable()) || null;
22
+ return new DatManager(issuer, certificates);
23
+ }
24
+ static async imports(format) {
25
+ const certificates = await Promise.all(format.split('\n')
26
+ .map(async (e) => await DatCertificate.imports(e.trim()))
27
+ .filter(e => !!e));
28
+ return DatManager.from(certificates);
29
+ }
30
+ async exports(datSignatureKeyOutOption) {
31
+ return (await Promise.all(this.certificates.map(e => e.exports(datSignatureKeyOutOption)))).join('\n');
32
+ }
33
+ find(certificateId) {
34
+ return this.certificates.find(e => e.certificateId === certificateId) || null;
35
+ }
36
+ async issue(plain, secure) {
37
+ if (this.issuer) {
38
+ return await DatManager.issue(this.issuer, plain, secure);
39
+ }
40
+ throw new Error("Invalid DAT: Signing Key Does Not Exist");
41
+ }
42
+ async parse(dat) {
43
+ if (!(dat = Dat.from(dat))._format) {
44
+ throw new Error("Invalid DAT: Format");
45
+ }
46
+ const certificate = this.find(dat._certificateId);
47
+ if (certificate != null) {
48
+ return DatManager.parse(certificate, dat);
49
+ }
50
+ throw new Error("Invalid DAT: Certificate Id Not Found");
51
+ }
52
+ static async issue(certificate, plain, secure) {
53
+ const now = DatUnixtime.now();
54
+ const expire = now + certificate._datTtl;
55
+ const certificateId = certificate.certificateId.toString(16);
56
+ const plainBase64 = DatBytes.toBase64Url(plain);
57
+ const securedBase64 = DatArrayBuffer.toBase64Url(await certificate._cryptoKey.encrypt(DatArrayBuffer.from(secure)));
58
+ const body = `${expire}.${certificateId}.${plainBase64}.${securedBase64}`;
59
+ const signature = DatArrayBuffer.toBase64Url(await certificate._signatureKey.sign(body));
60
+ return `${body}.${signature}`;
61
+ }
62
+ static async parse(certificate, dat) {
63
+ dat = Dat.from(dat);
64
+ if (!dat._format) {
65
+ throw new Error("Invalid DAT: Format");
66
+ }
67
+ if (dat.expired()) {
68
+ throw new Error("Invalid DAT: Expired");
69
+ }
70
+ if (!await certificate._signatureKey.verify(dat._body(), dat._signature)) {
71
+ throw new Error('Invalid DAT: Signature');
72
+ }
73
+ return new DatPayload(dat._expire, dat._plain, await certificate._cryptoKey.decrypt(dat._secure));
74
+ }
75
+ }
76
+ //# sourceMappingURL=dat.manager.js.map
@@ -0,0 +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,EAEV,WAAW,GACd,MAAM,YAAY,CAAC;AAEpB,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,aAAa,KAAK,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;gBACxE,MAAM,IAAI,KAAK,CAAC,uDAAuD,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;YACxG,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,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC;QAE7D,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,aAAqB;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,aAAa,CAAC,IAAI,IAAI,CAAC;IAClF,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,cAAc,CAAC,CAAC;QAClD,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;YACtB,OAAO,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,WAA2B,EAAE,KAAuD,EAAE,MAAwD;QAC7J,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC;QACzC,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7D,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,aAAa,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;QAC1E,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,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;IACrG,CAAC;CACJ"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export declare const DAT_VERSION = "2";
2
1
  export * as DatInteger from "./util/DatInteger.js";
3
2
  export * as DatUnixtime from "./util/DatUnixtime.js";
4
3
  export * as DatBytes from "./util/DatBytes.js";
@@ -8,6 +7,6 @@ export * as DatUint8Array from "./util/DatUint8Array.js";
8
7
  export * from "./crypto.js";
9
8
  export * from "./signature.js";
10
9
  export * from "./dat.js";
11
- export * from "./dat.key.js";
12
- export * from "./dat.bank.js";
10
+ export * from "./dat.certificate";
11
+ export * from "./dat.manager";
13
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AACrD,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,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AACrD,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,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,3 @@
1
- export const DAT_VERSION = "2";
2
1
  export * as DatInteger from "./util/DatInteger.js";
3
2
  export * as DatUnixtime from "./util/DatUnixtime.js";
4
3
  export * as DatBytes from "./util/DatBytes.js";
@@ -8,6 +7,6 @@ export * as DatUint8Array from "./util/DatUint8Array.js";
8
7
  export * from "./crypto.js";
9
8
  export * from "./signature.js";
10
9
  export * from "./dat.js";
11
- export * from "./dat.key.js";
12
- export * from "./dat.bank.js";
10
+ export * from "./dat.certificate";
11
+ export * from "./dat.manager";
13
12
  //# 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,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,CAAC;AAE/B,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AACrD,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,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AACrD,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,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "saro-dat",
3
- "version": "2.0.1",
3
+ "version": "3.0.0",
4
4
  "description": "Distributed Access Token",
5
5
  "keywords": [
6
6
  "dat",