| Offset 1, 5 lines modified | Offset 1, 5 lines modified | ||
| 1 | Zip·file·size:·37 | 1 | Zip·file·size:·3790292·bytes,·number·of·entries:·3 |
| 2 | -rw-r--r--··4.5·unx·······30·bx·stor·26-Feb-06·01:36·metadata.json | 2 | -rw-r--r--··4.5·unx·······30·bx·stor·26-Feb-06·01:36·metadata.json |
| 3 | -rw-r--r--··4.5·unx··373 | 3 | -rw-r--r--··4.5·unx··3736873·bx·stor·26-Feb-06·01:36·pkg-tshy-3.1.3-hee61e0b_0.tar.zst |
| 4 | -rw-r--r--··4.5·unx····528 | 4 | -rw-r--r--··4.5·unx····52859·bx·stor·26-Feb-06·01:36·info-tshy-3.1.3-hee61e0b_0.tar.zst |
| 5 | 3·files,·378 | 5 | 3·files,·3789762·bytes·uncompressed,·3789762·bytes·compressed:··0.0% |
| Offset 19, 121 lines modified | Offset 19, 121 lines modified | ||
| 19 | 00005D·LOCAL·HEADER·#2·······04034B50 | 19 | 00005D·LOCAL·HEADER·#2·······04034B50 |
| 20 | 000061·Extract·Zip·Spec······2D·'4.5' | 20 | 000061·Extract·Zip·Spec······2D·'4.5' |
| 21 | 000062·Extract·OS············00·'MS-DOS' | 21 | 000062·Extract·OS············00·'MS-DOS' |
| 22 | 000063·General·Purpose·Flag··0000 | 22 | 000063·General·Purpose·Flag··0000 |
| 23 | 000065·Compression·Method····0000·'Stored' | 23 | 000065·Compression·Method····0000·'Stored' |
| 24 | 000067·Last·Mod·Time·········5C460C98·'Fri·Feb··6·01:36:48·2026' | 24 | 000067·Last·Mod·Time·········5C460C98·'Fri·Feb··6·01:36:48·2026' |
| 25 | 00006B·CRC··················· | 25 | 00006B·CRC···················B639E619 |
| 26 | 00006F·Compressed·Length·····FFFFFFFF | 26 | 00006F·Compressed·Length·····FFFFFFFF |
| 27 | 000073·Uncompressed·Length···FFFFFFFF | 27 | 000073·Uncompressed·Length···FFFFFFFF |
| 28 | 000077·Filename·Length·······0021 | 28 | 000077·Filename·Length·······0021 |
| 29 | 000079·Extra·Length··········0014 | 29 | 000079·Extra·Length··········0014 |
| 30 | 00007B·Filename··············'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' | 30 | 00007B·Filename··············'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' |
| 31 | 00009C·Extra·ID·#0001········0001·'ZIP64' | 31 | 00009C·Extra·ID·#0001········0001·'ZIP64' |
| 32 | 00009E···Length··············0010 | 32 | 00009E···Length··············0010 |
| 33 | 0000A0···Uncompressed·Size···00000000003 | 33 | 0000A0···Uncompressed·Size···0000000000390529 |
| 34 | 0000A8···Compressed·Size·····00000000003 | 34 | 0000A8···Compressed·Size·····0000000000390529 |
| 35 | 0000B0·PAYLOAD | 35 | 0000B0·PAYLOAD |
| 36 | 3 | 36 | 3905D9·LOCAL·HEADER·#3·······04034B50 |
| 37 | 3 | 37 | 3905DD·Extract·Zip·Spec······2D·'4.5' |
| 38 | 3 | 38 | 3905DE·Extract·OS············00·'MS-DOS' |
| 39 | 3 | 39 | 3905DF·General·Purpose·Flag··0000 |
| 40 | 3 | 40 | 3905E1·Compression·Method····0000·'Stored' |
| 41 | 3 | 41 | 3905E3·Last·Mod·Time·········5C460C98·'Fri·Feb··6·01:36:48·2026' |
| 42 | 3 | 42 | 3905E7·CRC···················DDD9214E |
| 43 | 3 | 43 | 3905EB·Compressed·Length·····FFFFFFFF |
| 44 | 3 | 44 | 3905EF·Uncompressed·Length···FFFFFFFF |
| 45 | 3 | 45 | 3905F3·Filename·Length·······0022 |
| 46 | 3 | 46 | 3905F5·Extra·Length··········0014 |
| 47 | 3 | 47 | 3905F7·Filename··············'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' |
| 48 | 390 | 48 | 390619·Extra·ID·#0001········0001·'ZIP64' |
| 49 | 390 | 49 | 39061B···Length··············0010 |
| 50 | 390 | 50 | 39061D···Uncompressed·Size···000000000000CE7B |
| 51 | 390 | 51 | 390625···Compressed·Size·····000000000000CE7B |
| 52 | 390 | 52 | 39062D·PAYLOAD |
| 53 | 39 | 53 | 39D4A8·CENTRAL·HEADER·#1·····02014B50 |
| 54 | 39 | 54 | 39D4AC·Created·Zip·Spec······2D·'4.5' |
| 55 | 39 | 55 | 39D4AD·Created·OS············03·'Unix' |
| 56 | 39 | 56 | 39D4AE·Extract·Zip·Spec······2D·'4.5' |
| 57 | 39 | 57 | 39D4AF·Extract·OS············00·'MS-DOS' |
| 58 | 39 | 58 | 39D4B0·General·Purpose·Flag··0000 |
| 59 | 39 | 59 | 39D4B2·Compression·Method····0000·'Stored' |
| 60 | 39 | 60 | 39D4B4·Last·Mod·Time·········5C460C98·'Fri·Feb··6·01:36:48·2026' |
| 61 | 39 | 61 | 39D4B8·CRC···················2E6500CB |
| 62 | 39 | 62 | 39D4BC·Compressed·Length·····FFFFFFFF |
| 63 | 39 | 63 | 39D4C0·Uncompressed·Length···FFFFFFFF |
| 64 | 39 | 64 | 39D4C4·Filename·Length·······000D |
| 65 | 39 | 65 | 39D4C6·Extra·Length··········0014 |
| 66 | 39 | 66 | 39D4C8·Comment·Length········0000 |
| 67 | 39 | 67 | 39D4CA·Disk·Start············0000 |
| 68 | 39 | 68 | 39D4CC·Int·File·Attributes···0000 |
| 69 | ·······[Bit·0]···············0·'Binary·Data' | 69 | ·······[Bit·0]···············0·'Binary·Data' |
| 70 | 39 | 70 | 39D4CE·Ext·File·Attributes···81A40000 |
| 71 | 39 | 71 | 39D4D2·Local·Header·Offset···00000000 |
| 72 | 39 | 72 | 39D4D6·Filename··············'XXXXXXXXXXXXX' |
| 73 | 39 | 73 | 39D4E3·Extra·ID·#0001········0001·'ZIP64' |
| 74 | 39 | 74 | 39D4E5···Length··············0010 |
| 75 | 39 | 75 | 39D4E7···Uncompressed·Size···000000000000001E |
| 76 | 39 | 76 | 39D4EF···Compressed·Size·····000000000000001E |
| 77 | 39 | 77 | 39D4F7·CENTRAL·HEADER·#2·····02014B50 |
| 78 | 39 | 78 | 39D4FB·Created·Zip·Spec······2D·'4.5' |
| 79 | 39 | 79 | 39D4FC·Created·OS············03·'Unix' |
| 80 | 39 | 80 | 39D4FD·Extract·Zip·Spec······2D·'4.5' |
| 81 | 39 | 81 | 39D4FE·Extract·OS············00·'MS-DOS' |
| 82 | 39 | 82 | 39D4FF·General·Purpose·Flag··0000 |
| 83 | 39 | 83 | 39D501·Compression·Method····0000·'Stored' |
| 84 | 39 | 84 | 39D503·Last·Mod·Time·········5C460C98·'Fri·Feb··6·01:36:48·2026' |
| 85 | 39 | 85 | 39D507·CRC···················B639E619 |
| 86 | 39 | 86 | 39D50B·Compressed·Length·····FFFFFFFF |
| 87 | 39 | 87 | 39D50F·Uncompressed·Length···FFFFFFFF |
| 88 | 39 | 88 | 39D513·Filename·Length·······0021 |
| 89 | 39 | 89 | 39D515·Extra·Length··········0014 |
| 90 | 39 | 90 | 39D517·Comment·Length········0000 |
| 91 | 39 | 91 | 39D519·Disk·Start············0000 |
| 92 | 39 | 92 | 39D51B·Int·File·Attributes···0000 |
| 93 | ·······[Bit·0]···············0·'Binary·Data' | 93 | ·······[Bit·0]···············0·'Binary·Data' |
| 94 | 39 | 94 | 39D51D·Ext·File·Attributes···81A40000 |
| 95 | 39 | 95 | 39D521·Local·Header·Offset···0000005D |
| 96 | 39 | 96 | 39D525·Filename··············'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' |
| 97 | 39 | 97 | 39D546·Extra·ID·#0001········0001·'ZIP64' |
| 98 | 39 | 98 | 39D548···Length··············0010 |
| 99 | 39 | 99 | 39D54A···Uncompressed·Size···0000000000390529 |
| 100 | 39 | 100 | 39D552···Compressed·Size·····0000000000390529 |
| 101 | 39 | 101 | 39D55A·CENTRAL·HEADER·#3·····02014B50 |
| 102 | 39 | 102 | 39D55E·Created·Zip·Spec······2D·'4.5' |
| 103 | 39 | 103 | 39D55F·Created·OS············03·'Unix' |
| 104 | 39 | 104 | 39D560·Extract·Zip·Spec······2D·'4.5' |
| 105 | 39 | 105 | 39D561·Extract·OS············00·'MS-DOS' |
| 106 | 39 | 106 | 39D562·General·Purpose·Flag··0000 |
| 107 | 39 | 107 | 39D564·Compression·Method····0000·'Stored' |
| 108 | 39 | 108 | 39D566·Last·Mod·Time·········5C460C98·'Fri·Feb··6·01:36:48·2026' |
| 109 | 39 | 109 | 39D56A·CRC···················DDD9214E |
| 110 | 39 | 110 | 39D56E·Compressed·Length·····FFFFFFFF |
| 111 | 39 | 111 | 39D572·Uncompressed·Length···FFFFFFFF |
| 112 | 39 | 112 | 39D576·Filename·Length·······0022 |
| Max diff block lines reached; 1228/8697 bytes (14.12%) of diff not shown. | |||
| Offset 216, 42 lines modified | Offset 216, 42 lines modified | ||
| 216 | -rw-r--r--···0········0········0·····4488·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/README.md | 216 | -rw-r--r--···0········0········0·····4488·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/README.md |
| 217 | -rw-r--r--···0········0········0·······92·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/all-signals.d.ts | 217 | -rw-r--r--···0········0········0·······92·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/all-signals.d.ts |
| 218 | -rw-r--r--···0········0········0······169·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/all-signals.d.ts.map | 218 | -rw-r--r--···0········0········0······169·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/all-signals.d.ts.map |
| 219 | -rw-r--r--···0········0········0·····1553·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/all-signals.js | 219 | -rw-r--r--···0········0········0·····1553·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/all-signals.js |
| 220 | -rw-r--r--···0········0········0·····2231·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/all-signals.js.map | 220 | -rw-r--r--···0········0········0·····2231·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/all-signals.js.map |
| 221 | -rw-r--r--···0········0········0·····2824·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/index.d.ts | 221 | -rw-r--r--···0········0········0·····2824·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/index.d.ts |
| 222 | -rw-r--r--···0········0········0·····1928·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/index.d.ts.map | 222 | -rw-r--r--···0········0········0·····1928·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/index.d.ts.map |
| 223 | -rw-r--r--···0········0········0····· | 223 | -rw-r--r--···0········0········0·····4648·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/index.js |
| 224 | -rw-r--r--···0········0········0···· | 224 | -rw-r--r--···0········0········0····10682·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/index.js.map |
| 225 | -rw-r--r--···0········0········0·······25·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/package.json | 225 | -rw-r--r--···0········0········0·······25·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/package.json |
| 226 | -rw-r--r--···0········0········0······232·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/proxy-signals.d.ts | 226 | -rw-r--r--···0········0········0······232·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/proxy-signals.d.ts |
| 227 | -rw-r--r--···0········0········0······226·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/proxy-signals.d.ts.map | 227 | -rw-r--r--···0········0········0······226·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/proxy-signals.d.ts.map |
| 228 | -rw-r--r--···0········0········0·····1159·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/proxy-signals.js | 228 | -rw-r--r--···0········0········0·····1159·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/proxy-signals.js |
| 229 | -rw-r--r--···0········0········0·····1884·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/proxy-signals.js.map | 229 | -rw-r--r--···0········0········0·····1884·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/proxy-signals.js.map |
| 230 | -rw-r--r--···0········0········0······4 | 230 | -rw-r--r--···0········0········0······486·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/watchdog.d.ts |
| 231 | -rw-r--r--···0········0········0······21 | 231 | -rw-r--r--···0········0········0······217·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/watchdog.d.ts.map |
| 232 | -rw-r--r--···0········0········0·····1 | 232 | -rw-r--r--···0········0········0·····1729·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/watchdog.js |
| 233 | -rw-r--r--···0········0········0·····2 | 233 | -rw-r--r--···0········0········0·····2598·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/watchdog.js.map |
| 234 | -rw-r--r--···0········0········0·······92·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/all-signals.d.ts | 234 | -rw-r--r--···0········0········0·······92·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/all-signals.d.ts |
| 235 | -rw-r--r--···0········0········0······169·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/all-signals.d.ts.map | 235 | -rw-r--r--···0········0········0······169·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/all-signals.d.ts.map |
| 236 | -rw-r--r--···0········0········0·····1269·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/all-signals.js | 236 | -rw-r--r--···0········0········0·····1269·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/all-signals.js |
| 237 | -rw-r--r--···0········0········0·····2254·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/all-signals.js.map | 237 | -rw-r--r--···0········0········0·····2254·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/all-signals.js.map |
| 238 | -rw-r--r--···0········0········0·····2824·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/index.d.ts | 238 | -rw-r--r--···0········0········0·····2824·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/index.d.ts |
| 239 | -rw-r--r--···0········0········0·····1928·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/index.d.ts.map | 239 | -rw-r--r--···0········0········0·····1928·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/index.d.ts.map |
| 240 | -rw-r--r--···0········0········0····· | 240 | -rw-r--r--···0········0········0·····4328·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/index.js |
| 241 | -rw-r--r--···0········0········0···· | 241 | -rw-r--r--···0········0········0····10741·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/index.js.map |
| 242 | -rw-r--r--···0········0········0·······23·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/package.json | 242 | -rw-r--r--···0········0········0·······23·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/package.json |
| 243 | -rw-r--r--···0········0········0······232·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/proxy-signals.d.ts | 243 | -rw-r--r--···0········0········0······232·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/proxy-signals.d.ts |
| 244 | -rw-r--r--···0········0········0······226·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/proxy-signals.d.ts.map | 244 | -rw-r--r--···0········0········0······226·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/proxy-signals.d.ts.map |
| 245 | -rw-r--r--···0········0········0······997·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/proxy-signals.js | 245 | -rw-r--r--···0········0········0······997·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/proxy-signals.js |
| 246 | -rw-r--r--···0········0········0·····1896·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/proxy-signals.js.map | 246 | -rw-r--r--···0········0········0·····1896·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/proxy-signals.js.map |
| 247 | -rw-r--r--···0········0········0······4 | 247 | -rw-r--r--···0········0········0······486·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/watchdog.d.ts |
| 248 | -rw-r--r--···0········0········0······21 | 248 | -rw-r--r--···0········0········0······217·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/watchdog.d.ts.map |
| 249 | -rw-r--r--···0········0········0·····1 | 249 | -rw-r--r--···0········0········0·····1571·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/watchdog.js |
| 250 | -rw-r--r--···0········0········0·····2 | 250 | -rw-r--r--···0········0········0·····2605·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/dist/esm/watchdog.js.map |
| 251 | -rw-r--r--···0········0········0·····2422·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/package.json | 251 | -rw-r--r--···0········0········0·····2422·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/foreground-child/package.json |
| 252 | -rw-r--r--···0········0········0·····1764·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/glob/LICENSE.md | 252 | -rw-r--r--···0········0········0·····1764·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/glob/LICENSE.md |
| 253 | -rw-r--r--···0········0········0····42939·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/glob/README.md | 253 | -rw-r--r--···0········0········0····42939·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/glob/README.md |
| 254 | -rw-r--r--···0········0········0····14810·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/glob/dist/commonjs/glob.d.ts | 254 | -rw-r--r--···0········0········0····14810·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/glob/dist/commonjs/glob.d.ts |
| 255 | -rw-r--r--···0········0········0·····4038·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/glob/dist/commonjs/glob.d.ts.map | 255 | -rw-r--r--···0········0········0·····4038·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/glob/dist/commonjs/glob.d.ts.map |
| 256 | -rw-r--r--···0········0········0·····8546·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/glob/dist/commonjs/glob.js | 256 | -rw-r--r--···0········0········0·····8546·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/glob/dist/commonjs/glob.js |
| 257 | -rw-r--r--···0········0········0····28220·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/glob/dist/commonjs/glob.js.map | 257 | -rw-r--r--···0········0········0····28220·2026-02-06·01:36:49.000000·lib/node_modules/tshy/node_modules/glob/dist/commonjs/glob.js.map |
| Offset 116, 123 lines modified | Offset 116, 176 lines modified | ||
| 00000730:·6f6e·4578·6974·2928·6368·696c·6448·616e··onExit)(childHan | 00000730:·6f6e·4578·6974·2928·6368·696c·6448·616e··onExit)(childHan | ||
| 00000740:·6775·7029·3b0a·2020·2020·2830·2c20·7072··gup);.····(0,·pr | 00000740:·6775·7029·3b0a·2020·2020·2830·2c20·7072··gup);.····(0,·pr | ||
| 00000750:·6f78·795f·7369·676e·616c·735f·6a73·5f31··oxy_signals_js_1 | 00000750:·6f78·795f·7369·676e·616c·735f·6a73·5f31··oxy_signals_js_1 | ||
| 00000760:·2e70·726f·7879·5369·676e·616c·7329·2863··.proxySignals)(c | 00000760:·2e70·726f·7879·5369·676e·616c·7329·2863··.proxySignals)(c | ||
| 00000770:·6869·6c64·293b·0a20·2020·2063·6f6e·7374··hild);.····const | 00000770:·6869·6c64·293b·0a20·2020·2063·6f6e·7374··hild);.····const | ||
| 00000780:·2064·6f67·203d·2028·302c·2077·6174·6368···dog·=·(0,·watch | 00000780:·2064·6f67·203d·2028·302c·2077·6174·6368···dog·=·(0,·watch | ||
| 00000790:·646f·675f·6a73·5f31·2e77·6174·6368·646f··dog_js_1.watchdo | 00000790:·646f·675f·6a73·5f31·2e77·6174·6368·646f··dog_js_1.watchdo | ||
| 000007a0:·6729·2863·6869·6c64·293b·0a20·2020·206 | 000007a0:·6729·2863·6869·6c64·293b·0a20·2020·2064··g)(child);.····d | ||
| 000007b0:·6f67·2e6f·6e28·2763·6c6f·7365·272c·2028··og.on('close',·( | |||
| 000007b0:·6574·2064·6f6e·6520·3d20·6661·6c73·653b··et·done·=·false; | |||
| 000007c0:·0a20·2020·2063·6869·6c64·2e6f·6e28·2763··.····child.on('c | |||
| 000007d0:·6c6f·7365·272c·2061·7379·6e63·2028·636f··lose',·async·(co | |||
| 000007 | 000007c0:·636f·6465·2c20·7369·676e·616c·2920·3d3e··code,·signal)·=> | ||
| 000007f0:·0a20·2020·2020·2020·202f·2a20·6338·2069··.········/*·c8·i | |||
| 00000800:·676e·6f72·6520·7374·6172·7420·2a2f·0a20··gnore·start·*/.· | |||
| 00000 | 000007d0:·207b·0a20·2020·2020·2020·2069·6620·2864···{.········if·(d | ||
| 00000820:·0a20·2020·2020·2020·2020·2020·2072·6574··.············ret | |||
| 00000830:·7572·6e3b·0a20·2020·2020·2020·202f·2a20··urn;.········/*· | |||
| 00000840:·6338·2069·676e·6f72·6520·7374·6f70·202a··c8·ignore·stop·* | |||
| 00000850:·2f0a·2020·2020·2020·2020·646f·6e65·203d··/.········done·= | |||
| 00000860:·2074·7275·653b·0a20·2020·2020·2020·2063···true;.········c | |||
| 00000870:·6f6e·7374·2072·6573·756c·7420·3d20·636c··onst·result·=·cl | |||
| 00000880:·6561·6e75·7028·636f·6465·2c20·7369·676e··eanup(code,·sign | |||
| 00000890:·616c·2c20·7b0a·2020·2020·2020·2020·2020··al,·{.·········· | |||
| 000008a0:·2020·7761·7463·6864·6f67·5069·643a·2064····watchdogPid:·d | |||
| 000008b0:·6f67·2e70·6964·2c0a·2020·2020·2020·2020··og.pid,.········ | |||
| 000008c0:·7d29·3b0a·2020·2020·2020·2020·636f·6e73··});.········cons | |||
| 000008d0:·7420·7265·7320·3d20·6973·5072·6f6d·6973··t·res·=·isPromis | |||
| 000008e0:·6528·7265·7375·6c74·2920·3f20·6177·6169··e(result)·?·awai | |||
| 000008f0:·7420·7265·7375·6c74·203a·2072·6573·756c··t·result·:·resul | |||
| 00000900:·743b·0a20·2020·2020·2020·2072·656d·6f76··t;.········remov | |||
| 00000910:·654f·6e45·7869·7428·293b·0a20·2020·2020··eOnExit();.····· | |||
| 00000920:·2020·2069·6620·2872·6573·203d·3d3d·2066·····if·(res·===·f | |||
| 00000 | 000007e0:·6f6e·6529·0a20·2020·2020·2020·2020·2020··one).··········· | ||
| 00000940:·2020·7265·7475·726e·3b0a·2020·2020·2020····return;.······ | |||
| 00000950:·2020·656c·7365·2069·6620·2874·7970·656f····else·if·(typeo | |||
| 00000960:·6620·7265·7320·3d3d·3d20·2773·7472·696e··f·res·===·'strin | |||
| 00000970:·6727·2920·7b0a·2020·2020·2020·2020·2020··g')·{.·········· | |||
| 00000980:·2020·7369·676e·616c·203d·2072·6573·3b0a····signal·=·res;. | |||
| 00000990:·2020·2020·2020·2020·2020·2020·636f·6465··············code | |||
| 00000 | 000007f0:·2072·6574·7572·6e3b·0a20·2020·2020·2020···return;.······· | ||
| 000009b0:·207d·0a20·2020·2020·2020·2065·6c73·6520···}.········else· | |||
| 000009c0:·6966·2028·7479·7065·6f66·2072·6573·203d··if·(typeof·res·= | |||
| 000009d0:·3d3d·2027·6e75·6d62·6572·2729·207b·0a20··==·'number')·{.· | |||
| 000009e0:·2020·2020·2020·2020·2020·2063·6f64·6520·············code· | |||
| 000009f0:·3d20·7265·733b·0a20·2020·2020·2020·2020··=·res;.········· | |||
| 00000a00:·2020·2073·6967·6e61·6c20·3d20·6e75·6c6c·····signal·=·null | |||
| 00000a10:·3b0a·2020·2020·2020·2020·7d0a·2020·2020··;.········}.···· | |||
| 00000a20:·2020·2020·6966·2028·7369·676e·616c·2920······if·(signal)· | |||
| 00000a30:·7b0a·2020·2020·2020·2020·2020·2020·2f2f··{.············// | |||
| 00000a40:·2049·6620·7468·6572·6520·6973·206e·6f74···If·there·is·not | |||
| 00000a50:·6869·6e67·2065·6c73·6520·6b65·6570·696e··hing·else·keepin | |||
| 00000a60:·6720·7468·6520·6576·656e·7420·6c6f·6f70··g·the·event·loop | |||
| 00000a70:·2061·6c69·7665·2c0a·2020·2020·2020·2020···alive,.········ | |||
| 00000a80:·2020·2020·2f2f·2074·6865·6e20·7468·6572······//·then·ther | |||
| 00000a90:·6527·7320·6120·7261·6365·2062·6574·7765··e's·a·race·betwe | |||
| 00000aa0:·656e·2061·2067·7261·6365·6675·6c20·6578··en·a·graceful·ex | |||
| 00000ab0:·6974·2061·6e64·2067·6574·7469·6e67·0a20··it·and·getting.· | |||
| 00000ac0:·2020·2020·2020·2020·2020·202f·2f20·7468·············//·th | |||
| 00000ad0:·6520·7369·676e·616c·2074·6f20·7468·6973··e·signal·to·this | |||
| 00000ae0:·2070·726f·6365·7373·2e20·2050·7574·2074···process.··Put·t | |||
| 00000af0:·6869·7320·7469·6d65·6f75·7420·6865·7265··his·timeout·here | |||
| 00000b00:·2074·6f0a·2020·2020·2020·2020·2020·2020···to.············ | |||
| 00000b10:·2f2f·206d·616b·6520·7375·7265·2077·6527··//·make·sure·we' | |||
| 00000b20:·7265·2073·7469·6c6c·2061·6c69·7665·2074··re·still·alive·t | |||
| 00000b30:·6f20·6765·7420·7468·6520·7369·676e·616c··o·get·the·signal | |||
| 00000b40:·2c20·616e·6420·7468·7573·0a20·2020·2020··,·and·thus.····· | |||
| 00000b50:·2020·2020·2020·202f·2f20·6578·6974·2077·········//·exit·w | |||
| 00000b60:·6974·6820·7468·6520·696e·7465·6e64·6564··ith·the·intended | |||
| 00000b70:·2073·6967·6e61·6c20·636f·6465·2e0a·2020···signal·code..·· | |||
| 00000b80:·2020·2020·2020·2020·2020·2f2a·2069·7374············/*·ist | |||
| 00000b90:·616e·6275·6c20·6967·6e6f·7265·206e·6578··anbul·ignore·nex | |||
| 00000ba0:·7420·2a2f·0a20·2020·2020·2020·2020·2020··t·*/.··········· | |||
| 00000bb0:·2073·6574·5469·6d65·6f75·7428·2829·203d···setTimeout(()·= | |||
| 00000bc0:·3e20·7b20·7d2c·2032·3030·3029·3b0a·2020··>·{·},·2000);.·· | |||
| 00000bd0:·2020·2020·2020·2020·2020·7472·7920·7b0a············try·{. | |||
| 00000be0:·2020·2020·2020·2020·2020·2020·2020·2020·················· | |||
| 00000bf0:·7072·6f63·6573·732e·6b69·6c6c·2870·726f··process.kill(pro | |||
| 00000c00:·6365·7373·2e70·6964·2c20·7369·676e·616c··cess.pid,·signal | |||
| 00000c10:·293b·0a20·2020·2020·2020·2020·2020·2020··);.············· | |||
| 00000 | 00000800:·202f·2a20·6338·2069·676e·6f72·6520·7374···/*·c8·ignore·st | ||
| 00000810:·6172·740a·2020·2020·2020·2020·202a·2074··art.·········*·t | |||
| 00000820:·6869·7320·7368·6f75·6c64·2062·6520·696d··his·should·be·im | |||
| 00000830:·706f·7373·6962·6c65·2c20·616e·6420·6973··possible,·and·is | |||
| 00000840:·2069·6e74·656e·7469·6f6e·616c·6c79·2068···intentionally·h | |||
| 00000850:·6964·6465·6e20·6672·6f6d·2074·6865·0a20··idden·from·the.· | |||
| 00000860:·2020·2020·2020·2020·2a20·636f·6e73·756d··········*·consum | |||
| 00000870:·6572·2c20·7468·7573·2069·6d70·6f73·7369··er,·thus·impossi | |||
| 00000880:·626c·6520·746f·2074·6573·742e·0a20·2020··ble·to·test..··· | |||
| 00000890:·2020·2020·2020·2a20·486f·7765·7665·722c········*·However, | |||
| 000008a0:·2077·6865·6e20·7468·6520·7761·7463·6864···when·the·watchd | |||
| 000008b0:·6f67·2070·726f·6365·7373·2064·6965·7320··og·process·dies· | |||
| 000008c0:·756e·6578·7065·6374·6564·6c79·2066·6f72··unexpectedly·for | |||
| 000008d0:·2073·6f6d·6520·7265·6173·6f6e·2c0a·2020···some·reason,.·· | |||
| 000008e0:·2020·2020·2020·202a·2074·6869·7320·6361·········*·this·ca | |||
| 000008f0:·7573·6573·2045·5645·5259·2074·6573·7420··uses·EVERY·test· | |||
| 00000900:·746f·2066·6169·6c20·696d·6d65·6469·6174··to·fail·immediat | |||
| 00000910:·656c·792c·2073·6f20·7765·2063·616e·2062··ely,·so·we·can·b | |||
| 00000920:·6520·7265·6173·6f6e·6162·6c79·0a20·2020··e·reasonably.··· | |||
| Max diff block lines reached; -1/20151 bytes (-0.00%) of diff not shown. | |||
| Offset 1, 13 lines modified | Offset 1, 13 lines modified | ||
| 1 | { | 1 | { |
| 2 | ····"file":·"index.js", | 2 | ····"file":·"index.js", |
| 3 | ····"mappings":·";;;AAkIA,0CA | 3 | ····"mappings":·";;;AAkIA,0CAiHC;AAnPD,2DAO2B;AAC3B,6CAAoC;AACpC,yDAAiD;AACjD,+CAAwC;AAqDxC;;;;;;GAMG;AACI,MAAM,eAAe,GAAG,CAC7B,MAAc,EAMd,EAAE;IACF,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC,GAAG,MAAM,CAAA;IACrE,IAAI,OAAO,IAAI,KAAK,U[·...·truncated·by·diffoscope;·len:·1830,·SHA:·068663111167cf1df147d3771404f3f676df3d770588495ae4711be8caf993bc·...·],IAAI,IAAI,GAAG,KAAK,CAAA;IAChB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QACvC,qBAAqB;QACrB,IAAI,IAAI;YAAE,OAAM;QAChB,oBAAoB;QACpB,IAAI,GAAG,IAAI,CAAA;QACX,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE;YACnC,WAAW,EAAE,GAAG,CAAC,GAAG;SACrB,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;QACrD,YAAY,EAAE,CAAA;QAEd,IAAI,GAAG,KAAK,KAAK;YAAE,OAAM;aACpB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,CAAA;YACZ,IAAI,GAAG,IAAI,CAAA;QACb,CAAC;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,IAAI,GAAG,GAAG,CAAA;YACV,MAAM,GAAG,IAAI,CAAA;QACf,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,yDAAyD;YACzD,0DAA0D;YAC1D,wDAAwD;YACxD,0DAA0D;YAC1D,sCAAsC;YACtC,0BAA0B;YAC1B,UAAU,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,CAAC,CAAA;YAC1B,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;gBACjC,qBAAqB;YACvB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YACtC,CAAC;YACD,oBAAoB;QACtB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;QACzB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QAErC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;YAC1C,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;YAC5C,KAAK,CAAC,IAAI,CACR,OAAuB,EACvB,UAAoC,CACrC,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,CAAM,EAAqB,EAAE,CAC9C,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAA", |
| 4 | ····"names":·[], | 4 | ····"names":·[], |
| 5 | ····"sourceRoot":·"", | 5 | ····"sourceRoot":·"", |
| 6 | ····"sources":·[ | 6 | ····"sources":·[ |
| 7 | ········"../../src/index.ts" | 7 | ········"../../src/index.ts" |
| 8 | ····], | 8 | ····], |
| 9 | ····"sourcesContent":·[ | 9 | ····"sourcesContent":·[ |
| 10 | ········"import·{\n··ChildProcessByStdio,\n··SendHandle,\n··Serializable,\n··spawn,\n··SpawnOptions,\n··ChildProcess,\n}·from·'node:child_process'\nimport·{·onExit·}·from·'signal-exit'\nimport·{·proxySignals·}·from·'./proxy-signals.js'\nimport·{·watchdog·}·from·'./watchdog.js'\n\n/**\n·*·The·signature·for·the·cleanup·method.\n·*\n·*·Arguments·indicate·the·exit·status·of·the·child·process.\n·*\n·*·If·a·Promise·is·returned,·then·the·process·is·not·terminated\n·*·until·it·resolves,·and·the·resolution·value·is·treated·as·the\n·*·exit·status·(if·a·number)·or·signal·exit·(if·a·signal·string).\n·*\n·*·If·`undefined`·is·returned,·then·no·change·is·made,·and·the·parent\n·*·exits·in·the·same·way·that·the·child·exited.\n·*\n·*·If·boolean·`false`·is·returned,·then·the·parent's·exit·is·canceled.\n·*\n·*·If·a·number·is·returned,·then·the·parent·process·exits·with·the·number\n·*·as·its·exitCode.\n·*\n·*·If·a·signal·string·is·returned,·then·the·parent·process·is·killed·with\n·*·the·same·signal·that·caused·the·child·to·exit.\n·*/\nexport·type·Cleanup·=·(\n··code:·number·|·null,\n··signal:·null·|·NodeJS.Signals,\n··processInfo:·{\n····watchdogPid?:·ChildProcess['pid']\n··},\n)·=>\n··|·void\n··|·undefined\n··|·number\n··|·NodeJS.Signals\n··|·false\n··|·Promise<void·|·undefined·|·number·|·NodeJS.Signals·|·false>\n\nexport·type·FgArgs·=\n··|·[program:·string·|·[cmd:·string,·...args:·string[]],·cleanup?:·Cleanup]\n··|·[\n······program:·[cmd:·string,·...args:·string[]],\n······opts?:·SpawnOptions,\n······cleanup?:·Cleanup,\n····]\n··|·[program:·string,·cleanup?:·Cleanup]\n··|·[program:·string,·opts?:·SpawnOptions,·cleanup?:·Cleanup]\n··|·[program:·string,·args?:·string[],·cleanup?:·Cleanup]\n··|·[\n······program:·string,\n······args?:·string[],\n······opts?:·SpawnOptions,\n······cleanup?:·Cleanup,\n····]\n\n/**\n·*·Normalizes·the·arguments·passed·to·`foregroundChild`.\n·*\n·*·Exposed·for·testing.\n·*\n·*·@internal\n·*/\nexport·const·normalizeFgArgs·=·(\n··fgArgs:·FgArgs,\n):·[\n··program:·string,\n··args:·string[],\n··spawnOpts:·SpawnOptions,\n··cleanup:·Cleanup,\n]·=>·{\n··let·[program,·args·=·[],·spawnOpts·=·{},·cleanup·=·()·=>·{}]·=·fgArgs\n··if·(typeof·args·===·'function')·{\n····cleanup·=·args\n····spawnOpts·=·{}\n····args·=·[]\n··}·else·if·(!!args·&&·typeof·args·===·'object'·&&·!Array.isArray(args))·{\n····if·(typeof·spawnOpts·===·'function')·cleanup·=·spawnOpts\n····spawnOpts·=·args\n····args·=·[]\n··}·else·if·(typeof·spawnOpts·===·'function')·{\n····cleanup·=·spawnOpts\n····spawnOpts·=·{}\n··}\n··if·(Array.isArray(program))·{\n····const·[pp,·...pa]·=·program\n····program·=·pp\n····args·=·pa\n··}\n··return·[program,·args,·{·...spawnOpts·},·cleanup]\n}\n\n/**\n·*·Spawn·the·specified·program·as·a·\"foreground\"·process,·or·at·least·as\n·*·close·as·is·possible·given·node's·lack·of·exec-without-fork.\n·*\n·*·Cleanup·method·may·be·used·to·modify·or·ignore·the·result·of·the·child's\n·*·exit·code·or·signal.·If·cleanup·returns·undefined·(or·a·Promise·that\n·*·resolves·to·undefined),·then·the·parent·will·exit·in·the·same·way·that\n·*·the·child·did.\n·*\n·*·Return·boolean·`false`·to·prevent·the·parent's·exit·entirely.\n·*/\nexport·function·foregroundChild(\n··cmd:·string·|·[cmd:·string,·...args:·string[]],\n··cleanup?:·Cleanup,\n):·ChildProcessByStdio<null,·null,·null>\nexport·function·foregroundChild(\n··program:·string,\n··args?:·string[],\n··cleanup?:·Cleanup,\n):·ChildProcessByStdio<null,·null,·null>\nexport·function·foregroundChild(\n··program:·string,\n··spawnOpts?:·SpawnOptions,\n··cleanup?:·Cleanup,\n):·ChildProcessByStdio<null,·null,·null>\nexport·function·foregroundChild(\n··program:·string,\n··args?:·string[],\n··spawnOpts?:·SpawnOptions,\n··cleanup?:·Cleanup,\n):·ChildProcessByStdio<null,·null,·null>\nexport·function·foregroundChild(\n··...fgArgs:·FgArgs\n):·ChildProcessByStdio<null,·null,·null>·{\n··const·[program,·args,·spawnOpts,·cleanup]·=·normalizeFgArgs(fgArgs)\n\n··spawnOpts.stdio·=·[0,·1,·2]\n··if·(process.send)·{\n····spawnOpts.stdio.push('ipc')\n··}\n\n··const·child·=·spawn(program,·args,·spawnOpts)·as·ChildProcessByStdio<\n····null,\n····null,\n····null\n··>\n\n··const·childHangup·=·()·=>·{\n····try·{\n······child.kill('SIGHUP')\n\n······/*·c8·ignore·start·*/\n····}·catch·(_)·{\n······//·SIGHUP·is·weird·on·windows\n······child.kill('SIGTERM')\n····}\n····/*·c8·ignore·stop·*/\n··}\n··const·removeOnExit·=·onExit(childHangup)\n\n··proxySignals(child)\n··const·dog·=·watchdog(child)\n\n··let·done·=·false\n··child.on('close',·async·(code,·signal)·=>·{\n····/*·c8·ignore·start·*/\n····if·(done)·return\n····/*·c8·ignore·stop·*/\n····done·=·true\n····const·result·=·cleanup(code,·signal,·{\n······watchdogPid:·dog.pid,\n····})\n····const·res·=·isPromise(result)·?·await·result·:·result\n····removeOnExit()\n\n····if·(res·===·false)·return\n····else·if·(typeof·res·===·'string')·{\n······signal·=·res\n······code·=·null\n····}·else·if·(typeof·res·===·'number')·{\n······code·=·res\n······signal·=·null\n····}\n\n····if·(signal)·{\n······//·If·there·is·nothing·else·keeping·the·event·loop·alive,\n······//·then·there's·a·race·between·a·graceful·exit·and·getting\n······//·the·signal·to·this·process.··Put·this·timeout·here·to\n······//·make·sure·we're·still·alive·to·get·the·signal,·and·thus\n······//·exit·with·the·intended·signal·code.\n······/*·istanbul·ignore·next·*/\n······setTimeout(()·=>·{},·2000)\n······try·{\n········process.kill(process.pid,·signal)\n········/*·c8·ignore·start·*/\n······}·catch·(_)·{\n········process.kill(process.pid,·'SIGTERM')\n······}\n······/*·c8·ignore·stop·*/\n····}·else·{\n······process.exit(code·||·0)\n····}\n··})\n\n··if·(process.send)·{\n····process.removeAllListeners('message')\n\n····child.on('message',·(message,·sendHandle)·=>·{\n······process.send?.(message,·sendHandle)\n····})\n\n····process.on('message',·(message,·sendHandle)·=>·{\n······child.send(\n········message·as·Serializable,\n········sendHandle·as·SendHandle·|·undefined,\n······)\n····})\n··}\n\n··return·child\n}\n\nconst·isPromise·=·(o:·any):·o·is·Promise<any>·=>\n··!!o·&&·typeof·o·===·'object'·&&·typeof·o.then·===·'function'\n" | 10 | ········"import·{\n··ChildProcessByStdio,\n··SendHandle,\n··Serializable,\n··spawn,\n··SpawnOptions,\n··ChildProcess,\n}·from·'node:child_process'\nimport·{·onExit·}·from·'signal-exit'\nimport·{·proxySignals·}·from·'./proxy-signals.js'\nimport·{·watchdog·}·from·'./watchdog.js'\n\n/**\n·*·The·signature·for·the·cleanup·method.\n·*\n·*·Arguments·indicate·the·exit·status·of·the·child·process.\n·*\n·*·If·a·Promise·is·returned,·then·the·process·is·not·terminated\n·*·until·it·resolves,·and·the·resolution·value·is·treated·as·the\n·*·exit·status·(if·a·number)·or·signal·exit·(if·a·signal·string).\n·*\n·*·If·`undefined`·is·returned,·then·no·change·is·made,·and·the·parent\n·*·exits·in·the·same·way·that·the·child·exited.\n·*\n·*·If·boolean·`false`·is·returned,·then·the·parent's·exit·is·canceled.\n·*\n·*·If·a·number·is·returned,·then·the·parent·process·exits·with·the·number\n·*·as·its·exitCode.\n·*\n·*·If·a·signal·string·is·returned,·then·the·parent·process·is·killed·with\n·*·the·same·signal·that·caused·the·child·to·exit.\n·*/\nexport·type·Cleanup·=·(\n··code:·number·|·null,\n··signal:·null·|·NodeJS.Signals,\n··processInfo:·{\n····watchdogPid?:·ChildProcess['pid']\n··},\n)·=>\n··|·void\n··|·undefined\n··|·number\n··|·NodeJS.Signals\n··|·false\n··|·Promise<void·|·undefined·|·number·|·NodeJS.Signals·|·false>\n\nexport·type·FgArgs·=\n··|·[program:·string·|·[cmd:·string,·...args:·string[]],·cleanup?:·Cleanup]\n··|·[\n······program:·[cmd:·string,·...args:·string[]],\n······opts?:·SpawnOptions,\n······cleanup?:·Cleanup,\n····]\n··|·[program:·string,·cleanup?:·Cleanup]\n··|·[program:·string,·opts?:·SpawnOptions,·cleanup?:·Cleanup]\n··|·[program:·string,·args?:·string[],·cleanup?:·Cleanup]\n··|·[\n······program:·string,\n······args?:·string[],\n······opts?:·SpawnOptions,\n······cleanup?:·Cleanup,\n····]\n\n/**\n·*·Normalizes·the·arguments·passed·to·`foregroundChild`.\n·*\n·*·Exposed·for·testing.\n·*\n·*·@internal\n·*/\nexport·const·normalizeFgArgs·=·(\n··fgArgs:·FgArgs,\n):·[\n··program:·string,\n··args:·string[],\n··spawnOpts:·SpawnOptions,\n··cleanup:·Cleanup,\n]·=>·{\n··let·[program,·args·=·[],·spawnOpts·=·{},·cleanup·=·()·=>·{}]·=·fgArgs\n··if·(typeof·args·===·'function')·{\n····cleanup·=·args\n····spawnOpts·=·{}\n····args·=·[]\n··}·else·if·(!!args·&&·typeof·args·===·'object'·&&·!Array.isArray(args))·{\n····if·(typeof·spawnOpts·===·'function')·cleanup·=·spawnOpts\n····spawnOpts·=·args\n····args·=·[]\n··}·else·if·(typeof·spawnOpts·===·'function')·{\n····cleanup·=·spawnOpts\n····spawnOpts·=·{}\n··}\n··if·(Array.isArray(program))·{\n····const·[pp,·...pa]·=·program\n····program·=·pp\n····args·=·pa\n··}\n··return·[program,·args,·{·...spawnOpts·},·cleanup]\n}\n\n/**\n·*·Spawn·the·specified·program·as·a·\"foreground\"·process,·or·at·least·as\n·*·close·as·is·possible·given·node's·lack·of·exec-without-fork.\n·*\n·*·Cleanup·method·may·be·used·to·modify·or·ignore·the·result·of·the·child's\n·*·exit·code·or·signal.·If·cleanup·returns·undefined·(or·a·Promise·that\n·*·resolves·to·undefined),·then·the·parent·will·exit·in·the·same·way·that\n·*·the·child·did.\n·*\n·*·Return·boolean·`false`·to·prevent·the·parent's·exit·entirely.\n·*/\nexport·function·foregroundChild(\n··cmd:·string·|·[cmd:·string,·...args:·string[]],\n··cleanup?:·Cleanup,\n):·ChildProcessByStdio<null,·null,·null>\nexport·function·foregroundChild(\n··program:·string,\n··args?:·string[],\n··cleanup?:·Cleanup,\n):·ChildProcessByStdio<null,·null,·null>\nexport·function·foregroundChild(\n··program:·string,\n··spawnOpts?:·SpawnOptions,\n··cleanup?:·Cleanup,\n):·ChildProcessByStdio<null,·null,·null>\nexport·function·foregroundChild(\n··program:·string,\n··args?:·string[],\n··spawnOpts?:·SpawnOptions,\n··cleanup?:·Cleanup,\n):·ChildProcessByStdio<null,·null,·null>\nexport·function·foregroundChild(\n··...fgArgs:·FgArgs\n):·ChildProcessByStdio<null,·null,·null>·{\n··const·[program,·args,·spawnOpts,·cleanup]·=·normalizeFgArgs(fgArgs)\n\n··spawnOpts.stdio·=·[0,·1,·2]\n··if·(process.send)·{\n····spawnOpts.stdio.push('ipc')\n··}\n\n··const·child·=·spawn(program,·args,·spawnOpts)·as·ChildProcessByStdio<\n····null,\n····null,\n····null\n··>\n\n··const·childHangup·=·()·=>·{\n····try·{\n······child.kill('SIGHUP')\n\n······/*·c8·ignore·start·*/\n····}·catch·(_)·{\n······//·SIGHUP·is·weird·on·windows\n······child.kill('SIGTERM')\n····}\n····/*·c8·ignore·stop·*/\n··}\n··const·removeOnExit·=·onExit(childHangup)\n\n··proxySignals(child)\n··const·dog·=·watchdog(child)\n\n··dog.on('close',·(code,·signal)·=>·{\n····if·(done)·return\n····/*·c8·ignore·start\n·····*·this·should·be·impossible,·and·is·intentionally·hidden·from·the\n·····*·consumer,·thus·impossible·to·test.\n·····*·However,·when·the·watchdog·process·dies·unexpectedl[·...·truncated·by·diffoscope;·len:·476,·SHA:·dd833b8d2bba1205aec1269c2e783e5db000acf4720c6c9776202539272eb909·...·]let·done·=·false\n··child.on('close',·async·(code,·signal)·=>·{\n····/*·c8·ignore·start·*/\n····if·(done)·return\n····/*·c8·ignore·stop·*/\n····done·=·true\n····const·result·=·cleanup(code,·signal,·{\n······watchdogPid:·dog.pid,\n····})\n····const·res·=·isPromise(result)·?·await·result·:·result\n····removeOnExit()\n\n····if·(res·===·false)·return\n····else·if·(typeof·res·===·'string')·{\n······signal·=·res\n······code·=·null\n····}·else·if·(typeof·res·===·'number')·{\n······code·=·res\n······signal·=·null\n····}\n\n····if·(signal)·{\n······//·If·there·is·nothing·else·keeping·the·event·loop·alive,\n······//·then·there's·a·race·between·a·graceful·exit·and·getting\n······//·the·signal·to·this·process.··Put·this·timeout·here·to\n······//·make·sure·we're·still·alive·to·get·the·signal,·and·thus\n······//·exit·with·the·intended·signal·code.\n······/*·istanbul·ignore·next·*/\n······setTimeout(()·=>·{},·2000)\n······try·{\n········process.kill(process.pid,·signal)\n········/*·c8·ignore·start·*/\n······}·catch·(_)·{\n········process.kill(process.pid,·'SIGTERM')\n······}\n······/*·c8·ignore·stop·*/\n····}·else·{\n······process.exit(code·||·0)\n····}\n··})\n\n··if·(process.send)·{\n····process.removeAllListeners('message')\n\n····child.on('message',·(message,·sendHandle)·=>·{\n······process.send?.(message,·sendHandle)\n····})\n\n····process.on('message',·(message,·sendHandle)·=>·{\n······child.send(\n········message·as·Serializable,\n········sendHandle·as·SendHandle·|·undefined,\n······)\n····})\n··}\n\n··return·child\n}\n\nconst·isPromise·=·(o:·any):·o·is·Promise<any>·=>\n··!!o·&&·typeof·o·===·'object'·&&·typeof·o.then·===·'function'\n" |
| 11 | ····], | 11 | ····], |
| 12 | ····"version":·3 | 12 | ····"version":·3 |
| 13 | } | 13 | } |
| Offset 2, 9 lines modified | Offset 2, 9 lines modified | ||
| 2 | /** | 2 | /** |
| 3 | ·*·Pass·in·a·ChildProcess,·and·this·will·spawn·a·watchdog·process·that | 3 | ·*·Pass·in·a·ChildProcess,·and·this·will·spawn·a·watchdog·process·that |
| 4 | ·*·will·make·sure·it·exits·if·the·parent·does,·thus·preventing·any | 4 | ·*·will·make·sure·it·exits·if·the·parent·does,·thus·preventing·any |
| 5 | ·*·dangling·detached·zombie·processes. | 5 | ·*·dangling·detached·zombie·processes. |
| 6 | ·* | 6 | ·* |
| 7 | ·*·If·the·child·ends·before·the·parent,·then·the·watchdog·will·terminate. | 7 | ·*·If·the·child·ends·before·the·parent,·then·the·watchdog·will·terminate. |
| 8 | ·*/ | 8 | ·*/ |
| 9 | export·declare·const·watchdog:·(child:·ChildProcess)·=>·ChildProcess; | 9 | export·declare·const·watchdog:·(child:·ChildProcess)·=>·import("child_process").ChildProcessByStdio<null,·null,·import("stream").Readable>; |
| 10 | //#·sourceMappingURL=watchdog.d.ts.map | 10 | //#·sourceMappingURL=watchdog.d.ts.map |
| Offset 1, 10 lines modified | Offset 1, 10 lines modified | ||
| 1 | { | 1 | { |
| 2 | ····"file":·"watchdog.d.ts", | 2 | ····"file":·"watchdog.d.ts", |
| 3 | ····"mappings":·"AAIA,OAAO,EAAE,YAAY,EAAS,MAAM,eAAe,CAAA;AAyBnD;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,YAAY, | 3 | ····"mappings":·"AAIA,OAAO,EAAE,YAAY,EAAS,MAAM,eAAe,CAAA;AAyBnD;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,YAAY,uFAgB3C,CAAA", |
| 4 | ····"names":·[], | 4 | ····"names":·[], |
| 5 | ····"sourceRoot":·"", | 5 | ····"sourceRoot":·"", |
| 6 | ····"sources":·[ | 6 | ····"sources":·[ |
| 7 | ········"../../src/watchdog.ts" | 7 | ········"../../src/watchdog.ts" |
| 8 | ····], | 8 | ····], |
| 9 | ····"version":·3 | 9 | ····"version":·3 |
| 10 | } | 10 | } |
| Offset 47, 53 lines modified | Offset 47, 63 lines modified | ||
| 000002e0:·207b·0a20·2020·2020·2020·2070·726f·6365···{.········proce | 000002e0:·207b·0a20·2020·2020·2020·2070·726f·6365···{.········proce | ||
| 000002f0:·7373·2e6b·696c·6c28·7069·642c·2027·5349··ss.kill(pid,·'SI | 000002f0:·7373·2e6b·696c·6c28·7069·642c·2027·5349··ss.kill(pid,·'SI | ||
| 00000300:·474b·494c·4c27·290a·2020·2020·2020·2020··GKILL').········ | 00000300:·474b·494c·4c27·290a·2020·2020·2020·2020··GKILL').········ | ||
| 00000310:·7365·7454·696d·656f·7574·2828·2920·3d3e··setTimeout(()·=> | 00000310:·7365·7454·696d·656f·7574·2828·2920·3d3e··setTimeout(()·=> | ||
| 00000320:·2070·726f·6365·7373·2e65·7869·7428·292c···process.exit(), | 00000320:·2070·726f·6365·7373·2e65·7869·7428·292c···process.exit(), | ||
| 00000330:·2032·3030·290a·2020·2020·2020·7d20·6361···200).······}·ca | 00000330:·2032·3030·290a·2020·2020·2020·7d20·6361···200).······}·ca | ||
| 00000340:·7463·6820·285f·2920·7b7d·0a20·2020·207d··tch·(_)·{}.····} | 00000340:·7463·6820·285f·2920·7b7d·0a20·2020·207d··tch·(_)·{}.····} | ||
| 00000350:·2c20·3530·3029·0a20·207d· | 00000350:·2c20·3530·3029·0a20·207d·0a20·2070·726f··,·500).··}.··pro | ||
| 00000360:·6f63·6573·732e·6f6e·2827·5349·4748·5550··ocess.on('SIGHUP | |||
| 00000370:·272c·2062·6172·6b29·0a7d·0a60·3b0a·2f2a··',·bark).}.`;./* | |||
| 000003 | 00000360:·6365·7373·2e6f·6e28·2753·4947·4855·5027··cess.on('SIGHUP' | ||
| 00000370:·2c20·6261·726b·290a·7d0a·603b·0a2f·2a2a··,·bark).}.`;./** | |||
| 00000380:·0a20·2a20·5061·7373·2069·6e20·6120·4368··.·*·Pass·in·a·Ch | |||
| 00000390:·6 | 00000390:·696c·6450·726f·6365·7373·2c20·616e·6420··ildProcess,·and· | ||
| 000003a0:·2074·6869·7320·7769·6c6c·2073·7061·776e···this·will·spawn | |||
| 000003b0:·2061·2077·6174·6368·646f·6720·7072·6f63···a·watchdog·proc | |||
| 000003c0:·6573·7320·7468·6174·0a20·2a20·7769·6c6c··ess·that.·*·will | |||
| 000003d0:·206d·616b·6520·7375·7265·2069·7420·6578···make·sure·it·ex | |||
| 000003e0:·6974·7320·6966·2074·6865·2070·6172·656e··its·if·the·paren | |||
| 000003f0:·7420·646f·6573·2c20·7468·7573·2070·7265··t·does,·thus·pre | |||
| 00000400:·7665·6e74·696e·6720·616e·790a·202a·2064··venting·any.·*·d | |||
| 00000410:·616e·676c·696e·6720·6465·7461·6368·6564··angling·detached | |||
| 00000420:·207a·6f6d·6269·6520·7072·6f63·6573·7365···zombie·processe | |||
| 00000430:·732e·0a20·2a0a·202a·2049·6620·7468·6520··s..·*.·*·If·the· | |||
| 00000440:·6368·696c·6420·656e·6473·2062·6566·6f72··child·ends·befor | |||
| 00000450:·6520·7468·6520·7061·7265·6e74·2c20·7468··e·the·parent,·th | |||
| 00000460:·656e·2074·6865·2077·6174·6368·646f·6720··en·the·watchdog· | |||
| 00000470:·7769·6c6c·2074·6572·6d69·6e61·7465·2e0a··will·terminate.. | |||
| 00000480:·202a·2f0a·636f·6e73·7420·7761·7463·6864···*/.const·watchd | |||
| 00000490:·6f67·203d·2028·6368·696c·6429·203d·3e20··og·=·(child)·=>· | |||
| 000004a0:·7b0a·2020·2020·6c65·7420·646f·6745·7869··{.····let·dogExi | |||
| 000004b0:·7465·6420·3d20·6661·6c73·653b·0a20·2020··ted·=·false;.··· | |||
| 000004c0:·2063·6f6e·7374·2064·6f67·203d·2028·302c···const·dog·=·(0, | |||
| 000004d0:·2063·6869·6c64·5f70·726f·6365·7373·5f31···child_process_1 | |||
| 000004e0:·2e73·7061·776e·2928·7072·6f63·6573·732e··.spawn)(process. | |||
| 000004f0:·6578·6563·5061·7468·2c20·5b27·2d65·272c··execPath,·['-e', | |||
| 00000500:·2077·6174·6368·646f·6743·6f64·652c·2053···watchdogCode,·S | |||
| 00000510:·7472·696e·6728·6368·696c·642e·7069·6429··tring(child.pid) | |||
| 00000 | 000003a0:·7468·6973·2077·696c·6c20·7370·6177·6e20··this·will·spawn· | ||
| 000003b0:·6120·7761·7463·6864·6f67·2070·726f·6365··a·watchdog·proce | |||
| 000003c0:·7373·2074·6861·740a·202a·2077·696c·6c20··ss·that.·*·will· | |||
| 000003d0:·6d61·6b65·2073·7572·6520·6974·2065·7869··make·sure·it·exi | |||
| 000003e0:·7473·2069·6620·7468·6520·7061·7265·6e74··ts·if·the·parent | |||
| 000003f0:·2064·6f65·732c·2074·6875·7320·7072·6576···does,·thus·prev | |||
| 00000400:·656e·7469·6e67·2061·6e79·0a20·2a20·6461··enting·any.·*·da | |||
| 00000410:·6e67·6c69·6e67·2064·6574·6163·6865·6420··ngling·detached· | |||
| 00000420:·7a6f·6d62·6965·2070·726f·6365·7373·6573··zombie·processes | |||
| 00000430:·2e0a·202a·0a20·2a20·4966·2074·6865·2063··..·*.·*·If·the·c | |||
| 00000440:·6869·6c64·2065·6e64·7320·6265·666f·7265··hild·ends·before | |||
| 00000450:·2074·6865·2070·6172·656e·742c·2074·6865···the·parent,·the | |||
| 00000460:·6e20·7468·6520·7761·7463·6864·6f67·2077··n·the·watchdog·w | |||
| 00000470:·696c·6c20·7465·726d·696e·6174·652e·0a20··ill·terminate..· | |||
| 00000480:·2a2f·0a63·6f6e·7374·2077·6174·6368·646f··*/.const·watchdo | |||
| 00000490:·6720·3d20·2863·6869·6c64·2920·3d3e·207b··g·=·(child)·=>·{ | |||
| 000004a0:·0a20·2020·206c·6574·2064·6f67·4578·6974··.····let·dogExit | |||
| 000004b0:·6564·203d·2066·616c·7365·3b0a·2020·2020··ed·=·false;.···· | |||
| 000004c0:·636f·6e73·7420·646f·6720·3d20·2830·2c20··const·dog·=·(0,· | |||
| 000004d0:·6368·696c·645f·7072·6f63·6573·735f·312e··child_process_1. | |||
| 000004e0:·7370·6177·6e29·2870·726f·6365·7373·2e65··spawn)(process.e | |||
| 000004f0:·7865·6350·6174·682c·205b·272d·6527·2c20··xecPath,·['-e',· | |||
| 00000500:·7761·7463·6864·6f67·436f·6465·2c20·5374··watchdogCode,·St | |||
| 00000510:·7269·6e67·2863·6869·6c64·2e70·6964·295d··ring(child.pid)] | |||
| 00000520:·2c20·7b20·7374·6469·6f3a·205b·2769·676e··,·{·stdio:·['ign | |||
| 00000530:·6 | 00000530:·6f72·6527·2c20·2769·676e·6f72·6527·2c20··ore',·'ignore',· | ||
| 00000540:·2020·7d29·3b0a·2020·2020·646f·672e·6f6e····});.····dog.on | |||
| 00000550:·2827·6578·6974·272c·2028·2920·3d3e·2028··('exit',·()·=>·( | |||
| 00000560:·646f·6745·7869·7465·6420·3d20·7472·7565··dogExited·=·true | |||
| 00000570:·2929·3b0a·2020·2020·6368·696c·642e·6f6e··));.····child.on | |||
| 00000580:·2827·6578·6974·272c·2028·2920·3d3e·207b··('exit',·()·=>·{ | |||
| 00000590:·0a20·2020·2020·2020·2069·6620·2821·646f··.········if·(!do | |||
| 000005a0:·6745·7869·7465·6429·0a20·2020·2020·2020··gExited).······· | |||
| 000005b0:·2020·2020·2064·6f67·2e6b·696c·6c28·2753·······dog.kill('S | |||
| 000005c0:·4947·4b49·4c4c·2729·3b0a·2020·2020·7d29··IGKILL');.····}) | |||
| 000005d0:·3b0a·2020·2020·7265·7475·726e·2064·6f67··;.····return·dog | |||
| 000005e0:·3b0a·7d3b·0a65·7870·6f72·7473·2e77·6174··;.};.exports.wat | |||
| 000005f0:·6368·646f·6720·3d20·7761·7463·6864·6f67··chdog·=·watchdog | |||
| 00000600:·3b0a·2f2f·2320·736f·7572·6365·4d61·7070··;.//#·sourceMapp | |||
| 00000610:·696e·6755·524c·3d77·6174·6368·646f·672e··ingURL=watchdog. | |||
| 00000 | 00000540:·2770·6970·6527·5d20·7d29·3b0a·2020·2020··'pipe']·});.···· | ||
| 00000550:·646f·672e·6f6e·2827·6578·6974·272c·2028··dog.on('exit',·( | |||
| 00000560:·2920·3d3e·2028·646f·6745·7869·7465·6420··)·=>·(dogExited· | |||
| 00000570:·3d20·7472·7565·2929·3b0a·2020·2020·646f··=·true));.····do | |||
| 00000580:·672e·7374·6465·7272·2e70·6970·6528·7072··g.stderr.pipe(pr | |||
| 00000590:·6f63·6573·732e·7374·6465·7272·2c20·7b20··ocess.stderr,·{· | |||
| 000005a0:·656e·643a·2066·616c·7365·207d·293b·0a20··end:·false·});.· | |||
| 000005b0:·2020·2063·6869·6c64·2e6f·6e28·2765·7869·····child.on('exi | |||
| 000005c0:·7427·2c20·2829·203d·3e20·7b0a·2020·2020··t',·()·=>·{.···· | |||
| 000005d0:·2020·2020·6966·2028·2164·6f67·4578·6974······if·(!dogExit | |||
| 000005e0:·6564·290a·2020·2020·2020·2020·2020·2020··ed).············ | |||
| 000005f0:·646f·672e·6b69·6c6c·2827·5349·474b·494c··dog.kill('SIGKIL | |||
| 00000600:·4c27·293b·0a20·2020·207d·293b·0a20·2020··L');.····});.··· | |||
| 00000610:·2070·726f·6365·7373·2e6f·6e28·2765·7869···process.on('exi | |||
| 00000620:·7427·2c20·2829·203d·3e20·7b0a·2020·2020··t',·()·=>·{.···· | |||
| 00000630:·2020·2020·6966·2028·2164·6f67·4578·6974······if·(!dogExit | |||
| 00000640:·6564·290a·2020·2020·2020·2020·2020·2020··ed).············ | |||
| 00000650:·646f·672e·6b69·6c6c·2827·5349·474b·494c··dog.kill('SIGKIL | |||
| 00000660:·4c27·293b·0a20·2020·207d·293b·0a20·2020··L');.····});.··· | |||
| 00000670:·2072·6574·7572·6e20·646f·673b·0a7d·3b0a···return·dog;.};. | |||
| 00000680:·6578·706f·7274·732e·7761·7463·6864·6f67··exports.watchdog | |||
| Max diff block lines reached; -1/7516 bytes (-0.01%) of diff not shown. | |||
| Offset 1, 13 lines modified | Offset 1, 13 lines modified | ||
| 1 | { | 1 | { |
| 2 | ····"file":·"watchdog.js", | 2 | ····"file":·"watchdog.js", |
| 3 | ····"mappings":·";AAAA,+DAA+D;AAC/D,gEAAgE;AAChE,uCAAuC;;;AAEvC,iDAAmD;AAEnD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;CAqB9B,CAAA;AAED;;;;;;GAMG;AACI,MAAM,QAAQ,GAAG,CAAC,KAAmB,EAAE,EAAE;IAC9C,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,MAAM,GAAG,GAAG,IAAA,qBAAK,EACf,OAAO,CAAC,QAAQ,EAChB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACvC | 3 | ····"mappings":·";AAAA,+DAA+D;AAC/D,gEAAgE;AAChE,uCAAuC;;;AAEvC,iDAAmD;AAEnD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;CAqB9B,CAAA;AAED;;;;;;GAMG;AACI,MAAM,QAAQ,GAAG,CAAC,KAAmB,EAAE,EAAE;IAC9C,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,MAAM,GAAG,GAAG,IAAA,qBAAK,EACf,OAAO,CAAC,QAAQ,EAChB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACvC,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CACxC,CAAA;IACD,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAA;IACxC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAC/C,KAAK,CA[·...·truncated·by·diffoscope;·len:·297,·SHA:·4b1dff0a1cc2be0004ea17adfb31a42e915b89cd036ce97c886cdf55b4269fc7·...·]pB", |
| 4 | ····"names":·[], | 4 | ····"names":·[], |
| 5 | ····"sourceRoot":·"", | 5 | ····"sourceRoot":·"", |
| 6 | ····"sources":·[ | 6 | ····"sources":·[ |
| 7 | ········"../../src/watchdog.ts" | 7 | ········"../../src/watchdog.ts" |
| 8 | ····], | 8 | ····], |
| 9 | ····"sourcesContent":·[ | 9 | ····"sourcesContent":·[ |
| 10 | ········"//·this·spawns·a·child·process·that·listens·for·SIGHUP·when·the\n//·parent·process·exits,·and·after·200ms,·sends·a·SIGKILL·to·the\n//·child,·in·case·it·did·not·terminate.\n\nimport·{·ChildProcess,·spawn·}·from·'child_process'\n\nconst·watchdogCode·=·String.raw`\nconst·pid·=·parseInt(process.argv[1],·10)\nprocess.title·=·'node·(foreground-child·watchdog·pid='·+·pid·+·')'\nif·(!isNaN(pid))·{\n··let·barked·=·false\n··//·keepalive\n··const·interval·=·setInterval(()·=>·{},·60000)\n··const·bark·=·()·=>·{\n····clearInterval(interval)\n····if·(barked)·return\n····barked·=·true\n····process.removeListener('SIGHUP',·bark)\n····setTimeout(()·=>·{\n······try·{\n········process.kill(pid,·'SIGKILL')\n········setTimeout(()·=>·process.exit(),·200)\n······}·catch·(_)·{}\n····},·500)\n··} | 10 | ········"//·this·spawns·a·child·process·that·listens·for·SIGHUP·when·the\n//·parent·process·exits,·and·after·200ms,·sends·a·SIGKILL·to·the\n//·child,·in·case·it·did·not·terminate.\n\nimport·{·ChildProcess,·spawn·}·from·'child_process'\n\nconst·watchdogCode·=·String.raw`\nconst·pid·=·parseInt(process.argv[1],·10)\nprocess.title·=·'node·(foreground-child·watchdog·pid='·+·pid·+·')'\nif·(!isNaN(pid))·{\n··let·barked·=·false\n··//·keepalive\n··const·interval·=·setInterval(()·=>·{},·60000)\n··const·bark·=·()·=>·{\n····clearInterval(interval)\n····if·(barked)·return\n····barked·=·true\n····process.removeListener('SIGHUP',·bark)\n····setTimeout(()·=>·{\n······try·{\n········process.kill(pid,·'SIGKILL')\n········setTimeout(()·=>·process.exit(),·200)\n······}·catch·(_)·{}\n····},·500)\n··}\n··process.on('SIGHUP',·bark)\n}\n`\n\n/**\n·*·Pass·in·a·ChildProcess,·and·this·will·spawn·a·watchdog·process·that\n·*·will·make·sure·it·exits·if·the·parent·does,·thus·preventing·any\n·*·dangling·detached·zombie·processes.\n·*\n·*·If·the·child·ends·before[·...·truncated·by·diffoscope;·len:·451,·SHA:·bd4f2a7d65969222a0bc5404c41b38df5d4bc2c16a7d28d926999c8a2635c7d0·...·].on('exit',·()·=>·{\n····if·(!dogExited)·dog.kill('SIGKILL')\n··})\n··return·dog\n}\n" |
| 11 | ····], | 11 | ····], |
| 12 | ····"version":·3 | 12 | ····"version":·3 |
| 13 | } | 13 | } |
| Offset 96, 123 lines modified | Offset 96, 176 lines modified | ||
| 000005f0:·6f72·6520·7374·6f70·202a·2f0a·2020·2020··ore·stop·*/.···· | 000005f0:·6f72·6520·7374·6f70·202a·2f0a·2020·2020··ore·stop·*/.···· | ||
| 00000600:·7d3b·0a20·2020·2063·6f6e·7374·2072·656d··};.····const·rem | 00000600:·7d3b·0a20·2020·2063·6f6e·7374·2072·656d··};.····const·rem | ||
| 00000610:·6f76·654f·6e45·7869·7420·3d20·6f6e·4578··oveOnExit·=·onEx | 00000610:·6f76·654f·6e45·7869·7420·3d20·6f6e·4578··oveOnExit·=·onEx | ||
| 00000620:·6974·2863·6869·6c64·4861·6e67·7570·293b··it(childHangup); | 00000620:·6974·2863·6869·6c64·4861·6e67·7570·293b··it(childHangup); | ||
| 00000630:·0a20·2020·2070·726f·7879·5369·676e·616c··.····proxySignal | 00000630:·0a20·2020·2070·726f·7879·5369·676e·616c··.····proxySignal | ||
| 00000640:·7328·6368·696c·6429·3b0a·2020·2020·636f··s(child);.····co | 00000640:·7328·6368·696c·6429·3b0a·2020·2020·636f··s(child);.····co | ||
| 00000650:·6e73·7420·646f·6720·3d20·7761·7463·6864··nst·dog·=·watchd | 00000650:·6e73·7420·646f·6720·3d20·7761·7463·6864··nst·dog·=·watchd | ||
| 00000660:·6f67·2863·6869·6c64·293b·0a20·2020·206 | 00000660:·6f67·2863·6869·6c64·293b·0a20·2020·2064··og(child);.····d | ||
| 00000670:·6f67·2e6f·6e28·2763·6c6f·7365·272c·2028··og.on('close',·( | |||
| 00000670:·6574·2064·6f6e·6520·3d20·6661·6c73·653b··et·done·=·false; | |||
| 00000680:·0a20·2020·2063·6869·6c64·2e6f·6e28·2763··.····child.on('c | |||
| 00000690:·6c6f·7365·272c·2061·7379·6e63·2028·636f··lose',·async·(co | |||
| 000006 | 00000680:·636f·6465·2c20·7369·676e·616c·2920·3d3e··code,·signal)·=> | ||
| 000006b0:·0a20·2020·2020·2020·202f·2a20·6338·2069··.········/*·c8·i | |||
| 000006c0:·676e·6f72·6520·7374·6172·7420·2a2f·0a20··gnore·start·*/.· | |||
| 000006 | 00000690:·207b·0a20·2020·2020·2020·2069·6620·2864···{.········if·(d | ||
| 000006e0:·0a20·2020·2020·2020·2020·2020·2072·6574··.············ret | |||
| 000006f0:·7572·6e3b·0a20·2020·2020·2020·202f·2a20··urn;.········/*· | |||
| 00000700:·6338·2069·676e·6f72·6520·7374·6f70·202a··c8·ignore·stop·* | |||
| 00000710:·2f0a·2020·2020·2020·2020·646f·6e65·203d··/.········done·= | |||
| 00000720:·2074·7275·653b·0a20·2020·2020·2020·2063···true;.········c | |||
| 00000730:·6f6e·7374·2072·6573·756c·7420·3d20·636c··onst·result·=·cl | |||
| 00000740:·6561·6e75·7028·636f·6465·2c20·7369·676e··eanup(code,·sign | |||
| 00000750:·616c·2c20·7b0a·2020·2020·2020·2020·2020··al,·{.·········· | |||
| 00000760:·2020·7761·7463·6864·6f67·5069·643a·2064····watchdogPid:·d | |||
| 00000770:·6f67·2e70·6964·2c0a·2020·2020·2020·2020··og.pid,.········ | |||
| 00000780:·7d29·3b0a·2020·2020·2020·2020·636f·6e73··});.········cons | |||
| 00000790:·7420·7265·7320·3d20·6973·5072·6f6d·6973··t·res·=·isPromis | |||
| 000007a0:·6528·7265·7375·6c74·2920·3f20·6177·6169··e(result)·?·awai | |||
| 000007b0:·7420·7265·7375·6c74·203a·2072·6573·756c··t·result·:·resul | |||
| 000007c0:·743b·0a20·2020·2020·2020·2072·656d·6f76··t;.········remov | |||
| 000007d0:·654f·6e45·7869·7428·293b·0a20·2020·2020··eOnExit();.····· | |||
| 000007e0:·2020·2069·6620·2872·6573·203d·3d3d·2066·····if·(res·===·f | |||
| 00000 | 000006a0:·6f6e·6529·0a20·2020·2020·2020·2020·2020··one).··········· | ||
| 000006b0:·2072·6574·7572·6e3b·0a20·2020·2020·2020···return;.······· | |||
| 000006c0:·202f·2a20·6338·2069·676e·6f72·6520·7374···/*·c8·ignore·st | |||
| 00000800:·2020·7265·7475·726e·3b0a·2020·2020·2020····return;.······ | |||
| 00000810:·2020·656c·7365·2069·6620·2874·7970·656f····else·if·(typeo | |||
| 00000820:·6620·7265·7320·3d3d·3d20·2773·7472·696e··f·res·===·'strin | |||
| 00000 | 000006d0:·6172·740a·2020·2020·2020·2020·202a·2074··art.·········*·t | ||
| 00000 | 000006e0:·6869·7320·7368·6f75·6c64·2062·6520·696d··his·should·be·im | ||
| 000006f0:·706f·7373·6962·6c65·2c20·616e·6420·6973··possible,·and·is | |||
| 00000700:·2069·6e74·656e·7469·6f6e·616c·6c79·2068···intentionally·h | |||
| 00000710:·6964·6465·6e20·6672·6f6d·2074·6865·0a20··idden·from·the.· | |||
| 00000720:·2020·2020·2020·2020·2a20·636f·6e73·756d··········*·consum | |||
| 00000730:·6572·2c20·7468·7573·2069·6d70·6f73·7369··er,·thus·impossi | |||
| 00000740:·626c·6520·746f·2074·6573·742e·0a20·2020··ble·to·test..··· | |||
| 00000750:·2020·2020·2020·2a20·486f·7765·7665·722c········*·However, | |||
| 00000760:·2077·6865·6e20·7468·6520·7761·7463·6864···when·the·watchd | |||
| 00000770:·6f67·2070·726f·6365·7373·2064·6965·7320··og·process·dies· | |||
| 00000780:·756e·6578·7065·6374·6564·6c79·2066·6f72··unexpectedly·for | |||
| 00000790:·2073·6f6d·6520·7265·6173·6f6e·2c0a·2020···some·reason,.·· | |||
| 000007a0:·2020·2020·2020·202a·2074·6869·7320·6361·········*·this·ca | |||
| 000007b0:·7573·6573·2045·5645·5259·2074·6573·7420··uses·EVERY·test· | |||
| 000007c0:·746f·2066·6169·6c20·696d·6d65·6469·6174··to·fail·immediat | |||
| 000007d0:·656c·792c·2073·6f20·7765·2063·616e·2062··ely,·so·we·can·b | |||
| 000007e0:·6520·7265·6173·6f6e·6162·6c79·0a20·2020··e·reasonably.··· | |||
| 000007f0:·2020·2020·2020·2a20·7375·7265·2074·6861········*·sure·tha | |||
| 00000800:·7420·6974·2773·2064·6f69·6e67·2069·7473··t·it's·doing·its | |||
| 00000810:·206a·6f62·2e20·2a2f·0a20·2020·2020·2020···job.·*/.······· | |||
| 00000820:·2063·6869·6c64·2e6b·696c·6c28·2753·4947···child.kill('SIG | |||
| 00000830:·4b49·4c4c·2729·3b0a·2020·2020·2020·2020··KILL');.········ | |||
| 00000840:·7468·726f·7720·6e65·7720·4572·726f·7228··throw·new·Error( | |||
| 00000850:·2766·6f72·6567·726f·756e·642d·6368·696c··'foreground-chil | |||
| 00000860:·6420·7761·7463·6864·6f67·2070·726f·6365··d·watchdog·proce | |||
| 00000870:·7373·2064·6965·6420·756e·6578·7065·6374··ss·died·unexpect | |||
| 00000880:·6564·6c79·2127·2c20·7b0a·2020·2020·2020··edly!',·{.······ | |||
| 00000890:·2020·2020·2020·6361·7573·653a·207b·0a20········cause:·{.· | |||
| 000008a0:·2020·2020·2020·2020·2020·2020·2020·2070·················p | |||
| 000008b0:·6964·3a20·646f·672e·7069·642c·0a20·2020··id:·dog.pid,.··· | |||
| 000008 | 000008c0:·2020·2020·2020·2020·2020·2020·2063·6f64···············cod | ||
| 00000860:·203d·206e·756c·6c3b·0a20·2020·2020·2020···=·null;.······· | |||
| 00000870:·207d·0a20·2020·2020·2020·2065·6c73·6520···}.········else· | |||
| 00000880:·6966·2028·7479·7065·6f66·2072·6573·203d··if·(typeof·res·= | |||
| 00000890:·3d3d·2027·6e75·6d62·6572·2729·207b·0a20··==·'number')·{.· | |||
| 000008a0:·2020·2020·2020·2020·2020·2063·6f64·6520·············code· | |||
| 000008b0:·3d20·7265·733b·0a20·2020·2020·2020·2020··=·res;.········· | |||
| 000008c0:·2020·2073·6967·6e61·6c20·3d20·6e75·6c6c·····signal·=·null | |||
| 000008d0:· | 000008d0:·652c·0a20·2020·2020·2020·2020·2020·2020··e,.············· | ||
| 000008e0:·2020·2073·6967·6e61·6c2c·0a20·2020·2020·····signal,.····· | |||
| 000008e0:·2020·2020·6966·2028·7369·676e·616c·2920······if·(signal)· | |||
| 000008f0:·7b0a·2020·2020·2020·2020·2020·2020·2f2f··{.············// | |||
| 00000900:·2049·6620·7468·6572·6520·6973·206e·6f74···If·there·is·not | |||
| 00000910:·6869·6e67·2065·6c73·6520·6b65·6570·696e··hing·else·keepin | |||
| 00000920:·6720·7468·6520·6576·656e·7420·6c6f·6f70··g·the·event·loop | |||
| 00000930:·2061·6c69·7665·2c0a·2020·2020·2020·2020···alive,.········ | |||
| 00000940:·2020·2020·2f2f·2074·6865·6e20·7468·6572······//·then·ther | |||
| 00000950:·6527·7320·6120·7261·6365·2062·6574·7765··e's·a·race·betwe | |||
| 00000960:·656e·2061·2067·7261·6365·6675·6c20·6578··en·a·graceful·ex | |||
| 00000970:·6974·2061·6e64·2067·6574·7469·6e67·0a20··it·and·getting.· | |||
| 00000 | 000008f0:·2020·2020·2020·2020·2020·2077·6174·6368·············watch | ||
| 00000900:·6564·5072·6f63·6573·733a·207b·0a20·2020··edProcess:·{.··· | |||
| 00000990:·6520·7369·676e·616c·2074·6f20·7468·6973··e·signal·to·this | |||
| 000009a0:·2070·726f·6365·7373·2e20·2050·7574·2074···process.··Put·t | |||
| 000009b0:·6869·7320·7469·6d65·6f75·7420·6865·7265··his·timeout·here | |||
| 000009c0:·2074·6f0a·2020·2020·2020·2020·2020·2020···to.············ | |||
| 000009d0:·2f2f·206d·616b·6520·7375·7265·2077·6527··//·make·sure·we' | |||
| 000009e0:·7265·2073·7469·6c6c·2061·6c69·7665·2074··re·still·alive·t | |||
| 000009f0:·6f20·6765·7420·7468·6520·7369·676e·616c··o·get·the·signal | |||
| Max diff block lines reached; -1/20149 bytes (-0.00%) of diff not shown. | |||
| Offset 1, 13 lines modified | Offset 1, 13 lines modified | ||
| 1 | { | 1 | { |
| 2 | ····"file":·"index.js", | 2 | ····"file":·"index.js", |
| 3 | ····"mappings":·"AAAA,OAAO,EAIL,KAAK,GAGN,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAqDxC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,MAAc,EAMd,EAAE;IACF,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC,GAAG,MAAM,CAAA;IACrE,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,GAAG,IAAI,CAAA;QACd,SAAS,GAAG,EAAE,CAAA;QACd,IAAI,GAAG,EAAE,CAAA;IACX,CAAC;SAAM,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,IAAI,OAAO,SAAS,KAAK,UAAU;YAAE,OAAO,GAAG,SAAS,CAAA;QACxD,SAAS,GAAG,IAAI,CAAA;QAChB,IAAI,GAAG,EAAE,CAAA;IACX,CAAC;SAAM,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QAC3C,OAAO,GAAG,SAAS,CAAA;QACnB,SAAS,GAAG,EAAE,CAAA;IAChB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAA;QAC3B,OAAO,GAAG,EAAE,CAAA;QACZ,IAAI,GAAG,EAAE,CAAA;IACX,CAAC;IACD,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,OAAO,CAAC,CAAA;AACnD,CAAC,CAAA;AAiCD,MAAM,UAAU,eAAe,CAC7B,GAAG,MAAc;IAEjB,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IAEnE,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC3B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,CAI3C,CAAA;IAED,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAEpB,qBAAqB;QACvB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,6BAA6B;YAC7B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACvB,CAAC;QACD,oBAAoB;IACtB,CAAC,CAAA;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IAExC,YAAY,CAAC,KAAK,CAAC,CAAA;IACnB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE3B,IAAI,IAAI,GAAG,KAAK,CAAA;IAChB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QACvC,qBAAqB;QACrB,IAAI,IAAI;YAAE,OAAM;QAChB,oBAAoB;QACpB,IAAI,GAAG,IAAI,CAAA;QACX,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE;YACnC,WAAW,EAAE,GAAG,CAAC,GAAG;SACrB,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;QACrD,YAAY,EAAE,CAAA;QAEd,IAAI,GAAG,KAAK,KAAK;YAAE,OAAM;aACpB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,CAAA;YACZ,IAAI,GAAG,IAAI,CAAA;QACb,CAAC;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,IAAI,GAAG,GAAG,CAAA;YACV,MAAM,GAAG,IAAI,CAAA;QACf,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,yDAAyD;YACzD,0DAA0D;YAC1D,wDAAwD;YACxD,0DAA0D;YAC1D,sCAAsC;YACtC,0BAA0B;YAC1B,UAAU,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,CAAC,CAAA;YAC1B,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;gBACjC,qBAAqB;YACvB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YACtC,CAAC;YACD,oBAAoB;QACtB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;QACzB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QAErC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;YAC1C,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;YAC5C,KAAK,CAAC,IAAI,CACR,OAAuB,EACvB,UAAoC,CACrC,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,CAAM,EAAqB,EAAE,CAC9C,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAA", | 3 | ····"mappings":·"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[·...·truncated·by·diffoscope;·len:·138,·SHA:·ab2bc44ed615e85a47c3b30f680987339bd4087a893ccad574320630848b01e7·...·]IAAI,IAAI,GAAG,KAAK,CAAA;IAChB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE;QACvC,qBAAqB;QACrB,IAAI,IAAI;YAAE,OAAM;QAChB,oBAAoB;QACpB,IAAI,GAAG,IAAI,CAAA;QACX,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE;YACnC,WAAW,EAAE,GAAG,CAAC,GAAG;SACrB,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA;QACrD,YAAY,EAAE,CAAA;QAEd,IAAI,GAAG,KAAK,KAAK;YAAE,OAAM;aACpB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,CAAA;YACZ,IAAI,GAAG,IAAI,CAAA;QACb,CAAC;aAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACnC,IAAI,GAAG,GAAG,CAAA;YACV,MAAM,GAAG,IAAI,CAAA;QACf,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,yDAAyD;YACzD,0DAA0D;YAC1D,wDAAwD;YACxD,0DAA0D;YAC1D,sCAAsC;YACtC,0BAA0B;YAC1B,UAAU,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,IAAI,CAAC,CAAA;YAC1B,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;gBACjC,qBAAqB;YACvB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YACtC,CAAC;YACD,oBAAoB;QACtB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;QACzB,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAA;QAErC,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;YAC1C,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;YAC5C,KAAK,CAAC,IAAI,CACR,OAAuB,EACvB,UAAoC,CACrC,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,CAAM,EAAqB,EAAE,CAC9C,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAA", |
| 4 | ····"names":·[], | 4 | ····"names":·[], |
| 5 | ····"sourceRoot":·"", | 5 | ····"sourceRoot":·"", |
| 6 | ····"sources":·[ | 6 | ····"sources":·[ |
| 7 | ········"../../src/index.ts" | 7 | ········"../../src/index.ts" |
| 8 | ····], | 8 | ····], |
| 9 | ····"sourcesContent":·[ | 9 | ····"sourcesContent":·[ |
| 10 | ········"import·{\n··ChildProcessByStdio,\n··SendHandle,\n··Serializable,\n··spawn,\n··SpawnOptions,\n··ChildProcess,\n}·from·'node:child_process'\nimport·{·onExit·}·from·'signal-exit'\nimport·{·proxySignals·}·from·'./proxy-signals.js'\nimport·{·watchdog·}·from·'./watchdog.js'\n\n/**\n·*·The·signature·for·the·cleanup·method.\n·*\n·*·Arguments·indicate·the·exit·status·of·the·child·process.\n·*\n·*·If·a·Promise·is·returned,·then·the·process·is·not·terminated\n·*·until·it·resolves,·and·the·resolution·value·is·treated·as·the\n·*·exit·status·(if·a·number)·or·signal·exit·(if·a·signal·string).\n·*\n·*·If·`undefined`·is·returned,·then·no·change·is·made,·and·the·parent\n·*·exits·in·the·same·way·that·the·child·exited.\n·*\n·*·If·boolean·`false`·is·returned,·then·the·parent's·exit·is·canceled.\n·*\n·*·If·a·number·is·returned,·then·the·parent·process·exits·with·the·number\n·*·as·its·exitCode.\n·*\n·*·If·a·signal·string·is·returned,·then·the·parent·process·is·killed·with\n·*·the·same·signal·that·caused·the·child·to·exit.\n·*/\nexport·type·Cleanup·=·(\n··code:·number·|·null,\n··signal:·null·|·NodeJS.Signals,\n··processInfo:·{\n····watchdogPid?:·ChildProcess['pid']\n··},\n)·=>\n··|·void\n··|·undefined\n··|·number\n··|·NodeJS.Signals\n··|·false\n··|·Promise<void·|·undefined·|·number·|·NodeJS.Signals·|·false>\n\nexport·type·FgArgs·=\n··|·[program:·string·|·[cmd:·string,·...args:·string[]],·cleanup?:·Cleanup]\n··|·[\n······program:·[cmd:·string,·...args:·string[]],\n······opts?:·SpawnOptions,\n······cleanup?:·Cleanup,\n····]\n··|·[program:·string,·cleanup?:·Cleanup]\n··|·[program:·string,·opts?:·SpawnOptions,·cleanup?:·Cleanup]\n··|·[program:·string,·args?:·string[],·cleanup?:·Cleanup]\n··|·[\n······program:·string,\n······args?:·string[],\n······opts?:·SpawnOptions,\n······cleanup?:·Cleanup,\n····]\n\n/**\n·*·Normalizes·the·arguments·passed·to·`foregroundChild`.\n·*\n·*·Exposed·for·testing.\n·*\n·*·@internal\n·*/\nexport·const·normalizeFgArgs·=·(\n··fgArgs:·FgArgs,\n):·[\n··program:·string,\n··args:·string[],\n··spawnOpts:·SpawnOptions,\n··cleanup:·Cleanup,\n]·=>·{\n··let·[program,·args·=·[],·spawnOpts·=·{},·cleanup·=·()·=>·{}]·=·fgArgs\n··if·(typeof·args·===·'function')·{\n····cleanup·=·args\n····spawnOpts·=·{}\n····args·=·[]\n··}·else·if·(!!args·&&·typeof·args·===·'object'·&&·!Array.isArray(args))·{\n····if·(typeof·spawnOpts·===·'function')·cleanup·=·spawnOpts\n····spawnOpts·=·args\n····args·=·[]\n··}·else·if·(typeof·spawnOpts·===·'function')·{\n····cleanup·=·spawnOpts\n····spawnOpts·=·{}\n··}\n··if·(Array.isArray(program))·{\n····const·[pp,·...pa]·=·program\n····program·=·pp\n····args·=·pa\n··}\n··return·[program,·args,·{·...spawnOpts·},·cleanup]\n}\n\n/**\n·*·Spawn·the·specified·program·as·a·\"foreground\"·process,·or·at·least·as\n·*·close·as·is·possible·given·node's·lack·of·exec-without-fork.\n·*\n·*·Cleanup·method·may·be·used·to·modify·or·ignore·the·result·of·the·child's\n·*·exit·code·or·signal.·If·cleanup·returns·undefined·(or·a·Promise·that\n·*·resolves·to·undefined),·then·the·parent·will·exit·in·the·same·way·that\n·*·the·child·did.\n·*\n·*·Return·boolean·`false`·to·prevent·the·parent's·exit·entirely.\n·*/\nexport·function·foregroundChild(\n··cmd:·string·|·[cmd:·string,·...args:·string[]],\n··cleanup?:·Cleanup,\n):·ChildProcessByStdio<null,·null,·null>\nexport·function·foregroundChild(\n··program:·string,\n··args?:·string[],\n··cleanup?:·Cleanup,\n):·ChildProcessByStdio<null,·null,·null>\nexport·function·foregroundChild(\n··program:·string,\n··spawnOpts?:·SpawnOptions,\n··cleanup?:·Cleanup,\n):·ChildProcessByStdio<null,·null,·null>\nexport·function·foregroundChild(\n··program:·string,\n··args?:·string[],\n··spawnOpts?:·SpawnOptions,\n··cleanup?:·Cleanup,\n):·ChildProcessByStdio<null,·null,·null>\nexport·function·foregroundChild(\n··...fgArgs:·FgArgs\n):·ChildProcessByStdio<null,·null,·null>·{\n··const·[program,·args,·spawnOpts,·cleanup]·=·normalizeFgArgs(fgArgs)\n\n··spawnOpts.stdio·=·[0,·1,·2]\n··if·(process.send)·{\n····spawnOpts.stdio.push('ipc')\n··}\n\n··const·child·=·spawn(program,·args,·spawnOpts)·as·ChildProcessByStdio<\n····null,\n····null,\n····null\n··>\n\n··const·childHangup·=·()·=>·{\n····try·{\n······child.kill('SIGHUP')\n\n······/*·c8·ignore·start·*/\n····}·catch·(_)·{\n······//·SIGHUP·is·weird·on·windows\n······child.kill('SIGTERM')\n····}\n····/*·c8·ignore·stop·*/\n··}\n··const·removeOnExit·=·onExit(childHangup)\n\n··proxySignals(child)\n··const·dog·=·watchdog(child)\n\n··let·done·=·false\n··child.on('close',·async·(code,·signal)·=>·{\n····/*·c8·ignore·start·*/\n····if·(done)·return\n····/*·c8·ignore·stop·*/\n····done·=·true\n····const·result·=·cleanup(code,·signal,·{\n······watchdogPid:·dog.pid,\n····})\n····const·res·=·isPromise(result)·?·await·result·:·result\n····removeOnExit()\n\n····if·(res·===·false)·return\n····else·if·(typeof·res·===·'string')·{\n······signal·=·res\n······code·=·null\n····}·else·if·(typeof·res·===·'number')·{\n······code·=·res\n······signal·=·null\n····}\n\n····if·(signal)·{\n······//·If·there·is·nothing·else·keeping·the·event·loop·alive,\n······//·then·there's·a·race·between·a·graceful·exit·and·getting\n······//·the·signal·to·this·process.··Put·this·timeout·here·to\n······//·make·sure·we're·still·alive·to·get·the·signal,·and·thus\n······//·exit·with·the·intended·signal·code.\n······/*·istanbul·ignore·next·*/\n······setTimeout(()·=>·{},·2000)\n······try·{\n········process.kill(process.pid,·signal)\n········/*·c8·ignore·start·*/\n······}·catch·(_)·{\n········process.kill(process.pid,·'SIGTERM')\n······}\n······/*·c8·ignore·stop·*/\n····}·else·{\n······process.exit(code·||·0)\n····}\n··})\n\n··if·(process.send)·{\n····process.removeAllListeners('message')\n\n····child.on('message',·(message,·sendHandle)·=>·{\n······process.send?.(message,·sendHandle)\n····})\n\n····process.on('message',·(message,·sendHandle)·=>·{\n······child.send(\n········message·as·Serializable,\n········sendHandle·as·SendHandle·|·undefined,\n······)\n····})\n··}\n\n··return·child\n}\n\nconst·isPromise·=·(o:·any):·o·is·Promise<any>·=>\n··!!o·&&·typeof·o·===·'object'·&&·typeof·o.then·===·'function'\n" | 10 | ········"import·{\n··ChildProcessByStdio,\n··SendHandle,\n··Serializable,\n··spawn,\n··SpawnOptions,\n··ChildProcess,\n}·from·'node:child_process'\nimport·{·onExit·}·from·'signal-exit'\nimport·{·proxySignals·}·from·'./proxy-signals.js'\nimport·{·watchdog·}·from·'./watchdog.js'\n\n/**\n·*·The·signature·for·the·cleanup·method.\n·*\n·*·Arguments·indicate·the·exit·status·of·the·child·process.\n·*\n·*·If·a·Promise·is·returned,·then·the·process·is·not·terminated\n·*·until·it·resolves,·and·the·resolution·value·is·treated·as·the\n·*·exit·status·(if·a·number)·or·signal·exit·(if·a·signal·string).\n·*\n·*·If·`undefined`·is·returned,·then·no·change·is·made,·and·the·parent\n·*·exits·in·the·same·way·that·the·child·exited.\n·*\n·*·If·boolean·`false`·is·returned,·then·the·parent's·exit·is·canceled.\n·*\n·*·If·a·number·is·returned,·then·the·parent·process·exits·with·the·number\n·*·as·its·exitCode.\n·*\n·*·If·a·signal·string·is·returned,·then·the·parent·process·is·killed·with\n·*·the·same·signal·that·caused·the·child·to·exit.\n·*/\nexport·type·Cleanup·=·(\n··code:·number·|·null,\n··signal:·null·|·NodeJS.Signals,\n··processInfo:·{\n····watchdogPid?:·ChildProcess['pid']\n··},\n)·=>\n··|·void\n··|·undefined\n··|·number\n··|·NodeJS.Signals\n··|·false\n··|·Promise<void·|·undefined·|·number·|·NodeJS.Signals·|·false>\n\nexport·type·FgArgs·=\n··|·[program:·string·|·[cmd:·string,·...args:·string[]],·cleanup?:·Cleanup]\n··|·[\n······program:·[cmd:·string,·...args:·string[]],\n······opts?:·SpawnOptions,\n······cleanup?:·Cleanup,\n····]\n··|·[program:·string,·cleanup?:·Cleanup]\n··|·[program:·string,·opts?:·SpawnOptions,·cleanup?:·Cleanup]\n··|·[program:·string,·args?:·string[],·cleanup?:·Cleanup]\n··|·[\n······program:·string,\n······args?:·string[],\n······opts?:·SpawnOptions,\n······cleanup?:·Cleanup,\n····]\n\n/**\n·*·Normalizes·the·arguments·passed·to·`foregroundChild`.\n·*\n·*·Exposed·for·testing.\n·*\n·*·@internal\n·*/\nexport·const·normalizeFgArgs·=·(\n··fgArgs:·FgArgs,\n):·[\n··program:·string,\n··args:·string[],\n··spawnOpts:·SpawnOptions,\n··cleanup:·Cleanup,\n]·=>·{\n··let·[program,·args·=·[],·spawnOpts·=·{},·cleanup·=·()·=>·{}]·=·fgArgs\n··if·(typeof·args·===·'function')·{\n····cleanup·=·args\n····spawnOpts·=·{}\n····args·=·[]\n··}·else·if·(!!args·&&·typeof·args·===·'object'·&&·!Array.isArray(args))·{\n····if·(typeof·spawnOpts·===·'function')·cleanup·=·spawnOpts\n····spawnOpts·=·args\n····args·=·[]\n··}·else·if·(typeof·spawnOpts·===·'function')·{\n····cleanup·=·spawnOpts\n····spawnOpts·=·{}\n··}\n··if·(Array.isArray(program))·{\n····const·[pp,·...pa]·=·program\n····program·=·pp\n····args·=·pa\n··}\n··return·[program,·args,·{·...spawnOpts·},·cleanup]\n}\n\n/**\n·*·Spawn·the·specified·program·as·a·\"foreground\"·process,·or·at·least·as\n·*·close·as·is·possible·given·node's·lack·of·exec-without-fork.\n·*\n·*·Cleanup·method·may·be·used·to·modify·or·ignore·the·result·of·the·child's\n·*·exit·code·or·signal.·If·cleanup·returns·undefined·(or·a·Promise·that\n·*·resolves·to·undefined),·then·the·parent·will·exit·in·the·same·way·that\n·*·the·child·did.\n·*\n·*·Return·boolean·`false`·to·prevent·the·parent's·exit·entirely.\n·*/\nexport·function·foregroundChild(\n··cmd:·string·|·[cmd:·string,·...args:·string[]],\n··cleanup?:·Cleanup,\n):·ChildProcessByStdio<null,·null,·null>\nexport·function·foregroundChild(\n··program:·string,\n··args?:·string[],\n··cleanup?:·Cleanup,\n):·ChildProcessByStdio<null,·null,·null>\nexport·function·foregroundChild(\n··program:·string,\n··spawnOpts?:·SpawnOptions,\n··cleanup?:·Cleanup,\n):·ChildProcessByStdio<null,·null,·null>\nexport·function·foregroundChild(\n··program:·string,\n··args?:·string[],\n··spawnOpts?:·SpawnOptions,\n··cleanup?:·Cleanup,\n):·ChildProcessByStdio<null,·null,·null>\nexport·function·foregroundChild(\n··...fgArgs:·FgArgs\n):·ChildProcessByStdio<null,·null,·null>·{\n··const·[program,·args,·spawnOpts,·cleanup]·=·normalizeFgArgs(fgArgs)\n\n··spawnOpts.stdio·=·[0,·1,·2]\n··if·(process.send)·{\n····spawnOpts.stdio.push('ipc')\n··}\n\n··const·child·=·spawn(program,·args,·spawnOpts)·as·ChildProcessByStdio<\n····null,\n····null,\n····null\n··>\n\n··const·childHangup·=·()·=>·{\n····try·{\n······child.kill('SIGHUP')\n\n······/*·c8·ignore·start·*/\n····}·catch·(_)·{\n······//·SIGHUP·is·weird·on·windows\n······child.kill('SIGTERM')\n····}\n····/*·c8·ignore·stop·*/\n··}\n··const·removeOnExit·=·onExit(childHangup)\n\n··proxySignals(child)\n··const·dog·=·watchdog(child)\n\n··dog.on('close',·(code,·signal)·=>·{\n····if·(done)·return\n····/*·c8·ignore·start\n·····*·this·should·be·impossible,·and·is·intentionally·hidden·from·the\n·····*·consumer,·thus·impossible·to·test.\n·····*·However,·when·the·watchdog·process·dies·unexpectedl[·...·truncated·by·diffoscope;·len:·476,·SHA:·dd833b8d2bba1205aec1269c2e783e5db000acf4720c6c9776202539272eb909·...·]let·done·=·false\n··child.on('close',·async·(code,·signal)·=>·{\n····/*·c8·ignore·start·*/\n····if·(done)·return\n····/*·c8·ignore·stop·*/\n····done·=·true\n····const·result·=·cleanup(code,·signal,·{\n······watchdogPid:·dog.pid,\n····})\n····const·res·=·isPromise(result)·?·await·result·:·result\n····removeOnExit()\n\n····if·(res·===·false)·return\n····else·if·(typeof·res·===·'string')·{\n······signal·=·res\n······code·=·null\n····}·else·if·(typeof·res·===·'number')·{\n······code·=·res\n······signal·=·null\n····}\n\n····if·(signal)·{\n······//·If·there·is·nothing·else·keeping·the·event·loop·alive,\n······//·then·there's·a·race·between·a·graceful·exit·and·getting\n······//·the·signal·to·this·process.··Put·this·timeout·here·to\n······//·make·sure·we're·still·alive·to·get·the·signal,·and·thus\n······//·exit·with·the·intended·signal·code.\n······/*·istanbul·ignore·next·*/\n······setTimeout(()·=>·{},·2000)\n······try·{\n········process.kill(process.pid,·signal)\n········/*·c8·ignore·start·*/\n······}·catch·(_)·{\n········process.kill(process.pid,·'SIGTERM')\n······}\n······/*·c8·ignore·stop·*/\n····}·else·{\n······process.exit(code·||·0)\n····}\n··})\n\n··if·(process.send)·{\n····process.removeAllListeners('message')\n\n····child.on('message',·(message,·sendHandle)·=>·{\n······process.send?.(message,·sendHandle)\n····})\n\n····process.on('message',·(message,·sendHandle)·=>·{\n······child.send(\n········message·as·Serializable,\n········sendHandle·as·SendHandle·|·undefined,\n······)\n····})\n··}\n\n··return·child\n}\n\nconst·isPromise·=·(o:·any):·o·is·Promise<any>·=>\n··!!o·&&·typeof·o·===·'object'·&&·typeof·o.then·===·'function'\n" |
| 11 | ····], | 11 | ····], |
| 12 | ····"version":·3 | 12 | ····"version":·3 |
| 13 | } | 13 | } |
| Offset 2, 9 lines modified | Offset 2, 9 lines modified | ||
| 2 | /** | 2 | /** |
| 3 | ·*·Pass·in·a·ChildProcess,·and·this·will·spawn·a·watchdog·process·that | 3 | ·*·Pass·in·a·ChildProcess,·and·this·will·spawn·a·watchdog·process·that |
| 4 | ·*·will·make·sure·it·exits·if·the·parent·does,·thus·preventing·any | 4 | ·*·will·make·sure·it·exits·if·the·parent·does,·thus·preventing·any |
| 5 | ·*·dangling·detached·zombie·processes. | 5 | ·*·dangling·detached·zombie·processes. |
| 6 | ·* | 6 | ·* |
| 7 | ·*·If·the·child·ends·before·the·parent,·then·the·watchdog·will·terminate. | 7 | ·*·If·the·child·ends·before·the·parent,·then·the·watchdog·will·terminate. |
| 8 | ·*/ | 8 | ·*/ |
| 9 | export·declare·const·watchdog:·(child:·ChildProcess)·=>·ChildProcess; | 9 | export·declare·const·watchdog:·(child:·ChildProcess)·=>·import("child_process").ChildProcessByStdio<null,·null,·import("stream").Readable>; |
| 10 | //#·sourceMappingURL=watchdog.d.ts.map | 10 | //#·sourceMappingURL=watchdog.d.ts.map |
| Offset 1, 10 lines modified | Offset 1, 10 lines modified | ||
| 1 | { | 1 | { |
| 2 | ····"file":·"watchdog.d.ts", | 2 | ····"file":·"watchdog.d.ts", |
| 3 | ····"mappings":·"AAIA,OAAO,EAAE,YAAY,EAAS,MAAM,eAAe,CAAA;AAyBnD;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,YAAY, | 3 | ····"mappings":·"AAIA,OAAO,EAAE,YAAY,EAAS,MAAM,eAAe,CAAA;AAyBnD;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,YAAY,uFAgB3C,CAAA", |
| 4 | ····"names":·[], | 4 | ····"names":·[], |
| 5 | ····"sourceRoot":·"", | 5 | ····"sourceRoot":·"", |
| 6 | ····"sources":·[ | 6 | ····"sources":·[ |
| 7 | ········"../../src/watchdog.ts" | 7 | ········"../../src/watchdog.ts" |
| 8 | ····], | 8 | ····], |
| 9 | ····"version":·3 | 9 | ····"version":·3 |
| 10 | } | 10 | } |
| Offset 40, 50 lines modified | Offset 40, 60 lines modified | ||
| 00000270:·2020·2020·2020·2020·7072·6f63·6573·732e··········process. | 00000270:·2020·2020·2020·2020·7072·6f63·6573·732e··········process. | ||
| 00000280:·6b69·6c6c·2870·6964·2c20·2753·4947·4b49··kill(pid,·'SIGKI | 00000280:·6b69·6c6c·2870·6964·2c20·2753·4947·4b49··kill(pid,·'SIGKI | ||
| 00000290:·4c4c·2729·0a20·2020·2020·2020·2073·6574··LL').········set | 00000290:·4c4c·2729·0a20·2020·2020·2020·2073·6574··LL').········set | ||
| 000002a0:·5469·6d65·6f75·7428·2829·203d·3e20·7072··Timeout(()·=>·pr | 000002a0:·5469·6d65·6f75·7428·2829·203d·3e20·7072··Timeout(()·=>·pr | ||
| 000002b0:·6f63·6573·732e·6578·6974·2829·2c20·3230··ocess.exit(),·20 | 000002b0:·6f63·6573·732e·6578·6974·2829·2c20·3230··ocess.exit(),·20 | ||
| 000002c0:·3029·0a20·2020·2020·207d·2063·6174·6368··0).······}·catch | 000002c0:·3029·0a20·2020·2020·207d·2063·6174·6368··0).······}·catch | ||
| 000002d0:·2028·5f29·207b·7d0a·2020·2020·7d2c·2035···(_)·{}.····},·5 | 000002d0:·2028·5f29·207b·7d0a·2020·2020·7d2c·2035···(_)·{}.····},·5 | ||
| 000002e0:·3030·290a·2020·7d | 000002e0:·3030·290a·2020·7d0a·2020·7072·6f63·6573··00).··}.··proces | ||
| 000002f0:·7373·2e6f·6e28·2753·4947·4855·5027·2c20··ss.on('SIGHUP',· | |||
| 00000300:·6261·726b·290a·7d0a·603b·0a2f·2a2a·0a20··bark).}.`;./**.· | |||
| 00000310:·2a20·5061·7373·2069·6e20·6120·4368·696c··*·Pass·in·a·Chil | |||
| 00000320:·6450·726f·6365·7373·2c20·616e·6420·7468··dProcess,·and·th | |||
| 00000330:·6973·2077·696c·6c20·7370·6177·6e20·6120··is·will·spawn·a· | |||
| 00000340:·7761·7463·6864·6f67·2070·726f·6365·7373··watchdog·process | |||
| 00000350:·2074·6861·740a·202a·2077·696c·6c20·6d61···that.·*·will·ma | |||
| 00000360:·6b65·2073·7572·6520·6974·2065·7869·7473··ke·sure·it·exits | |||
| 00000370:·2069·6620·7468·6520·7061·7265·6e74·2064···if·the·parent·d | |||
| 00000380:·6f65·732c·2074·6875·7320·7072·6576·656e··oes,·thus·preven | |||
| 00000390:·7469·6e67·2061·6e79·0a20·2a20·6461·6e67··ting·any.·*·dang | |||
| 000003a0:·6c69·6e67·2064·6574·6163·6865·6420·7a6f··ling·detached·zo | |||
| 000003b0:·6d62·6965·2070·726f·6365·7373·6573·2e0a··mbie·processes.. | |||
| 000003c0:·202a·0a20·2a20·4966·2074·6865·2063·6869···*.·*·If·the·chi | |||
| 000003d0:·6c64·2065·6e64·7320·6265·666f·7265·2074··ld·ends·before·t | |||
| 000003e0:·6865·2070·6172·656e·742c·2074·6865·6e20··he·parent,·then· | |||
| 000003f0:·7468·6520·7761·7463·6864·6f67·2077·696c··the·watchdog·wil | |||
| 00000400:·6c20·7465·726d·696e·6174·652e·0a20·2a2f··l·terminate..·*/ | |||
| 00000410:·0a65·7870·6f72·7420·636f·6e73·7420·7761··.export·const·wa | |||
| 00000420:·7463·6864·6f67·203d·2028·6368·696c·6429··tchdog·=·(child) | |||
| 00000430:·203d·3e20·7b0a·2020·2020·6c65·7420·646f···=>·{.····let·do | |||
| 00000440:·6745·7869·7465·6420·3d20·6661·6c73·653b··gExited·=·false; | |||
| 00000450:·0a20·2020·2063·6f6e·7374·2064·6f67·203d··.····const·dog·= | |||
| 00000460:·2073·7061·776e·2870·726f·6365·7373·2e65···spawn(process.e | |||
| 00000470:·7865·6350·6174·682c·205b·272d·6527·2c20··xecPath,·['-e',· | |||
| 00000480:·7761·7463·6864·6f67·436f·6465·2c20·5374··watchdogCode,·St | |||
| 00000490:·7269·6e67·2863·6869·6c64·2e70·6964·295d··ring(child.pid)] | |||
| 00000 | 000002f0:·732e·6f6e·2827·5349·4748·5550·272c·2062··s.on('SIGHUP',·b | ||
| 00000300:·6172·6b29·0a7d·0a60·3b0a·2f2a·2a0a·202a··ark).}.`;./**.·* | |||
| 00000310:·2050·6173·7320·696e·2061·2043·6869·6c64···Pass·in·a·Child | |||
| 00000320:·5072·6f63·6573·732c·2061·6e64·2074·6869··Process,·and·thi | |||
| 00000330:·7320·7769·6c6c·2073·7061·776e·2061·2077··s·will·spawn·a·w | |||
| 00000340:·6174·6368·646f·6720·7072·6f63·6573·7320··atchdog·process· | |||
| 00000350:·7468·6174·0a20·2a20·7769·6c6c·206d·616b··that.·*·will·mak | |||
| 00000360:·6520·7375·7265·2069·7420·6578·6974·7320··e·sure·it·exits· | |||
| 00000370:·6966·2074·6865·2070·6172·656e·7420·646f··if·the·parent·do | |||
| 00000380:·6573·2c20·7468·7573·2070·7265·7665·6e74··es,·thus·prevent | |||
| 00000390:·696e·6720·616e·790a·202a·2064·616e·676c··ing·any.·*·dangl | |||
| 000003a0:·696e·6720·6465·7461·6368·6564·207a·6f6d··ing·detached·zom | |||
| 000003b0:·6269·6520·7072·6f63·6573·7365·732e·0a20··bie·processes..· | |||
| 000003c0:·2a0a·202a·2049·6620·7468·6520·6368·696c··*.·*·If·the·chil | |||
| 000003d0:·6420·656e·6473·2062·6566·6f72·6520·7468··d·ends·before·th | |||
| 000003e0:·6520·7061·7265·6e74·2c20·7468·656e·2074··e·parent,·then·t | |||
| 000003f0:·6865·2077·6174·6368·646f·6720·7769·6c6c··he·watchdog·will | |||
| 00000400:·2074·6572·6d69·6e61·7465·2e0a·202a·2f0a···terminate..·*/. | |||
| 00000410:·6578·706f·7274·2063·6f6e·7374·2077·6174··export·const·wat | |||
| 00000420:·6368·646f·6720·3d20·2863·6869·6c64·2920··chdog·=·(child)· | |||
| 00000430:·3d3e·207b·0a20·2020·206c·6574·2064·6f67··=>·{.····let·dog | |||
| 00000440:·4578·6974·6564·203d·2066·616c·7365·3b0a··Exited·=·false;. | |||
| 00000450:·2020·2020·636f·6e73·7420·646f·6720·3d20······const·dog·=· | |||
| 00000460:·7370·6177·6e28·7072·6f63·6573·732e·6578··spawn(process.ex | |||
| 00000470:·6563·5061·7468·2c20·5b27·2d65·272c·2077··ecPath,·['-e',·w | |||
| 00000480:·6174·6368·646f·6743·6f64·652c·2053·7472··atchdogCode,·Str | |||
| 00000490:·696e·6728·6368·696c·642e·7069·6429·5d2c··ing(child.pid)], | |||
| 000004a0:·207b·2073·7464·696f·3a20·5b27·6967·6e6f···{·stdio:·['igno | |||
| 000004b0:·6 | 000004b0:·7265·272c·2027·6967·6e6f·7265·272c·2027··re',·'ignore',·' | ||
| 000004c0:·207d·293b·0a20·2020·2064·6f67·2e6f·6e28···});.····dog.on( | |||
| 000004d0:·2765·7869·7427·2c20·2829·203d·3e20·2864··'exit',·()·=>·(d | |||
| 000004e0:·6f67·4578·6974·6564·203d·2074·7275·6529··ogExited·=·true) | |||
| 000004f0:·293b·0a20·2020·2063·6869·6c64·2e6f·6e28··);.····child.on( | |||
| 00000500:·2765·7869·7427·2c20·2829·203d·3e20·7b0a··'exit',·()·=>·{. | |||
| 00000510:·2020·2020·2020·2020·6966·2028·2164·6f67··········if·(!dog | |||
| 00000520:·4578·6974·6564·290a·2020·2020·2020·2020··Exited).········ | |||
| 00000530:·2020·2020·646f·672e·6b69·6c6c·2827·5349······dog.kill('SI | |||
| 00000540:·474b·494c·4c27·293b·0a20·2020·207d·293b··GKILL');.····}); | |||
| 00000550:·0a20·2020·2072·6574·7572·6e20·646f·673b··.····return·dog; | |||
| 00000560:·0a7d·3b0a·2f2f·2320·736f·7572·6365·4d61··.};.//#·sourceMa | |||
| 00000570:·7070·696e·6755·524c·3d77·6174·6368·646f··ppingURL=watchdo | |||
| 00000 | 000004c0:·7069·7065·275d·207d·293b·0a20·2020·2064··pipe']·});.····d | ||
| 000004d0:·6f67·2e6f·6e28·2765·7869·7427·2c20·2829··og.on('exit',·() | |||
| 000004e0:·203d·3e20·2864·6f67·4578·6974·6564·203d···=>·(dogExited·= | |||
| 000004f0:·2074·7275·6529·293b·0a20·2020·2064·6f67···true));.····dog | |||
| 00000500:·2e73·7464·6572·722e·7069·7065·2870·726f··.stderr.pipe(pro | |||
| 00000510:·6365·7373·2e73·7464·6572·722c·207b·2065··cess.stderr,·{·e | |||
| 00000520:·6e64·3a20·6661·6c73·6520·7d29·3b0a·2020··nd:·false·});.·· | |||
| 00000530:·2020·6368·696c·642e·6f6e·2827·6578·6974····child.on('exit | |||
| 00000540:·272c·2028·2920·3d3e·207b·0a20·2020·2020··',·()·=>·{.····· | |||
| 00000550:·2020·2069·6620·2821·646f·6745·7869·7465·····if·(!dogExite | |||
| 00000560:·6429·0a20·2020·2020·2020·2020·2020·2064··d).············d | |||
| 00000570:·6f67·2e6b·696c·6c28·2753·4947·4b49·4c4c··og.kill('SIGKILL | |||
| 00000580:·2729·3b0a·2020·2020·7d29·3b0a·2020·2020··');.····});.···· | |||
| 00000590:·7072·6f63·6573·732e·6f6e·2827·6578·6974··process.on('exit | |||
| 000005a0:·272c·2028·2920·3d3e·207b·0a20·2020·2020··',·()·=>·{.····· | |||
| 000005b0:·2020·2069·6620·2821·646f·6745·7869·7465·····if·(!dogExite | |||
| 000005c0:·6429·0a20·2020·2020·2020·2020·2020·2064··d).············d | |||
| 000005d0:·6f67·2e6b·696c·6c28·2753·4947·4b49·4c4c··og.kill('SIGKILL | |||
| 000005e0:·2729·3b0a·2020·2020·7d29·3b0a·2020·2020··');.····});.···· | |||
| 000005f0:·7265·7475·726e·2064·6f67·3b0a·7d3b·0a2f··return·dog;.};./ | |||
| 00000600:·2f23·2073·6f75·7263·654d·6170·7069·6e67··/#·sourceMapping | |||
| 00000610:·5552·4c3d·7761·7463·6864·6f67·2e6a·732e··URL=watchdog.js. | |||
| 00000620:·6d61·70··································map | |||
| Max diff block lines reached; -1/7106 bytes (-0.01%) of diff not shown. | |||
| Offset 1, 13 lines modified | Offset 1, 13 lines modified | ||
| 1 | { | 1 | { |
| 2 | ····"file":·"watchdog.js", | 2 | ····"file":·"watchdog.js", |
| 3 | ····"mappings":·"AAAA,+DAA+D;AAC/D,gEAAgE;AAChE,uCAAuC;AAEvC,OAAO,EAAgB,KAAK,EAAE,MAAM,eAAe,CAAA;AAEnD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;CAqB9B,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAmB,EAAE,EAAE;IAC9C,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,MAAM,GAAG,GAAG,KAAK,CACf,OAAO,CAAC,QAAQ,EAChB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACvC | 3 | ····"mappings":·"AAAA,+DAA+D;AAC/D,gEAAgE;AAChE,uCAAuC;AAEvC,OAAO,EAAgB,KAAK,EAAE,MAAM,eAAe,CAAA;AAEnD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;CAqB9B,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAmB,EAAE,EAAE;IAC9C,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,MAAM,GAAG,GAAG,KAAK,CACf,OAAO,CAAC,QAAQ,EAChB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACvC,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CACxC,CAAA;IACD,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAA;IACxC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAA;IAC/C,KAAK,CA[·...·truncated·by·diffoscope;·len:·164,·SHA:·e3cbc480049ed951d13bde6036ee9c95f0ae0db600659962a7f7e21a616ac595·...·]B,IAAI,CAAC,SAAS;YAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IACF,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA", |
| 4 | ····"names":·[], | 4 | ····"names":·[], |
| 5 | ····"sourceRoot":·"", | 5 | ····"sourceRoot":·"", |
| 6 | ····"sources":·[ | 6 | ····"sources":·[ |
| 7 | ········"../../src/watchdog.ts" | 7 | ········"../../src/watchdog.ts" |
| 8 | ····], | 8 | ····], |
| 9 | ····"sourcesContent":·[ | 9 | ····"sourcesContent":·[ |
| 10 | ········"//·this·spawns·a·child·process·that·listens·for·SIGHUP·when·the\n//·parent·process·exits,·and·after·200ms,·sends·a·SIGKILL·to·the\n//·child,·in·case·it·did·not·terminate.\n\nimport·{·ChildProcess,·spawn·}·from·'child_process'\n\nconst·watchdogCode·=·String.raw`\nconst·pid·=·parseInt(process.argv[1],·10)\nprocess.title·=·'node·(foreground-child·watchdog·pid='·+·pid·+·')'\nif·(!isNaN(pid))·{\n··let·barked·=·false\n··//·keepalive\n··const·interval·=·setInterval(()·=>·{},·60000)\n··const·bark·=·()·=>·{\n····clearInterval(interval)\n····if·(barked)·return\n····barked·=·true\n····process.removeListener('SIGHUP',·bark)\n····setTimeout(()·=>·{\n······try·{\n········process.kill(pid,·'SIGKILL')\n········setTimeout(()·=>·process.exit(),·200)\n······}·catch·(_)·{}\n····},·500)\n··} | 10 | ········"//·this·spawns·a·child·process·that·listens·for·SIGHUP·when·the\n//·parent·process·exits,·and·after·200ms,·sends·a·SIGKILL·to·the\n//·child,·in·case·it·did·not·terminate.\n\nimport·{·ChildProcess,·spawn·}·from·'child_process'\n\nconst·watchdogCode·=·String.raw`\nconst·pid·=·parseInt(process.argv[1],·10)\nprocess.title·=·'node·(foreground-child·watchdog·pid='·+·pid·+·')'\nif·(!isNaN(pid))·{\n··let·barked·=·false\n··//·keepalive\n··const·interval·=·setInterval(()·=>·{},·60000)\n··const·bark·=·()·=>·{\n····clearInterval(interval)\n····if·(barked)·return\n····barked·=·true\n····process.removeListener('SIGHUP',·bark)\n····setTimeout(()·=>·{\n······try·{\n········process.kill(pid,·'SIGKILL')\n········setTimeout(()·=>·process.exit(),·200)\n······}·catch·(_)·{}\n····},·500)\n··}\n··process.on('SIGHUP',·bark)\n}\n`\n\n/**\n·*·Pass·in·a·ChildProcess,·and·this·will·spawn·a·watchdog·process·that\n·*·will·make·sure·it·exits·if·the·parent·does,·thus·preventing·any\n·*·dangling·detached·zombie·processes.\n·*\n·*·If·the·child·ends·before[·...·truncated·by·diffoscope;·len:·451,·SHA:·bd4f2a7d65969222a0bc5404c41b38df5d4bc2c16a7d28d926999c8a2635c7d0·...·].on('exit',·()·=>·{\n····if·(!dogExited)·dog.kill('SIGKILL')\n··})\n··return·dog\n}\n" |
| 11 | ····], | 11 | ····], |
| 12 | ····"version":·3 | 12 | ····"version":·3 |
| 13 | } | 13 | } |
| Offset 11, 15 lines modified | Offset 11, 15 lines modified | ||
| 11 | ········"prettier":·"^3.6.2", | 11 | ········"prettier":·"^3.6.2", |
| 12 | ········"tap":·"^21.1.3", | 12 | ········"tap":·"^21.1.3", |
| 13 | ········"tshy":·"^3.0.3", | 13 | ········"tshy":·"^3.0.3", |
| 14 | ········"typedoc":·"^0.28.14", | 14 | ········"typedoc":·"^0.28.14", |
| 15 | ········"typescript":·"^5.0.2" | 15 | ········"typescript":·"^5.0.2" |
| 16 | ····}, | 16 | ····}, |
| 17 | ····"engines":·{ | 17 | ····"engines":·{ |
| 18 | ········"node":·">=1 | 18 | ········"node":·">=16" |
| 19 | ····}, | 19 | ····}, |
| 20 | ····"exports":·{ | 20 | ····"exports":·{ |
| 21 | ········".":·{ | 21 | ········".":·{ |
| 22 | ············"import":·{ | 22 | ············"import":·{ |
| 23 | ················"default":·"./dist/esm/index.js", | 23 | ················"default":·"./dist/esm/index.js", |
| 24 | ················"types":·"./dist/esm/index.d.ts" | 24 | ················"types":·"./dist/esm/index.d.ts" |
| 25 | ············}, | 25 | ············}, |
| Offset 85, 9 lines modified | Offset 85, 9 lines modified | ||
| 85 | ············"./package.json":·"./package.json", | 85 | ············"./package.json":·"./package.json", |
| 86 | ············"./proxy-signals":·"./src/proxy-signals.ts", | 86 | ············"./proxy-signals":·"./src/proxy-signals.ts", |
| 87 | ············"./watchdog":·"./src/watchdog.ts" | 87 | ············"./watchdog":·"./src/watchdog.ts" |
| 88 | ········} | 88 | ········} |
| 89 | ····}, | 89 | ····}, |
| 90 | ····"type":·"module", | 90 | ····"type":·"module", |
| 91 | ····"types":·"./dist/commonjs/index.d.ts", | 91 | ····"types":·"./dist/commonjs/index.d.ts", |
| 92 | ····"version":·"4.0. | 92 | ····"version":·"4.0.3" |
| 93 | } | 93 | } |
| Offset 1, 12 lines modified | Offset 1, 12 lines modified | ||
| 1 | -rw-r--r--···0········0········0······464·2026-02-06·01:36:49.000000·info/about.json | 1 | -rw-r--r--···0········0········0······464·2026-02-06·01:36:49.000000·info/about.json |
| 2 | -rw-r--r--···0········0········0······118·2026-02-06·01:36:49.000000·info/hash_input.json | 2 | -rw-r--r--···0········0········0······118·2026-02-06·01:36:49.000000·info/hash_input.json |
| 3 | -rw-r--r--···0········0········0······226·2026-02-06·01:36:49.000000·info/index.json | 3 | -rw-r--r--···0········0········0······226·2026-02-06·01:36:49.000000·info/index.json |
| 4 | -rw-r--r--···0········0········0·····1550·2026-02-06·01:36:49.000000·info/licenses/LICENSE.md | 4 | -rw-r--r--···0········0········0·····1550·2026-02-06·01:36:49.000000·info/licenses/LICENSE.md |
| 5 | -rw-r--r--···0········0········0····38828·2026-02-06·01:36:49.000000·info/licenses/third-party-licenses.txt | 5 | -rw-r--r--···0········0········0····38828·2026-02-06·01:36:49.000000·info/licenses/third-party-licenses.txt |
| 6 | -rw-r--r--···0········0········0···25107 | 6 | -rw-r--r--···0········0········0···251079·2026-02-06·01:36:49.000000·info/paths.json |
| 7 | -rwxr-xr-x···0········0········0······807·2026-02-06·01:36:49.000000·info/recipe/build.sh | 7 | -rwxr-xr-x···0········0········0······807·2026-02-06·01:36:49.000000·info/recipe/build.sh |
| 8 | -rw-r--r--···0········0········0·····1541·2026-02-06·01:36:49.000000·info/recipe/recipe-scripts-license.txt | 8 | -rw-r--r--···0········0········0·····1541·2026-02-06·01:36:49.000000·info/recipe/recipe-scripts-license.txt |
| 9 | -rw-r--r--···0········0········0······710·2026-02-06·01:36:49.000000·info/recipe/recipe.yaml | 9 | -rw-r--r--···0········0········0······710·2026-02-06·01:36:49.000000·info/recipe/recipe.yaml |
| 10 | -rw-r--r--···0········0········0····19739·2026-02-06·01:36:49.000000·info/recipe/rendered_recipe.yaml | 10 | -rw-r--r--···0········0········0····19739·2026-02-06·01:36:49.000000·info/recipe/rendered_recipe.yaml |
| 11 | -rw-r--r--···0········0········0······100·2026-02-06·01:36:49.000000·info/recipe/variant_config.yaml | 11 | -rw-r--r--···0········0········0······100·2026-02-06·01:36:49.000000·info/recipe/variant_config.yaml |
| 12 | -rw-r--r--···0········0········0·······73·2026-02-06·01:36:49.000000·info/tests/tests.yaml | 12 | -rw-r--r--···0········0········0·······73·2026-02-06·01:36:49.000000·info/tests/tests.yaml |
| Offset 187, 15 lines modified | Offset 187, 15 lines modified | ||
| 187 | AUTHORS·OR·COPYRIGHT·HOLDERS·BE·LIABLE·FOR·ANY·CLAIM,·DAMAGES·OR·OTHER | 187 | AUTHORS·OR·COPYRIGHT·HOLDERS·BE·LIABLE·FOR·ANY·CLAIM,·DAMAGES·OR·OTHER |
| 188 | LIABILITY,·WHETHER·IN·AN·ACTION·OF·CONTRACT,·TORT·OR·OTHERWISE,·ARISING·FROM, | 188 | LIABILITY,·WHETHER·IN·AN·ACTION·OF·CONTRACT,·TORT·OR·OTHERWISE,·ARISING·FROM, |
| 189 | OUT·OF·OR·IN·CONNECTION·WITH·THE·SOFTWARE·OR·THE·USE·OR·OTHER·DEALINGS·IN·THE | 189 | OUT·OF·OR·IN·CONNECTION·WITH·THE·SOFTWARE·OR·THE·USE·OR·OTHER·DEALINGS·IN·THE |
| 190 | SOFTWARE. | 190 | SOFTWARE. |
| 191 | --- | 191 | --- |
| 192 | The·following·software·may·be·included·in·this·product:·foreground-child·(4.0. | 192 | The·following·software·may·be·included·in·this·product:·foreground-child·(4.0.3) |
| 193 | This·software·contains·the·following·license·and·notice·below: | 193 | This·software·contains·the·following·license·and·notice·below: |
| 194 | #·Blue·Oak·Model·License | 194 | #·Blue·Oak·Model·License |
| 195 | Version·1.0.0 | 195 | Version·1.0.0 |
| 196 | ##·Purpose | 196 | ##·Purpose |
| Offset 1331, 22 lines modified | Offset 1331, 22 lines modified | ||
| 1331 | ············"path_type":·"hardlink", | 1331 | ············"path_type":·"hardlink", |
| 1332 | ············"sha256":·"a71e0714b7be0feeb4d9156db1769158df231774acf68a71980102f65a37ff79", | 1332 | ············"sha256":·"a71e0714b7be0feeb4d9156db1769158df231774acf68a71980102f65a37ff79", |
| 1333 | ············"size_in_bytes":·1928 | 1333 | ············"size_in_bytes":·1928 |
| 1334 | ········}, | 1334 | ········}, |
| 1335 | ········{ | 1335 | ········{ |
| 1336 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/index.js", | 1336 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/index.js", |
| 1337 | ············"path_type":·"hardlink", | 1337 | ············"path_type":·"hardlink", |
| 1338 | ············"sha256":·" | 1338 | ············"sha256":·"c10e1a4e4e33be9a9339bda1fd1a34a1fd83f978efc0116a82529306b3dab3b7", |
| 1339 | ············"size_in_bytes":· | 1339 | ············"size_in_bytes":·4648 |
| 1340 | ········}, | 1340 | ········}, |
| 1341 | ········{ | 1341 | ········{ |
| 1342 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/index.js.map", | 1342 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/index.js.map", |
| 1343 | ············"path_type":·"hardlink", | 1343 | ············"path_type":·"hardlink", |
| 1344 | ············"sha256":·" | 1344 | ············"sha256":·"e59aa90ed18376d7c2c02c49726b6a69afd79cef7ca286c9dd8edee964689790", |
| 1345 | ············"size_in_bytes":· | 1345 | ············"size_in_bytes":·10682 |
| 1346 | ········}, | 1346 | ········}, |
| 1347 | ········{ | 1347 | ········{ |
| 1348 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/package.json", | 1348 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/package.json", |
| 1349 | ············"path_type":·"hardlink", | 1349 | ············"path_type":·"hardlink", |
| 1350 | ············"sha256":·"8005a3491db7d92f36ac66369861589f9c47123d3a7c71e643fc2c06168cd45a", | 1350 | ············"sha256":·"8005a3491db7d92f36ac66369861589f9c47123d3a7c71e643fc2c06168cd45a", |
| 1351 | ············"size_in_bytes":·25 | 1351 | ············"size_in_bytes":·25 |
| 1352 | ········}, | 1352 | ········}, |
| Offset 1373, 34 lines modified | Offset 1373, 34 lines modified | ||
| 1373 | ············"path_type":·"hardlink", | 1373 | ············"path_type":·"hardlink", |
| 1374 | ············"sha256":·"1b28267080f17f83da5cc1dc2f4a38f3bb0f1956c9c5bf2a1486c0cab30382ef", | 1374 | ············"sha256":·"1b28267080f17f83da5cc1dc2f4a38f3bb0f1956c9c5bf2a1486c0cab30382ef", |
| 1375 | ············"size_in_bytes":·1884 | 1375 | ············"size_in_bytes":·1884 |
| 1376 | ········}, | 1376 | ········}, |
| 1377 | ········{ | 1377 | ········{ |
| 1378 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/watchdog.d.ts", | 1378 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/watchdog.d.ts", |
| 1379 | ············"path_type":·"hardlink", | 1379 | ············"path_type":·"hardlink", |
| 1380 | ············"sha256":·" | 1380 | ············"sha256":·"12ce03889e7459d2dbb3e2122902a76ad6f4e90e4e82da2e6490a26af3364360", |
| 1381 | ············"size_in_bytes":·4 | 1381 | ············"size_in_bytes":·486 |
| 1382 | ········}, | 1382 | ········}, |
| 1383 | ········{ | 1383 | ········{ |
| 1384 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/watchdog.d.ts.map", | 1384 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/watchdog.d.ts.map", |
| 1385 | ············"path_type":·"hardlink", | 1385 | ············"path_type":·"hardlink", |
| 1386 | ············"sha256":·" | 1386 | ············"sha256":·"a38a2d065023e0bb7bd7192c250c545d4b99209120ef20ec3a92b1ad710ca80e", |
| 1387 | ············"size_in_bytes":·21 | 1387 | ············"size_in_bytes":·217 |
| 1388 | ········}, | 1388 | ········}, |
| 1389 | ········{ | 1389 | ········{ |
| 1390 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/watchdog.js", | 1390 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/watchdog.js", |
| 1391 | ············"path_type":·"hardlink", | 1391 | ············"path_type":·"hardlink", |
| 1392 | ············"sha256":·"0 | 1392 | ············"sha256":·"012f6dd36bc1cc0c9ffa6f1e5e5e4960a0a425fbbf491c29a98f41738b365eaa", |
| 1393 | ············"size_in_bytes":·1 | 1393 | ············"size_in_bytes":·1729 |
| 1394 | ········}, | 1394 | ········}, |
| 1395 | ········{ | 1395 | ········{ |
| 1396 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/watchdog.js.map", | 1396 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/commonjs/watchdog.js.map", |
| 1397 | ············"path_type":·"hardlink", | 1397 | ············"path_type":·"hardlink", |
| 1398 | ············"sha256":·" | 1398 | ············"sha256":·"43b312e0d4fef21057e226c0e5d7e7d9af132db0042f08a07741daeb2c3b94c2", |
| 1399 | ············"size_in_bytes":·2 | 1399 | ············"size_in_bytes":·2598 |
| 1400 | ········}, | 1400 | ········}, |
| 1401 | ········{ | 1401 | ········{ |
| 1402 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/esm/all-signals.d.ts", | 1402 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/esm/all-signals.d.ts", |
| 1403 | ············"path_type":·"hardlink", | 1403 | ············"path_type":·"hardlink", |
| 1404 | ············"sha256":·"7040294fcafdc9145f5c5d8d80adc91a5aed74e2bb049e348f3afe4277692f54", | 1404 | ············"sha256":·"7040294fcafdc9145f5c5d8d80adc91a5aed74e2bb049e348f3afe4277692f54", |
| 1405 | ············"size_in_bytes":·92 | 1405 | ············"size_in_bytes":·92 |
| 1406 | ········}, | 1406 | ········}, |
| Offset 1433, 22 lines modified | Offset 1433, 22 lines modified | ||
| 1433 | ············"path_type":·"hardlink", | 1433 | ············"path_type":·"hardlink", |
| 1434 | ············"sha256":·"a71e0714b7be0feeb4d9156db1769158df231774acf68a71980102f65a37ff79", | 1434 | ············"sha256":·"a71e0714b7be0feeb4d9156db1769158df231774acf68a71980102f65a37ff79", |
| 1435 | ············"size_in_bytes":·1928 | 1435 | ············"size_in_bytes":·1928 |
| 1436 | ········}, | 1436 | ········}, |
| 1437 | ········{ | 1437 | ········{ |
| 1438 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/esm/index.js", | 1438 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/esm/index.js", |
| 1439 | ············"path_type":·"hardlink", | 1439 | ············"path_type":·"hardlink", |
| 1440 | ············"sha256":·" | 1440 | ············"sha256":·"8158100aaa2e288b06ed8d0c655605d070eb0c659ee3bcbe2aa42ffef144d026", |
| 1441 | ············"size_in_bytes":· | 1441 | ············"size_in_bytes":·4328 |
| 1442 | ········}, | 1442 | ········}, |
| 1443 | ········{ | 1443 | ········{ |
| 1444 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/esm/index.js.map", | 1444 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/esm/index.js.map", |
| 1445 | ············"path_type":·"hardlink", | 1445 | ············"path_type":·"hardlink", |
| 1446 | ············"sha256":·" | 1446 | ············"sha256":·"eccdd4754c027a22b2b945389f4bd8c836502b2930c47db05aecd6da872b1cd6", |
| 1447 | ············"size_in_bytes":· | 1447 | ············"size_in_bytes":·10741 |
| 1448 | ········}, | 1448 | ········}, |
| 1449 | ········{ | 1449 | ········{ |
| 1450 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/esm/package.json", | 1450 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/esm/package.json", |
| 1451 | ············"path_type":·"hardlink", | 1451 | ············"path_type":·"hardlink", |
| 1452 | ············"sha256":·"3ca9d4afd21425087cf31893b8f9f63c81b0b8408db5e343ca76e5f8aa26ab9a", | 1452 | ············"sha256":·"3ca9d4afd21425087cf31893b8f9f63c81b0b8408db5e343ca76e5f8aa26ab9a", |
| 1453 | ············"size_in_bytes":·23 | 1453 | ············"size_in_bytes":·23 |
| 1454 | ········}, | 1454 | ········}, |
| Offset 1475, 39 lines modified | Offset 1475, 39 lines modified | ||
| 1475 | ············"path_type":·"hardlink", | 1475 | ············"path_type":·"hardlink", |
| 1476 | ············"sha256":·"85f664fbea6ca82c93549ec68559a647d8237918fa0ab6e07089addae7625860", | 1476 | ············"sha256":·"85f664fbea6ca82c93549ec68559a647d8237918fa0ab6e07089addae7625860", |
| 1477 | ············"size_in_bytes":·1896 | 1477 | ············"size_in_bytes":·1896 |
| 1478 | ········}, | 1478 | ········}, |
| 1479 | ········{ | 1479 | ········{ |
| 1480 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/esm/watchdog.d.ts", | 1480 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/esm/watchdog.d.ts", |
| 1481 | ············"path_type":·"hardlink", | 1481 | ············"path_type":·"hardlink", |
| 1482 | ············"sha256":·" | 1482 | ············"sha256":·"12ce03889e7459d2dbb3e2122902a76ad6f4e90e4e82da2e6490a26af3364360", |
| 1483 | ············"size_in_bytes":·4 | 1483 | ············"size_in_bytes":·486 |
| 1484 | ········}, | 1484 | ········}, |
| 1485 | ········{ | 1485 | ········{ |
| 1486 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/esm/watchdog.d.ts.map", | 1486 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/esm/watchdog.d.ts.map", |
| 1487 | ············"path_type":·"hardlink", | 1487 | ············"path_type":·"hardlink", |
| 1488 | ············"sha256":·" | 1488 | ············"sha256":·"a38a2d065023e0bb7bd7192c250c545d4b99209120ef20ec3a92b1ad710ca80e", |
| 1489 | ············"size_in_bytes":·21 | 1489 | ············"size_in_bytes":·217 |
| 1490 | ········}, | 1490 | ········}, |
| 1491 | ········{ | 1491 | ········{ |
| 1492 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/esm/watchdog.js", | 1492 | ············"_path":·"lib/node_modules/tshy/node_modules/foreground-child/dist/esm/watchdog.js", |
| Max diff block lines reached; 1298/7256 bytes (17.89%) of diff not shown. | |||