@platforma-sdk/bootstrap 5.2.41 → 5.2.42
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 +10 -2
- package/assets/compose-backend.yaml +2 -2
- package/bin/run.js +3 -3
- package/dist/block.cjs +36 -31
- package/dist/block.cjs.map +1 -1
- package/dist/block.d.ts +2 -2
- package/dist/block.d.ts.map +1 -1
- package/dist/block.js +36 -31
- package/dist/block.js.map +1 -1
- package/dist/cmd-opts.cjs +74 -74
- package/dist/cmd-opts.cjs.map +1 -1
- package/dist/cmd-opts.d.ts +23 -23
- package/dist/cmd-opts.d.ts.map +1 -1
- package/dist/cmd-opts.js +74 -74
- package/dist/cmd-opts.js.map +1 -1
- package/dist/commands/create-block.cjs +3 -3
- package/dist/commands/create-block.cjs.map +1 -1
- package/dist/commands/create-block.d.ts +2 -2
- package/dist/commands/create-block.d.ts.map +1 -1
- package/dist/commands/create-block.js +3 -3
- package/dist/commands/create-block.js.map +1 -1
- package/dist/commands/reset.cjs +3 -3
- package/dist/commands/reset.cjs.map +1 -1
- package/dist/commands/reset.d.ts +2 -2
- package/dist/commands/reset.d.ts.map +1 -1
- package/dist/commands/reset.js +3 -3
- package/dist/commands/reset.js.map +1 -1
- package/dist/commands/start/docker/s3.cjs +18 -18
- package/dist/commands/start/docker/s3.cjs.map +1 -1
- package/dist/commands/start/docker/s3.d.ts +15 -15
- package/dist/commands/start/docker/s3.d.ts.map +1 -1
- package/dist/commands/start/docker/s3.js +18 -18
- package/dist/commands/start/docker/s3.js.map +1 -1
- package/dist/commands/start/docker.cjs +18 -18
- package/dist/commands/start/docker.cjs.map +1 -1
- package/dist/commands/start/docker.d.ts +16 -16
- package/dist/commands/start/docker.d.ts.map +1 -1
- package/dist/commands/start/docker.js +18 -18
- package/dist/commands/start/docker.js.map +1 -1
- package/dist/commands/start/local/s3.cjs +36 -34
- package/dist/commands/start/local/s3.cjs.map +1 -1
- package/dist/commands/start/local/s3.d.ts +18 -18
- package/dist/commands/start/local/s3.d.ts.map +1 -1
- package/dist/commands/start/local/s3.js +36 -34
- package/dist/commands/start/local/s3.js.map +1 -1
- package/dist/commands/start/local.cjs +32 -30
- package/dist/commands/start/local.cjs.map +1 -1
- package/dist/commands/start/local.d.ts +16 -16
- package/dist/commands/start/local.d.ts.map +1 -1
- package/dist/commands/start/local.js +32 -30
- package/dist/commands/start/local.js.map +1 -1
- package/dist/commands/start.cjs +3 -3
- package/dist/commands/start.cjs.map +1 -1
- package/dist/commands/start.d.ts +2 -2
- package/dist/commands/start.js +3 -3
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/stop.cjs +4 -4
- package/dist/commands/stop.cjs.map +1 -1
- package/dist/commands/stop.d.ts +2 -2
- package/dist/commands/stop.js +4 -4
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/svc/create/arg-parser.cjs +13 -13
- package/dist/commands/svc/create/arg-parser.cjs.map +1 -1
- package/dist/commands/svc/create/arg-parser.d.ts +1 -1
- package/dist/commands/svc/create/arg-parser.js +13 -13
- package/dist/commands/svc/create/arg-parser.js.map +1 -1
- package/dist/commands/svc/create/docker/s3.cjs +27 -27
- package/dist/commands/svc/create/docker/s3.cjs.map +1 -1
- package/dist/commands/svc/create/docker/s3.d.ts +15 -15
- package/dist/commands/svc/create/docker/s3.d.ts.map +1 -1
- package/dist/commands/svc/create/docker/s3.js +27 -27
- package/dist/commands/svc/create/docker/s3.js.map +1 -1
- package/dist/commands/svc/create/docker.cjs +35 -35
- package/dist/commands/svc/create/docker.cjs.map +1 -1
- package/dist/commands/svc/create/docker.d.ts +16 -16
- package/dist/commands/svc/create/docker.js +35 -35
- package/dist/commands/svc/create/docker.js.map +1 -1
- package/dist/commands/svc/create/local/s3.cjs +37 -35
- package/dist/commands/svc/create/local/s3.cjs.map +1 -1
- package/dist/commands/svc/create/local/s3.d.ts +18 -18
- package/dist/commands/svc/create/local/s3.d.ts.map +1 -1
- package/dist/commands/svc/create/local/s3.js +37 -35
- package/dist/commands/svc/create/local/s3.js.map +1 -1
- package/dist/commands/svc/create/local.cjs +35 -35
- package/dist/commands/svc/create/local.cjs.map +1 -1
- package/dist/commands/svc/create/local.d.ts +16 -16
- package/dist/commands/svc/create/local.d.ts.map +1 -1
- package/dist/commands/svc/create/local.js +35 -35
- package/dist/commands/svc/create/local.js.map +1 -1
- package/dist/commands/svc/delete.cjs +4 -4
- package/dist/commands/svc/delete.cjs.map +1 -1
- package/dist/commands/svc/delete.d.ts +2 -2
- package/dist/commands/svc/delete.js +4 -4
- package/dist/commands/svc/delete.js.map +1 -1
- package/dist/commands/svc/down.cjs +3 -3
- package/dist/commands/svc/down.cjs.map +1 -1
- package/dist/commands/svc/down.d.ts +2 -2
- package/dist/commands/svc/down.js +3 -3
- package/dist/commands/svc/down.js.map +1 -1
- package/dist/commands/svc/list.cjs +5 -5
- package/dist/commands/svc/list.cjs.map +1 -1
- package/dist/commands/svc/list.d.ts +1 -1
- package/dist/commands/svc/list.d.ts.map +1 -1
- package/dist/commands/svc/list.js +5 -5
- package/dist/commands/svc/list.js.map +1 -1
- package/dist/commands/svc/up.cjs +5 -5
- package/dist/commands/svc/up.cjs.map +1 -1
- package/dist/commands/svc/up.d.ts +2 -2
- package/dist/commands/svc/up.d.ts.map +1 -1
- package/dist/commands/svc/up.js +5 -5
- package/dist/commands/svc/up.js.map +1 -1
- package/dist/core.cjs +261 -231
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +10 -10
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +261 -231
- package/dist/core.js.map +1 -1
- package/dist/index.cjs +16 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +29 -29
- package/dist/index.js +16 -16
- package/dist/index.js.map +1 -1
- package/dist/package.cjs +2 -2
- package/dist/package.cjs.map +1 -1
- package/dist/package.js +2 -2
- package/dist/package.js.map +1 -1
- package/dist/platforma.cjs +24 -24
- package/dist/platforma.cjs.map +1 -1
- package/dist/platforma.d.ts +1 -1
- package/dist/platforma.d.ts.map +1 -1
- package/dist/platforma.js +24 -24
- package/dist/platforma.js.map +1 -1
- package/dist/run.cjs +6 -6
- package/dist/run.cjs.map +1 -1
- package/dist/run.d.ts +3 -3
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +6 -6
- package/dist/run.js.map +1 -1
- package/dist/state.cjs +16 -14
- package/dist/state.cjs.map +1 -1
- package/dist/state.d.ts +5 -5
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +16 -14
- package/dist/state.js.map +1 -1
- package/dist/templates/compose.cjs +2 -2
- package/dist/templates/compose.cjs.map +1 -1
- package/dist/templates/compose.d.ts.map +1 -1
- package/dist/templates/compose.js +2 -2
- package/dist/templates/compose.js.map +1 -1
- package/dist/templates/pl-config.cjs +49 -49
- package/dist/templates/pl-config.cjs.map +1 -1
- package/dist/templates/pl-config.d.ts +2 -2
- package/dist/templates/pl-config.d.ts.map +1 -1
- package/dist/templates/pl-config.js +49 -49
- package/dist/templates/pl-config.js.map +1 -1
- package/dist/templates/types.cjs +12 -12
- package/dist/templates/types.cjs.map +1 -1
- package/dist/templates/types.d.ts +6 -6
- package/dist/templates/types.d.ts.map +1 -1
- package/dist/templates/types.js +12 -12
- package/dist/templates/types.js.map +1 -1
- package/dist/util.cjs +19 -17
- package/dist/util.cjs.map +1 -1
- package/dist/util.d.ts +2 -2
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +19 -17
- package/dist/util.js.map +1 -1
- package/package.json +23 -22
package/dist/util.cjs
CHANGED
|
@@ -10,30 +10,30 @@ var readlineSync = require('readline-sync');
|
|
|
10
10
|
|
|
11
11
|
function askYN(prompt) {
|
|
12
12
|
const answer = readlineSync.question(`${prompt} [y/N] `);
|
|
13
|
-
return answer.toLowerCase() ===
|
|
13
|
+
return answer.toLowerCase() === "y";
|
|
14
14
|
}
|
|
15
15
|
function assertNever(_n) {
|
|
16
|
-
throw new Error(
|
|
16
|
+
throw new Error("this should never happen");
|
|
17
17
|
}
|
|
18
|
-
function createLogger(level =
|
|
18
|
+
function createLogger(level = "debug") {
|
|
19
19
|
return winston.createLogger({
|
|
20
20
|
level: level,
|
|
21
21
|
format: winston.format.printf(({ level, message }) => {
|
|
22
|
-
const indent =
|
|
23
|
-
if (typeof message !==
|
|
22
|
+
const indent = " ".repeat(level.length + 2); // For ': ' after the level
|
|
23
|
+
if (typeof message !== "string") {
|
|
24
24
|
const messageJson = JSON.stringify(message);
|
|
25
25
|
throw Error(`logger message ${messageJson} is not a string`);
|
|
26
26
|
}
|
|
27
27
|
const indentedMessage = message
|
|
28
|
-
.split(
|
|
28
|
+
.split("\n")
|
|
29
29
|
.map((line, index) => (index === 0 ? line : indent + line))
|
|
30
|
-
.join(
|
|
30
|
+
.join("\n");
|
|
31
31
|
const colorize = (l) => winston.format.colorize().colorize(l, l);
|
|
32
32
|
return `${colorize(level)}: ${indentedMessage}`;
|
|
33
33
|
}),
|
|
34
34
|
transports: [
|
|
35
35
|
new winston.transports.Console({
|
|
36
|
-
stderrLevels: [
|
|
36
|
+
stderrLevels: ["error", "warn", "info", "debug"],
|
|
37
37
|
handleExceptions: true,
|
|
38
38
|
}),
|
|
39
39
|
],
|
|
@@ -41,11 +41,11 @@ function createLogger(level = 'debug') {
|
|
|
41
41
|
}
|
|
42
42
|
function randomStr(len) {
|
|
43
43
|
return node_crypto.randomBytes(Math.ceil(len / 2))
|
|
44
|
-
.toString(
|
|
44
|
+
.toString("hex")
|
|
45
45
|
.slice(0, len);
|
|
46
46
|
}
|
|
47
47
|
function resolveTilde(p) {
|
|
48
|
-
if (p.startsWith(
|
|
48
|
+
if (p.startsWith("~")) {
|
|
49
49
|
return path.join(os.homedir(), p.slice(1));
|
|
50
50
|
}
|
|
51
51
|
return p;
|
|
@@ -61,23 +61,25 @@ function ensureDir(p, options) {
|
|
|
61
61
|
}
|
|
62
62
|
function getProcessName(pid) {
|
|
63
63
|
try {
|
|
64
|
-
if (os.platform() !==
|
|
65
|
-
return node_child_process.execSync(`ps -p ${pid} -o comm=`, { encoding:
|
|
64
|
+
if (os.platform() !== "win32") {
|
|
65
|
+
return node_child_process.execSync(`ps -p ${pid} -o comm=`, { encoding: "utf8" }).trim();
|
|
66
66
|
}
|
|
67
67
|
const command = `wmic process where processid=${pid} get Caption`;
|
|
68
|
-
const lines = node_child_process.execSync(command, { encoding:
|
|
68
|
+
const lines = node_child_process.execSync(command, { encoding: "utf8" }).split("\n");
|
|
69
69
|
// lines = ["Caption:", "<process name>"]
|
|
70
70
|
if (lines.length <= 1) {
|
|
71
|
-
return
|
|
71
|
+
return "";
|
|
72
72
|
}
|
|
73
73
|
return lines[1].trim();
|
|
74
74
|
}
|
|
75
|
-
catch
|
|
76
|
-
return
|
|
75
|
+
catch {
|
|
76
|
+
return "";
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
function getDockerComposeInfo(serviceName) {
|
|
80
|
-
const result = node_child_process.execSync(`docker compose ls --filter name=${serviceName} --format json`, {
|
|
80
|
+
const result = node_child_process.execSync(`docker compose ls --filter name=${serviceName} --format json`, {
|
|
81
|
+
encoding: "utf8",
|
|
82
|
+
}).trim();
|
|
81
83
|
const report = JSON.parse(result);
|
|
82
84
|
for (const st of report) {
|
|
83
85
|
if (st.Name === serviceName) {
|
package/dist/util.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.cjs","sources":["../src/util.ts"],"sourcesContent":["import os from
|
|
1
|
+
{"version":3,"file":"util.cjs","sources":["../src/util.ts"],"sourcesContent":["import os from \"node:os\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { execSync } from \"node:child_process\";\n\nimport winston from \"winston\";\nimport { randomBytes } from \"node:crypto\";\nimport readlineSync from \"readline-sync\";\n\nexport function askYN(prompt: string): boolean {\n const answer = readlineSync.question(`${prompt} [y/N] `);\n return answer.toLowerCase() === \"y\";\n}\n\nexport function assertNever(_n: never) {\n throw new Error(\"this should never happen\");\n}\n\nexport function createLogger(level: string = \"debug\"): winston.Logger {\n return winston.createLogger({\n level: level,\n\n format: winston.format.printf(({ level, message }) => {\n const indent = \" \".repeat(level.length + 2); // For ': ' after the level\n if (typeof message !== \"string\") {\n const messageJson = JSON.stringify(message);\n throw Error(`logger message ${messageJson} is not a string`);\n }\n const indentedMessage = message\n .split(\"\\n\")\n .map((line: string, index: number) => (index === 0 ? line : indent + line))\n .join(\"\\n\");\n\n const colorize = (l: string) => winston.format.colorize().colorize(l, l);\n\n return `${colorize(level)}: ${indentedMessage}`;\n }),\n\n transports: [\n new winston.transports.Console({\n stderrLevels: [\"error\", \"warn\", \"info\", \"debug\"],\n handleExceptions: true,\n }),\n ],\n });\n}\n\nexport function randomStr(len: number): string {\n return randomBytes(Math.ceil(len / 2))\n .toString(\"hex\")\n .slice(0, len);\n}\n\nexport function resolveTilde(p: string): string {\n if (p.startsWith(\"~\")) {\n return path.join(os.homedir(), p.slice(1));\n }\n return p;\n}\n\nexport function ensureDir(\n p: string,\n options?: {\n mode?: fs.Mode;\n },\n) {\n if (fs.existsSync(p)) {\n return;\n }\n\n fs.mkdirSync(p, { recursive: true });\n if (options?.mode) {\n fs.chmodSync(p, options.mode);\n }\n}\n\nexport function getProcessName(pid: number): string {\n try {\n if (os.platform() !== \"win32\") {\n return execSync(`ps -p ${pid} -o comm=`, { encoding: \"utf8\" }).trim();\n }\n\n const command = `wmic process where processid=${pid} get Caption`;\n const lines = execSync(command, { encoding: \"utf8\" }).split(\"\\n\");\n\n // lines = [\"Caption:\", \"<process name>\"]\n if (lines.length <= 1) {\n return \"\";\n }\n\n return lines[1].trim();\n } catch {\n return \"\";\n }\n}\n\nexport type dockerComposeStatus = {\n Name: string;\n Status: string;\n ConfigFiles: string;\n};\n\nexport function getDockerComposeInfo(serviceName: string): dockerComposeStatus | undefined {\n const result = execSync(`docker compose ls --filter name=${serviceName} --format json`, {\n encoding: \"utf8\",\n }).trim();\n\n const report = JSON.parse(result) as dockerComposeStatus[];\n\n for (const st of report) {\n if (st.Name === serviceName) {\n return st;\n }\n }\n\n return undefined;\n}\n"],"names":["randomBytes","execSync"],"mappings":"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"}
|
package/dist/util.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import fs from
|
|
2
|
-
import winston from
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import winston from "winston";
|
|
3
3
|
export declare function askYN(prompt: string): boolean;
|
|
4
4
|
export declare function assertNever(_n: never): void;
|
|
5
5
|
export declare function createLogger(level?: string): winston.Logger;
|
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,SAAS,CAAC;AAIzB,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAG7C;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,KAAK,QAEpC;AAED,wBAAgB,YAAY,CAAC,KAAK,GAAE,MAAgB,GAAG,OAAO,CAAC,MAAM,CA2BpE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED,wBAAgB,SAAS,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,SAAS,CAAC;AAIzB,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAG7C;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,KAAK,QAEpC;AAED,wBAAgB,YAAY,CAAC,KAAK,GAAE,MAAgB,GAAG,OAAO,CAAC,MAAM,CA2BpE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI7C;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAK9C;AAED,wBAAgB,SAAS,CACvB,CAAC,EAAE,MAAM,EACT,OAAO,CAAC,EAAE;IACR,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;CAChB,QAUF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAkBlD;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAczF"}
|
package/dist/util.js
CHANGED
|
@@ -8,30 +8,30 @@ import readlineSync from 'readline-sync';
|
|
|
8
8
|
|
|
9
9
|
function askYN(prompt) {
|
|
10
10
|
const answer = readlineSync.question(`${prompt} [y/N] `);
|
|
11
|
-
return answer.toLowerCase() ===
|
|
11
|
+
return answer.toLowerCase() === "y";
|
|
12
12
|
}
|
|
13
13
|
function assertNever(_n) {
|
|
14
|
-
throw new Error(
|
|
14
|
+
throw new Error("this should never happen");
|
|
15
15
|
}
|
|
16
|
-
function createLogger(level =
|
|
16
|
+
function createLogger(level = "debug") {
|
|
17
17
|
return winston.createLogger({
|
|
18
18
|
level: level,
|
|
19
19
|
format: winston.format.printf(({ level, message }) => {
|
|
20
|
-
const indent =
|
|
21
|
-
if (typeof message !==
|
|
20
|
+
const indent = " ".repeat(level.length + 2); // For ': ' after the level
|
|
21
|
+
if (typeof message !== "string") {
|
|
22
22
|
const messageJson = JSON.stringify(message);
|
|
23
23
|
throw Error(`logger message ${messageJson} is not a string`);
|
|
24
24
|
}
|
|
25
25
|
const indentedMessage = message
|
|
26
|
-
.split(
|
|
26
|
+
.split("\n")
|
|
27
27
|
.map((line, index) => (index === 0 ? line : indent + line))
|
|
28
|
-
.join(
|
|
28
|
+
.join("\n");
|
|
29
29
|
const colorize = (l) => winston.format.colorize().colorize(l, l);
|
|
30
30
|
return `${colorize(level)}: ${indentedMessage}`;
|
|
31
31
|
}),
|
|
32
32
|
transports: [
|
|
33
33
|
new winston.transports.Console({
|
|
34
|
-
stderrLevels: [
|
|
34
|
+
stderrLevels: ["error", "warn", "info", "debug"],
|
|
35
35
|
handleExceptions: true,
|
|
36
36
|
}),
|
|
37
37
|
],
|
|
@@ -39,11 +39,11 @@ function createLogger(level = 'debug') {
|
|
|
39
39
|
}
|
|
40
40
|
function randomStr(len) {
|
|
41
41
|
return randomBytes(Math.ceil(len / 2))
|
|
42
|
-
.toString(
|
|
42
|
+
.toString("hex")
|
|
43
43
|
.slice(0, len);
|
|
44
44
|
}
|
|
45
45
|
function resolveTilde(p) {
|
|
46
|
-
if (p.startsWith(
|
|
46
|
+
if (p.startsWith("~")) {
|
|
47
47
|
return path.join(os__default.homedir(), p.slice(1));
|
|
48
48
|
}
|
|
49
49
|
return p;
|
|
@@ -59,23 +59,25 @@ function ensureDir(p, options) {
|
|
|
59
59
|
}
|
|
60
60
|
function getProcessName(pid) {
|
|
61
61
|
try {
|
|
62
|
-
if (os__default.platform() !==
|
|
63
|
-
return execSync(`ps -p ${pid} -o comm=`, { encoding:
|
|
62
|
+
if (os__default.platform() !== "win32") {
|
|
63
|
+
return execSync(`ps -p ${pid} -o comm=`, { encoding: "utf8" }).trim();
|
|
64
64
|
}
|
|
65
65
|
const command = `wmic process where processid=${pid} get Caption`;
|
|
66
|
-
const lines = execSync(command, { encoding:
|
|
66
|
+
const lines = execSync(command, { encoding: "utf8" }).split("\n");
|
|
67
67
|
// lines = ["Caption:", "<process name>"]
|
|
68
68
|
if (lines.length <= 1) {
|
|
69
|
-
return
|
|
69
|
+
return "";
|
|
70
70
|
}
|
|
71
71
|
return lines[1].trim();
|
|
72
72
|
}
|
|
73
|
-
catch
|
|
74
|
-
return
|
|
73
|
+
catch {
|
|
74
|
+
return "";
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
function getDockerComposeInfo(serviceName) {
|
|
78
|
-
const result = execSync(`docker compose ls --filter name=${serviceName} --format json`, {
|
|
78
|
+
const result = execSync(`docker compose ls --filter name=${serviceName} --format json`, {
|
|
79
|
+
encoding: "utf8",
|
|
80
|
+
}).trim();
|
|
79
81
|
const report = JSON.parse(result);
|
|
80
82
|
for (const st of report) {
|
|
81
83
|
if (st.Name === serviceName) {
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sources":["../src/util.ts"],"sourcesContent":["import os from
|
|
1
|
+
{"version":3,"file":"util.js","sources":["../src/util.ts"],"sourcesContent":["import os from \"node:os\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport { execSync } from \"node:child_process\";\n\nimport winston from \"winston\";\nimport { randomBytes } from \"node:crypto\";\nimport readlineSync from \"readline-sync\";\n\nexport function askYN(prompt: string): boolean {\n const answer = readlineSync.question(`${prompt} [y/N] `);\n return answer.toLowerCase() === \"y\";\n}\n\nexport function assertNever(_n: never) {\n throw new Error(\"this should never happen\");\n}\n\nexport function createLogger(level: string = \"debug\"): winston.Logger {\n return winston.createLogger({\n level: level,\n\n format: winston.format.printf(({ level, message }) => {\n const indent = \" \".repeat(level.length + 2); // For ': ' after the level\n if (typeof message !== \"string\") {\n const messageJson = JSON.stringify(message);\n throw Error(`logger message ${messageJson} is not a string`);\n }\n const indentedMessage = message\n .split(\"\\n\")\n .map((line: string, index: number) => (index === 0 ? line : indent + line))\n .join(\"\\n\");\n\n const colorize = (l: string) => winston.format.colorize().colorize(l, l);\n\n return `${colorize(level)}: ${indentedMessage}`;\n }),\n\n transports: [\n new winston.transports.Console({\n stderrLevels: [\"error\", \"warn\", \"info\", \"debug\"],\n handleExceptions: true,\n }),\n ],\n });\n}\n\nexport function randomStr(len: number): string {\n return randomBytes(Math.ceil(len / 2))\n .toString(\"hex\")\n .slice(0, len);\n}\n\nexport function resolveTilde(p: string): string {\n if (p.startsWith(\"~\")) {\n return path.join(os.homedir(), p.slice(1));\n }\n return p;\n}\n\nexport function ensureDir(\n p: string,\n options?: {\n mode?: fs.Mode;\n },\n) {\n if (fs.existsSync(p)) {\n return;\n }\n\n fs.mkdirSync(p, { recursive: true });\n if (options?.mode) {\n fs.chmodSync(p, options.mode);\n }\n}\n\nexport function getProcessName(pid: number): string {\n try {\n if (os.platform() !== \"win32\") {\n return execSync(`ps -p ${pid} -o comm=`, { encoding: \"utf8\" }).trim();\n }\n\n const command = `wmic process where processid=${pid} get Caption`;\n const lines = execSync(command, { encoding: \"utf8\" }).split(\"\\n\");\n\n // lines = [\"Caption:\", \"<process name>\"]\n if (lines.length <= 1) {\n return \"\";\n }\n\n return lines[1].trim();\n } catch {\n return \"\";\n }\n}\n\nexport type dockerComposeStatus = {\n Name: string;\n Status: string;\n ConfigFiles: string;\n};\n\nexport function getDockerComposeInfo(serviceName: string): dockerComposeStatus | undefined {\n const result = execSync(`docker compose ls --filter name=${serviceName} --format json`, {\n encoding: \"utf8\",\n }).trim();\n\n const report = JSON.parse(result) as dockerComposeStatus[];\n\n for (const st of report) {\n if (st.Name === serviceName) {\n return st;\n }\n }\n\n return undefined;\n}\n"],"names":["os","fs"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@platforma-sdk/bootstrap",
|
|
3
|
-
"version": "5.2.
|
|
3
|
+
"version": "5.2.42",
|
|
4
4
|
"description": "MiLaboratories Platforma Backend bootstrap code: configuration generators, service run wrappers and so on",
|
|
5
|
+
"keywords": [],
|
|
6
|
+
"license": "UNLICENSED",
|
|
5
7
|
"bin": {
|
|
6
8
|
"pl-dev": "./bin/run.js"
|
|
7
9
|
},
|
|
@@ -13,21 +15,6 @@
|
|
|
13
15
|
"./assets/**",
|
|
14
16
|
"./postinstall.js"
|
|
15
17
|
],
|
|
16
|
-
"keywords": [],
|
|
17
|
-
"license": "UNLICENSED",
|
|
18
|
-
"devDependencies": {
|
|
19
|
-
"@types/decompress": "^4.2.7",
|
|
20
|
-
"@types/node": "~24.5.2",
|
|
21
|
-
"@types/readline-sync": "^1.4.8",
|
|
22
|
-
"eslint": "^9.25.1",
|
|
23
|
-
"ts-node": "^10.9.2",
|
|
24
|
-
"typescript": "~5.6.3",
|
|
25
|
-
"@milaboratories/build-configs": "1.4.0",
|
|
26
|
-
"@milaboratories/oclif-index": "1.1.1",
|
|
27
|
-
"@milaboratories/eslint-config": "1.0.5",
|
|
28
|
-
"@milaboratories/ts-configs": "1.2.0",
|
|
29
|
-
"@milaboratories/ts-builder": "1.2.4"
|
|
30
|
-
},
|
|
31
18
|
"dependencies": {
|
|
32
19
|
"@oclif/core": "^4.0.37",
|
|
33
20
|
"canonicalize": "~2.1.0",
|
|
@@ -37,23 +24,37 @@
|
|
|
37
24
|
"winston": "^3.17.0",
|
|
38
25
|
"yaml": "^2.8.0",
|
|
39
26
|
"zod": "~3.23.8",
|
|
40
|
-
"@milaboratories/pl-deployments": "2.15.
|
|
27
|
+
"@milaboratories/pl-deployments": "2.15.8"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"@types/decompress": "^4.2.7",
|
|
31
|
+
"@types/node": "~24.5.2",
|
|
32
|
+
"@types/readline-sync": "^1.4.8",
|
|
33
|
+
"ts-node": "^10.9.2",
|
|
34
|
+
"typescript": "~5.6.3",
|
|
35
|
+
"@milaboratories/build-configs": "1.4.1",
|
|
36
|
+
"@milaboratories/oclif-index": "1.1.1",
|
|
37
|
+
"@milaboratories/ts-configs": "1.2.0",
|
|
38
|
+
"@milaboratories/ts-builder": "1.2.5"
|
|
41
39
|
},
|
|
42
40
|
"oclif": {
|
|
43
41
|
"bin": "pl-dev",
|
|
44
42
|
"commands": {
|
|
43
|
+
"identifier": "COMMANDS",
|
|
45
44
|
"strategy": "explicit",
|
|
46
|
-
"target": "./dist/index.js"
|
|
47
|
-
"identifier": "COMMANDS"
|
|
45
|
+
"target": "./dist/index.js"
|
|
48
46
|
},
|
|
49
47
|
"dirname": "pl-service",
|
|
50
48
|
"topicSeparator": " "
|
|
51
49
|
},
|
|
52
50
|
"scripts": {
|
|
53
|
-
"
|
|
54
|
-
"build": "oclif-index && ts-builder build --target node",
|
|
51
|
+
"build": "oclif-index && ts-builder format && ts-builder build --target node",
|
|
55
52
|
"watch": "ts-builder build --target node --watch",
|
|
53
|
+
"check": "ts-builder check --target node",
|
|
54
|
+
"formatter:check": "ts-builder formatter --check",
|
|
55
|
+
"linter:check": "ts-builder linter --check",
|
|
56
|
+
"types:check": "ts-builder type-check --target node",
|
|
56
57
|
"do-pack": "rm -f *.tgz && pnpm pack && mv *.tgz package.tgz",
|
|
57
|
-
"
|
|
58
|
+
"fmt": "ts-builder format"
|
|
58
59
|
}
|
|
59
60
|
}
|