@tdk-landscape/tdk-cli-core 1.3.38 â 1.3.40
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/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +104 -8
- package/dist/commands/doctor.js.map +1 -1
- package/dist/generator/extension-fetch.d.ts +7 -0
- package/dist/generator/extension-fetch.d.ts.map +1 -1
- package/dist/generator/extension-fetch.js +40 -21
- package/dist/generator/extension-fetch.js.map +1 -1
- package/dist/generator/template-engine.d.ts.map +1 -1
- package/dist/generator/template-engine.js +40 -15
- package/dist/generator/template-engine.js.map +1 -1
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/docker.d.ts +3 -2
- package/dist/utils/docker.d.ts.map +1 -1
- package/dist/utils/docker.js +12 -6
- package/dist/utils/docker.js.map +1 -1
- package/dist/utils/errors.d.ts +1 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +10 -2
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/port-assignment.d.ts.map +1 -1
- package/dist/utils/port-assignment.js +6 -0
- package/dist/utils/port-assignment.js.map +1 -1
- package/dist/utils/resource-features.d.ts.map +1 -1
- package/dist/utils/resource-features.js +12 -0
- package/dist/utils/resource-features.js.map +1 -1
- package/dist/utils/tilt.d.ts +1 -0
- package/dist/utils/tilt.d.ts.map +1 -1
- package/dist/utils/tilt.js +2 -1
- package/dist/utils/tilt.js.map +1 -1
- package/engine/schemas/service-schema.json +20 -0
- package/engine/topologies/platform/docker/compose/traefik_standalone.star +20 -0
- package/engine/topologies/platform/docker/networking/sablier_container_cycle.star +25 -23
- package/engine/topologies/platform/docker/networking/traefik.star +10 -20
- package/engine/topologies/platform/registries/verdaccio_loader.star +18 -0
- package/engine/topologies/tilt/manifest/schema.star +29 -1
- package/engine/topologies/tilt/resources/infra-loader.star +5 -31
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAkEA,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAU,CAAC;AAOnF,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ,IAAK,wBAA8C,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC7F,CAAC;AACJ,CAAC;AAsQD;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,MAAM,UAAU,GAAsB;QACpC,sBAAsB;QACtB,6BAA6B;QAC7B,aAAa;KACd,CAAC;IACF,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC"}
|
package/dist/utils/docker.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export type ContainerRuntimeStatus = "running" | "unresponsive" | "missing";
|
|
2
|
+
/** Whether Docker, Colima, or Podman is reachable, hung, or absent. */
|
|
3
|
+
export declare function getContainerRuntimeStatus(): ContainerRuntimeStatus;
|
|
3
4
|
//# sourceMappingURL=docker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/utils/docker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/utils/docker.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAAC;AAE5E,uEAAuE;AACvE,wBAAgB,yBAAyB,IAAI,sBAAsB,CAWlE"}
|
package/dist/utils/docker.js
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
import { execSync } from "node:child_process";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
// A wedged daemon makes `docker ps` block forever instead of failing.
|
|
3
|
+
const RUNTIME_CHECK_TIMEOUT_MS = 10_000;
|
|
4
|
+
/** Whether Docker, Colima, or Podman is reachable, hung, or absent. */
|
|
5
|
+
export function getContainerRuntimeStatus() {
|
|
6
|
+
let sawTimeout = false;
|
|
4
7
|
for (const command of ["docker ps", "colima status", "podman ps"]) {
|
|
5
8
|
try {
|
|
6
|
-
execSync(command, { stdio: "ignore" });
|
|
7
|
-
return
|
|
9
|
+
execSync(command, { stdio: "ignore", timeout: RUNTIME_CHECK_TIMEOUT_MS });
|
|
10
|
+
return "running";
|
|
11
|
+
}
|
|
12
|
+
catch (err) {
|
|
13
|
+
if (err.code === "ETIMEDOUT")
|
|
14
|
+
sawTimeout = true;
|
|
8
15
|
}
|
|
9
|
-
catch { }
|
|
10
16
|
}
|
|
11
|
-
return
|
|
17
|
+
return sawTimeout ? "unresponsive" : "missing";
|
|
12
18
|
}
|
|
13
19
|
//# sourceMappingURL=docker.js.map
|
package/dist/utils/docker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/utils/docker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/utils/docker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,sEAAsE;AACtE,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAIxC,uEAAuE;AACvE,MAAM,UAAU,yBAAyB;IACvC,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,KAAK,MAAM,OAAO,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC;YACH,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;YAC1E,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,WAAW;gBAAE,UAAU,GAAG,IAAI,CAAC;QAC7E,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC"}
|
package/dist/utils/errors.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ declare class TdkError extends Error {
|
|
|
11
11
|
export declare const errorFactories: {
|
|
12
12
|
tiltNotInstalled: () => TdkError;
|
|
13
13
|
dockerNotAvailable: () => TdkError;
|
|
14
|
+
dockerNotResponding: () => TdkError;
|
|
14
15
|
stackNotFound: (name: string) => TdkError;
|
|
15
16
|
resourceNotFound: (name: string) => TdkError;
|
|
16
17
|
directoryExists: (path: string) => TdkError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAMA,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAK/D;AAED,cAAM,QAAS,SAAQ,KAAK;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IAExB,YAAY,OAAO,EAAE,MAAM,EAAE,WAAW,GAAE,MAAM,EAAO,EAAE,QAAQ,GAAE,MAAU,EAK5E;IAED,OAAO,IAAI,IAAI,CAEd;IAED,kEAAkE;IAClE,IAAI,IAAI,KAAK,CAGZ;CACF;AAED,eAAO,MAAM,cAAc;IACzB,gBAAgB;IAOhB,kBAAkB;IAOlB,aAAa,SAAS,MAAM;IAK5B,gBAAgB,SAAS,MAAM;IAK/B,eAAe,SAAS,MAAM;IAK9B,WAAW,SAAS,MAAM;IAK1B,YAAY;CAKb,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,MAAM,CAQ3C;AAOD,wBAAsB,UAAU,CAAC,CAAC,EAChC,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACxB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9B,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CASpB;AAED,wBAAsB,aAAa,CAAC,CAAC,EACnC,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACxB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9B,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAMA,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,IAAI,CAK/D;AAED,cAAM,QAAS,SAAQ,KAAK;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IAExB,YAAY,OAAO,EAAE,MAAM,EAAE,WAAW,GAAE,MAAM,EAAO,EAAE,QAAQ,GAAE,MAAU,EAK5E;IAED,OAAO,IAAI,IAAI,CAEd;IAED,kEAAkE;IAClE,IAAI,IAAI,KAAK,CAGZ;CACF;AAED,eAAO,MAAM,cAAc;IACzB,gBAAgB;IAOhB,kBAAkB;IAOlB,mBAAmB;IAKnB,aAAa,SAAS,MAAM;IAK5B,gBAAgB,SAAS,MAAM;IAK/B,eAAe,SAAS,MAAM;IAK9B,WAAW,SAAS,MAAM;IAK1B,YAAY;CAKb,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,MAAM,CAQ3C;AAOD,wBAAsB,UAAU,CAAC,CAAC,EAChC,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACxB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9B,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CASpB;AAED,wBAAsB,aAAa,CAAC,CAAC,EACnC,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACxB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9B,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,CAuBpB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,KAAK,CAG7E;AAkBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAGjF"}
|
package/dist/utils/errors.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
2
|
import { QUICKSTART_DOCS_URL } from "./constants.js";
|
|
3
|
-
import {
|
|
3
|
+
import { getContainerRuntimeStatus } from "./docker.js";
|
|
4
4
|
import { findProjectRoot } from "./paths.js";
|
|
5
5
|
import { isTiltAvailable } from "./tilt.js";
|
|
6
6
|
export function getErrorMessage(err) {
|
|
@@ -43,6 +43,10 @@ export const errorFactories = {
|
|
|
43
43
|
"Or start the Docker service on Linux: `sudo systemctl start docker`",
|
|
44
44
|
`Setup guide: ${QUICKSTART_DOCS_URL}`,
|
|
45
45
|
]),
|
|
46
|
+
dockerNotResponding: () => new TdkError("Docker is running but not responding (`docker ps` hung for 10s)", [
|
|
47
|
+
"Quit and reopen Docker Desktop, or run `colima restart`",
|
|
48
|
+
"Then verify with: `docker ps`",
|
|
49
|
+
]),
|
|
46
50
|
stackNotFound: (name) => new TdkError(`Stack "${name}" not found`, [
|
|
47
51
|
"Run `tdk stacks` to see available stacks",
|
|
48
52
|
"Run `tdk stack` to assign resources to a stack",
|
|
@@ -90,7 +94,11 @@ export async function runCommand(action, options) {
|
|
|
90
94
|
}
|
|
91
95
|
export async function withTiltCheck(action, options) {
|
|
92
96
|
const problems = [];
|
|
93
|
-
|
|
97
|
+
const runtime = getContainerRuntimeStatus();
|
|
98
|
+
if (runtime === "unresponsive") {
|
|
99
|
+
problems.push(errorFactories.dockerNotResponding());
|
|
100
|
+
}
|
|
101
|
+
else if (runtime === "missing") {
|
|
94
102
|
problems.push(errorFactories.dockerNotAvailable());
|
|
95
103
|
}
|
|
96
104
|
if (!(await isTiltAvailable())) {
|
package/dist/utils/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,GAAa;IACvD,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED,MAAM,QAAS,SAAQ,KAAK;IACnB,WAAW,CAAW;IACtB,QAAQ,CAAS;IAExB,YAAY,OAAe,EAAE,WAAW,GAAa,EAAE,EAAE,QAAQ,GAAW,CAAC;QAC3E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;IAED,kEAAkE;IAClE,IAAI;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,gBAAgB,EAAE,GAAG,EAAE,CACrB,IAAI,QAAQ,CAAC,2BAA2B,EAAE;QACxC,2CAA2C;QAC3C,sDAAsD;QACtD,6BAA6B;QAC7B,gBAAgB,mBAAmB,EAAE;KACtC,CAAC;IACJ,kBAAkB,EAAE,GAAG,EAAE,CACvB,IAAI,QAAQ,CAAC,2DAA2D,EAAE;QACxE,qDAAqD;QACrD,iCAAiC;QACjC,qEAAqE;QACrE,gBAAgB,mBAAmB,EAAE;KACtC,CAAC;IACJ,mBAAmB,EAAE,GAAG,EAAE,CACxB,IAAI,QAAQ,CAAC,iEAAiE,EAAE;QAC9E,yDAAyD;QACzD,+BAA+B;KAChC,CAAC;IACJ,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAC9B,IAAI,QAAQ,CAAC,UAAU,IAAI,aAAa,EAAE;QACxC,0CAA0C;QAC1C,gDAAgD;KACjD,CAAC;IACJ,gBAAgB,EAAE,CAAC,IAAY,EAAE,EAAE,CACjC,IAAI,QAAQ,CAAC,aAAa,IAAI,aAAa,EAAE;QAC3C,2CAA2C;QAC3C,kCAAkC;KACnC,CAAC;IACJ,eAAe,EAAE,CAAC,IAAY,EAAE,EAAE,CAChC,IAAI,QAAQ,CAAC,6BAA6B,IAAI,EAAE,EAAE;QAChD,8CAA8C;QAC9C,mDAAmD;KACpD,CAAC;IACJ,WAAW,EAAE,CAAC,IAAY,EAAE,EAAE,CAC5B,IAAI,QAAQ,CAAC,iBAAiB,IAAI,EAAE,EAAE;QACpC,2CAA2C;QAC3C,qDAAqD;KACtD,CAAC;IACJ,YAAY,EAAE,GAAG,EAAE,CACjB,IAAI,QAAQ,CAAC,iDAAiD,EAAE;QAC9D,oDAAoD;QACpD,+CAA+C;KAChD,CAAC;CACL,CAAC;AAEF,MAAM,UAAU,kBAAkB;IAChC,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC,CAAC;QACpF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAY;IACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAwB,EACxB,OAA+B;IAE/B,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,EAAE,CAAC;IACxB,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,OAAO,EAAE,OAAO,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC1D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAwB,EACxB,OAA+B;IAE/B,MAAM,QAAQ,GAAe,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,yBAAyB,EAAE,CAAC;IAC5C,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACtD,CAAC;SAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,eAAe,EAAE,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACzE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YAC9B,IAAI,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7B,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,QAAQ,GAAW,CAAC;IACpE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC;AAED,wDAAwD;AACxD,SAAS,SAAS,CAAC,OAAe,EAAE,OAAgB,EAAE,WAAsB;IAC1E,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;IAEzC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACjD,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACxB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAsB,EAAE,QAAgB;IACxE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,OAAO,0BAA0B,QAAQ,EAAE,CAAC,CAAC,CAAC;IAChF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"port-assignment.d.ts","sourceRoot":"","sources":["../../src/utils/port-assignment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"port-assignment.d.ts","sourceRoot":"","sources":["../../src/utils/port-assignment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAuBxF,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC,CA0B9F;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAAW,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,kBAAkB,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAQzE;AAcD,wBAAgB,UAAU,CACxB,YAAY,EAAE,0BAA0B,EACxC,iBAAiB,EAAE,kBAAkB,EAAE,GACtC,MAAM,CAcR"}
|
|
@@ -10,6 +10,12 @@ function isPortAvailable(port) {
|
|
|
10
10
|
server.on("error", () => {
|
|
11
11
|
resolve(true);
|
|
12
12
|
});
|
|
13
|
+
// A connect that neither accepts nor refuses means something is holding
|
|
14
|
+
// the port (e.g. a firewall drop) - treat it as taken rather than wait.
|
|
15
|
+
server.setTimeout(1000, () => {
|
|
16
|
+
server.destroy();
|
|
17
|
+
resolve(false);
|
|
18
|
+
});
|
|
13
19
|
});
|
|
14
20
|
}
|
|
15
21
|
export async function checkPortStatus(port) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"port-assignment.js","sourceRoot":"","sources":["../../src/utils/port-assignment.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"port-assignment.js","sourceRoot":"","sources":["../../src/utils/port-assignment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-features.d.ts","sourceRoot":"","sources":["../../src/utils/resource-features.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;CAC5C;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"resource-features.d.ts","sourceRoot":"","sources":["../../src/utils/resource-features.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;CAC5C;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CA+J7D,CAAC;AAEF;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,EAAE,CAejF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,YAAY,GAAG,eAAe,EAAE,CAErF"}
|
|
@@ -134,6 +134,18 @@ export const RESOURCE_FEATURES = {
|
|
|
134
134
|
generator_file: "engine/topologies/tilt/generators/vite/helpers.star, engine/topologies/tilt/generators/typescript/backend_tsconfig.star",
|
|
135
135
|
output_file: ".autogenerated/vite.config.*.ts, .autogenerated/tsconfig.*.json",
|
|
136
136
|
},
|
|
137
|
+
sablier: {
|
|
138
|
+
name: "sablier",
|
|
139
|
+
description: "On-demand scaling: stop this resource when idle, wake it on the next request via a " +
|
|
140
|
+
"`sablier: {enable: true}` manifest block (not the featuresEnabled array) " +
|
|
141
|
+
"(Premium - requires TDK_LICENSE_KEY; free tier writes a disabled stub; see " +
|
|
142
|
+
"hasSablierLicense() in extension-fetch.ts KNOWN_RESOURCES/PREMIUM_PATH_MAP)",
|
|
143
|
+
applies_to: ["backend", "frontend"],
|
|
144
|
+
enabled_by_default: false,
|
|
145
|
+
category: "premium",
|
|
146
|
+
generator_file: "engine/topologies/platform/docker/networking/sablier_container_cycle.star (stub; real generator in tdk-cli-extensions/premium/networking/), engine/topologies/platform/docker/networking/traefik.star",
|
|
147
|
+
output_file: "(Traefik + Sablier Docker labels on the resource's own compose service, no autogenerated file)",
|
|
148
|
+
},
|
|
137
149
|
};
|
|
138
150
|
/**
|
|
139
151
|
* Get default features for a resource type
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-features.js","sourceRoot":"","sources":["../../src/utils/resource-features.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,MAAM,CAAC,MAAM,iBAAiB,GAAoC;IAChE,+EAA+E;IAC/E,sBAAsB;IACtB,+EAA+E;IAC/E,YAAY,EAAE;QACZ,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,+EAA+E;QAC5F,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,kBAAkB,EAAE,IAAI;QACxB,cAAc,EAAE,wEAAwE;QACxF,WAAW,EAAE,8BAA8B;KAC5C;IAED,YAAY,EAAE;QACZ,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,yDAAyD;QACtE,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,kBAAkB,EAAE,IAAI;QACxB,cAAc,EAAE,wEAAwE;QACxF,WAAW,EAAE,uBAAuB;KACrC;IAED,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,4CAA4C;QACzD,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,kBAAkB,EAAE,IAAI;QACxB,cAAc,EAAE,wEAAwE;QACxF,WAAW,EAAE,6BAA6B;KAC3C;IAED,+EAA+E;IAC/E,qBAAqB;IACrB,+EAA+E;IAC/E,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,wEAAwE;QACrF,UAAU,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC;QAC7C,kBAAkB,EAAE,IAAI;QACxB,cAAc,EAAE,iEAAiE;QACjF,WAAW,EAAE,+CAA+C;KAC7D;IAED,+EAA+E;IAC/E,0EAA0E;IAC1E,+EAA+E;IAC/E,mFAAmF;IACnF,kCAAkC;IAElC,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,oDAAoD;QACjE,UAAU,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC;QAC1C,kBAAkB,EAAE,IAAI,EAAE,iBAAiB;QAC3C,cAAc,EAAE,oDAAoD;QACpE,WAAW,EAAE,iCAAiC;KAC/C;IAED,QAAQ,EAAE;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,sDAAsD;QACnE,UAAU,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC;QAChE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB;QAC3C,cAAc,EAAE,+CAA+C;QAC/D,WAAW,EAAE,gCAAgC;KAC9C;IAED,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,sDAAsD;QACnE,UAAU,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC;QAChE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB;QAC3C,cAAc,EAAE,iFAAiF;QACjG,WAAW,EAAE,+BAA+B;KAC7C;IAED,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,qDAAqD;QAClE,UAAU,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC;QAChE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB;QAC3C,cAAc,EAAE,8CAA8C;QAC9D,WAAW,EAAE,wBAAwB;KACtC;IAED,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,kDAAkD;QAC/D,UAAU,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC;QAChE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB;QAC3C,cAAc,EAAE,8CAA8C;QAC9D,WAAW,EAAE,6BAA6B;KAC3C;IAED,KAAK,EAAE;QACL,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,6DAA6D;QAC1E,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,kBAAkB,EAAE,IAAI,EAAE,iBAAiB;QAC3C,cAAc,EAAE,mDAAmD;QACnE,WAAW,EAAE,2BAA2B;KACzC;IAED,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,wCAAwC;QACrD,UAAU,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC;QAC7C,kBAAkB,EAAE,IAAI,EAAE,iBAAiB;QAC3C,cAAc,EAAE,mEAAmE;QACnF,WAAW,EAAE,sBAAsB;KACpC;IAED,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,iEAAiE;QAC9E,UAAU,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;QACnC,kBAAkB,EAAE,KAAK,EAAE,yCAAyC;QACpE,cAAc,EAAE,qEAAqE;QACrF,WAAW,EAAE,qCAAqC;KACnD;IAED,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,WAAW,EACT,6IAA6I;QAC/I,UAAU,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC;QAChE,kBAAkB,EAAE,IAAI,EAAE,kDAAkD;QAC5E,cAAc,EAAE,kDAAkD;QAClE,WAAW,EAAE,0BAA0B;KACxC;IAED,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,WAAW,EACT,yFAAyF;YACzF,qFAAqF;YACrF,iFAAiF;QACnF,UAAU,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC;QAC7C,kBAAkB,EAAE,KAAK;QACzB,QAAQ,EAAE,SAAS;QACnB,cAAc,EACZ,yHAAyH;QAC3H,WAAW,EAAE,iEAAiE;KAC/E;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iCAAiC,CAAC,OAAqB;IACrE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC/D,IACE,OAAO,CAAC,kBAAkB;YAC1B,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;YACpC,kEAAkE;YAClE,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EACjE,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAqB;IAChE,OAAO,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACxF,CAAC"}
|
|
1
|
+
{"version":3,"file":"resource-features.js","sourceRoot":"","sources":["../../src/utils/resource-features.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/tilt.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export declare function runTilt(command: string, args?: string[], options?: {
|
|
|
3
3
|
verbose?: boolean;
|
|
4
4
|
quiet?: boolean;
|
|
5
5
|
inheritStdio?: boolean;
|
|
6
|
+
timeoutMs?: number;
|
|
6
7
|
}): Promise<TiltCommandResult>;
|
|
7
8
|
export declare function isTiltAvailable(): Promise<boolean>;
|
|
8
9
|
export declare function getTiltfilePath(): string;
|
package/dist/utils/tilt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tilt.d.ts","sourceRoot":"","sources":["../../src/utils/tilt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"tilt.d.ts","sourceRoot":"","sources":["../../src/utils/tilt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAG3D,wBAAgB,OAAO,CACrB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,OAAO,CAAC,iBAAiB,CAAC,CAuC5B;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAQxD;AAED,wBAAgB,eAAe,IAAI,MAAM,CAOxC;AAOD,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACZ,GACL,MAAM,EAAE,CAcV;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,EAAE,CAS7E"}
|
package/dist/utils/tilt.js
CHANGED
|
@@ -10,6 +10,7 @@ export function runTilt(command, args = [], options = {}) {
|
|
|
10
10
|
const child = spawn("tilt", tiltArgs, {
|
|
11
11
|
stdio: options.inheritStdio ? "inherit" : "pipe",
|
|
12
12
|
shell: false,
|
|
13
|
+
timeout: options.timeoutMs,
|
|
13
14
|
});
|
|
14
15
|
let stdout = "";
|
|
15
16
|
let stderr = "";
|
|
@@ -35,7 +36,7 @@ export function runTilt(command, args = [], options = {}) {
|
|
|
35
36
|
}
|
|
36
37
|
export async function isTiltAvailable() {
|
|
37
38
|
try {
|
|
38
|
-
const result = await runTilt("version", [], { inheritStdio: false });
|
|
39
|
+
const result = await runTilt("version", [], { inheritStdio: false, timeoutMs: 10_000 });
|
|
39
40
|
return result.exitCode === 0;
|
|
40
41
|
}
|
|
41
42
|
catch {
|
package/dist/utils/tilt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tilt.js","sourceRoot":"","sources":["../../src/utils/tilt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,UAAU,OAAO,CACrB,OAAe,EACf,IAAI,GAAa,EAAE,EACnB,OAAO,
|
|
1
|
+
{"version":3,"file":"tilt.js","sourceRoot":"","sources":["../../src/utils/tilt.ts"],"names":[],"mappings":"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"}
|
|
@@ -265,6 +265,26 @@
|
|
|
265
265
|
],
|
|
266
266
|
"type": "string"
|
|
267
267
|
},
|
|
268
|
+
"sablier": {
|
|
269
|
+
"description": "On-demand scaling: stop this container when idle, wake it on the next request.\nNot recommended for databases or other stateful resources with in-flight writes.\n(Premium - requires TDK_LICENSE_KEY; see hasSablierLicense() in extension-fetch.ts)",
|
|
270
|
+
"properties": {
|
|
271
|
+
"enable": {
|
|
272
|
+
"default": false,
|
|
273
|
+
"description": "Scale this resource to zero when idle",
|
|
274
|
+
"type": "boolean"
|
|
275
|
+
},
|
|
276
|
+
"group": {
|
|
277
|
+
"description": "Resources sharing a group wake and sleep together. Defaults to `stack`.",
|
|
278
|
+
"type": "string"
|
|
279
|
+
},
|
|
280
|
+
"sessionDuration": {
|
|
281
|
+
"default": "10m",
|
|
282
|
+
"description": "How long the resource stays up after its last request (Go duration, e.g. \"10m\", \"1h\").",
|
|
283
|
+
"type": "string"
|
|
284
|
+
}
|
|
285
|
+
},
|
|
286
|
+
"type": "object"
|
|
287
|
+
},
|
|
268
288
|
"syncs": {
|
|
269
289
|
"description": "Directories to sync for hot-reload.\nAuto-computed if not specified:\nâĸ backend: ['src', 'prisma']\nâĸ frontend: ['src', 'public']",
|
|
270
290
|
"items": {
|
|
@@ -22,6 +22,8 @@ services:
|
|
|
22
22
|
image: traefik:v3.6.8
|
|
23
23
|
container_name: {name}_traefik
|
|
24
24
|
restart: unless-stopped
|
|
25
|
+
depends_on:
|
|
26
|
+
- sablier
|
|
25
27
|
command:
|
|
26
28
|
- "--api.insecure=true"
|
|
27
29
|
- "--ping=true"
|
|
@@ -32,6 +34,11 @@ services:
|
|
|
32
34
|
- "--entrypoints.web.address=:80"
|
|
33
35
|
- "--entrypoints.websecure.address=:443"
|
|
34
36
|
- "--log.level=INFO"
|
|
37
|
+
# On-demand scaling: routes to stopped containers (opt-in via a
|
|
38
|
+
# resource's `sablier:` manifest block), keeps idle services from
|
|
39
|
+
# burning memory. Requires Traefik >=3.6 (see allownonrunning below).
|
|
40
|
+
- "--experimental.plugins.sablier.moduleName=github.com/sablierapp/sablier-traefik-plugin"
|
|
41
|
+
- "--experimental.plugins.sablier.version=v1.3.1"
|
|
35
42
|
ports:
|
|
36
43
|
- "80:80"
|
|
37
44
|
- "8080:8080"
|
|
@@ -46,6 +53,19 @@ services:
|
|
|
46
53
|
retries: 6
|
|
47
54
|
start_period: 10s
|
|
48
55
|
|
|
56
|
+
sablier:
|
|
57
|
+
image: sablierapp/sablier:1.18.0
|
|
58
|
+
container_name: {name}_sablier
|
|
59
|
+
restart: unless-stopped
|
|
60
|
+
command:
|
|
61
|
+
- "start"
|
|
62
|
+
- "--provider.name=docker"
|
|
63
|
+
volumes:
|
|
64
|
+
# Read-write: Sablier stops/starts containers via the Docker API.
|
|
65
|
+
- /var/run/docker.sock:/var/run/docker.sock
|
|
66
|
+
networks:
|
|
67
|
+
- traefik-public
|
|
68
|
+
|
|
49
69
|
networks:
|
|
50
70
|
traefik-public:
|
|
51
71
|
name: {network}
|
|
@@ -1,27 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# On-demand scaling: Sablier + Traefik (free-tier stub)
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# Path: engine/topologies/platform/docker/networking/sablier_container_cycle.star
|
|
5
|
+
# =============================================================================
|
|
6
|
+
# The real generator (Sablier + Traefik label wiring that stops idle
|
|
7
|
+
# containers and wakes them on the next request) is part of a paid TDK
|
|
8
|
+
# license. When a valid license grants the "sablier" resource,
|
|
9
|
+
# cli/src/generator/template-engine.ts (vendorTdkExtension) overwrites this
|
|
10
|
+
# file with the licensed version fetched via extension-fetch.ts before Tilt
|
|
11
|
+
# loads it. Same function signatures either way, so nothing else in the
|
|
12
|
+
# generator pipeline changes -- every call site just gets "disabled" back
|
|
13
|
+
# for a manifest's `sablier` block until then.
|
|
14
|
+
# =============================================================================
|
|
3
15
|
|
|
4
|
-
When a workload opts in via a `sablier` block, it is fronted by the file-provider
|
|
5
|
-
middleware `sablier-<group>@file` (defined in the platform proxy dynamic config).
|
|
6
|
-
The leading comma lets callers append the suffix to an existing middlewares list.
|
|
7
|
-
"""
|
|
8
|
-
sablier_cfg = manifest.get('sablier', {}) if manifest else {}
|
|
9
|
-
if not sablier_cfg.get('enable', False):
|
|
10
|
-
return "", "", False
|
|
11
|
-
group = sablier_cfg.get('group', manifest.get('stack', '') if manifest else '')
|
|
12
|
-
if not group:
|
|
13
|
-
return ",sablier-base@file", "", True
|
|
14
|
-
return ",sablier-" + group + "@file", group, True
|
|
15
16
|
|
|
17
|
+
def _sablier_config(_manifest):
|
|
18
|
+
"""Free-tier stub - see module header. Always disabled."""
|
|
19
|
+
return False, "", ""
|
|
16
20
|
|
|
17
|
-
def _sablier_container_labels(group, indent):
|
|
18
|
-
"""Container labels that let Sablier discover, wake, and stop this workload.
|
|
19
21
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
""
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return "
|
|
22
|
+
def _sablier_middleware_suffix(_manifest, _res_name):
|
|
23
|
+
"""Free-tier stub - see module header. Always disabled."""
|
|
24
|
+
return "", False
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def _sablier_container_labels(_manifest, _res_name, _indent):
|
|
28
|
+
"""Free-tier stub - see module header. No labels to add."""
|
|
29
|
+
return ""
|
|
@@ -31,21 +31,10 @@ load("./traefik_helpers.star",
|
|
|
31
31
|
"get_api_path",
|
|
32
32
|
"project_backend_rule",
|
|
33
33
|
)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
def _sablier_middleware_suffix(_):
|
|
40
|
-
# Stub: no Sablier middleware needed
|
|
41
|
-
return "", "", False
|
|
42
|
-
|
|
43
|
-
def _sablier_container_labels(_, __):
|
|
44
|
-
# Stub: no extra labels needed
|
|
45
|
-
return ""
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
# Sablier functions imported from sablier_container_cycle.star
|
|
34
|
+
load("./sablier_container_cycle.star",
|
|
35
|
+
"_sablier_middleware_suffix",
|
|
36
|
+
"_sablier_container_labels",
|
|
37
|
+
)
|
|
49
38
|
|
|
50
39
|
|
|
51
40
|
def get_frontend_traefik_labels(res_name, domain, base_path, port, traefik_host=None, manifest=None):
|
|
@@ -66,7 +55,7 @@ def get_frontend_traefik_labels(res_name, domain, base_path, port, traefik_host=
|
|
|
66
55
|
maintenance_middleware = ",maintenance@file"
|
|
67
56
|
|
|
68
57
|
# On-demand scaling: attach the Sablier middleware when opted in via the manifest
|
|
69
|
-
sablier_middleware,
|
|
58
|
+
sablier_middleware, sablier_enabled = _sablier_middleware_suffix(manifest, res_name)
|
|
70
59
|
|
|
71
60
|
labels = """ - "{traefik_enable_label}"
|
|
72
61
|
- 'traefik.http.routers.{res_name}.rule={frontend_route_rule}'
|
|
@@ -90,7 +79,7 @@ def get_frontend_traefik_labels(res_name, domain, base_path, port, traefik_host=
|
|
|
90
79
|
)
|
|
91
80
|
|
|
92
81
|
if sablier_enabled:
|
|
93
|
-
labels += _sablier_container_labels(
|
|
82
|
+
labels += _sablier_container_labels(manifest, res_name, " ")
|
|
94
83
|
|
|
95
84
|
return labels
|
|
96
85
|
|
|
@@ -118,7 +107,7 @@ def get_backend_traefik_labels(
|
|
|
118
107
|
maintenance_middleware = ",maintenance@file"
|
|
119
108
|
|
|
120
109
|
# On-demand scaling: attach the Sablier middleware when opted in via the manifest
|
|
121
|
-
sablier_middleware,
|
|
110
|
+
sablier_middleware, sablier_enabled = _sablier_middleware_suffix(manifest, resource_entry_name)
|
|
122
111
|
|
|
123
112
|
# Build middleware config only if traefik_path is not empty
|
|
124
113
|
if traefik_path:
|
|
@@ -161,7 +150,7 @@ def get_backend_traefik_labels(
|
|
|
161
150
|
|
|
162
151
|
# Emit Sablier discovery labels so the Sablier container can wake/stop this workload
|
|
163
152
|
if sablier_enabled:
|
|
164
|
-
labels += _sablier_container_labels(
|
|
153
|
+
labels += _sablier_container_labels(manifest, resource_entry_name, " ")
|
|
165
154
|
|
|
166
155
|
# Generate project localhost routing to match `tdk up` URLs:
|
|
167
156
|
# http://api.{project}.localhost/api/{resource-name}
|
|
@@ -204,7 +193,7 @@ def get_backend_traefik_labels(
|
|
|
204
193
|
- "traefik.http.routers.{resource_entry_name}-management.rule=Host(`{api_host}`) && PathPrefix(`{management_path}`)"
|
|
205
194
|
- "traefik.http.routers.{resource_entry_name}-management.entrypoints={project_entrypoints}"
|
|
206
195
|
- "traefik.http.routers.{resource_entry_name}-management.service={traefik_resource_name}"
|
|
207
|
-
- "traefik.http.routers.{resource_entry_name}-management.middlewares={middleware_name}-management"
|
|
196
|
+
- "traefik.http.routers.{resource_entry_name}-management.middlewares={middleware_name}-management{sablier_middleware}"
|
|
208
197
|
- "traefik.http.middlewares.{middleware_name}-management.stripprefix.prefixes={management_path}"
|
|
209
198
|
- "traefik.http.routers.{resource_entry_name}-management.priority={mgmt_priority}"
|
|
210
199
|
""".format(
|
|
@@ -214,6 +203,7 @@ def get_backend_traefik_labels(
|
|
|
214
203
|
management_path=management_path,
|
|
215
204
|
project_entrypoints=project_entrypoints,
|
|
216
205
|
middleware_name=middleware_name,
|
|
206
|
+
sablier_middleware=sablier_middleware,
|
|
217
207
|
mgmt_priority=TRAEFIK_FRONTEND_PRIORITY_BASE + len(management_path),
|
|
218
208
|
)
|
|
219
209
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# đĻ VERDACCIO (NPM Registry) - loader (free-tier stub)
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# Path: engine/topologies/platform/registries/verdaccio_loader.star
|
|
5
|
+
# =============================================================================
|
|
6
|
+
# The real loader (stands up the Verdaccio private npm registry container and
|
|
7
|
+
# wires it into the project's Docker network) is part of a paid TDK license.
|
|
8
|
+
# When a valid license grants the "verdaccio" resource,
|
|
9
|
+
# cli/src/generator/template-engine.ts (vendorTdkExtension) overwrites this
|
|
10
|
+
# file with the licensed version fetched via extension-fetch.ts before Tilt
|
|
11
|
+
# loads it. Same function signature either way, so nothing else in the
|
|
12
|
+
# loader pipeline changes.
|
|
13
|
+
# =============================================================================
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def load_verdaccio(_should_enable, _root_prefix="", _env_file=None):
|
|
17
|
+
"""Free-tier stub - see module header. Always skipped."""
|
|
18
|
+
print("âšī¸ Verdaccio skipped â requires a TDK Premium license (run `tdk upgrade`)")
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
# === INLINED CONSTANTS for pure extension loading ===
|
|
10
10
|
VALID_STACKS = () # Stacks are project-specific, discovered dynamically
|
|
11
|
-
VALID_FEATURES = "api-client", "env-config", "api-index", "prisma", "ddd", "nats", "redis", "infisical", "vitest", "traefik", "websocket", "graphql", "grpc", "vite-node", "maintenance"
|
|
11
|
+
VALID_FEATURES = "api-client", "env-config", "api-index", "prisma", "ddd", "nats", "redis", "infisical", "vitest", "traefik", "websocket", "graphql", "grpc", "vite-node", "maintenance", "sablier"
|
|
12
12
|
PORT_RANGES = {"frontend": {"min": 3000, "max": 5999}, "backend": {"min": 4000, "max": 5999}, "worker": {"min": 6000, "max": 6999}, "migrator": {"min": 7000, "max": 7999}, "sdk": {"min": 3000, "max": 9999}, "library": {"min": 3000, "max": 9999}}
|
|
13
13
|
RUNTIME = "bun"
|
|
14
14
|
TRAEFIK_CONFIG = {"entrypoint": "web", "network": "traefik-public", "default_host": "localhost", "default_port": 8080, "tls_enabled": False, "entrypoints": ["web"], "middlewares": [], "tls": {"enabled": False}, "healthcheck_path": "/health", "healthcheck_interval": "10s", "healthcheck_timeout": "5s", "frontend_priority_base": 100}
|
|
@@ -252,6 +252,34 @@ MANIFEST_SCHEMA = {
|
|
|
252
252
|
},
|
|
253
253
|
'description': 'Traefik reverse proxy configuration',
|
|
254
254
|
},
|
|
255
|
+
|
|
256
|
+
# Sablier Configuration (on-demand start/stop for idle resources)
|
|
257
|
+
'sablier': {
|
|
258
|
+
'type': 'dict',
|
|
259
|
+
'required': False,
|
|
260
|
+
'schema': {
|
|
261
|
+
'enable': {
|
|
262
|
+
'type': 'boolean',
|
|
263
|
+
'required': False,
|
|
264
|
+
'default': False,
|
|
265
|
+
'description': 'Scale this resource to zero when idle; Sablier wakes it on the next request',
|
|
266
|
+
},
|
|
267
|
+
'group': {
|
|
268
|
+
'type': 'string',
|
|
269
|
+
'required': False,
|
|
270
|
+
'description': 'Resources sharing a group wake and sleep together (defaults to `stack`)',
|
|
271
|
+
'example': 'restaurant',
|
|
272
|
+
},
|
|
273
|
+
'sessionDuration': {
|
|
274
|
+
'type': 'string',
|
|
275
|
+
'required': False,
|
|
276
|
+
'default': '10m',
|
|
277
|
+
'description': 'How long the resource stays up after its last request, as a Go duration (e.g. "10m", "1h")',
|
|
278
|
+
'example': '10m',
|
|
279
|
+
},
|
|
280
|
+
},
|
|
281
|
+
'description': 'On-demand scaling via Sablier: stop idle containers, wake them on the next request. Not recommended for stateful resources (databases) with in-flight writes. (Premium - requires TDK_LICENSE_KEY; see hasSablierLicense() in extension-fetch.ts)',
|
|
282
|
+
},
|
|
255
283
|
}
|
|
256
284
|
|
|
257
285
|
# Cross-field validation constraints
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
load("../../platform/docker/constants.star", "PlatformDockerConstants")
|
|
22
22
|
load("../../platform/docker/compose/traefik_standalone.star", "generate_standalone_traefik_compose")
|
|
23
|
+
load("../../platform/registries/verdaccio_loader.star", "load_verdaccio")
|
|
23
24
|
|
|
24
25
|
# =============================================================================
|
|
25
26
|
# đī¸ DATABASE MANAGEMENT
|
|
@@ -129,38 +130,11 @@ def _load_database_management(should_enable, root_prefix="", env_file=None, writ
|
|
|
129
130
|
# =============================================================================
|
|
130
131
|
# đĻ VERDACCIO (NPM Registry)
|
|
131
132
|
# =============================================================================
|
|
133
|
+
# Loader lives in ../../platform/registries/verdaccio_loader.star (a free-tier
|
|
134
|
+
# stub in this public repo; the paid CLI overlay swaps it for the real loader
|
|
135
|
+
# â see that module's header comment).
|
|
132
136
|
|
|
133
|
-
|
|
134
|
-
"""Load Verdaccio private npm registry (premium feature â requires TDK_LICENSE_KEY)."""
|
|
135
|
-
# Verdaccio is a premium feature. Skip entirely when no license key is set.
|
|
136
|
-
if not os.environ.get("TDK_LICENSE_KEY", ""):
|
|
137
|
-
print("âšī¸ Verdaccio skipped â TDK_LICENSE_KEY not set (premium feature)")
|
|
138
|
-
return
|
|
139
|
-
if not should_enable(PlatformDockerConstants.VERDACCIO_RESOURCE_NAME):
|
|
140
|
-
print("DEBUG INFRA: Verdaccio not enabled")
|
|
141
|
-
return
|
|
142
|
-
|
|
143
|
-
# Use absolute path for docker-compose to ensure correct working directory
|
|
144
|
-
if root_prefix:
|
|
145
|
-
compose_file = root_prefix + 'docker-compose.verdaccio.yml'
|
|
146
|
-
else:
|
|
147
|
-
# Use project root from environment or relative path
|
|
148
|
-
project_root = os.environ.get('TDK_PROJECT_ROOT', '.')
|
|
149
|
-
compose_file = project_root + '/docker-compose.verdaccio.yml'
|
|
150
|
-
if not _file_exists(compose_file):
|
|
151
|
-
print("DEBUG INFRA: Skipping Verdaccio (compose file not found)")
|
|
152
|
-
return
|
|
153
|
-
print("DEBUG INFRA: Loading Verdaccio from {} with env_file={}".format(compose_file, env_file))
|
|
154
|
-
_docker_compose(compose_file, env_file)
|
|
155
|
-
print("DEBUG INFRA: Calling dc_resource for verdaccio")
|
|
156
|
-
dc_resource(PlatformDockerConstants.VERDACCIO_RESOURCE_NAME, labels=['infra.tools', 'registry'], resource_deps=['init-networks'], auto_init=True)
|
|
157
|
-
print("DEBUG INFRA: dc_resource for verdaccio completed")
|
|
158
|
-
local_resource(PlatformDockerConstants.VERDACCIO_CONNECT_NETWORK_RESOURCE,
|
|
159
|
-
cmd='docker network connect ' + PlatformDockerConstants.NETWORK_BACKEND + ' ' + PlatformDockerConstants.VERDACCIO_CONTAINER_NAME + ' 2>/dev/null || true',
|
|
160
|
-
labels=['infra.tools', 'registry'],
|
|
161
|
-
resource_deps=[PlatformDockerConstants.VERDACCIO_RESOURCE_NAME, 'init-networks'],
|
|
162
|
-
auto_init=True
|
|
163
|
-
)
|
|
137
|
+
_load_verdaccio = load_verdaccio
|
|
164
138
|
|
|
165
139
|
|
|
166
140
|
# =============================================================================
|