@fluixi/storage 0.1.0-alpha.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 (134) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +30 -0
  3. package/dist/adapters/memory.cjs +46 -0
  4. package/dist/adapters/memory.d.ts +8 -0
  5. package/dist/adapters/memory.d.ts.map +1 -0
  6. package/dist/adapters/memory.js +26 -0
  7. package/dist/adapters/memory.mjs +25 -0
  8. package/dist/browser/document-cookie.cjs +101 -0
  9. package/dist/browser/document-cookie.d.ts +14 -0
  10. package/dist/browser/document-cookie.d.ts.map +1 -0
  11. package/dist/browser/document-cookie.js +53 -0
  12. package/dist/browser/document-cookie.mjs +80 -0
  13. package/dist/browser/index.cjs +209 -0
  14. package/dist/browser/index.d.ts +4 -0
  15. package/dist/browser/index.d.ts.map +1 -0
  16. package/dist/browser/index.js +3 -0
  17. package/dist/browser/index.mjs +187 -0
  18. package/dist/browser/web-storage.cjs +150 -0
  19. package/dist/browser/web-storage.d.ts +6 -0
  20. package/dist/browser/web-storage.d.ts.map +1 -0
  21. package/dist/browser/web-storage.js +105 -0
  22. package/dist/browser/web-storage.mjs +127 -0
  23. package/dist/core/async-storage.cjs +583 -0
  24. package/dist/core/async-storage.d.ts +17 -0
  25. package/dist/core/async-storage.d.ts.map +1 -0
  26. package/dist/core/async-storage.js +275 -0
  27. package/dist/core/async-storage.mjs +560 -0
  28. package/dist/core/bus.cjs +52 -0
  29. package/dist/core/bus.d.ts +19 -0
  30. package/dist/core/bus.d.ts.map +1 -0
  31. package/dist/core/bus.js +31 -0
  32. package/dist/core/bus.mjs +31 -0
  33. package/dist/core/envelope.cjs +119 -0
  34. package/dist/core/envelope.d.ts +38 -0
  35. package/dist/core/envelope.d.ts.map +1 -0
  36. package/dist/core/envelope.js +83 -0
  37. package/dist/core/envelope.mjs +96 -0
  38. package/dist/core/errors.cjs +115 -0
  39. package/dist/core/errors.d.ts +109 -0
  40. package/dist/core/errors.d.ts.map +1 -0
  41. package/dist/core/errors.js +99 -0
  42. package/dist/core/errors.mjs +94 -0
  43. package/dist/core/storage.cjs +782 -0
  44. package/dist/core/storage.d.ts +63 -0
  45. package/dist/core/storage.d.ts.map +1 -0
  46. package/dist/core/storage.js +260 -0
  47. package/dist/core/storage.mjs +759 -0
  48. package/dist/core/types.cjs +18 -0
  49. package/dist/core/types.d.ts +239 -0
  50. package/dist/core/types.d.ts.map +1 -0
  51. package/dist/core/types.js +1 -0
  52. package/dist/core/types.mjs +0 -0
  53. package/dist/encryption/base64.cjs +38 -0
  54. package/dist/encryption/base64.d.ts +4 -0
  55. package/dist/encryption/base64.d.ts.map +1 -0
  56. package/dist/encryption/base64.js +16 -0
  57. package/dist/encryption/base64.mjs +17 -0
  58. package/dist/encryption/keys.cjs +77 -0
  59. package/dist/encryption/keys.d.ts +14 -0
  60. package/dist/encryption/keys.d.ts.map +1 -0
  61. package/dist/encryption/keys.js +28 -0
  62. package/dist/encryption/keys.mjs +54 -0
  63. package/dist/encryption/seal.cjs +154 -0
  64. package/dist/encryption/seal.d.ts +24 -0
  65. package/dist/encryption/seal.d.ts.map +1 -0
  66. package/dist/encryption/seal.js +83 -0
  67. package/dist/encryption/seal.mjs +131 -0
  68. package/dist/encryption/types.cjs +18 -0
  69. package/dist/encryption/types.d.ts +50 -0
  70. package/dist/encryption/types.d.ts.map +1 -0
  71. package/dist/encryption/types.js +1 -0
  72. package/dist/encryption/types.mjs +0 -0
  73. package/dist/encryption/web-crypto.cjs +81 -0
  74. package/dist/encryption/web-crypto.d.ts +9 -0
  75. package/dist/encryption/web-crypto.d.ts.map +1 -0
  76. package/dist/encryption/web-crypto.js +45 -0
  77. package/dist/encryption/web-crypto.mjs +58 -0
  78. package/dist/index.cjs +870 -0
  79. package/dist/index.d.ts +16 -0
  80. package/dist/index.d.ts.map +1 -0
  81. package/dist/index.js +13 -0
  82. package/dist/index.mjs +848 -0
  83. package/dist/serialization/json.cjs +83 -0
  84. package/dist/serialization/json.d.ts +3 -0
  85. package/dist/serialization/json.d.ts.map +1 -0
  86. package/dist/serialization/json.js +51 -0
  87. package/dist/serialization/json.mjs +60 -0
  88. package/dist/serialization/serializer.cjs +28 -0
  89. package/dist/serialization/serializer.d.ts +4 -0
  90. package/dist/serialization/serializer.d.ts.map +1 -0
  91. package/dist/serialization/serializer.js +4 -0
  92. package/dist/serialization/serializer.mjs +7 -0
  93. package/dist/server/contracts.cjs +36 -0
  94. package/dist/server/contracts.d.ts +27 -0
  95. package/dist/server/contracts.d.ts.map +1 -0
  96. package/dist/server/contracts.js +16 -0
  97. package/dist/server/contracts.mjs +15 -0
  98. package/dist/server/cookie.cjs +126 -0
  99. package/dist/server/cookie.d.ts +21 -0
  100. package/dist/server/cookie.d.ts.map +1 -0
  101. package/dist/server/cookie.js +71 -0
  102. package/dist/server/cookie.mjs +105 -0
  103. package/dist/server/index.cjs +155 -0
  104. package/dist/server/index.d.ts +5 -0
  105. package/dist/server/index.d.ts.map +1 -0
  106. package/dist/server/index.js +4 -0
  107. package/dist/server/index.mjs +133 -0
  108. package/dist/server/request.cjs +46 -0
  109. package/dist/server/request.d.ts +7 -0
  110. package/dist/server/request.d.ts.map +1 -0
  111. package/dist/server/request.js +25 -0
  112. package/dist/server/request.mjs +25 -0
  113. package/dist/tsconfig.lib.tsbuildinfo +1 -0
  114. package/dist/utils/cookie-names.cjs +38 -0
  115. package/dist/utils/cookie-names.d.ts +10 -0
  116. package/dist/utils/cookie-names.d.ts.map +1 -0
  117. package/dist/utils/cookie-names.js +15 -0
  118. package/dist/utils/cookie-names.mjs +17 -0
  119. package/dist/utils/copy.cjs +38 -0
  120. package/dist/utils/copy.d.ts +17 -0
  121. package/dist/utils/copy.d.ts.map +1 -0
  122. package/dist/utils/copy.js +15 -0
  123. package/dist/utils/copy.mjs +17 -0
  124. package/dist/utils/environment.cjs +28 -0
  125. package/dist/utils/environment.d.ts +3 -0
  126. package/dist/utils/environment.d.ts.map +1 -0
  127. package/dist/utils/environment.js +4 -0
  128. package/dist/utils/environment.mjs +7 -0
  129. package/dist/utils/keys.cjs +33 -0
  130. package/dist/utils/keys.d.ts +5 -0
  131. package/dist/utils/keys.d.ts.map +1 -0
  132. package/dist/utils/keys.js +10 -0
  133. package/dist/utils/keys.mjs +12 -0
  134. package/package.json +61 -0
@@ -0,0 +1,99 @@
1
+ /** Every error the storage throws: one base, a stable `code`, the key when there is one. */
2
+ export class StorageError extends Error {
3
+ code;
4
+ key;
5
+ /** What went wrong underneath: the browser's DOMException, a JSON SyntaxError. */
6
+ cause;
7
+ constructor(code, message, options = {}) {
8
+ super(message);
9
+ this.name = new.target.name;
10
+ this.code = code;
11
+ this.key = options.key;
12
+ if (options.cause !== undefined)
13
+ this.cause = options.cause;
14
+ }
15
+ }
16
+ /** A value the serializer refuses: a function, a class instance, a cycle. */
17
+ export class StorageSerializationError extends StorageError {
18
+ constructor(message, options = {}) {
19
+ super('serialization', message, options);
20
+ }
21
+ }
22
+ /** Stored text that does not deserialize. */
23
+ export class StorageDeserializationError extends StorageError {
24
+ constructor(message, options = {}) {
25
+ super('deserialization', message, options);
26
+ }
27
+ }
28
+ /** The backend does not exist here: localStorage on a server, IndexedDB in a worker without it. */
29
+ export class StorageUnavailableError extends StorageError {
30
+ constructor(message, options = {}) {
31
+ super('unavailable', message, options);
32
+ }
33
+ }
34
+ /** The backend is full. */
35
+ export class StorageQuotaError extends StorageError {
36
+ constructor(message, options = {}) {
37
+ super('quota', message, options);
38
+ }
39
+ }
40
+ /** The backend refused access: storage blocked by the browser's privacy settings. */
41
+ export class StorageSecurityError extends StorageError {
42
+ constructor(message, options = {}) {
43
+ super('security', message, options);
44
+ }
45
+ }
46
+ /** Anything else an adapter failed with. */
47
+ export class StorageAdapterError extends StorageError {
48
+ constructor(message, options = {}) {
49
+ super('adapter', message, options);
50
+ }
51
+ }
52
+ /** Base of every encryption failure, so one `instanceof` catches them all. */
53
+ export class StorageEncryptionError extends StorageError {
54
+ }
55
+ /** No key provider is configured, or it gave no usable AES-256-GCM key. */
56
+ export class StorageEncryptionKeyError extends StorageEncryptionError {
57
+ constructor(message, options = {}) {
58
+ super('encryption-key', message, options);
59
+ }
60
+ }
61
+ /** The encryption fields of a stored entry are missing or of the wrong type. */
62
+ export class StorageEncryptionMetadataError extends StorageEncryptionError {
63
+ constructor(message, options = {}) {
64
+ super('encryption-metadata', message, options);
65
+ }
66
+ }
67
+ /** The entry was encrypted with a format version this release does not know. */
68
+ export class StorageEncryptionVersionError extends StorageEncryptionError {
69
+ constructor(message, options = {}) {
70
+ super('encryption-version', message, options);
71
+ }
72
+ }
73
+ /** The entry names an algorithm the configured provider does not implement. */
74
+ export class StorageEncryptionAlgorithmError extends StorageEncryptionError {
75
+ constructor(message, options = {}) {
76
+ super('encryption-algorithm', message, options);
77
+ }
78
+ }
79
+ /** Authentication failed: wrong key, or the ciphertext or its metadata was changed. */
80
+ export class StorageDecryptionError extends StorageEncryptionError {
81
+ constructor(message, options = {}) {
82
+ super('decryption', message, options);
83
+ }
84
+ }
85
+ /** The IV, ciphertext or tag is not valid base64 or has the wrong length. */
86
+ export class StorageEncryptedPayloadError extends StorageEncryptionError {
87
+ constructor(message, options = {}) {
88
+ super('encryption-payload', message, options);
89
+ }
90
+ }
91
+ /**
92
+ * Encryption cannot run here: no Web Crypto in this runtime, or an encrypted value read through
93
+ * a synchronous storage, which has no way to decrypt it.
94
+ */
95
+ export class StorageEncryptionUnavailableError extends StorageEncryptionError {
96
+ constructor(message, options = {}) {
97
+ super('encryption-unavailable', message, options);
98
+ }
99
+ }
@@ -0,0 +1,94 @@
1
+ // src/core/errors.ts
2
+ var StorageError = class extends Error {
3
+ constructor(code, message, options = {}) {
4
+ super(message);
5
+ this.name = new.target.name;
6
+ this.code = code;
7
+ this.key = options.key;
8
+ if (options.cause !== void 0) this.cause = options.cause;
9
+ }
10
+ };
11
+ var StorageSerializationError = class extends StorageError {
12
+ constructor(message, options = {}) {
13
+ super("serialization", message, options);
14
+ }
15
+ };
16
+ var StorageDeserializationError = class extends StorageError {
17
+ constructor(message, options = {}) {
18
+ super("deserialization", message, options);
19
+ }
20
+ };
21
+ var StorageUnavailableError = class extends StorageError {
22
+ constructor(message, options = {}) {
23
+ super("unavailable", message, options);
24
+ }
25
+ };
26
+ var StorageQuotaError = class extends StorageError {
27
+ constructor(message, options = {}) {
28
+ super("quota", message, options);
29
+ }
30
+ };
31
+ var StorageSecurityError = class extends StorageError {
32
+ constructor(message, options = {}) {
33
+ super("security", message, options);
34
+ }
35
+ };
36
+ var StorageAdapterError = class extends StorageError {
37
+ constructor(message, options = {}) {
38
+ super("adapter", message, options);
39
+ }
40
+ };
41
+ var StorageEncryptionError = class extends StorageError {
42
+ };
43
+ var StorageEncryptionKeyError = class extends StorageEncryptionError {
44
+ constructor(message, options = {}) {
45
+ super("encryption-key", message, options);
46
+ }
47
+ };
48
+ var StorageEncryptionMetadataError = class extends StorageEncryptionError {
49
+ constructor(message, options = {}) {
50
+ super("encryption-metadata", message, options);
51
+ }
52
+ };
53
+ var StorageEncryptionVersionError = class extends StorageEncryptionError {
54
+ constructor(message, options = {}) {
55
+ super("encryption-version", message, options);
56
+ }
57
+ };
58
+ var StorageEncryptionAlgorithmError = class extends StorageEncryptionError {
59
+ constructor(message, options = {}) {
60
+ super("encryption-algorithm", message, options);
61
+ }
62
+ };
63
+ var StorageDecryptionError = class extends StorageEncryptionError {
64
+ constructor(message, options = {}) {
65
+ super("decryption", message, options);
66
+ }
67
+ };
68
+ var StorageEncryptedPayloadError = class extends StorageEncryptionError {
69
+ constructor(message, options = {}) {
70
+ super("encryption-payload", message, options);
71
+ }
72
+ };
73
+ var StorageEncryptionUnavailableError = class extends StorageEncryptionError {
74
+ constructor(message, options = {}) {
75
+ super("encryption-unavailable", message, options);
76
+ }
77
+ };
78
+ export {
79
+ StorageAdapterError,
80
+ StorageDecryptionError,
81
+ StorageDeserializationError,
82
+ StorageEncryptedPayloadError,
83
+ StorageEncryptionAlgorithmError,
84
+ StorageEncryptionError,
85
+ StorageEncryptionKeyError,
86
+ StorageEncryptionMetadataError,
87
+ StorageEncryptionUnavailableError,
88
+ StorageEncryptionVersionError,
89
+ StorageError,
90
+ StorageQuotaError,
91
+ StorageSecurityError,
92
+ StorageSerializationError,
93
+ StorageUnavailableError
94
+ };