@crawlee/utils 3.12.3-beta.8 → 3.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-info.js","sourceRoot":"","sources":["../../../src/internals/systemInfoV2/memory-info.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface ProcessInfo {
2
+ PPID: string;
3
+ PID: string;
4
+ STAT: string | null;
5
+ RSS: number;
6
+ COMMAND: string;
7
+ }
8
+ /**
9
+ * Returns a promise that resolves with an array of ProcessInfo objects representing
10
+ * the children of the given PID.
11
+ *
12
+ * @param pid - The PID (number or string) for which to list child processes.
13
+ * @param includeRoot - Optional flag. When true, include the process with the given PID if found.
14
+ * Defaults to false.
15
+ * @internal
16
+ */
17
+ export declare function psTree(pid: number | string, includeRoot?: boolean): Promise<ProcessInfo[]>;
18
+ //# sourceMappingURL=ps-tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ps-tree.d.ts","sourceRoot":"","sources":["../../../src/internals/systemInfoV2/ps-tree.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACnB;AAOD;;;;;;;;GAQG;AACH,wBAAsB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,GAAE,OAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA+GvG"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.psTree = psTree;
4
+ const tslib_1 = require("tslib");
5
+ const child_process_1 = require("child_process");
6
+ const readline = tslib_1.__importStar(require("readline"));
7
+ /**
8
+ * Returns a promise that resolves with an array of ProcessInfo objects representing
9
+ * the children of the given PID.
10
+ *
11
+ * @param pid - The PID (number or string) for which to list child processes.
12
+ * @param includeRoot - Optional flag. When true, include the process with the given PID if found.
13
+ * Defaults to false.
14
+ * @internal
15
+ */
16
+ async function psTree(pid, includeRoot = false) {
17
+ return new Promise((resolve, reject) => {
18
+ if (typeof pid === 'number') {
19
+ pid = pid.toString();
20
+ }
21
+ let processLister;
22
+ if (process.platform === 'win32') {
23
+ processLister = (0, child_process_1.spawn)('powershell', [
24
+ '-NoProfile',
25
+ '-Command',
26
+ 'Get-CimInstance Win32_Process | Format-Table ProcessId,ParentProcessId,WorkingSetSize,Name',
27
+ ]);
28
+ }
29
+ else {
30
+ processLister = (0, child_process_1.spawn)('ps', ['-A', '-o', 'ppid,pid,stat,rss,comm']);
31
+ }
32
+ processLister.on('error', reject);
33
+ if (!processLister.stdout) {
34
+ reject(new Error('Child process stdout is null'));
35
+ return;
36
+ }
37
+ // Create a readline interface to process stdout line-by-line.
38
+ const rl = readline.createInterface({
39
+ input: processLister.stdout,
40
+ });
41
+ const rows = [];
42
+ let headers = null;
43
+ rl.on('line', (line) => {
44
+ const trimmed = line.trim();
45
+ if (trimmed === '') {
46
+ return; // Skip empty lines.
47
+ }
48
+ // When headers have been set, skip a dashed separator line.
49
+ const fields = trimmed.split(/\s+/);
50
+ if (headers !== null && fields.every((field) => /^-+$/.test(field))) {
51
+ return;
52
+ }
53
+ // The first nonempty line is assumed to be the header row.
54
+ if (!headers) {
55
+ headers = fields.map(normalizeHeader);
56
+ return;
57
+ }
58
+ // Copy the fields into an array to process.
59
+ const columns = fields.slice();
60
+ // Build the process row object.
61
+ const row = {};
62
+ const hdrs = headers.slice();
63
+ // For all headers except the last one, assign one column per header.
64
+ // The last header gets all remaining columns joined (in case the command name contains spaces).
65
+ for (const [index, header] of hdrs.entries()) {
66
+ let value;
67
+ if (index === hdrs.length - 1) {
68
+ value = columns.join(' ');
69
+ }
70
+ else {
71
+ value = columns.shift();
72
+ }
73
+ if (header === 'RSS') {
74
+ row[header] = Number.parseInt(value, 10);
75
+ if (process.platform !== 'win32') {
76
+ // On Unix like systems, convert RSS (in KB) to bytes.
77
+ row[header] *= 1024;
78
+ }
79
+ }
80
+ else {
81
+ row[header] = value;
82
+ }
83
+ }
84
+ // On Windows, add STAT with a null value for compatibility.
85
+ if (process.platform === 'win32') {
86
+ row.STAT = null;
87
+ }
88
+ rows.push(row);
89
+ });
90
+ rl.on('close', () => {
91
+ const parents = {};
92
+ const children = [];
93
+ // Seed with the provided PID.
94
+ parents[pid] = true;
95
+ // Build the list of child processes.
96
+ rows.forEach((proc) => {
97
+ // Skip the 'ps' or 'powershell' commands used by psTree to query the processes
98
+ if (proc.COMMAND === 'ps' || proc.COMMAND === 'powershell.exe') {
99
+ return;
100
+ }
101
+ if (parents[proc.PPID]) {
102
+ parents[proc.PID] = true;
103
+ children.push(proc);
104
+ }
105
+ else if (includeRoot && pid === proc.PID) {
106
+ children.push(proc);
107
+ }
108
+ });
109
+ resolve(children);
110
+ });
111
+ // Also listen for errors on the stdout stream.
112
+ processLister.stdout.on('error', reject);
113
+ });
114
+ }
115
+ /**
116
+ * Normalizes the header names so that the rest of the code can work uniformly.
117
+ *
118
+ * On non‑Windows systems, we only adjust "COMM" to "COMMAND" (e.g. on macOS).
119
+ * On Windows, the headers from Get-CimInstance + Format-Table are:
120
+ *
121
+ * ProcessId, ParentProcessId, WorkingSetSize, Name
122
+ *
123
+ * which are mapped to:
124
+ *
125
+ * PID, PPID, RSS, COMMAND
126
+ */
127
+ function normalizeHeader(str) {
128
+ if (process.platform !== 'win32') {
129
+ // macOS may output "COMM" instead of "COMMAND"
130
+ if (str === 'COMM')
131
+ return 'COMMAND';
132
+ return str;
133
+ }
134
+ switch (str) {
135
+ case 'Name':
136
+ return 'COMMAND';
137
+ case 'ParentProcessId':
138
+ return 'PPID';
139
+ case 'ProcessId':
140
+ return 'PID';
141
+ case 'Status':
142
+ return 'STAT';
143
+ case 'WorkingSetSize':
144
+ return 'RSS';
145
+ default:
146
+ throw new Error(`Unknown process listing header: ${str}`);
147
+ }
148
+ }
149
+ //# sourceMappingURL=ps-tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ps-tree.js","sourceRoot":"","sources":["../../../src/internals/systemInfoV2/ps-tree.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crawlee/utils",
3
- "version": "3.12.3-beta.8",
3
+ "version": "3.13.0",
4
4
  "description": "A set of shared utilities that can be used by crawlers",
5
5
  "engines": {
6
6
  "node": ">=16.0.0"
@@ -49,7 +49,7 @@
49
49
  "dependencies": {
50
50
  "@apify/log": "^2.4.0",
51
51
  "@apify/ps-tree": "^1.2.0",
52
- "@crawlee/types": "3.12.3-beta.8",
52
+ "@crawlee/types": "3.13.0",
53
53
  "@types/sax": "^1.2.7",
54
54
  "cheerio": "1.0.0-rc.12",
55
55
  "file-type": "^20.0.0",
@@ -70,5 +70,5 @@
70
70
  }
71
71
  }
72
72
  },
73
- "gitHead": "bb6e3e75781a2d81ca426937c30eb0b87393e568"
73
+ "gitHead": "6d5b13ae318909a66001cfc4daa1425ca88b3bb3"
74
74
  }