tbdb 0.0.0 → 0.0.5
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/README.md +72 -0
- package/dist/adapter/IndexedDB/IndexedDBAdapter.d.ts +29 -0
- package/dist/adapter/IndexedDB/index.d.ts +1 -0
- package/dist/adapter/IndexedDB/test/indexeddb.test.d.ts +1 -0
- package/dist/adapter/SQLite/SQLiteAdapter.d.ts +137 -15
- package/dist/adapter/SQLite/benchmark/query_analysis.bench.d.ts +1 -0
- package/dist/adapter/SQLite/benchmark/sqlite-extended.bench.d.ts +9 -0
- package/dist/adapter/SQLite/benchmark/sqlite.bench.d.ts +1 -0
- package/dist/adapter/SQLite/driver/BetterSqlite3Driver.d.ts +27 -0
- package/dist/adapter/SQLite/driver/BunSqliteDriver.d.ts +68 -0
- package/dist/adapter/SQLite/driver/NodeSqliteDriver.d.ts +60 -0
- package/dist/adapter/SQLite/driver/index.d.ts +51 -0
- package/dist/adapter/SQLite/driver/test/driver.test.d.ts +6 -0
- package/dist/adapter/SQLite/driver/types.d.ts +106 -0
- package/dist/adapter/SQLite/index.d.ts +3 -0
- package/dist/adapter/SQLite/test/dirty-tracking-bugs.test.d.ts +24 -0
- package/dist/adapter/SQLite/test/dirty-tracking-production.test.d.ts +11 -0
- package/dist/adapter/SQLite/test/side-table-bug-verify.test.d.ts +14 -0
- package/dist/adapter/SQLite/test/side-table-bugs.test.d.ts +17 -0
- package/dist/adapter/SQLite/test/side-table-edge-cases.test.d.ts +15 -0
- package/dist/adapter/SQLite/test/sqlite-datatypes.test.d.ts +5 -0
- package/dist/adapter/SQLite/test/sqlite-multi-driver.test.d.ts +6 -0
- package/dist/adapter/SQLite/test/sqlite-query-ops.test.d.ts +4 -0
- package/dist/adapter/SQLite/utils/mongoToSql.d.ts +4 -1
- package/dist/adapter/SQLite/utils/projection.d.ts +16 -0
- package/dist/adapter/SQLite/utils/queryAnalysis.d.ts +54 -0
- package/dist/adapter/SQLite/utils/serializer.d.ts +19 -2
- package/dist/adapter/SQLite/utils/zstdHelper.d.ts +2 -2
- package/dist/adapter/adapter.d.ts +62 -3
- package/dist/benchmark/dist/base.try.d.ts +1 -0
- package/dist/core/Table.d.ts +15 -9
- package/dist/core/defineTable.d.ts +10 -4
- package/dist/core/event.d.ts +24 -0
- package/dist/core/types.d.ts +1 -1
- package/dist/extension/tree/TableTree.d.ts +49 -0
- package/dist/extension/tree/core/copyNodes.d.ts +36 -0
- package/dist/extension/tree/core/createNodes.d.ts +33 -0
- package/dist/extension/tree/core/deleteNodes.d.ts +33 -0
- package/dist/extension/tree/core/listNodes.d.ts +32 -0
- package/dist/extension/tree/core/listNodesByCursor.d.ts +31 -0
- package/dist/extension/tree/core/moveNodes.d.ts +25 -0
- package/dist/extension/tree/core/preOverwriteNodes.d.ts +41 -0
- package/dist/extension/tree/core/presyncNodes.d.ts +30 -0
- package/dist/extension/tree/core/setNodes.d.ts +49 -0
- package/dist/extension/tree/core/unDeleteNodes.d.ts +28 -0
- package/dist/extension/tree/core/updateNodes.d.ts +29 -0
- package/dist/extension/tree/demo/dist-web/assets/index-DT1zZc4B.d.ts +1 -0
- package/dist/extension/tree/demo/src/main.d.ts +1 -0
- package/dist/extension/tree/demo/src/server.d.ts +1 -0
- package/dist/extension/tree/demo/vite.config.d.ts +2 -0
- package/dist/extension/tree/index.d.ts +1 -0
- package/dist/extension/tree/test/benchmark/ManyMany.bench.d.ts +1 -0
- package/dist/extension/tree/test/benchmark/table-tree.bench.d.ts +1 -0
- package/dist/extension/tree/test/gemini/table-tree-gemini-TableTree.test.d.ts +1 -0
- package/dist/extension/tree/test/human/table-tree-humam.test.d.ts +1 -0
- package/dist/extension/tree/test/table-tree-clearDeadNodes.test.d.ts +1 -0
- package/dist/extension/tree/test/table-tree-copyNodes.test.d.ts +1 -0
- package/dist/extension/tree/test/table-tree-createNodes.test.d.ts +1 -0
- package/dist/extension/tree/test/table-tree-deleteNodes.test.d.ts +1 -0
- package/dist/extension/tree/test/table-tree-fs-comb.test.d.ts +1 -0
- package/dist/extension/tree/test/table-tree-index-comb.test.d.ts +1 -0
- package/dist/extension/tree/test/table-tree-listNodes.test.d.ts +1 -0
- package/dist/extension/tree/test/table-tree-metadata-comb.test.d.ts +1 -0
- package/dist/extension/tree/test/table-tree-moveNodes.test.d.ts +1 -0
- package/dist/extension/tree/test/table-tree-multi-user-comb.test.d.ts +1 -0
- package/dist/extension/tree/test/table-tree-preOverwriteNodes.test.d.ts +1 -0
- package/dist/extension/tree/test/table-tree-presyncNodes.test.d.ts +1 -0
- package/dist/extension/tree/test/table-tree-setNdoes.test.d.ts +1 -0
- package/dist/extension/tree/test/table-tree-updateNodes.test.d.ts +1 -0
- package/dist/extension/tree/test/table-tree.test.d.ts +1 -0
- package/dist/extension/tree/test/table-tree.try.d.ts +1 -0
- package/dist/extension/tree/tool/clearDeadNodes.d.ts +22 -0
- package/dist/extension/tree/tool/refreshTreeMetadata.d.ts +9 -0
- package/dist/extension/tree/tree.types.d.ts +111 -0
- package/dist/extension/tree/util/applyTreeMetadataDelta.d.ts +29 -0
- package/dist/extension/tree/util/assertTreeParent.d.ts +8 -0
- package/dist/extension/tree/util/collectAncestorIds.d.ts +4 -0
- package/dist/extension/tree/util/collectDescendantNodes.d.ts +10 -0
- package/dist/extension/tree/util/collectExistingParentIds.d.ts +9 -0
- package/dist/extension/tree/util/collectTopSelectedNodes.d.ts +10 -0
- package/dist/extension/tree/util/getNodeValueByPath.d.ts +2 -0
- package/dist/extension/tree/util/getUniqueFileNames.d.ts +13 -0
- package/dist/extension/tree/util/groupNodesByParentId.d.ts +8 -0
- package/dist/extension/tree/util/newEmptyNode.d.ts +2 -0
- package/dist/extension/tree/util/newNodeId.d.ts +2 -0
- package/dist/extension/tree/util/normalizeWritableNode.d.ts +9 -0
- package/dist/extension/tree/util/rebalanceTreeIndexes.d.ts +11 -0
- package/dist/extension/tree/util/refreshTreeMetadata.d.ts +16 -0
- package/dist/extension/tree/util/repairDuplicatedSiblingConflicts.d.ts +4 -0
- package/dist/extension/tree/util/repairDuplicatedSiblingNames.d.ts +4 -0
- package/dist/extension/tree/util/repairTreeOverwriteConflicts.d.ts +10 -0
- package/dist/extension/tree/util/resolveOverwriteNodes.d.ts +26 -0
- package/dist/extension/tree/util/resolveTreeIndex.d.ts +4 -0
- package/dist/extension/tree/util/setTreeNumberStat.d.ts +9 -0
- package/dist/extension/tree/util/stripTreeManagedFields.d.ts +5 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +4017 -1188
- package/dist/test/auto-metadata.test.d.ts +1 -0
- package/dist/test/getTestTable.d.ts +3 -1
- package/dist/test/globals.d.ts +1 -0
- package/dist/test/table-event.test.d.ts +1 -0
- package/dist/test/table-index.test.d.ts +1 -0
- package/dist/test/table-type.test.d.ts +1 -0
- package/dist/test/try/doc.try.d.ts +1 -1
- package/dist/test/try/getTestUserTable.d.ts +1 -1
- package/dist/test/try/insert.try.d.ts +1 -1
- package/dist/test/try/mongodb-try/id-test.d.ts +1 -0
- package/dist/test/try//345/210/233/345/273/272350/344/270/207/346/225/260/346/215/256.d.ts +1 -1
- package/dist/test/try//346/223/215/344/275/234350/344/270/207/346/225/260/346/215/256.d.ts +1 -1
- package/package.json +26 -8
- package/dist/rslib-runtime.js +0 -18
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { TableTree } from "../TableTree";
|
|
2
|
+
import type { ITreeNode, ITreeOverwriteOptions } from "../tree.types";
|
|
3
|
+
export interface IResolveOverwriteNodesOptions extends ITreeOverwriteOptions {
|
|
4
|
+
/** move 模式下忽略当前正在移动的节点自身冲突。 */
|
|
5
|
+
ignoreNodeIds?: string[];
|
|
6
|
+
}
|
|
7
|
+
export interface IResolveOverwriteNodesResult<TNode extends ITreeNode = ITreeNode> {
|
|
8
|
+
/** 可以继续写入或移动的节点。 */
|
|
9
|
+
nodes: TNode[];
|
|
10
|
+
/** 被跳过的节点。 */
|
|
11
|
+
skippedNodes: TNode[];
|
|
12
|
+
/** 需要先删除的冲突节点 ID。 */
|
|
13
|
+
deleteNodeIds: string[];
|
|
14
|
+
/** replace 类覆盖中,来源节点和被覆盖目标节点的对应关系。 */
|
|
15
|
+
replacePairs: {
|
|
16
|
+
sourceNode: TNode;
|
|
17
|
+
targetNode: TNode;
|
|
18
|
+
}[];
|
|
19
|
+
/** 需要递归合并的目录节点对。 */
|
|
20
|
+
mergePairs: {
|
|
21
|
+
sourceNode: TNode;
|
|
22
|
+
targetNode: TNode;
|
|
23
|
+
}[];
|
|
24
|
+
}
|
|
25
|
+
/** 解析覆盖策略,返回后续写入、跳过、删除和合并计划。 */
|
|
26
|
+
export declare function resolveOverwriteNodes<TNode extends ITreeNode>(table: TableTree<TNode>, parentId: string, nodes: TNode[], options?: IResolveOverwriteNodesOptions): Promise<IResolveOverwriteNodesResult<TNode>>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { TableTree } from "../TableTree";
|
|
2
|
+
import type { ITreeIndexOptions, ITreeNode } from "../tree.types";
|
|
3
|
+
/** 为同一父级下的一批节点计算写入 index。 */
|
|
4
|
+
export declare function resolveTreeIndexes<TNode extends ITreeNode>(table: TableTree<TNode>, parentId: string, count: number, options?: ITreeIndexOptions): Promise<string[]>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ITreeNodeMetadataKeys } from "../tree.types";
|
|
2
|
+
type TreeNumberStatKey = keyof ITreeNodeMetadataKeys;
|
|
3
|
+
/**
|
|
4
|
+
* 目录统计字段保持 0 值不落库的历史语义:有值则 set,无值则 unset。
|
|
5
|
+
*
|
|
6
|
+
* 这样可以让空目录保持字段精简,同时所有 metadata 刷新入口都使用同一套 0 值处理规则。
|
|
7
|
+
*/
|
|
8
|
+
export declare function setTreeNumberStat($set: Record<string, any>, $unset: Record<string, true>, key: TreeNumberStatKey, value: number): void;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ITreeNode } from "../tree.types";
|
|
2
|
+
/** 移除由目录树内部维护的统计字段,避免外部写入破坏树结构元数据。 */
|
|
3
|
+
export declare function stripTreeManagedFields<T extends Record<string, any>>(data: T): Partial<T>;
|
|
4
|
+
/** 判断字段是否属于目录树内部维护的统计字段。 */
|
|
5
|
+
export declare function isTreeManagedField(field: keyof ITreeNode | string): boolean;
|
package/dist/index.d.ts
CHANGED
|
@@ -3,4 +3,5 @@ export { defineTable } from "./core/defineTable";
|
|
|
3
3
|
export { SQLiteAdapter } from "./adapter/SQLite";
|
|
4
4
|
export { MongoDBAdapter } from "./adapter/MongoDB";
|
|
5
5
|
export { defineGlobalDBAdapter } from "./core/defineTable";
|
|
6
|
+
export { TableTree } from "./extension/tree";
|
|
6
7
|
export { TableJSON } from "fzz/src/objects/funcs/TableJSON";
|