mindoodb 0.0.88 → 0.0.90
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 +1 -0
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +4 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -1
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +8 -0
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -1
- package/dist/browser/index.mjs +17 -0
- package/dist/core/BaseMindooDB.d.ts +14 -0
- package/dist/core/BaseMindooDB.d.ts.map +1 -1
- package/dist/core/BaseMindooDB.js +42 -0
- package/dist/core/BaseMindooDB.js.map +1 -1
- package/dist/core/BaseMindooTenant.d.ts +3 -0
- package/dist/core/BaseMindooTenant.d.ts.map +1 -1
- package/dist/core/BaseMindooTenant.js +28 -0
- package/dist/core/BaseMindooTenant.js.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.d.ts +5 -0
- package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -1
- package/dist/core/BaseMindooTenantDirectory.js +29 -1
- package/dist/core/BaseMindooTenantDirectory.js.map +1 -1
- package/dist/core/accesscontrol/directoryProjection.d.ts.map +1 -1
- package/dist/core/accesscontrol/directoryProjection.js +4 -0
- package/dist/core/accesscontrol/directoryProjection.js.map +1 -1
- package/dist/core/accesscontrol/types.d.ts +25 -3
- package/dist/core/accesscontrol/types.d.ts.map +1 -1
- package/dist/core/accesscontrol/types.js +27 -6
- package/dist/core/accesscontrol/types.js.map +1 -1
- package/dist/core/builtinDbInvariants.d.ts +5 -1
- package/dist/core/builtinDbInvariants.d.ts.map +1 -1
- package/dist/core/builtinDbInvariants.js +5 -1
- package/dist/core/builtinDbInvariants.js.map +1 -1
- package/dist/core/expressions/builder.d.ts +30 -0
- package/dist/core/expressions/builder.d.ts.map +1 -1
- package/dist/core/expressions/builder.js +42 -0
- package/dist/core/expressions/builder.js.map +1 -1
- package/dist/core/expressions/evaluateExpression.d.ts +10 -0
- package/dist/core/expressions/evaluateExpression.d.ts.map +1 -1
- package/dist/core/expressions/evaluateExpression.js +66 -1
- package/dist/core/expressions/evaluateExpression.js.map +1 -1
- package/dist/core/expressions/formulaSource.d.ts.map +1 -1
- package/dist/core/expressions/formulaSource.js +5 -0
- package/dist/core/expressions/formulaSource.js.map +1 -1
- package/dist/core/expressions/index.d.ts +1 -1
- package/dist/core/expressions/index.d.ts.map +1 -1
- package/dist/core/expressions/index.js +2 -1
- package/dist/core/expressions/index.js.map +1 -1
- package/dist/core/expressions/metadata.d.ts +2 -2
- package/dist/core/expressions/metadata.d.ts.map +1 -1
- package/dist/core/expressions/metadata.js +14 -0
- package/dist/core/expressions/metadata.js.map +1 -1
- package/dist/core/expressions/types.d.ts +1 -1
- package/dist/core/expressions/types.d.ts.map +1 -1
- package/dist/core/filing/FilingIndex.d.ts +209 -0
- package/dist/core/filing/FilingIndex.d.ts.map +1 -0
- package/dist/core/filing/FilingIndex.js +689 -0
- package/dist/core/filing/FilingIndex.js.map +1 -0
- package/dist/core/filing/MindooFilingStore.d.ts +200 -0
- package/dist/core/filing/MindooFilingStore.d.ts.map +1 -0
- package/dist/core/filing/MindooFilingStore.js +515 -0
- package/dist/core/filing/MindooFilingStore.js.map +1 -0
- package/dist/core/filing/index.d.ts +4 -0
- package/dist/core/filing/index.d.ts.map +1 -0
- package/dist/core/filing/index.js +22 -0
- package/dist/core/filing/index.js.map +1 -0
- package/dist/core/filing/refs.d.ts +56 -0
- package/dist/core/filing/refs.d.ts.map +1 -0
- package/dist/core/filing/refs.js +109 -0
- package/dist/core/filing/refs.js.map +1 -0
- package/dist/core/index.d.ts +3 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +10 -5
- package/dist/core/index.js.map +1 -1
- package/dist/core/indexing/createViewDataProvider.d.ts +6 -0
- package/dist/core/indexing/createViewDataProvider.d.ts.map +1 -1
- package/dist/core/indexing/createViewDataProvider.js +26 -1
- package/dist/core/indexing/createViewDataProvider.js.map +1 -1
- package/dist/core/indexing/summary/DocumentSummaryStore.d.ts +43 -1
- package/dist/core/indexing/summary/DocumentSummaryStore.d.ts.map +1 -1
- package/dist/core/indexing/summary/DocumentSummaryStore.js +302 -2
- package/dist/core/indexing/summary/DocumentSummaryStore.js.map +1 -1
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.d.ts +33 -2
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.d.ts.map +1 -1
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.js +129 -26
- package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.js.map +1 -1
- package/dist/core/indexing/summary/types.d.ts +40 -0
- package/dist/core/indexing/summary/types.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts +27 -2
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +106 -1
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualView.d.ts +70 -5
- package/dist/core/indexing/virtualviews/VirtualView.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualView.js +329 -28
- package/dist/core/indexing/virtualviews/VirtualView.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts +4 -22
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.js +175 -129
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts +28 -0
- package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewFactory.js +62 -0
- package/dist/core/indexing/virtualviews/VirtualViewFactory.js.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewFilingJoin.d.ts +75 -0
- package/dist/core/indexing/virtualviews/VirtualViewFilingJoin.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewFilingJoin.js +163 -0
- package/dist/core/indexing/virtualviews/VirtualViewFilingJoin.js.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewMergedNavigator.d.ts +112 -0
- package/dist/core/indexing/virtualviews/VirtualViewMergedNavigator.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewMergedNavigator.js +296 -0
- package/dist/core/indexing/virtualviews/VirtualViewMergedNavigator.js.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewNavigator.d.ts +2 -0
- package/dist/core/indexing/virtualviews/VirtualViewNavigator.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/VirtualViewNavigator.js +10 -9
- package/dist/core/indexing/virtualviews/VirtualViewNavigator.js.map +1 -1
- package/dist/core/indexing/virtualviews/index.d.ts +2 -0
- package/dist/core/indexing/virtualviews/index.d.ts.map +1 -1
- package/dist/core/indexing/virtualviews/index.js +8 -1
- package/dist/core/indexing/virtualviews/index.js.map +1 -1
- package/dist/core/query/executeQuery.d.ts.map +1 -1
- package/dist/core/query/executeQuery.js +4 -0
- package/dist/core/query/executeQuery.js.map +1 -1
- package/dist/core/query/executeQueryInclude.d.ts.map +1 -1
- package/dist/core/query/executeQueryInclude.js +4 -0
- package/dist/core/query/executeQueryInclude.js.map +1 -1
- package/dist/core/query/queryView.d.ts.map +1 -1
- package/dist/core/query/queryView.js +4 -0
- package/dist/core/query/queryView.js.map +1 -1
- package/dist/core/types.d.ts +20 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/server/TenantManager.d.ts.map +1 -1
- package/dist/server/TenantManager.js +1 -1
- package/dist/server/TenantManager.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,7 +7,7 @@ export type MindooDBAppViewTotalMode = "sum" | "average" | "none";
|
|
|
7
7
|
/** Date fragments that can be extracted with `datePart()`. */
|
|
8
8
|
export type MindooDBAppViewExpressionDatePart = "year" | "month" | "day" | "quarter";
|
|
9
9
|
/** Low-level operation identifiers used by AST operation nodes. */
|
|
10
|
-
export type MindooDBAppViewExpressionOperation = "docId" | "parentDocId" | "createdAt" | "lastModifiedAt" | "decryptionKeyId" | "isWitnessed" | "isAwaitingWitness" | "attachmentNames" | "attachmentLengths" | "attachmentCount" | "childCount" | "childCategoryCount" | "childDocumentCount" | "descendantCount" | "descendantCategoryCount" | "descendantDocumentCount" | "siblingCount" | "add" | "sub" | "mul" | "div" | "mod" | "eq" | "neq" | "gt" | "gte" | "lt" | "lte" | "and" | "or" | "not" | "concat" | "lower" | "upper" | "trim" | "left" | "right" | "number" | "string" | "boolean" | "contains" | "startsWith" | "endsWith" | "coalesce" | "exists" | "notExists" | "pathJoin" | "datePart";
|
|
10
|
+
export type MindooDBAppViewExpressionOperation = "docId" | "parentDocId" | "createdAt" | "lastModifiedAt" | "decryptionKeyId" | "isWitnessed" | "isAwaitingWitness" | "attachmentNames" | "attachmentLengths" | "attachmentCount" | "childCount" | "childCategoryCount" | "childDocumentCount" | "descendantCount" | "descendantCategoryCount" | "descendantDocumentCount" | "siblingCount" | "add" | "sub" | "mul" | "div" | "mod" | "eq" | "neq" | "gt" | "gte" | "lt" | "lte" | "and" | "or" | "not" | "concat" | "lower" | "upper" | "trim" | "left" | "right" | "number" | "string" | "boolean" | "contains" | "startsWith" | "endsWith" | "coalesce" | "exists" | "notExists" | "pathJoin" | "datePart" | "folders" | "inFolder" | "union" | "split";
|
|
11
11
|
/**
|
|
12
12
|
* Marker interface carried by every expression node.
|
|
13
13
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/types.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,MAAM,MAAM,4BAA4B,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,CAAC;AAC/E,+DAA+D;AAC/D,MAAM,MAAM,yBAAyB,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAE,OAAO,CAAC;AACjF,6CAA6C;AAC7C,MAAM,MAAM,wBAAwB,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;AAClE,8DAA8D;AAC9D,MAAM,MAAM,iCAAiC,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,CAAC;AACrF,mEAAmE;AACnE,MAAM,MAAM,kCAAkC,GAC1C,OAAO,GACP,aAAa,GACb,WAAW,GACX,gBAAgB,GAChB,iBAAiB,GACjB,aAAa,GACb,mBAAmB,GACnB,iBAAiB,GACjB,mBAAmB,GACnB,iBAAiB,GACjB,YAAY,GACZ,oBAAoB,GACpB,oBAAoB,GACpB,iBAAiB,GACjB,yBAAyB,GACzB,yBAAyB,GACzB,cAAc,GACd,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,KAAK,GACL,IAAI,GACJ,KAAK,GACL,QAAQ,GACR,OAAO,GACP,OAAO,GACP,MAAM,GACN,MAAM,GACN,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,UAAU,GACV,YAAY,GACZ,UAAU,GACV,UAAU,GACV,QAAQ,GACR,WAAW,GACX,UAAU,GACV,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/expressions/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import type { MindooDB } from "../types";
|
|
2
|
+
import type { CacheManager, ICacheable } from "../cache/CacheManager";
|
|
3
|
+
import type { LocalCacheStore } from "../cache/LocalCacheStore";
|
|
4
|
+
import { type FilingRefBase } from "./refs";
|
|
5
|
+
/** Document type of a filing sidecar (one per filed document and store). */
|
|
6
|
+
export declare const FILING_SIDECAR_TYPE = "$filing";
|
|
7
|
+
/** Document type of a folder definition. */
|
|
8
|
+
export declare const FILING_FOLDER_TYPE = "$folder";
|
|
9
|
+
/**
|
|
10
|
+
* Field-name prefix of folder memberships in a sidecar: `"f:<folderId>": filedAt`.
|
|
11
|
+
*
|
|
12
|
+
* Memberships are top-level fields rather than a nested `folders` map on
|
|
13
|
+
* purpose: when two replicas file the same document for the first time
|
|
14
|
+
* concurrently, each would create its own nested map object, and Automerge
|
|
15
|
+
* keeps only one of two concurrently assigned objects — the other replica's
|
|
16
|
+
* folders would be lost. Top-level keys of the (seeded, shared) document
|
|
17
|
+
* root merge key by key.
|
|
18
|
+
*/
|
|
19
|
+
export declare const FILING_FOLDER_FIELD_PREFIX = "f:";
|
|
20
|
+
/** A folder of a filing store. */
|
|
21
|
+
export interface FilingFolder {
|
|
22
|
+
/** Stable folder id (the value `folders()` yields and categories use). */
|
|
23
|
+
folderId: string;
|
|
24
|
+
/** Display name. */
|
|
25
|
+
name: string;
|
|
26
|
+
/** Parent folder id for folder hierarchies, `null` for top-level folders. */
|
|
27
|
+
parentId: string | null;
|
|
28
|
+
/** Optional system role (e.g. `"inbox"`, `"sent"`), `null` for user folders. */
|
|
29
|
+
role: string | null;
|
|
30
|
+
/** Optional view design name the folder is shown with, `null` for the default. */
|
|
31
|
+
design: string | null;
|
|
32
|
+
}
|
|
33
|
+
/** Changed filed documents reported by {@link FilingIndex.changesSince}. */
|
|
34
|
+
export interface FilingIndexChanges {
|
|
35
|
+
/** Index generation the `seq` belongs to (changes when the index is rebuilt). */
|
|
36
|
+
generation: string;
|
|
37
|
+
/** Sequence number to pass to the next {@link FilingIndex.changesSince} call. */
|
|
38
|
+
seq: number;
|
|
39
|
+
/**
|
|
40
|
+
* Physical keys (`"<tenantId>/<dbId>/<docId>"`) of documents whose
|
|
41
|
+
* effective folder set changed since the given position, or `"all"` when
|
|
42
|
+
* the position is too old (or from another generation) for a delta —
|
|
43
|
+
* consumers then re-evaluate everything.
|
|
44
|
+
*/
|
|
45
|
+
refs: ReadonlySet<string> | "all";
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Membership index of one filing store in one database: which documents
|
|
49
|
+
* are filed in which folders, plus the store's folder definitions.
|
|
50
|
+
*
|
|
51
|
+
* It is maintained incrementally from the filing database's changefeed —
|
|
52
|
+
* restricted by id prefix to the store's own documents, so a shared team
|
|
53
|
+
* database with lots of other documents costs nothing extra — and shared by
|
|
54
|
+
* every view that joins the store (one index per database + store, like the
|
|
55
|
+
* summary buffer). Views ask {@link changesSince} which filed documents
|
|
56
|
+
* changed membership since their last update and re-evaluate exactly those.
|
|
57
|
+
*
|
|
58
|
+
* A document may have more than one sidecar (e.g. after a key rotation
|
|
59
|
+
* changed the deterministic sidecar id); its folders are the union.
|
|
60
|
+
*/
|
|
61
|
+
export declare class FilingIndex implements ICacheable {
|
|
62
|
+
private readonly db;
|
|
63
|
+
private readonly store;
|
|
64
|
+
private readonly idPrefix;
|
|
65
|
+
private readonly base;
|
|
66
|
+
private generation;
|
|
67
|
+
private seq;
|
|
68
|
+
private cursor;
|
|
69
|
+
/**
|
|
70
|
+
* Deletions of filed documents in the filing database itself (physical
|
|
71
|
+
* key -> deleted at), read from the database's metadata changefeed. Feeds
|
|
72
|
+
* the automatic cleanup (MindooFilingStore). Not persisted: rebuilt from
|
|
73
|
+
* the (in-memory, cheap) metadata index once per session.
|
|
74
|
+
*/
|
|
75
|
+
private deletedTargets;
|
|
76
|
+
private targetCursor;
|
|
77
|
+
private sidecars;
|
|
78
|
+
private sidecarsByRef;
|
|
79
|
+
private membersByFolder;
|
|
80
|
+
private folders;
|
|
81
|
+
private folderIdByDocId;
|
|
82
|
+
/** First seq the change log still covers completely. */
|
|
83
|
+
private logStartSeq;
|
|
84
|
+
private log;
|
|
85
|
+
private logRefCount;
|
|
86
|
+
/** Seq ranges a crashed previous run may have handed out (see DocumentSummaryStore). */
|
|
87
|
+
private lostSeqRanges;
|
|
88
|
+
private updatePromise;
|
|
89
|
+
private updatePending;
|
|
90
|
+
private listeners;
|
|
91
|
+
private cacheManager;
|
|
92
|
+
private cachePrefix;
|
|
93
|
+
private dirty;
|
|
94
|
+
private pendingSidecars;
|
|
95
|
+
private pendingFolders;
|
|
96
|
+
private pendingFolderDocIds;
|
|
97
|
+
private pendingLog;
|
|
98
|
+
/** deletedTargets changed since the last flush. */
|
|
99
|
+
private pendingDeletedTargets;
|
|
100
|
+
/** Whether this instance wrote the current snapshot (else the next flush writes one). */
|
|
101
|
+
private ownSnapshot;
|
|
102
|
+
private journalEntriesSinceSnapshot;
|
|
103
|
+
private nextJournalSegment;
|
|
104
|
+
private readonly journalWriterId;
|
|
105
|
+
private restored;
|
|
106
|
+
private restorePromise;
|
|
107
|
+
constructor(db: MindooDB, store: string, idPrefix: string);
|
|
108
|
+
/** Name of the filing store this index covers. */
|
|
109
|
+
getStoreName(): string;
|
|
110
|
+
/** The filing database. */
|
|
111
|
+
getDatabase(): MindooDB;
|
|
112
|
+
/** Physical identity of the filing database. */
|
|
113
|
+
getBase(): FilingRefBase;
|
|
114
|
+
/**
|
|
115
|
+
* Register a listener fired after an update changed the index (membership
|
|
116
|
+
* or folder definitions).
|
|
117
|
+
*
|
|
118
|
+
* @returns An unsubscribe function.
|
|
119
|
+
*/
|
|
120
|
+
onDidChange(listener: () => void): () => void;
|
|
121
|
+
/**
|
|
122
|
+
* Bring the index up to date with the filing database. Concurrent calls
|
|
123
|
+
* share the running catch-up; a call arriving mid-run triggers exactly one
|
|
124
|
+
* follow-up run, so the returned promise always covers changes made
|
|
125
|
+
* before the call.
|
|
126
|
+
*/
|
|
127
|
+
update(): Promise<void>;
|
|
128
|
+
private runUpdate;
|
|
129
|
+
private applySidecar;
|
|
130
|
+
/** Recompute whether `ref` is a raw member of `folderId` (any sidecar has the key). */
|
|
131
|
+
private refreshMembership;
|
|
132
|
+
/** @returns whether the folder definitions changed. */
|
|
133
|
+
private applyFolder;
|
|
134
|
+
private appendLog;
|
|
135
|
+
/**
|
|
136
|
+
* Documents whose effective folders changed after position
|
|
137
|
+
* (`generation`, `seq`). Pass `null` for "never synced" (yields `"all"`).
|
|
138
|
+
*/
|
|
139
|
+
changesSince(position: {
|
|
140
|
+
generation: string;
|
|
141
|
+
seq: number;
|
|
142
|
+
} | null): FilingIndexChanges;
|
|
143
|
+
/** Current position of the index (for {@link changesSince}). */
|
|
144
|
+
getPosition(): {
|
|
145
|
+
generation: string;
|
|
146
|
+
seq: number;
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* Effective folder ids of a filed document (physical key), sorted.
|
|
150
|
+
* Folders whose definition was deleted are left out.
|
|
151
|
+
*/
|
|
152
|
+
foldersOf(physRef: string): string[];
|
|
153
|
+
/** When the document was filed into `folderId` (earliest of its sidecars), or `null`. */
|
|
154
|
+
filedAt(physRef: string, folderId: string): number | null;
|
|
155
|
+
/** Physical keys of the documents in a folder (empty for deleted folders). */
|
|
156
|
+
membersOf(folderId: string): string[];
|
|
157
|
+
/** Physical keys of every document whose sidecars list `folderId`, also when the folder is deleted. */
|
|
158
|
+
allSidecarRefsInFolder(folderId: string): string[];
|
|
159
|
+
/**
|
|
160
|
+
* Filed documents of the filing database itself whose latest state is
|
|
161
|
+
* "deleted", with the deletion time (physical key -> epoch ms).
|
|
162
|
+
*/
|
|
163
|
+
getDeletedTargets(): ReadonlyMap<string, number>;
|
|
164
|
+
/** Physical keys of every document with at least one membership key (also of deleted folders). */
|
|
165
|
+
allSidecarRefs(): string[];
|
|
166
|
+
/** Physical keys of every document filed in any (visible) folder. */
|
|
167
|
+
allFiledRefs(): string[];
|
|
168
|
+
/** Sidecar document ids of a filed document. */
|
|
169
|
+
sidecarIdsOf(physRef: string): string[];
|
|
170
|
+
/** Stored (relative) reference string of a physical key, as written into sidecars. */
|
|
171
|
+
formatRef(physRef: string): string;
|
|
172
|
+
/** A folder definition (also for deleted folders, see `deleted`), or `undefined`. */
|
|
173
|
+
getFolder(folderId: string): (FilingFolder & {
|
|
174
|
+
deleted: boolean;
|
|
175
|
+
}) | undefined;
|
|
176
|
+
/** All visible (not deleted) folder definitions. */
|
|
177
|
+
listFolders(): FilingFolder[];
|
|
178
|
+
/** Number of documents with at least one visible folder. */
|
|
179
|
+
getFiledCount(): number;
|
|
180
|
+
/**
|
|
181
|
+
* Attach cache persistence (recommended prefix: `<dbCachePrefix>/filing/<store tag>`).
|
|
182
|
+
* The persisted state is restored lazily on the first {@link update}.
|
|
183
|
+
*/
|
|
184
|
+
attachCache(cacheManager: CacheManager, cachePrefix: string): void;
|
|
185
|
+
getCachePrefix(): string;
|
|
186
|
+
hasDirtyState(): boolean;
|
|
187
|
+
clearDirty(): void;
|
|
188
|
+
/** Drop dirty markers without flushing (the records are about to be deleted). */
|
|
189
|
+
discardDirtyState(): void;
|
|
190
|
+
/**
|
|
191
|
+
* Persist the index as snapshot + journal: normally only what changed
|
|
192
|
+
* since the last flush is appended as a small segment (`filingj`); the
|
|
193
|
+
* full snapshot (`filing`) is written when this instance has none yet
|
|
194
|
+
* (also right after a restore), when the journal outgrows 10 % of the
|
|
195
|
+
* index (min. 200 changes), and on forced flushes (close). Each instance
|
|
196
|
+
* writes its own segment chain; the snapshot names the chain that
|
|
197
|
+
* continues it, so several instances on one key never interleave. A failed
|
|
198
|
+
* write keeps the pending changes for the next flush.
|
|
199
|
+
*/
|
|
200
|
+
flushToCache(store: LocalCacheStore, options?: {
|
|
201
|
+
force?: boolean;
|
|
202
|
+
}): Promise<number>;
|
|
203
|
+
private clearPending;
|
|
204
|
+
private ensureRestored;
|
|
205
|
+
private restoreFromCache;
|
|
206
|
+
}
|
|
207
|
+
/** Read the `f:<folderId> -> filedAt` membership fields of a sidecar. */
|
|
208
|
+
export declare function readFolderFields(data: Record<string, unknown>): Record<string, number>;
|
|
209
|
+
//# sourceMappingURL=FilingIndex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilingIndex.d.ts","sourceRoot":"","sources":["../../../src/core/filing/FilingIndex.ts"],"names":[],"mappings":"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"}
|