@volcengine/tls-observer-pi-install 0.0.1 → 0.0.2

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/index.js CHANGED
@@ -1,12 +1,105 @@
1
- import { execFile, execFileSync } from "node:child_process";
1
+ import { execFileSync } from "node:child_process";
2
2
  import { homedir } from "node:os";
3
3
  import { pathToFileURL } from "node:url";
4
- import { promisify } from "node:util";
5
4
  import promises from "node:readline/promises";
6
5
  import { randomInt } from "node:crypto";
6
+ import * as __rspack_external_cross_spawn_96b24ecb from "cross-spawn";
7
7
  import * as __rspack_external_node_fs_promises_153e37e0 from "node:fs/promises";
8
8
  import * as __rspack_external_node_path_c5b9b54f from "node:path";
9
- const execFileAsync = promisify(execFile);
9
+ var __webpack_modules__ = {};
10
+ var __webpack_module_cache__ = {};
11
+ function __webpack_require__(moduleId) {
12
+ var cachedModule = __webpack_module_cache__[moduleId];
13
+ if (void 0 !== cachedModule) return cachedModule.exports;
14
+ var module = __webpack_module_cache__[moduleId] = {
15
+ exports: {}
16
+ };
17
+ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
18
+ return module.exports;
19
+ }
20
+ __webpack_require__.m = __webpack_modules__;
21
+ (()=>{
22
+ __webpack_require__.add = function(modules) {
23
+ Object.assign(__webpack_require__.m, modules);
24
+ };
25
+ })();
26
+ __webpack_require__.add({
27
+ "cross-spawn" (module) {
28
+ module.exports = __rspack_external_cross_spawn_96b24ecb;
29
+ },
30
+ "../tls-observer-shared/src/cross-platform-spawn.cjs" (__unused_rspack_module, exports, __webpack_require__) {
31
+ const crossSpawnModule = __webpack_require__("cross-spawn");
32
+ const crossSpawn = crossSpawnModule.default ?? crossSpawnModule;
33
+ const DEFAULT_MAX_BUFFER = 1048576;
34
+ function outputTooLargeError(command, maxBuffer) {
35
+ const error = new Error(`${command} output exceeded ${maxBuffer} bytes`);
36
+ error.code = 'ERR_CHILD_PROCESS_STDIO_MAXBUFFER';
37
+ return error;
38
+ }
39
+ async function runCommand(command, args, options = {}) {
40
+ return new Promise((resolve, reject)=>{
41
+ const child = crossSpawn(command, args, {
42
+ cwd: options.cwd,
43
+ env: options.env,
44
+ stdio: 'inherit' === options.stdio ? 'inherit' : [
45
+ 'ignore',
46
+ 'pipe',
47
+ 'pipe'
48
+ ],
49
+ windowsHide: true
50
+ });
51
+ const maxBuffer = options.maxBuffer ?? DEFAULT_MAX_BUFFER;
52
+ let stdout = '';
53
+ let stderr = '';
54
+ let outputBytes = 0;
55
+ let settled = false;
56
+ let timer;
57
+ const finish = (error)=>{
58
+ if (settled) return;
59
+ settled = true;
60
+ if (timer) clearTimeout(timer);
61
+ if (error) {
62
+ error.stdout ??= stdout;
63
+ error.stderr ??= stderr;
64
+ reject(error);
65
+ } else resolve({
66
+ stdout,
67
+ stderr
68
+ });
69
+ };
70
+ const appendOutput = (target, chunk)=>{
71
+ const text = String(chunk);
72
+ outputBytes += Buffer.byteLength(text);
73
+ if (outputBytes > maxBuffer) {
74
+ child.kill();
75
+ finish(outputTooLargeError(command, maxBuffer));
76
+ return;
77
+ }
78
+ if ('stdout' === target) stdout += text;
79
+ else stderr += text;
80
+ };
81
+ child.stdout?.on('data', (chunk)=>appendOutput('stdout', chunk));
82
+ child.stderr?.on('data', (chunk)=>appendOutput('stderr', chunk));
83
+ child.once('error', finish);
84
+ child.once('close', (code, signal)=>{
85
+ if (0 === code) return void finish();
86
+ const detail = signal ? `signal ${signal}` : `code ${code}`;
87
+ const error = new Error(`${command} exited with ${detail}`);
88
+ error.code = code;
89
+ finish(error);
90
+ });
91
+ if (options.timeoutMs && options.timeoutMs > 0) timer = setTimeout(()=>{
92
+ child.kill();
93
+ const error = new Error(`${command} timed out after ${options.timeoutMs}ms`);
94
+ error.code = 'ETIMEDOUT';
95
+ finish(error);
96
+ }, options.timeoutMs);
97
+ });
98
+ }
99
+ exports.d = runCommand;
100
+ }
101
+ });
102
+ const cross_platform_spawn = __webpack_require__("../tls-observer-shared/src/cross-platform-spawn.cjs");
10
103
  const PLUGIN_PACKAGE_NAME = '@volcengine/tls-observer-pi';
11
104
  const DEFAULT_REGISTRY = 'https://registry.npmjs.org';
12
105
  const DEFAULT_ENV_TARGET = __rspack_external_node_path_c5b9b54f.join(homedir(), '.pi', 'agent', 'tls-observer-pi.env');
@@ -501,7 +594,7 @@ function commandErrorDetail(error) {
501
594
  }
502
595
  async function execPiCli(options, args) {
503
596
  try {
504
- await execFileAsync(options.piBin, args, {
597
+ await (0, cross_platform_spawn.d)(options.piBin, args, {
505
598
  env: piCliEnv(options)
506
599
  });
507
600
  } catch (error) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volcengine/tls-observer-pi-install",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "One-step installer for the TLS Observer Pi plugin.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -35,13 +35,15 @@
35
35
  },
36
36
  "license": "Apache-2.0",
37
37
  "dependencies": {
38
- "@volcengine/openapi": "^1.36.1"
38
+ "@volcengine/openapi": "^1.36.1",
39
+ "cross-spawn": "7.0.6"
39
40
  },
40
41
  "devDependencies": {
41
42
  "@rslib/core": "^0.21.5",
42
43
  "@types/node": "^24.10.9",
43
44
  "prettier": "^3.4.2",
44
- "typescript": "^6.0.3"
45
+ "typescript": "^6.0.3",
46
+ "@volcengine/tls-observer-shared": "0.0.1"
45
47
  },
46
48
  "scripts": {
47
49
  "build": "rslib build",
@@ -1,11 +1,11 @@
1
1
  import * as fs from 'node:fs/promises';
2
2
  import * as path from 'node:path';
3
- import { execFile, execFileSync } from 'node:child_process';
3
+ import { execFileSync } from 'node:child_process';
4
4
  import { homedir } from 'node:os';
5
5
  import { pathToFileURL } from 'node:url';
6
- import { promisify } from 'node:util';
7
6
  import readline from 'node:readline/promises';
8
7
  import { randomInt } from 'node:crypto';
8
+ import { runCommand } from '@volcengine/tls-observer-shared/cross-platform-spawn';
9
9
 
10
10
  type AnyRecord = Record<string, any>;
11
11
 
@@ -64,7 +64,6 @@ type PluginInstallResult = {
64
64
  dryRun?: boolean;
65
65
  };
66
66
 
67
- const execFileAsync = promisify(execFile);
68
67
  const PLUGIN_PACKAGE_NAME = '@volcengine/tls-observer-pi';
69
68
  const DEFAULT_REGISTRY = 'https://registry.npmjs.org';
70
69
  const DEFAULT_ENV_TARGET = path.join(homedir(), '.pi', 'agent', 'tls-observer-pi.env');
@@ -638,7 +637,7 @@ function commandErrorDetail(error: unknown): string {
638
637
 
639
638
  async function execPiCli(options: InstallOptions, args: string[]): Promise<void> {
640
639
  try {
641
- await execFileAsync(options.piBin, args, { env: piCliEnv(options) });
640
+ await runCommand(options.piBin, args, { env: piCliEnv(options) });
642
641
  } catch (error) {
643
642
  if ((error as NodeJS.ErrnoException).code === 'ENOENT') {
644
643
  throw new Error(