glow.ts 1.0.2 → 1.1.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 (121) hide show
  1. package/README.md +6 -21
  2. package/dist/glow.cjs.js +4 -0
  3. package/dist/glow.cjs.js.map +1 -0
  4. package/dist/glow.es.js +993 -0
  5. package/dist/glow.es.js.map +1 -0
  6. package/dist/index.d.ts +544 -0
  7. package/package.json +34 -26
  8. package/dist/cjs2/config.js +0 -18
  9. package/dist/cjs2/config.js.map +0 -1
  10. package/dist/cjs2/crypto-storage/crypto-storage.js +0 -118
  11. package/dist/cjs2/crypto-storage/crypto-storage.js.map +0 -1
  12. package/dist/cjs2/crypto-storage/in-memory-storage.js +0 -36
  13. package/dist/cjs2/crypto-storage/in-memory-storage.js.map +0 -1
  14. package/dist/cjs2/crypto-storage/local-storage.driver.js +0 -36
  15. package/dist/cjs2/crypto-storage/local-storage.driver.js.map +0 -1
  16. package/dist/cjs2/crypto-storage/storage-driver.interface.js +0 -3
  17. package/dist/cjs2/crypto-storage/storage-driver.interface.js.map +0 -1
  18. package/dist/cjs2/index.js +0 -28
  19. package/dist/cjs2/index.js.map +0 -1
  20. package/dist/cjs2/keyring/keyring.js +0 -151
  21. package/dist/cjs2/keyring/keyring.js.map +0 -1
  22. package/dist/cjs2/keys/keys.js +0 -40
  23. package/dist/cjs2/keys/keys.js.map +0 -1
  24. package/dist/cjs2/mailbox/mailbox.js +0 -352
  25. package/dist/cjs2/mailbox/mailbox.js.map +0 -1
  26. package/dist/cjs2/nacl/encryption.helper.js +0 -101
  27. package/dist/cjs2/nacl/encryption.helper.js.map +0 -1
  28. package/dist/cjs2/nacl/js-nacl-driver.js +0 -110
  29. package/dist/cjs2/nacl/js-nacl-driver.js.map +0 -1
  30. package/dist/cjs2/nacl/keypair.interface.js +0 -3
  31. package/dist/cjs2/nacl/keypair.interface.js.map +0 -1
  32. package/dist/cjs2/nacl/nacl-driver.interface.js +0 -3
  33. package/dist/cjs2/nacl/nacl-driver.interface.js.map +0 -1
  34. package/dist/cjs2/nacl/nacl.js +0 -29
  35. package/dist/cjs2/nacl/nacl.js.map +0 -1
  36. package/dist/cjs2/relay/network-error.js +0 -12
  37. package/dist/cjs2/relay/network-error.js.map +0 -1
  38. package/dist/cjs2/relay/relay-factory.js +0 -22
  39. package/dist/cjs2/relay/relay-factory.js.map +0 -1
  40. package/dist/cjs2/relay/relay.js +0 -300
  41. package/dist/cjs2/relay/relay.js.map +0 -1
  42. package/dist/cjs2/utils/utils.js +0 -39
  43. package/dist/cjs2/utils/utils.js.map +0 -1
  44. package/dist/cjs2/zax.interface.js +0 -46
  45. package/dist/cjs2/zax.interface.js.map +0 -1
  46. package/dist/esm/config.js +0 -15
  47. package/dist/esm/config.js.map +0 -1
  48. package/dist/esm/crypto-storage/crypto-storage.js +0 -114
  49. package/dist/esm/crypto-storage/crypto-storage.js.map +0 -1
  50. package/dist/esm/crypto-storage/in-memory-storage.js +0 -32
  51. package/dist/esm/crypto-storage/in-memory-storage.js.map +0 -1
  52. package/dist/esm/crypto-storage/local-storage.driver.js +0 -32
  53. package/dist/esm/crypto-storage/local-storage.driver.js.map +0 -1
  54. package/dist/esm/crypto-storage/storage-driver.interface.js +0 -2
  55. package/dist/esm/crypto-storage/storage-driver.interface.js.map +0 -1
  56. package/dist/esm/index.js +0 -14
  57. package/dist/esm/index.js.map +0 -1
  58. package/dist/esm/keyring/keyring.js +0 -147
  59. package/dist/esm/keyring/keyring.js.map +0 -1
  60. package/dist/esm/keys/keys.js +0 -36
  61. package/dist/esm/keys/keys.js.map +0 -1
  62. package/dist/esm/mailbox/mailbox.js +0 -348
  63. package/dist/esm/mailbox/mailbox.js.map +0 -1
  64. package/dist/esm/nacl/encryption.helper.js +0 -97
  65. package/dist/esm/nacl/encryption.helper.js.map +0 -1
  66. package/dist/esm/nacl/js-nacl-driver.js +0 -106
  67. package/dist/esm/nacl/js-nacl-driver.js.map +0 -1
  68. package/dist/esm/nacl/keypair.interface.js +0 -2
  69. package/dist/esm/nacl/keypair.interface.js.map +0 -1
  70. package/dist/esm/nacl/nacl-driver.interface.js +0 -2
  71. package/dist/esm/nacl/nacl-driver.interface.js.map +0 -1
  72. package/dist/esm/nacl/nacl.js +0 -25
  73. package/dist/esm/nacl/nacl.js.map +0 -1
  74. package/dist/esm/relay/network-error.js +0 -8
  75. package/dist/esm/relay/network-error.js.map +0 -1
  76. package/dist/esm/relay/relay-factory.js +0 -18
  77. package/dist/esm/relay/relay-factory.js.map +0 -1
  78. package/dist/esm/relay/relay.js +0 -293
  79. package/dist/esm/relay/relay.js.map +0 -1
  80. package/dist/esm/utils/utils.js +0 -35
  81. package/dist/esm/utils/utils.js.map +0 -1
  82. package/dist/esm/zax.interface.js +0 -43
  83. package/dist/esm/zax.interface.js.map +0 -1
  84. package/dist/types/config.d.ts +0 -10
  85. package/dist/types/config.d.ts.map +0 -1
  86. package/dist/types/crypto-storage/crypto-storage.d.ts +0 -20
  87. package/dist/types/crypto-storage/crypto-storage.d.ts.map +0 -1
  88. package/dist/types/crypto-storage/in-memory-storage.d.ts +0 -17
  89. package/dist/types/crypto-storage/in-memory-storage.d.ts.map +0 -1
  90. package/dist/types/crypto-storage/local-storage.driver.d.ts +0 -15
  91. package/dist/types/crypto-storage/local-storage.driver.d.ts.map +0 -1
  92. package/dist/types/crypto-storage/storage-driver.interface.d.ts +0 -11
  93. package/dist/types/crypto-storage/storage-driver.interface.d.ts.map +0 -1
  94. package/dist/types/index.d.ts +0 -16
  95. package/dist/types/index.d.ts.map +0 -1
  96. package/dist/types/keyring/keyring.d.ts +0 -43
  97. package/dist/types/keyring/keyring.d.ts.map +0 -1
  98. package/dist/types/keys/keys.d.ts +0 -16
  99. package/dist/types/keys/keys.d.ts.map +0 -1
  100. package/dist/types/mailbox/mailbox.d.ts +0 -148
  101. package/dist/types/mailbox/mailbox.d.ts.map +0 -1
  102. package/dist/types/nacl/encryption.helper.d.ts +0 -37
  103. package/dist/types/nacl/encryption.helper.d.ts.map +0 -1
  104. package/dist/types/nacl/js-nacl-driver.d.ts +0 -39
  105. package/dist/types/nacl/js-nacl-driver.d.ts.map +0 -1
  106. package/dist/types/nacl/keypair.interface.d.ts +0 -5
  107. package/dist/types/nacl/keypair.interface.d.ts.map +0 -1
  108. package/dist/types/nacl/nacl-driver.interface.d.ts +0 -28
  109. package/dist/types/nacl/nacl-driver.interface.d.ts.map +0 -1
  110. package/dist/types/nacl/nacl.d.ts +0 -13
  111. package/dist/types/nacl/nacl.d.ts.map +0 -1
  112. package/dist/types/relay/network-error.d.ts +0 -6
  113. package/dist/types/relay/network-error.d.ts.map +0 -1
  114. package/dist/types/relay/relay-factory.d.ts +0 -10
  115. package/dist/types/relay/relay-factory.d.ts.map +0 -1
  116. package/dist/types/relay/relay.d.ts +0 -88
  117. package/dist/types/relay/relay.d.ts.map +0 -1
  118. package/dist/types/utils/utils.d.ts +0 -9
  119. package/dist/types/utils/utils.d.ts.map +0 -1
  120. package/dist/types/zax.interface.d.ts +0 -101
  121. package/dist/types/zax.interface.d.ts.map +0 -1
@@ -1,88 +0,0 @@
1
- import { EncryptedMessage } from '../nacl/nacl-driver.interface';
2
- import { Base64 } from '../utils/utils';
3
- import { RelayCommand } from '../zax.interface';
4
- export interface RelayConnectionData {
5
- h2Signature: Uint8Array;
6
- relayPublicKey: Uint8Array;
7
- }
8
- /**
9
- * Low-level operations with Zax relay
10
- */
11
- export declare class Relay {
12
- url: string;
13
- private nacl;
14
- private difficulty;
15
- private publicKey?;
16
- private clientToken?;
17
- private sessionKeys?;
18
- private tokenExpirationTimeoutHandle?;
19
- private sessionExpirationTimeoutHandle?;
20
- constructor(url: string);
21
- get isConnected(): boolean;
22
- /**
23
- * Exchanges tokens with a relay and gets a temp session key for this relay.
24
- * Returns h₂(signature) and a relay public key
25
- */
26
- openConnection(): Promise<RelayConnectionData>;
27
- /**
28
- * Sends a client token to a relay and saves a relay token
29
- */
30
- private fetchRelayToken;
31
- /**
32
- * Completes the handshake and saves a relay pubic key
33
- */
34
- private fetchRelayPublicKey;
35
- /**
36
- * Attaches a mailbox and fetches number of messages
37
- */
38
- prove(payload: EncryptedMessage): Promise<string>;
39
- encodeMessage(message: string): Promise<EncryptedMessage>;
40
- decodeMessage(nonce: Base64, ctext: Base64): Promise<any>;
41
- /**
42
- * Executes a message/file command on a relay, parses and validates the response
43
- */
44
- runCmd(command: RelayCommand, hpk: Base64, message: EncryptedMessage, ctext?: string): Promise<string[]>;
45
- private getSignature;
46
- /**
47
- * Executes a call to a relay and return raw string response
48
- */
49
- private httpCall;
50
- /**
51
- * Parses relay response and throws an error if its format is unexpected
52
- */
53
- private parseResponse;
54
- /**
55
- * Compares the expected number of lines in response with what was actually received from a relay
56
- */
57
- private validateResponse;
58
- /**
59
- * delete token locally before it was removed on server so will reconnect without getting unauthorized error
60
- */
61
- private scheduleTokenExpiration;
62
- clearToken(): void;
63
- /**
64
- * established session is valid only for some period need to remove it after it's ttl
65
- * so relay will reconnect without receiving error from server
66
- */
67
- private scheduleSessionExpiration;
68
- clearSession(): void;
69
- /**
70
- * Continuously calculates the nonce until one requested by a relay is found
71
- */
72
- private ensureNonceDifficulty;
73
- /**
74
- * Returns `true` if the rightmost n bits of a byte are 0.
75
- * Check whether the rightmost difficulty bits of an Uint8Array are 0, where
76
- * the lowest indexes of the array represent those rightmost bits. Thus if
77
- * the difficulty is 17, then array[0] and array[1] should be 0, as should the
78
- * rightmost bit of array[2]. This is used for our difficulty settings in Zax to
79
- * reduce burden on a busy server by ensuring clients have to do some
80
- * additional work during the session handshake
81
- */
82
- private arrayZeroBits;
83
- /**
84
- * Returns `true` if the rightmost n bits of a byte are 0
85
- */
86
- private firstZeroBits;
87
- }
88
- //# sourceMappingURL=relay.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../../src/relay/relay.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAG7E,OAAO,EAAE,MAAM,EAAS,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,UAAU,CAAC;IACxB,cAAc,EAAE,UAAU,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,KAAK;IASG,GAAG,EAAE,MAAM;IAR9B,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,WAAW,CAAC,CAAO;IAC3B,OAAO,CAAC,4BAA4B,CAAC,CAAgC;IACrE,OAAO,CAAC,8BAA8B,CAAC,CAAgC;gBAEpD,GAAG,EAAE,MAAM;IAI9B,IAAI,WAAW,YAId;IAID;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAWpD;;OAEG;YACW,eAAe;IAkB7B;;OAEG;YACW,mBAAmB;IAuBjC;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAcjD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYzD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAmB/D;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAehG,YAAY;IAW1B;;OAEG;YACW,QAAQ;IAkCtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAO/B,UAAU;IASV;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IASjC,YAAY;IAWZ;;OAEG;YACW,qBAAqB;IAWnC;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAoBrB;;OAEG;IACH,OAAO,CAAC,aAAa;CAGtB"}
@@ -1,9 +0,0 @@
1
- export declare type Base64 = string;
2
- export declare class Utils {
3
- static toBase64(input: Uint8Array): Base64;
4
- static fromBase64(input: Base64): Uint8Array;
5
- static encode_latin1(data: string): Uint8Array;
6
- static decode_latin1(data: Uint8Array): string;
7
- static toObject(pairs: IterableIterator<[string, any]>): {};
8
- }
9
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,oBAAY,MAAM,GAAG,MAAM,CAAC;AAE5B,qBAAa,KAAK;IAChB,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAO1C,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IAO5C,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAU9C,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAQ9C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAMvD"}
@@ -1,101 +0,0 @@
1
- import { Base64 } from './utils/utils';
2
- /**
3
- * Interfaces of Zax relay command requests and responses.
4
- * See https://github.com/vault12/zax for details.
5
- *
6
- * Full technical specification:
7
- * https://s3-us-west-1.amazonaws.com/vault12/crypto_relay.pdf
8
- */
9
- export declare enum RelayCommand {
10
- count = "count",
11
- upload = "upload",
12
- download = "download",
13
- messageStatus = "messageStatus",
14
- delete = "delete",
15
- startFileUpload = "startFileUpload",
16
- uploadFileChunk = "uploadFileChunk",
17
- downloadFileChunk = "downloadFileChunk",
18
- fileStatus = "fileStatus",
19
- deleteFile = "deleteFile"
20
- }
21
- /**
22
- * Status of a previously sent message equals redis TTL.
23
- * See https://redis.io/commands/ttl.
24
- * -2 : missing key
25
- * -1 : key never expires
26
- * 0+ : key time to live in seconds
27
- */
28
- export declare enum MessageStatusResponse {
29
- MissingKey = -2,
30
- NeverExpires = -1
31
- }
32
- export declare enum ZaxMessageKind {
33
- message = "message",
34
- file = "file",
35
- plain = "plain"
36
- }
37
- /**
38
- * Format of raw messages provided by `download` Zax command
39
- */
40
- export interface ZaxRawMessage {
41
- data: string;
42
- time: number;
43
- from: Base64;
44
- nonce: Base64;
45
- kind: ZaxMessageKind.message | ZaxMessageKind.file;
46
- }
47
- export interface ZaxTextMessage {
48
- /**
49
- * Decoded object after JSON.parse
50
- */
51
- data: string;
52
- time: number;
53
- senderTag: string;
54
- nonce: Base64;
55
- kind: ZaxMessageKind.message;
56
- }
57
- export interface ZaxFileMessage {
58
- data: FileUploadMetadata;
59
- time: number;
60
- senderTag: string;
61
- uploadID: string;
62
- nonce: Base64;
63
- kind: ZaxMessageKind.file;
64
- }
65
- export interface ZaxPlainMessage {
66
- data: string;
67
- time: number;
68
- from: Base64;
69
- nonce: Base64;
70
- senderTag: undefined;
71
- kind: ZaxMessageKind.plain;
72
- }
73
- export declare type ZaxParsedMessage = ZaxPlainMessage | ZaxFileMessage | ZaxTextMessage;
74
- export interface StartFileUploadResponse {
75
- uploadID: string;
76
- max_chunk_size: number;
77
- storage_token: string;
78
- skey: Uint8Array;
79
- }
80
- export interface UploadFileChunkResponse {
81
- status: 'OK' | 'NOT_FOUND';
82
- }
83
- export interface FileStatusResponse {
84
- status: 'COMPLETE' | 'UPLOADING' | 'START' | 'NOT_FOUND';
85
- total_chunks: number;
86
- file_size: number;
87
- bytes_stored: number;
88
- }
89
- export interface DeleteFileResponse {
90
- status: 'OK' | 'NOT_FOUND';
91
- }
92
- export interface FileUploadMetadata {
93
- name: string;
94
- orig_size: number;
95
- md5?: string;
96
- created?: number;
97
- modified?: number;
98
- attrs?: string;
99
- skey?: Base64;
100
- }
101
- //# sourceMappingURL=zax.interface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zax.interface.d.ts","sourceRoot":"","sources":["../../src/zax.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC;;;;;;GAMG;AAGH,oBAAY,YAAY;IAEtB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,aAAa,kBAAkB;IAC/B,MAAM,WAAW;IAEjB,eAAe,oBAAoB;IACnC,eAAe,oBAAoB;IACnC,iBAAiB,sBAAsB;IACvC,UAAU,eAAe;IACzB,UAAU,eAAe;CAC1B;AAED;;;;;;GAMG;AACH,oBAAY,qBAAqB;IAC/B,UAAU,KAAK;IACf,YAAY,KAAK;CAClB;AAID,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,cAAc,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC;CACpD;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;CAC5B;AAED,oBAAY,gBAAgB,GAAG,eAAe,GAAG,cAAc,GAAG,cAAc,CAAC;AAKjF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,IAAI,GAAG,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,GAAG,WAAW,CAAC;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,IAAI,GAAG,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}