@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.
- package/LICENSE +21 -0
- package/README.md +30 -0
- package/dist/adapters/memory.cjs +46 -0
- package/dist/adapters/memory.d.ts +8 -0
- package/dist/adapters/memory.d.ts.map +1 -0
- package/dist/adapters/memory.js +26 -0
- package/dist/adapters/memory.mjs +25 -0
- package/dist/browser/document-cookie.cjs +101 -0
- package/dist/browser/document-cookie.d.ts +14 -0
- package/dist/browser/document-cookie.d.ts.map +1 -0
- package/dist/browser/document-cookie.js +53 -0
- package/dist/browser/document-cookie.mjs +80 -0
- package/dist/browser/index.cjs +209 -0
- package/dist/browser/index.d.ts +4 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +3 -0
- package/dist/browser/index.mjs +187 -0
- package/dist/browser/web-storage.cjs +150 -0
- package/dist/browser/web-storage.d.ts +6 -0
- package/dist/browser/web-storage.d.ts.map +1 -0
- package/dist/browser/web-storage.js +105 -0
- package/dist/browser/web-storage.mjs +127 -0
- package/dist/core/async-storage.cjs +583 -0
- package/dist/core/async-storage.d.ts +17 -0
- package/dist/core/async-storage.d.ts.map +1 -0
- package/dist/core/async-storage.js +275 -0
- package/dist/core/async-storage.mjs +560 -0
- package/dist/core/bus.cjs +52 -0
- package/dist/core/bus.d.ts +19 -0
- package/dist/core/bus.d.ts.map +1 -0
- package/dist/core/bus.js +31 -0
- package/dist/core/bus.mjs +31 -0
- package/dist/core/envelope.cjs +119 -0
- package/dist/core/envelope.d.ts +38 -0
- package/dist/core/envelope.d.ts.map +1 -0
- package/dist/core/envelope.js +83 -0
- package/dist/core/envelope.mjs +96 -0
- package/dist/core/errors.cjs +115 -0
- package/dist/core/errors.d.ts +109 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +99 -0
- package/dist/core/errors.mjs +94 -0
- package/dist/core/storage.cjs +782 -0
- package/dist/core/storage.d.ts +63 -0
- package/dist/core/storage.d.ts.map +1 -0
- package/dist/core/storage.js +260 -0
- package/dist/core/storage.mjs +759 -0
- package/dist/core/types.cjs +18 -0
- package/dist/core/types.d.ts +239 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +1 -0
- package/dist/core/types.mjs +0 -0
- package/dist/encryption/base64.cjs +38 -0
- package/dist/encryption/base64.d.ts +4 -0
- package/dist/encryption/base64.d.ts.map +1 -0
- package/dist/encryption/base64.js +16 -0
- package/dist/encryption/base64.mjs +17 -0
- package/dist/encryption/keys.cjs +77 -0
- package/dist/encryption/keys.d.ts +14 -0
- package/dist/encryption/keys.d.ts.map +1 -0
- package/dist/encryption/keys.js +28 -0
- package/dist/encryption/keys.mjs +54 -0
- package/dist/encryption/seal.cjs +154 -0
- package/dist/encryption/seal.d.ts +24 -0
- package/dist/encryption/seal.d.ts.map +1 -0
- package/dist/encryption/seal.js +83 -0
- package/dist/encryption/seal.mjs +131 -0
- package/dist/encryption/types.cjs +18 -0
- package/dist/encryption/types.d.ts +50 -0
- package/dist/encryption/types.d.ts.map +1 -0
- package/dist/encryption/types.js +1 -0
- package/dist/encryption/types.mjs +0 -0
- package/dist/encryption/web-crypto.cjs +81 -0
- package/dist/encryption/web-crypto.d.ts +9 -0
- package/dist/encryption/web-crypto.d.ts.map +1 -0
- package/dist/encryption/web-crypto.js +45 -0
- package/dist/encryption/web-crypto.mjs +58 -0
- package/dist/index.cjs +870 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.mjs +848 -0
- package/dist/serialization/json.cjs +83 -0
- package/dist/serialization/json.d.ts +3 -0
- package/dist/serialization/json.d.ts.map +1 -0
- package/dist/serialization/json.js +51 -0
- package/dist/serialization/json.mjs +60 -0
- package/dist/serialization/serializer.cjs +28 -0
- package/dist/serialization/serializer.d.ts +4 -0
- package/dist/serialization/serializer.d.ts.map +1 -0
- package/dist/serialization/serializer.js +4 -0
- package/dist/serialization/serializer.mjs +7 -0
- package/dist/server/contracts.cjs +36 -0
- package/dist/server/contracts.d.ts +27 -0
- package/dist/server/contracts.d.ts.map +1 -0
- package/dist/server/contracts.js +16 -0
- package/dist/server/contracts.mjs +15 -0
- package/dist/server/cookie.cjs +126 -0
- package/dist/server/cookie.d.ts +21 -0
- package/dist/server/cookie.d.ts.map +1 -0
- package/dist/server/cookie.js +71 -0
- package/dist/server/cookie.mjs +105 -0
- package/dist/server/index.cjs +155 -0
- package/dist/server/index.d.ts +5 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +4 -0
- package/dist/server/index.mjs +133 -0
- package/dist/server/request.cjs +46 -0
- package/dist/server/request.d.ts +7 -0
- package/dist/server/request.d.ts.map +1 -0
- package/dist/server/request.js +25 -0
- package/dist/server/request.mjs +25 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/dist/utils/cookie-names.cjs +38 -0
- package/dist/utils/cookie-names.d.ts +10 -0
- package/dist/utils/cookie-names.d.ts.map +1 -0
- package/dist/utils/cookie-names.js +15 -0
- package/dist/utils/cookie-names.mjs +17 -0
- package/dist/utils/copy.cjs +38 -0
- package/dist/utils/copy.d.ts +17 -0
- package/dist/utils/copy.d.ts.map +1 -0
- package/dist/utils/copy.js +15 -0
- package/dist/utils/copy.mjs +17 -0
- package/dist/utils/environment.cjs +28 -0
- package/dist/utils/environment.d.ts +3 -0
- package/dist/utils/environment.d.ts.map +1 -0
- package/dist/utils/environment.js +4 -0
- package/dist/utils/environment.mjs +7 -0
- package/dist/utils/keys.cjs +33 -0
- package/dist/utils/keys.d.ts +5 -0
- package/dist/utils/keys.d.ts.map +1 -0
- package/dist/utils/keys.js +10 -0
- package/dist/utils/keys.mjs +12 -0
- package/package.json +61 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/utils/copy.ts
|
|
21
|
+
var copy_exports = {};
|
|
22
|
+
__export(copy_exports, {
|
|
23
|
+
copyStorage: () => copyStorage
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(copy_exports);
|
|
26
|
+
var isAsync = (storage) => "encryption" in storage;
|
|
27
|
+
var pick = (snapshot, keys) => {
|
|
28
|
+
const out = snapshot;
|
|
29
|
+
if (keys) {
|
|
30
|
+
for (const key of Object.keys(out)) if (!keys.includes(key)) delete out[key];
|
|
31
|
+
}
|
|
32
|
+
return out;
|
|
33
|
+
};
|
|
34
|
+
function copyStorage(from, to, options = {}) {
|
|
35
|
+
const restore = { overwrite: options.overwrite };
|
|
36
|
+
if (!isAsync(from) && !isAsync(to)) return to.restore(pick(from.snapshot(), options.keys), restore);
|
|
37
|
+
return (async () => to.restore(pick(await from.snapshot(), options.keys), restore))();
|
|
38
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AsyncTypedStorage, StorageSchema, TypedStorage } from '../core/types.js';
|
|
2
|
+
type CopyOptions = {
|
|
3
|
+
keys?: string[];
|
|
4
|
+
overwrite?: boolean;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Copies items from one storage to another, metadata included: moving data to a new adapter,
|
|
8
|
+
* seeding a test, backing up a namespace. Existing keys in `to` are kept unless `overwrite`.
|
|
9
|
+
* Returns how many items were written; a promise when either storage is asynchronous.
|
|
10
|
+
*
|
|
11
|
+
* Encrypted items are read decrypted and written encrypted again with `to`'s key, so `to` needs
|
|
12
|
+
* encryption configured for them.
|
|
13
|
+
*/
|
|
14
|
+
export declare function copyStorage<S extends StorageSchema>(from: TypedStorage<S>, to: TypedStorage<S>, options?: CopyOptions): number;
|
|
15
|
+
export declare function copyStorage<S extends StorageSchema>(from: TypedStorage<S> | AsyncTypedStorage<S>, to: TypedStorage<S> | AsyncTypedStorage<S>, options?: CopyOptions): Promise<number>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=copy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../src/utils/copy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAmB,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAExG,KAAK,WAAW,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAU5D;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,aAAa,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;AAChI,wBAAgB,WAAW,CAAC,CAAC,SAAS,aAAa,EACjD,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAC5C,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAC1C,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const isAsync = (storage) => 'encryption' in storage;
|
|
2
|
+
const pick = (snapshot, keys) => {
|
|
3
|
+
const out = snapshot;
|
|
4
|
+
if (keys)
|
|
5
|
+
for (const key of Object.keys(out))
|
|
6
|
+
if (!keys.includes(key))
|
|
7
|
+
delete out[key];
|
|
8
|
+
return out;
|
|
9
|
+
};
|
|
10
|
+
export function copyStorage(from, to, options = {}) {
|
|
11
|
+
const restore = { overwrite: options.overwrite };
|
|
12
|
+
if (!isAsync(from) && !isAsync(to))
|
|
13
|
+
return to.restore(pick(from.snapshot(), options.keys), restore);
|
|
14
|
+
return (async () => to.restore(pick(await from.snapshot(), options.keys), restore))();
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// src/utils/copy.ts
|
|
2
|
+
var isAsync = (storage) => "encryption" in storage;
|
|
3
|
+
var pick = (snapshot, keys) => {
|
|
4
|
+
const out = snapshot;
|
|
5
|
+
if (keys) {
|
|
6
|
+
for (const key of Object.keys(out)) if (!keys.includes(key)) delete out[key];
|
|
7
|
+
}
|
|
8
|
+
return out;
|
|
9
|
+
};
|
|
10
|
+
function copyStorage(from, to, options = {}) {
|
|
11
|
+
const restore = { overwrite: options.overwrite };
|
|
12
|
+
if (!isAsync(from) && !isAsync(to)) return to.restore(pick(from.snapshot(), options.keys), restore);
|
|
13
|
+
return (async () => to.restore(pick(await from.snapshot(), options.keys), restore))();
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
copyStorage
|
|
17
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/utils/environment.ts
|
|
21
|
+
var environment_exports = {};
|
|
22
|
+
__export(environment_exports, {
|
|
23
|
+
hasWindow: () => hasWindow
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(environment_exports);
|
|
26
|
+
function hasWindow() {
|
|
27
|
+
return typeof window !== "undefined";
|
|
28
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/utils/environment.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,wBAAgB,SAAS,IAAI,OAAO,CAEnC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/utils/keys.ts
|
|
21
|
+
var keys_exports = {};
|
|
22
|
+
__export(keys_exports, {
|
|
23
|
+
joinNamespace: () => joinNamespace,
|
|
24
|
+
namespacePrefix: () => namespacePrefix
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(keys_exports);
|
|
27
|
+
function namespacePrefix(namespace) {
|
|
28
|
+
return namespace ? `${namespace}:` : "";
|
|
29
|
+
}
|
|
30
|
+
function joinNamespace(parent, child) {
|
|
31
|
+
if (!child) throw new TypeError("A namespace needs a name.");
|
|
32
|
+
return parent ? `${parent}:${child}` : child;
|
|
33
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** The prefix a namespace puts before its keys: `app` gives `app:`. */
|
|
2
|
+
export declare function namespacePrefix(namespace: string | undefined): string;
|
|
3
|
+
/** A nested namespace: `app` and `auth` give `app:auth`. */
|
|
4
|
+
export declare function joinNamespace(parent: string | undefined, child: string): string;
|
|
5
|
+
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/utils/keys.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAErE;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/E"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** The prefix a namespace puts before its keys: `app` gives `app:`. */
|
|
2
|
+
export function namespacePrefix(namespace) {
|
|
3
|
+
return namespace ? `${namespace}:` : '';
|
|
4
|
+
}
|
|
5
|
+
/** A nested namespace: `app` and `auth` give `app:auth`. */
|
|
6
|
+
export function joinNamespace(parent, child) {
|
|
7
|
+
if (!child)
|
|
8
|
+
throw new TypeError('A namespace needs a name.');
|
|
9
|
+
return parent ? `${parent}:${child}` : child;
|
|
10
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// src/utils/keys.ts
|
|
2
|
+
function namespacePrefix(namespace) {
|
|
3
|
+
return namespace ? `${namespace}:` : "";
|
|
4
|
+
}
|
|
5
|
+
function joinNamespace(parent, child) {
|
|
6
|
+
if (!child) throw new TypeError("A namespace needs a name.");
|
|
7
|
+
return parent ? `${parent}:${child}` : child;
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
joinNamespace,
|
|
11
|
+
namespacePrefix
|
|
12
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@fluixi/storage",
|
|
3
|
+
"version": "0.1.0-alpha.0",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"author": "Ibrahima Touré",
|
|
6
|
+
"private": false,
|
|
7
|
+
"publishConfig": {
|
|
8
|
+
"registry": "https://registry.npmjs.org/",
|
|
9
|
+
"access": "public"
|
|
10
|
+
},
|
|
11
|
+
"description": "A universal storage abstraction: one typed API across browser, SSR, server and custom environments, with adapters, namespaces, expiry and versioned entries.",
|
|
12
|
+
"type": "module",
|
|
13
|
+
"sideEffects": false,
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"README.md",
|
|
17
|
+
"LICENSE"
|
|
18
|
+
],
|
|
19
|
+
"main": "./dist/index.js",
|
|
20
|
+
"module": "./dist/index.js",
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"exports": {
|
|
23
|
+
"./package.json": "./package.json",
|
|
24
|
+
".": {
|
|
25
|
+
"types": "./dist/index.d.ts",
|
|
26
|
+
"import": "./dist/index.mjs",
|
|
27
|
+
"require": "./dist/index.cjs",
|
|
28
|
+
"default": "./dist/index.js"
|
|
29
|
+
},
|
|
30
|
+
"./browser": {
|
|
31
|
+
"types": "./dist/browser/index.d.ts",
|
|
32
|
+
"import": "./dist/browser/index.mjs",
|
|
33
|
+
"require": "./dist/browser/index.cjs",
|
|
34
|
+
"default": "./dist/browser/index.js"
|
|
35
|
+
},
|
|
36
|
+
"./server": {
|
|
37
|
+
"types": "./dist/server/index.d.ts",
|
|
38
|
+
"import": "./dist/server/index.mjs",
|
|
39
|
+
"require": "./dist/server/index.cjs",
|
|
40
|
+
"default": "./dist/server/index.js"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"@fluixi/utils": "1.0.0-alpha.93"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@bambiste/mix-builder": "^0.4.0",
|
|
48
|
+
"cross-env": "^7.0.3"
|
|
49
|
+
},
|
|
50
|
+
"repository": {
|
|
51
|
+
"type": "git",
|
|
52
|
+
"url": "https://github.com/fluixi/core.git",
|
|
53
|
+
"directory": "packages/storage"
|
|
54
|
+
},
|
|
55
|
+
"scripts": {
|
|
56
|
+
"build:typings": "tsc -p tsconfig.lib.json",
|
|
57
|
+
"build": "cross-env NODE_ENV=production mix-builder",
|
|
58
|
+
"dev": "tsc -w -p tsconfig.lib.json",
|
|
59
|
+
"test": "vitest run"
|
|
60
|
+
}
|
|
61
|
+
}
|