velocious 1.0.698 → 1.0.700
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/build/configuration-types.js +23 -0
- package/build/configuration.js +136 -1
- package/build/database/advisory-lock-backend-policy.js +204 -0
- package/build/database/advisory-lock-file-backend.js +348 -0
- package/build/database/advisory-lock-runner.js +239 -16
- package/build/database/drivers/base.js +318 -15
- package/build/database/drivers/mssql/index.js +1 -1
- package/build/database/drivers/mysql/index.js +4 -2
- package/build/database/drivers/pgsql/index.js +4 -2
- package/build/database/drivers/sqlite/base.js +13 -129
- package/build/database/drivers/sqlite/index.js +41 -62
- package/build/database/migrator.js +120 -50
- package/build/database/record/attachments/store.js +84 -1
- package/build/environment-handlers/base.js +13 -0
- package/build/environment-handlers/node.js +11 -0
- package/build/http-server/server-lock.js +21 -115
- package/build/src/configuration-types.d.ts +68 -0
- package/build/src/configuration-types.d.ts.map +1 -1
- package/build/src/configuration-types.js +21 -1
- package/build/src/configuration.d.ts +100 -1
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +124 -2
- package/build/src/database/advisory-lock-backend-policy.d.ts +145 -0
- package/build/src/database/advisory-lock-backend-policy.d.ts.map +1 -0
- package/build/src/database/advisory-lock-backend-policy.js +184 -0
- package/build/src/database/advisory-lock-file-backend.d.ts +194 -0
- package/build/src/database/advisory-lock-file-backend.d.ts.map +1 -0
- package/build/src/database/advisory-lock-file-backend.js +313 -0
- package/build/src/database/advisory-lock-runner.d.ts +116 -15
- package/build/src/database/advisory-lock-runner.d.ts.map +1 -1
- package/build/src/database/advisory-lock-runner.js +190 -17
- package/build/src/database/drivers/base.d.ts +125 -4
- package/build/src/database/drivers/base.d.ts.map +1 -1
- package/build/src/database/drivers/base.js +282 -17
- package/build/src/database/drivers/mssql/index.d.ts +1 -1
- package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/index.js +2 -2
- package/build/src/database/drivers/mysql/index.d.ts +4 -2
- package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/index.js +5 -3
- package/build/src/database/drivers/pgsql/index.d.ts +4 -2
- package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/index.js +5 -3
- package/build/src/database/drivers/sqlite/base.d.ts +11 -49
- package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/base.js +14 -114
- package/build/src/database/drivers/sqlite/index.d.ts +28 -19
- package/build/src/database/drivers/sqlite/index.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/index.js +41 -59
- package/build/src/database/migrator.d.ts.map +1 -1
- package/build/src/database/migrator.js +110 -56
- package/build/src/database/record/attachments/store.d.ts +0 -3
- package/build/src/database/record/attachments/store.d.ts.map +1 -1
- package/build/src/database/record/attachments/store.js +71 -2
- package/build/src/environment-handlers/base.d.ts +14 -0
- package/build/src/environment-handlers/base.d.ts.map +1 -1
- package/build/src/environment-handlers/base.js +13 -1
- package/build/src/environment-handlers/node.d.ts +11 -0
- package/build/src/environment-handlers/node.d.ts.map +1 -1
- package/build/src/environment-handlers/node.js +11 -1
- package/build/src/http-server/server-lock.d.ts +13 -37
- package/build/src/http-server/server-lock.d.ts.map +1 -1
- package/build/src/http-server/server-lock.js +22 -109
- package/build/src/testing/test-runner.d.ts +74 -0
- package/build/src/testing/test-runner.d.ts.map +1 -1
- package/build/src/testing/test-runner.js +140 -1
- package/build/src/testing/test-tenant-database-pool.d.ts +183 -0
- package/build/src/testing/test-tenant-database-pool.d.ts.map +1 -0
- package/build/src/testing/test-tenant-database-pool.js +388 -0
- package/build/src/testing/velocious-attempt-executor.d.ts.map +1 -1
- package/build/src/testing/velocious-attempt-executor.js +43 -1
- package/build/testing/test-runner.js +152 -0
- package/build/testing/test-tenant-database-pool.js +438 -0
- package/build/testing/velocious-attempt-executor.js +44 -0
- package/package.json +1 -1
- package/src/configuration-types.js +23 -0
- package/src/configuration.js +136 -1
- package/src/database/advisory-lock-backend-policy.js +204 -0
- package/src/database/advisory-lock-file-backend.js +348 -0
- package/src/database/advisory-lock-runner.js +239 -16
- package/src/database/drivers/base.js +318 -15
- package/src/database/drivers/mssql/index.js +1 -1
- package/src/database/drivers/mysql/index.js +4 -2
- package/src/database/drivers/pgsql/index.js +4 -2
- package/src/database/drivers/sqlite/base.js +13 -129
- package/src/database/drivers/sqlite/index.js +41 -62
- package/src/database/migrator.js +120 -50
- package/src/database/record/attachments/store.js +84 -1
- package/src/environment-handlers/base.js +13 -0
- package/src/environment-handlers/node.js +11 -0
- package/src/http-server/server-lock.js +21 -115
- package/src/testing/test-runner.js +152 -0
- package/src/testing/test-tenant-database-pool.js +438 -0
- package/src/testing/velocious-attempt-executor.js +44 -0
|
@@ -1,11 +1,18 @@
|
|
|
1
|
+
import AdvisoryLockFileBackend from "../database/advisory-lock-file-backend.js";
|
|
1
2
|
/**
|
|
2
|
-
* Directory-based lock that allows only one HTTP server process per app
|
|
3
|
+
* Directory-based lock that allows only one HTTP server process per app
|
|
4
|
+
* directory. Thin wrapper over the shared file-lock backend
|
|
5
|
+
* (`src/database/advisory-lock-file-backend.js` — the STC-210 `file` tier
|
|
6
|
+
* primitive generalized from this lock's original hand-rolled directory
|
|
7
|
+
* protocol), so the server lock and the advisory-lock file tier share one
|
|
8
|
+
* acquisition, owner-metadata, lease-renewal, and staleness implementation.
|
|
3
9
|
*/
|
|
4
10
|
export default class VelociousHttpServerLock {
|
|
5
11
|
configuration: import("../configuration.js").default;
|
|
6
12
|
host: string;
|
|
7
13
|
port: number;
|
|
8
14
|
lockPath: string;
|
|
15
|
+
backend: AdvisoryLockFileBackend;
|
|
9
16
|
acquired: boolean;
|
|
10
17
|
/**
|
|
11
18
|
* Build a lock for the configured application directory and server endpoint.
|
|
@@ -20,53 +27,22 @@ export default class VelociousHttpServerLock {
|
|
|
20
27
|
port: number;
|
|
21
28
|
});
|
|
22
29
|
/**
|
|
23
|
-
* Acquires the app-directory HTTP server lock before startup side effects
|
|
30
|
+
* Acquires the app-directory HTTP server lock before startup side effects
|
|
31
|
+
* run. A stale lock (dead local owner or expired lease) is reclaimed by the
|
|
32
|
+
* backend; a live foreign owner fails loudly with the owner details.
|
|
24
33
|
* @returns {Promise<void>} - Resolves after the lock has been acquired.
|
|
25
34
|
*/
|
|
26
35
|
acquire(): Promise<void>;
|
|
27
|
-
/**
|
|
28
|
-
* Tries to create the lock directory and write owner metadata.
|
|
29
|
-
* @returns {Promise<boolean>} - Whether the lock was acquired.
|
|
30
|
-
*/
|
|
31
|
-
tryAcquire(): Promise<boolean>;
|
|
32
36
|
/**
|
|
33
37
|
* Releases the held HTTP server lock directory.
|
|
34
38
|
* @returns {Promise<void>} - Resolves after best-effort lock release.
|
|
35
39
|
*/
|
|
36
40
|
release(): Promise<void>;
|
|
37
|
-
/**
|
|
38
|
-
* Writes metadata used to explain or reclaim an existing server lock.
|
|
39
|
-
* @returns {Promise<void>} - Resolves after owner metadata has been written.
|
|
40
|
-
*/
|
|
41
|
-
writeOwnerMetadata(): Promise<void>;
|
|
42
|
-
/**
|
|
43
|
-
* Checks whether the current lock owner is a dead process on this host.
|
|
44
|
-
* @returns {Promise<boolean>} - Whether the existing lock belongs to a dead process.
|
|
45
|
-
*/
|
|
46
|
-
isStale(): Promise<boolean>;
|
|
47
|
-
/**
|
|
48
|
-
* Runs is local process owner.
|
|
49
|
-
* @param {Record<string, ReturnType<typeof JSON.parse>> | null} owner - Existing lock owner metadata.
|
|
50
|
-
* @returns {boolean} - Whether owner metadata names a local process.
|
|
51
|
-
*/
|
|
52
|
-
isLocalProcessOwner(owner: Record<string, ReturnType<typeof JSON.parse>> | null): boolean;
|
|
53
|
-
/**
|
|
54
|
-
* Runs owner hostname matches.
|
|
55
|
-
* @param {Record<string, ReturnType<typeof JSON.parse>>} owner - Existing lock owner metadata.
|
|
56
|
-
* @returns {boolean} - Whether the owner hostname is local or absent.
|
|
57
|
-
*/
|
|
58
|
-
ownerHostnameMatches(owner: Record<string, ReturnType<typeof JSON.parse>>): boolean;
|
|
59
|
-
/**
|
|
60
|
-
* Runs process is dead.
|
|
61
|
-
* @param {number} pid - Process id.
|
|
62
|
-
* @returns {boolean} - Whether the process no longer exists.
|
|
63
|
-
*/
|
|
64
|
-
processIsDead(pid: number): boolean;
|
|
65
41
|
/**
|
|
66
42
|
* Reads owner metadata from an existing server lock directory.
|
|
67
|
-
* @returns {Promise<
|
|
43
|
+
* @returns {Promise<import("../database/advisory-lock-file-backend.js").AdvisoryLockFileOwner | null>} - Parsed owner metadata, when readable.
|
|
68
44
|
*/
|
|
69
|
-
readOwnerMetadata(): Promise<
|
|
45
|
+
readOwnerMetadata(): Promise<import("../database/advisory-lock-file-backend.js").AdvisoryLockFileOwner | null>;
|
|
70
46
|
/**
|
|
71
47
|
* Builds a duplicate-server error message with owner details when available.
|
|
72
48
|
* @returns {Promise<string>} - Error message explaining which server owns the lock.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-lock.d.ts","sourceRoot":"","sources":["../../../src/http-server/server-lock.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server-lock.d.ts","sourceRoot":"","sources":["../../../src/http-server/server-lock.js"],"names":[],"mappings":"AAEA,OAAO,uBAAuB,MAAM,2CAA2C,CAAA;AAG/E;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IASnC,aAAa;IACb,IAAI;IACJ,IAAI;IACJ,QAAQ;IACR,OAAO;IAKP,QAAQ;IAjBf;;;;;;OAMG;IACH,YAAY,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAC,EAJpC;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO,CAC7C;QAAqB,IAAI,EAAjB,MAAM,CACd;QAAqB,IAAI,EAAjB,MAAM,CAChB;KACsC,EAWtC;IAED;;;;;OAKG;IACG,OAAO,IAFA,OAAO,CAAC,IAAI,CAAC,CAQzB;IAED;;;OAGG;IACG,OAAO,IAFA,OAAO,CAAC,IAAI,CAAC,CAOzB;IAED;;;OAGG;IACG,iBAAiB,IAFV,OAAO,CAAC,OAAO,2CAA2C,EAAE,qBAAqB,GAAG,IAAI,CAAC,CAIrG;IAED;;;OAGG;IACG,eAAe,IAFR,OAAO,CAAC,MAAM,CAAC,CAS3B;CACF"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
// @ts-check
|
|
2
|
-
import
|
|
3
|
-
import os from "node:os";
|
|
2
|
+
import AdvisoryLockFileBackend from "../database/advisory-lock-file-backend.js";
|
|
4
3
|
import path from "node:path";
|
|
5
4
|
/**
|
|
6
|
-
* Directory-based lock that allows only one HTTP server process per app
|
|
5
|
+
* Directory-based lock that allows only one HTTP server process per app
|
|
6
|
+
* directory. Thin wrapper over the shared file-lock backend
|
|
7
|
+
* (`src/database/advisory-lock-file-backend.js` — the STC-210 `file` tier
|
|
8
|
+
* primitive generalized from this lock's original hand-rolled directory
|
|
9
|
+
* protocol), so the server lock and the advisory-lock file tier share one
|
|
10
|
+
* acquisition, owner-metadata, lease-renewal, and staleness implementation.
|
|
7
11
|
*/
|
|
8
12
|
export default class VelociousHttpServerLock {
|
|
9
13
|
/**
|
|
@@ -18,48 +22,24 @@ export default class VelociousHttpServerLock {
|
|
|
18
22
|
this.host = host;
|
|
19
23
|
this.port = port;
|
|
20
24
|
this.lockPath = path.join(configuration.getDirectory(), "tmp", "server.lock");
|
|
25
|
+
this.backend = new AdvisoryLockFileBackend({
|
|
26
|
+
directory: path.join(configuration.getDirectory(), "tmp"),
|
|
27
|
+
extraOwnerFields: { host: this.host, port: this.port },
|
|
28
|
+
pathStyle: "plain"
|
|
29
|
+
});
|
|
21
30
|
this.acquired = false;
|
|
22
31
|
}
|
|
23
32
|
/**
|
|
24
|
-
* Acquires the app-directory HTTP server lock before startup side effects
|
|
33
|
+
* Acquires the app-directory HTTP server lock before startup side effects
|
|
34
|
+
* run. A stale lock (dead local owner or expired lease) is reclaimed by the
|
|
35
|
+
* backend; a live foreign owner fails loudly with the owner details.
|
|
25
36
|
* @returns {Promise<void>} - Resolves after the lock has been acquired.
|
|
26
37
|
*/
|
|
27
38
|
async acquire() {
|
|
28
|
-
await
|
|
29
|
-
|
|
30
|
-
const acquired = await this.tryAcquire();
|
|
31
|
-
if (acquired) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
if (await this.isStale()) {
|
|
35
|
-
await fs.rm(this.lockPath, { recursive: true, force: true });
|
|
36
|
-
continue;
|
|
37
|
-
}
|
|
39
|
+
const acquired = await this.backend.acquire("server", { timeoutMs: 0 });
|
|
40
|
+
if (!acquired)
|
|
38
41
|
throw new Error(await this.lockHeldMessage());
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Tries to create the lock directory and write owner metadata.
|
|
43
|
-
* @returns {Promise<boolean>} - Whether the lock was acquired.
|
|
44
|
-
*/
|
|
45
|
-
async tryAcquire() {
|
|
46
|
-
try {
|
|
47
|
-
await fs.mkdir(this.lockPath);
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
if ( /** @type {{code?: string}} */(error).code === "EEXIST")
|
|
51
|
-
return false;
|
|
52
|
-
throw error;
|
|
53
|
-
}
|
|
54
|
-
try {
|
|
55
|
-
await this.writeOwnerMetadata();
|
|
56
|
-
this.acquired = true;
|
|
57
|
-
return true;
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
await fs.rm(this.lockPath, { recursive: true, force: true });
|
|
61
|
-
throw error;
|
|
62
|
-
}
|
|
42
|
+
this.acquired = true;
|
|
63
43
|
}
|
|
64
44
|
/**
|
|
65
45
|
* Releases the held HTTP server lock directory.
|
|
@@ -69,81 +49,14 @@ export default class VelociousHttpServerLock {
|
|
|
69
49
|
if (!this.acquired)
|
|
70
50
|
return;
|
|
71
51
|
this.acquired = false;
|
|
72
|
-
await
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Writes metadata used to explain or reclaim an existing server lock.
|
|
76
|
-
* @returns {Promise<void>} - Resolves after owner metadata has been written.
|
|
77
|
-
*/
|
|
78
|
-
async writeOwnerMetadata() {
|
|
79
|
-
await fs.writeFile(path.join(this.lockPath, "owner.json"), JSON.stringify({
|
|
80
|
-
acquiredAt: new Date().toISOString(),
|
|
81
|
-
host: this.host,
|
|
82
|
-
hostname: os.hostname(),
|
|
83
|
-
pid: process.pid,
|
|
84
|
-
port: this.port
|
|
85
|
-
}));
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Checks whether the current lock owner is a dead process on this host.
|
|
89
|
-
* @returns {Promise<boolean>} - Whether the existing lock belongs to a dead process.
|
|
90
|
-
*/
|
|
91
|
-
async isStale() {
|
|
92
|
-
const owner = await this.readOwnerMetadata();
|
|
93
|
-
if (!this.isLocalProcessOwner(owner))
|
|
94
|
-
return false;
|
|
95
|
-
return this.processIsDead(/** @type {{pid: number}} */ (owner).pid);
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Runs is local process owner.
|
|
99
|
-
* @param {Record<string, ReturnType<typeof JSON.parse>> | null} owner - Existing lock owner metadata.
|
|
100
|
-
* @returns {boolean} - Whether owner metadata names a local process.
|
|
101
|
-
*/
|
|
102
|
-
isLocalProcessOwner(owner) {
|
|
103
|
-
if (!owner)
|
|
104
|
-
return false;
|
|
105
|
-
if (typeof owner.pid !== "number")
|
|
106
|
-
return false;
|
|
107
|
-
return this.ownerHostnameMatches(owner);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Runs owner hostname matches.
|
|
111
|
-
* @param {Record<string, ReturnType<typeof JSON.parse>>} owner - Existing lock owner metadata.
|
|
112
|
-
* @returns {boolean} - Whether the owner hostname is local or absent.
|
|
113
|
-
*/
|
|
114
|
-
ownerHostnameMatches(owner) {
|
|
115
|
-
if (!owner.hostname)
|
|
116
|
-
return true;
|
|
117
|
-
if (owner.hostname === os.hostname())
|
|
118
|
-
return true;
|
|
119
|
-
return false;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Runs process is dead.
|
|
123
|
-
* @param {number} pid - Process id.
|
|
124
|
-
* @returns {boolean} - Whether the process no longer exists.
|
|
125
|
-
*/
|
|
126
|
-
processIsDead(pid) {
|
|
127
|
-
try {
|
|
128
|
-
process.kill(pid, 0);
|
|
129
|
-
return false;
|
|
130
|
-
}
|
|
131
|
-
catch (error) {
|
|
132
|
-
return /** @type {{code?: string}} */ (error).code === "ESRCH";
|
|
133
|
-
}
|
|
52
|
+
await this.backend.release("server");
|
|
134
53
|
}
|
|
135
54
|
/**
|
|
136
55
|
* Reads owner metadata from an existing server lock directory.
|
|
137
|
-
* @returns {Promise<
|
|
56
|
+
* @returns {Promise<import("../database/advisory-lock-file-backend.js").AdvisoryLockFileOwner | null>} - Parsed owner metadata, when readable.
|
|
138
57
|
*/
|
|
139
58
|
async readOwnerMetadata() {
|
|
140
|
-
|
|
141
|
-
const rawOwner = await fs.readFile(path.join(this.lockPath, "owner.json"), "utf8");
|
|
142
|
-
return /** @type {Record<string, ReturnType<typeof JSON.parse>>} */ (JSON.parse(rawOwner));
|
|
143
|
-
}
|
|
144
|
-
catch {
|
|
145
|
-
return null;
|
|
146
|
-
}
|
|
59
|
+
return await this.backend.holderInfo("server");
|
|
147
60
|
}
|
|
148
61
|
/**
|
|
149
62
|
* Builds a duplicate-server error message with owner details when available.
|
|
@@ -157,4 +70,4 @@ export default class VelociousHttpServerLock {
|
|
|
157
70
|
return `A Velocious HTTP server is already running for this application (${details}). Remove ${this.lockPath} if the server is no longer running.`;
|
|
158
71
|
}
|
|
159
72
|
}
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaHR0cC1zZXJ2ZXIvc2VydmVyLWxvY2suanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2pDLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUN4QixPQUFPLElBQUksTUFBTSxXQUFXLENBQUE7QUFFNUI7O0dBRUc7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLHVCQUF1QjtJQUMxQzs7Ozs7O09BTUc7SUFDSCxZQUFZLEVBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUE7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUE7UUFDN0UsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUE7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUMsU0FBUyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUE7UUFFOUQsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNaLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFBO1lBRXhDLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsT0FBTTtZQUNSLENBQUM7WUFFRCxJQUFJLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7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Q0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFDdkcsQ0FBQyxDQUFDLGtCQUFrQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7UUFFckMsT0FBTyxvRUFBb0UsT0FBTyxhQUFhLElBQUksQ0FBQyxRQUFRLHNDQUFzQyxDQUFBO0lBQ3BKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIlxuaW1wb3J0IG9zIGZyb20gXCJub2RlOm9zXCJcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIlxuXG4vKipcbiAqIERpcmVjdG9yeS1iYXNlZCBsb2NrIHRoYXQgYWxsb3dzIG9ubHkgb25lIEhUVFAgc2VydmVyIHByb2Nlc3MgcGVyIGFwcCBkaXJlY3RvcnkuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0h0dHBTZXJ2ZXJMb2NrIHtcbiAgLyoqXG4gICAqIEJ1aWxkIGEgbG9jayBmb3IgdGhlIGNvbmZpZ3VyZWQgYXBwbGljYXRpb24gZGlyZWN0b3J5IGFuZCBzZXJ2ZXIgZW5kcG9pbnQuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIHRoYXQgb3ducyB0aGUgYXBwbGljYXRpb24gZGlyZWN0b3J5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5ob3N0IC0gQ29uZmlndXJlZCBIVFRQIGhvc3QuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBhcmdzLnBvcnQgLSBDb25maWd1cmVkIEhUVFAgcG9ydC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtjb25maWd1cmF0aW9uLCBob3N0LCBwb3J0fSkge1xuICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLmhvc3QgPSBob3N0XG4gICAgdGhpcy5wb3J0ID0gcG9ydFxuICAgIHRoaXMubG9ja1BhdGggPSBwYXRoLmpvaW4oY29uZmlndXJhdGlvbi5nZXREaXJlY3RvcnkoKSwgXCJ0bXBcIiwgXCJzZXJ2ZXIubG9ja1wiKVxuICAgIHRoaXMuYWNxdWlyZWQgPSBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIEFjcXVpcmVzIHRoZSBhcHAtZGlyZWN0b3J5IEhUVFAgc2VydmVyIGxvY2sgYmVmb3JlIHN0YXJ0dXAgc2lkZSBlZmZlY3RzIHJ1bi5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgdGhlIGxvY2sgaGFzIGJlZW4gYWNxdWlyZWQuXG4gICAqL1xuICBhc3luYyBhY3F1aXJlKCkge1xuICAgIGF3YWl0IGZzLm1rZGlyKHBhdGguZGlybmFtZSh0aGlzLmxvY2tQYXRoKSwge3JlY3Vyc2l2ZTogdHJ1ZX0pXG5cbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgYWNxdWlyZWQgPSBhd2FpdCB0aGlzLnRyeUFjcXVpcmUoKVxuXG4gICAgICBpZiAoYWNxdWlyZWQpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGlmIChhd2FpdCB0aGlzLmlzU3RhbGUoKSkge1xuICAgICAgICBhd2FpdCBmcy5ybSh0aGlzLmxvY2tQYXRoLCB7cmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZX0pXG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihhd2FpdCB0aGlzLmxvY2tIZWxkTWVzc2FnZSgpKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmllcyB0byBjcmVhdGUgdGhlIGxvY2sgZGlyZWN0b3J5IGFuZCB3cml0ZSBvd25lciBtZXRhZGF0YS5cbiAgICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59IC0gV2hldGhlciB0aGUgbG9jayB3YXMgYWNxdWlyZWQuXG4gICAqL1xuICBhc3luYyB0cnlBY3F1aXJlKCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmcy5ta2Rpcih0aGlzLmxvY2tQYXRoKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoLyoqIEB0eXBlIHt7Y29kZT86IHN0cmluZ319ICovIChlcnJvcikuY29kZSA9PT0gXCJFRVhJU1RcIikgcmV0dXJuIGZhbHNlXG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLndyaXRlT3duZXJNZXRhZGF0YSgpXG4gICAgICB0aGlzLmFjcXVpcmVkID0gdHJ1ZVxuXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBhd2FpdCBmcy5ybSh0aGlzLmxvY2tQYXRoLCB7cmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZX0pXG4gICAgICB0aHJvdyBlcnJvclxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWxlYXNlcyB0aGUgaGVsZCBIVFRQIHNlcnZlciBsb2NrIGRpcmVjdG9yeS5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgYmVzdC1lZmZvcnQgbG9jayByZWxlYXNlLlxuICAgKi9cbiAgYXN5bmMgcmVsZWFzZSgpIHtcbiAgICBpZiAoIXRoaXMuYWNxdWlyZWQpIHJldHVyblxuXG4gICAgdGhpcy5hY3F1aXJlZCA9IGZhbHNlXG4gICAgYXdhaXQgZnMucm0odGhpcy5sb2NrUGF0aCwge3JlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWV9KVxuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlcyBtZXRhZGF0YSB1c2VkIHRvIGV4cGxhaW4gb3IgcmVjbGFpbSBhbiBleGlzdGluZyBzZXJ2ZXIgbG9jay5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgb3duZXIgbWV0YWRhdGEgaGFzIGJlZW4gd3JpdHRlbi5cbiAgICovXG4gIGFzeW5jIHdyaXRlT3duZXJNZXRhZGF0YSgpIHtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKHRoaXMubG9ja1BhdGgsIFwib3duZXIuanNvblwiKSwgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgYWNxdWlyZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgICAgaG9zdDogdGhpcy5ob3N0LFxuICAgICAgaG9zdG5hbWU6IG9zLmhvc3RuYW1lKCksXG4gICAgICBwaWQ6IHByb2Nlc3MucGlkLFxuICAgICAgcG9ydDogdGhpcy5wb3J0XG4gICAgfSkpXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgdGhlIGN1cnJlbnQgbG9jayBvd25lciBpcyBhIGRlYWQgcHJvY2VzcyBvbiB0aGlzIGhvc3QuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGJvb2xlYW4+fSAtIFdoZXRoZXIgdGhlIGV4aXN0aW5nIGxvY2sgYmVsb25ncyB0byBhIGRlYWQgcHJvY2Vzcy5cbiAgICovXG4gIGFzeW5jIGlzU3RhbGUoKSB7XG4gICAgY29uc3Qgb3duZXIgPSBhd2FpdCB0aGlzLnJlYWRPd25lck1ldGFkYXRhKClcblxuICAgIGlmICghdGhpcy5pc0xvY2FsUHJvY2Vzc093bmVyKG93bmVyKSkgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzSXNEZWFkKC8qKiBAdHlwZSB7e3BpZDogbnVtYmVyfX0gKi8gKG93bmVyKS5waWQpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBpcyBsb2NhbCBwcm9jZXNzIG93bmVyLlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+PiB8IG51bGx9IG93bmVyIC0gRXhpc3RpbmcgbG9jayBvd25lciBtZXRhZGF0YS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gV2hldGhlciBvd25lciBtZXRhZGF0YSBuYW1lcyBhIGxvY2FsIHByb2Nlc3MuXG4gICAqL1xuICBpc0xvY2FsUHJvY2Vzc093bmVyKG93bmVyKSB7XG4gICAgaWYgKCFvd25lcikgcmV0dXJuIGZhbHNlXG4gICAgaWYgKHR5cGVvZiBvd25lci5waWQgIT09IFwibnVtYmVyXCIpIHJldHVybiBmYWxzZVxuXG4gICAgcmV0dXJuIHRoaXMub3duZXJIb3N0bmFtZU1hdGNoZXMob3duZXIpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBvd25lciBob3N0bmFtZSBtYXRjaGVzLlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gb3duZXIgLSBFeGlzdGluZyBsb2NrIG93bmVyIG1ldGFkYXRhLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIHRoZSBvd25lciBob3N0bmFtZSBpcyBsb2NhbCBvciBhYnNlbnQuXG4gICAqL1xuICBvd25lckhvc3RuYW1lTWF0Y2hlcyhvd25lcikge1xuICAgIGlmICghb3duZXIuaG9zdG5hbWUpIHJldHVybiB0cnVlXG4gICAgaWYgKG93bmVyLmhvc3RuYW1lID09PSBvcy5ob3N0bmFtZSgpKSByZXR1cm4gdHJ1ZVxuXG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogUnVucyBwcm9jZXNzIGlzIGRlYWQuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBwaWQgLSBQcm9jZXNzIGlkLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIHRoZSBwcm9jZXNzIG5vIGxvbmdlciBleGlzdHMuXG4gICAqL1xuICBwcm9jZXNzSXNEZWFkKHBpZCkge1xuICAgIHRyeSB7XG4gICAgICBwcm9jZXNzLmtpbGwocGlkLCAwKVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIC8qKiBAdHlwZSB7e2NvZGU/OiBzdHJpbmd9fSAqLyAoZXJyb3IpLmNvZGUgPT09IFwiRVNSQ0hcIlxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyBvd25lciBtZXRhZGF0YSBmcm9tIGFuIGV4aXN0aW5nIHNlcnZlciBsb2NrIGRpcmVjdG9yeS5cbiAgICogQHJldHVybnMge1Byb21pc2U8UmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4+IHwgbnVsbD59IC0gUGFyc2VkIG93bmVyIG1ldGFkYXRhLCB3aGVuIHJlYWRhYmxlLlxuICAgKi9cbiAgYXN5bmMgcmVhZE93bmVyTWV0YWRhdGEoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJhd093bmVyID0gYXdhaXQgZnMucmVhZEZpbGUocGF0aC5qb2luKHRoaXMubG9ja1BhdGgsIFwib3duZXIuanNvblwiKSwgXCJ1dGY4XCIpXG5cbiAgICAgIHJldHVybiAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gKi8gKEpTT04ucGFyc2UocmF3T3duZXIpKVxuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIGEgZHVwbGljYXRlLXNlcnZlciBlcnJvciBtZXNzYWdlIHdpdGggb3duZXIgZGV0YWlscyB3aGVuIGF2YWlsYWJsZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gLSBFcnJvciBtZXNzYWdlIGV4cGxhaW5pbmcgd2hpY2ggc2VydmVyIG93bnMgdGhlIGxvY2suXG4gICAqL1xuICBhc3luYyBsb2NrSGVsZE1lc3NhZ2UoKSB7XG4gICAgY29uc3Qgb3duZXIgPSBhd2FpdCB0aGlzLnJlYWRPd25lck1ldGFkYXRhKClcbiAgICBjb25zdCBkZXRhaWxzID0gb3duZXJcbiAgICAgID8gYFBJRCAke1N0cmluZyhvd25lci5waWQpfSBvbiAke1N0cmluZyhvd25lci5ob3N0bmFtZSl9ICgke1N0cmluZyhvd25lci5ob3N0KX06JHtTdHJpbmcob3duZXIucG9ydCl9KWBcbiAgICAgIDogYGxvY2sgZGlyZWN0b3J5ICR7dGhpcy5sb2NrUGF0aH1gXG5cbiAgICByZXR1cm4gYEEgVmVsb2Npb3VzIEhUVFAgc2VydmVyIGlzIGFscmVhZHkgcnVubmluZyBmb3IgdGhpcyBhcHBsaWNhdGlvbiAoJHtkZXRhaWxzfSkuIFJlbW92ZSAke3RoaXMubG9ja1BhdGh9IGlmIHRoZSBzZXJ2ZXIgaXMgbm8gbG9uZ2VyIHJ1bm5pbmcuYFxuICB9XG59XG4iXX0=
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaHR0cC1zZXJ2ZXIvc2VydmVyLWxvY2suanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sdUJBQXVCLE1BQU0sMkNBQTJDLENBQUE7QUFDL0UsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBRTVCOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsT0FBTyxPQUFPLHVCQUF1QjtJQUMxQzs7Ozs7O09BTUc7SUFDSCxZQUFZLEVBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUE7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUE7UUFDN0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLHVCQUF1QixDQUFDO1lBQ3pDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsRUFBRSxLQUFLLENBQUM7WUFDekQsZ0JBQWdCLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBQztZQUNwRCxTQUFTLEVBQUUsT0FBTztTQUNuQixDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtJQUN2QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUMsU0FBUyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUE7UUFFckUsSUFBSSxDQUFDLFFBQVE7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUE7UUFFNUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7SUFDdEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxPQUFPO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTTtRQUUxQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtRQUNyQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3RDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsaUJBQWlCO1FBQ3JCLE9BQU8sTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGVBQWU7UUFDbkIsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtRQUM1QyxNQUFNLE9BQU8sR0FBRyxLQUFLO1lBQ25CLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUc7WUFDdkcsQ0FBQyxDQUFDLGtCQUFrQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7UUFFckMsT0FBTyxvRUFBb0UsT0FBTyxhQUFhLElBQUksQ0FBQyxRQUFRLHNDQUFzQyxDQUFBO0lBQ3BKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQWR2aXNvcnlMb2NrRmlsZUJhY2tlbmQgZnJvbSBcIi4uL2RhdGFiYXNlL2Fkdmlzb3J5LWxvY2stZmlsZS1iYWNrZW5kLmpzXCJcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIlxuXG4vKipcbiAqIERpcmVjdG9yeS1iYXNlZCBsb2NrIHRoYXQgYWxsb3dzIG9ubHkgb25lIEhUVFAgc2VydmVyIHByb2Nlc3MgcGVyIGFwcFxuICogZGlyZWN0b3J5LiBUaGluIHdyYXBwZXIgb3ZlciB0aGUgc2hhcmVkIGZpbGUtbG9jayBiYWNrZW5kXG4gKiAoYHNyYy9kYXRhYmFzZS9hZHZpc29yeS1sb2NrLWZpbGUtYmFja2VuZC5qc2Ag4oCUIHRoZSBTVEMtMjEwIGBmaWxlYCB0aWVyXG4gKiBwcmltaXRpdmUgZ2VuZXJhbGl6ZWQgZnJvbSB0aGlzIGxvY2sncyBvcmlnaW5hbCBoYW5kLXJvbGxlZCBkaXJlY3RvcnlcbiAqIHByb3RvY29sKSwgc28gdGhlIHNlcnZlciBsb2NrIGFuZCB0aGUgYWR2aXNvcnktbG9jayBmaWxlIHRpZXIgc2hhcmUgb25lXG4gKiBhY3F1aXNpdGlvbiwgb3duZXItbWV0YWRhdGEsIGxlYXNlLXJlbmV3YWwsIGFuZCBzdGFsZW5lc3MgaW1wbGVtZW50YXRpb24uXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0h0dHBTZXJ2ZXJMb2NrIHtcbiAgLyoqXG4gICAqIEJ1aWxkIGEgbG9jayBmb3IgdGhlIGNvbmZpZ3VyZWQgYXBwbGljYXRpb24gZGlyZWN0b3J5IGFuZCBzZXJ2ZXIgZW5kcG9pbnQuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucyBvYmplY3QuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uIHRoYXQgb3ducyB0aGUgYXBwbGljYXRpb24gZGlyZWN0b3J5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5ob3N0IC0gQ29uZmlndXJlZCBIVFRQIGhvc3QuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBhcmdzLnBvcnQgLSBDb25maWd1cmVkIEhUVFAgcG9ydC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtjb25maWd1cmF0aW9uLCBob3N0LCBwb3J0fSkge1xuICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLmhvc3QgPSBob3N0XG4gICAgdGhpcy5wb3J0ID0gcG9ydFxuICAgIHRoaXMubG9ja1BhdGggPSBwYXRoLmpvaW4oY29uZmlndXJhdGlvbi5nZXREaXJlY3RvcnkoKSwgXCJ0bXBcIiwgXCJzZXJ2ZXIubG9ja1wiKVxuICAgIHRoaXMuYmFja2VuZCA9IG5ldyBBZHZpc29yeUxvY2tGaWxlQmFja2VuZCh7XG4gICAgICBkaXJlY3Rvcnk6IHBhdGguam9pbihjb25maWd1cmF0aW9uLmdldERpcmVjdG9yeSgpLCBcInRtcFwiKSxcbiAgICAgIGV4dHJhT3duZXJGaWVsZHM6IHtob3N0OiB0aGlzLmhvc3QsIHBvcnQ6IHRoaXMucG9ydH0sXG4gICAgICBwYXRoU3R5bGU6IFwicGxhaW5cIlxuICAgIH0pXG4gICAgdGhpcy5hY3F1aXJlZCA9IGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogQWNxdWlyZXMgdGhlIGFwcC1kaXJlY3RvcnkgSFRUUCBzZXJ2ZXIgbG9jayBiZWZvcmUgc3RhcnR1cCBzaWRlIGVmZmVjdHNcbiAgICogcnVuLiBBIHN0YWxlIGxvY2sgKGRlYWQgbG9jYWwgb3duZXIgb3IgZXhwaXJlZCBsZWFzZSkgaXMgcmVjbGFpbWVkIGJ5IHRoZVxuICAgKiBiYWNrZW5kOyBhIGxpdmUgZm9yZWlnbiBvd25lciBmYWlscyBsb3VkbHkgd2l0aCB0aGUgb3duZXIgZGV0YWlscy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgdGhlIGxvY2sgaGFzIGJlZW4gYWNxdWlyZWQuXG4gICAqL1xuICBhc3luYyBhY3F1aXJlKCkge1xuICAgIGNvbnN0IGFjcXVpcmVkID0gYXdhaXQgdGhpcy5iYWNrZW5kLmFjcXVpcmUoXCJzZXJ2ZXJcIiwge3RpbWVvdXRNczogMH0pXG5cbiAgICBpZiAoIWFjcXVpcmVkKSB0aHJvdyBuZXcgRXJyb3IoYXdhaXQgdGhpcy5sb2NrSGVsZE1lc3NhZ2UoKSlcblxuICAgIHRoaXMuYWNxdWlyZWQgPSB0cnVlXG4gIH1cblxuICAvKipcbiAgICogUmVsZWFzZXMgdGhlIGhlbGQgSFRUUCBzZXJ2ZXIgbG9jayBkaXJlY3RvcnkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIGFmdGVyIGJlc3QtZWZmb3J0IGxvY2sgcmVsZWFzZS5cbiAgICovXG4gIGFzeW5jIHJlbGVhc2UoKSB7XG4gICAgaWYgKCF0aGlzLmFjcXVpcmVkKSByZXR1cm5cblxuICAgIHRoaXMuYWNxdWlyZWQgPSBmYWxzZVxuICAgIGF3YWl0IHRoaXMuYmFja2VuZC5yZWxlYXNlKFwic2VydmVyXCIpXG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgb3duZXIgbWV0YWRhdGEgZnJvbSBhbiBleGlzdGluZyBzZXJ2ZXIgbG9jayBkaXJlY3RvcnkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4uL2RhdGFiYXNlL2Fkdmlzb3J5LWxvY2stZmlsZS1iYWNrZW5kLmpzXCIpLkFkdmlzb3J5TG9ja0ZpbGVPd25lciB8IG51bGw+fSAtIFBhcnNlZCBvd25lciBtZXRhZGF0YSwgd2hlbiByZWFkYWJsZS5cbiAgICovXG4gIGFzeW5jIHJlYWRPd25lck1ldGFkYXRhKCkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmJhY2tlbmQuaG9sZGVySW5mbyhcInNlcnZlclwiKVxuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhIGR1cGxpY2F0ZS1zZXJ2ZXIgZXJyb3IgbWVzc2FnZSB3aXRoIG93bmVyIGRldGFpbHMgd2hlbiBhdmFpbGFibGUuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz59IC0gRXJyb3IgbWVzc2FnZSBleHBsYWluaW5nIHdoaWNoIHNlcnZlciBvd25zIHRoZSBsb2NrLlxuICAgKi9cbiAgYXN5bmMgbG9ja0hlbGRNZXNzYWdlKCkge1xuICAgIGNvbnN0IG93bmVyID0gYXdhaXQgdGhpcy5yZWFkT3duZXJNZXRhZGF0YSgpXG4gICAgY29uc3QgZGV0YWlscyA9IG93bmVyXG4gICAgICA/IGBQSUQgJHtTdHJpbmcob3duZXIucGlkKX0gb24gJHtTdHJpbmcob3duZXIuaG9zdG5hbWUpfSAoJHtTdHJpbmcob3duZXIuaG9zdCl9OiR7U3RyaW5nKG93bmVyLnBvcnQpfSlgXG4gICAgICA6IGBsb2NrIGRpcmVjdG9yeSAke3RoaXMubG9ja1BhdGh9YFxuXG4gICAgcmV0dXJuIGBBIFZlbG9jaW91cyBIVFRQIHNlcnZlciBpcyBhbHJlYWR5IHJ1bm5pbmcgZm9yIHRoaXMgYXBwbGljYXRpb24gKCR7ZGV0YWlsc30pLiBSZW1vdmUgJHt0aGlzLmxvY2tQYXRofSBpZiB0aGUgc2VydmVyIGlzIG5vIGxvbmdlciBydW5uaW5nLmBcbiAgfVxufVxuIl19
|
|
@@ -7,6 +7,7 @@ import SharedTransactionBroker from "./shared-transaction-broker.js";
|
|
|
7
7
|
import VelociousAttemptExecutor from "./velocious-attempt-executor.js";
|
|
8
8
|
import VelociousRunnerReporter from "./velocious-runner-reporter.js";
|
|
9
9
|
import VelociousSuiteHookExecutor from "./velocious-suite-hook-executor.js";
|
|
10
|
+
import TestTenantDatabasePool from "./test-tenant-database-pool.js";
|
|
10
11
|
import VelociousTestArguments from "./velocious-test-arguments.js";
|
|
11
12
|
export type PackageTestContext = typeof defaultTestContext;
|
|
12
13
|
export type PackageSuiteDeclaration = (typeof defaultTestContext.registry.suites)[number];
|
|
@@ -76,6 +77,31 @@ export type TestArgs = {
|
|
|
76
77
|
databaseIdentifier: string;
|
|
77
78
|
tenant: object;
|
|
78
79
|
}) => Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* - Leases one member of the configured test tenant database pool for this attempt (opt-in `testTenantPools` configuration).
|
|
82
|
+
*/
|
|
83
|
+
acquireTestTenant?: (args?: {
|
|
84
|
+
databaseIdentifier?: string;
|
|
85
|
+
tenant?: object;
|
|
86
|
+
}) => Promise<TestTenantPoolLease>;
|
|
87
|
+
/**
|
|
88
|
+
* - Registers one active tenant database for the framework-owned end-of-attempt cleanup (drop + provider hooks) without hand-rolled afterEach bookkeeping.
|
|
89
|
+
*/
|
|
90
|
+
registerTenantForCleanup?: (args: {
|
|
91
|
+
databaseIdentifier: string;
|
|
92
|
+
tenant: object;
|
|
93
|
+
}) => void;
|
|
94
|
+
};
|
|
95
|
+
export type TestTenantPoolLease = import("./test-tenant-database-pool.js").TestTenantPoolLease;
|
|
96
|
+
export type TenantCleanupRegistration = {
|
|
97
|
+
/**
|
|
98
|
+
* - Tenant database identifier to drop at attempt end.
|
|
99
|
+
*/
|
|
100
|
+
databaseIdentifier: string;
|
|
101
|
+
/**
|
|
102
|
+
* - Tenant descriptor whose database must be dropped.
|
|
103
|
+
*/
|
|
104
|
+
tenant: ReturnType<typeof JSON.parse>;
|
|
79
105
|
};
|
|
80
106
|
export type BrowserDummyConnectionRegistration = {
|
|
81
107
|
/**
|
|
@@ -313,6 +339,10 @@ export default class TestRunner {
|
|
|
313
339
|
_setupFiles: string[];
|
|
314
340
|
_timeoutMs: number | undefined;
|
|
315
341
|
_abortRemainingTests: boolean;
|
|
342
|
+
/** @type {Map<string, TestTenantDatabasePool>} */
|
|
343
|
+
_testTenantPools: Map<string, TestTenantDatabasePool>;
|
|
344
|
+
/** @type {Promise<void> | undefined} */
|
|
345
|
+
_testTenantPoolTeardownPromise: Promise<void> | undefined;
|
|
316
346
|
_failedTests: number;
|
|
317
347
|
_successfulTests: number;
|
|
318
348
|
_testsCount: number;
|
|
@@ -557,6 +587,28 @@ export default class TestRunner {
|
|
|
557
587
|
* @returns {Promise<Application>} - Resolves with the application.
|
|
558
588
|
*/
|
|
559
589
|
application(): Promise<Application>;
|
|
590
|
+
/**
|
|
591
|
+
* Resolves the pool identifier when exactly one `testTenantPools` entry is
|
|
592
|
+
* configured, so `acquireTestTenant()` can omit it. Ambiguous or missing
|
|
593
|
+
* configuration fails loudly instead of guessing.
|
|
594
|
+
* @returns {string} - The single configured pool identifier.
|
|
595
|
+
*/
|
|
596
|
+
singleTestTenantPoolIdentifier(): string;
|
|
597
|
+
/**
|
|
598
|
+
* Returns the test tenant database pool for one configured `testTenantPools`
|
|
599
|
+
* identifier, creating it on first use. Throws when the identifier has no pool
|
|
600
|
+
* configuration — the pool stays strictly opt-in.
|
|
601
|
+
* @param {string} databaseIdentifier - Tenant database identifier.
|
|
602
|
+
* @returns {TestTenantDatabasePool} - The runner-owned pool.
|
|
603
|
+
*/
|
|
604
|
+
getTestTenantPool(databaseIdentifier: string): TestTenantDatabasePool;
|
|
605
|
+
/**
|
|
606
|
+
* Tears down every test tenant database pool created during this run, exactly once.
|
|
607
|
+
* Safe to call from afterAll-style teardown and from the runner's own cleanup; the
|
|
608
|
+
* same promise is shared by concurrent callers.
|
|
609
|
+
* @returns {Promise<void>} - Resolves after all pools dropped their databases.
|
|
610
|
+
*/
|
|
611
|
+
teardownTestTenantPools(): Promise<void>;
|
|
560
612
|
/**
|
|
561
613
|
* Registers each non-tenant per-test connection as a dynamic candidate for in-process
|
|
562
614
|
* request sharing. The pool evaluates transaction state when each request is dispatched,
|
|
@@ -604,6 +656,28 @@ export default class TestRunner {
|
|
|
604
656
|
* @returns {Promise<void>} - Resolves after rollback and release or quarantine.
|
|
605
657
|
*/
|
|
606
658
|
cleanupTransactionalTenantRegistration(registration: TransactionalTenantRegistration): Promise<void>;
|
|
659
|
+
/**
|
|
660
|
+
* Registers one tenant database for framework-owned end-of-attempt cleanup. The
|
|
661
|
+
* registration drops the tenant's database through the provider's `dropDatabase`
|
|
662
|
+
* hook (or the framework default) after the attempt's afterEach hooks and
|
|
663
|
+
* transactional tenant rollbacks finished, so consuming apps do not hand-roll a
|
|
664
|
+
* Map/afterEach bookkeeping layer for DDL that a test transaction cannot roll back.
|
|
665
|
+
* @param {{databaseIdentifier: string, tenant: object}} args - Tenant database identifier and tenant descriptor to drop at attempt end.
|
|
666
|
+
* @param {TenantCleanupRegistration[]} registrations - Current attempt registrations.
|
|
667
|
+
* @returns {void} - No return value.
|
|
668
|
+
*/
|
|
669
|
+
registerTenantForCleanup({ databaseIdentifier, tenant, ...restArgs }: {
|
|
670
|
+
databaseIdentifier: string;
|
|
671
|
+
tenant: object;
|
|
672
|
+
}, registrations: TenantCleanupRegistration[]): void;
|
|
673
|
+
/**
|
|
674
|
+
* Drops every tenant database registered for this attempt, in registration order.
|
|
675
|
+
* Each drop is attempted even when an earlier one failed; failures are surfaced
|
|
676
|
+
* (single error or AggregateError), never swallowed.
|
|
677
|
+
* @param {TenantCleanupRegistration[]} registrations - Attempt-owned registrations.
|
|
678
|
+
* @returns {Promise<void>} - Resolves after all registered tenants were dropped.
|
|
679
|
+
*/
|
|
680
|
+
cleanupTenantRegistrations(registrations: TenantCleanupRegistration[]): Promise<void>;
|
|
607
681
|
/**
|
|
608
682
|
* Selects the current non-tenant connections eligible for shared transaction work.
|
|
609
683
|
* @param {{transactionsOnly: boolean}} args - Selection options.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../../../src/testing/test-runner.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../../../src/testing/test-runner.js"],"names":[],"mappings":"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"}
|