saro-dat 1.1.2 → 2.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.
Files changed (49) hide show
  1. package/dist/crypto.d.ts +3 -2
  2. package/dist/crypto.d.ts.map +1 -1
  3. package/dist/crypto.js +15 -19
  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 +5 -6
  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 +24 -16
  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 +15 -20
  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/DatInteger.js +19 -0
  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
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;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,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,4 +1,5 @@
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 },
@@ -29,42 +30,37 @@ export class DatCryptoKey {
29
30
  }
30
31
  static async imports(algorithm, base64) {
31
32
  const config = getCryptoConfig(algorithm);
32
- const bytes = toArrayBufferFromBase64Url(base64);
33
+ const bytes = DatArrayBuffer.fromBase64Url(base64);
33
34
  const key = await crypto.subtle.importKey("raw", bytes, { name: config.name }, true, ["encrypt", "decrypt"]);
34
35
  return new DatCryptoKey(algorithm, key, config);
35
36
  }
36
37
  async exports() {
37
- return toBase64Url(await crypto.subtle.exportKey("raw", this.key));
38
+ return DatArrayBuffer.toBase64Url(await crypto.subtle.exportKey("raw", this.key));
38
39
  }
39
40
  async encrypt(data) {
40
- data = toArrayBuffer(data);
41
- if (!data.byteLength) {
42
- return data;
41
+ const buffer = DatArrayBuffer.from(data);
42
+ if (!buffer.byteLength) {
43
+ return buffer;
43
44
  }
44
45
  if (this.config.name == "AES-GCM") {
45
46
  const nonce = new Uint8Array(12);
46
47
  crypto.getRandomValues(nonce);
47
- const encrypt = await crypto.subtle.encrypt({ name: this.config.name, iv: nonce }, this.key, data);
48
- return concatArrayBuffer(nonce, encrypt);
48
+ const encrypt = await crypto.subtle.encrypt({ name: this.config.name, iv: nonce }, this.key, buffer);
49
+ return DatArrayBuffer.concat(nonce, encrypt);
49
50
  }
50
51
  throw unsupportedAlgorithm(this.algorithm);
51
52
  }
52
53
  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;
54
+ const buffer = DatArrayBuffer.fromBase64Url(data);
55
+ if (!buffer.byteLength) {
56
+ return buffer;
61
57
  }
62
58
  if (this.config.name == "AES-GCM") {
63
- if (data.byteLength <= 12) {
59
+ if (buffer.byteLength <= 12) {
64
60
  throw new Error("Invalid data length");
65
61
  }
66
- const nonce = data.slice(0, 12);
67
- return await crypto.subtle.decrypt({ name: this.config.name, iv: nonce }, this.key, data.slice(12));
62
+ const nonce = buffer.slice(0, 12);
63
+ return await crypto.subtle.decrypt({ name: this.config.name, iv: nonce }, this.key, buffer.slice(12));
68
64
  }
69
65
  throw unsupportedAlgorithm(this.algorithm);
70
66
  }
@@ -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,EAAe,MAAM,YAAY,CAAC;AAE3F,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,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, DatUnixtime, } from "./index.js";
2
2
  export class DatBank {
3
3
  issueKey;
4
4
  verifyKeys;
@@ -7,7 +7,7 @@ export class DatBank {
7
7
  this.verifyKeys = verifyKeys;
8
8
  }
9
9
  static async imports(format) {
10
- const now = nowUnixtime();
10
+ const now = DatUnixtime.now();
11
11
  const lines = format.split('\n').map(e => e.trim()).filter(e => !!e);
12
12
  let keys = [];
13
13
  for (const line of lines) {
@@ -34,13 +34,12 @@ export class DatBank {
34
34
  throw new Error("Invalid DAT: Signing Key Does Not Exist");
35
35
  }
36
36
  async toPayload(dat) {
37
- const parts = DatParts.from(dat);
38
- if (parts.errorFormat) {
37
+ if (!(dat = Dat.from(dat)).format) {
39
38
  return Promise.reject("Invalid DAT: Format");
40
39
  }
41
- const key = parts.errorFormat ? null : this.find(parts.kid);
40
+ const key = this.find(dat.kid);
42
41
  if (key != null) {
43
- return key.toPayload(parts);
42
+ return key.toPayload(dat);
44
43
  }
45
44
  return Promise.reject("Invalid DAT: KID Not Found");
46
45
  }
@@ -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) {
71
+ dat = Dat.from(dat);
72
+ if (!dat.format) {
73
73
  return Promise.reject("Invalid DAT: Format");
74
74
  }
75
- if (parts.expired()) {
75
+ if (dat.expired()) {
76
76
  return Promise.reject("Invalid DAT: Expired");
77
77
  }
78
- if (!await this.signatureKey.verify(parts.body(), parts.signature)) {
78
+ if (!await this.signatureKey.verify(dat.body(), dat.signature)) {
79
79
  return Promise.reject('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 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;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,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"}
package/dist/signature.js CHANGED
@@ -1,5 +1,7 @@
1
- import { toArrayBuffer, toArrayBufferFromBase64Url, toBase64Url, toUint8ArrayFromBase64Url, } from "./index.js";
1
+ import { DatArrayBuffer, DatUint8Array, } from "./index.js";
2
2
  import { p256, p384, p521 } from '@noble/curves/nist.js';
3
+ export const DatSignatureAlgorithms = ["P256", "P384", "P521"];
4
+ export const DatSignatureKeyOutOptions = ["FULL", "SIGNING", "VERIFYING"];
3
5
  const SIGNATURE_CONFIG = {
4
6
  "P256": { name: "ECDSA", curve: 'P-256', hash: 'SHA-256' },
5
7
  "P384": { name: "ECDSA", curve: 'P-384', hash: 'SHA-384' },
@@ -87,7 +89,7 @@ export class DatSignatureKey {
87
89
  }
88
90
  }
89
91
  if (option == "FULL" || option == "VERIFYING") {
90
- rv += '~' + toBase64Url(await crypto.subtle.exportKey("raw", this.verifyingKey));
92
+ rv += '~' + DatArrayBuffer.toBase64Url(await crypto.subtle.exportKey("raw", this.verifyingKey));
91
93
  }
92
94
  return rv;
93
95
  }
@@ -95,25 +97,18 @@ export class DatSignatureKey {
95
97
  if (!this.signingKey) {
96
98
  throw errorVerifyingOnly();
97
99
  }
98
- if (!(body = toArrayBuffer(body)).byteLength) {
100
+ const bytes = DatArrayBuffer.from(body);
101
+ if (!bytes.byteLength) {
99
102
  throw errorEmptyBody();
100
103
  }
101
- return crypto.subtle.sign({ name: this.config.name, hash: { name: this.config.hash }, }, this.signingKey, body);
104
+ return crypto.subtle.sign({ name: this.config.name, hash: { name: this.config.hash }, }, this.signingKey, bytes);
102
105
  }
103
106
  async verify(body, signature) {
104
- if (!(body = toArrayBuffer(body)).byteLength) {
107
+ const bodyBytes = DatArrayBuffer.from(body);
108
+ if (!bodyBytes.byteLength) {
105
109
  return false;
106
110
  }
107
- if (typeof signature == "string") {
108
- signature = toArrayBufferFromBase64Url(signature);
109
- }
110
- else {
111
- signature = toArrayBuffer(signature);
112
- }
113
- if (!signature.byteLength) {
114
- return false;
115
- }
116
- return crypto.subtle.verify({ name: this.config.name, hash: { name: this.config.hash }, }, this.verifyingKey, signature, body);
111
+ return crypto.subtle.verify({ name: this.config.name, hash: { name: this.config.hash }, }, this.verifyingKey, DatArrayBuffer.fromBase64Url(signature), bodyBytes);
117
112
  }
118
113
  hasSigningKey() {
119
114
  return this.signingKey !== null;
@@ -136,7 +131,7 @@ async function toEcdsaKeyPair(config, privateKeyBase64, publicKeyBase64) {
136
131
  let privateKey = null;
137
132
  let privateKeyBytes = null;
138
133
  if (privateKeyBase64) {
139
- privateKeyBytes = toUint8ArrayFromBase64Url(privateKeyBase64);
134
+ privateKeyBytes = DatUint8Array.fromBase64Url(privateKeyBase64);
140
135
  // d로부터 공개 키(Point) 계산
141
136
  const publicPoint = ecdsa.getPublicKey(privateKeyBytes, false);
142
137
  // 곡선별 좌표 길이 계산: (전체 길이 - 1) / 2 - 좌표 추출
@@ -147,18 +142,18 @@ async function toEcdsaKeyPair(config, privateKeyBase64, publicKeyBase64) {
147
142
  kty: "EC",
148
143
  crv: config.curve,
149
144
  d: privateKeyBase64,
150
- x: toBase64Url(xBytes),
151
- y: toBase64Url(yBytes),
145
+ x: DatUint8Array.toBase64Url(xBytes),
146
+ y: DatUint8Array.toBase64Url(yBytes),
152
147
  ext: true,
153
148
  };
154
149
  privateKey = await crypto.subtle.importKey("jwk", jwk, { name: "ECDSA", namedCurve: config.curve }, true, ["sign"]);
155
150
  }
156
151
  let publicKeyBytes;
157
152
  if (publicKeyBase64) {
158
- publicKeyBytes = toArrayBufferFromBase64Url(publicKeyBase64);
153
+ publicKeyBytes = DatArrayBuffer.fromBase64Url(publicKeyBase64);
159
154
  }
160
155
  else if (privateKeyBytes?.byteLength) {
161
- publicKeyBytes = toArrayBuffer(ecdsa.getPublicKey(privateKeyBytes, false));
156
+ publicKeyBytes = DatArrayBuffer.from(ecdsa.getPublicKey(privateKeyBytes, false));
162
157
  }
163
158
  else {
164
159
  throw errorInvalidKeyFormat();
@@ -1 +1 @@
1
- {"version":3,"file":"signature.js","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare function concat(arr1: ArrayBufferLike | Uint8Array, arr2: ArrayBufferLike | Uint8Array): ArrayBuffer;
2
+ export declare function from(data: ArrayBufferLike | Uint8Array | string | null | undefined): ArrayBuffer;
3
+ export declare function fromHex(data: ArrayBufferLike | Uint8Array | string | null | undefined, ignoreSpace?: boolean): ArrayBuffer;
4
+ export declare function fromBase64(data: ArrayBufferLike | Uint8Array | string | null | undefined): ArrayBuffer;
5
+ export declare function fromBase64Url(data: ArrayBufferLike | Uint8Array | string | null | undefined): ArrayBuffer;
6
+ export declare function toBase64Url(data: ArrayBufferLike): string;
7
+ export declare function toHex(data: ArrayBufferLike, space?: boolean): string;
8
+ //# sourceMappingURL=DatArrayBuffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatArrayBuffer.d.ts","sourceRoot":"","sources":["../../src/util/DatArrayBuffer.ts"],"names":[],"mappings":"AAIA,wBAAgB,MAAM,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,EAAE,IAAI,EAAE,eAAe,GAAC,UAAU,GAAG,WAAW,CAEtG;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,WAAW,CAWxF;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,EAAE,WAAW,GAAE,OAAe,GAAG,WAAW,CAKzH;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,WAAW,CAK9F;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,WAAW,CAKjG;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAEzD;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,GAAE,OAAe,GAAG,MAAM,CAE3E"}
@@ -0,0 +1,45 @@
1
+ import { DatBytes, DatUint8Array } from "../index.js";
2
+ const UTF8_ENCODER = new TextEncoder();
3
+ export function concat(arr1, arr2) {
4
+ return DatUint8Array.concat(arr1, arr2).buffer;
5
+ }
6
+ export function from(data) {
7
+ if (data instanceof ArrayBuffer) {
8
+ return data;
9
+ }
10
+ else if (DatBytes.isEmpty(data)) {
11
+ return new ArrayBuffer(0);
12
+ }
13
+ else if (typeof data === 'string') {
14
+ return UTF8_ENCODER.encode(data).buffer;
15
+ }
16
+ else if (data instanceof Uint8Array) {
17
+ return data.buffer.slice(data.byteOffset, data.byteOffset + data.byteLength);
18
+ }
19
+ throw new Error('Unsupported Type');
20
+ }
21
+ export function fromHex(data, ignoreSpace = false) {
22
+ if (typeof data === 'string') {
23
+ return from(DatUint8Array.fromHex(data, ignoreSpace));
24
+ }
25
+ return from(data);
26
+ }
27
+ export function fromBase64(data) {
28
+ if (typeof data === 'string') {
29
+ return from(DatUint8Array.fromBase64(data));
30
+ }
31
+ return from(data);
32
+ }
33
+ export function fromBase64Url(data) {
34
+ if (typeof data === 'string') {
35
+ return from(DatUint8Array.fromBase64Url(data));
36
+ }
37
+ return from(data);
38
+ }
39
+ export function toBase64Url(data) {
40
+ return DatUint8Array.toBase64Url(DatUint8Array.from(data));
41
+ }
42
+ export function toHex(data, space = false) {
43
+ return DatUint8Array.toHex(DatUint8Array.from(data), space);
44
+ }
45
+ //# sourceMappingURL=DatArrayBuffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatArrayBuffer.js","sourceRoot":"","sources":["../../src/util/DatArrayBuffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC;AAEvC,MAAM,UAAU,MAAM,CAAC,IAAgC,EAAE,IAAgC;IACrF,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAsD;IACvE,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAC5C,CAAC;SAAM,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAgB,CAAC;IAChG,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAsD,EAAE,cAAuB,KAAK;IACxG,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAsD;IAC7E,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAsD;IAChF,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAqB;IAC7C,OAAO,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAqB,EAAE,QAAiB,KAAK;IAC/D,OAAO,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;AAC/D,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function from(data: ArrayBufferLike | Uint8Array): SharedArrayBuffer;
2
+ export declare function toArrayBuffer(data: ArrayBufferLike): ArrayBuffer;
3
+ export declare function toSharedArrayBuffer(data: ArrayBufferLike): SharedArrayBuffer;
4
+ //# sourceMappingURL=DatArrayBufferLike.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatArrayBufferLike.d.ts","sourceRoot":"","sources":["../../src/util/DatArrayBufferLike.ts"],"names":[],"mappings":"AAEA,wBAAgB,IAAI,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAG,iBAAiB,CAUxE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAShE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,iBAAiB,CAS5E"}
@@ -0,0 +1,36 @@
1
+ import { DatArrayBuffer } from "../index.js";
2
+ export function from(data) {
3
+ if (data instanceof Uint8Array) {
4
+ const buffer = data.buffer;
5
+ if (buffer instanceof SharedArrayBuffer) {
6
+ return buffer;
7
+ }
8
+ else if (buffer instanceof ArrayBuffer) {
9
+ return toSharedArrayBuffer(DatArrayBuffer.from(data));
10
+ }
11
+ }
12
+ return toSharedArrayBuffer(data);
13
+ }
14
+ export function toArrayBuffer(data) {
15
+ if (data instanceof ArrayBuffer) {
16
+ return data;
17
+ }
18
+ else if (data instanceof SharedArrayBuffer) {
19
+ const result = new ArrayBuffer(data.byteLength);
20
+ new Uint8Array(result).set(new Uint8Array(data));
21
+ return result;
22
+ }
23
+ throw new Error('Unsupported Type');
24
+ }
25
+ export function toSharedArrayBuffer(data) {
26
+ if (data instanceof SharedArrayBuffer) {
27
+ return data;
28
+ }
29
+ else if (data instanceof ArrayBuffer) {
30
+ const result = new SharedArrayBuffer(data.byteLength);
31
+ new Uint8Array(result).set(new Uint8Array(data));
32
+ return result;
33
+ }
34
+ throw new Error('Unsupported Type');
35
+ }
36
+ //# sourceMappingURL=DatArrayBufferLike.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatArrayBufferLike.js","sourceRoot":"","sources":["../../src/util/DatArrayBufferLike.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,UAAU,IAAI,CAAC,IAAgC;IACjD,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,MAAM,YAAY,iBAAiB,EAAE,CAAC;YACtC,OAAO,MAAM,CAAC;QAClB,CAAC;aAAM,IAAG,MAAM,YAAY,WAAW,EAAE,CAAC;YACtC,OAAO,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QACzD,CAAC;IACL,CAAC;IACD,OAAO,mBAAmB,CAAC,IAAuB,CAAC,CAAA;AACvD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAqB;IAC/C,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,YAAY,iBAAiB,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAqB;IACrD,IAAI,IAAI,YAAY,iBAAiB,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function isEmpty(data: ArrayBufferLike | Uint8Array | string | null | undefined): boolean;
2
+ export declare function toUtf8(data: ArrayBufferLike | Uint8Array | string | null | undefined): string;
3
+ export declare function toBase64Url(data: ArrayBufferLike | Uint8Array | string | null | undefined): string;
4
+ export declare function toHex(data: ArrayBufferLike | Uint8Array | string | null | undefined, space?: boolean): string;
5
+ //# sourceMappingURL=DatBytes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatBytes.d.ts","sourceRoot":"","sources":["../../src/util/DatBytes.ts"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,OAAO,CAKvF;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,MAAM,CASrF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,MAAM,CAE1F;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,EAAE,KAAK,GAAE,OAAe,GAAG,MAAM,CAK5G"}
@@ -0,0 +1,30 @@
1
+ import { DatUint8Array } from '../index.js';
2
+ const UTF8_DECODER = new TextDecoder('utf-8', { fatal: true });
3
+ export function isEmpty(data) {
4
+ if (data) {
5
+ return !(typeof data === 'string' || data.byteLength);
6
+ }
7
+ return true;
8
+ }
9
+ export function toUtf8(data) {
10
+ if (!data) {
11
+ return '';
12
+ }
13
+ else if (typeof data === 'string') {
14
+ return data;
15
+ }
16
+ else if (data instanceof Uint8Array || data instanceof ArrayBuffer || data instanceof SharedArrayBuffer) {
17
+ return UTF8_DECODER.decode(data);
18
+ }
19
+ throw new Error('Unsupported Type');
20
+ }
21
+ export function toBase64Url(data) {
22
+ return DatUint8Array.toBase64Url(DatUint8Array.from(data));
23
+ }
24
+ export function toHex(data, space = false) {
25
+ if (typeof data === 'string') {
26
+ throw new Error('Already String, Use ArrayBufferLike, Uint8Array, null, undefined');
27
+ }
28
+ return DatUint8Array.toHex(DatUint8Array.from(data), space);
29
+ }
30
+ //# sourceMappingURL=DatBytes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatBytes.js","sourceRoot":"","sources":["../../src/util/DatBytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAE1C,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC;AAE7D,MAAM,UAAU,OAAO,CAAC,IAAsD;IAC1E,IAAI,IAAI,EAAE,CAAC;QACP,OAAO,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,IAAI,CAAA;AACf,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAsD;IACzE,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;IACd,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,IAAI,YAAY,UAAU,IAAI,IAAI,YAAY,WAAW,IAAI,IAAI,YAAY,iBAAiB,EAAE,CAAC;QACxG,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAsD;IAC9E,OAAO,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAsD,EAAE,QAAiB,KAAK;IAChG,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;AAC/D,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function parse(no: number | string): number;
2
+ export declare function isBetween(no: number, min?: number | undefined, max?: number | undefined): boolean;
3
+ //# sourceMappingURL=DatInteger.d.ts.map
@@ -0,0 +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,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,GAAC,SAAqB,EAAE,GAAG,GAAE,MAAM,GAAC,SAAqB,GAAG,OAAO,CAWnH"}
@@ -0,0 +1,19 @@
1
+ export function parse(no) {
2
+ if (typeof no === 'string') {
3
+ no = no ? Number(no) : Number.NaN;
4
+ }
5
+ return Number.isSafeInteger(no) ? no : Number.NaN;
6
+ }
7
+ export function isBetween(no, min = undefined, max = undefined) {
8
+ if (!Number.isSafeInteger(no)) {
9
+ return false;
10
+ }
11
+ if (typeof min == 'number' && !(no >= min)) {
12
+ return false;
13
+ }
14
+ if (typeof max == 'number' && !(no <= max)) {
15
+ return false;
16
+ }
17
+ return true;
18
+ }
19
+ //# sourceMappingURL=DatInteger.js.map
@@ -0,0 +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,SAAS,CAAC,EAAU,EAAE,MAAwB,SAAS,EAAE,MAAwB,SAAS;IACtG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,GAAG,IAAI,QAAQ,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,GAAG,IAAI,QAAQ,IAAI,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare function concat(arr1: ArrayBufferLike | Uint8Array, arr2: ArrayBufferLike | Uint8Array): Uint8Array<ArrayBuffer>;
2
+ export declare function from(data: ArrayBufferLike | Uint8Array | string | null | undefined): Uint8Array<ArrayBuffer>;
3
+ export declare function fromHex(data: ArrayBufferLike | Uint8Array | string | null | undefined, ignoreSpace?: boolean): Uint8Array<ArrayBuffer>;
4
+ export declare function fromBase64(data: ArrayBufferLike | Uint8Array | string | null | undefined): Uint8Array<ArrayBuffer>;
5
+ export declare function fromBase64Url(data: ArrayBufferLike | Uint8Array | string | null | undefined): Uint8Array<ArrayBuffer>;
6
+ export declare function toBase64Url(data: Uint8Array): string;
7
+ export declare function toHex(data: Uint8Array, space?: boolean): string;
8
+ //# sourceMappingURL=DatUint8Array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatUint8Array.d.ts","sourceRoot":"","sources":["../../src/util/DatUint8Array.ts"],"names":[],"mappings":"AAOA,wBAAgB,MAAM,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,EAAE,IAAI,EAAE,eAAe,GAAC,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,CAOlH;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,CAiBpG;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,EAAE,WAAW,GAAE,OAAe,GAAG,UAAU,CAAC,WAAW,CAAC,CAKrI;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,CAQ1G;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAC,UAAU,GAAC,MAAM,GAAC,IAAI,GAAC,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,CAQ7G;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEpD;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,GAAE,OAAe,GAAG,MAAM,CAOtE"}
@@ -0,0 +1,73 @@
1
+ import { DatBytes, DatArrayBufferLike } from "../index.js";
2
+ const UTF8_ENCODER = new TextEncoder();
3
+ function removeSpace(data) {
4
+ return data.replace(/\s+/g, '');
5
+ }
6
+ export function concat(arr1, arr2) {
7
+ const a1 = from(arr1);
8
+ const a2 = from(arr2);
9
+ const result = new Uint8Array(a1.length + a2.length);
10
+ result.set(a1, 0);
11
+ result.set(a2, a1.length);
12
+ return result;
13
+ }
14
+ export function from(data) {
15
+ if (data instanceof Uint8Array) {
16
+ if (data.buffer instanceof ArrayBuffer) {
17
+ return data;
18
+ }
19
+ else if (data.buffer instanceof SharedArrayBuffer) {
20
+ return from(DatArrayBufferLike.toArrayBuffer(data.buffer));
21
+ }
22
+ }
23
+ else if (DatBytes.isEmpty(data)) {
24
+ return new Uint8Array(0);
25
+ }
26
+ else if (typeof data === 'string') {
27
+ return UTF8_ENCODER.encode(data);
28
+ }
29
+ else if (data instanceof ArrayBuffer) {
30
+ return new Uint8Array(data, 0, data.byteLength);
31
+ }
32
+ else if (data instanceof SharedArrayBuffer) {
33
+ return from(DatArrayBufferLike.toArrayBuffer(data));
34
+ }
35
+ throw new Error('Unsupported Type');
36
+ }
37
+ export function fromHex(data, ignoreSpace = false) {
38
+ if (typeof data === 'string') {
39
+ return Uint8Array.fromHex(ignoreSpace ? removeSpace(data) : data);
40
+ }
41
+ return from(data);
42
+ }
43
+ export function fromBase64(data) {
44
+ if (typeof data === 'string') {
45
+ return Uint8Array.fromBase64(data, {
46
+ "alphabet": "base64",
47
+ "lastChunkHandling": "loose"
48
+ });
49
+ }
50
+ return from(data);
51
+ }
52
+ export function fromBase64Url(data) {
53
+ if (typeof data === 'string') {
54
+ return Uint8Array.fromBase64(data, {
55
+ "alphabet": "base64url",
56
+ "lastChunkHandling": "loose"
57
+ });
58
+ }
59
+ return from(data);
60
+ }
61
+ export function toBase64Url(data) {
62
+ return data.toBase64({ "alphabet": "base64url", omitPadding: true });
63
+ }
64
+ export function toHex(data, space = false) {
65
+ const hex = data.toHex();
66
+ if (space) {
67
+ return (hex.match(/.{2}/g) || []).join(' ');
68
+ }
69
+ else {
70
+ return hex;
71
+ }
72
+ }
73
+ //# sourceMappingURL=DatUint8Array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatUint8Array.js","sourceRoot":"","sources":["../../src/util/DatUint8Array.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC3D,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC;AAEvC,SAAS,WAAW,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAgC,EAAE,IAAgC;IACrF,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAClB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAsD;IACvE,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,YAAY,WAAW,EAAE,CAAC;YACrC,OAAO,IAA+B,CAAC;QAC3C,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,YAAY,iBAAiB,EAAE,CAAC;YAClD,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;SAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QACrC,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;SAAM,IAAI,IAAI,YAAY,iBAAiB,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,IAAsD,EAAE,cAAuB,KAAK;IACxG,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,CAAA;IACpE,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAsD;IAC7E,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE;YAC/B,UAAU,EAAE,QAAQ;YACpB,mBAAmB,EAAE,OAAO;SAC/B,CAAC,CAAA;IACN,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAsD;IAChF,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,EAAE;YAC/B,UAAU,EAAE,WAAW;YACvB,mBAAmB,EAAE,OAAO;SAC/B,CAAC,CAAA;IACN,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAgB;IACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAC,CAAC,CAAA;AACtE,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,IAAgB,EAAE,QAAiB,KAAK;IAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IACzB,IAAI,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACJ,OAAO,GAAG,CAAC;IACf,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,16 @@
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
@@ -0,0 +1 @@
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "saro-dat",
3
- "version": "1.1.2",
3
+ "version": "2.0.0",
4
4
  "description": "Distributed Access Token",
5
5
  "keywords": [
6
6
  "dat",