@crawlee/utils 4.0.0-beta.13 → 4.0.0-beta.130

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 (75) hide show
  1. package/README.md +17 -13
  2. package/index.d.ts +6 -12
  3. package/index.js +5 -11
  4. package/internal.d.ts +9 -0
  5. package/internal.js +8 -0
  6. package/internals/blocked.d.ts +0 -1
  7. package/internals/blocked.js +0 -1
  8. package/internals/cheerio.d.ts +3 -2
  9. package/internals/cheerio.js +4 -5
  10. package/internals/extract-urls.d.ts +5 -1
  11. package/internals/extract-urls.js +23 -18
  12. package/internals/general.d.ts +0 -25
  13. package/internals/general.js +2 -110
  14. package/internals/iterables.d.ts +47 -0
  15. package/internals/iterables.js +96 -0
  16. package/internals/open_graph_parser.d.ts +2 -3
  17. package/internals/open_graph_parser.js +8 -9
  18. package/internals/robots.d.ts +38 -12
  19. package/internals/robots.js +72 -48
  20. package/internals/schemas.d.ts +114 -0
  21. package/internals/schemas.js +114 -0
  22. package/internals/sitemap.d.ts +74 -8
  23. package/internals/sitemap.js +251 -79
  24. package/internals/social.d.ts +1 -2
  25. package/internals/social.js +7 -5
  26. package/internals/url.d.ts +70 -2
  27. package/internals/url.js +120 -2
  28. package/internals/validation.d.ts +25 -0
  29. package/internals/validation.js +140 -0
  30. package/package.json +10 -8
  31. package/index.d.ts.map +0 -1
  32. package/index.js.map +0 -1
  33. package/internals/blocked.d.ts.map +0 -1
  34. package/internals/blocked.js.map +0 -1
  35. package/internals/cheerio.d.ts.map +0 -1
  36. package/internals/cheerio.js.map +0 -1
  37. package/internals/chunk.d.ts +0 -2
  38. package/internals/chunk.d.ts.map +0 -1
  39. package/internals/chunk.js +0 -40
  40. package/internals/chunk.js.map +0 -1
  41. package/internals/debug.d.ts +0 -31
  42. package/internals/debug.d.ts.map +0 -1
  43. package/internals/debug.js +0 -29
  44. package/internals/debug.js.map +0 -1
  45. package/internals/extract-urls.d.ts.map +0 -1
  46. package/internals/extract-urls.js.map +0 -1
  47. package/internals/general.d.ts.map +0 -1
  48. package/internals/general.js.map +0 -1
  49. package/internals/open_graph_parser.d.ts.map +0 -1
  50. package/internals/open_graph_parser.js.map +0 -1
  51. package/internals/robots.d.ts.map +0 -1
  52. package/internals/robots.js.map +0 -1
  53. package/internals/sitemap.d.ts.map +0 -1
  54. package/internals/sitemap.js.map +0 -1
  55. package/internals/social.d.ts.map +0 -1
  56. package/internals/social.js.map +0 -1
  57. package/internals/system-info/cpu-info.d.ts +0 -64
  58. package/internals/system-info/cpu-info.d.ts.map +0 -1
  59. package/internals/system-info/cpu-info.js +0 -211
  60. package/internals/system-info/cpu-info.js.map +0 -1
  61. package/internals/system-info/memory-info.d.ts +0 -28
  62. package/internals/system-info/memory-info.d.ts.map +0 -1
  63. package/internals/system-info/memory-info.js +0 -118
  64. package/internals/system-info/memory-info.js.map +0 -1
  65. package/internals/system-info/ps-tree.d.ts +0 -18
  66. package/internals/system-info/ps-tree.d.ts.map +0 -1
  67. package/internals/system-info/ps-tree.js +0 -145
  68. package/internals/system-info/ps-tree.js.map +0 -1
  69. package/internals/typedefs.d.ts +0 -5
  70. package/internals/typedefs.d.ts.map +0 -1
  71. package/internals/typedefs.js +0 -9
  72. package/internals/typedefs.js.map +0 -1
  73. package/internals/url.d.ts.map +0 -1
  74. package/internals/url.js.map +0 -1
  75. package/tsconfig.build.tsbuildinfo +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/internals/social.ts"],"names":[],"mappings":"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"}
@@ -1,64 +0,0 @@
1
- /**
2
- * Gets the "bare metal" cpu load.
3
- * Used in
4
- * - AWS Lambda
5
- * - Containers without a cGroup quota
6
- * - Uncontainerized environments
7
- * @returns a number between 0 and 1 for the cpu load
8
- * @internal
9
- */
10
- export declare function getCurrentCpuTicks(): number;
11
- /**
12
- * Reads the cgroup cpu quota.
13
- * In V1, a quota of -1 means “unlimited.”
14
- * In V2, a first field of "max" means unlimited.
15
- * @param cgroupsVersion the cGroup version
16
- * @returns The Cpu Quota
17
- * @internal
18
- */
19
- export declare function getCpuQuota(cgroupsVersion: string): Promise<number | null>;
20
- /**
21
- * Reads the cgroup cpu period.
22
- * @param cgroupsVersion the cGroup version
23
- * @returns The Cpu quota period
24
- * @internal
25
- */
26
- export declare function getCpuPeriod(cgroupsVersion: string): Promise<number>;
27
- /**
28
- * Reads the cgroup cpu usage of the container
29
- *
30
- * @param cgroupsVersion the cGroup version
31
- * @returns the cpu usage
32
- * @internal
33
- */
34
- export declare function getContainerCpuUsage(cgroupsVersion: string): Promise<number>;
35
- /**
36
- * Reads the cgroup cpu usage of the system from cgroup
37
- *
38
- * @returns the cpu usage
39
- * @internal
40
- */
41
- export declare function getSystemCpuUsage(): Promise<number>;
42
- /**
43
- * a cpu sample with the container usage and system usage
44
- */
45
- export interface CpuSample {
46
- containerUsage: number;
47
- systemUsage: number;
48
- }
49
- /**
50
- * Takes a CPU usage sample for both the container and the system.
51
- *
52
- * @returns An object containing the container and system CPU usage.
53
- * @internal
54
- */
55
- export declare function sampleCpuUsage(cGroupsVersion: string): Promise<CpuSample>;
56
- /**
57
- * Gets the cpu usage of the system.
58
- * If the crawler is running in a containerized environment, crawlee will check for a cgroup enforced cpu limit.
59
- * If a cgroup limit is found, it will be taken as the maximum load against which the current load will be gauged.
60
- * @returns a number between 0 and 1 for the cpu load
61
- * @internal
62
- */
63
- export declare function getCurrentCpuTicksV2(containerized?: boolean): Promise<number>;
64
- //# sourceMappingURL=cpu-info.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cpu-info.d.ts","sourceRoot":"","sources":["../../../src/internals/system-info/cpu-info.ts"],"names":[],"mappings":"AA6BA;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,WAejC;AAgBD;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAahF;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU1E;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBlF;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,oBAiBtC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAM/E;AAID;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,aAAa,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CA8CjF"}
@@ -1,211 +0,0 @@
1
- import { execSync } from 'node:child_process';
2
- import { readFile } from 'node:fs/promises';
3
- import os from 'node:os';
4
- import log from '@apify/log';
5
- import { getCgroupsVersion } from '../general.js';
6
- const CPU_FILE_PATHS = {
7
- STAT: {
8
- V1: '/sys/fs/cgroup/cpuacct/cpuacct.usage',
9
- V2: '/sys/fs/cgroup/cpu.stat',
10
- },
11
- QUOTA: {
12
- V1: '/sys/fs/cgroup/cpu/cpu.cfs_quota_us',
13
- V2: '/sys/fs/cgroup/cpu.max',
14
- },
15
- PERIOD: {
16
- V1: '/sys/fs/cgroup/cpu/cpu.cfs_period_us',
17
- V2: '/sys/fs/cgroup/cpu.max',
18
- },
19
- };
20
- let CLOCK_TICKS_PER_SECOND = 100;
21
- let CLOCK_TICKS_CHECKED = false;
22
- const NANOSECONDS_PER_SECOND = 1e9;
23
- const previousTicks = { idle: 0, total: 0 };
24
- /**
25
- * Gets the "bare metal" cpu load.
26
- * Used in
27
- * - AWS Lambda
28
- * - Containers without a cGroup quota
29
- * - Uncontainerized environments
30
- * @returns a number between 0 and 1 for the cpu load
31
- * @internal
32
- */
33
- export function getCurrentCpuTicks() {
34
- const cpusCores = os.cpus();
35
- const ticks = cpusCores.reduce((acc, cpu) => {
36
- const cpuTimes = Object.values(cpu.times);
37
- return {
38
- idle: acc.idle + cpu.times.idle,
39
- total: acc.total + cpuTimes.reduce((sum, num) => sum + num),
40
- };
41
- }, { idle: 0, total: 0 });
42
- const idleTicksDelta = ticks.idle - previousTicks.idle;
43
- const totalTicksDelta = ticks.total - previousTicks.total;
44
- return totalTicksDelta ? 1 - idleTicksDelta / totalTicksDelta : 0;
45
- }
46
- /**
47
- * Reads the linux tick rate
48
- * @returns the number of ticks per second
49
- */
50
- function getClockTicks() {
51
- try {
52
- const result = execSync('getconf CLK_TCK').toString().trim();
53
- return parseInt(result, 10);
54
- }
55
- catch (err) {
56
- log.warningOnce('Failed to get clock ticks; defaulting to 100');
57
- return 100;
58
- }
59
- }
60
- /**
61
- * Reads the cgroup cpu quota.
62
- * In V1, a quota of -1 means “unlimited.”
63
- * In V2, a first field of "max" means unlimited.
64
- * @param cgroupsVersion the cGroup version
65
- * @returns The Cpu Quota
66
- * @internal
67
- */
68
- export async function getCpuQuota(cgroupsVersion) {
69
- if (cgroupsVersion === 'V1') {
70
- const quotaStr = await readFile(CPU_FILE_PATHS.QUOTA.V1, 'utf8');
71
- const quota = parseInt(quotaStr.trim(), 10);
72
- return quota === -1 ? null : quota;
73
- }
74
- // cgroup v2
75
- const maxStr = await readFile(CPU_FILE_PATHS.QUOTA.V2, 'utf8');
76
- const parts = maxStr.trim().split(/\s+/);
77
- if (parts[0] === 'max') {
78
- return null;
79
- }
80
- return parseInt(parts[0], 10);
81
- }
82
- /**
83
- * Reads the cgroup cpu period.
84
- * @param cgroupsVersion the cGroup version
85
- * @returns The Cpu quota period
86
- * @internal
87
- */
88
- export async function getCpuPeriod(cgroupsVersion) {
89
- if (cgroupsVersion === 'V1') {
90
- const quotaStr = await readFile(CPU_FILE_PATHS.PERIOD.V1, 'utf8');
91
- const quota = parseInt(quotaStr.trim(), 10);
92
- return quota;
93
- }
94
- // cgroup v2
95
- const maxStr = await readFile(CPU_FILE_PATHS.PERIOD.V2, 'utf8');
96
- const parts = maxStr.trim().split(/\s+/);
97
- return parseInt(parts[1], 10);
98
- }
99
- /**
100
- * Reads the cgroup cpu usage of the container
101
- *
102
- * @param cgroupsVersion the cGroup version
103
- * @returns the cpu usage
104
- * @internal
105
- */
106
- export async function getContainerCpuUsage(cgroupsVersion) {
107
- if (cgroupsVersion === 'V1') {
108
- const data = await readFile(CPU_FILE_PATHS.STAT.V1, 'utf8');
109
- return Number(data.trim());
110
- }
111
- // cgroup v2
112
- const data = await readFile(CPU_FILE_PATHS.STAT.V2, 'utf8');
113
- const lines = data.split('\n');
114
- let usageUsec = 0;
115
- for (const line of lines) {
116
- const parts = line.trim().split(/\s+/);
117
- if (parts[0] === 'usage_usec') {
118
- usageUsec = Number(parts[1]);
119
- break;
120
- }
121
- }
122
- // Convert microseconds to nanoseconds.
123
- return usageUsec * 1000;
124
- }
125
- /**
126
- * Reads the cgroup cpu usage of the system from cgroup
127
- *
128
- * @returns the cpu usage
129
- * @internal
130
- */
131
- export async function getSystemCpuUsage() {
132
- const statData = await readFile('/proc/stat', 'utf8');
133
- const lines = statData.split('\n');
134
- for (const line of lines) {
135
- if (line.startsWith('cpu ')) {
136
- // Split the line and extract the first seven numeric fields:
137
- // user, nice, system, idle, iowait, irq, softirq
138
- const parts = line.split(/\s+/).slice(1, 8);
139
- let totalTicks = 0;
140
- for (const part of parts) {
141
- totalTicks += Number(part);
142
- }
143
- // Convert clock ticks to nanoseconds.
144
- return (totalTicks * NANOSECONDS_PER_SECOND) / CLOCK_TICKS_PER_SECOND;
145
- }
146
- }
147
- throw new Error('no cpu line'); // shouldnt ever happen
148
- }
149
- /**
150
- * Takes a CPU usage sample for both the container and the system.
151
- *
152
- * @returns An object containing the container and system CPU usage.
153
- * @internal
154
- */
155
- export async function sampleCpuUsage(cGroupsVersion) {
156
- const [containerUsage, systemUsage] = await Promise.all([
157
- getContainerCpuUsage(cGroupsVersion),
158
- getSystemCpuUsage(),
159
- ]);
160
- return { containerUsage, systemUsage };
161
- }
162
- let previousSample = { containerUsage: 0, systemUsage: 0 };
163
- /**
164
- * Gets the cpu usage of the system.
165
- * If the crawler is running in a containerized environment, crawlee will check for a cgroup enforced cpu limit.
166
- * If a cgroup limit is found, it will be taken as the maximum load against which the current load will be gauged.
167
- * @returns a number between 0 and 1 for the cpu load
168
- * @internal
169
- */
170
- export async function getCurrentCpuTicksV2(containerized = false) {
171
- try {
172
- // if not containerized
173
- if (!containerized) {
174
- // bare metal cpu limit
175
- return getCurrentCpuTicks();
176
- }
177
- if (!CLOCK_TICKS_CHECKED) {
178
- CLOCK_TICKS_PER_SECOND = getClockTicks();
179
- CLOCK_TICKS_CHECKED = true;
180
- }
181
- const cgroupsVersion = await getCgroupsVersion();
182
- // if cgroup is not detected, return bare metal cpu limit
183
- if (cgroupsVersion === null) {
184
- log.deprecated('Your environment is containerized, but your system does not support cgroups.\n' +
185
- "If you're running containers with limited cpu, cpu auto-scaling will not work properly.");
186
- return getCurrentCpuTicks();
187
- }
188
- // cgroup aware cpu limit. If no limits are set, default to returning getCurrentCpuTicks.
189
- const quota = await getCpuQuota(cgroupsVersion);
190
- if (quota === null) {
191
- // no cgroup limit, return host cpu load
192
- return getCurrentCpuTicks();
193
- }
194
- const period = await getCpuPeriod(cgroupsVersion);
195
- // eg. having a 200000us quots per 100000us means the cGroup can fully use 2 cores
196
- const cpuAllowance = quota / period;
197
- const sample = await sampleCpuUsage(cgroupsVersion);
198
- const containerDelta = sample.containerUsage - previousSample.containerUsage;
199
- const systemDelta = sample.systemUsage - previousSample.systemUsage;
200
- previousSample = sample;
201
- const numCpus = os.cpus().length;
202
- // Calculate the CPU usage percentage.
203
- return ((containerDelta / systemDelta) * numCpus) / cpuAllowance;
204
- }
205
- catch (err) {
206
- // if anything fails, default to bare metal metrics
207
- log.exception(err, 'Cpu snapshot failed.');
208
- return getCurrentCpuTicks();
209
- }
210
- }
211
- //# sourceMappingURL=cpu-info.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cpu-info.js","sourceRoot":"","sources":["../../../src/internals/system-info/cpu-info.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Describes memory usage of the process.
3
- */
4
- export interface MemoryInfo {
5
- /** Total memory available in the system or container */
6
- totalBytes: number;
7
- /** Amount of free memory in the system or container */
8
- freeBytes: number;
9
- /** Amount of memory used (= totalBytes - freeBytes) */
10
- usedBytes: number;
11
- /** Amount of memory used the current Node.js process */
12
- mainProcessBytes: number;
13
- /** Amount of memory used by child processes of the current Node.js process */
14
- childProcessesBytes: number;
15
- }
16
- /**
17
- * Returns memory statistics of the process and the system, see {@link MemoryInfo}.
18
- *
19
- * If the process runs inside of a container, the `getMemoryInfo` gets container memory limits,
20
- * otherwise it gets system memory limits.
21
- *
22
- * Beware that the function is quite inefficient because it spawns a new process.
23
- * Therefore you shouldn't call it too often, like more than once per second.
24
- * @returns An object containing the free and used memory metrics.
25
- * @internal
26
- */
27
- export declare function getMemoryInfo(containerized?: boolean): Promise<MemoryInfo>;
28
- //# sourceMappingURL=memory-info.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-info.d.ts","sourceRoot":"","sources":["../../../src/internals/system-info/memory-info.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IAEnB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAElB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAElB,wDAAwD;IACxD,gBAAgB,EAAE,MAAM,CAAC;IAEzB,8EAA8E;IAC9E,mBAAmB,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,aAAa,UAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAgG9E"}
@@ -1,118 +0,0 @@
1
- import { execSync } from 'node:child_process';
2
- import { readFile } from 'node:fs/promises';
3
- import { freemem, totalmem } from 'node:os';
4
- import log from '@apify/log';
5
- import { getCgroupsVersion, isLambda } from '../general.js';
6
- import { psTree } from './ps-tree.js';
7
- const MEMORY_FILE_PATHS = {
8
- TOTAL: {
9
- V1: '/sys/fs/cgroup/memory/memory.limit_in_bytes',
10
- V2: '/sys/fs/cgroup/memory.max',
11
- },
12
- USED: {
13
- V1: '/sys/fs/cgroup/memory/memory.usage_in_bytes',
14
- V2: '/sys/fs/cgroup/memory.current',
15
- },
16
- };
17
- /**
18
- * Returns memory statistics of the process and the system, see {@link MemoryInfo}.
19
- *
20
- * If the process runs inside of a container, the `getMemoryInfo` gets container memory limits,
21
- * otherwise it gets system memory limits.
22
- *
23
- * Beware that the function is quite inefficient because it spawns a new process.
24
- * Therefore you shouldn't call it too often, like more than once per second.
25
- * @returns An object containing the free and used memory metrics.
26
- * @internal
27
- */
28
- export async function getMemoryInfo(containerized = false) {
29
- let mainProcessBytes = -1;
30
- let childProcessesBytes = 0;
31
- // lambda does *not* have `ps` and other command line tools
32
- // required to extract memory usage.
33
- if (isLambda()) {
34
- // reported in bytes
35
- mainProcessBytes = process.memoryUsage().rss;
36
- // https://stackoverflow.com/a/55914335/129415
37
- const memInfo = execSync('cat /proc/meminfo').toString();
38
- const values = memInfo.split(/[\n: ]/).filter((val) => val.trim());
39
- // /proc/meminfo reports in kb, not bytes, the total used memory is reported by meminfo
40
- // subtract memory used by the main node process in order to infer memory used by any child processes
41
- childProcessesBytes = +values[19] * 1000 - mainProcessBytes;
42
- }
43
- else {
44
- // Query both root and child processes
45
- const processes = await psTree(process.pid, true);
46
- processes.forEach((rec) => {
47
- // Obtain main process' memory separately
48
- if (rec.PID === `${process.pid}`) {
49
- mainProcessBytes = rec.RSS;
50
- return;
51
- }
52
- childProcessesBytes += rec.RSS;
53
- });
54
- }
55
- let totalBytes;
56
- let usedBytes;
57
- let freeBytes;
58
- if (isLambda()) {
59
- // memory size is defined in megabytes
60
- totalBytes = parseInt(process.env.AWS_LAMBDA_FUNCTION_MEMORY_SIZE, 10) * 1000000;
61
- usedBytes = mainProcessBytes + childProcessesBytes;
62
- freeBytes = totalBytes - usedBytes;
63
- log.debug(`lambda size of ${totalBytes} with ${freeBytes} free bytes`);
64
- }
65
- else if (containerized) {
66
- // When running inside a container, use container memory limits
67
- const cgroupsVersion = await getCgroupsVersion();
68
- try {
69
- if (cgroupsVersion === null) {
70
- throw new Error('cgroup not available');
71
- }
72
- let [totalBytesStr, usedBytesStr] = await Promise.all([
73
- readFile(MEMORY_FILE_PATHS.TOTAL[cgroupsVersion], 'utf8'),
74
- readFile(MEMORY_FILE_PATHS.USED[cgroupsVersion], 'utf8'),
75
- ]);
76
- // Cgroups V2 files contains newline character. Getting rid of it for better handling in later part of the code.
77
- totalBytesStr = totalBytesStr.replace(/[^a-zA-Z0-9 ]/g, '');
78
- usedBytesStr = usedBytesStr.replace(/[^a-zA-Z0-9 ]/g, '');
79
- // Cgroups V2 contains 'max' string if memory is not limited
80
- // See https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git/tree/Documentation/admin-guide/cgroup-v2.rst (see "memory.max")
81
- if (totalBytesStr === 'max') {
82
- totalBytes = totalmem();
83
- // Cgroups V1 is set to number related to platform and page size if memory is not limited
84
- // See https://unix.stackexchange.com/q/420906
85
- }
86
- else {
87
- totalBytes = parseInt(totalBytesStr, 10);
88
- const containerRunsWithUnlimitedMemory = totalBytes > Number.MAX_SAFE_INTEGER;
89
- if (containerRunsWithUnlimitedMemory)
90
- totalBytes = totalmem();
91
- }
92
- usedBytes = parseInt(usedBytesStr, 10);
93
- freeBytes = totalBytes - usedBytes;
94
- }
95
- catch (err) {
96
- // log.deprecated logs a warning only once
97
- log.deprecated('Your environment is containerized, but your system does not support memory cgroups. ' +
98
- "If you're running containers with limited memory, memory auto-scaling will not work properly.\n\n" +
99
- `Cause: ${err.message}`);
100
- totalBytes = totalmem();
101
- freeBytes = freemem();
102
- usedBytes = totalBytes - freeBytes;
103
- }
104
- }
105
- else {
106
- totalBytes = totalmem();
107
- freeBytes = freemem();
108
- usedBytes = totalBytes - freeBytes;
109
- }
110
- return {
111
- totalBytes,
112
- freeBytes,
113
- usedBytes,
114
- mainProcessBytes,
115
- childProcessesBytes,
116
- };
117
- }
118
- //# sourceMappingURL=memory-info.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-info.js","sourceRoot":"","sources":["../../../src/internals/system-info/memory-info.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"ps-tree.d.ts","sourceRoot":"","sources":["../../../src/internals/system-info/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,UAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA+G9F"}
@@ -1,145 +0,0 @@
1
- import { spawn } from 'node:child_process';
2
- import * as readline from 'node:readline';
3
- /**
4
- * Returns a promise that resolves with an array of ProcessInfo objects representing
5
- * the children of the given PID.
6
- *
7
- * @param pid - The PID (number or string) for which to list child processes.
8
- * @param includeRoot - Optional flag. When true, include the process with the given PID if found.
9
- * Defaults to false.
10
- * @internal
11
- */
12
- export async function psTree(pid, includeRoot = false) {
13
- return new Promise((resolve, reject) => {
14
- if (typeof pid === 'number') {
15
- pid = pid.toString();
16
- }
17
- let processLister;
18
- if (process.platform === 'win32') {
19
- processLister = spawn('powershell', [
20
- '-NoProfile',
21
- '-Command',
22
- 'Get-CimInstance Win32_Process | Format-Table ProcessId,ParentProcessId,WorkingSetSize,Name',
23
- ]);
24
- }
25
- else {
26
- processLister = spawn('ps', ['-A', '-o', 'ppid,pid,stat,rss,comm']);
27
- }
28
- processLister.on('error', reject);
29
- if (!processLister.stdout) {
30
- reject(new Error('Child process stdout is null'));
31
- return;
32
- }
33
- // Create a readline interface to process stdout line-by-line.
34
- const rl = readline.createInterface({
35
- input: processLister.stdout,
36
- });
37
- const rows = [];
38
- let headers = null;
39
- rl.on('line', (line) => {
40
- const trimmed = line.trim();
41
- if (trimmed === '') {
42
- return; // Skip empty lines.
43
- }
44
- // When headers have been set, skip a dashed separator line.
45
- const fields = trimmed.split(/\s+/);
46
- if (headers !== null && fields.every((field) => /^-+$/.test(field))) {
47
- return;
48
- }
49
- // The first nonempty line is assumed to be the header row.
50
- if (!headers) {
51
- headers = fields.map(normalizeHeader);
52
- return;
53
- }
54
- // Copy the fields into an array to process.
55
- const columns = fields.slice();
56
- // Build the process row object.
57
- const row = {};
58
- const hdrs = headers.slice();
59
- // For all headers except the last one, assign one column per header.
60
- // The last header gets all remaining columns joined (in case the command name contains spaces).
61
- for (const [index, header] of hdrs.entries()) {
62
- let value;
63
- if (index === hdrs.length - 1) {
64
- value = columns.join(' ');
65
- }
66
- else {
67
- value = columns.shift();
68
- }
69
- if (header === 'RSS') {
70
- row[header] = Number.parseInt(value, 10);
71
- if (process.platform !== 'win32') {
72
- // On Unix like systems, convert RSS (in KB) to bytes.
73
- row[header] *= 1024;
74
- }
75
- }
76
- else {
77
- row[header] = value;
78
- }
79
- }
80
- // On Windows, add STAT with a null value for compatibility.
81
- if (process.platform === 'win32') {
82
- row.STAT = null;
83
- }
84
- rows.push(row);
85
- });
86
- rl.on('close', () => {
87
- const parents = {};
88
- const children = [];
89
- // Seed with the provided PID.
90
- parents[pid] = true;
91
- // Build the list of child processes.
92
- rows.forEach((proc) => {
93
- // Skip the 'ps' or 'powershell' commands used by psTree to query the processes
94
- if (proc.COMMAND === 'ps' || proc.COMMAND === 'powershell.exe') {
95
- return;
96
- }
97
- if (parents[proc.PPID]) {
98
- parents[proc.PID] = true;
99
- children.push(proc);
100
- }
101
- else if (includeRoot && pid === proc.PID) {
102
- children.push(proc);
103
- }
104
- });
105
- resolve(children);
106
- });
107
- // Also listen for errors on the stdout stream.
108
- processLister.stdout.on('error', reject);
109
- });
110
- }
111
- /**
112
- * Normalizes the header names so that the rest of the code can work uniformly.
113
- *
114
- * On non‑Windows systems, we only adjust "COMM" to "COMMAND" (e.g. on macOS).
115
- * On Windows, the headers from Get-CimInstance + Format-Table are:
116
- *
117
- * ProcessId, ParentProcessId, WorkingSetSize, Name
118
- *
119
- * which are mapped to:
120
- *
121
- * PID, PPID, RSS, COMMAND
122
- */
123
- function normalizeHeader(str) {
124
- if (process.platform !== 'win32') {
125
- // macOS may output "COMM" instead of "COMMAND"
126
- if (str === 'COMM')
127
- return 'COMMAND';
128
- return str;
129
- }
130
- switch (str) {
131
- case 'Name':
132
- return 'COMMAND';
133
- case 'ParentProcessId':
134
- return 'PPID';
135
- case 'ProcessId':
136
- return 'PID';
137
- case 'Status':
138
- return 'STAT';
139
- case 'WorkingSetSize':
140
- return 'RSS';
141
- default:
142
- throw new Error(`Unknown process listing header: ${str}`);
143
- }
144
- }
145
- //# sourceMappingURL=ps-tree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ps-tree.js","sourceRoot":"","sources":["../../../src/internals/system-info/ps-tree.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /** @ignore */
2
- export declare function entries<T extends {}>(obj: T): [keyof T, T[keyof T]][];
3
- /** @ignore */
4
- export declare function keys<T extends {}>(obj: T): (keyof T)[];
5
- //# sourceMappingURL=typedefs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typedefs.d.ts","sourceRoot":"","sources":["../../src/internals/typedefs.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,wBAAgB,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,GACV,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACxD;AAED,cAAc;AACd,wBAAgB,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,GACV,CAAC,MAAM,CAAC,CAAC,EAAE,CACzC"}