saro-dat 1.1.2 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/dist/crypto.d.ts +3 -2
  2. package/dist/crypto.d.ts.map +1 -1
  3. package/dist/crypto.js +18 -25
  4. package/dist/crypto.js.map +1 -1
  5. package/dist/dat.bank.d.ts +3 -3
  6. package/dist/dat.bank.d.ts.map +1 -1
  7. package/dist/dat.bank.js +8 -10
  8. package/dist/dat.bank.js.map +1 -1
  9. package/dist/dat.d.ts +7 -7
  10. package/dist/dat.d.ts.map +1 -1
  11. package/dist/dat.js +25 -20
  12. package/dist/dat.js.map +1 -1
  13. package/dist/dat.key.d.ts +6 -3
  14. package/dist/dat.key.d.ts.map +1 -1
  15. package/dist/dat.key.js +27 -19
  16. package/dist/dat.key.js.map +1 -1
  17. package/dist/index.d.ts +8 -6
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +8 -6
  20. package/dist/index.js.map +1 -1
  21. package/dist/signature.d.ts +4 -2
  22. package/dist/signature.d.ts.map +1 -1
  23. package/dist/signature.js +23 -39
  24. package/dist/signature.js.map +1 -1
  25. package/dist/util/DatArrayBuffer.d.ts +8 -0
  26. package/dist/util/DatArrayBuffer.d.ts.map +1 -0
  27. package/dist/util/DatArrayBuffer.js +45 -0
  28. package/dist/util/DatArrayBuffer.js.map +1 -0
  29. package/dist/util/DatArrayBufferLike.d.ts +4 -0
  30. package/dist/util/DatArrayBufferLike.d.ts.map +1 -0
  31. package/dist/util/DatArrayBufferLike.js +36 -0
  32. package/dist/util/DatArrayBufferLike.js.map +1 -0
  33. package/dist/util/DatBytes.d.ts +5 -0
  34. package/dist/util/DatBytes.d.ts.map +1 -0
  35. package/dist/util/DatBytes.js +30 -0
  36. package/dist/util/DatBytes.js.map +1 -0
  37. package/dist/util/DatInteger.d.ts +3 -0
  38. package/dist/util/DatInteger.d.ts.map +1 -0
  39. package/dist/{util.misc.js → util/DatInteger.js} +3 -6
  40. package/dist/util/DatInteger.js.map +1 -0
  41. package/dist/util/DatUint8Array.d.ts +8 -0
  42. package/dist/util/DatUint8Array.d.ts.map +1 -0
  43. package/dist/util/DatUint8Array.js +73 -0
  44. package/dist/util/DatUint8Array.js.map +1 -0
  45. package/dist/util/DatUnixtime.d.ts +6 -0
  46. package/dist/util/DatUnixtime.d.ts.map +1 -0
  47. package/dist/util/DatUnixtime.js +16 -0
  48. package/dist/util/DatUnixtime.js.map +1 -0
  49. package/package.json +1 -1
  50. package/dist/util.base64.d.ts +0 -6
  51. package/dist/util.base64.d.ts.map +0 -1
  52. package/dist/util.base64.js +0 -29
  53. package/dist/util.base64.js.map +0 -1
  54. package/dist/util.bytes.d.ts +0 -17
  55. package/dist/util.bytes.d.ts.map +0 -1
  56. package/dist/util.bytes.js +0 -85
  57. package/dist/util.bytes.js.map +0 -1
  58. package/dist/util.es6.d.ts +0 -7
  59. package/dist/util.es6.d.ts.map +0 -1
  60. package/dist/util.es6.js +0 -43
  61. package/dist/util.es6.js.map +0 -1
  62. package/dist/util.hex.d.ts +0 -4
  63. package/dist/util.hex.d.ts.map +0 -1
  64. package/dist/util.hex.js +0 -33
  65. package/dist/util.hex.js.map +0 -1
  66. package/dist/util.misc.d.ts +0 -4
  67. package/dist/util.misc.d.ts.map +0 -1
  68. package/dist/util.misc.js.map +0 -1
package/dist/crypto.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export type DatCryptoAlgorithm = "AES128GCMN" | "AES256GCMN";
2
+ export declare const DatCryptoAlgorithms: DatCryptoAlgorithm[];
2
3
  type CryptoConfig = {
3
4
  name: string;
4
5
  length: number;
@@ -11,8 +12,8 @@ export declare class DatCryptoKey {
11
12
  static generate(algorithm: DatCryptoAlgorithm): Promise<DatCryptoKey>;
12
13
  static imports(algorithm: string, base64: string): Promise<DatCryptoKey>;
13
14
  exports(): Promise<string>;
14
- encrypt(data: any): Promise<ArrayBuffer>;
15
- decrypt(data: any): Promise<ArrayBuffer>;
15
+ encrypt(data: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<ArrayBuffer>;
16
+ decrypt(data: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<ArrayBuffer>;
16
17
  }
17
18
  export {};
18
19
  //# sourceMappingURL=crypto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,YAAY,CAAC;AAE7D,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAmBrD,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,SAAgB,SAAS,EAAE,kBAAkB,CAAC;IAC9C,SAAgB,GAAG,EAAE,SAAS,CAAC;gBAG3B,SAAS,EAAE,kBAAkB,EAC7B,GAAG,EAAE,SAAS,EACd,MAAM,GAAE,YAAyC;WAOxC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;WAQ9D,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IASxE,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1B,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAgBxC,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;CAoBjD"}
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,YAAY,CAAC;AAC7D,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,EAAiC,CAAC;AAEtF,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAerD,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,SAAgB,SAAS,EAAE,kBAAkB,CAAC;IAC9C,SAAgB,GAAG,EAAE,SAAS,CAAC;gBAG3B,SAAS,EAAE,kBAAkB,EAC7B,GAAG,EAAE,SAAS,EACd,MAAM,GAAE,YAAyC;WAOxC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;WAQ9D,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IASxE,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1B,OAAO,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAiBrF,OAAO,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;CAgB9F"}
package/dist/crypto.js CHANGED
@@ -1,17 +1,15 @@
1
- import { concatArrayBuffer, toArrayBuffer, toArrayBufferFromBase64Url, toBase64Url } from "./index.js";
1
+ import { DatArrayBuffer, } from "./index.js";
2
+ export const DatCryptoAlgorithms = ["AES128GCMN", "AES256GCMN"];
2
3
  const CRYPTO_CONFIG = {
3
4
  "AES128GCMN": { name: "AES-GCM", length: 128 },
4
5
  "AES256GCMN": { name: "AES-GCM", length: 256 },
5
6
  };
6
- function unsupportedAlgorithm(algorithm) {
7
- return new Error(`Unsupported DAT Crypto Algorithm: ${algorithm}`);
8
- }
9
7
  function getCryptoConfig(algorithm) {
10
8
  const config = CRYPTO_CONFIG[algorithm];
11
9
  if (config) {
12
10
  return config;
13
11
  }
14
- throw unsupportedAlgorithm(algorithm);
12
+ throw new Error(`Unsupported DAT Crypto Algorithm: ${algorithm}`);
15
13
  }
16
14
  export class DatCryptoKey {
17
15
  config;
@@ -29,44 +27,39 @@ export class DatCryptoKey {
29
27
  }
30
28
  static async imports(algorithm, base64) {
31
29
  const config = getCryptoConfig(algorithm);
32
- const bytes = toArrayBufferFromBase64Url(base64);
30
+ const bytes = DatArrayBuffer.fromBase64Url(base64);
33
31
  const key = await crypto.subtle.importKey("raw", bytes, { name: config.name }, true, ["encrypt", "decrypt"]);
34
32
  return new DatCryptoKey(algorithm, key, config);
35
33
  }
36
34
  async exports() {
37
- return toBase64Url(await crypto.subtle.exportKey("raw", this.key));
35
+ return DatArrayBuffer.toBase64Url(await crypto.subtle.exportKey("raw", this.key));
38
36
  }
39
37
  async encrypt(data) {
40
- data = toArrayBuffer(data);
41
- if (!data.byteLength) {
42
- return data;
38
+ const buffer = DatArrayBuffer.from(data);
39
+ if (!buffer.byteLength) {
40
+ return buffer;
43
41
  }
44
42
  if (this.config.name == "AES-GCM") {
45
43
  const nonce = new Uint8Array(12);
46
44
  crypto.getRandomValues(nonce);
47
- const encrypt = await crypto.subtle.encrypt({ name: this.config.name, iv: nonce }, this.key, data);
48
- return concatArrayBuffer(nonce, encrypt);
45
+ const encrypt = await crypto.subtle.encrypt({ name: this.config.name, iv: nonce }, this.key, buffer);
46
+ return DatArrayBuffer.concat(nonce, encrypt);
49
47
  }
50
- throw unsupportedAlgorithm(this.algorithm);
48
+ throw new Error(`Unsupported DAT Crypto Algorithm: ${this.algorithm}`);
51
49
  }
52
50
  async decrypt(data) {
53
- if (typeof data == "string") {
54
- data = toArrayBufferFromBase64Url(data);
55
- }
56
- else if (!(data instanceof ArrayBuffer)) {
57
- data = toArrayBuffer(data);
58
- }
59
- if (!data.byteLength) {
60
- return data;
51
+ const buffer = DatArrayBuffer.fromBase64Url(data);
52
+ if (!buffer.byteLength) {
53
+ return buffer;
61
54
  }
62
55
  if (this.config.name == "AES-GCM") {
63
- if (data.byteLength <= 12) {
56
+ if (buffer.byteLength <= 12) {
64
57
  throw new Error("Invalid data length");
65
58
  }
66
- const nonce = data.slice(0, 12);
67
- return await crypto.subtle.decrypt({ name: this.config.name, iv: nonce }, this.key, data.slice(12));
59
+ const nonce = buffer.slice(0, 12);
60
+ return await crypto.subtle.decrypt({ name: this.config.name, iv: nonce }, this.key, buffer.slice(12));
68
61
  }
69
- throw unsupportedAlgorithm(this.algorithm);
62
+ throw new Error(`Unsupported DAT Crypto Algorithm: ${this.algorithm}`);
70
63
  }
71
64
  }
72
65
  //# sourceMappingURL=crypto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { DatKey, DatPayload, DatSignatureKeyOutOption } from "./index.js";
1
+ import { Dat, DatKey, DatPayload, DatSignatureKeyOutOption } from "./index.js";
2
2
  export declare class DatBank {
3
3
  private readonly issueKey;
4
4
  private readonly verifyKeys;
@@ -6,7 +6,7 @@ export declare class DatBank {
6
6
  static imports(format: string): Promise<DatBank>;
7
7
  exports(datSignatureKeyOutOption: DatSignatureKeyOutOption): Promise<string>;
8
8
  find(kid: string): DatKey | null;
9
- toDat(plain: any, secure: any): Promise<string>;
10
- toPayload(dat: any): Promise<DatPayload>;
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
11
  }
12
12
  //# sourceMappingURL=dat.bank.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dat.bank.d.ts","sourceRoot":"","sources":["../src/dat.bank.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAY,UAAU,EAAE,wBAAwB,EAAc,MAAM,YAAY,CAAC;AAE/F,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;IAoBhD,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,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAO/C,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;CAWjD"}
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"}
package/dist/dat.bank.js CHANGED
@@ -1,4 +1,4 @@
1
- import { DatKey, DatParts, nowUnixtime } from "./index.js";
1
+ import { Dat, DatKey, } from "./index.js";
2
2
  export class DatBank {
3
3
  issueKey;
4
4
  verifyKeys;
@@ -7,18 +7,17 @@ export class DatBank {
7
7
  this.verifyKeys = verifyKeys;
8
8
  }
9
9
  static async imports(format) {
10
- const now = nowUnixtime();
11
10
  const lines = format.split('\n').map(e => e.trim()).filter(e => !!e);
12
11
  let keys = [];
13
12
  for (const line of lines) {
14
13
  const key = await DatKey.imports(line);
15
14
  if (keys.find(e => e.kid === key.kid)) {
16
- return Promise.reject(new Error(`Invalid DAT KEYS - Duplicate KID ${key.kid}`));
15
+ throw new Error(`Invalid DAT KEYS - Duplicate KID ${key.kid}`);
17
16
  }
18
17
  keys.push(key);
19
18
  }
20
19
  keys.sort((a, b) => a.issueBegin - b.issueBegin);
21
- const issueKey = keys.findLast(e => e.hasSigningKey() && e.issueBegin <= now && e.issueEnd > now) || null;
20
+ const issueKey = keys.findLast(e => e.isIssuable()) || null;
22
21
  return new DatBank(issueKey, keys);
23
22
  }
24
23
  async exports(datSignatureKeyOutOption) {
@@ -34,15 +33,14 @@ export class DatBank {
34
33
  throw new Error("Invalid DAT: Signing Key Does Not Exist");
35
34
  }
36
35
  async toPayload(dat) {
37
- const parts = DatParts.from(dat);
38
- if (parts.errorFormat) {
39
- return Promise.reject("Invalid DAT: Format");
36
+ if (!(dat = Dat.from(dat)).format) {
37
+ throw new Error("Invalid DAT: Format");
40
38
  }
41
- const key = parts.errorFormat ? null : this.find(parts.kid);
39
+ const key = this.find(dat.kid);
42
40
  if (key != null) {
43
- return key.toPayload(parts);
41
+ return key.toPayload(dat);
44
42
  }
45
- return Promise.reject("Invalid DAT: KID Not Found");
43
+ throw new Error("Invalid DAT: KID Not Found");
46
44
  }
47
45
  }
48
46
  //# 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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"}
package/dist/dat.d.ts CHANGED
@@ -1,13 +1,13 @@
1
- export declare class DatParts {
2
- readonly errorFormat: boolean;
1
+ export declare class Dat {
2
+ readonly format: boolean;
3
3
  readonly dat: string;
4
4
  readonly expire: number;
5
5
  readonly kid: string;
6
- readonly plain: string;
7
- readonly secure: string;
8
- readonly signature: string;
9
- constructor(dat: string);
10
- static from(dat: string | undefined | null | DatParts): DatParts;
6
+ readonly plain: ArrayBuffer;
7
+ readonly secure: ArrayBuffer;
8
+ readonly signature: ArrayBuffer;
9
+ constructor(dat: string | undefined | null);
10
+ static from(dat: Dat | string | undefined | null): Dat;
11
11
  expired(): boolean;
12
12
  body(): string;
13
13
  }
package/dist/dat.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dat.d.ts","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"AAEA,qBAAa,QAAQ;IACjB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAQ;IACrC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAK;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAM;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAM;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAM;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAM;gBAEpB,GAAG,EAAE,MAAM;IAYvB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAC,SAAS,GAAC,IAAI,GAAC,QAAQ,GAAG,QAAQ;IAO1D,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,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"}
package/dist/dat.js CHANGED
@@ -1,31 +1,36 @@
1
- import { nowUnixtime, toSafeIntegerOrNaN, toUtf8FromBase64Url } from "./index.js";
2
- export class DatParts {
3
- errorFormat = true;
4
- dat;
1
+ import { DatBytes, DatArrayBuffer, DatInteger, DatUnixtime, } from "./index.js";
2
+ export class Dat {
3
+ format = false;
4
+ dat = '';
5
5
  expire = 0;
6
6
  kid = '';
7
- plain = '';
8
- secure = '';
9
- signature = '';
7
+ plain = new ArrayBuffer(0);
8
+ secure = new ArrayBuffer(0);
9
+ signature = new ArrayBuffer(0);
10
10
  constructor(dat) {
11
- const parts = (this.dat = dat || '').split('.');
12
- if (dat && parts.length == 5) {
13
- this.expire = toSafeIntegerOrNaN(parts[0]);
14
- this.kid = parts[1];
15
- this.plain = parts[2];
16
- this.secure = parts[3];
17
- this.signature = parts[4];
18
- this.errorFormat = !(this.signature && this.expire > 0);
11
+ if (dat) {
12
+ const parts = (this.dat = dat || '').split('.');
13
+ if (dat && parts.length == 5) {
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);
21
+ }
22
+ catch (e) { }
23
+ }
19
24
  }
20
25
  }
21
26
  static from(dat) {
22
- if (dat instanceof DatParts) {
27
+ if (dat instanceof Dat) {
23
28
  return dat;
24
29
  }
25
- return new DatParts(dat || '');
30
+ return new Dat(dat);
26
31
  }
27
32
  expired() {
28
- return this.errorFormat || this.expire < nowUnixtime();
33
+ return !this.format || DatUnixtime.isPast(this.expire);
29
34
  }
30
35
  body() {
31
36
  return this.dat.substring(0, this.dat.lastIndexOf('.'));
@@ -41,10 +46,10 @@ export class DatPayload {
41
46
  this.secureBytes = secure;
42
47
  }
43
48
  get plain() {
44
- return toUtf8FromBase64Url(this.plainBytes);
49
+ return DatBytes.toUtf8(this.plainBytes);
45
50
  }
46
51
  get secure() {
47
- return toUtf8FromBase64Url(this.secureBytes);
52
+ return DatBytes.toUtf8(this.secureBytes);
48
53
  }
49
54
  }
50
55
  //# sourceMappingURL=dat.js.map
package/dist/dat.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dat.js","sourceRoot":"","sources":["../src/dat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,kBAAkB,EAAE,mBAAmB,EAAC,MAAM,YAAY,CAAC;AAEhF,MAAM,OAAO,QAAQ;IACR,WAAW,GAAY,IAAI,CAAC;IAC5B,GAAG,CAAS;IACZ,MAAM,GAAW,CAAC,CAAC;IACnB,GAAG,GAAW,EAAE,CAAC;IACjB,KAAK,GAAW,EAAE,CAAC;IACnB,MAAM,GAAW,EAAE,CAAC;IACpB,SAAS,GAAW,EAAE,CAAC;IAEhC,YAAY,GAAW;QACnB,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,GAAmC;QAC3C,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YAC1B,OAAO,GAAG,CAAC;QACf,CAAC;QACD,OAAO,IAAI,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,GAAG,WAAW,EAAE,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,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,MAAM;QACN,OAAO,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACjD,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,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"}
package/dist/dat.key.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { DatCryptoKey, DatPayload, DatSignatureKey, type DatSignatureKeyOutOption } from "./index.js";
1
+ import { Dat, DatCryptoKey, DatPayload, DatSignatureKey, DatSignatureKeyOutOption } from "./index.js";
2
2
  export declare class DatKey {
3
3
  readonly kid: string;
4
4
  readonly signatureKey: DatSignatureKey;
@@ -10,8 +10,11 @@ export declare class DatKey {
10
10
  exports(datSignatureKeyOutOption: DatSignatureKeyOutOption): Promise<string>;
11
11
  static imports(format: string): Promise<DatKey>;
12
12
  private static _import_ver_2;
13
- toDat(plain: any, secure: any): Promise<string>;
14
- toPayload(dat: any): Promise<DatPayload>;
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;
15
18
  hasSigningKey(): boolean;
16
19
  }
17
20
  //# sourceMappingURL=dat.key.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dat.key.d.ts","sourceRoot":"","sources":["../src/dat.key.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,YAAY,EAEZ,UAAU,EACV,eAAe,EACf,KAAK,wBAAwB,EAIhC,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,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAW/C,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IAiB9C,aAAa,IAAI,OAAO;CAG3B"}
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 CHANGED
@@ -1,4 +1,4 @@
1
- import { DAT_VERSION, DatCryptoKey, DatParts, DatPayload, DatSignatureKey, toBase64Url, toArrayBuffer, isIntegerRanged, nowUnixtime, toArrayBufferFromBase64Url } from "./index.js";
1
+ import { Dat, DAT_VERSION, DatArrayBuffer, DatBytes, DatCryptoKey, DatInteger, DatPayload, DatSignatureKey, DatUnixtime, } from "./index.js";
2
2
  export class DatKey {
3
3
  kid;
4
4
  signatureKey;
@@ -10,13 +10,13 @@ export class DatKey {
10
10
  if (kid.match(/[.\r\n]/) != null) {
11
11
  throw new Error(`Invalid Kid: kid is not allowed ".", "\\r", "\\n"" ${kid}`);
12
12
  }
13
- if (!isIntegerRanged(issueBegin, 0)) {
13
+ if (!DatInteger.isBetween(issueBegin, 0)) {
14
14
  throw new Error(`Invalid issueBegin: issueBegin is positive int or 0 ${issueBegin}`);
15
15
  }
16
- if (!isIntegerRanged(issueEnd, 0)) {
16
+ if (!DatInteger.isBetween(issueEnd, 0)) {
17
17
  throw new Error(`Invalid issueEnd: issueEnd is positive int or 0 ${issueEnd}`);
18
18
  }
19
- if (!isIntegerRanged(tokenTtl, 1)) {
19
+ if (!DatInteger.isBetween(tokenTtl, 1)) {
20
20
  throw new Error(`Invalid tokenTtl: tokenTtl is positive int ${tokenTtl}`);
21
21
  }
22
22
  this.kid = kid;
@@ -58,29 +58,37 @@ export class DatKey {
58
58
  return new DatKey(kid, signKey, cryptoKey, issueBegin, issueEnd, tokenTtl);
59
59
  }
60
60
  async toDat(plain, secure) {
61
- const now = nowUnixtime();
61
+ const now = DatUnixtime.now();
62
62
  const exp = now + this.tokenTtl;
63
63
  const kid = this.kid;
64
- plain = toBase64Url(plain);
65
- secure = toBase64Url(await this.cryptoKey.encrypt(toArrayBuffer(secure)));
66
- const body = `${exp}.${kid}.${plain}.${secure}`;
67
- const sign = toBase64Url(await this.signatureKey.sign(body));
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
68
  return `${body}.${sign}`;
69
69
  }
70
70
  async toPayload(dat) {
71
- const parts = DatParts.from(dat);
72
- if (parts.errorFormat) {
73
- return Promise.reject("Invalid DAT: Format");
71
+ dat = Dat.from(dat);
72
+ if (!dat.format) {
73
+ throw new Error("Invalid DAT: Format");
74
74
  }
75
- if (parts.expired()) {
76
- return Promise.reject("Invalid DAT: Expired");
75
+ if (dat.expired()) {
76
+ throw new Error("Invalid DAT: Expired");
77
77
  }
78
- if (!await this.signatureKey.verify(parts.body(), parts.signature)) {
79
- return Promise.reject('Invalid DAT: Signature');
78
+ if (!await this.signatureKey.verify(dat.body(), dat.signature)) {
79
+ throw new Error('Invalid DAT: Signature');
80
80
  }
81
- const plain = toArrayBufferFromBase64Url(parts.plain);
82
- const secure = await this.cryptoKey.decrypt(parts.secure);
83
- return new DatPayload(parts.expire, plain, secure);
81
+ return new DatPayload(dat.expire, dat.plain, await this.cryptoKey.decrypt(dat.secure));
82
+ }
83
+ isPreIssuance() {
84
+ return DatUnixtime.now() <= this.issueBegin;
85
+ }
86
+ isIssuable() {
87
+ const now = DatUnixtime.now();
88
+ return this.hasSigningKey() && now > this.issueBegin && now <= this.issueEnd;
89
+ }
90
+ expiredVerifying() {
91
+ return DatUnixtime.isPast(this.issueEnd + this.tokenTtl);
84
92
  }
85
93
  hasSigningKey() {
86
94
  return this.signatureKey.hasSigningKey();
@@ -1 +1 @@
1
- {"version":3,"file":"dat.key.js","sourceRoot":"","sources":["../src/dat.key.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dat.key.js","sourceRoot":"","sources":["../src/dat.key.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,13 @@
1
1
  export declare const DAT_VERSION = "2";
2
- export * from './dat.js';
2
+ export * as DatInteger from "./util/DatInteger.js";
3
+ export * as DatUnixtime from "./util/DatUnixtime.js";
4
+ export * as DatBytes from "./util/DatBytes.js";
5
+ export * as DatArrayBufferLike from "./util/DatArrayBufferLike.js";
6
+ export * as DatArrayBuffer from "./util/DatArrayBuffer.js";
7
+ export * as DatUint8Array from "./util/DatUint8Array.js";
3
8
  export * from "./crypto.js";
9
+ export * from "./signature.js";
10
+ export * from "./dat.js";
4
11
  export * from "./dat.key.js";
5
12
  export * from "./dat.bank.js";
6
- export * from "./signature.js";
7
- export * from "./util.bytes.js";
8
- export * from "./util.base64.js";
9
- export * from "./util.hex.js";
10
- export * from "./util.misc.js";
11
13
  //# 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,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
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"}
package/dist/index.js CHANGED
@@ -1,11 +1,13 @@
1
1
  export const DAT_VERSION = "2";
2
- export * from './dat.js';
2
+ export * as DatInteger from "./util/DatInteger.js";
3
+ export * as DatUnixtime from "./util/DatUnixtime.js";
4
+ export * as DatBytes from "./util/DatBytes.js";
5
+ export * as DatArrayBufferLike from "./util/DatArrayBufferLike.js";
6
+ export * as DatArrayBuffer from "./util/DatArrayBuffer.js";
7
+ export * as DatUint8Array from "./util/DatUint8Array.js";
3
8
  export * from "./crypto.js";
9
+ export * from "./signature.js";
10
+ export * from "./dat.js";
4
11
  export * from "./dat.key.js";
5
12
  export * from "./dat.bank.js";
6
- export * from "./signature.js";
7
- export * from "./util.bytes.js";
8
- export * from "./util.base64.js";
9
- export * from "./util.hex.js";
10
- export * from "./util.misc.js";
11
13
  //# 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,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
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,5 +1,7 @@
1
1
  export type DatSignatureAlgorithm = "P256" | "P384" | "P521";
2
+ export declare const DatSignatureAlgorithms: DatSignatureAlgorithm[];
2
3
  export type DatSignatureKeyOutOption = "FULL" | "SIGNING" | "VERIFYING";
4
+ export declare const DatSignatureKeyOutOptions: DatSignatureKeyOutOption[];
3
5
  type SignatureConfig = {
4
6
  name: string;
5
7
  curve: string;
@@ -14,8 +16,8 @@ export declare class DatSignatureKey {
14
16
  static generate(algorithm: DatSignatureAlgorithm): Promise<DatSignatureKey>;
15
17
  static imports(algorithm: string, format: string): Promise<DatSignatureKey>;
16
18
  exports(option: DatSignatureKeyOutOption): Promise<string>;
17
- sign(body: any): Promise<ArrayBuffer>;
18
- verify(body: any, signature: any): Promise<boolean>;
19
+ sign(body: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<ArrayBuffer>;
20
+ verify(body: ArrayBufferLike | Uint8Array | string | null | undefined, signature: ArrayBufferLike | Uint8Array | string | null | undefined): Promise<boolean>;
19
21
  hasSigningKey(): boolean;
20
22
  }
21
23
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAC7D,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;AAExE,KAAK,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AA+CrE,qBAAa,eAAe;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,SAAgB,SAAS,EAAE,qBAAqB,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAY;gBAGrC,SAAS,EAAE,qBAAqB,EAChC,UAAU,EAAE,SAAS,GAAG,IAAI,EAC5B,YAAY,EAAE,SAAS,EACvB,MAAM,GAAE,eAA4C;WAQ3C,QAAQ,CAAC,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;WASpE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA6B3E,OAAO,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB1D,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAarC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAmBzD,aAAa,IAAI,OAAO;CAG3B"}
1
+ {"version":3,"file":"signature.d.ts","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAC7D,eAAO,MAAM,sBAAsB,EAAE,qBAAqB,EAA6B,CAAC;AACxF,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,SAAS,GAAG,WAAW,CAAC;AACxE,eAAO,MAAM,yBAAyB,EAAE,wBAAwB,EAAqC,CAAC;AAEtG,KAAK,eAAe,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AA6BrE,qBAAa,eAAe;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,SAAgB,SAAS,EAAE,qBAAqB,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAY;gBAGrC,SAAS,EAAE,qBAAqB,EAChC,UAAU,EAAE,SAAS,GAAG,IAAI,EAC5B,YAAY,EAAE,SAAS,EACvB,MAAM,GAAE,eAA4C;WAQ3C,QAAQ,CAAC,SAAS,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;WASpE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA6B3E,OAAO,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB1D,IAAI,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAclF,MAAM,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,EAAE,SAAS,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAYnJ,aAAa,IAAI,OAAO;CAG3B"}