@platforma-sdk/bootstrap 5.2.32 → 5.2.33

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.
Files changed (47) hide show
  1. package/dist/block.cjs +1 -1
  2. package/dist/block.cjs.map +1 -1
  3. package/dist/block.d.ts.map +1 -1
  4. package/dist/block.js +1 -1
  5. package/dist/block.js.map +1 -1
  6. package/dist/commands/create-block.cjs +2 -2
  7. package/dist/commands/create-block.cjs.map +1 -1
  8. package/dist/commands/create-block.d.ts.map +1 -1
  9. package/dist/commands/create-block.js +2 -2
  10. package/dist/commands/create-block.js.map +1 -1
  11. package/dist/commands/reset.cjs +1 -1
  12. package/dist/commands/reset.cjs.map +1 -1
  13. package/dist/commands/reset.d.ts.map +1 -1
  14. package/dist/commands/reset.js +1 -1
  15. package/dist/commands/reset.js.map +1 -1
  16. package/dist/commands/stop.cjs +1 -1
  17. package/dist/commands/stop.cjs.map +1 -1
  18. package/dist/commands/stop.js +1 -1
  19. package/dist/commands/stop.js.map +1 -1
  20. package/dist/commands/svc/create/arg-parser.cjs +2 -2
  21. package/dist/commands/svc/create/arg-parser.cjs.map +1 -1
  22. package/dist/commands/svc/create/arg-parser.js +2 -2
  23. package/dist/commands/svc/create/arg-parser.js.map +1 -1
  24. package/dist/commands/svc/create/docker/s3.cjs.map +1 -1
  25. package/dist/commands/svc/create/docker/s3.js.map +1 -1
  26. package/dist/commands/svc/create/docker.cjs.map +1 -1
  27. package/dist/commands/svc/create/docker.js.map +1 -1
  28. package/dist/commands/svc/create/local/s3.cjs.map +1 -1
  29. package/dist/commands/svc/create/local/s3.js.map +1 -1
  30. package/dist/commands/svc/create/local.cjs.map +1 -1
  31. package/dist/commands/svc/create/local.js.map +1 -1
  32. package/dist/index.cjs +0 -1
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +0 -1
  36. package/dist/index.js.map +1 -1
  37. package/dist/package.cjs.map +1 -1
  38. package/dist/package.js.map +1 -1
  39. package/dist/templates/pl-config.cjs.map +1 -1
  40. package/dist/templates/pl-config.js.map +1 -1
  41. package/dist/util.cjs +2 -2
  42. package/dist/util.cjs.map +1 -1
  43. package/dist/util.d.ts +1 -1
  44. package/dist/util.d.ts.map +1 -1
  45. package/dist/util.js +2 -2
  46. package/dist/util.js.map +1 -1
  47. package/package.json +9 -8
package/dist/util.cjs.map CHANGED
@@ -1 +1 @@
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(p: string, options?: {\n mode?: fs.Mode;\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 (e) {\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`, { encoding: 'utf8' }).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":";;;;;;;;;;AASM,SAAU,KAAK,CAAC,MAAc,EAAA;IAClC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA,EAAG,MAAM,CAAA,OAAA,CAAS,CAAC;AACxD,IAAA,OAAO,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG;AACrC;AAEM,SAAU,WAAW,CAAC,CAAQ,EAAA;AAClC,IAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;AAC7C;AAEM,SAAU,YAAY,CAAC,KAAA,GAAgB,OAAO,EAAA;IAClD,OAAO,OAAO,CAAC,YAAY,CAAC;AAC1B,QAAA,KAAK,EAAE,KAAK;AAEZ,QAAA,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAI;AACnD,YAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,YAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AAC3C,gBAAA,MAAM,KAAK,CAAC,CAAA,eAAA,EAAkB,WAAW,CAAA,gBAAA,CAAkB,CAAC;YAC9D;YACA,MAAM,eAAe,GAAG;iBACrB,KAAK,CAAC,IAAI;iBACV,GAAG,CAAC,CAAC,IAAY,EAAE,KAAa,MAAM,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;iBACzE,IAAI,CAAC,IAAI,CAAC;YAEb,MAAM,QAAQ,GAAG,CAAC,CAAS,KAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;YAExE,OAAO,CAAA,EAAG,QAAQ,CAAC,KAAK,CAAC,CAAA,EAAA,EAAK,eAAe,EAAE;AACjD,QAAA,CAAC,CAAC;AAEF,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC7B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AAChD,gBAAA,gBAAgB,EAAE,IAAI;aACvB,CAAC;AACH,SAAA;AACF,KAAA,CAAC;AACJ;AAEM,SAAU,SAAS,CAAC,GAAW,EAAA;IACnC,OAAOA,uBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;SAClC,QAAQ,CAAC,KAAK;AACd,SAAA,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;AAClB;AAEM,SAAU,YAAY,CAAC,CAAS,EAAA;AACpC,IAAA,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5C;AACA,IAAA,OAAO,CAAC;AACV;AAEM,SAAU,SAAS,CAAC,CAAS,EAAE,OAEpC,EAAA;AACC,IAAA,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;QACpB;IACF;IAEA,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACpC,IAAA,IAAI,OAAO,EAAE,IAAI,EAAE;QACjB,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC;IAC/B;AACF;AAEM,SAAU,cAAc,CAAC,GAAW,EAAA;AACxC,IAAA,IAAI;AACF,QAAA,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE;AAC7B,YAAA,OAAOC,2BAAQ,CAAC,CAAA,MAAA,EAAS,GAAG,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE;QACvE;AAEA,QAAA,MAAM,OAAO,GAAG,CAAA,6BAAA,EAAgC,GAAG,cAAc;AACjE,QAAA,MAAM,KAAK,GAAGA,2BAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;;AAGjE,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACrB,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;IACxB;IAAE,OAAO,CAAC,EAAE;AACV,QAAA,OAAO,EAAE;IACX;AACF;AAQM,SAAU,oBAAoB,CAAC,WAAmB,EAAA;AACtD,IAAA,MAAM,MAAM,GAAGA,2BAAQ,CAAC,CAAA,gCAAA,EAAmC,WAAW,CAAA,cAAA,CAAgB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE;IAEpH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAA0B;AAE1D,IAAA,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE;AACvB,QAAA,IAAI,EAAE,CAAC,IAAI,KAAK,WAAW,EAAE;AAC3B,YAAA,OAAO,EAAE;QACX;IACF;AAEA,IAAA,OAAO,SAAS;AAClB;;;;;;;;;;;"}
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(p: string, options?: {\n mode?: fs.Mode;\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 (_e) {\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`, { encoding: 'utf8' }).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,7 +1,7 @@
1
1
  import fs from 'node:fs';
2
2
  import winston from 'winston';
3
3
  export declare function askYN(prompt: string): boolean;
4
- export declare function assertNever(n: never): void;
4
+ export declare function assertNever(_n: never): void;
5
5
  export declare function createLogger(level?: string): winston.Logger;
6
6
  export declare function randomStr(len: number): string;
7
7
  export declare function resolveTilde(p: string): string;
@@ -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,CAAC,EAAE,KAAK,QAEnC;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,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAC7C,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;CAChB,QASA;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,CAYzF"}
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,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAC7C,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;CAChB,QASA;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,CAYzF"}
package/dist/util.js CHANGED
@@ -10,7 +10,7 @@ function askYN(prompt) {
10
10
  const answer = readlineSync.question(`${prompt} [y/N] `);
11
11
  return answer.toLowerCase() === 'y';
12
12
  }
13
- function assertNever(n) {
13
+ function assertNever(_n) {
14
14
  throw new Error('this should never happen');
15
15
  }
16
16
  function createLogger(level = 'debug') {
@@ -70,7 +70,7 @@ function getProcessName(pid) {
70
70
  }
71
71
  return lines[1].trim();
72
72
  }
73
- catch (e) {
73
+ catch (_e) {
74
74
  return '';
75
75
  }
76
76
  }
package/dist/util.js.map CHANGED
@@ -1 +1 @@
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(p: string, options?: {\n mode?: fs.Mode;\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 (e) {\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`, { encoding: 'utf8' }).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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"}
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(p: string, options?: {\n mode?: fs.Mode;\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 (_e) {\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`, { encoding: 'utf8' }).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":";;;;;;;;AASM,SAAU,KAAK,CAAC,MAAc,EAAA;IAClC,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA,EAAG,MAAM,CAAA,OAAA,CAAS,CAAC;AACxD,IAAA,OAAO,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG;AACrC;AAEM,SAAU,WAAW,CAAC,EAAS,EAAA;AACnC,IAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;AAC7C;AAEM,SAAU,YAAY,CAAC,KAAA,GAAgB,OAAO,EAAA;IAClD,OAAO,OAAO,CAAC,YAAY,CAAC;AAC1B,QAAA,KAAK,EAAE,KAAK;AAEZ,QAAA,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAI;AACnD,YAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,YAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;AAC3C,gBAAA,MAAM,KAAK,CAAC,CAAA,eAAA,EAAkB,WAAW,CAAA,gBAAA,CAAkB,CAAC;YAC9D;YACA,MAAM,eAAe,GAAG;iBACrB,KAAK,CAAC,IAAI;iBACV,GAAG,CAAC,CAAC,IAAY,EAAE,KAAa,MAAM,KAAK,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;iBACzE,IAAI,CAAC,IAAI,CAAC;YAEb,MAAM,QAAQ,GAAG,CAAC,CAAS,KAAK,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;YAExE,OAAO,CAAA,EAAG,QAAQ,CAAC,KAAK,CAAC,CAAA,EAAA,EAAK,eAAe,EAAE;AACjD,QAAA,CAAC,CAAC;AAEF,QAAA,UAAU,EAAE;AACV,YAAA,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC7B,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;AAChD,gBAAA,gBAAgB,EAAE,IAAI;aACvB,CAAC;AACH,SAAA;AACF,KAAA,CAAC;AACJ;AAEM,SAAU,SAAS,CAAC,GAAW,EAAA;IACnC,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;SAClC,QAAQ,CAAC,KAAK;AACd,SAAA,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;AAClB;AAEM,SAAU,YAAY,CAAC,CAAS,EAAA;AACpC,IAAA,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAACA,WAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5C;AACA,IAAA,OAAO,CAAC;AACV;AAEM,SAAU,SAAS,CAAC,CAAS,EAAE,OAEpC,EAAA;AACC,IAAA,IAAIC,WAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;QACpB;IACF;IAEAA,WAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACpC,IAAA,IAAI,OAAO,EAAE,IAAI,EAAE;QACjBA,WAAE,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC;IAC/B;AACF;AAEM,SAAU,cAAc,CAAC,GAAW,EAAA;AACxC,IAAA,IAAI;AACF,QAAA,IAAID,WAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE;AAC7B,YAAA,OAAO,QAAQ,CAAC,CAAA,MAAA,EAAS,GAAG,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE;QACvE;AAEA,QAAA,MAAM,OAAO,GAAG,CAAA,6BAAA,EAAgC,GAAG,cAAc;AACjE,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;;AAGjE,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACrB,YAAA,OAAO,EAAE;QACX;AAEA,QAAA,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;IACxB;IAAE,OAAO,EAAE,EAAE;AACX,QAAA,OAAO,EAAE;IACX;AACF;AAQM,SAAU,oBAAoB,CAAC,WAAmB,EAAA;AACtD,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAA,gCAAA,EAAmC,WAAW,CAAA,cAAA,CAAgB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE;IAEpH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAA0B;AAE1D,IAAA,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE;AACvB,QAAA,IAAI,EAAE,CAAC,IAAI,KAAK,WAAW,EAAE;AAC3B,YAAA,OAAO,EAAE;QACX;IACF;AAEA,IAAA,OAAO,SAAS;AAClB;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platforma-sdk/bootstrap",
3
- "version": "5.2.32",
3
+ "version": "5.2.33",
4
4
  "description": "MiLaboratories Platforma Backend bootstrap code: configuration generators, service run wrappers and so on",
5
5
  "bin": {
6
6
  "pl-dev": "./bin/run.js"
@@ -19,14 +19,14 @@
19
19
  "@types/decompress": "^4.2.7",
20
20
  "@types/node": "~24.5.2",
21
21
  "@types/readline-sync": "^1.4.8",
22
- "prettier": "^3.4.1",
22
+ "eslint": "^9.25.1",
23
23
  "ts-node": "^10.9.2",
24
24
  "typescript": "~5.6.3",
25
- "@milaboratories/build-configs": "1.1.0",
26
25
  "@milaboratories/oclif-index": "1.1.1",
27
- "@milaboratories/eslint-config": "1.0.5",
28
- "@milaboratories/ts-configs": "1.1.0",
29
- "@milaboratories/ts-builder": "1.1.0"
26
+ "@milaboratories/ts-builder": "1.2.1",
27
+ "@milaboratories/build-configs": "1.2.1",
28
+ "@milaboratories/ts-configs": "1.2.0",
29
+ "@milaboratories/eslint-config": "1.0.5"
30
30
  },
31
31
  "dependencies": {
32
32
  "@oclif/core": "^4.0.37",
@@ -37,7 +37,7 @@
37
37
  "winston": "^3.17.0",
38
38
  "yaml": "^2.8.0",
39
39
  "zod": "~3.23.8",
40
- "@milaboratories/pl-deployments": "2.14.0"
40
+ "@milaboratories/pl-deployments": "2.14.1"
41
41
  },
42
42
  "oclif": {
43
43
  "bin": "pl-dev",
@@ -53,6 +53,7 @@
53
53
  "type-check": "ts-builder types --target node",
54
54
  "build": "oclif-index && ts-builder build --target node",
55
55
  "watch": "ts-builder build --target node --watch",
56
- "do-pack": "rm -f *.tgz && pnpm pack && mv *.tgz package.tgz"
56
+ "do-pack": "rm -f *.tgz && pnpm pack && mv *.tgz package.tgz",
57
+ "lint": "eslint ."
57
58
  }
58
59
  }