axiodb 20.6.7 → 21.7.8
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/.commandcode/settings.json +24 -0
- package/.commandcode/taste/taste.md +2 -0
- package/.commandcode/taste/user-taste-profile/taste.md +39 -0
- package/README.md +2 -1
- package/lib/Memory/memory.operation.d.ts +19 -7
- package/lib/Memory/memory.operation.js +32 -12
- package/lib/Memory/memory.operation.js.map +1 -1
- package/lib/Services/CRUD Operation/Delete.operation.d.ts +3 -1
- package/lib/Services/CRUD Operation/Delete.operation.js +4 -3
- package/lib/Services/CRUD Operation/Delete.operation.js.map +1 -1
- package/lib/Services/CRUD Operation/Reader.operation.d.ts +4 -1
- package/lib/Services/CRUD Operation/Reader.operation.js +7 -7
- package/lib/Services/CRUD Operation/Reader.operation.js.map +1 -1
- package/lib/Services/CRUD Operation/Update.operation.d.ts +3 -1
- package/lib/Services/CRUD Operation/Update.operation.js +4 -3
- package/lib/Services/CRUD Operation/Update.operation.js.map +1 -1
- package/lib/Services/Collection/collection.operation.d.ts +3 -1
- package/lib/Services/Collection/collection.operation.js +7 -6
- package/lib/Services/Collection/collection.operation.js.map +1 -1
- package/lib/Services/Database/database.operation.d.ts +3 -1
- package/lib/Services/Database/database.operation.js +3 -2
- package/lib/Services/Database/database.operation.js.map +1 -1
- package/lib/Services/Indexation.operation.d.ts +8 -0
- package/lib/Services/Indexation.operation.js +17 -2
- package/lib/Services/Indexation.operation.js.map +1 -1
- package/lib/Services/Transaction/Session.service.d.ts +3 -1
- package/lib/Services/Transaction/Session.service.js +3 -2
- package/lib/Services/Transaction/Session.service.js.map +1 -1
- package/lib/Services/Transaction/Transaction.service.d.ts +3 -1
- package/lib/Services/Transaction/Transaction.service.js +4 -4
- package/lib/Services/Transaction/Transaction.service.js.map +1 -1
- package/lib/config/Interfaces/Operation/Indexation.operation.interface.d.ts +8 -0
- package/lib/server/controller/Stats.controller.js +1 -2
- package/lib/server/controller/Stats.controller.js.map +1 -1
- package/lib/server/router/Router.js +1 -2
- package/lib/server/router/Router.js.map +1 -1
- package/lib/tcp/connection/TransactionManager.d.ts +2 -1
- package/lib/tcp/connection/TransactionManager.js +2 -2
- package/lib/tcp/connection/TransactionManager.js.map +1 -1
- package/lib/tcp/handler/handlers/Transaction.handler.js +1 -1
- package/lib/tcp/handler/handlers/Transaction.handler.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Shell(cd /home/ankan/Documents/Projects/AxioDB && npm test > /tmp/npmtest-100K.log 2>&1; echo \"EXIT:$?\"; grep -E \"Suites Passed|✗ FAILED\" /tmp/npmtest-100K.log)",
|
|
5
|
+
"Shell(grep:*)",
|
|
6
|
+
"Shell(sed:*)",
|
|
7
|
+
"Shell(lscpu:*)",
|
|
8
|
+
"Shell(free:*)",
|
|
9
|
+
"Shell(node -v)",
|
|
10
|
+
"Shell(cd /home/ankan/Documents/Projects/AxioDB && printf '%s\\n' '{\"size\":100000,\"indexed\":1,\"documentId\":1,\"gtRange\":1123,\"gteLteRange\":807,\"inOp5\":533,\"inOp50\":2047,\"limit5\":1709,\"regex\":1959,\"sort\":1217,\"fullScan\":1781,\"indexedQuery\":1,\"cacheFirst\":703,\"cacheHit\":0}' >> Document/src/data/numbers.jsonl && cat Document/src/data/numbers.jsonl)",
|
|
11
|
+
"Shell(npm:*)",
|
|
12
|
+
"Shell(ls:*)",
|
|
13
|
+
"Shell(awk:*)",
|
|
14
|
+
"Shell(rm -rf /home/ankan/Documents/Projects/AxioDB/Document/api /home/ankan/Documents/Projects/AxioDB/Document/src/services/dockerApi.ts /home/ankan/Documents/Projects/AxioDB/Document/src/data/docker-stats.json 2>/dev/null; echo \"done\")",
|
|
15
|
+
"Shell(xxd:*)",
|
|
16
|
+
"Shell(cd /home/ankan/Documents/Projects/AxioDB/Document/public && sed -i '7s/.*/AxioDB is a file-based embedded database for Node.js. It replaces SQLite, LowDB, NeDB, and raw JSON files with a single `npm install` \\xe2\\x80\\x94 MongoDB-style queries, ACID transactions, InMemoryCache, and zero native C bindings. No compilation, no platform-specific builds, no ABI to match./' llms.txt && sed -n '7p' llms.txt)",
|
|
17
|
+
"Shell(gh:*)",
|
|
18
|
+
"Shell(echo \"21.7.8\" > /home/ankan/Documents/Projects/AxioDB/cli/VERSION && cat /home/ankan/Documents/Projects/AxioDB/cli/VERSION)",
|
|
19
|
+
"Shell(tee:*)"
|
|
20
|
+
],
|
|
21
|
+
"deny": [],
|
|
22
|
+
"defaultMode": "default"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# User Taste Profile
|
|
2
|
+
- Expects the assistant to explain and analyze before writing code — applies to reading context ("take context dont code or do action, take context & then tell me"), architectural feasibility questions, and design discussions ("dont code, first tell me"). Always wants to understand implications, tradeoffs, and what would change before any implementation begins. Confidence: 0.95
|
|
3
|
+
- Prefers gathering context from multiple files simultaneously before forming a response, rather than sequential single-file reads. Confidence: 0.7
|
|
4
|
+
- Prefers structured summaries (tables, bullet points) when reviewing benchmark data or session histories. Confidence: 0.65
|
|
5
|
+
- Bundles multi-step tasks in a single message (e.g., "run benchmark → save numbers → create performance page") and expects the assistant to execute the full pipeline without asking clarifying questions at each step. Confidence: 0.85
|
|
6
|
+
- Uses very abbreviated, shorthand communication ("rn", "same as previous", dropping articles/pronouns) — expects the assistant to infer full intent from context. Confidence: 0.8
|
|
7
|
+
- Expects polished, "beautiful UI/UX" for documentation and presentation pages — values rich visual design (charts, gradients, cards, data tables) over plain layouts. Pushes for improvements even when initial result is "nice" — wants it to "deserve much better." Confidence: 0.85
|
|
8
|
+
- Wants data table values to include unit labels (e.g., "ms") rather than raw numbers alone, for readability and clarity. Confidence: 0.85
|
|
9
|
+
- Wants contextual metadata included alongside data: machine specs, timestamps, and methodology alongside benchmark numbers. Confidence: 0.7
|
|
10
|
+
- Expects comprehensive, exhaustive coverage in benchmark/performance reports — not just a subset of metrics but ALL operation types (CRUD, transactions, HTTP, TCP, crash recovery, etc.). Will ask "do you have all case?" if only a partial dataset is shown. Confidence: 0.8
|
|
11
|
+
- Wants benchmark/performance numbers synchronized across ALL project surfaces — when a dataset is updated (e.g., 50K→100K), expects every page referencing those numbers to be updated in lockstep: component pages, llms.txt, llms-full.txt, index.html JSON-LD, SKILL.md, README.md, sitemap, and agent-skills metadata. Expects the assistant to proactively discover and audit every stale reference, not wait for explicit per-file instructions. Confidence: 0.9
|
|
12
|
+
- Prefers overview/summary pages to include condensed summaries of subsystems (e.g., test suite grids) with links to dedicated detail pages, rather than duplicating all data inline. Confidence: 0.7
|
|
13
|
+
- Prefers live/dynamic data fetched from APIs over hardcoded static values for stats like download counts, pull counts, etc. Explicitly requested npm and Docker numbers be "dynamic from npmjs stats." Confidence: 0.8
|
|
14
|
+
- Rejects hardcoded domains in frontend code — expects URLs to use `window.location.origin` so they work on any host (localhost, staging, production). Called out a hardcoded `https://axiodb.in` URL: "why hard coded domain? take the domain current URL." Confidence: 0.9
|
|
15
|
+
- Wants platform-specific branding (badges/logos) next to stats to visually identify data sources (e.g., npm logo, Docker logo from simple-icons CDN). Confidence: 0.75
|
|
16
|
+
- Prefers consolidating stats from multiple platforms (npm, Docker, GitHub) into a single unified dashboard/section rather than scattered across separate pages. Requested Docker stats shown "near npm one." Confidence: 0.75
|
|
17
|
+
- When CORS blocks client-side API calls, insists on SSR (runtime server-side proxy) — not SSG or build-time scripts. Expects a server endpoint that fetches at runtime and sends JSON to the client. Explicitly corrected: "are you mad? i told you SSR not SSG." Also rejected build-time pre-generation: "not build time, fetch server side then send to client side." Confidence: 0.95
|
|
18
|
+
- Expects API endpoints organized under a dedicated `api/` folder (file-based routing convention) — not inline route handlers in a standalone server file. Explicitly rejected a monolithic `server.ts` with inline routes: "use /api not this, like under api folder." Confidence: 0.9
|
|
19
|
+
- When a feature has gone through multiple failed implementation attempts, prefers to completely scrap and remove it rather than keep iterating: "no no remove that docker one completely." Values clean reverts over incremental fixes on a broken path. Confidence: 0.85
|
|
20
|
+
- Cares deeply that documentation/agent-skill content has precise, unambiguous syntax — wants examples that "will not get confused" by end users implementing against the API. Expects comprehensive coverage (core engine + TCP client) in a single skill file so users don't have to piece things together. Confidence: 0.85
|
|
21
|
+
- Prefers documentation examples to use realistic multi-machine scenarios (e.g., Machine A with a real IP as server, Machine B as client) rather than localhost-only snippets — wants users to immediately understand the real deployment topology. Asked: "if i want to set my AxioDB A as TCP server & from B want to connect?" Confidence: 0.8
|
|
22
|
+
- When crafting copy-to-clipboard prompts for AI agents, prefers instructions that tell the AI to "save" or "fetch and store" the skill/reference, not just "load" it — so the AI can reference it across the session without re-fetching. Explicitly: "instruct ai to save the skill whenever needed this load this." Confidence: 0.8
|
|
23
|
+
- Prefers marketing/subtitle copy that leads with competitor pain points (e.g., node-gyp failures, electron-rebuild issues, SQLite C binding errors) before stating the product's solution — Pain → Solution formula, not dry feature lists. Asked to explicitly contrast against SQLite native binding errors and JSON file limitations. Confidence: 0.85
|
|
24
|
+
- When asked to write copy, taglines, or persuasive text, expects the agent to web-search best practices and study examples first ("do web search about that how to write a high catchy sub text & then plan then edit") — research-informed content, not just gut-feel writing. Confidence: 0.8
|
|
25
|
+
- Prefers brand positioning that is broad and category-defining (e.g., "The Embedded Database for Node.js") rather than narrow "alternative to X" framing — wants the product to own the category, not be defined by a single competitor. Explicitly rejected "SQLite Alternative for JavaScript" as too limiting: "it not be that like, show like why, because it solves not only SQLite issue." Confidence: 0.85
|
|
26
|
+
- Wants positioning copy to explicitly name all competitors being replaced (SQLite, LowDB, NeDB, raw JSON) so developers immediately understand the scope — not just "alternative to SQLite" but "Replaces SQLite, LowDB, NeDB & raw JSON files." Confidence: 0.85
|
|
27
|
+
- When a brand/positioning change is made, expects a comprehensive sweep updating EVERY surface simultaneously — Introduction.tsx hero, SEO meta tags, Header.tsx descriptions, llms.txt, llms-full.txt, README.md, package.json, Installation.tsx, SKILL.md, agent-skills/index.json, and index.html JSON-LD. Treats this as a mandatory holistic update, not per-file edits. Confidence: 0.9
|
|
28
|
+
- Wants badges/shields to be fully consistent across all surfaces — if README has badges, Introduction.tsx (docs site) should have the same full set. Notices when one surface has fewer badges than another and considers it an inconsistency to fix. Confidence: 0.8
|
|
29
|
+
- Prefers CLI tools described as just "CLI" without exposing the implementation language (e.g., don't mention Go, Golang, Rust) — the interface matters, not what it's built with. Explicitly: "in cli related things in site dont mentioned Go based or Golang based, just CLI." Confidence: 0.85
|
|
30
|
+
- Uses the `gh` CLI tool to manage GitHub repo metadata (description, topics, homepage URL) and expects it to be part of branding/SEO sweeps. Explicitly instructed: "use gh tool in my shell to access the AxioDB repo." Confidence: 0.85
|
|
31
|
+
- Wants version numbers kept in perfect sync across ALL project surfaces — uses `package.json` as the single source of truth. Expects a comprehensive grep-and-fix sweep of every file (llms.txt, llms-full.txt, Docker README, docs, README badges, etc.) when a version is bumped or when asked to "sync all versions." Confidence: 0.85
|
|
32
|
+
- Wants GitHub repo metadata (description, topics, homepage) included in comprehensive branding updates alongside docs, README, package.json, etc. — not just code surfaces but also the GitHub "About" section and topic tags. Confidence: 0.8
|
|
33
|
+
- Notices and flags small numerical inconsistencies between UI-displayed values and badge values (e.g., "32.7K" vs "33K") — wants explanations for discrepancies even when minor. Confidence: 0.7
|
|
34
|
+
- When updating test dataset sizes, expects a full unfiltered `npm test` run followed by empirical verification that benchmark numbers match what's published in the docs/numbers.jsonl — not just trusting the numbers, but actually running tests and comparing. Asked: "run npm test, check any failure...then check that the numbers are identical with the docs or the numbers.jsonl or near identical." Confidence: 0.85
|
|
35
|
+
- Prefers page section ordering to reflect information priority — wants high-signal sections (download stats, badges) moved UP and niche sections (CLI, detailed docs) moved DOWN. Explicitly asked: "up the number downloads & down the CLI banner." Confidence: 0.75
|
|
36
|
+
- When writing social media/LinkedIn posts about project updates, wants a personal story-driven narrative — not structured sections or bullet lists. Prefers flowing paragraphs that tell the origin story (e.g., "I was developing for 1.5 years, got an error with Electron + SQLite, tried alternatives, they were worse, so I built my own"). Wants emojis woven naturally into the text (🚀, ⚡) rather than as section headers or list markers. Explicitly rejected: dividers (━━━), section blocks, bullet-point lists, links, and hashtags. Also explicitly rejected polished/corporate tone — prefers raw, humble language about metrics ("30K downloads, not so much to show off still…"). Wants the post to include tradeoffs, decisions, and GitHub issues/fixes as part of the development journey narrative — not just feature lists. Wants honest positioning about what the project is NOT (e.g., "not like MongoDB, not a traditional DB"). Wants self-deprecating/sarcastic humor as a closing device (e.g., mocking the 2026 AI trend). Wants transparency about what `npm install` actually ships vs what's opt-in. Confidence: 0.9
|
|
37
|
+
- Prefers LinkedIn/social media posts to be short and tight — wants anything deemed "nonsense" or filler cut immediately. Iterates by asking to "reduce" and "remove" until the post is lean. Values concise writing that says only what matters over exhaustive feature lists. Confidence: 0.85
|
|
38
|
+
- When adding new configurable parameters to an API, insists every param be optional with sensible defaults that preserve current behavior — nothing changes unless the user explicitly opts in. Describes the pattern as: "if user not passed then by default it was activated, also if passed true then ok if false then disable." Generalizes to: all new knobs default to existing behavior, user overrides only what they care about. Confidence: 0.9
|
|
39
|
+
- Prefers minimal-touch refactoring approaches over comprehensive rewrites — when presented with two architectural options (e.g., static reconfiguration touching 3 files vs dependency injection touching 10+), approves the leaner path that achieves the same result with fewer files changed. Values backward compatibility and low blast radius in structural changes. Confidence: 0.8
|
package/README.md
CHANGED
|
@@ -97,7 +97,8 @@ supported.
|
|
|
97
97
|
* **MongoDB-style queries** — `{ age: { $gt: 25 } }`, 19 operators + `hint()` + `findByIds()`
|
|
98
98
|
* **ACID transactions** — `savepoint`/`rollbackTo`/`WAL`, crashes recover via `Transaction.recoverTransactions()`
|
|
99
99
|
* **Aggregation** — 60+ stages, `$lookup` joins, `OperatorRegistry` custom ops
|
|
100
|
-
* **InMemoryCache + indexes** — dual-write, auto `IndexCache`
|
|
100
|
+
* **InMemoryCache + indexes** — per-instance cache, dual-write, auto `IndexCache`
|
|
101
|
+
* **Configurable cache** — `{ Cache, minTTL, maxTTL, cacheClearUp }` controls the per-instance InMemoryCache (default `5–15m` randomized TTL, `Cache: false` disables it) → [axiodb.in/api-reference](https://axiodb.in/api-reference)
|
|
101
102
|
* **Ports:** GUI `27018` · TCP `27019` `AxioDBCloud` · MCP `27020` Docker-only
|
|
102
103
|
|
|
103
104
|
> **Docs:** `axiodb.in` is the single source — this README is a quick start only.
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
export interface InMemoryCacheOptions {
|
|
2
|
+
/** When false the cache stores nothing and every lookup misses. Defaults to true. */
|
|
3
|
+
enabled?: boolean;
|
|
4
|
+
/** Minimum entry lifetime in minutes. Defaults to 5. */
|
|
5
|
+
minTTL?: number;
|
|
6
|
+
/** Maximum entry lifetime in minutes. Defaults to 15. */
|
|
7
|
+
maxTTL?: number;
|
|
8
|
+
/** Housekeeping cleanup cadence and search-query retention, in seconds. Defaults to 86400 (24 hours). */
|
|
9
|
+
cacheClearUp?: number;
|
|
10
|
+
}
|
|
1
11
|
/**
|
|
2
12
|
* Caches data in memory with smart TTL management:
|
|
3
13
|
* - Random TTL per entry (5-15 minutes) to prevent cache stampede
|
|
@@ -5,15 +15,19 @@
|
|
|
5
15
|
* - Auto-cleanup of expired entries
|
|
6
16
|
*/
|
|
7
17
|
export declare class InMemoryCache {
|
|
8
|
-
private readonly
|
|
18
|
+
private readonly enabled;
|
|
19
|
+
private readonly minTTL;
|
|
20
|
+
private readonly maxTTL;
|
|
21
|
+
private readonly cacheClearUp;
|
|
9
22
|
private cacheObject;
|
|
10
23
|
private tempSearchQuery;
|
|
11
|
-
private readonly autoResetCacheInterval;
|
|
12
24
|
private documentIndex;
|
|
13
|
-
/** @param TTL - Time to live in seconds for cache entries. Defaults to 86400 seconds (24 hours) */
|
|
14
|
-
constructor(TTL?: string | number);
|
|
15
25
|
/**
|
|
16
|
-
*
|
|
26
|
+
* @param TTL - InMemoryCacheOptions, or a legacy numeric/string value treated as `cacheClearUp`.
|
|
27
|
+
*/
|
|
28
|
+
constructor(TTL?: string | number | InMemoryCacheOptions);
|
|
29
|
+
/**
|
|
30
|
+
* Generates a random TTL between minTTL and maxTTL
|
|
17
31
|
* This prevents cache stampede (thundering herd problem)
|
|
18
32
|
*
|
|
19
33
|
* @returns Random TTL in milliseconds
|
|
@@ -79,5 +93,3 @@ export declare class InMemoryCache {
|
|
|
79
93
|
/** Periodically evicts expired cache entries and old search-query tracking. */
|
|
80
94
|
private autoResetCache;
|
|
81
95
|
}
|
|
82
|
-
declare const _default: InMemoryCache;
|
|
83
|
-
export default _default;
|
|
@@ -22,29 +22,41 @@ const Logger_helper_1 = __importDefault(require("../Helper/Logger.helper"));
|
|
|
22
22
|
* - Auto-cleanup of expired entries
|
|
23
23
|
*/
|
|
24
24
|
class InMemoryCache {
|
|
25
|
-
/**
|
|
26
|
-
|
|
25
|
+
/**
|
|
26
|
+
* @param TTL - InMemoryCacheOptions, or a legacy numeric/string value treated as `cacheClearUp`.
|
|
27
|
+
*/
|
|
28
|
+
constructor(TTL = {}) {
|
|
29
|
+
var _a, _b, _c, _d;
|
|
27
30
|
this.tempSearchQuery = [];
|
|
28
|
-
this.autoResetCacheInterval = 86400; // 24 hours
|
|
29
31
|
// Reverse index: "{collectionPath}::{documentId}" -> cache keys whose cached result contains that document.
|
|
30
32
|
// Lets invalidateByDocument(s) evict only the affected entries instead of the whole collection's cache.
|
|
31
33
|
this.documentIndex = new Map();
|
|
32
|
-
|
|
34
|
+
const options = typeof TTL === "object" ? TTL : { cacheClearUp: Number(TTL) || undefined };
|
|
35
|
+
const minMinutes = (_a = options.minTTL) !== null && _a !== void 0 ? _a : 5;
|
|
36
|
+
const maxMinutes = (_b = options.maxTTL) !== null && _b !== void 0 ? _b : 15;
|
|
37
|
+
if (typeof minMinutes !== "number" || typeof maxMinutes !== "number" || minMinutes <= 0 || maxMinutes <= 0 || maxMinutes < minMinutes) {
|
|
38
|
+
throw new Error("Invalid cache TTL: minTTL and maxTTL must be positive minutes and maxTTL must be >= minTTL.");
|
|
39
|
+
}
|
|
40
|
+
this.cacheClearUp = (_c = options.cacheClearUp) !== null && _c !== void 0 ? _c : 86400;
|
|
41
|
+
if (typeof this.cacheClearUp !== "number" || this.cacheClearUp <= 0) {
|
|
42
|
+
throw new Error("cacheClearUp must be a positive number of seconds.");
|
|
43
|
+
}
|
|
44
|
+
this.enabled = (_d = options.enabled) !== null && _d !== void 0 ? _d : true;
|
|
45
|
+
this.minTTL = minMinutes * 60 * 1000;
|
|
46
|
+
this.maxTTL = maxMinutes * 60 * 1000;
|
|
33
47
|
this.cacheObject = new Map();
|
|
34
48
|
this.tempSearchQuery = [];
|
|
35
49
|
this.autoResetCache();
|
|
36
50
|
}
|
|
37
51
|
/**
|
|
38
|
-
* Generates a random TTL between
|
|
52
|
+
* Generates a random TTL between minTTL and maxTTL
|
|
39
53
|
* This prevents cache stampede (thundering herd problem)
|
|
40
54
|
*
|
|
41
55
|
* @returns Random TTL in milliseconds
|
|
42
56
|
* @private
|
|
43
57
|
*/
|
|
44
58
|
generateRandomTTL() {
|
|
45
|
-
|
|
46
|
-
const MAX_TTL = 15 * 60 * 1000; // 15 minutes in milliseconds
|
|
47
|
-
return Math.floor(Math.random() * (MAX_TTL - MIN_TTL + 1)) + MIN_TTL;
|
|
59
|
+
return Math.floor(Math.random() * (this.maxTTL - this.minTTL + 1)) + this.minTTL;
|
|
48
60
|
}
|
|
49
61
|
/**
|
|
50
62
|
* Each cache entry gets its own random TTL (5-15 minutes) to prevent cache stampede
|
|
@@ -58,6 +70,9 @@ class InMemoryCache {
|
|
|
58
70
|
*/
|
|
59
71
|
setCache(key, value, collectionPath) {
|
|
60
72
|
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
if (!this.enabled) {
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
61
76
|
const ttl = this.generateRandomTTL();
|
|
62
77
|
const now = new Date();
|
|
63
78
|
const expiresAt = new Date(now.getTime() + ttl);
|
|
@@ -112,6 +127,9 @@ class InMemoryCache {
|
|
|
112
127
|
/** Tracked for analytics/monitoring only - does not gate or block caching. */
|
|
113
128
|
setTempSearchQuery(queryString) {
|
|
114
129
|
return __awaiter(this, void 0, void 0, function* () {
|
|
130
|
+
if (!this.enabled) {
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
115
133
|
this.tempSearchQuery.push({
|
|
116
134
|
queryString: queryString,
|
|
117
135
|
registeredAt: new Date(),
|
|
@@ -128,6 +146,9 @@ class InMemoryCache {
|
|
|
128
146
|
*/
|
|
129
147
|
getCache(key) {
|
|
130
148
|
return __awaiter(this, void 0, void 0, function* () {
|
|
149
|
+
if (!this.enabled) {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
131
152
|
const cacheItem = this.cacheObject.get(key);
|
|
132
153
|
if (!cacheItem) {
|
|
133
154
|
return false;
|
|
@@ -256,12 +277,12 @@ class InMemoryCache {
|
|
|
256
277
|
}
|
|
257
278
|
}
|
|
258
279
|
keysToDelete.forEach(key => this.evictCacheEntry(key));
|
|
259
|
-
//
|
|
280
|
+
// cacheClearUp retention for temp search queries
|
|
260
281
|
this.tempSearchQuery = this.tempSearchQuery.filter((item) => {
|
|
261
282
|
const diff = Math.abs(now.getTime() - item.registeredAt.getTime());
|
|
262
|
-
return diff < this.
|
|
283
|
+
return diff < this.cacheClearUp * 1000;
|
|
263
284
|
});
|
|
264
|
-
}, parseInt(String(this.
|
|
285
|
+
}, parseInt(String(this.cacheClearUp)));
|
|
265
286
|
// Background housekeeping must never be the reason a short-lived script or CLI
|
|
266
287
|
// tool (a stated core use case) can't exit on its own - same reasoning as
|
|
267
288
|
// IndexCache's cleanup interval.
|
|
@@ -272,5 +293,4 @@ class InMemoryCache {
|
|
|
272
293
|
}
|
|
273
294
|
}
|
|
274
295
|
exports.InMemoryCache = InMemoryCache;
|
|
275
|
-
exports.default = new InMemoryCache(86400); // 24 hours
|
|
276
296
|
//# sourceMappingURL=memory.operation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.operation.js","sourceRoot":"","sources":["../../source/Memory/memory.operation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,4EAA6C;
|
|
1
|
+
{"version":3,"file":"memory.operation.js","sourceRoot":"","sources":["../../source/Memory/memory.operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ErrorInterface, SuccessInterface } from "../../config/Interfaces/Helper/response.helper.interface";
|
|
2
|
+
import type { InMemoryCache } from "../../Memory/memory.operation";
|
|
2
3
|
/**
|
|
3
4
|
* The DeleteOperation class is used to delete a document from a collection.
|
|
4
5
|
* This class provides methods to delete a single document that matches the base query.
|
|
@@ -7,10 +8,11 @@ export default class DeleteOperation {
|
|
|
7
8
|
protected readonly collectionName: string;
|
|
8
9
|
private readonly baseQuery;
|
|
9
10
|
private readonly path;
|
|
11
|
+
private readonly cache;
|
|
10
12
|
private readonly ResponseHelper;
|
|
11
13
|
private allDataWithFileName;
|
|
12
14
|
private sort;
|
|
13
|
-
constructor(collectionName: string, path: string, baseQuery: Record<string, unknown
|
|
15
|
+
constructor(collectionName: string, path: string, baseQuery: Record<string, unknown>, cache: InMemoryCache);
|
|
14
16
|
/**
|
|
15
17
|
* Deletes a single document that matches the base query.
|
|
16
18
|
*
|
|
@@ -25,11 +25,12 @@ const Transaction_service_1 = __importDefault(require("../Transaction/Transactio
|
|
|
25
25
|
* This class provides methods to delete a single document that matches the base query.
|
|
26
26
|
*/
|
|
27
27
|
class DeleteOperation {
|
|
28
|
-
constructor(collectionName, path, baseQuery) {
|
|
28
|
+
constructor(collectionName, path, baseQuery, cache) {
|
|
29
29
|
this.allDataWithFileName = [];
|
|
30
30
|
this.collectionName = collectionName;
|
|
31
31
|
this.path = path;
|
|
32
32
|
this.baseQuery = baseQuery;
|
|
33
|
+
this.cache = cache;
|
|
33
34
|
this.sort = {};
|
|
34
35
|
this.ResponseHelper = new response_helper_1.default();
|
|
35
36
|
this.allDataWithFileName = []; // To store all data with file name
|
|
@@ -56,7 +57,7 @@ class DeleteOperation {
|
|
|
56
57
|
if (!documentId) {
|
|
57
58
|
return this.ResponseHelper.Error("No data found with the specified query");
|
|
58
59
|
}
|
|
59
|
-
const txn = new Transaction_service_1.default(this.path);
|
|
60
|
+
const txn = new Transaction_service_1.default(this.path, this.cache);
|
|
60
61
|
txn.delete({ documentId });
|
|
61
62
|
const commitResult = yield txn.commit();
|
|
62
63
|
if (!("data" in commitResult)) {
|
|
@@ -92,7 +93,7 @@ class DeleteOperation {
|
|
|
92
93
|
return __awaiter(this, void 0, void 0, function* () {
|
|
93
94
|
var _a;
|
|
94
95
|
try {
|
|
95
|
-
const txn = new Transaction_service_1.default(this.path);
|
|
96
|
+
const txn = new Transaction_service_1.default(this.path, this.cache);
|
|
96
97
|
txn.delete(this.baseQuery);
|
|
97
98
|
const commitResult = yield txn.commit();
|
|
98
99
|
if (!("data" in commitResult)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Delete.operation.js","sourceRoot":"","sources":["../../../source/Services/CRUD Operation/Delete.operation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAKA,mFAA0D;AAC1D,+FAAgE;AAGhE,qBAAqB;AACrB,kFAAoD;AACpD,kFAAmD;AACnD,iDAAiD;AACjD,kEAAuD;AACvD,6FAA6D;
|
|
1
|
+
{"version":3,"file":"Delete.operation.js","sourceRoot":"","sources":["../../../source/Services/CRUD Operation/Delete.operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ErrorInterface, SuccessInterface } from "../../config/Interfaces/Helper/response.helper.interface";
|
|
2
2
|
import { SortSpec, ProjectionSpec, QueryValue } from "../../config/Interfaces/shared.types";
|
|
3
|
+
import type { InMemoryCache } from "../../Memory/memory.operation";
|
|
3
4
|
/**
|
|
4
5
|
* Class representing a read operation.
|
|
5
6
|
*/
|
|
@@ -14,6 +15,7 @@ export default class Reader {
|
|
|
14
15
|
private totalCount;
|
|
15
16
|
private FindOneStatus;
|
|
16
17
|
private project;
|
|
18
|
+
private readonly cache;
|
|
17
19
|
private readonly ResponseHelper;
|
|
18
20
|
private AllData;
|
|
19
21
|
private indexHint;
|
|
@@ -22,8 +24,9 @@ export default class Reader {
|
|
|
22
24
|
* @param {string} collectionName - The name of the collection.
|
|
23
25
|
* @param {string} path - The data to be read.
|
|
24
26
|
* @param {object} baseQuery - The base query to be used.
|
|
27
|
+
* @param {InMemoryCache} cache - The shared instance cache.
|
|
25
28
|
*/
|
|
26
|
-
constructor(collectionName: string, path: string, baseQuery: Record<string, QueryValue
|
|
29
|
+
constructor(collectionName: string, path: string, baseQuery: Record<string, QueryValue>, cache: InMemoryCache);
|
|
27
30
|
/**
|
|
28
31
|
* Generates a comprehensive cache key including collection context
|
|
29
32
|
* Prevents cache collisions between different collections with same query
|
|
@@ -12,8 +12,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
// Import All helpers
|
|
16
|
-
const memory_operation_1 = __importDefault(require("../../Memory/memory.operation"));
|
|
17
15
|
const Converter_helper_1 = __importDefault(require("../../Helper/Converter.helper"));
|
|
18
16
|
const response_helper_1 = __importDefault(require("../../Helper/response.helper"));
|
|
19
17
|
const PathSanitizer_helper_1 = __importDefault(require("../../Helper/PathSanitizer.helper"));
|
|
@@ -32,8 +30,9 @@ class Reader {
|
|
|
32
30
|
* @param {string} collectionName - The name of the collection.
|
|
33
31
|
* @param {string} path - The data to be read.
|
|
34
32
|
* @param {object} baseQuery - The base query to be used.
|
|
33
|
+
* @param {InMemoryCache} cache - The shared instance cache.
|
|
35
34
|
*/
|
|
36
|
-
constructor(collectionName, path, baseQuery) {
|
|
35
|
+
constructor(collectionName, path, baseQuery, cache) {
|
|
37
36
|
this.collectionName = collectionName;
|
|
38
37
|
this.path = path;
|
|
39
38
|
this.limit = 10;
|
|
@@ -42,6 +41,7 @@ class Reader {
|
|
|
42
41
|
this.sort = {};
|
|
43
42
|
this.project = {};
|
|
44
43
|
this.baseQuery = baseQuery;
|
|
44
|
+
this.cache = cache;
|
|
45
45
|
this.Converter = new Converter_helper_1.default();
|
|
46
46
|
this.ResponseHelper = new response_helper_1.default();
|
|
47
47
|
this.totalCount = false;
|
|
@@ -80,7 +80,7 @@ class Reader {
|
|
|
80
80
|
// Generate cache key with collection context (fixes cache collision bug)
|
|
81
81
|
const cacheKey = this.generateCacheKey();
|
|
82
82
|
// Check if result is in cache
|
|
83
|
-
const responseFromCache = yield
|
|
83
|
+
const responseFromCache = yield this.cache.getCache(cacheKey);
|
|
84
84
|
if (responseFromCache !== false) {
|
|
85
85
|
SearchedData = responseFromCache;
|
|
86
86
|
return this.applySortAndReturn(SearchedData);
|
|
@@ -96,7 +96,7 @@ class Reader {
|
|
|
96
96
|
if ("data" in ReadResponse) {
|
|
97
97
|
const data = ReadResponse.data;
|
|
98
98
|
// Fire-and-forget: Cache asynchronously
|
|
99
|
-
|
|
99
|
+
this.cache.setCache(cacheKey, data, this.path).catch(() => { });
|
|
100
100
|
return this.ApplySkipAndLimit(data);
|
|
101
101
|
}
|
|
102
102
|
return this.ResponseHelper.Error("Failed to read document by ID");
|
|
@@ -180,7 +180,7 @@ class Reader {
|
|
|
180
180
|
if (Object.keys(this.baseQuery).length === 0) {
|
|
181
181
|
const data = ReadResponse.data;
|
|
182
182
|
// Fire-and-forget: Cache asynchronously
|
|
183
|
-
|
|
183
|
+
this.cache.setCache(cacheKey, data, this.path).catch(() => { });
|
|
184
184
|
return this.applySortAndReturn(data);
|
|
185
185
|
}
|
|
186
186
|
// If we used index for exact match (single field, no operators), data is already filtered
|
|
@@ -193,7 +193,7 @@ class Reader {
|
|
|
193
193
|
SearchedData = yield searcher.find(this.baseQuery);
|
|
194
194
|
}
|
|
195
195
|
// Fire-and-forget: Cache asynchronously
|
|
196
|
-
|
|
196
|
+
this.cache.setCache(cacheKey, SearchedData, this.path).catch(() => { });
|
|
197
197
|
return this.applySortAndReturn(SearchedData);
|
|
198
198
|
}
|
|
199
199
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Reader.operation.js","sourceRoot":"","sources":["../../../source/Services/CRUD Operation/Reader.operation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Reader.operation.js","sourceRoot":"","sources":["../../../source/Services/CRUD Operation/Reader.operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { ErrorInterface, SuccessInterface } from "../../config/Interfaces/Helper/response.helper.interface";
|
|
2
|
+
import type { InMemoryCache } from "../../Memory/memory.operation";
|
|
2
3
|
export default class UpdateOperation {
|
|
3
4
|
protected readonly collectionName: string;
|
|
4
5
|
private readonly baseQuery;
|
|
5
6
|
private readonly path;
|
|
7
|
+
private readonly cache;
|
|
6
8
|
private readonly ResponseHelper;
|
|
7
9
|
private allDataWithFileName;
|
|
8
10
|
private sort;
|
|
9
|
-
constructor(collectionName: string, path: string, baseQuery: Record<string, unknown
|
|
11
|
+
constructor(collectionName: string, path: string, baseQuery: Record<string, unknown>, cache: InMemoryCache);
|
|
10
12
|
/**
|
|
11
13
|
* Updates a single document that matches the base query.
|
|
12
14
|
*
|
|
@@ -21,11 +21,12 @@ const Keys_1 = require("../../config/Keys/Keys");
|
|
|
21
21
|
const ReadIndex_service_1 = require("../Index/ReadIndex.service");
|
|
22
22
|
const Transaction_service_1 = __importDefault(require("../Transaction/Transaction.service"));
|
|
23
23
|
class UpdateOperation {
|
|
24
|
-
constructor(collectionName, path, baseQuery) {
|
|
24
|
+
constructor(collectionName, path, baseQuery, cache) {
|
|
25
25
|
this.allDataWithFileName = [];
|
|
26
26
|
this.collectionName = collectionName;
|
|
27
27
|
this.path = path;
|
|
28
28
|
this.baseQuery = baseQuery;
|
|
29
|
+
this.cache = cache;
|
|
29
30
|
this.sort = {};
|
|
30
31
|
this.ResponseHelper = new response_helper_1.default();
|
|
31
32
|
this.allDataWithFileName = []; // To store all data with file name
|
|
@@ -61,7 +62,7 @@ class UpdateOperation {
|
|
|
61
62
|
if (!documentId) {
|
|
62
63
|
return this.ResponseHelper.Error("No data found with the specified query");
|
|
63
64
|
}
|
|
64
|
-
const txn = new Transaction_service_1.default(this.path);
|
|
65
|
+
const txn = new Transaction_service_1.default(this.path, this.cache);
|
|
65
66
|
txn.update({ documentId }, newData);
|
|
66
67
|
const commitResult = yield txn.commit();
|
|
67
68
|
if (!("data" in commitResult)) {
|
|
@@ -108,7 +109,7 @@ class UpdateOperation {
|
|
|
108
109
|
if (typeof newData !== "object") {
|
|
109
110
|
throw new Error("Data must be an object.");
|
|
110
111
|
}
|
|
111
|
-
const txn = new Transaction_service_1.default(this.path);
|
|
112
|
+
const txn = new Transaction_service_1.default(this.path, this.cache);
|
|
112
113
|
txn.update(this.baseQuery, newData);
|
|
113
114
|
const commitResult = yield txn.commit();
|
|
114
115
|
if (!("data" in commitResult)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Update.operation.js","sourceRoot":"","sources":["../../../source/Services/CRUD Operation/Update.operation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAIA,mFAA0D;AAC1D,+FAAgE;AAChE,kFAAoD;AACpD,kFAAmD;AAGnD,qBAAqB;AACrB,iDAAiD;AACjD,kEAAuD;AACvD,6FAA6D;
|
|
1
|
+
{"version":3,"file":"Update.operation.js","sourceRoot":"","sources":["../../../source/Services/CRUD Operation/Update.operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import UpdateOperation from "../CRUD Operation/Update.operation";
|
|
|
7
7
|
import Aggregation from "../Aggregation/Aggregation.Operation";
|
|
8
8
|
import Transaction from "../Transaction/Transaction.service";
|
|
9
9
|
import Session from "../Transaction/Session.service";
|
|
10
|
+
import type { InMemoryCache } from "../../Memory/memory.operation";
|
|
10
11
|
/**
|
|
11
12
|
* Represents a collection inside a database.
|
|
12
13
|
*/
|
|
@@ -17,8 +18,9 @@ export default class Collection {
|
|
|
17
18
|
private Converter;
|
|
18
19
|
private readonly IndexManager;
|
|
19
20
|
private readonly indexCache;
|
|
21
|
+
private readonly cache;
|
|
20
22
|
private readonly collectionResolver?;
|
|
21
|
-
constructor(name: string, path: string, collectionResolver
|
|
23
|
+
constructor(name: string, path: string, collectionResolver: CollectionResolver, cache: InMemoryCache);
|
|
22
24
|
getCollectionPath(): string;
|
|
23
25
|
/**
|
|
24
26
|
* Get Numbers of Documents in the Collection
|