@dudousxd/nestjs-telescope-mikro-orm 1.14.3 → 1.15.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/CHANGELOG.md +77 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mikro-orm-storage.provider.d.ts +10 -2
- package/dist/mikro-orm-storage.provider.d.ts.map +1 -1
- package/dist/mikro-orm-storage.provider.js +108 -17
- package/dist/mikro-orm-storage.provider.js.map +1 -1
- package/dist/schema.d.ts +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +9 -3
- package/dist/schema.js.map +1 -1
- package/dist/telescope-lease.entity.d.ts +11 -0
- package/dist/telescope-lease.entity.d.ts.map +1 -0
- package/dist/telescope-lease.entity.js +39 -0
- package/dist/telescope-lease.entity.js.map +1 -0
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,82 @@
|
|
|
1
1
|
# @dudousxd/nestjs-telescope-mikro-orm
|
|
2
2
|
|
|
3
|
+
## 1.15.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`80392f0`](https://github.com/DavideCarvalho/nestjs-telescope/commit/80392f0e4d038b50b5c8703275cfd91e3328064b) - Add NestJS 12 to the supported peer range.
|
|
8
|
+
|
|
9
|
+
NestJS 12.0.1 shipped the framework as pure ESM and raised its floor to Node >= 20.19. Telescope's
|
|
10
|
+
packages are already `"type": "module"`, so the ESM shift is a non-event here — nothing needed
|
|
11
|
+
porting, and every watcher, storage provider and dashboard route behaves identically on 11 and 12.
|
|
12
|
+
|
|
13
|
+
The declared peer ranges (`@nestjs/common`/`@nestjs/core` at `>=10.0.0`, `>=11.0.0` for the UI
|
|
14
|
+
package, and the satellite peers `@nestjs/bullmq`, `@nestjs/cache-manager`, `@nestjs/event-emitter`,
|
|
15
|
+
`@nestjs/schedule`) already admitted a 12.x resolution, so no range changed — what changed is that
|
|
16
|
+
the claim is now tested. Every package's dev and test matrix moved to the 12.x line, along with the
|
|
17
|
+
example app and the memory-soak harness, and the whole suite builds, typechecks and passes there.
|
|
18
|
+
|
|
19
|
+
Moving the example app and the soak harness matters for more than tidiness: leaving them on
|
|
20
|
+
`@nestjs/platform-express@11` left a second `@nestjs/platform-express` major in the workspace, and
|
|
21
|
+
pnpm's peer resolution then produced two distinct `@nestjs/core@12` instances. `tsc` correctly
|
|
22
|
+
rejected the resulting `ModuleRef` from one instance where the other was expected. That is a
|
|
23
|
+
workspace resolution artifact rather than a NestJS 12 incompatibility, but it is exactly the shape
|
|
24
|
+
of breakage a consumer sees when they upgrade half a dependency graph.
|
|
25
|
+
|
|
26
|
+
No behaviour change — peer ranges only affect what a package manager warns about on install.
|
|
27
|
+
|
|
28
|
+
## 1.15.0
|
|
29
|
+
|
|
30
|
+
### Minor Changes
|
|
31
|
+
|
|
32
|
+
- [`8c68625`](https://github.com/DavideCarvalho/nestjs-telescope/commit/8c686250872dd4d5ba1691a5fa0ead90af3495c0) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Prune in bounded batches, and let a fleet prune once instead of once per pod.
|
|
33
|
+
|
|
34
|
+
**Why `minor` and not `patch`:** this adds public API — `pruneScopedBatch`,
|
|
35
|
+
`tryAcquireLease`/`releaseLease` on the storage contract, the `TelescopePruneLock`
|
|
36
|
+
seam, and five `prune.*` options. **Why not `major`:** nothing existing breaks.
|
|
37
|
+
Every new SPI method is optional, so a third-party provider compiles and runs
|
|
38
|
+
unchanged (it just keeps the old unbounded delete and logs a one-time warning),
|
|
39
|
+
and every new option is defaulted. The MikroORM adapter does add a
|
|
40
|
+
`telescope_leases` table, created by the same additive, never-dropping
|
|
41
|
+
`schema.update` that already manages `telescope_entries` — no migration to write,
|
|
42
|
+
nothing dropped, and it is in `telescopeManagedTables()` so a host's own migration
|
|
43
|
+
differ still skips it.
|
|
44
|
+
|
|
45
|
+
**Bounded batched deletes.** The retention delete was one unbounded
|
|
46
|
+
`DELETE ... WHERE created_at < ? AND type NOT IN (...)`. On a large table that
|
|
47
|
+
predicate matches nearly every row, so the planner correctly picks a full scan —
|
|
48
|
+
and that single statement holds row locks for the length of the scan. Measured on
|
|
49
|
+
a shared MySQL store: 755,614 rows / 1.3 GB, **21 concurrent prune deletes, the
|
|
50
|
+
oldest 63 minutes in**, with everything else writing to that database queued
|
|
51
|
+
behind them, and the pruner still 25h44m behind its own 24h window. The pruner now
|
|
52
|
+
issues a loop of short, individually-committed deletes, oldest first, tuned by
|
|
53
|
+
`prune.batchSize` (1000), `prune.maxBatchesPerCycle` (50) and `prune.batchPauseMs`
|
|
54
|
+
(50). Same rows deleted; locks released between batches. The ceiling matters as
|
|
55
|
+
much as the batching: without it a badly-behind table turns one tick into an
|
|
56
|
+
hour-long loop, which is the original failure spelled differently.
|
|
57
|
+
|
|
58
|
+
This is expressed portably. `DELETE ... ORDER BY ... LIMIT` is MySQL/MariaDB-only —
|
|
59
|
+
PostgreSQL has no `ORDER BY`/`LIMIT` on `DELETE`, SQLite needs a non-default
|
|
60
|
+
compile flag, SQL Server spells it `DELETE TOP (n)` — so the bound is "select the
|
|
61
|
+
oldest `limit` ids, then delete by primary key", which every driver renders, and
|
|
62
|
+
which is the better plan anyway (the `created_at` index walk stops after `limit`
|
|
63
|
+
matches and takes no row locks). `keepLast` scopes keep the unbounded path:
|
|
64
|
+
"keep the newest N of the doomed rows" is a whole-set property a per-batch bound
|
|
65
|
+
cannot express, so `keepLast` is absent from `BoundedPruneScope` by construction.
|
|
66
|
+
|
|
67
|
+
**A prune lock, so N replicas do not do the same work N times.** The in-flight
|
|
68
|
+
guard bounds one process; it cannot see the other seven pods. `prune.lock` adds a
|
|
69
|
+
small advisory seam — acquire a named lease with a TTL, release it, or be told
|
|
70
|
+
somebody else holds it — defaulting to a lease row in the database Telescope
|
|
71
|
+
already writes to, so it needs no new dependency and works on every in-repo
|
|
72
|
+
provider. A host that already runs a better primitive (a job engine's singleton
|
|
73
|
+
mutex, a Redis lock) supplies its own `TelescopePruneLock`; the acquire result is a
|
|
74
|
+
discriminated union, so an implementation cannot reach the lease without handling
|
|
75
|
+
the refusal. The lock is advisory by design — two concurrent prunes delete the same
|
|
76
|
+
rows and one wins, costing waste and never correctness — so the pruner **fails
|
|
77
|
+
open**: a broken lock warns once and prunes anyway rather than letting retention
|
|
78
|
+
silently stop while the table grows.
|
|
79
|
+
|
|
3
80
|
## 1.14.3
|
|
4
81
|
|
|
5
82
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export { detectNPlusOne, type NPlusOneInsight } from '@dudousxd/nestjs-telescope
|
|
|
3
3
|
export * from './telescope-mikro-orm.logger.js';
|
|
4
4
|
export * from './mikro-orm-query.watcher.js';
|
|
5
5
|
export * from './telescope-entry.entity.js';
|
|
6
|
+
export * from './telescope-lease.entity.js';
|
|
6
7
|
export * from './mikro-orm-storage.provider.js';
|
|
7
8
|
export * from './schema.js';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClF,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClF,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,7 @@ export { detectNPlusOne } from '@dudousxd/nestjs-telescope';
|
|
|
3
3
|
export * from './telescope-mikro-orm.logger.js';
|
|
4
4
|
export * from './mikro-orm-query.watcher.js';
|
|
5
5
|
export * from './telescope-entry.entity.js';
|
|
6
|
+
export * from './telescope-lease.entity.js';
|
|
6
7
|
export * from './mikro-orm-storage.provider.js';
|
|
7
8
|
export * from './schema.js';
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAwB,MAAM,4BAA4B,CAAC;AAClF,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAwB,MAAM,4BAA4B,CAAC;AAClF,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,aAAa,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Entry, EntryQuery, EntryWithBatch, Page, PruneScope, RollupBucket, RollupDelta, RollupStore,
|
|
1
|
+
import type { BoundedPruneCapable, BoundedPruneResult, BoundedPruneScope, Entry, EntryQuery, EntryWithBatch, LeaseCapableStorage, Page, PruneScope, RollupBucket, RollupDelta, RollupStore, TagCount } from '@dudousxd/nestjs-telescope';
|
|
2
2
|
import type { Options } from '@mikro-orm/core';
|
|
3
3
|
import { MikroORM } from '@mikro-orm/core';
|
|
4
4
|
/**
|
|
@@ -13,7 +13,12 @@ import { MikroORM } from '@mikro-orm/core';
|
|
|
13
13
|
export type MikroOrmStorageProviderOptions = Partial<Options> & {
|
|
14
14
|
ensureSchema?: boolean;
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Declared against {@link BoundedPruneCapable} and {@link LeaseCapableStorage}
|
|
18
|
+
* (both extend `StorageProvider`) so dropping either capability is a compile
|
|
19
|
+
* error rather than a silent fall back to unbounded, unlocked pruning.
|
|
20
|
+
*/
|
|
21
|
+
export declare class MikroOrmStorageProvider implements BoundedPruneCapable, LeaseCapableStorage, RollupStore {
|
|
17
22
|
private readonly source;
|
|
18
23
|
private readonly ensureSchema;
|
|
19
24
|
private orm;
|
|
@@ -46,6 +51,9 @@ export declare class MikroOrmStorageProvider implements StorageProvider, RollupS
|
|
|
46
51
|
batch(batchId: string): Promise<Entry[]>;
|
|
47
52
|
tags(prefix?: string): Promise<TagCount[]>;
|
|
48
53
|
prune(olderThan: Date, keepLast?: number): Promise<number>;
|
|
54
|
+
pruneScopedBatch(input: BoundedPruneScope): Promise<BoundedPruneResult>;
|
|
55
|
+
tryAcquireLease(key: string, owner: string, ttlMs: number, nowMs: number): Promise<boolean>;
|
|
56
|
+
releaseLease(key: string, owner: string): Promise<void>;
|
|
49
57
|
pruneScoped(input: PruneScope): Promise<number>;
|
|
50
58
|
clear(): Promise<void>;
|
|
51
59
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mikro-orm-storage.provider.d.ts","sourceRoot":"","sources":["../src/mikro-orm-storage.provider.ts"],"names":[],"mappings":"AAoDA,OAAO,KAAK,EACV,KAAK,EACL,UAAU,EACV,cAAc,EACd,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"mikro-orm-storage.provider.d.ts","sourceRoot":"","sources":["../src/mikro-orm-storage.provider.ts"],"names":[],"mappings":"AAoDA,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,EACL,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,QAAQ,EACT,MAAM,4BAA4B,CAAC;AAQpC,OAAO,KAAK,EAA8C,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC3F,OAAO,EAAE,QAAQ,EAAO,MAAM,iBAAiB,CAAC;AAoEhD;;;;;;;;GAQG;AACH,MAAM,MAAM,8BAA8B,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAuT3F;;;;GAIG;AACH,qBAAa,uBACX,YAAW,mBAAmB,EAAE,mBAAmB,EAAE,WAAW;IAEhE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4C;IACnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,GAAG,CAAyB;gBAGlC,MAAM,EAAE,QAAQ,GAAG,8BAA8B,EACjD,IAAI,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE;IAYnC,OAAO,CAAC,eAAe;IAoBjB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B;;;;;;;;;;;;;OAaG;YACW,eAAe;IAmCvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B,OAAO,CAAC,MAAM;IAOR,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAStC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxD,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAQhD,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAkE5C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAMxC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAkB1C,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB1D,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiCvE,eAAe,CACnB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC;IA8Bb,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvD,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B;;;;;;;;;;;;;;;OAeG;IACG,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgCnD,YAAY,CAChB,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,EAAE,CAAC;CAgB3B"}
|
|
@@ -2,6 +2,7 @@ import { createHash } from 'node:crypto';
|
|
|
2
2
|
import { decodeCursor, encodeCursor, isBatchOrigin, mergeHistograms, normalizeHistogram, } from '@dudousxd/nestjs-telescope';
|
|
3
3
|
import { MikroORM, raw } from '@mikro-orm/core';
|
|
4
4
|
import { TelescopeEntry } from './telescope-entry.entity.js';
|
|
5
|
+
import { TelescopeLease } from './telescope-lease.entity.js';
|
|
5
6
|
import { TelescopeRollup } from './telescope-rollup.entity.js';
|
|
6
7
|
import { TelescopeSchemaMeta } from './telescope-schema-meta.entity.js';
|
|
7
8
|
const DEFAULT_LIMIT = 50;
|
|
@@ -81,6 +82,22 @@ function rowToEntry(row, omitContent = false) {
|
|
|
81
82
|
function entryToRowData(entry) {
|
|
82
83
|
return { ...entry, tagsText: padTags(entry.tags) };
|
|
83
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* `createdAt < before` plus the type selector (single type, or all-except a set,
|
|
87
|
+
* or — when neither is given — no type filter). MikroORM renders the type clause
|
|
88
|
+
* to `type = ?` / `type not in (?, …)` on every driver. Shared by the unbounded
|
|
89
|
+
* and the batched prune so the two can never select different rows.
|
|
90
|
+
*/
|
|
91
|
+
function scopedWhere(scope) {
|
|
92
|
+
const where = { createdAt: { $lt: scope.before } };
|
|
93
|
+
if (scope.type !== undefined) {
|
|
94
|
+
where.type = scope.type;
|
|
95
|
+
}
|
|
96
|
+
else if (scope.excludeTypes !== undefined && scope.excludeTypes.length > 0) {
|
|
97
|
+
where.type = { $nin: scope.excludeTypes };
|
|
98
|
+
}
|
|
99
|
+
return where;
|
|
100
|
+
}
|
|
84
101
|
function resolveLimit(limit) {
|
|
85
102
|
return typeof limit === 'number' && Number.isInteger(limit) && limit > 0 ? limit : DEFAULT_LIMIT;
|
|
86
103
|
}
|
|
@@ -124,14 +141,25 @@ function pickHostConnection(hostConfig) {
|
|
|
124
141
|
return connection;
|
|
125
142
|
}
|
|
126
143
|
/**
|
|
127
|
-
* Table names the gate owns and fingerprints — `telescope_entries
|
|
128
|
-
* `telescope_rollups`. Derived from metadata (never
|
|
129
|
-
* tableName rename flows through automatically.
|
|
130
|
-
* table, whose own shape must never invalidate
|
|
144
|
+
* Table names the gate owns and fingerprints — `telescope_entries`,
|
|
145
|
+
* `telescope_rollups`, and `telescope_leases`. Derived from metadata (never
|
|
146
|
+
* hardcoded) so a future tableName rename flows through automatically.
|
|
147
|
+
* Deliberately EXCLUDES the marker table, whose own shape must never invalidate
|
|
148
|
+
* the gate.
|
|
149
|
+
*
|
|
150
|
+
* `telescope_leases` is INSIDE the fingerprint on purpose: that is what makes an
|
|
151
|
+
* existing deployment notice the new table and create it on the next boot,
|
|
152
|
+
* through the same additive `schema.update` path as any other schema change. If
|
|
153
|
+
* it were excluded, the fingerprint would still match and the lease table would
|
|
154
|
+
* never be created.
|
|
131
155
|
*/
|
|
132
156
|
function collectOwnedTableNames(orm) {
|
|
133
157
|
const metadata = orm.getMetadata();
|
|
134
|
-
return [
|
|
158
|
+
return [
|
|
159
|
+
metadata.get(TelescopeEntry).tableName,
|
|
160
|
+
metadata.get(TelescopeRollup).tableName,
|
|
161
|
+
metadata.get(TelescopeLease).tableName,
|
|
162
|
+
];
|
|
135
163
|
}
|
|
136
164
|
function compareStrings(left, right) {
|
|
137
165
|
if (left < right)
|
|
@@ -286,6 +314,11 @@ async function acquireSchemaLock(orm) {
|
|
|
286
314
|
}
|
|
287
315
|
return noop;
|
|
288
316
|
}
|
|
317
|
+
/**
|
|
318
|
+
* Declared against {@link BoundedPruneCapable} and {@link LeaseCapableStorage}
|
|
319
|
+
* (both extend `StorageProvider`) so dropping either capability is a compile
|
|
320
|
+
* error rather than a silent fall back to unbounded, unlocked pruning.
|
|
321
|
+
*/
|
|
289
322
|
export class MikroOrmStorageProvider {
|
|
290
323
|
source;
|
|
291
324
|
ensureSchema;
|
|
@@ -307,7 +340,7 @@ export class MikroOrmStorageProvider {
|
|
|
307
340
|
const connection = pickHostConnection(this.source.config.getAll());
|
|
308
341
|
return {
|
|
309
342
|
...connection,
|
|
310
|
-
entities: [TelescopeEntry, TelescopeRollup, TelescopeSchemaMeta],
|
|
343
|
+
entities: [TelescopeEntry, TelescopeRollup, TelescopeSchemaMeta, TelescopeLease],
|
|
311
344
|
contextName: TELESCOPE_CONTEXT_NAME,
|
|
312
345
|
allowGlobalContext: true,
|
|
313
346
|
};
|
|
@@ -315,7 +348,7 @@ export class MikroOrmStorageProvider {
|
|
|
315
348
|
const { ensureSchema: _ensureSchema, entities: _entities, ...rest } = this.source;
|
|
316
349
|
return {
|
|
317
350
|
...rest,
|
|
318
|
-
entities: [TelescopeEntry, TelescopeRollup, TelescopeSchemaMeta],
|
|
351
|
+
entities: [TelescopeEntry, TelescopeRollup, TelescopeSchemaMeta, TelescopeLease],
|
|
319
352
|
contextName: TELESCOPE_CONTEXT_NAME,
|
|
320
353
|
allowGlobalContext: true,
|
|
321
354
|
};
|
|
@@ -506,18 +539,76 @@ export class MikroOrmStorageProvider {
|
|
|
506
539
|
return 0;
|
|
507
540
|
return em.nativeDelete(TelescopeEntry, { id: { $in: toDelete } });
|
|
508
541
|
}
|
|
542
|
+
async pruneScopedBatch(input) {
|
|
543
|
+
const em = this.forkEm();
|
|
544
|
+
const where = scopedWhere(input);
|
|
545
|
+
// SELECT the oldest `limit` ids, then DELETE BY PRIMARY KEY. This shape is
|
|
546
|
+
// chosen for PORTABILITY, and the obvious alternative is not portable:
|
|
547
|
+
// `DELETE ... ORDER BY created_at LIMIT n` is MySQL/MariaDB-only. PostgreSQL
|
|
548
|
+
// has no ORDER BY/LIMIT on DELETE at all (it needs exactly this subquery on
|
|
549
|
+
// the primary key), SQLite only has it when compiled with
|
|
550
|
+
// SQLITE_ENABLE_UPDATE_DELETE_LIMIT, and SQL Server spells it `DELETE TOP (n)`
|
|
551
|
+
// with no ordering. Since this provider is driver-agnostic — it is the same
|
|
552
|
+
// class on MySQL, PostgreSQL, MariaDB and SQLite — it cannot emit a dialect's
|
|
553
|
+
// private syntax. Expressing the bound at the ORM level as find-then-delete
|
|
554
|
+
// renders correctly on every driver MikroORM supports.
|
|
555
|
+
//
|
|
556
|
+
// It is also the better plan on the table that motivated this. The SELECT
|
|
557
|
+
// walks the `created_at` index from the oldest row and stops after `limit`
|
|
558
|
+
// matches instead of scanning the table, and it takes no row locks; the
|
|
559
|
+
// DELETE then touches exactly those primary keys and commits in milliseconds.
|
|
560
|
+
const doomed = await em.find(TelescopeEntry, where, {
|
|
561
|
+
orderBy: { createdAt: 'asc', id: 'asc' },
|
|
562
|
+
limit: input.limit,
|
|
563
|
+
fields: ['id'],
|
|
564
|
+
});
|
|
565
|
+
if (doomed.length === 0)
|
|
566
|
+
return { deleted: 0, hasMore: false };
|
|
567
|
+
const deleted = await em.nativeDelete(TelescopeEntry, {
|
|
568
|
+
id: { $in: doomed.map((row) => row.id) },
|
|
569
|
+
});
|
|
570
|
+
// `hasMore` comes from what was SELECTED, not from what was deleted: another
|
|
571
|
+
// pruner racing us can delete some of these rows first, which lowers
|
|
572
|
+
// `deleted` while saying nothing about whether work remains.
|
|
573
|
+
return { deleted, hasMore: doomed.length === input.limit };
|
|
574
|
+
}
|
|
575
|
+
async tryAcquireLease(key, owner, ttlMs, nowMs) {
|
|
576
|
+
const em = this.forkEm();
|
|
577
|
+
const expiresAt = nowMs + ttlMs;
|
|
578
|
+
// Atomicity comes from the CONDITIONAL UPDATE, not from the transaction
|
|
579
|
+
// isolation level: `update ... where key = ? and (expires_at <= ? or owner = ?)`
|
|
580
|
+
// is a single statement that takes a row lock, so exactly one of two racing
|
|
581
|
+
// pods can match. Whoever matches gets the lease; the other's update affects
|
|
582
|
+
// zero rows.
|
|
583
|
+
return em.transactional(async (tx) => {
|
|
584
|
+
const updated = await tx.nativeUpdate(TelescopeLease, { key, $or: [{ expiresAt: { $lte: nowMs } }, { owner }] }, { owner, expiresAt });
|
|
585
|
+
if (updated > 0)
|
|
586
|
+
return true;
|
|
587
|
+
// No row matched: either somebody else holds a live lease, or there is no
|
|
588
|
+
// row at all. Distinguish by trying the insert — the primary key makes a
|
|
589
|
+
// concurrent double-insert impossible, and a duplicate-key failure simply
|
|
590
|
+
// means the other pod won the race.
|
|
591
|
+
const existing = await tx.findOne(TelescopeLease, { key });
|
|
592
|
+
if (existing !== null)
|
|
593
|
+
return false;
|
|
594
|
+
try {
|
|
595
|
+
await tx.insert(TelescopeLease, { key, owner, expiresAt });
|
|
596
|
+
return true;
|
|
597
|
+
}
|
|
598
|
+
catch {
|
|
599
|
+
return false;
|
|
600
|
+
}
|
|
601
|
+
});
|
|
602
|
+
}
|
|
603
|
+
async releaseLease(key, owner) {
|
|
604
|
+
const em = this.forkEm();
|
|
605
|
+
// Owner-scoped: a holder whose lease already expired and was re-granted must
|
|
606
|
+
// not delete the new holder's row.
|
|
607
|
+
await em.nativeDelete(TelescopeLease, { key, owner });
|
|
608
|
+
}
|
|
509
609
|
async pruneScoped(input) {
|
|
510
610
|
const em = this.forkEm();
|
|
511
|
-
|
|
512
|
-
// set, or — when neither is given — no type filter). MikroORM renders the
|
|
513
|
-
// type clause to `type = ?` / `type not in (?, …)` on every driver.
|
|
514
|
-
const where = { createdAt: { $lt: input.before } };
|
|
515
|
-
if (input.type !== undefined) {
|
|
516
|
-
where.type = input.type;
|
|
517
|
-
}
|
|
518
|
-
else if (input.excludeTypes !== undefined && input.excludeTypes.length > 0) {
|
|
519
|
-
where.type = { $nin: input.excludeTypes };
|
|
520
|
-
}
|
|
611
|
+
const where = scopedWhere(input);
|
|
521
612
|
if (input.keepLast === undefined) {
|
|
522
613
|
return em.nativeDelete(TelescopeEntry, where);
|
|
523
614
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mikro-orm-storage.provider.js","sourceRoot":"","sources":["../src/mikro-orm-storage.provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mikro-orm-storage.provider.js","sourceRoot":"","sources":["../src/mikro-orm-storage.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAmEzC,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAA0B,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAA2B,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB;;;;;GAKG;AACH,MAAM,eAAe,GAAG,CAAC,CAAC;AAE1B,sDAAsD;AACtD,MAAM,cAAc,GAAG,WAAW,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,4BAA4B,GAChC,oDAAoD;IACpD,2BAA2B;IAC3B,oCAAoC;IACpC,8BAA8B;IAC9B,mBAAmB,CAAC;AAEtB,sEAAsE;AACtE,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG;IACzB,IAAI;IACJ,SAAS;IACT,MAAM;IACN,YAAY;IACZ,MAAM;IACN,UAAU;IACV,UAAU;IACV,YAAY;IACZ,QAAQ;IACR,YAAY;IACZ,SAAS;IACT,QAAQ;IACR,WAAW;CACH,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAalD,SAAS,OAAO,CAAC,IAAc;IAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AACnD,CAAC;AAKD,SAAS,UAAU,CAAC,GAAwB,EAAE,WAAW,GAAG,KAAK;IAC/D,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC;QACnD,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;QACzD,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI;QAC5B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,IAAI;QAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAY;IAClC,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACrD,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,KAIpB;IACC,MAAM,KAAK,GAAmC,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;IACnF,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IAC1B,CAAC;SAAM,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7E,KAAK,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAyB;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;AACnG,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,UAAmB;IAC7C,MAAM,UAAU,GAAqB,EAAE,CAAC;IACxC,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS;QAAE,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC3E,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS;QAAE,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC3E,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS;QAAE,UAAU,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACpF,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS;QAAE,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IACrE,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS;QAAE,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IACrE,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS;QAAE,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IACrE,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS;QAAE,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;IACjF,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS;QAAE,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC3E,IAAI,UAAU,CAAC,aAAa,KAAK,SAAS;QAAE,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC;IAChG,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS;QAAE,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IACrE,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS;QAAE,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IAC9E,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS;QAAE,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IAC9E,IAAI,UAAU,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC9C,UAAU,CAAC,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAC;IAC5D,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS;QAAE,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;IACjF,OAAO,UAAU,CAAC;AACpB,CAAC;AA6CD;;;;;;;;;;;;GAYG;AACH,SAAS,sBAAsB,CAAC,GAAa;IAC3C,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACnC,OAAO;QACL,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,SAAS;QACtC,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,SAAS;QACvC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,SAAS;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,KAAa;IACjD,IAAI,IAAI,GAAG,KAAK;QAAE,OAAO,CAAC,CAAC,CAAC;IAC5B,IAAI,IAAI,GAAG,KAAK;QAAE,OAAO,CAAC,CAAC;IAC3B,OAAO,CAAC,CAAC;AACX,CAAC;AAED;4EAC4E;AAC5E,SAAS,SAAS,CAAC,IAAoB;IACrC,MAAM,OAAO,GAAwB,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;YAC3C,OAAO,CAAC,IAAI,CAAC;gBACX,aAAa,EAAE,IAAI,CAAC,aAAa,KAAK,IAAI;gBAC1C,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;gBAC7B,IAAI,EAAE,SAAS;gBACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI;gBAChC,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI;gBAC9B,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI;aAClE,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAkC;IAC3D,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,SAAS,SAAS,CAAC,IAAoB;IACrC,MAAM,OAAO,GAAuB,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;gBACnC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE;aACxC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC;gBACpC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE;aACxC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC;QAClC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YACxC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;YACf,CAAC,CAAC,QAAQ,KAAK,SAAS;gBACtB,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACZ,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CACjB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;QACrC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CACxE,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,0BAA0B,CAAC,GAAa,EAAE,eAAyB;IAC1E,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;IACvC,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,SAAS;QACzC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAE9E,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,OAAO,GAA6B;QACxC,OAAO,EAAE,OAAO,IAAI,IAAI;QACxB,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,IAAI;QAC/C,QAAQ,EAAE,eAAe;QACzB,MAAM;KACP,CAAC;IACF,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5E,CAAC;AAED,kFAAkF;AAClF,KAAK,UAAU,qBAAqB,CAAC,GAAa;IAChD,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAC1E,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AACtC,CAAC;AAED,uFAAuF;AACvF,KAAK,UAAU,sBAAsB,CAAC,GAAa,EAAE,WAAmB;IACtE,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,EAAE,CAAC,MAAM,CAAC,mBAAmB,EAAE;QACnC,EAAE,EAAE,cAAc;QAClB,WAAW;QACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC,CAAC;AACL,CAAC;AAOD;;;;;;;GAOG;AACH,KAAK,UAAU,iBAAiB,CAAC,GAAa;IAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrE,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAe;QACvB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,sBAAsB;QACxB,CAAC;KACF,CAAC;IACF,IAAI,CAAC;QACH,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7D,MAAM,UAAU,CAAC,OAAO,CAAC,oBAAoB,gBAAgB,kBAAkB,CAAC,CAAC;YACjF,OAAO;gBACL,OAAO,EAAE,KAAK,IAAI,EAAE;oBAClB,IAAI,CAAC;wBACH,MAAM,UAAU,CAAC,OAAO,CAAC,wBAAwB,gBAAgB,IAAI,CAAC,CAAC;oBACzE,CAAC;oBAAC,MAAM,CAAC;wBACP,4CAA4C;oBAC9C,CAAC;gBACH,CAAC;aACF,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,MAAM,UAAU,CAAC,OAAO,CAAC,qCAAqC,gBAAgB,KAAK,CAAC,CAAC;YACrF,OAAO;gBACL,OAAO,EAAE,KAAK,IAAI,EAAE;oBAClB,IAAI,CAAC;wBACH,MAAM,UAAU,CAAC,OAAO,CAAC,uCAAuC,gBAAgB,KAAK,CAAC,CAAC;oBACzF,CAAC;oBAAC,MAAM,CAAC;wBACP,4CAA4C;oBAC9C,CAAC;gBACH,CAAC;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oDAAoD;IACtD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,uBAAuB;IAGjB,MAAM,CAA4C;IAClD,YAAY,CAAU;IAC/B,GAAG,GAAoB,IAAI,CAAC;IAEpC,YACE,MAAiD,EACjD,IAAiC;QAEjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,IAAI,EAAE,YAAY,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACxC,CAAC;aAAM,IAAI,CAAC,CAAC,MAAM,YAAY,QAAQ,CAAC,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YAC9E,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,IAAI,IAAI,CAAC,MAAM,YAAY,QAAQ,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACnE,OAAO;gBACL,GAAG,UAAU;gBACb,QAAQ,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,cAAc,CAAC;gBAChF,WAAW,EAAE,sBAAsB;gBACnC,kBAAkB,EAAE,IAAI;aACzB,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAClF,OAAO;YACL,GAAG,IAAI;YACP,QAAQ,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,cAAc,CAAC;YAChF,WAAW,EAAE,sBAAsB;YACnC,kBAAkB,EAAE,IAAI;SACzB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,GAAG;YAAE,OAAO;QACrB,IAAI,CAAC,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,KAAK,CAAC,eAAe,CAAC,GAAa;QACzC,0EAA0E;QAC1E,mEAAmE;QACnE,MAAM,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAElC,MAAM,eAAe,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAEpD,mEAAmE;QACnE,MAAM,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QAEnE,wDAAwD;QACxD,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,0BAA0B,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QAElE,6EAA6E;QAC7E,IAAI,MAAM,KAAK,QAAQ;YAAE,OAAO;QAEhC,wEAAwE;QACxE,4CAA4C;QAC5C,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,yEAAyE;YACzE,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,QAAQ,KAAK,QAAQ;gBAAE,OAAO;YAElC,0EAA0E;YAC1E,2EAA2E;YAC3E,4CAA4C;YAC5C,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,MAAM,sBAAsB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAEO,MAAM;QACZ,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAgB;QAC1B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,KAAqB;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;QAC1C,MAAM,SAAS,GAA+B,EAAE,GAAG,IAAI,EAAE,CAAC;QAC1D,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;QACD,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC1B,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAU;QACnB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,OAAO,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAiB;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,KAAK,GAAmC,EAAE,CAAC;QAEjD,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC5B,2EAA2E;YAC3E,iCAAiC;YACjC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;YACxC,CAAC;YACD,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;QAChC,CAAC;QACD,yEAAyE;QACzE,sEAAsE;QACtE,4EAA4E;QAC5E,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACtD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;YAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACxE,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC/D,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC/D,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;YAAE,KAAK,CAAC,QAAQ,GAAG,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC;QAE5E,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChC,KAAK,CAAC,SAAS,GAAG;gBAChB,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;gBACxC,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;aAC3C,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAChE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC9C,KAAK,CAAC,GAAG,GAAG;gBACV,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE;gBAClC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE;aAClD,CAAC;QACJ,CAAC;QAED,6EAA6E;QAC7E,oEAAoE;QACpE,6EAA6E;QAC7E,gFAAgF;QAChF,gFAAgF;QAChF,8EAA8E;QAC9E,qEAAqE;QACrE,MAAM,UAAU,GACd,KAAK,CAAC,MAAM,KAAK,SAAS;YACxB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,EAAE;YACzE,CAAC,CAAC,KAAK,CAAC;QAEZ,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE;YACrD,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;YAC1C,KAAK,EAAE,KAAK,GAAG,CAAC;YAChB,yEAAyE;YACzE,wCAAwC;YACxC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,UAAU,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE5F,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAe;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAe;QACxB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CACxB,cAAc,EACd,EAAE,EACF,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAC/E,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC3B,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;oBAAE,SAAS;gBAChD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAe,EAAE,QAAiB;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CACzB,cAAc,EACd,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EACjC,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAC/D,CAAC;QACF,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACpC,OAAO,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAwB;QAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,2EAA2E;QAC3E,uEAAuE;QACvE,6EAA6E;QAC7E,4EAA4E;QAC5E,0DAA0D;QAC1D,+EAA+E;QAC/E,4EAA4E;QAC5E,8EAA8E;QAC9E,4EAA4E;QAC5E,uDAAuD;QACvD,EAAE;QACF,0EAA0E;QAC1E,2EAA2E;QAC3E,wEAAwE;QACxE,8EAA8E;QAC9E,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE;YAClD,OAAO,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE;YACxC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,CAAC,IAAI,CAAC;SACf,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC/D,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE;YACpD,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;SACzC,CAAC,CAAC;QACH,6EAA6E;QAC7E,qEAAqE;QACrE,6DAA6D;QAC7D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,GAAW,EACX,KAAa,EACb,KAAa,EACb,KAAa;QAEb,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;QAChC,wEAAwE;QACxE,iFAAiF;QACjF,4EAA4E;QAC5E,6EAA6E;QAC7E,aAAa;QACb,OAAO,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACnC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,YAAY,CACnC,cAAc,EACd,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EACzD,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;YACF,IAAI,OAAO,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC7B,0EAA0E;YAC1E,yEAAyE;YACzE,0EAA0E;YAC1E,oCAAoC;YACpC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3D,IAAI,QAAQ,KAAK,IAAI;gBAAE,OAAO,KAAK,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC3D,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,KAAa;QAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,6EAA6E;QAC7E,mCAAmC;QACnC,MAAM,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAiB;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE;YACjD,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;YAC1C,MAAM,EAAE,CAAC,IAAI,CAAC;SACf,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACpC,OAAO,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC1C,MAAM,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,8EAA8E;IAE9E;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,aAAa,CAAC,MAAqB;QACvC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAChC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE;oBACjD,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,WAAW,EAAE,KAAK,CAAC,WAAW;iBAC/B,CAAC,CAAC;gBACH,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;oBAC9B,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;oBAC1B,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;oBACjD,iEAAiE;oBACjE,QAAQ,CAAC,SAAS,GAAG,eAAe,CAClC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,EACtC,KAAK,CAAC,SAAS,CAChB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,EAAE,CAAC,MAAM,CAAC,eAAe,EAAE;wBACzB,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,GAAG,EAAE,KAAK,CAAC,GAAG;wBACd,GAAG,EAAE,KAAK,CAAC,GAAG;wBACd,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC;qBAC/C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,OAAiB,EACjB,UAAkB,EAClB,QAAgB;QAEhB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE;YAC1C,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;YACxB,WAAW,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;SAClD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAuB,EAAE,EAAE,CAAC,CAAC;YAC5C,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,SAAS,EAAE,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;SAC7C,CAAC,CAAC,CAAC;IACN,CAAC;CACF"}
|
package/dist/schema.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Tables this package creates and manages at boot (autoSchema). Feed to your
|
|
3
3
|
* ORM's migration differ skip/exclude list so it never tries to drop them.
|
|
4
4
|
*
|
|
5
|
-
* DERIVED from the
|
|
5
|
+
* DERIVED from the four entities' own `tableName` — never a hardcoded
|
|
6
6
|
* parallel literal list — so a future rename flows through automatically.
|
|
7
7
|
* Includes `telescope_schema_meta` (the boot fingerprint marker): a migration
|
|
8
8
|
* differ that doesn't know about it would try to drop it too.
|
package/dist/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAOjD"}
|
package/dist/schema.js
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
// packages/mikro-orm/src/schema.ts
|
|
2
2
|
//
|
|
3
3
|
// The tables the `MikroOrmStorageProvider` boot-manages: `telescope_entries`,
|
|
4
|
-
// `telescope_rollups`, and `telescope_schema_meta` (see
|
|
4
|
+
// `telescope_rollups`, `telescope_leases`, and `telescope_schema_meta` (see
|
|
5
5
|
// mikro-orm-storage.provider.ts for the fingerprint-gated `schema.update`
|
|
6
6
|
// that reconciles them). A host that runs its OWN MikroORM CLI migrations
|
|
7
7
|
// against a shared database needs to keep its migration differ from ever
|
|
8
8
|
// trying to drop these — this module gives it that denylist without hand-
|
|
9
9
|
// maintaining a parallel string list that can drift from the entities.
|
|
10
10
|
import { TelescopeEntry } from './telescope-entry.entity.js';
|
|
11
|
+
import { TelescopeLease } from './telescope-lease.entity.js';
|
|
11
12
|
import { TelescopeRollup } from './telescope-rollup.entity.js';
|
|
12
13
|
import { TelescopeSchemaMeta } from './telescope-schema-meta.entity.js';
|
|
13
14
|
/**
|
|
14
15
|
* Tables this package creates and manages at boot (autoSchema). Feed to your
|
|
15
16
|
* ORM's migration differ skip/exclude list so it never tries to drop them.
|
|
16
17
|
*
|
|
17
|
-
* DERIVED from the
|
|
18
|
+
* DERIVED from the four entities' own `tableName` — never a hardcoded
|
|
18
19
|
* parallel literal list — so a future rename flows through automatically.
|
|
19
20
|
* Includes `telescope_schema_meta` (the boot fingerprint marker): a migration
|
|
20
21
|
* differ that doesn't know about it would try to drop it too.
|
|
@@ -27,6 +28,11 @@ import { TelescopeSchemaMeta } from './telescope-schema-meta.entity.js';
|
|
|
27
28
|
* ```
|
|
28
29
|
*/
|
|
29
30
|
export function telescopeManagedTables() {
|
|
30
|
-
return [
|
|
31
|
+
return [
|
|
32
|
+
TelescopeEntry.tableName,
|
|
33
|
+
TelescopeRollup.tableName,
|
|
34
|
+
TelescopeLease.tableName,
|
|
35
|
+
TelescopeSchemaMeta.tableName,
|
|
36
|
+
];
|
|
31
37
|
}
|
|
32
38
|
//# sourceMappingURL=schema.js.map
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,EAAE;AACF,8EAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,EAAE;AACF,8EAA8E;AAC9E,4EAA4E;AAC5E,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,0EAA0E;AAC1E,uEAAuE;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO;QACL,cAAc,CAAC,SAAS;QACxB,eAAe,CAAC,SAAS;QACzB,cAAc,CAAC,SAAS;QACxB,mBAAmB,CAAC,SAAS;KAC9B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EntitySchema } from '@mikro-orm/core';
|
|
2
|
+
export interface TelescopeLeaseRow {
|
|
3
|
+
/** Lock name, e.g. `telescope:prune`. One row per lock. */
|
|
4
|
+
key: string;
|
|
5
|
+
/** Holder identity (`<instanceId>#<pid>`), so a release can be owner-checked. */
|
|
6
|
+
owner: string;
|
|
7
|
+
/** Epoch-ms after which the lease is abandoned and may be re-granted. */
|
|
8
|
+
expiresAt: number;
|
|
9
|
+
}
|
|
10
|
+
export declare const TelescopeLease: EntitySchema<TelescopeLeaseRow, never, import("@mikro-orm/core").EntityCtor<TelescopeLeaseRow>>;
|
|
11
|
+
//# sourceMappingURL=telescope-lease.entity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telescope-lease.entity.d.ts","sourceRoot":"","sources":["../src/telescope-lease.entity.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAc,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,GAAG,EAAE,MAAM,CAAC;IACZ,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAC;CACnB;AASD,eAAO,MAAM,cAAc,iGAUzB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// packages/mikro-orm/src/telescope-lease.entity.ts
|
|
2
|
+
//
|
|
3
|
+
// Lease table backing the default cross-process prune lock. One row per lock
|
|
4
|
+
// name, holding who has it and when their claim lapses.
|
|
5
|
+
//
|
|
6
|
+
// Why a table and not a job engine, a Redis key, or an advisory lock: Telescope
|
|
7
|
+
// mounts into any NestJS app and must not require infrastructure the host does
|
|
8
|
+
// not already run. It DOES always have a database — that is where the entries
|
|
9
|
+
// live — so a row with an owner and an expiry is the one primitive guaranteed to
|
|
10
|
+
// exist on every supported provider. A host that owns something better supplies
|
|
11
|
+
// its own `prune.lock` implementation instead.
|
|
12
|
+
//
|
|
13
|
+
// `expires_at` is the whole point of the design rather than a detail: a pod that
|
|
14
|
+
// is SIGKILLed mid-prune never releases, and without an expiry that would stop
|
|
15
|
+
// the entire fleet from pruning forever. The lease is reclaimed once it lapses.
|
|
16
|
+
//
|
|
17
|
+
// Defined via EntitySchema (NOT decorators), like every other telescope entity,
|
|
18
|
+
// so the host needs no emitDecoratorMetadata. It is registered in the provider's
|
|
19
|
+
// OWNED single-purpose ORM and created by the same additive `schema.update` that
|
|
20
|
+
// manages `telescope_entries`.
|
|
21
|
+
import { BigIntType, EntitySchema } from '@mikro-orm/core';
|
|
22
|
+
// Epoch-ms, so a true SQL BIGINT is the right width on MySQL. Pinned to `number`
|
|
23
|
+
// mode (instead of the default `bigint`) so the JS value is a plain number and
|
|
24
|
+
// the row interface stays cast-free — matching the rollup/meta entities.
|
|
25
|
+
function bigintNumber() {
|
|
26
|
+
return new BigIntType('number');
|
|
27
|
+
}
|
|
28
|
+
export const TelescopeLease = new EntitySchema({
|
|
29
|
+
name: 'TelescopeLease',
|
|
30
|
+
tableName: 'telescope_leases',
|
|
31
|
+
properties: {
|
|
32
|
+
// `lease_key`, not `key`: `key` is a reserved word in MySQL and would need
|
|
33
|
+
// quoting on every statement.
|
|
34
|
+
key: { type: 'string', primary: true, length: 64, fieldName: 'lease_key' },
|
|
35
|
+
owner: { type: 'string', length: 200 },
|
|
36
|
+
expiresAt: { type: bigintNumber(), fieldName: 'expires_at' },
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
//# sourceMappingURL=telescope-lease.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telescope-lease.entity.js","sourceRoot":"","sources":["../src/telescope-lease.entity.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,6EAA6E;AAC7E,wDAAwD;AACxD,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,iFAAiF;AACjF,gFAAgF;AAChF,+CAA+C;AAC/C,EAAE;AACF,iFAAiF;AACjF,+EAA+E;AAC/E,gFAAgF;AAChF,EAAE;AACF,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,+BAA+B;AAC/B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAW3D,iFAAiF;AACjF,+EAA+E;AAC/E,yEAAyE;AACzE,SAAS,YAAY;IACnB,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,YAAY,CAAoB;IAChE,IAAI,EAAE,gBAAgB;IACtB,SAAS,EAAE,kBAAkB;IAC7B,UAAU,EAAE;QACV,2EAA2E;QAC3E,8BAA8B;QAC9B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;QAC1E,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;QACtC,SAAS,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE;KAC7D;CACF,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dudousxd/nestjs-telescope-mikro-orm",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.1",
|
|
4
4
|
"description": "MikroORM query watcher for @dudousxd/nestjs-telescope.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"@nestjs/common": ">=10.0.0",
|
|
33
33
|
"@nestjs/core": ">=10.0.0",
|
|
34
34
|
"reflect-metadata": ">=0.1.13",
|
|
35
|
-
"@dudousxd/nestjs-telescope": "^1.
|
|
35
|
+
"@dudousxd/nestjs-telescope": "^1.28.1"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@mikro-orm/core": "^7.0.0",
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
"@mikro-orm/sql": "^7.0.0",
|
|
41
41
|
"@mikro-orm/nestjs": "^7.0.0",
|
|
42
42
|
"@mikro-orm/sqlite": "^7.0.0",
|
|
43
|
-
"@nestjs/common": "^
|
|
44
|
-
"@nestjs/core": "^
|
|
45
|
-
"@nestjs/testing": "^
|
|
43
|
+
"@nestjs/common": "^12.0.0",
|
|
44
|
+
"@nestjs/core": "^12.0.0",
|
|
45
|
+
"@nestjs/testing": "^12.0.0",
|
|
46
46
|
"@types/node": "^20.0.0",
|
|
47
47
|
"reflect-metadata": "^0.2.2",
|
|
48
48
|
"@types/supertest": "^6.0.2",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"supertest": "^7.0.0",
|
|
51
51
|
"typescript": "^5.4.0",
|
|
52
52
|
"vitest": "^3.0.0",
|
|
53
|
-
"@dudousxd/nestjs-telescope": "1.
|
|
53
|
+
"@dudousxd/nestjs-telescope": "1.28.1"
|
|
54
54
|
},
|
|
55
55
|
"engines": {
|
|
56
56
|
"node": ">=20"
|