v1.2.2 - Fix network error on background, auto-retry streaming with reconnect

This commit is contained in:
admin
2026-05-19 15:50:45 +04:00
Unverified
parent 2e327317e4
commit 1026259a20
3831 changed files with 384316 additions and 39 deletions

16
node_modules/@kvs/storage/lib/JSONValue.d.ts generated vendored Normal file
View File

@@ -0,0 +1,16 @@
/**
Matches a JSON object.
This type can be useful to enforce some input to be JSON-compatible or as a super-type to be extended from. Don't use this as a direct return type as the user would have to double-cast it: `jsonObject as unknown as CustomResponse`. Instead, you could extend your CustomResponse type from it to ensure your type only uses JSON-compatible types: `interface CustomResponse extends JsonObject { … }`.
*/
export type JsonObject = {
[Key in string]?: JsonValue;
};
/**
Matches a JSON array.
*/
export interface JsonArray extends Array<JsonValue> {
}
/**
Matches any valid JSON value.
*/
export type JsonValue = string | number | boolean | null | JsonObject | JsonArray;

3
node_modules/@kvs/storage/lib/JSONValue.js generated vendored Normal file
View File

@@ -0,0 +1,3 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
//# sourceMappingURL=JSONValue.js.map

1
node_modules/@kvs/storage/lib/JSONValue.js.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"JSONValue.js","sourceRoot":"","sources":["../src/JSONValue.ts"],"names":[],"mappings":""}

2
node_modules/@kvs/storage/lib/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,2 @@
export { kvsStorage, deleteItem, setItem, getItem, clearItem, createIterator, hasItem, KvsStorage, KVSStorageKey, KvsStorageOptions } from "./storage";
export { JsonValue, JsonArray, JsonObject } from "./JSONValue";

12
node_modules/@kvs/storage/lib/index.js generated vendored Normal file
View File

@@ -0,0 +1,12 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.hasItem = exports.createIterator = exports.clearItem = exports.getItem = exports.setItem = exports.deleteItem = exports.kvsStorage = void 0;
var storage_1 = require("./storage");
Object.defineProperty(exports, "kvsStorage", { enumerable: true, get: function () { return storage_1.kvsStorage; } });
Object.defineProperty(exports, "deleteItem", { enumerable: true, get: function () { return storage_1.deleteItem; } });
Object.defineProperty(exports, "setItem", { enumerable: true, get: function () { return storage_1.setItem; } });
Object.defineProperty(exports, "getItem", { enumerable: true, get: function () { return storage_1.getItem; } });
Object.defineProperty(exports, "clearItem", { enumerable: true, get: function () { return storage_1.clearItem; } });
Object.defineProperty(exports, "createIterator", { enumerable: true, get: function () { return storage_1.createIterator; } });
Object.defineProperty(exports, "hasItem", { enumerable: true, get: function () { return storage_1.hasItem; } });
//# sourceMappingURL=index.js.map

1
node_modules/@kvs/storage/lib/index.js.map generated vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qCAWmB;AAVf,qGAAA,UAAU,OAAA;AACV,qGAAA,UAAU,OAAA;AACV,kGAAA,OAAO,OAAA;AACP,kGAAA,OAAO,OAAA;AACP,oGAAA,SAAS,OAAA;AACT,yGAAA,cAAc,OAAA;AACd,kGAAA,OAAO,OAAA"}

20
node_modules/@kvs/storage/lib/storage.d.ts generated vendored Normal file
View File

@@ -0,0 +1,20 @@
import type { KVS, KVSOptions, StoreNames, StoreValue } from "@kvs/types";
import { JsonValue } from "./JSONValue";
export type KVSStorageKey = string;
export declare const getItem: <Schema extends StorageSchema>(storage: Storage, tableName: string, key: StoreNames<Schema>) => any;
export declare const hasItem: <Schema extends StorageSchema>(storage: Storage, tableName: string, key: StoreNames<Schema>) => boolean;
export declare const setItem: <Schema extends StorageSchema>(storage: Storage, tableName: string, key: StoreNames<Schema>, value: StoreValue<Schema, StoreNames<Schema>> | undefined) => boolean | void;
export declare const clearItem: (storage: Storage, tableName: string, kvsVersionKey: string, options: {
force: boolean;
}) => void;
export declare const deleteItem: <Schema extends StorageSchema>(storage: Storage, tableName: string, key: StoreNames<Schema>) => boolean;
export declare function createIterator<Schema extends StorageSchema>(storage: Storage, tableName: string, kvsVersionKey: string): Iterator<[StoreNames<Schema>, StoreValue<Schema, StoreNames<Schema>>]>;
export type StorageSchema = {
[index: string]: JsonValue;
};
export type KvsStorage<Schema extends StorageSchema> = KVS<Schema>;
export type KvsStorageOptions<Schema extends StorageSchema> = KVSOptions<Schema> & {
kvsVersionKey?: string;
storage: Storage;
};
export declare const kvsStorage: <Schema extends StorageSchema>(options: KvsStorageOptions<Schema>) => Promise<KvsStorage<Schema>>;

183
node_modules/@kvs/storage/lib/storage.js generated vendored Normal file
View File

@@ -0,0 +1,183 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.kvsStorage = exports.deleteItem = exports.clearItem = exports.setItem = exports.hasItem = exports.getItem = void 0;
exports.createIterator = createIterator;
function invariant(condition, message) {
if (condition) {
return;
}
throw new Error(message);
}
const TABLE_KEY_MARKER = ".__.";
const getItem = (storage, tableName, key) => {
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
const item = storage.getItem(storageKey);
return item !== null ? JSON.parse(item) : undefined;
};
exports.getItem = getItem;
const hasItem = (storage, tableName, key) => {
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
return storage.getItem(storageKey) !== null;
};
exports.hasItem = hasItem;
const setItem = (storage, tableName, key, value) => {
// It is difference with IndexedDB implementation.
// This behavior compatible with localStorage.
if (value === undefined) {
return (0, exports.deleteItem)(storage, tableName, key);
}
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
return storage.setItem(storageKey, JSON.stringify(value));
};
exports.setItem = setItem;
const clearItem = (storage, tableName, kvsVersionKey, options) => {
// TODO: kvsVersionKey is special type
const currentVersion = (0, exports.getItem)(storage, tableName, kvsVersionKey);
// clear all
storage.clear();
// if option.force is true, does not restore metadata.
if (options.force) {
return;
}
// set kvs version again
if (currentVersion !== undefined) {
(0, exports.setItem)(storage, tableName, kvsVersionKey, currentVersion);
}
};
exports.clearItem = clearItem;
const deleteItem = (storage, tableName, key) => {
const storageKey = `${tableName}${TABLE_KEY_MARKER}${String(key)}`;
try {
storage.removeItem(storageKey);
return true;
}
catch (_a) {
return false;
}
};
exports.deleteItem = deleteItem;
function* createIterator(storage, tableName, kvsVersionKey) {
const tableKeyPrefix = `${tableName}${TABLE_KEY_MARKER}`;
for (let i = 0; i < storage.length; i++) {
const key = storage.key(i);
if (!key) {
continue;
}
// skip another storage
if (!key.startsWith(tableKeyPrefix)) {
continue;
}
// skip meta key
const keyWithoutPrefix = key.replace(tableKeyPrefix, "");
if (keyWithoutPrefix === kvsVersionKey) {
continue;
}
const value = (0, exports.getItem)(storage, tableName, keyWithoutPrefix);
yield [keyWithoutPrefix, value];
}
}
const DEFAULT_KVS_VERSION = 1;
const openStorage = async ({ storage, version, tableName, kvsVersionKey, onUpgrade }) => {
// kvsVersionKey is special type
// first `oldVersion` is `0`
let oldVersion = (0, exports.getItem)(storage, tableName, kvsVersionKey);
if (oldVersion === undefined) {
(0, exports.setItem)(storage, tableName, kvsVersionKey, DEFAULT_KVS_VERSION);
// first `oldVersion` is `0`
// https://github.com/azu/kvs/issues/8
oldVersion = 0;
}
// if user set newVersion, upgrade it
if (oldVersion !== version) {
await onUpgrade({
oldVersion,
newVersion: version,
storage
});
// save current version if upgrade is success
(0, exports.setItem)(storage, tableName, kvsVersionKey, version);
return storage;
}
return storage;
};
const createStore = ({ tableName, storage, kvsVersionKey }) => {
const store = {
get(key) {
return Promise.resolve().then(() => {
return (0, exports.getItem)(storage, tableName, key);
});
},
has(key) {
return Promise.resolve().then(() => {
return (0, exports.hasItem)(storage, tableName, key);
});
},
set(key, value) {
return Promise.resolve()
.then(() => {
return (0, exports.setItem)(storage, tableName, key, value);
})
.then(() => {
return store;
});
},
clear() {
return Promise.resolve().then(() => {
return (0, exports.clearItem)(storage, tableName, kvsVersionKey, { force: false });
});
},
delete(key) {
return Promise.resolve().then(() => {
return (0, exports.deleteItem)(storage, tableName, key);
});
},
dropInstance() {
return Promise.resolve().then(() => {
return (0, exports.clearItem)(storage, tableName, kvsVersionKey, { force: true });
});
},
close() {
// Noop function
return Promise.resolve();
},
[Symbol.asyncIterator]() {
const iterator = createIterator(storage, tableName, kvsVersionKey);
return {
next() {
return Promise.resolve().then(() => {
return iterator.next();
});
}
};
}
};
return store;
};
const kvsStorage = async (options) => {
var _a;
const { name, version, upgrade, ...kvStorageOptions } = options;
invariant(typeof name === "string", "name should be string");
invariant(name.length > 0, "name should not be empty");
invariant(!name.includes(TABLE_KEY_MARKER), `name can not include ${TABLE_KEY_MARKER}. It is reserved in kvs.`);
invariant(typeof version === "number", `version should be number`);
const kvsVersionKey = (_a = kvStorageOptions.kvsVersionKey) !== null && _a !== void 0 ? _a : "__kvs_version__";
const storage = await openStorage({
storage: options.storage,
version: options.version,
tableName: name,
onUpgrade: ({ oldVersion, newVersion, storage }) => {
if (!options.upgrade) {
return;
}
return options.upgrade({
kvs: createStore({ tableName: name, storage, kvsVersionKey }),
oldVersion,
newVersion
});
},
kvsVersionKey
});
return createStore({ tableName: name, storage, kvsVersionKey });
};
exports.kvsStorage = kvsStorage;
//# sourceMappingURL=storage.js.map

1
node_modules/@kvs/storage/lib/storage.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long