spindb 0.49.0 → 0.50.0
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 +6 -3
- package/dist/cli/commands/create.js +10 -0
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/engines.js +26 -4
- package/dist/cli/commands/engines.js.map +1 -1
- package/dist/cli/commands/menu/backup-handlers.js +8 -1
- package/dist/cli/commands/menu/backup-handlers.js.map +1 -1
- package/dist/cli/commands/menu/container-handlers.js +9 -1
- package/dist/cli/commands/menu/container-handlers.js.map +1 -1
- package/dist/cli/commands/start.js +24 -1
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/ui/prompts.js +6 -3
- package/dist/cli/ui/prompts.js.map +1 -1
- package/dist/config/engine-defaults.js +25 -26
- package/dist/config/engine-defaults.js.map +1 -1
- package/dist/config/engines-registry.js +0 -46
- package/dist/config/engines-registry.js.map +1 -1
- package/dist/config/engines.json +132 -101
- package/dist/config/version.js +1 -1
- package/dist/core/container-manager.js +18 -4
- package/dist/core/container-manager.js.map +1 -1
- package/dist/core/hostdb-metadata.js +57 -14
- package/dist/core/hostdb-metadata.js.map +1 -1
- package/dist/core/version-utils.js +35 -0
- package/dist/core/version-utils.js.map +1 -1
- package/dist/engines/base-engine.js +12 -0
- package/dist/engines/base-engine.js.map +1 -1
- package/dist/engines/clickhouse/version-maps.js +43 -55
- package/dist/engines/clickhouse/version-maps.js.map +1 -1
- package/dist/engines/cockroachdb/version-maps.js +26 -25
- package/dist/engines/cockroachdb/version-maps.js.map +1 -1
- package/dist/engines/couchdb/version-maps.js +28 -47
- package/dist/engines/couchdb/version-maps.js.map +1 -1
- package/dist/engines/duckdb/index.js +3 -0
- package/dist/engines/duckdb/index.js.map +1 -1
- package/dist/engines/duckdb/version-maps.js +28 -48
- package/dist/engines/duckdb/version-maps.js.map +1 -1
- package/dist/engines/ferretdb/version-maps.js +39 -115
- package/dist/engines/ferretdb/version-maps.js.map +1 -1
- package/dist/engines/influxdb/version-maps.js +28 -44
- package/dist/engines/influxdb/version-maps.js.map +1 -1
- package/dist/engines/libsql/version-maps.js +28 -43
- package/dist/engines/libsql/version-maps.js.map +1 -1
- package/dist/engines/mariadb/version-maps.js +34 -54
- package/dist/engines/mariadb/version-maps.js.map +1 -1
- package/dist/engines/meilisearch/version-maps.js +28 -49
- package/dist/engines/meilisearch/version-maps.js.map +1 -1
- package/dist/engines/mongodb/version-maps.js +34 -70
- package/dist/engines/mongodb/version-maps.js.map +1 -1
- package/dist/engines/mysql/version-maps.js +37 -65
- package/dist/engines/mysql/version-maps.js.map +1 -1
- package/dist/engines/postgresql/version-maps.js +28 -71
- package/dist/engines/postgresql/version-maps.js.map +1 -1
- package/dist/engines/qdrant/version-maps.js +28 -47
- package/dist/engines/qdrant/version-maps.js.map +1 -1
- package/dist/engines/questdb/version-maps.js +24 -25
- package/dist/engines/questdb/version-maps.js.map +1 -1
- package/dist/engines/redis/version-maps.js +28 -51
- package/dist/engines/redis/version-maps.js.map +1 -1
- package/dist/engines/sqlite/index.js +3 -0
- package/dist/engines/sqlite/index.js.map +1 -1
- package/dist/engines/sqlite/version-maps.js +32 -47
- package/dist/engines/sqlite/version-maps.js.map +1 -1
- package/dist/engines/surrealdb/version-maps.js +26 -24
- package/dist/engines/surrealdb/version-maps.js.map +1 -1
- package/dist/engines/tigerbeetle/version-maps.js +32 -47
- package/dist/engines/tigerbeetle/version-maps.js.map +1 -1
- package/dist/engines/typedb/version-maps.js +30 -27
- package/dist/engines/typedb/version-maps.js.map +1 -1
- package/dist/engines/valkey/version-maps.js +28 -52
- package/dist/engines/valkey/version-maps.js.map +1 -1
- package/dist/engines/weaviate/version-maps.js +28 -47
- package/dist/engines/weaviate/version-maps.js.map +1 -1
- package/package.json +4 -2
|
@@ -1,53 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* libSQL Version Maps
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* https://github.com/robertjbass/hostdb/blob/main/releases.json
|
|
7
|
-
*
|
|
8
|
-
* When updating versions:
|
|
9
|
-
* 1. Check hostdb releases.json for available versions
|
|
10
|
-
* 2. Update LIBSQL_VERSION_MAP to match
|
|
4
|
+
* Thin wrapper around the `hostdb` npm package. See engines/sqlite/version-maps.ts
|
|
5
|
+
* for the architecture rationale — hostdb is the single source of truth.
|
|
11
6
|
*/
|
|
7
|
+
import { resolveVersion as hostdbResolveVersion, getSupportedMajorVersions, listVersions, } from 'hostdb';
|
|
12
8
|
import { logDebug } from '../../core/error-handler.js';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
* @param majorVersion - Major version (e.g., '0')
|
|
34
|
-
* @returns Full version string (e.g., '0.24.32') or null if not supported
|
|
35
|
-
*/
|
|
9
|
+
const ENGINE = 'libsql';
|
|
10
|
+
function buildVersionMap() {
|
|
11
|
+
const map = {};
|
|
12
|
+
for (const major of getSupportedMajorVersions(ENGINE)) {
|
|
13
|
+
const r = hostdbResolveVersion(ENGINE, major);
|
|
14
|
+
if (r)
|
|
15
|
+
map[major] = r;
|
|
16
|
+
}
|
|
17
|
+
for (const minor of listVersions(ENGINE, { format: 'major-minor' })) {
|
|
18
|
+
const r = hostdbResolveVersion(ENGINE, minor);
|
|
19
|
+
if (r)
|
|
20
|
+
map[minor] = r;
|
|
21
|
+
}
|
|
22
|
+
for (const full of listVersions(ENGINE, { format: 'full' })) {
|
|
23
|
+
map[full] = full;
|
|
24
|
+
}
|
|
25
|
+
return map;
|
|
26
|
+
}
|
|
27
|
+
export const LIBSQL_VERSION_MAP = buildVersionMap();
|
|
28
|
+
export const SUPPORTED_MAJOR_VERSIONS = getSupportedMajorVersions(ENGINE);
|
|
36
29
|
export function getFullVersion(majorVersion) {
|
|
37
|
-
return
|
|
30
|
+
return hostdbResolveVersion(ENGINE, majorVersion);
|
|
38
31
|
}
|
|
39
|
-
/**
|
|
40
|
-
* Normalize a version string to X.Y.Z format.
|
|
41
|
-
*
|
|
42
|
-
* @param version - Version string (e.g., '0', '0.24', '0.24.32')
|
|
43
|
-
* @returns Normalized version (e.g., '0.24.32')
|
|
44
|
-
*/
|
|
45
32
|
export function normalizeVersion(version) {
|
|
46
|
-
const
|
|
47
|
-
if (
|
|
48
|
-
return
|
|
49
|
-
}
|
|
50
|
-
// Unknown version - warn and return as-is
|
|
33
|
+
const resolved = hostdbResolveVersion(ENGINE, version);
|
|
34
|
+
if (resolved)
|
|
35
|
+
return resolved;
|
|
51
36
|
const parts = version.split('.');
|
|
52
37
|
const isValidFormat = parts.length >= 1 &&
|
|
53
38
|
parts.length <= 3 &&
|
|
@@ -56,7 +41,7 @@ export function normalizeVersion(version) {
|
|
|
56
41
|
logDebug(`libSQL version '${version}' has invalid format, may not be available in hostdb`);
|
|
57
42
|
}
|
|
58
43
|
else {
|
|
59
|
-
logDebug(`libSQL version '${version}' not in
|
|
44
|
+
logDebug(`libSQL version '${version}' not in hostdb, may not be available for download`);
|
|
60
45
|
}
|
|
61
46
|
return version;
|
|
62
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-maps.js","sourceRoot":"","sources":["../../../engines/libsql/version-maps.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"version-maps.js","sourceRoot":"","sources":["../../../engines/libsql/version-maps.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,cAAc,IAAI,oBAAoB,EACtC,yBAAyB,EACzB,YAAY,GACb,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,MAAM,MAAM,GAAG,QAAQ,CAAA;AAEvB,SAAS,eAAe;IACtB,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,KAAK,MAAM,KAAK,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QACpE,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAClB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAA2B,eAAe,EAAE,CAAA;AAE3E,MAAM,CAAC,MAAM,wBAAwB,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAA;AAEzE,MAAM,UAAU,cAAc,CAAC,YAAoB;IACjD,OAAO,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAE7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAChC,MAAM,aAAa,GACjB,KAAK,CAAC,MAAM,IAAI,CAAC;QACjB,KAAK,CAAC,MAAM,IAAI,CAAC;QACjB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAErC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,QAAQ,CACN,mBAAmB,OAAO,sDAAsD,CACjF,CAAA;IACH,CAAC;SAAM,CAAC;QACN,QAAQ,CACN,mBAAmB,OAAO,oDAAoD,CAC/E,CAAA;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -1,66 +1,46 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MariaDB Version Maps
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* https://github.com/robertjbass/hostdb/blob/main/releases.json
|
|
4
|
+
* Thin wrapper around the `hostdb` npm package. See engines/sqlite/version-maps.ts
|
|
5
|
+
* for the architecture rationale — hostdb is the single source of truth.
|
|
7
6
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* Note: SUPPORTED_MAJOR_VERSIONS is 2-part (e.g., '11.8') to preserve the
|
|
8
|
+
* convention used by `core/version-migration.ts:getMajorVersion()`, which
|
|
9
|
+
* groups patch versions under their major.minor LTS line. 1-part keys like
|
|
10
|
+
* '10' and '11' are still resolvable via the MAP (LTS-pick).
|
|
11
11
|
*/
|
|
12
|
+
import { resolveVersion as hostdbResolveVersion, getSupportedMajorVersions, listVersions, } from 'hostdb';
|
|
12
13
|
import { logDebug } from '../../core/error-handler.js';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
* Derived from MARIADB_VERSION_MAP keys to avoid duplication.
|
|
36
|
-
* Used for grouping and display purposes.
|
|
37
|
-
*/
|
|
38
|
-
export const SUPPORTED_MAJOR_VERSIONS = Object.keys(MARIADB_VERSION_MAP).filter((key) => key.split('.').length === 2);
|
|
39
|
-
/**
|
|
40
|
-
* Get the full version string for a major version.
|
|
41
|
-
*
|
|
42
|
-
* @param majorVersion - Major version (e.g., '11.8')
|
|
43
|
-
* @returns Full version string (e.g., '11.8.5') or null if not supported
|
|
44
|
-
*/
|
|
14
|
+
const ENGINE = 'mariadb';
|
|
15
|
+
function buildVersionMap() {
|
|
16
|
+
const map = {};
|
|
17
|
+
for (const major of getSupportedMajorVersions(ENGINE)) {
|
|
18
|
+
const r = hostdbResolveVersion(ENGINE, major);
|
|
19
|
+
if (r)
|
|
20
|
+
map[major] = r;
|
|
21
|
+
}
|
|
22
|
+
for (const minor of listVersions(ENGINE, { format: 'major-minor' })) {
|
|
23
|
+
const r = hostdbResolveVersion(ENGINE, minor);
|
|
24
|
+
if (r)
|
|
25
|
+
map[minor] = r;
|
|
26
|
+
}
|
|
27
|
+
for (const full of listVersions(ENGINE, { format: 'full' })) {
|
|
28
|
+
map[full] = full;
|
|
29
|
+
}
|
|
30
|
+
return map;
|
|
31
|
+
}
|
|
32
|
+
export const MARIADB_VERSION_MAP = buildVersionMap();
|
|
33
|
+
export const SUPPORTED_MAJOR_VERSIONS = listVersions(ENGINE, {
|
|
34
|
+
format: 'major-minor',
|
|
35
|
+
});
|
|
45
36
|
export function getFullVersion(majorVersion) {
|
|
46
|
-
return
|
|
37
|
+
return hostdbResolveVersion(ENGINE, majorVersion);
|
|
47
38
|
}
|
|
48
|
-
/**
|
|
49
|
-
* Normalize a version string to X.Y.Z format.
|
|
50
|
-
*
|
|
51
|
-
* @param version - Version string (e.g., '11.8', '11.8.5')
|
|
52
|
-
* @returns Normalized version (e.g., '11.8.5')
|
|
53
|
-
*/
|
|
54
39
|
export function normalizeVersion(version) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return fullVersion;
|
|
60
|
-
}
|
|
61
|
-
// Unknown version - log debug and return as-is
|
|
62
|
-
// This may cause download failures if the version doesn't exist in hostdb
|
|
63
|
-
logDebug(`MariaDB version '${version}' not in version map, may not be available in hostdb`);
|
|
40
|
+
const resolved = hostdbResolveVersion(ENGINE, version);
|
|
41
|
+
if (resolved)
|
|
42
|
+
return resolved;
|
|
43
|
+
logDebug(`MariaDB version '${version}' not in hostdb, may not be available for download`);
|
|
64
44
|
return version;
|
|
65
45
|
}
|
|
66
46
|
//# sourceMappingURL=version-maps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-maps.js","sourceRoot":"","sources":["../../../engines/mariadb/version-maps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD
|
|
1
|
+
{"version":3,"file":"version-maps.js","sourceRoot":"","sources":["../../../engines/mariadb/version-maps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,cAAc,IAAI,oBAAoB,EACtC,yBAAyB,EACzB,YAAY,GACb,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,MAAM,MAAM,GAAG,SAAS,CAAA;AAExB,SAAS,eAAe;IACtB,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,KAAK,MAAM,KAAK,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QACpE,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAClB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAA2B,eAAe,EAAE,CAAA;AAE5E,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,CAAC,MAAM,EAAE;IAC3D,MAAM,EAAE,aAAa;CACtB,CAAC,CAAA;AAEF,MAAM,UAAU,cAAc,CAAC,YAAoB;IACjD,OAAO,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,QAAQ,CACN,oBAAoB,OAAO,oDAAoD,CAChF,CAAA;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -1,60 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Meilisearch Version Maps
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* https://github.com/robertjbass/hostdb/blob/main/releases.json
|
|
7
|
-
*
|
|
8
|
-
* When updating versions:
|
|
9
|
-
* 1. Check hostdb releases.json for available versions
|
|
10
|
-
* 2. Update MEILISEARCH_VERSION_MAP to match
|
|
4
|
+
* Thin wrapper around the `hostdb` npm package. See engines/sqlite/version-maps.ts
|
|
5
|
+
* for the architecture rationale — hostdb is the single source of truth.
|
|
11
6
|
*/
|
|
7
|
+
import { resolveVersion as hostdbResolveVersion, getSupportedMajorVersions, listVersions, } from 'hostdb';
|
|
12
8
|
import { logDebug } from '../../core/error-handler.js';
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
export const
|
|
32
|
-
|
|
33
|
-
* Get the full version string for a major version.
|
|
34
|
-
*
|
|
35
|
-
* @param majorVersion - Major version (e.g., '1')
|
|
36
|
-
* @returns Full version string (e.g., '1.33.1') or null if not supported
|
|
37
|
-
*/
|
|
9
|
+
const ENGINE = 'meilisearch';
|
|
10
|
+
function buildVersionMap() {
|
|
11
|
+
const map = {};
|
|
12
|
+
for (const major of getSupportedMajorVersions(ENGINE)) {
|
|
13
|
+
const r = hostdbResolveVersion(ENGINE, major);
|
|
14
|
+
if (r)
|
|
15
|
+
map[major] = r;
|
|
16
|
+
}
|
|
17
|
+
for (const minor of listVersions(ENGINE, { format: 'major-minor' })) {
|
|
18
|
+
const r = hostdbResolveVersion(ENGINE, minor);
|
|
19
|
+
if (r)
|
|
20
|
+
map[minor] = r;
|
|
21
|
+
}
|
|
22
|
+
for (const full of listVersions(ENGINE, { format: 'full' })) {
|
|
23
|
+
map[full] = full;
|
|
24
|
+
}
|
|
25
|
+
return map;
|
|
26
|
+
}
|
|
27
|
+
export const MEILISEARCH_VERSION_MAP = buildVersionMap();
|
|
28
|
+
export const SUPPORTED_MAJOR_VERSIONS = getSupportedMajorVersions(ENGINE);
|
|
38
29
|
export function getFullVersion(majorVersion) {
|
|
39
|
-
return
|
|
30
|
+
return hostdbResolveVersion(ENGINE, majorVersion);
|
|
40
31
|
}
|
|
41
|
-
/**
|
|
42
|
-
* Normalize a version string to X.Y.Z format.
|
|
43
|
-
*
|
|
44
|
-
* @param version - Version string (e.g., '1', '1.33', '1.33.1')
|
|
45
|
-
* @returns Normalized version (e.g., '1.33.1')
|
|
46
|
-
*/
|
|
47
32
|
export function normalizeVersion(version) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if (fullVersion) {
|
|
52
|
-
return fullVersion;
|
|
53
|
-
}
|
|
54
|
-
// Unknown version - warn and return as-is
|
|
55
|
-
// This may cause download failures if the version doesn't exist in hostdb
|
|
33
|
+
const resolved = hostdbResolveVersion(ENGINE, version);
|
|
34
|
+
if (resolved)
|
|
35
|
+
return resolved;
|
|
56
36
|
const parts = version.split('.');
|
|
57
|
-
// Validate format: must be 1-3 numeric segments (e.g., "1", "1.33", "1.33.1")
|
|
58
37
|
const isValidFormat = parts.length >= 1 &&
|
|
59
38
|
parts.length <= 3 &&
|
|
60
39
|
parts.every((p) => /^\d+$/.test(p));
|
|
@@ -62,7 +41,7 @@ export function normalizeVersion(version) {
|
|
|
62
41
|
logDebug(`Meilisearch version '${version}' has invalid format, may not be available in hostdb`);
|
|
63
42
|
}
|
|
64
43
|
else {
|
|
65
|
-
logDebug(`Meilisearch version '${version}' not in
|
|
44
|
+
logDebug(`Meilisearch version '${version}' not in hostdb, may not be available for download`);
|
|
66
45
|
}
|
|
67
46
|
return version;
|
|
68
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-maps.js","sourceRoot":"","sources":["../../../engines/meilisearch/version-maps.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"version-maps.js","sourceRoot":"","sources":["../../../engines/meilisearch/version-maps.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,cAAc,IAAI,oBAAoB,EACtC,yBAAyB,EACzB,YAAY,GACb,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,MAAM,MAAM,GAAG,aAAa,CAAA;AAE5B,SAAS,eAAe;IACtB,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,KAAK,MAAM,KAAK,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QACpE,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAClB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAA2B,eAAe,EAAE,CAAA;AAEhF,MAAM,CAAC,MAAM,wBAAwB,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAA;AAEzE,MAAM,UAAU,cAAc,CAAC,YAAoB;IACjD,OAAO,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAE7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAChC,MAAM,aAAa,GACjB,KAAK,CAAC,MAAM,IAAI,CAAC;QACjB,KAAK,CAAC,MAAM,IAAI,CAAC;QACjB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAErC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,QAAQ,CACN,wBAAwB,OAAO,sDAAsD,CACtF,CAAA;IACH,CAAC;SAAM,CAAC;QACN,QAAQ,CACN,wBAAwB,OAAO,oDAAoD,CACpF,CAAA;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -1,82 +1,46 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* MongoDB
|
|
2
|
+
* MongoDB Version Maps
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* https://github.com/robertjbass/hostdb/blob/main/releases.json
|
|
4
|
+
* Thin wrapper around the `hostdb` npm package. See engines/sqlite/version-maps.ts
|
|
5
|
+
* for the architecture rationale — hostdb is the single source of truth.
|
|
7
6
|
*
|
|
8
|
-
*
|
|
7
|
+
* Note: SUPPORTED_MAJOR_VERSIONS is 2-part (e.g., '8.0') to preserve the
|
|
8
|
+
* convention used by `core/version-migration.ts:getMajorVersion()`. 1-part
|
|
9
|
+
* keys '7' and '8' still resolve via the MAP (LTS-pick: '8' → 8.0.23, not 8.2.9).
|
|
9
10
|
*/
|
|
11
|
+
import { resolveVersion as hostdbResolveVersion, getSupportedMajorVersions, listVersions, } from 'hostdb';
|
|
10
12
|
import { logDebug } from '../../core/error-handler.js';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
'8.2': '8.2.9',
|
|
24
|
-
// 3-part: exact version (identity mapping)
|
|
25
|
-
'7.0.28': '7.0.28',
|
|
26
|
-
'7.0.34': '7.0.34',
|
|
27
|
-
'8.0.17': '8.0.17',
|
|
28
|
-
'8.0.23': '8.0.23',
|
|
29
|
-
'8.2.3': '8.2.3',
|
|
30
|
-
'8.2.9': '8.2.9',
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* Supported major MongoDB versions (2-part format).
|
|
34
|
-
* Used for grouping and display purposes.
|
|
35
|
-
*/
|
|
36
|
-
export const SUPPORTED_MAJOR_VERSIONS = ['7.0', '8.0', '8.2'];
|
|
37
|
-
/**
|
|
38
|
-
* Fallback map of major versions to stable patch versions
|
|
39
|
-
* Used when hostdb repository is unreachable
|
|
40
|
-
*/
|
|
41
|
-
export const FALLBACK_VERSION_MAP = MONGODB_VERSION_MAP;
|
|
42
|
-
/**
|
|
43
|
-
* Get the full version for a major version
|
|
44
|
-
* @param majorVersion - Major version (e.g., "7.0", "8.0")
|
|
45
|
-
* @returns Full version or null if not found
|
|
46
|
-
*/
|
|
47
|
-
export function getFullVersion(majorVersion) {
|
|
48
|
-
// Try exact match first
|
|
49
|
-
if (MONGODB_VERSION_MAP[majorVersion]) {
|
|
50
|
-
return MONGODB_VERSION_MAP[majorVersion];
|
|
13
|
+
const ENGINE = 'mongodb';
|
|
14
|
+
function buildVersionMap() {
|
|
15
|
+
const map = {};
|
|
16
|
+
for (const major of getSupportedMajorVersions(ENGINE)) {
|
|
17
|
+
const r = hostdbResolveVersion(ENGINE, major);
|
|
18
|
+
if (r)
|
|
19
|
+
map[major] = r;
|
|
20
|
+
}
|
|
21
|
+
for (const minor of listVersions(ENGINE, { format: 'major-minor' })) {
|
|
22
|
+
const r = hostdbResolveVersion(ENGINE, minor);
|
|
23
|
+
if (r)
|
|
24
|
+
map[minor] = r;
|
|
51
25
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const matchingVersions = Object.entries(MONGODB_VERSION_MAP)
|
|
55
|
-
.filter(([key]) => key.split('.')[0] === majorOnly)
|
|
56
|
-
.sort(([a], [b]) => b.localeCompare(a, undefined, { numeric: true }));
|
|
57
|
-
if (matchingVersions.length > 0) {
|
|
58
|
-
return matchingVersions[0][1];
|
|
26
|
+
for (const full of listVersions(ENGINE, { format: 'full' })) {
|
|
27
|
+
map[full] = full;
|
|
59
28
|
}
|
|
60
|
-
return
|
|
29
|
+
return map;
|
|
30
|
+
}
|
|
31
|
+
export const MONGODB_VERSION_MAP = buildVersionMap();
|
|
32
|
+
export const SUPPORTED_MAJOR_VERSIONS = listVersions(ENGINE, {
|
|
33
|
+
format: 'major-minor',
|
|
34
|
+
});
|
|
35
|
+
export const FALLBACK_VERSION_MAP = MONGODB_VERSION_MAP;
|
|
36
|
+
export function getFullVersion(majorVersion) {
|
|
37
|
+
return hostdbResolveVersion(ENGINE, majorVersion);
|
|
61
38
|
}
|
|
62
|
-
/**
|
|
63
|
-
* Normalize a version string to a full version
|
|
64
|
-
* @param version - Version string (major, major.minor, or full)
|
|
65
|
-
* @returns Full version string
|
|
66
|
-
*/
|
|
67
39
|
export function normalizeVersion(version) {
|
|
68
|
-
|
|
69
|
-
if (
|
|
70
|
-
return
|
|
71
|
-
}
|
|
72
|
-
// Delegate to getFullVersion for major/major.minor lookup
|
|
73
|
-
const fullVersion = getFullVersion(version);
|
|
74
|
-
if (fullVersion) {
|
|
75
|
-
return fullVersion;
|
|
76
|
-
}
|
|
77
|
-
// Unknown version format - log debug and return as-is
|
|
78
|
-
// This may cause download failures if the version doesn't exist in hostdb
|
|
79
|
-
logDebug(`MongoDB version '${version}' not in version map, may not be available in hostdb`);
|
|
40
|
+
const resolved = hostdbResolveVersion(ENGINE, version);
|
|
41
|
+
if (resolved)
|
|
42
|
+
return resolved;
|
|
43
|
+
logDebug(`MongoDB version '${version}' not in hostdb, may not be available for download`);
|
|
80
44
|
return version;
|
|
81
45
|
}
|
|
82
46
|
//# sourceMappingURL=version-maps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-maps.js","sourceRoot":"","sources":["../../../engines/mongodb/version-maps.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"version-maps.js","sourceRoot":"","sources":["../../../engines/mongodb/version-maps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,cAAc,IAAI,oBAAoB,EACtC,yBAAyB,EACzB,YAAY,GACb,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,MAAM,MAAM,GAAG,SAAS,CAAA;AAExB,SAAS,eAAe;IACtB,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,KAAK,MAAM,KAAK,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QACpE,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAClB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAA2B,eAAe,EAAE,CAAA;AAE5E,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,CAAC,MAAM,EAAE;IAC3D,MAAM,EAAE,aAAa;CACtB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAA2B,mBAAmB,CAAA;AAE/E,MAAM,UAAU,cAAc,CAAC,YAAoB;IACjD,OAAO,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,QAAQ,CACN,oBAAoB,OAAO,oDAAoD,CAChF,CAAA;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -1,78 +1,50 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* MySQL Version Maps
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* https://github.com/robertjbass/hostdb/blob/main/releases.json
|
|
4
|
+
* Thin wrapper around the `hostdb` npm package. See engines/sqlite/version-maps.ts
|
|
5
|
+
* for the architecture rationale — hostdb is the single source of truth.
|
|
7
6
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*/
|
|
12
|
-
import { logDebug } from '../../core/error-handler.js';
|
|
13
|
-
/**
|
|
14
|
-
* Map of major MySQL versions to their latest stable patch versions.
|
|
15
|
-
* Must match versions available in hostdb releases.json.
|
|
7
|
+
* Note: SUPPORTED_MAJOR_VERSIONS is 2-part (e.g., '8.4') to preserve the
|
|
8
|
+
* convention used by `core/version-migration.ts:getMajorVersion()`. The 1-part
|
|
9
|
+
* keys '8' and '9' still resolve via the MAP (LTS-pick: '8' → 8.4.9, not 9.6.0).
|
|
16
10
|
*
|
|
17
|
-
* Deprecated
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*/
|
|
21
|
-
export const MYSQL_VERSION_MAP = {
|
|
22
|
-
// 1-part: major version → latest
|
|
23
|
-
'8': '8.4.9',
|
|
24
|
-
'9': '9.6.0',
|
|
25
|
-
// 2-part: major.minor → latest patch
|
|
26
|
-
'8.0': '8.0.40',
|
|
27
|
-
'8.4': '8.4.9',
|
|
28
|
-
'9.1': '9.1.0',
|
|
29
|
-
'9.5': '9.5.0',
|
|
30
|
-
'9.6': '9.6.0',
|
|
31
|
-
// 3-part: exact version (identity mapping)
|
|
32
|
-
'8.0.40': '8.0.40',
|
|
33
|
-
'8.4.3': '8.4.3',
|
|
34
|
-
'8.4.9': '8.4.9',
|
|
35
|
-
'9.1.0': '9.1.0',
|
|
36
|
-
'9.5.0': '9.5.0',
|
|
37
|
-
'9.6.0': '9.6.0',
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* Supported major MySQL versions (2-part format).
|
|
41
|
-
* Used for grouping and display purposes.
|
|
42
|
-
* Includes deprecated versions so existing containers remain functional.
|
|
43
|
-
*/
|
|
44
|
-
export const SUPPORTED_MAJOR_VERSIONS = ['8.0', '8.4', '9.1', '9.5', '9.6'];
|
|
45
|
-
/**
|
|
46
|
-
* Fallback map of major versions to stable patch versions
|
|
47
|
-
* Used when hostdb repository is unreachable
|
|
11
|
+
* Deprecated patches (8.0.40, 9.1.0, 9.5.0) remain resolvable so existing
|
|
12
|
+
* containers keep working — hostdb's `enabled !== false` check keeps them in
|
|
13
|
+
* the available-versions list; only `enabled: false` removes a version entirely.
|
|
48
14
|
*/
|
|
15
|
+
import { resolveVersion as hostdbResolveVersion, getSupportedMajorVersions, listVersions, } from 'hostdb';
|
|
16
|
+
import { logDebug } from '../../core/error-handler.js';
|
|
17
|
+
const ENGINE = 'mysql';
|
|
18
|
+
function buildVersionMap() {
|
|
19
|
+
const map = {};
|
|
20
|
+
for (const major of getSupportedMajorVersions(ENGINE)) {
|
|
21
|
+
const r = hostdbResolveVersion(ENGINE, major);
|
|
22
|
+
if (r)
|
|
23
|
+
map[major] = r;
|
|
24
|
+
}
|
|
25
|
+
for (const minor of listVersions(ENGINE, { format: 'major-minor' })) {
|
|
26
|
+
const r = hostdbResolveVersion(ENGINE, minor);
|
|
27
|
+
if (r)
|
|
28
|
+
map[minor] = r;
|
|
29
|
+
}
|
|
30
|
+
for (const full of listVersions(ENGINE, { format: 'full' })) {
|
|
31
|
+
map[full] = full;
|
|
32
|
+
}
|
|
33
|
+
return map;
|
|
34
|
+
}
|
|
35
|
+
export const MYSQL_VERSION_MAP = buildVersionMap();
|
|
36
|
+
export const SUPPORTED_MAJOR_VERSIONS = listVersions(ENGINE, {
|
|
37
|
+
format: 'major-minor',
|
|
38
|
+
});
|
|
49
39
|
export const FALLBACK_VERSION_MAP = MYSQL_VERSION_MAP;
|
|
50
|
-
/**
|
|
51
|
-
* Get the full version string for a major version.
|
|
52
|
-
*
|
|
53
|
-
* @param majorVersion - Major version (e.g., '8.0', '9')
|
|
54
|
-
* @returns Full version string (e.g., '8.0.40') or null if not supported
|
|
55
|
-
*/
|
|
56
40
|
export function getFullVersion(majorVersion) {
|
|
57
|
-
return
|
|
41
|
+
return hostdbResolveVersion(ENGINE, majorVersion);
|
|
58
42
|
}
|
|
59
|
-
/**
|
|
60
|
-
* Normalize a version string to X.Y.Z format.
|
|
61
|
-
*
|
|
62
|
-
* @param version - Version string (e.g., '8.0', '8.0.40', '9')
|
|
63
|
-
* @returns Normalized version (e.g., '8.0.40', '9.5.0') matching hostdb releases
|
|
64
|
-
*/
|
|
65
43
|
export function normalizeVersion(version) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
if (fullVersion) {
|
|
70
|
-
return fullVersion;
|
|
71
|
-
}
|
|
72
|
-
// Unknown version - warn and return as-is
|
|
73
|
-
// This may cause download failures if the version doesn't exist in hostdb
|
|
44
|
+
const resolved = hostdbResolveVersion(ENGINE, version);
|
|
45
|
+
if (resolved)
|
|
46
|
+
return resolved;
|
|
74
47
|
const parts = version.split('.');
|
|
75
|
-
// Validate format: must be 1-3 numeric segments (e.g., "9", "8.0", "8.0.40")
|
|
76
48
|
const isValidFormat = parts.length >= 1 &&
|
|
77
49
|
parts.length <= 3 &&
|
|
78
50
|
parts.every((p) => /^\d+$/.test(p));
|
|
@@ -80,7 +52,7 @@ export function normalizeVersion(version) {
|
|
|
80
52
|
logDebug(`MySQL version '${version}' has invalid format, may not be available in hostdb`);
|
|
81
53
|
}
|
|
82
54
|
else {
|
|
83
|
-
logDebug(`MySQL version '${version}' not in
|
|
55
|
+
logDebug(`MySQL version '${version}' not in hostdb, may not be available for download`);
|
|
84
56
|
}
|
|
85
57
|
return version;
|
|
86
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-maps.js","sourceRoot":"","sources":["../../../engines/mysql/version-maps.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"version-maps.js","sourceRoot":"","sources":["../../../engines/mysql/version-maps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EACL,cAAc,IAAI,oBAAoB,EACtC,yBAAyB,EACzB,YAAY,GACb,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAEnD,MAAM,MAAM,GAAG,OAAO,CAAA;AAEtB,SAAS,eAAe;IACtB,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,KAAK,MAAM,KAAK,IAAI,yBAAyB,CAAC,MAAM,CAAC,EAAE,CAAC;QACtD,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;QACpE,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7C,IAAI,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAClB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAA2B,eAAe,EAAE,CAAA;AAE1E,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,CAAC,MAAM,EAAE;IAC3D,MAAM,EAAE,aAAa;CACtB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAA2B,iBAAiB,CAAA;AAE7E,MAAM,UAAU,cAAc,CAAC,YAAoB;IACjD,OAAO,oBAAoB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAE7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAChC,MAAM,aAAa,GACjB,KAAK,CAAC,MAAM,IAAI,CAAC;QACjB,KAAK,CAAC,MAAM,IAAI,CAAC;QACjB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAErC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,QAAQ,CACN,kBAAkB,OAAO,sDAAsD,CAChF,CAAA;IACH,CAAC;SAAM,CAAC;QACN,QAAQ,CACN,kBAAkB,OAAO,oDAAoD,CAC9E,CAAA;IACH,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
|