rightsize 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -9
- package/dist/backend-msb/agent-endpoint.d.ts +25 -0
- package/dist/backend-msb/agent-endpoint.d.ts.map +1 -0
- package/dist/backend-msb/agent-endpoint.js +27 -0
- package/dist/backend-msb/agent-endpoint.js.map +1 -0
- package/dist/backend-msb/backend.d.ts +47 -6
- package/dist/backend-msb/backend.d.ts.map +1 -1
- package/dist/backend-msb/backend.js +123 -10
- package/dist/backend-msb/backend.js.map +1 -1
- package/dist/backend-msb/commands.d.ts +2 -2
- package/dist/backend-msb/commands.d.ts.map +1 -1
- package/dist/backend-msb/commands.js +22 -7
- package/dist/backend-msb/commands.js.map +1 -1
- package/dist/backend-msb/platform.js +2 -2
- package/dist/backend-msb/provisioner.d.ts +1 -1
- package/dist/backend-msb/provisioner.js +1 -1
- package/dist/backend-msb/snapshot-import.d.ts +4 -4
- package/dist/backend-msb/snapshot-import.js +4 -4
- package/dist/backend-msb/snapshot-list.d.ts +3 -3
- package/dist/backend-msb/snapshot-list.js +3 -3
- package/dist/backend-msb/snapshot-not-found.d.ts +1 -1
- package/dist/backend-msb/snapshot-not-found.js +1 -1
- package/dist/backend-msb/snapshot-save-fsync.d.ts +55 -0
- package/dist/backend-msb/snapshot-save-fsync.d.ts.map +1 -0
- package/dist/backend-msb/snapshot-save-fsync.js +79 -0
- package/dist/backend-msb/snapshot-save-fsync.js.map +1 -0
- package/dist/core/backend.d.ts +2 -2
- package/dist/core/checkpoint/api.d.ts +1 -1
- package/dist/core/checkpoint/api.js +1 -1
- package/dist/core/docker-image-name.d.ts +58 -0
- package/dist/core/docker-image-name.d.ts.map +1 -0
- package/dist/core/docker-image-name.js +127 -0
- package/dist/core/docker-image-name.js.map +1 -0
- package/dist/core/errors.d.ts +21 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +26 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/generic-container.d.ts +7 -1
- package/dist/core/generic-container.d.ts.map +1 -1
- package/dist/core/generic-container.js +8 -2
- package/dist/core/generic-container.js.map +1 -1
- package/dist/core/model.d.ts +9 -4
- package/dist/core/model.d.ts.map +1 -1
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -5
- package/dist/index.js.map +1 -1
- package/dist/modules/arango.d.ts +11 -3
- package/dist/modules/arango.d.ts.map +1 -1
- package/dist/modules/arango.js +14 -4
- package/dist/modules/arango.js.map +1 -1
- package/dist/modules/cassandra.d.ts +12 -3
- package/dist/modules/cassandra.d.ts.map +1 -1
- package/dist/modules/cassandra.js +15 -4
- package/dist/modules/cassandra.js.map +1 -1
- package/dist/modules/clickhouse.d.ts +8 -2
- package/dist/modules/clickhouse.d.ts.map +1 -1
- package/dist/modules/clickhouse.js +11 -3
- package/dist/modules/clickhouse.js.map +1 -1
- package/dist/modules/elasticsearch.d.ts +49 -0
- package/dist/modules/elasticsearch.d.ts.map +1 -0
- package/dist/modules/elasticsearch.js +66 -0
- package/dist/modules/elasticsearch.js.map +1 -0
- package/dist/modules/flink.d.ts +8 -2
- package/dist/modules/flink.d.ts.map +1 -1
- package/dist/modules/flink.js +13 -4
- package/dist/modules/flink.js.map +1 -1
- package/dist/modules/floci.d.ts +30 -6
- package/dist/modules/floci.d.ts.map +1 -1
- package/dist/modules/floci.js +39 -9
- package/dist/modules/floci.js.map +1 -1
- package/dist/modules/index.d.ts +3 -1
- package/dist/modules/index.d.ts.map +1 -1
- package/dist/modules/index.js +3 -1
- package/dist/modules/index.js.map +1 -1
- package/dist/modules/kafka.d.ts +10 -3
- package/dist/modules/kafka.d.ts.map +1 -1
- package/dist/modules/kafka.js +13 -4
- package/dist/modules/kafka.js.map +1 -1
- package/dist/modules/keycloak.d.ts +10 -2
- package/dist/modules/keycloak.d.ts.map +1 -1
- package/dist/modules/keycloak.js +13 -3
- package/dist/modules/keycloak.js.map +1 -1
- package/dist/modules/mariadb.d.ts +8 -2
- package/dist/modules/mariadb.d.ts.map +1 -1
- package/dist/modules/mariadb.js +11 -3
- package/dist/modules/mariadb.js.map +1 -1
- package/dist/modules/memcached.d.ts +12 -3
- package/dist/modules/memcached.d.ts.map +1 -1
- package/dist/modules/memcached.js +15 -4
- package/dist/modules/memcached.js.map +1 -1
- package/dist/modules/minio.d.ts +7 -2
- package/dist/modules/minio.d.ts.map +1 -1
- package/dist/modules/minio.js +10 -3
- package/dist/modules/minio.js.map +1 -1
- package/dist/modules/mongodb.d.ts +7 -2
- package/dist/modules/mongodb.d.ts.map +1 -1
- package/dist/modules/mongodb.js +16 -4
- package/dist/modules/mongodb.js.map +1 -1
- package/dist/modules/mysql.d.ts +8 -2
- package/dist/modules/mysql.d.ts.map +1 -1
- package/dist/modules/mysql.js +11 -3
- package/dist/modules/mysql.js.map +1 -1
- package/dist/modules/neo4j.d.ts +7 -2
- package/dist/modules/neo4j.d.ts.map +1 -1
- package/dist/modules/neo4j.js +10 -3
- package/dist/modules/neo4j.js.map +1 -1
- package/dist/modules/pinot.d.ts +7 -2
- package/dist/modules/pinot.d.ts.map +1 -1
- package/dist/modules/pinot.js +10 -3
- package/dist/modules/pinot.js.map +1 -1
- package/dist/modules/postgres.d.ts +11 -2
- package/dist/modules/postgres.d.ts.map +1 -1
- package/dist/modules/postgres.js +14 -3
- package/dist/modules/postgres.js.map +1 -1
- package/dist/modules/qdrant.d.ts +26 -0
- package/dist/modules/qdrant.d.ts.map +1 -0
- package/dist/modules/qdrant.js +38 -0
- package/dist/modules/qdrant.js.map +1 -0
- package/dist/modules/rabbitmq.d.ts +11 -2
- package/dist/modules/rabbitmq.d.ts.map +1 -1
- package/dist/modules/rabbitmq.js +14 -3
- package/dist/modules/rabbitmq.js.map +1 -1
- package/dist/modules/redis.d.ts +8 -2
- package/dist/modules/redis.d.ts.map +1 -1
- package/dist/modules/redis.js +11 -3
- package/dist/modules/redis.js.map +1 -1
- package/dist/modules/redpanda.d.ts +15 -6
- package/dist/modules/redpanda.d.ts.map +1 -1
- package/dist/modules/redpanda.js +18 -7
- package/dist/modules/redpanda.js.map +1 -1
- package/dist/modules/spring-cloud-config.d.ts +7 -2
- package/dist/modules/spring-cloud-config.d.ts.map +1 -1
- package/dist/modules/spring-cloud-config.js +10 -3
- package/dist/modules/spring-cloud-config.js.map +1 -1
- package/dist/modules/valkey.d.ts +9 -2
- package/dist/modules/valkey.d.ts.map +1 -1
- package/dist/modules/valkey.js +12 -3
- package/dist/modules/valkey.js.map +1 -1
- package/dist/modules/wiremock.d.ts +7 -2
- package/dist/modules/wiremock.d.ts.map +1 -1
- package/dist/modules/wiremock.js +10 -3
- package/dist/modules/wiremock.js.map +1 -1
- package/package.json +1 -1
package/dist/modules/mariadb.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { GenericContainer } from "../core/generic-container.js";
|
|
2
2
|
import { Wait } from "../core/wait.js";
|
|
3
|
+
import { DockerImageName } from "../core/docker-image-name.js";
|
|
3
4
|
const GUEST_PORT = 3306;
|
|
5
|
+
const EXPECTED_REPOSITORY = "mariadb";
|
|
6
|
+
const DEFAULT_IMAGE = "mariadb:latest";
|
|
4
7
|
/**
|
|
5
8
|
* A single-node MariaDB container. Defaults to a `test`/`test`/`test`
|
|
6
9
|
* user/password/database trio (plus `MARIADB_ROOT_PASSWORD=test`), mirroring
|
|
@@ -33,13 +36,18 @@ const GUEST_PORT = 3306;
|
|
|
33
36
|
* `.*port: 3306.*mariadb\.org binary distribution.*` with `times=1` matches
|
|
34
37
|
* only the last line above — the temp server's equivalent line has `port: 0`
|
|
35
38
|
* instead of `port: 3306`, so it never satisfies the pattern.
|
|
39
|
+
*
|
|
40
|
+
* No-arg construction floats to `mariadb:latest`, so the version tracks
|
|
41
|
+
* upstream rather than this library's release cycle (verified against
|
|
42
|
+
* `mariadb:11.4`, including the readiness regex above and the log excerpt it
|
|
43
|
+
* was captured from).
|
|
36
44
|
*/
|
|
37
45
|
export class MariaDBContainer extends GenericContainer {
|
|
38
46
|
usernameState = "test";
|
|
39
47
|
passwordState = "test";
|
|
40
48
|
databaseState = "test";
|
|
41
|
-
constructor(image =
|
|
42
|
-
super(image);
|
|
49
|
+
constructor(image = DEFAULT_IMAGE) {
|
|
50
|
+
super(DockerImageName.requireCompatible(image, EXPECTED_REPOSITORY));
|
|
43
51
|
this.withExposedPorts(GUEST_PORT)
|
|
44
52
|
.withEnv("MARIADB_USER", this.usernameState)
|
|
45
53
|
.withEnv("MARIADB_PASSWORD", this.passwordState)
|
|
@@ -51,7 +59,7 @@ export class MariaDBContainer extends GenericContainer {
|
|
|
51
59
|
// No withMemoryLimit override, matching the MySQL precedent: MariaDB's
|
|
52
60
|
// InnoDB default footprint fits msb's default microVM RAM comfortably.
|
|
53
61
|
}
|
|
54
|
-
static async start(image =
|
|
62
|
+
static async start(image = DEFAULT_IMAGE) {
|
|
55
63
|
return (await new MariaDBContainer(image).start());
|
|
56
64
|
}
|
|
57
65
|
/** Overrides `MARIADB_USER` (default `test`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mariadb.js","sourceRoot":"","sources":["../../src/modules/mariadb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"mariadb.js","sourceRoot":"","sources":["../../src/modules/mariadb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,mBAAmB,GAAG,SAAS,CAAC;AACtC,MAAM,aAAa,GAAG,gBAAgB,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;IAC5C,aAAa,GAAG,MAAM,CAAC;IACvB,aAAa,GAAG,MAAM,CAAC;IACvB,aAAa,GAAG,MAAM,CAAC;IAE/B,YAAY,QAAkC,aAAa;QACzD,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;aAC9B,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC;aAC3C,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC;aAC/C,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,aAAa,CAAC;aAC/C,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC;YACzC,gEAAgE;YAChE,yBAAyB;aACxB,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,mDAAmD,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1F,uEAAuE;QACvE,uEAAuE;IACzE,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,KAAK,CAAC,QAAkC,aAAa;QACzE,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAqB,CAAC;IACzE,CAAC;IAED,iDAAiD;IACjD,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,qDAAqD;IACrD,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,qDAAqD;IACrD,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,qDAAqD;IACrD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,yDAAyD;IACzD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,qDAAqD;IACrD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,0HAA0H;IAC1H,IAAI,gBAAgB;QAClB,OAAO,WAAW,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;IACpI,CAAC;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GenericContainer } from "../core/generic-container.js";
|
|
2
|
+
import { DockerImageName } from "../core/docker-image-name.js";
|
|
2
3
|
import type { WaitStrategy, WaitTarget } from "../core/wait.js";
|
|
3
4
|
/**
|
|
4
5
|
* Speaks the memcached text protocol instead of trusting a bare TCP
|
|
@@ -14,10 +15,18 @@ export declare class MemcachedRespondsStrategy implements WaitStrategy {
|
|
|
14
15
|
private probe;
|
|
15
16
|
waitUntilReady(target: WaitTarget): Promise<void>;
|
|
16
17
|
}
|
|
17
|
-
/**
|
|
18
|
+
/**
|
|
19
|
+
* A single-node Memcached container, ready-checked with a protocol-level
|
|
20
|
+
* `version` probe.
|
|
21
|
+
*
|
|
22
|
+
* No-arg construction floats to `memcached:latest`, so the version tracks
|
|
23
|
+
* upstream rather than this library's release cycle (verified against
|
|
24
|
+
* `memcached:1.6-alpine`). `latest` is Debian-based rather than Alpine —
|
|
25
|
+
* functionally equivalent, larger to pull.
|
|
26
|
+
*/
|
|
18
27
|
export declare class MemcachedContainer extends GenericContainer {
|
|
19
|
-
constructor(image?: string);
|
|
20
|
-
static start(image?: string): Promise<MemcachedContainer>;
|
|
28
|
+
constructor(image?: string | DockerImageName);
|
|
29
|
+
static start(image?: string | DockerImageName): Promise<MemcachedContainer>;
|
|
21
30
|
/** The `host:port` address of the running container. */
|
|
22
31
|
get address(): string;
|
|
23
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memcached.d.ts","sourceRoot":"","sources":["../../src/modules/memcached.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"memcached.d.ts","sourceRoot":"","sources":["../../src/modules/memcached.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAchE;;;;;;;GAOG;AACH,qBAAa,yBAA0B,YAAW,YAAY;IAC5D,OAAO,CAAC,SAAS,CAAsB;IAEvC,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKpC,OAAO,CAAC,KAAK;IA0CP,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CA0BxD;AAED;;;;;;;;GAQG;AACH,qBAAa,kBAAmB,SAAQ,gBAAgB;gBAC1C,KAAK,GAAE,MAAM,GAAG,eAA+B;WAKrC,KAAK,CAAC,KAAK,GAAE,MAAM,GAAG,eAA+B,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAIzG,wDAAwD;IACxD,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import * as net from "node:net";
|
|
2
2
|
import { GenericContainer } from "../core/generic-container.js";
|
|
3
3
|
import { ContainerLaunchError } from "../core/errors.js";
|
|
4
|
+
import { DockerImageName } from "../core/docker-image-name.js";
|
|
4
5
|
const GUEST_PORT = 11211;
|
|
5
6
|
const DEFAULT_TIMEOUT_MS = 60_000;
|
|
6
7
|
const POLL_INTERVAL_MS = 250;
|
|
7
8
|
const PROBE_TIMEOUT_MS = 1_000;
|
|
8
9
|
const LOG_TAIL_LINES = 50;
|
|
10
|
+
const EXPECTED_REPOSITORY = "memcached";
|
|
11
|
+
const DEFAULT_IMAGE = "memcached:latest";
|
|
9
12
|
function sleep(ms) {
|
|
10
13
|
return new Promise((r) => setTimeout(r, ms));
|
|
11
14
|
}
|
|
@@ -88,13 +91,21 @@ export class MemcachedRespondsStrategy {
|
|
|
88
91
|
}
|
|
89
92
|
}
|
|
90
93
|
}
|
|
91
|
-
/**
|
|
94
|
+
/**
|
|
95
|
+
* A single-node Memcached container, ready-checked with a protocol-level
|
|
96
|
+
* `version` probe.
|
|
97
|
+
*
|
|
98
|
+
* No-arg construction floats to `memcached:latest`, so the version tracks
|
|
99
|
+
* upstream rather than this library's release cycle (verified against
|
|
100
|
+
* `memcached:1.6-alpine`). `latest` is Debian-based rather than Alpine —
|
|
101
|
+
* functionally equivalent, larger to pull.
|
|
102
|
+
*/
|
|
92
103
|
export class MemcachedContainer extends GenericContainer {
|
|
93
|
-
constructor(image =
|
|
94
|
-
super(image);
|
|
104
|
+
constructor(image = DEFAULT_IMAGE) {
|
|
105
|
+
super(DockerImageName.requireCompatible(image, EXPECTED_REPOSITORY));
|
|
95
106
|
this.withExposedPorts(GUEST_PORT).waitingFor(new MemcachedRespondsStrategy());
|
|
96
107
|
}
|
|
97
|
-
static async start(image =
|
|
108
|
+
static async start(image = DEFAULT_IMAGE) {
|
|
98
109
|
return (await new MemcachedContainer(image).start());
|
|
99
110
|
}
|
|
100
111
|
/** The `host:port` address of the running container. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memcached.js","sourceRoot":"","sources":["../../src/modules/memcached.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"memcached.js","sourceRoot":"","sources":["../../src/modules/memcached.ts"],"names":[],"mappings":"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"}
|
package/dist/modules/minio.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GenericContainer } from "../core/generic-container.js";
|
|
2
|
+
import { DockerImageName } from "../core/docker-image-name.js";
|
|
2
3
|
/**
|
|
3
4
|
* A single-node MinIO container — an S3-compatible object store. Requires
|
|
4
5
|
* an explicit command: the image's default ENTRYPOINT alone does not serve,
|
|
@@ -15,12 +16,16 @@ import { GenericContainer } from "../core/generic-container.js";
|
|
|
15
16
|
*
|
|
16
17
|
* Readiness is a protocol-aware HTTP check against `/minio/health/live` on
|
|
17
18
|
* the API port — verified answering 200 on the very first poll after boot.
|
|
19
|
+
*
|
|
20
|
+
* No-arg construction floats to `minio/minio:latest`, so the version tracks
|
|
21
|
+
* upstream rather than this library's release cycle (verified against
|
|
22
|
+
* `minio/minio:RELEASE.2025-09-07T16-13-09Z`).
|
|
18
23
|
*/
|
|
19
24
|
export declare class MinIOContainer extends GenericContainer {
|
|
20
25
|
private rootUserState;
|
|
21
26
|
private rootPasswordState;
|
|
22
|
-
constructor(image?: string);
|
|
23
|
-
static start(image?: string): Promise<MinIOContainer>;
|
|
27
|
+
constructor(image?: string | DockerImageName);
|
|
28
|
+
static start(image?: string | DockerImageName): Promise<MinIOContainer>;
|
|
24
29
|
/** Overrides `MINIO_ROOT_USER` (default `testuser`). */
|
|
25
30
|
withRootUser(user: string): this;
|
|
26
31
|
/** Overrides `MINIO_ROOT_PASSWORD` (default `testpassword`). MinIO rejects anything shorter than 8 characters. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minio.d.ts","sourceRoot":"","sources":["../../src/modules/minio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"minio.d.ts","sourceRoot":"","sources":["../../src/modules/minio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAO/D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;IAClD,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,iBAAiB,CAAkB;gBAE/B,KAAK,GAAE,MAAM,GAAG,eAA+B;WAcrC,KAAK,CAAC,KAAK,GAAE,MAAM,GAAG,eAA+B,GAAG,OAAO,CAAC,cAAc,CAAC;IAIrG,wDAAwD;IACxD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKhC,kHAAkH;IAClH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKxC,qDAAqD;IACrD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,6DAA6D;IAC7D,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,uDAAuD;IACvD,IAAI,WAAW,IAAI,MAAM,CAExB;CACF"}
|
package/dist/modules/minio.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { GenericContainer } from "../core/generic-container.js";
|
|
2
2
|
import { Wait } from "../core/wait.js";
|
|
3
|
+
import { DockerImageName } from "../core/docker-image-name.js";
|
|
3
4
|
const API_PORT = 9000;
|
|
4
5
|
const CONSOLE_PORT = 9001;
|
|
6
|
+
const EXPECTED_REPOSITORY = "minio/minio";
|
|
7
|
+
const DEFAULT_IMAGE = "minio/minio:latest";
|
|
5
8
|
/**
|
|
6
9
|
* A single-node MinIO container — an S3-compatible object store. Requires
|
|
7
10
|
* an explicit command: the image's default ENTRYPOINT alone does not serve,
|
|
@@ -18,12 +21,16 @@ const CONSOLE_PORT = 9001;
|
|
|
18
21
|
*
|
|
19
22
|
* Readiness is a protocol-aware HTTP check against `/minio/health/live` on
|
|
20
23
|
* the API port — verified answering 200 on the very first poll after boot.
|
|
24
|
+
*
|
|
25
|
+
* No-arg construction floats to `minio/minio:latest`, so the version tracks
|
|
26
|
+
* upstream rather than this library's release cycle (verified against
|
|
27
|
+
* `minio/minio:RELEASE.2025-09-07T16-13-09Z`).
|
|
21
28
|
*/
|
|
22
29
|
export class MinIOContainer extends GenericContainer {
|
|
23
30
|
rootUserState = "testuser";
|
|
24
31
|
rootPasswordState = "testpassword";
|
|
25
|
-
constructor(image =
|
|
26
|
-
super(image);
|
|
32
|
+
constructor(image = DEFAULT_IMAGE) {
|
|
33
|
+
super(DockerImageName.requireCompatible(image, EXPECTED_REPOSITORY));
|
|
27
34
|
this.withExposedPorts(API_PORT, CONSOLE_PORT)
|
|
28
35
|
.withCommand("server", "/data", "--console-address", ":9001")
|
|
29
36
|
.withEnv("MINIO_ROOT_USER", this.rootUserState)
|
|
@@ -35,7 +42,7 @@ export class MinIOContainer extends GenericContainer {
|
|
|
35
42
|
// belongs here once that's measured on its own, not assumed from a
|
|
36
43
|
// number that included the whole round-trip's overhead.
|
|
37
44
|
}
|
|
38
|
-
static async start(image =
|
|
45
|
+
static async start(image = DEFAULT_IMAGE) {
|
|
39
46
|
return (await new MinIOContainer(image).start());
|
|
40
47
|
}
|
|
41
48
|
/** Overrides `MINIO_ROOT_USER` (default `testuser`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minio.js","sourceRoot":"","sources":["../../src/modules/minio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"minio.js","sourceRoot":"","sources":["../../src/modules/minio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,QAAQ,GAAG,IAAI,CAAC;AACtB,MAAM,YAAY,GAAG,IAAI,CAAC;AAC1B,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAC1C,MAAM,aAAa,GAAG,oBAAoB,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAC1C,aAAa,GAAG,UAAU,CAAC;IAC3B,iBAAiB,GAAG,cAAc,CAAC;IAE3C,YAAY,QAAkC,aAAa;QACzD,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC;aAC1C,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,CAAC;aAC5D,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC;aAC9C,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC,iBAAiB,CAAC;aACtD,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpE,wEAAwE;QACxE,mEAAmE;QACnE,mEAAmE;QACnE,mEAAmE;QACnE,wDAAwD;IAC1D,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,KAAK,CAAC,QAAkC,aAAa;QACzE,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAmB,CAAC;IACrE,CAAC;IAED,wDAAwD;IACxD,YAAY,CAAC,IAAY;QACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,kHAAkH;IAClH,gBAAgB,CAAC,QAAgB;QAC/B,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED,qDAAqD;IACrD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,6DAA6D;IAC7D,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,uDAAuD;IACvD,IAAI,WAAW;QACb,OAAO,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC/D,CAAC;CACF"}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { GenericContainer } from "../core/generic-container.js";
|
|
2
|
+
import { DockerImageName } from "../core/docker-image-name.js";
|
|
2
3
|
/**
|
|
3
4
|
* A single-node MongoDB container running as a one-member replica set
|
|
4
5
|
* (required for transactions/change streams). `containerIsStarted`
|
|
5
6
|
* initiates the replica set and waits for a primary to be elected before
|
|
6
7
|
* `start()` returns, so `connectionString` is always usable immediately
|
|
7
8
|
* after the container boots.
|
|
9
|
+
*
|
|
10
|
+
* No-arg construction floats to `mongo:latest`, so the version tracks
|
|
11
|
+
* upstream rather than this library's release cycle (verified against
|
|
12
|
+
* `mongo:8.0`).
|
|
8
13
|
*/
|
|
9
14
|
export declare class MongoDBContainer extends GenericContainer {
|
|
10
|
-
constructor(image?: string);
|
|
11
|
-
static start(image?: string): Promise<MongoDBContainer>;
|
|
15
|
+
constructor(image?: string | DockerImageName);
|
|
16
|
+
static start(image?: string | DockerImageName): Promise<MongoDBContainer>;
|
|
12
17
|
protected containerIsStarted(): Promise<void>;
|
|
13
18
|
private pollUntil;
|
|
14
19
|
/** A `mongodb://` connection string for the running container's `test` database. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb.d.ts","sourceRoot":"","sources":["../../src/modules/mongodb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"mongodb.d.ts","sourceRoot":"","sources":["../../src/modules/mongodb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAiB/D;;;;;;;;;;GAUG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB;gBACxC,KAAK,GAAE,MAAM,GAAG,eAA+B;WAOrC,KAAK,CAAC,KAAK,GAAE,MAAM,GAAG,eAA+B,GAAG,OAAO,CAAC,gBAAgB,CAAC;cAI9E,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;YAqB9C,SAAS;IAqBvB,oFAAoF;IACpF,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,yFAAyF;IACzF,IAAI,aAAa,IAAI,MAAM,CAE1B;CACF"}
|
package/dist/modules/mongodb.js
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import { GenericContainer } from "../core/generic-container.js";
|
|
2
2
|
import { Wait } from "../core/wait.js";
|
|
3
|
+
import { DockerImageName } from "../core/docker-image-name.js";
|
|
3
4
|
const GUEST_PORT = 27017;
|
|
4
|
-
|
|
5
|
+
// 180s, not the 60s this module used while it pinned `mongo:8.0`. A loaded Windows CI
|
|
6
|
+
// runner was observed failing `rs.initiate` at the 60s mark against the floating default
|
|
7
|
+
// (`mongo:latest`, 8.2.12 at the time), on a run whose whole suite took 28 minutes. This
|
|
8
|
+
// matches the budget the MySQL and ClickHouse modules already carry for the same reason:
|
|
9
|
+
// a first-boot sequence that is comfortable locally and marginal on a contended runner.
|
|
10
|
+
const REPLICA_SET_TIMEOUT_MS = 180_000;
|
|
5
11
|
const POLL_INTERVAL_MS = 500;
|
|
12
|
+
const EXPECTED_REPOSITORY = "mongo";
|
|
13
|
+
const DEFAULT_IMAGE = "mongo:latest";
|
|
6
14
|
function sleep(ms) {
|
|
7
15
|
return new Promise((r) => setTimeout(r, ms));
|
|
8
16
|
}
|
|
@@ -12,15 +20,19 @@ function sleep(ms) {
|
|
|
12
20
|
* initiates the replica set and waits for a primary to be elected before
|
|
13
21
|
* `start()` returns, so `connectionString` is always usable immediately
|
|
14
22
|
* after the container boots.
|
|
23
|
+
*
|
|
24
|
+
* No-arg construction floats to `mongo:latest`, so the version tracks
|
|
25
|
+
* upstream rather than this library's release cycle (verified against
|
|
26
|
+
* `mongo:8.0`).
|
|
15
27
|
*/
|
|
16
28
|
export class MongoDBContainer extends GenericContainer {
|
|
17
|
-
constructor(image =
|
|
18
|
-
super(image);
|
|
29
|
+
constructor(image = DEFAULT_IMAGE) {
|
|
30
|
+
super(DockerImageName.requireCompatible(image, EXPECTED_REPOSITORY));
|
|
19
31
|
this.withExposedPorts(GUEST_PORT)
|
|
20
32
|
.withCommand("mongod", "--replSet", "docker-rs", "--bind_ip_all")
|
|
21
33
|
.waitingFor(Wait.forListeningPort());
|
|
22
34
|
}
|
|
23
|
-
static async start(image =
|
|
35
|
+
static async start(image = DEFAULT_IMAGE) {
|
|
24
36
|
return (await new MongoDBContainer(image).start());
|
|
25
37
|
}
|
|
26
38
|
async containerIsStarted() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb.js","sourceRoot":"","sources":["../../src/modules/mongodb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"mongodb.js","sourceRoot":"","sources":["../../src/modules/mongodb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,UAAU,GAAG,KAAK,CAAC;AACzB,sFAAsF;AACtF,yFAAyF;AACzF,yFAAyF;AACzF,yFAAyF;AACzF,wFAAwF;AACxF,MAAM,sBAAsB,GAAG,OAAO,CAAC;AACvC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,mBAAmB,GAAG,OAAO,CAAC;AACpC,MAAM,aAAa,GAAG,cAAc,CAAC;AAErC,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;IACpD,YAAY,QAAkC,aAAa;QACzD,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;aAC9B,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,CAAC;aAChE,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,KAAK,CAAC,QAAkC,aAAa;QACzE,OAAO,CAAC,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAqB,CAAC;IACzE,CAAC;IAEkB,KAAK,CAAC,kBAAkB;QACzC,MAAM,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAC5B,SAAS,EACT,SAAS,EACT,QAAQ,EACR,iDAAiD,CAClD,CAAC;YACF,OAAO,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,SAAS,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,8BAA8B,CAAC,CAAC;YAC/F,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iEAAiE;IACjE,mEAAmE;IACnE,uEAAuE;IACvE,6DAA6D;IAC7D,wEAAwE;IAChE,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,IAA4B;QAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,sBAAsB,CAAC;QACrD,SAAS,CAAC;YACR,IAAI,KAAK,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,IAAI,EAAE,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,GAAG,KAAK,CAAC;YAChB,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACb,wBAAwB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,mBAAmB,IAAI,YAAY,sBAAsB,GAAG,IAAI,GAAG,CACvI,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,oFAAoF;IACpF,IAAI,gBAAgB;QAClB,OAAO,aAAa,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,6BAA6B,CAAC;IAC/F,CAAC;IAED,yFAAyF;IACzF,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
|
package/dist/modules/mysql.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GenericContainer } from "../core/generic-container.js";
|
|
2
|
+
import { DockerImageName } from "../core/docker-image-name.js";
|
|
2
3
|
/**
|
|
3
4
|
* A single-node MySQL container. Defaults to a `test`/`test`/`test`
|
|
4
5
|
* user/password/database trio (plus `MYSQL_ROOT_PASSWORD=test`) so
|
|
@@ -36,13 +37,18 @@ import { GenericContainer } from "../core/generic-container.js";
|
|
|
36
37
|
* 3306` with a trailing non-digit-or-end boundary, so it cannot match
|
|
37
38
|
* `33060`, and `times=1` is then unambiguous (that exact line appears once,
|
|
38
39
|
* only after the real server is up).
|
|
40
|
+
*
|
|
41
|
+
* No-arg construction floats to `mysql:latest`, so the version tracks
|
|
42
|
+
* upstream rather than this library's release cycle (verified against
|
|
43
|
+
* `mysql:8.4`, including the readiness regex above and the log excerpt it
|
|
44
|
+
* was captured from).
|
|
39
45
|
*/
|
|
40
46
|
export declare class MySQLContainer extends GenericContainer {
|
|
41
47
|
private usernameState;
|
|
42
48
|
private passwordState;
|
|
43
49
|
private databaseState;
|
|
44
|
-
constructor(image?: string);
|
|
45
|
-
static start(image?: string): Promise<MySQLContainer>;
|
|
50
|
+
constructor(image?: string | DockerImageName);
|
|
51
|
+
static start(image?: string | DockerImageName): Promise<MySQLContainer>;
|
|
46
52
|
/** Overrides `MYSQL_USER` (default `test`). */
|
|
47
53
|
withUsername(username: string): this;
|
|
48
54
|
/** Overrides `MYSQL_PASSWORD` (default `test`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../src/modules/mysql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../../src/modules/mysql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAM/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;IAClD,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,aAAa,CAAU;gBAEnB,KAAK,GAAE,MAAM,GAAG,eAA+B;WAwBrC,KAAK,CAAC,KAAK,GAAE,MAAM,GAAG,eAA+B,GAAG,OAAO,CAAC,cAAc,CAAC;IAIrG,+CAA+C;IAC/C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKpC,mDAAmD;IACnD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKpC,mDAAmD;IACnD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKpC,qDAAqD;IACrD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,yDAAyD;IACzD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,qDAAqD;IACrD,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,iFAAiF;IACjF,IAAI,gBAAgB,IAAI,MAAM,CAE7B;CACF"}
|
package/dist/modules/mysql.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { GenericContainer } from "../core/generic-container.js";
|
|
2
2
|
import { Wait } from "../core/wait.js";
|
|
3
|
+
import { DockerImageName } from "../core/docker-image-name.js";
|
|
3
4
|
const GUEST_PORT = 3306;
|
|
5
|
+
const EXPECTED_REPOSITORY = "mysql";
|
|
6
|
+
const DEFAULT_IMAGE = "mysql:latest";
|
|
4
7
|
/**
|
|
5
8
|
* A single-node MySQL container. Defaults to a `test`/`test`/`test`
|
|
6
9
|
* user/password/database trio (plus `MYSQL_ROOT_PASSWORD=test`) so
|
|
@@ -38,13 +41,18 @@ const GUEST_PORT = 3306;
|
|
|
38
41
|
* 3306` with a trailing non-digit-or-end boundary, so it cannot match
|
|
39
42
|
* `33060`, and `times=1` is then unambiguous (that exact line appears once,
|
|
40
43
|
* only after the real server is up).
|
|
44
|
+
*
|
|
45
|
+
* No-arg construction floats to `mysql:latest`, so the version tracks
|
|
46
|
+
* upstream rather than this library's release cycle (verified against
|
|
47
|
+
* `mysql:8.4`, including the readiness regex above and the log excerpt it
|
|
48
|
+
* was captured from).
|
|
41
49
|
*/
|
|
42
50
|
export class MySQLContainer extends GenericContainer {
|
|
43
51
|
usernameState = "test";
|
|
44
52
|
passwordState = "test";
|
|
45
53
|
databaseState = "test";
|
|
46
|
-
constructor(image =
|
|
47
|
-
super(image);
|
|
54
|
+
constructor(image = DEFAULT_IMAGE) {
|
|
55
|
+
super(DockerImageName.requireCompatible(image, EXPECTED_REPOSITORY));
|
|
48
56
|
this.withExposedPorts(GUEST_PORT)
|
|
49
57
|
.withEnv("MYSQL_USER", this.usernameState)
|
|
50
58
|
.withEnv("MYSQL_PASSWORD", this.passwordState)
|
|
@@ -64,7 +72,7 @@ export class MySQLContainer extends GenericContainer {
|
|
|
64
72
|
// image, MySQL 8.4's InnoDB default footprint fits msb's default ~450M
|
|
65
73
|
// microVM RAM, so no module-level memory floor is warranted here.
|
|
66
74
|
}
|
|
67
|
-
static async start(image =
|
|
75
|
+
static async start(image = DEFAULT_IMAGE) {
|
|
68
76
|
return (await new MySQLContainer(image).start());
|
|
69
77
|
}
|
|
70
78
|
/** Overrides `MYSQL_USER` (default `test`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../src/modules/mysql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"mysql.js","sourceRoot":"","sources":["../../src/modules/mysql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,mBAAmB,GAAG,OAAO,CAAC;AACpC,MAAM,aAAa,GAAG,cAAc,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAC1C,aAAa,GAAG,MAAM,CAAC;IACvB,aAAa,GAAG,MAAM,CAAC;IACvB,aAAa,GAAG,MAAM,CAAC;IAE/B,YAAY,QAAkC,aAAa;QACzD,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC;aAC9B,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC;aACzC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC;aAC7C,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC;aAC7C,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;YACvC,gEAAgE;YAChE,qEAAqE;YACrE,iDAAiD;YACjD,mEAAmE;YACnE,mEAAmE;YACnE,iEAAiE;YACjE,kEAAkE;YAClE,qEAAqE;YACrE,yCAAyC;aACxC,UAAU,CACT,IAAI,CAAC,aAAa,CAAC,yDAAyD,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAC7G,CAAC;QACJ,qEAAqE;QACrE,uEAAuE;QACvE,kEAAkE;IACpE,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,KAAK,CAAC,QAAkC,aAAa;QACzE,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAmB,CAAC;IACrE,CAAC;IAED,+CAA+C;IAC/C,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,mDAAmD;IACnD,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,mDAAmD;IACnD,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,qDAAqD;IACrD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,yDAAyD;IACzD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,qDAAqD;IACrD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,iFAAiF;IACjF,IAAI,gBAAgB;QAClB,OAAO,WAAW,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;IACpI,CAAC;CACF"}
|
package/dist/modules/neo4j.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GenericContainer } from "../core/generic-container.js";
|
|
2
|
+
import { DockerImageName } from "../core/docker-image-name.js";
|
|
2
3
|
/**
|
|
3
4
|
* A single-node Neo4j Community container, queried over its HTTP Cypher
|
|
4
5
|
* transaction endpoint (`/db/neo4j/tx/commit`) — no bolt driver dependency
|
|
@@ -41,11 +42,15 @@ import { GenericContainer } from "../core/generic-container.js";
|
|
|
41
42
|
* no memory cap sits at ~430MiB RSS, just over that default budget.
|
|
42
43
|
* `withMemoryLimit(1024)` is this module's default (verified: boots clean,
|
|
43
44
|
* the HTTP Cypher endpoint answers well within the startup timeout).
|
|
45
|
+
*
|
|
46
|
+
* No-arg construction floats to `neo4j:latest`, so the version tracks
|
|
47
|
+
* upstream rather than this library's release cycle (verified against
|
|
48
|
+
* `neo4j:5-community`, including every fact above).
|
|
44
49
|
*/
|
|
45
50
|
export declare class Neo4jContainer extends GenericContainer {
|
|
46
51
|
private passwordState;
|
|
47
|
-
constructor(image?: string);
|
|
48
|
-
static start(image?: string): Promise<Neo4jContainer>;
|
|
52
|
+
constructor(image?: string | DockerImageName);
|
|
53
|
+
static start(image?: string | DockerImageName): Promise<Neo4jContainer>;
|
|
49
54
|
/** Overrides `NEO4J_AUTH`'s password half (default `rightsize-test`; the image requires at least 8 characters). */
|
|
50
55
|
withPassword(password: string): this;
|
|
51
56
|
/** The fixed admin username (`neo4j` — the image has no env var to change it). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"neo4j.d.ts","sourceRoot":"","sources":["../../src/modules/neo4j.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"neo4j.d.ts","sourceRoot":"","sources":["../../src/modules/neo4j.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAQ/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;IAClD,OAAO,CAAC,aAAa,CAAoB;gBAE7B,KAAK,GAAE,MAAM,GAAG,eAA+B;WAQrC,KAAK,CAAC,KAAK,GAAE,MAAM,GAAG,eAA+B,GAAG,OAAO,CAAC,cAAc,CAAC;IAIrG,mHAAmH;IACnH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKpC,kFAAkF;IAClF,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,gEAAgE;IAChE,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,mGAAmG;IACnG,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,kGAAkG;IAClG,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF"}
|
package/dist/modules/neo4j.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { GenericContainer } from "../core/generic-container.js";
|
|
2
2
|
import { Wait } from "../core/wait.js";
|
|
3
|
+
import { DockerImageName } from "../core/docker-image-name.js";
|
|
3
4
|
const HTTP_PORT = 7474;
|
|
4
5
|
const BOLT_PORT = 7687;
|
|
5
6
|
const DEFAULT_PASSWORD = "rightsize-test";
|
|
7
|
+
const EXPECTED_REPOSITORY = "neo4j";
|
|
8
|
+
const DEFAULT_IMAGE = "neo4j:latest";
|
|
6
9
|
/**
|
|
7
10
|
* A single-node Neo4j Community container, queried over its HTTP Cypher
|
|
8
11
|
* transaction endpoint (`/db/neo4j/tx/commit`) — no bolt driver dependency
|
|
@@ -45,17 +48,21 @@ const DEFAULT_PASSWORD = "rightsize-test";
|
|
|
45
48
|
* no memory cap sits at ~430MiB RSS, just over that default budget.
|
|
46
49
|
* `withMemoryLimit(1024)` is this module's default (verified: boots clean,
|
|
47
50
|
* the HTTP Cypher endpoint answers well within the startup timeout).
|
|
51
|
+
*
|
|
52
|
+
* No-arg construction floats to `neo4j:latest`, so the version tracks
|
|
53
|
+
* upstream rather than this library's release cycle (verified against
|
|
54
|
+
* `neo4j:5-community`, including every fact above).
|
|
48
55
|
*/
|
|
49
56
|
export class Neo4jContainer extends GenericContainer {
|
|
50
57
|
passwordState = DEFAULT_PASSWORD;
|
|
51
|
-
constructor(image =
|
|
52
|
-
super(image);
|
|
58
|
+
constructor(image = DEFAULT_IMAGE) {
|
|
59
|
+
super(DockerImageName.requireCompatible(image, EXPECTED_REPOSITORY));
|
|
53
60
|
this.withExposedPorts(HTTP_PORT, BOLT_PORT)
|
|
54
61
|
.withEnv("NEO4J_AUTH", `neo4j/${this.passwordState}`)
|
|
55
62
|
.withMemoryLimit(1024)
|
|
56
63
|
.waitingFor(Wait.forLogMessage(".*Started\\..*", 1).withStartupTimeout(120_000));
|
|
57
64
|
}
|
|
58
|
-
static async start(image =
|
|
65
|
+
static async start(image = DEFAULT_IMAGE) {
|
|
59
66
|
return (await new Neo4jContainer(image).start());
|
|
60
67
|
}
|
|
61
68
|
/** Overrides `NEO4J_AUTH`'s password half (default `rightsize-test`; the image requires at least 8 characters). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"neo4j.js","sourceRoot":"","sources":["../../src/modules/neo4j.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"neo4j.js","sourceRoot":"","sources":["../../src/modules/neo4j.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,SAAS,GAAG,IAAI,CAAC;AACvB,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAC1C,MAAM,mBAAmB,GAAG,OAAO,CAAC;AACpC,MAAM,aAAa,GAAG,cAAc,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAC1C,aAAa,GAAG,gBAAgB,CAAC;IAEzC,YAAY,QAAkC,aAAa;QACzD,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC;aACxC,OAAO,CAAC,YAAY,EAAE,SAAS,IAAI,CAAC,aAAa,EAAE,CAAC;aACpD,eAAe,CAAC,IAAI,CAAC;aACrB,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,KAAK,CAAC,QAAkC,aAAa;QACzE,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAmB,CAAC;IACrE,CAAC;IAED,mHAAmH;IACnH,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,QAAQ,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,kFAAkF;IAClF,IAAI,QAAQ;QACV,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gEAAgE;IAChE,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,mGAAmG;IACnG,IAAI,OAAO;QACT,OAAO,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;IAChE,CAAC;IAED,kGAAkG;IAClG,IAAI,OAAO;QACT,OAAO,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;IAChE,CAAC;CACF"}
|
package/dist/modules/pinot.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GenericContainer } from "../core/generic-container.js";
|
|
2
|
+
import { DockerImageName } from "../core/docker-image-name.js";
|
|
2
3
|
/**
|
|
3
4
|
* A single-container Apache Pinot QuickStart cluster (controller + broker +
|
|
4
5
|
* server + ZooKeeper, all four JVMs colocated in one image, started with
|
|
@@ -18,10 +19,14 @@ import { GenericContainer } from "../core/generic-container.js";
|
|
|
18
19
|
* under any load; 4096MB is the first limit that boots AND stays stable
|
|
19
20
|
* (~74% steady-state utilization). This is a hard floor, not a tunable
|
|
20
21
|
* default — do not lower it.
|
|
22
|
+
*
|
|
23
|
+
* No-arg construction floats to `apachepinot/pinot:latest`, so the version
|
|
24
|
+
* tracks upstream rather than this library's release cycle (verified
|
|
25
|
+
* against `apachepinot/pinot:1.5.1`, including both facts above).
|
|
21
26
|
*/
|
|
22
27
|
export declare class PinotContainer extends GenericContainer {
|
|
23
|
-
constructor(image?: string);
|
|
24
|
-
static start(image?: string): Promise<PinotContainer>;
|
|
28
|
+
constructor(image?: string | DockerImageName);
|
|
29
|
+
static start(image?: string | DockerImageName): Promise<PinotContainer>;
|
|
25
30
|
/** The controller's REST base URL (schema/table admin, `/health`). */
|
|
26
31
|
get controllerUrl(): string;
|
|
27
32
|
/** The broker's query base URL. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pinot.d.ts","sourceRoot":"","sources":["../../src/modules/pinot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"pinot.d.ts","sourceRoot":"","sources":["../../src/modules/pinot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAQ/D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;gBACtC,KAAK,GAAE,MAAM,GAAG,eAA+B;WAWrC,KAAK,CAAC,KAAK,GAAE,MAAM,GAAG,eAA+B,GAAG,OAAO,CAAC,cAAc,CAAC;IAIrG,sEAAsE;IACtE,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,mCAAmC;IACnC,IAAI,SAAS,IAAI,MAAM,CAEtB;CACF"}
|
package/dist/modules/pinot.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { GenericContainer } from "../core/generic-container.js";
|
|
2
2
|
import { Wait } from "../core/wait.js";
|
|
3
|
+
import { DockerImageName } from "../core/docker-image-name.js";
|
|
3
4
|
const CONTROLLER_PORT = 9000;
|
|
4
5
|
const BROKER_PORT = 8000;
|
|
5
6
|
const STARTUP_TIMEOUT_MS = 180_000;
|
|
7
|
+
const EXPECTED_REPOSITORY = "apachepinot/pinot";
|
|
8
|
+
const DEFAULT_IMAGE = "apachepinot/pinot:latest";
|
|
6
9
|
/**
|
|
7
10
|
* A single-container Apache Pinot QuickStart cluster (controller + broker +
|
|
8
11
|
* server + ZooKeeper, all four JVMs colocated in one image, started with
|
|
@@ -22,10 +25,14 @@ const STARTUP_TIMEOUT_MS = 180_000;
|
|
|
22
25
|
* under any load; 4096MB is the first limit that boots AND stays stable
|
|
23
26
|
* (~74% steady-state utilization). This is a hard floor, not a tunable
|
|
24
27
|
* default — do not lower it.
|
|
28
|
+
*
|
|
29
|
+
* No-arg construction floats to `apachepinot/pinot:latest`, so the version
|
|
30
|
+
* tracks upstream rather than this library's release cycle (verified
|
|
31
|
+
* against `apachepinot/pinot:1.5.1`, including both facts above).
|
|
25
32
|
*/
|
|
26
33
|
export class PinotContainer extends GenericContainer {
|
|
27
|
-
constructor(image =
|
|
28
|
-
super(image);
|
|
34
|
+
constructor(image = DEFAULT_IMAGE) {
|
|
35
|
+
super(DockerImageName.requireCompatible(image, EXPECTED_REPOSITORY));
|
|
29
36
|
this.withExposedPorts(CONTROLLER_PORT, BROKER_PORT)
|
|
30
37
|
.withCommand("QuickStart", "-type", "EMPTY")
|
|
31
38
|
.withMemoryLimit(4096)
|
|
@@ -34,7 +41,7 @@ export class PinotContainer extends GenericContainer {
|
|
|
34
41
|
// masking a real hang.
|
|
35
42
|
.waitingFor(Wait.forHttp("/health").forPort(CONTROLLER_PORT).withStartupTimeout(STARTUP_TIMEOUT_MS));
|
|
36
43
|
}
|
|
37
|
-
static async start(image =
|
|
44
|
+
static async start(image = DEFAULT_IMAGE) {
|
|
38
45
|
return (await new PinotContainer(image).start());
|
|
39
46
|
}
|
|
40
47
|
/** The controller's REST base URL (schema/table admin, `/health`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pinot.js","sourceRoot":"","sources":["../../src/modules/pinot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"pinot.js","sourceRoot":"","sources":["../../src/modules/pinot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB,MAAM,kBAAkB,GAAG,OAAO,CAAC;AACnC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAChD,MAAM,aAAa,GAAG,0BAA0B,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAClD,YAAY,QAAkC,aAAa;QACzD,KAAK,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,WAAW,CAAC;aAChD,WAAW,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC;aAC3C,eAAe,CAAC,IAAI,CAAC;YACtB,uEAAuE;YACvE,qEAAqE;YACrE,uBAAuB;aACtB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,CAAU,KAAK,CAAC,KAAK,CAAC,QAAkC,aAAa;QACzE,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAmB,CAAC;IACrE,CAAC;IAED,sEAAsE;IACtE,IAAI,aAAa;QACf,OAAO,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,CAAC;IACtE,CAAC;IAED,mCAAmC;IACnC,IAAI,SAAS;QACX,OAAO,UAAU,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;IAClE,CAAC;CACF"}
|
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
import { GenericContainer } from "../core/generic-container.js";
|
|
2
|
+
import { DockerImageName } from "../core/docker-image-name.js";
|
|
2
3
|
/**
|
|
3
4
|
* A single-node PostgreSQL container. Defaults to a `test`/`test`/`test`
|
|
4
5
|
* user/password/database trio so `connectionString` is usable with zero
|
|
5
6
|
* configuration; call `withUsername`/`withPassword`/`withDatabase` before
|
|
6
7
|
* `start()` to override any of them.
|
|
8
|
+
*
|
|
9
|
+
* No-arg construction floats to `postgres:latest`, so the version tracks
|
|
10
|
+
* upstream rather than this library's release cycle (verified against
|
|
11
|
+
* `postgres:18-alpine`, including the wait-strategy and `DOCKER_PG_LLVM_DEPS`
|
|
12
|
+
* facts below). `latest` is Debian-based rather than Alpine — functionally
|
|
13
|
+
* equivalent, larger to pull. The `DOCKER_PG_LLVM_DEPS` override stays in
|
|
14
|
+
* place regardless: it's a no-op against a build that never baked the
|
|
15
|
+
* problem tab character, and required against one that does.
|
|
7
16
|
*/
|
|
8
17
|
export declare class PostgresContainer extends GenericContainer {
|
|
9
18
|
private usernameState;
|
|
10
19
|
private passwordState;
|
|
11
20
|
private databaseState;
|
|
12
|
-
constructor(image?: string);
|
|
13
|
-
static start(image?: string): Promise<PostgresContainer>;
|
|
21
|
+
constructor(image?: string | DockerImageName);
|
|
22
|
+
static start(image?: string | DockerImageName): Promise<PostgresContainer>;
|
|
14
23
|
/** Overrides `POSTGRES_USER` (default `test`). */
|
|
15
24
|
withUsername(username: string): this;
|
|
16
25
|
/** Overrides `POSTGRES_PASSWORD` (default `test`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/modules/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/modules/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAM/D;;;;;;;;;;;;;GAaG;AACH,qBAAa,iBAAkB,SAAQ,gBAAgB;IACrD,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,aAAa,CAAU;gBAEnB,KAAK,GAAE,MAAM,GAAG,eAA+B;WAyBrC,KAAK,CAAC,KAAK,GAAE,MAAM,GAAG,eAA+B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIxG,kDAAkD;IAClD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKpC,sDAAsD;IACtD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKpC,gDAAgD;IAChD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKpC,qDAAqD;IACrD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,yDAAyD;IACzD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,qDAAqD;IACrD,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,oFAAoF;IACpF,IAAI,gBAAgB,IAAI,MAAM,CAE7B;CACF"}
|