mindoodb 0.0.1
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 +263 -0
- package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.d.ts +5 -0
- package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.d.ts.map +1 -0
- package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.js +17 -0
- package/dist/appendonlystores/InMemoryContentAddressedStoreFactory.js.map +1 -0
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts +111 -0
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -0
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +237 -0
- package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -0
- package/dist/appendonlystores/network/HttpTransport.d.ts +78 -0
- package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -0
- package/dist/appendonlystores/network/HttpTransport.js +356 -0
- package/dist/appendonlystores/network/HttpTransport.js.map +1 -0
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +131 -0
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -0
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +248 -0
- package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -0
- package/dist/appendonlystores/network/index.d.ts +8 -0
- package/dist/appendonlystores/network/index.d.ts.map +1 -0
- package/dist/appendonlystores/network/index.js +21 -0
- package/dist/appendonlystores/network/index.js.map +1 -0
- package/dist/browser/crypto/BrowserCryptoAdapter.d.ts +14 -0
- package/dist/browser/crypto/BrowserCryptoAdapter.d.ts.map +1 -0
- package/dist/browser/crypto/BrowserCryptoAdapter.js +30 -0
- package/dist/browser/crypto/BrowserCryptoAdapter.js.map +1 -0
- package/dist/browser/index.d.ts +3 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +26 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/core/BaseMindooDB.d.ts +182 -0
- package/dist/core/BaseMindooDB.d.ts.map +1 -0
- package/dist/core/BaseMindooDB.js +1701 -0
- package/dist/core/BaseMindooDB.js.map +1 -0
- package/dist/core/BaseMindooTenant.d.ts +155 -0
- package/dist/core/BaseMindooTenant.d.ts.map +1 -0
- package/dist/core/BaseMindooTenant.js +673 -0
- package/dist/core/BaseMindooTenant.js.map +1 -0
- package/dist/core/BaseMindooTenantDirectory.d.ts +99 -0
- package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -0
- package/dist/core/BaseMindooTenantDirectory.js +776 -0
- package/dist/core/BaseMindooTenantDirectory.js.map +1 -0
- package/dist/core/BaseMindooTenantFactory.d.ts +91 -0
- package/dist/core/BaseMindooTenantFactory.d.ts.map +1 -0
- package/dist/core/BaseMindooTenantFactory.js +297 -0
- package/dist/core/BaseMindooTenantFactory.js.map +1 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts +111 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts.map +1 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.js +293 -0
- package/dist/core/appendonlystores/InMemoryContentAddressedStore.js.map +1 -0
- package/dist/core/appendonlystores/network/AuthenticationService.d.ts +78 -0
- package/dist/core/appendonlystores/network/AuthenticationService.d.ts.map +1 -0
- package/dist/core/appendonlystores/network/AuthenticationService.js +297 -0
- package/dist/core/appendonlystores/network/AuthenticationService.js.map +1 -0
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts +174 -0
- package/dist/core/appendonlystores/network/NetworkTransport.d.ts.map +1 -0
- package/dist/core/appendonlystores/network/NetworkTransport.js +3 -0
- package/dist/core/appendonlystores/network/NetworkTransport.js.map +1 -0
- package/dist/core/appendonlystores/network/types.d.ts +135 -0
- package/dist/core/appendonlystores/network/types.d.ts.map +1 -0
- package/dist/core/appendonlystores/network/types.js +35 -0
- package/dist/core/appendonlystores/network/types.js.map +1 -0
- package/dist/core/appendonlystores/types.d.ts +157 -0
- package/dist/core/appendonlystores/types.d.ts.map +1 -0
- package/dist/core/appendonlystores/types.js +3 -0
- package/dist/core/appendonlystores/types.js.map +1 -0
- package/dist/core/crypto/CryptoAdapter.d.ts +19 -0
- package/dist/core/crypto/CryptoAdapter.d.ts.map +1 -0
- package/dist/core/crypto/CryptoAdapter.js +3 -0
- package/dist/core/crypto/CryptoAdapter.js.map +1 -0
- package/dist/core/crypto/MindooDocSigner.d.ts +106 -0
- package/dist/core/crypto/MindooDocSigner.d.ts.map +1 -0
- package/dist/core/crypto/MindooDocSigner.js +192 -0
- package/dist/core/crypto/MindooDocSigner.js.map +1 -0
- package/dist/core/crypto/RSAEncryption.d.ts +62 -0
- package/dist/core/crypto/RSAEncryption.d.ts.map +1 -0
- package/dist/core/crypto/RSAEncryption.js +167 -0
- package/dist/core/crypto/RSAEncryption.js.map +1 -0
- package/dist/core/errors.d.ts +10 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +17 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/index.d.ts +14 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +53 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/indexing/virtualviews/IViewEntryAccessCheck.d.ts +33 -0
- package/dist/core/indexing/virtualviews/IViewEntryAccessCheck.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/IViewEntryAccessCheck.js +27 -0
- package/dist/core/indexing/virtualviews/IViewEntryAccessCheck.js.map +1 -0
- package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.d.ts +31 -0
- package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.js +3 -0
- package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.js.map +1 -0
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts +52 -0
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +106 -0
- package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKey.d.ts +44 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKey.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKey.js +107 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKey.js.map +1 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.d.ts +28 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.js +133 -0
- package/dist/core/indexing/virtualviews/ViewEntrySortKeyComparator.js.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualView.d.ts +109 -0
- package/dist/core/indexing/virtualviews/VirtualView.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualView.js +504 -0
- package/dist/core/indexing/virtualviews/VirtualView.js.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewColumn.d.ts +59 -0
- package/dist/core/indexing/virtualviews/VirtualViewColumn.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewColumn.js +70 -0
- package/dist/core/indexing/virtualviews/VirtualViewColumn.js.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewDataChange.d.ts +49 -0
- package/dist/core/indexing/virtualviews/VirtualViewDataChange.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewDataChange.js +69 -0
- package/dist/core/indexing/virtualviews/VirtualViewDataChange.js.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts +121 -0
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.js +365 -0
- package/dist/core/indexing/virtualviews/VirtualViewEntryData.js.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts +131 -0
- package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewFactory.js +236 -0
- package/dist/core/indexing/virtualviews/VirtualViewFactory.js.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewNavigator.d.ts +330 -0
- package/dist/core/indexing/virtualviews/VirtualViewNavigator.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/VirtualViewNavigator.js +1010 -0
- package/dist/core/indexing/virtualviews/VirtualViewNavigator.js.map +1 -0
- package/dist/core/indexing/virtualviews/index.d.ts +53 -0
- package/dist/core/indexing/virtualviews/index.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/index.js +89 -0
- package/dist/core/indexing/virtualviews/index.js.map +1 -0
- package/dist/core/indexing/virtualviews/types.d.ts +115 -0
- package/dist/core/indexing/virtualviews/types.d.ts.map +1 -0
- package/dist/core/indexing/virtualviews/types.js +175 -0
- package/dist/core/indexing/virtualviews/types.js.map +1 -0
- package/dist/core/keys/KeyBag.d.ts +122 -0
- package/dist/core/keys/KeyBag.d.ts.map +1 -0
- package/dist/core/keys/KeyBag.js +401 -0
- package/dist/core/keys/KeyBag.js.map +1 -0
- package/dist/core/types.d.ts +1004 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +10 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/userid/index.d.ts +53 -0
- package/dist/core/userid/index.d.ts.map +1 -0
- package/dist/core/userid/index.js +3 -0
- package/dist/core/userid/index.js.map +1 -0
- package/dist/core/utils/idGeneration.d.ts +109 -0
- package/dist/core/utils/idGeneration.d.ts.map +1 -0
- package/dist/core/utils/idGeneration.js +182 -0
- package/dist/core/utils/idGeneration.js.map +1 -0
- package/dist/core/utils/index.d.ts +5 -0
- package/dist/core/utils/index.d.ts.map +1 -0
- package/dist/core/utils/index.js +19 -0
- package/dist/core/utils/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/node/crypto/NodeCryptoAdapter.d.ts +16 -0
- package/dist/node/crypto/NodeCryptoAdapter.d.ts.map +1 -0
- package/dist/node/crypto/NodeCryptoAdapter.js +53 -0
- package/dist/node/crypto/NodeCryptoAdapter.js.map +1 -0
- package/dist/node/index.d.ts +3 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +26 -0
- package/dist/node/index.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ViewEntrySortKey = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* This sort key is used to sort VirtualViewEntryData objects within one level of the
|
|
6
|
+
* VirtualView tree structure. It sorts category elements at the top followed by documents and
|
|
7
|
+
* contains the values of the columns that are used for sorting, followed by the origin and doc id.
|
|
8
|
+
*/
|
|
9
|
+
class ViewEntrySortKey {
|
|
10
|
+
constructor(isCategory, values, origin, docId, isScanKey) {
|
|
11
|
+
/** Cached hash code */
|
|
12
|
+
this._hashCode = null;
|
|
13
|
+
this.isCategory = isCategory;
|
|
14
|
+
this.values = Object.freeze([...values]);
|
|
15
|
+
this.origin = origin;
|
|
16
|
+
this.docId = docId;
|
|
17
|
+
this.isScanKey = isScanKey;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Creates a scan key for range queries (used with LOW_SORTVAL/HIGH_SORTVAL)
|
|
21
|
+
*/
|
|
22
|
+
static createScanKey(isCategory, values, origin, docId) {
|
|
23
|
+
return new ViewEntrySortKey(isCategory, values, origin, docId, true);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Creates a regular sort key for entries
|
|
27
|
+
*/
|
|
28
|
+
static createSortKey(isCategory, values, origin, docId) {
|
|
29
|
+
return new ViewEntrySortKey(isCategory, values, origin, docId, false);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Generates a unique string key for use in Maps/Sets
|
|
33
|
+
*/
|
|
34
|
+
toKey() {
|
|
35
|
+
const typePrefix = this.isCategory ? "C" : "D";
|
|
36
|
+
const valuesStr = JSON.stringify(this.values);
|
|
37
|
+
return `${typePrefix}:${valuesStr}:${this.origin}:${this.docId}`;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Returns a hash code for this sort key
|
|
41
|
+
*/
|
|
42
|
+
hashCode() {
|
|
43
|
+
if (this._hashCode === null) {
|
|
44
|
+
let hash = this.isCategory ? 1 : 0;
|
|
45
|
+
hash = hash * 31 + this.hashString(this.origin);
|
|
46
|
+
hash = hash * 31 + this.hashString(this.docId);
|
|
47
|
+
for (const val of this.values) {
|
|
48
|
+
hash = hash * 31 + this.hashValue(val);
|
|
49
|
+
}
|
|
50
|
+
this._hashCode = hash;
|
|
51
|
+
}
|
|
52
|
+
return this._hashCode;
|
|
53
|
+
}
|
|
54
|
+
hashString(str) {
|
|
55
|
+
let hash = 0;
|
|
56
|
+
for (let i = 0; i < str.length; i++) {
|
|
57
|
+
const char = str.charCodeAt(i);
|
|
58
|
+
hash = ((hash << 5) - hash) + char;
|
|
59
|
+
hash = hash & hash; // Convert to 32bit integer
|
|
60
|
+
}
|
|
61
|
+
return hash;
|
|
62
|
+
}
|
|
63
|
+
hashValue(val) {
|
|
64
|
+
if (val === null || val === undefined)
|
|
65
|
+
return 0;
|
|
66
|
+
if (typeof val === "number")
|
|
67
|
+
return val;
|
|
68
|
+
if (typeof val === "string")
|
|
69
|
+
return this.hashString(val);
|
|
70
|
+
if (val instanceof Date)
|
|
71
|
+
return val.getTime();
|
|
72
|
+
return this.hashString(String(val));
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Checks equality with another sort key
|
|
76
|
+
*/
|
|
77
|
+
equals(other) {
|
|
78
|
+
if (this === other)
|
|
79
|
+
return true;
|
|
80
|
+
if (this.isCategory !== other.isCategory)
|
|
81
|
+
return false;
|
|
82
|
+
if (this.origin !== other.origin)
|
|
83
|
+
return false;
|
|
84
|
+
if (this.docId !== other.docId)
|
|
85
|
+
return false;
|
|
86
|
+
if (this.values.length !== other.values.length)
|
|
87
|
+
return false;
|
|
88
|
+
for (let i = 0; i < this.values.length; i++) {
|
|
89
|
+
const v1 = this.values[i];
|
|
90
|
+
const v2 = other.values[i];
|
|
91
|
+
if (v1 instanceof Date && v2 instanceof Date) {
|
|
92
|
+
if (v1.getTime() !== v2.getTime())
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
else if (v1 !== v2) {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
toString() {
|
|
102
|
+
const type = this.isCategory ? "category" : "document";
|
|
103
|
+
return `ViewEntrySortKey [type=${type}, values=${JSON.stringify(this.values)}, origin=${this.origin}, docId=${this.docId}]`;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.ViewEntrySortKey = ViewEntrySortKey;
|
|
107
|
+
//# sourceMappingURL=ViewEntrySortKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewEntrySortKey.js","sourceRoot":"","sources":["../../../../src/core/indexing/virtualviews/ViewEntrySortKey.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ViewEntrySortKey } from "./ViewEntrySortKey";
|
|
2
|
+
import { CategorizationStyle } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Comparator to sort ViewEntrySortKey objects within one level of the VirtualView tree structure.
|
|
5
|
+
* Handles categorization style (categories before/after documents), sort direction per column,
|
|
6
|
+
* and type-aware value comparison.
|
|
7
|
+
*/
|
|
8
|
+
export declare class ViewEntrySortKeyComparator {
|
|
9
|
+
/** Whether categories should appear before documents */
|
|
10
|
+
private readonly categoriesOnTopOfDocuments;
|
|
11
|
+
/** Whether categories should be sorted in descending order */
|
|
12
|
+
private readonly categoryOrderDescending;
|
|
13
|
+
/** Per-column descending flags for document sorting */
|
|
14
|
+
private readonly docOrderPerColumnDescending;
|
|
15
|
+
constructor(categorizationStyle: CategorizationStyle, categoryOrderDescending: boolean, docOrderPerColumnDescending: boolean[]);
|
|
16
|
+
/**
|
|
17
|
+
* Compare two sort keys for ordering
|
|
18
|
+
*
|
|
19
|
+
* @param o1 First sort key
|
|
20
|
+
* @param o2 Second sort key
|
|
21
|
+
* @returns Negative if o1 < o2, positive if o1 > o2, 0 if equal
|
|
22
|
+
*/
|
|
23
|
+
compare(o1: ViewEntrySortKey, o2: ViewEntrySortKey): number;
|
|
24
|
+
private compareCategories;
|
|
25
|
+
private compareDocuments;
|
|
26
|
+
private compareOriginAndDocId;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=ViewEntrySortKeyComparator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewEntrySortKeyComparator.d.ts","sourceRoot":"","sources":["../../../../src/core/indexing/virtualviews/ViewEntrySortKeyComparator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EACL,mBAAmB,EAMpB,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,qBAAa,0BAA0B;IACrC,wDAAwD;IACxD,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAU;IAErD,8DAA8D;IAC9D,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAU;IAElD,uDAAuD;IACvD,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAqB;gBAG/D,mBAAmB,EAAE,mBAAmB,EACxC,uBAAuB,EAAE,OAAO,EAChC,2BAA2B,EAAE,OAAO,EAAE;IAQxC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,GAAG,MAAM;IAwB3D,OAAO,CAAC,iBAAiB;IA4CzB,OAAO,CAAC,gBAAgB;IAyCxB,OAAO,CAAC,qBAAqB;CA2B9B"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ViewEntrySortKeyComparator = void 0;
|
|
4
|
+
const types_1 = require("./types");
|
|
5
|
+
/**
|
|
6
|
+
* Comparator to sort ViewEntrySortKey objects within one level of the VirtualView tree structure.
|
|
7
|
+
* Handles categorization style (categories before/after documents), sort direction per column,
|
|
8
|
+
* and type-aware value comparison.
|
|
9
|
+
*/
|
|
10
|
+
class ViewEntrySortKeyComparator {
|
|
11
|
+
constructor(categorizationStyle, categoryOrderDescending, docOrderPerColumnDescending) {
|
|
12
|
+
this.categoriesOnTopOfDocuments =
|
|
13
|
+
categorizationStyle === types_1.CategorizationStyle.CATEGORY_THEN_DOCUMENT;
|
|
14
|
+
this.categoryOrderDescending = categoryOrderDescending;
|
|
15
|
+
this.docOrderPerColumnDescending = Object.freeze([...docOrderPerColumnDescending]);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Compare two sort keys for ordering
|
|
19
|
+
*
|
|
20
|
+
* @param o1 First sort key
|
|
21
|
+
* @param o2 Second sort key
|
|
22
|
+
* @returns Negative if o1 < o2, positive if o1 > o2, 0 if equal
|
|
23
|
+
*/
|
|
24
|
+
compare(o1, o2) {
|
|
25
|
+
const values1 = o1.values;
|
|
26
|
+
const values2 = o2.values;
|
|
27
|
+
const isCategory1 = o1.isCategory;
|
|
28
|
+
const isCategory2 = o2.isCategory;
|
|
29
|
+
// Handle category vs document ordering
|
|
30
|
+
if (isCategory1 && !isCategory2) {
|
|
31
|
+
return this.categoriesOnTopOfDocuments ? -1 : 1;
|
|
32
|
+
}
|
|
33
|
+
if (!isCategory1 && isCategory2) {
|
|
34
|
+
return this.categoriesOnTopOfDocuments ? 1 : -1;
|
|
35
|
+
}
|
|
36
|
+
// Both are categories
|
|
37
|
+
if (isCategory1 && isCategory2) {
|
|
38
|
+
return this.compareCategories(o1, o2, values1, values2);
|
|
39
|
+
}
|
|
40
|
+
// Both are documents
|
|
41
|
+
return this.compareDocuments(o1, o2, values1, values2);
|
|
42
|
+
}
|
|
43
|
+
compareCategories(o1, o2, values1, values2) {
|
|
44
|
+
const catVal1 = values1.length > 0 ? values1[0] : null;
|
|
45
|
+
const catVal2 = values2.length > 0 ? values2[0] : null;
|
|
46
|
+
// Handle special sentinel values
|
|
47
|
+
if (catVal1 === types_1.LOW_SORTVAL) {
|
|
48
|
+
return catVal2 === types_1.LOW_SORTVAL ? 0 : -1;
|
|
49
|
+
}
|
|
50
|
+
if (catVal2 === types_1.LOW_SORTVAL) {
|
|
51
|
+
return 1;
|
|
52
|
+
}
|
|
53
|
+
if (catVal1 === types_1.HIGH_SORTVAL) {
|
|
54
|
+
return catVal2 === types_1.HIGH_SORTVAL ? 0 : 1;
|
|
55
|
+
}
|
|
56
|
+
if (catVal2 === types_1.HIGH_SORTVAL) {
|
|
57
|
+
return -1;
|
|
58
|
+
}
|
|
59
|
+
// Sort null category values to the bottom ("(Not categorized)")
|
|
60
|
+
if (catVal1 === null || catVal1 === undefined) {
|
|
61
|
+
if (catVal2 === null || catVal2 === undefined) {
|
|
62
|
+
return this.compareOriginAndDocId(o1, o2);
|
|
63
|
+
}
|
|
64
|
+
return this.categoryOrderDescending ? -1 : 1;
|
|
65
|
+
}
|
|
66
|
+
if (catVal2 === null || catVal2 === undefined) {
|
|
67
|
+
return this.categoryOrderDescending ? 1 : -1;
|
|
68
|
+
}
|
|
69
|
+
// Compare category values
|
|
70
|
+
const result = (0, types_1.compareValues)(catVal1, catVal2, this.categoryOrderDescending);
|
|
71
|
+
if (result !== 0) {
|
|
72
|
+
return result;
|
|
73
|
+
}
|
|
74
|
+
// Category values are equal, sort by origin and doc id
|
|
75
|
+
return this.compareOriginAndDocId(o1, o2);
|
|
76
|
+
}
|
|
77
|
+
compareDocuments(o1, o2, values1, values2) {
|
|
78
|
+
const nrOfValues = Math.max(values1.length, values2.length);
|
|
79
|
+
for (let i = 0; i < nrOfValues; i++) {
|
|
80
|
+
let currValue1 = i < values1.length ? values1[i] : null;
|
|
81
|
+
let currValue2 = i < values2.length ? values2[i] : null;
|
|
82
|
+
// Handle special sentinel values
|
|
83
|
+
if (currValue1 === types_1.LOW_SORTVAL) {
|
|
84
|
+
return currValue2 === types_1.LOW_SORTVAL ? 0 : -1;
|
|
85
|
+
}
|
|
86
|
+
if (currValue2 === types_1.LOW_SORTVAL) {
|
|
87
|
+
return 1;
|
|
88
|
+
}
|
|
89
|
+
if (currValue1 === types_1.HIGH_SORTVAL) {
|
|
90
|
+
return currValue2 === types_1.HIGH_SORTVAL ? 0 : 1;
|
|
91
|
+
}
|
|
92
|
+
if (currValue2 === types_1.HIGH_SORTVAL) {
|
|
93
|
+
return -1;
|
|
94
|
+
}
|
|
95
|
+
// Determine descending flag for this column
|
|
96
|
+
const descending = i < this.docOrderPerColumnDescending.length
|
|
97
|
+
? this.docOrderPerColumnDescending[i]
|
|
98
|
+
: false;
|
|
99
|
+
const result = (0, types_1.compareValues)(currValue1, currValue2, descending);
|
|
100
|
+
if (result !== 0) {
|
|
101
|
+
return result;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// All column sort values equal, now sort by origin and doc id
|
|
105
|
+
return this.compareOriginAndDocId(o1, o2);
|
|
106
|
+
}
|
|
107
|
+
compareOriginAndDocId(o1, o2) {
|
|
108
|
+
const origin1 = o1.origin;
|
|
109
|
+
const origin2 = o2.origin;
|
|
110
|
+
// Handle special origin values
|
|
111
|
+
if (origin1 === types_1.LOW_ORIGIN) {
|
|
112
|
+
return origin2 === types_1.LOW_ORIGIN ? 0 : -1;
|
|
113
|
+
}
|
|
114
|
+
if (origin2 === types_1.LOW_ORIGIN) {
|
|
115
|
+
return 1;
|
|
116
|
+
}
|
|
117
|
+
if (origin1 === types_1.HIGH_ORIGIN) {
|
|
118
|
+
return origin2 === types_1.HIGH_ORIGIN ? 0 : 1;
|
|
119
|
+
}
|
|
120
|
+
if (origin2 === types_1.HIGH_ORIGIN) {
|
|
121
|
+
return -1;
|
|
122
|
+
}
|
|
123
|
+
// Compare origins
|
|
124
|
+
const originResult = origin1.localeCompare(origin2);
|
|
125
|
+
if (originResult !== 0) {
|
|
126
|
+
return originResult;
|
|
127
|
+
}
|
|
128
|
+
// Compare doc ids
|
|
129
|
+
return o1.docId.localeCompare(o2.docId);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.ViewEntrySortKeyComparator = ViewEntrySortKeyComparator;
|
|
133
|
+
//# sourceMappingURL=ViewEntrySortKeyComparator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ViewEntrySortKeyComparator.js","sourceRoot":"","sources":["../../../../src/core/indexing/virtualviews/ViewEntrySortKeyComparator.ts"],"names":[],"mappings":";;;AACA,mCAOiB;AAEjB;;;;GAIG;AACH,MAAa,0BAA0B;IAUrC,YACE,mBAAwC,EACxC,uBAAgC,EAChC,2BAAsC;QAEtC,IAAI,CAAC,0BAA0B;YAC7B,mBAAmB,KAAK,2BAAmB,CAAC,sBAAsB,CAAC;QACrE,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,2BAA2B,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC;IACrF,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,EAAoB,EAAE,EAAoB;QAChD,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;QAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;QAE1B,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC;QAClC,MAAM,WAAW,GAAG,EAAE,CAAC,UAAU,CAAC;QAElC,uCAAuC;QACvC,IAAI,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,WAAW,IAAI,WAAW,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,sBAAsB;QACtB,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QAED,qBAAqB;QACrB,OAAO,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAEO,iBAAiB,CACvB,EAAoB,EACpB,EAAoB,EACpB,OAA2B,EAC3B,OAA2B;QAE3B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACvD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEvD,iCAAiC;QACjC,IAAI,OAAO,KAAK,mBAAW,EAAE,CAAC;YAC5B,OAAO,OAAO,KAAK,mBAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,OAAO,KAAK,mBAAW,EAAE,CAAC;YAC5B,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,OAAO,KAAK,oBAAY,EAAE,CAAC;YAC7B,OAAO,OAAO,KAAK,oBAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,OAAO,KAAK,oBAAY,EAAE,CAAC;YAC7B,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QAED,gEAAgE;QAChE,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC9C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC9C,OAAO,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,0BAA0B;QAC1B,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC7E,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,uDAAuD;QACvD,OAAO,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IAEO,gBAAgB,CACtB,EAAoB,EACpB,EAAoB,EACpB,OAA2B,EAC3B,OAA2B;QAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAE5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,IAAI,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACxD,IAAI,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAExD,iCAAiC;YACjC,IAAI,UAAU,KAAK,mBAAW,EAAE,CAAC;gBAC/B,OAAO,UAAU,KAAK,mBAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,UAAU,KAAK,mBAAW,EAAE,CAAC;gBAC/B,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,UAAU,KAAK,oBAAY,EAAE,CAAC;gBAChC,OAAO,UAAU,KAAK,oBAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,UAAU,KAAK,oBAAY,EAAE,CAAC;gBAChC,OAAO,CAAC,CAAC,CAAC;YACZ,CAAC;YAED,4CAA4C;YAC5C,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM;gBAC5D,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;gBACrC,CAAC,CAAC,KAAK,CAAC;YAEV,MAAM,MAAM,GAAG,IAAA,qBAAa,EAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YACjE,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjB,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,OAAO,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;IAEO,qBAAqB,CAAC,EAAoB,EAAE,EAAoB;QACtE,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;QAC1B,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC;QAE1B,+BAA+B;QAC/B,IAAI,OAAO,KAAK,kBAAU,EAAE,CAAC;YAC3B,OAAO,OAAO,KAAK,kBAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,KAAK,kBAAU,EAAE,CAAC;YAC3B,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,OAAO,KAAK,mBAAW,EAAE,CAAC;YAC5B,OAAO,OAAO,KAAK,mBAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,OAAO,KAAK,mBAAW,EAAE,CAAC;YAC5B,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QAED,kBAAkB;QAClB,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,kBAAkB;QAClB,OAAO,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAC1C,CAAC;CACF;AApKD,gEAoKC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { VirtualViewColumn } from "./VirtualViewColumn";
|
|
2
|
+
import { VirtualViewEntryData } from "./VirtualViewEntryData";
|
|
3
|
+
import { VirtualViewDataChange } from "./VirtualViewDataChange";
|
|
4
|
+
import type { IVirtualViewDataProvider } from "./IVirtualViewDataProvider";
|
|
5
|
+
import { CategorizationStyle } from "./types";
|
|
6
|
+
/**
|
|
7
|
+
* VirtualView creates a hierarchical, sorted view of documents from one or more MindooDB instances.
|
|
8
|
+
* Documents are organized into categories (tree structure) with sorting and optional totals.
|
|
9
|
+
*/
|
|
10
|
+
export declare class VirtualView {
|
|
11
|
+
/** All columns in the view */
|
|
12
|
+
private readonly columns;
|
|
13
|
+
/** Category columns (in order) */
|
|
14
|
+
private readonly categoryColumns;
|
|
15
|
+
/** Non-category sorted columns */
|
|
16
|
+
private readonly sortColumns;
|
|
17
|
+
/** Columns with total aggregation */
|
|
18
|
+
private readonly totalColumns;
|
|
19
|
+
/** Columns with value functions */
|
|
20
|
+
private readonly valueFunctionColumns;
|
|
21
|
+
/** Descending flags for document sort columns */
|
|
22
|
+
private readonly docOrderDescending;
|
|
23
|
+
/** Whether the view has any total columns */
|
|
24
|
+
private readonly viewHasTotalColumns;
|
|
25
|
+
/** Categorization style (categories before/after documents) */
|
|
26
|
+
private categorizationStyle;
|
|
27
|
+
/** Whether the index has been built */
|
|
28
|
+
private indexBuilt;
|
|
29
|
+
/** Root entry of the view tree */
|
|
30
|
+
private rootEntry;
|
|
31
|
+
/** Counter for generating category IDs */
|
|
32
|
+
private categoryIdCounter;
|
|
33
|
+
/** Map of origin:docId -> list of entry occurrences */
|
|
34
|
+
private entriesByDocId;
|
|
35
|
+
/** Data providers */
|
|
36
|
+
private dataProviderByOrigin;
|
|
37
|
+
/** Entries pending sibling index recalculation */
|
|
38
|
+
private pendingSiblingIndexFlush;
|
|
39
|
+
/** Last index update timestamp */
|
|
40
|
+
private lastIndexUpdateTime;
|
|
41
|
+
constructor(columns: VirtualViewColumn[]);
|
|
42
|
+
/**
|
|
43
|
+
* Set the categorization style
|
|
44
|
+
*/
|
|
45
|
+
setCategorizationStyle(style: CategorizationStyle): this;
|
|
46
|
+
getCategorizationStyle(): CategorizationStyle;
|
|
47
|
+
getColumns(): VirtualViewColumn[];
|
|
48
|
+
getCategoryColumns(): VirtualViewColumn[];
|
|
49
|
+
getSortColumns(): VirtualViewColumn[];
|
|
50
|
+
getTotalColumns(): VirtualViewColumn[];
|
|
51
|
+
/**
|
|
52
|
+
* Add a data provider to the view
|
|
53
|
+
*/
|
|
54
|
+
addDataProvider(provider: IVirtualViewDataProvider): this;
|
|
55
|
+
/**
|
|
56
|
+
* Get all data providers
|
|
57
|
+
*/
|
|
58
|
+
getDataProviders(): IterableIterator<IVirtualViewDataProvider>;
|
|
59
|
+
/**
|
|
60
|
+
* Get a data provider by origin
|
|
61
|
+
*/
|
|
62
|
+
getDataProvider(origin: string): IVirtualViewDataProvider | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* Update all data providers (async)
|
|
65
|
+
*/
|
|
66
|
+
update(): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Update a specific data provider by origin
|
|
69
|
+
*/
|
|
70
|
+
updateOrigin(origin: string): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Get the root entry of the view
|
|
73
|
+
*/
|
|
74
|
+
getRoot(): VirtualViewEntryData;
|
|
75
|
+
/**
|
|
76
|
+
* Generate a new category ID
|
|
77
|
+
*/
|
|
78
|
+
private createNewCategoryId;
|
|
79
|
+
/**
|
|
80
|
+
* Get the last index update time
|
|
81
|
+
*/
|
|
82
|
+
getLastModifiedTime(): number | null;
|
|
83
|
+
/**
|
|
84
|
+
* Apply changes from a data provider
|
|
85
|
+
*/
|
|
86
|
+
applyChanges(change: VirtualViewDataChange): void;
|
|
87
|
+
/**
|
|
88
|
+
* Override this method to filter entries
|
|
89
|
+
*/
|
|
90
|
+
protected isAccepted(origin: string, docId: string, columnValues: Record<string, unknown>): boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Add an entry to the view hierarchy
|
|
93
|
+
*/
|
|
94
|
+
private addEntry;
|
|
95
|
+
private getFirstListValue;
|
|
96
|
+
private addDocToCountsOfParents;
|
|
97
|
+
private removeDocFromCountsOfParents;
|
|
98
|
+
private addDocToTotalsOfParents;
|
|
99
|
+
private removeDocFromTotalsOfParents;
|
|
100
|
+
private computeTotalColumnValues;
|
|
101
|
+
private removeCategoryFromParent;
|
|
102
|
+
private markEntryForSiblingIndexFlush;
|
|
103
|
+
private processPendingSiblingIndexUpdates;
|
|
104
|
+
/**
|
|
105
|
+
* Get all entries for a document ID
|
|
106
|
+
*/
|
|
107
|
+
getEntries(origin: string, docId: string): VirtualViewEntryData[];
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=VirtualView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VirtualView.d.ts","sourceRoot":"","sources":["../../../../src/core/indexing/virtualviews/VirtualView.ts"],"names":[],"mappings":"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"}
|