@aws-solutions-constructs/core 2.76.0 → 2.78.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/.jsii +98 -57
  2. package/lib/alb-defaults.js +2 -3
  3. package/lib/alb-helper.js +8 -10
  4. package/lib/apigateway-defaults.d.ts +6 -6
  5. package/lib/apigateway-defaults.js +17 -18
  6. package/lib/apigateway-helper.d.ts +2 -2
  7. package/lib/apigateway-helper.js +14 -17
  8. package/lib/cloudfront-distribution-defaults.js +4 -5
  9. package/lib/cloudfront-distribution-helper.js +7 -9
  10. package/lib/cloudwatch-log-group-defaults.js +2 -3
  11. package/lib/cloudwatch-log-group-helper.js +3 -6
  12. package/lib/cognito-defaults.d.ts +2 -2
  13. package/lib/cognito-defaults.js +6 -6
  14. package/lib/cognito-helper.js +8 -11
  15. package/lib/dynamodb-table-defaults.d.ts +3 -3
  16. package/lib/dynamodb-table-defaults.js +6 -6
  17. package/lib/dynamodb-table-helper.js +7 -8
  18. package/lib/elasticache-defaults.js +3 -4
  19. package/lib/elasticache-helper.js +4 -5
  20. package/lib/elasticsearch-defaults.js +2 -3
  21. package/lib/elasticsearch-helper.js +7 -8
  22. package/lib/eventbridge-helper.d.ts +2 -2
  23. package/lib/eventbridge-helper.js +6 -7
  24. package/lib/events-rule-defaults.d.ts +1 -1
  25. package/lib/events-rule-defaults.js +5 -6
  26. package/lib/fargate-defaults.js +6 -7
  27. package/lib/fargate-helper.js +7 -9
  28. package/lib/glue-database-defaults.js +4 -5
  29. package/lib/glue-database-helper.js +2 -3
  30. package/lib/glue-job-defaults.js +2 -3
  31. package/lib/glue-job-helper.js +9 -9
  32. package/lib/glue-table-defaults.js +7 -8
  33. package/lib/glue-table-helper.js +3 -4
  34. package/lib/iot-topic-rule-defaults.d.ts +1 -1
  35. package/lib/iot-topic-rule-defaults.js +7 -8
  36. package/lib/kendra-defaults.js +2 -3
  37. package/lib/kendra-helper.d.ts +1 -1
  38. package/lib/kendra-helper.js +5 -6
  39. package/lib/kinesis-analytics-defaults.d.ts +2 -2
  40. package/lib/kinesis-analytics-defaults.js +4 -4
  41. package/lib/kinesis-analytics-helper.js +3 -4
  42. package/lib/kinesis-firehose-s3-defaults.d.ts +1 -1
  43. package/lib/kinesis-firehose-s3-defaults.js +8 -9
  44. package/lib/kinesis-streams-defaults.d.ts +2 -2
  45. package/lib/kinesis-streams-defaults.js +4 -4
  46. package/lib/kinesis-streams-helper.js +5 -7
  47. package/lib/kms-defaults.d.ts +2 -2
  48. package/lib/kms-defaults.js +4 -4
  49. package/lib/kms-helper.js +3 -6
  50. package/lib/lambda-defaults.js +2 -3
  51. package/lib/lambda-event-source-mapping-defaults.d.ts +3 -3
  52. package/lib/lambda-event-source-mapping-defaults.js +16 -17
  53. package/lib/lambda-helper.js +6 -7
  54. package/lib/mediastore-defaults.js +2 -3
  55. package/lib/mediastore-helper.js +4 -6
  56. package/lib/opensearch-defaults.js +2 -3
  57. package/lib/opensearch-helper.js +5 -6
  58. package/lib/override-warning-service.js +10 -8
  59. package/lib/pipes-defaults.js +5 -6
  60. package/lib/pipes-helper.js +7 -7
  61. package/lib/s3-bucket-defaults.js +3 -3
  62. package/lib/s3-bucket-helper.js +13 -8
  63. package/lib/sagemaker-defaults.js +5 -6
  64. package/lib/sagemaker-helper.d.ts +5 -0
  65. package/lib/sagemaker-helper.js +17 -17
  66. package/lib/secretsmanager-defaults.d.ts +2 -2
  67. package/lib/secretsmanager-defaults.js +4 -4
  68. package/lib/secretsmanager-helper.js +4 -6
  69. package/lib/security-group-helper.js +3 -4
  70. package/lib/sns-defaults.d.ts +2 -2
  71. package/lib/sns-defaults.js +4 -4
  72. package/lib/sns-helper.js +4 -5
  73. package/lib/sqs-defaults.js +5 -5
  74. package/lib/sqs-helper.d.ts +1 -1
  75. package/lib/sqs-helper.js +5 -6
  76. package/lib/ssm-string-parameter-helper.js +2 -3
  77. package/lib/step-function-defaults.d.ts +1 -1
  78. package/lib/step-function-defaults.js +4 -5
  79. package/lib/step-function-helper.js +5 -5
  80. package/lib/utils.d.ts +1 -1
  81. package/lib/utils.js +32 -30
  82. package/lib/vpc-defaults.js +4 -5
  83. package/lib/vpc-helper.js +6 -8
  84. package/lib/waf-defaults.js +4 -5
  85. package/lib/waf-helper.js +4 -6
  86. package/lib/websocket-api-helper.js +4 -6
  87. package/package.json +6 -5
  88. package/test/apigateway-helper.test.js +3 -3
  89. package/test/cloudfront-distribution-api-gateway-helper.test.js +11 -11
  90. package/test/dynamo-table.test.js +9 -9
  91. package/test/glue-job-helper.test.js +7 -7
  92. package/test/glue-table-helper.test.js +5 -5
  93. package/test/kinesis-analytics.test.js +2 -2
  94. package/test/kinesis-streams-defaults.test.js +2 -2
  95. package/test/lambda-event-source.test.js +10 -10
  96. package/test/override-warning-service.test.js +25 -26
  97. package/test/pipes-helper.test.js +2 -2
  98. package/test/step-function-helper.test.js +5 -5
  99. package/test/test-helper.js +16 -16
  100. package/test/utils.test.js +11 -12
  101. package/.eslintignore +0 -9
  102. package/node_modules/ansi-regex/index.d.ts +0 -37
  103. package/node_modules/ansi-regex/index.js +0 -10
  104. package/node_modules/ansi-regex/license +0 -9
  105. package/node_modules/ansi-regex/package.json +0 -55
  106. package/node_modules/ansi-regex/readme.md +0 -78
  107. package/node_modules/aproba/LICENSE +0 -14
  108. package/node_modules/aproba/README.md +0 -94
  109. package/node_modules/aproba/index.js +0 -105
  110. package/node_modules/aproba/package.json +0 -35
  111. package/node_modules/are-we-there-yet/LICENSE.md +0 -18
  112. package/node_modules/are-we-there-yet/README.md +0 -208
  113. package/node_modules/are-we-there-yet/lib/index.js +0 -4
  114. package/node_modules/are-we-there-yet/lib/tracker-base.js +0 -13
  115. package/node_modules/are-we-there-yet/lib/tracker-group.js +0 -112
  116. package/node_modules/are-we-there-yet/lib/tracker-stream.js +0 -42
  117. package/node_modules/are-we-there-yet/lib/tracker.js +0 -34
  118. package/node_modules/are-we-there-yet/package.json +0 -53
  119. package/node_modules/color-support/LICENSE +0 -15
  120. package/node_modules/color-support/README.md +0 -129
  121. package/node_modules/color-support/bin.js +0 -3
  122. package/node_modules/color-support/browser.js +0 -14
  123. package/node_modules/color-support/index.js +0 -134
  124. package/node_modules/color-support/package.json +0 -36
  125. package/node_modules/console-control-strings/LICENSE +0 -13
  126. package/node_modules/console-control-strings/README.md +0 -145
  127. package/node_modules/console-control-strings/index.js +0 -125
  128. package/node_modules/console-control-strings/package.json +0 -27
  129. package/node_modules/deep-diff/.circleci/config.yml +0 -76
  130. package/node_modules/deep-diff/.eslintrc +0 -72
  131. package/node_modules/deep-diff/.vscode/launch.json +0 -30
  132. package/node_modules/deep-diff/.vscode/tasks.json +0 -12
  133. package/node_modules/deep-diff/ChangeLog.md +0 -63
  134. package/node_modules/deep-diff/LICENSE +0 -7
  135. package/node_modules/deep-diff/Readme.md +0 -239
  136. package/node_modules/deep-diff/dist/deep-diff.min.js +0 -1
  137. package/node_modules/deep-diff/dist/deep-diff.min.js.map +0 -1
  138. package/node_modules/deep-diff/examples/apply-diff-from-any.js +0 -39
  139. package/node_modules/deep-diff/examples/array-change.js +0 -45
  140. package/node_modules/deep-diff/examples/capture_change_apply_elsewhere.js +0 -53
  141. package/node_modules/deep-diff/examples/diff-ignoring-fun.js +0 -88
  142. package/node_modules/deep-diff/examples/diff-scenarios.js +0 -49
  143. package/node_modules/deep-diff/examples/example1.js +0 -41
  144. package/node_modules/deep-diff/examples/issue-111.js +0 -6
  145. package/node_modules/deep-diff/examples/issue-113-1.js +0 -14
  146. package/node_modules/deep-diff/examples/issue-113-2.js +0 -11
  147. package/node_modules/deep-diff/examples/issue-115.js +0 -17
  148. package/node_modules/deep-diff/examples/issue-124.js +0 -8
  149. package/node_modules/deep-diff/examples/issue-125.js +0 -19
  150. package/node_modules/deep-diff/examples/issue-126.js +0 -33
  151. package/node_modules/deep-diff/examples/issue-35.js +0 -11
  152. package/node_modules/deep-diff/examples/issue-47.js +0 -17
  153. package/node_modules/deep-diff/examples/issue-48.js +0 -48
  154. package/node_modules/deep-diff/examples/issue-62.js +0 -14
  155. package/node_modules/deep-diff/examples/issue-70.js +0 -6
  156. package/node_modules/deep-diff/examples/issue-71.js +0 -15
  157. package/node_modules/deep-diff/examples/issue-72.js +0 -21
  158. package/node_modules/deep-diff/examples/issue-74.js +0 -9
  159. package/node_modules/deep-diff/examples/issue-78.js +0 -24
  160. package/node_modules/deep-diff/examples/issue-83.js +0 -11
  161. package/node_modules/deep-diff/examples/issue-88.js +0 -26
  162. package/node_modules/deep-diff/examples/performance.js +0 -64
  163. package/node_modules/deep-diff/examples/practice-data.json +0 -2501
  164. package/node_modules/deep-diff/index.js +0 -526
  165. package/node_modules/deep-diff/package.json +0 -74
  166. package/node_modules/deep-diff/test/.eslintrc +0 -10
  167. package/node_modules/deep-diff/test/tests.html +0 -34
  168. package/node_modules/deep-diff/test/tests.js +0 -759
  169. package/node_modules/deepmerge/.editorconfig +0 -7
  170. package/node_modules/deepmerge/.eslintcache +0 -1
  171. package/node_modules/deepmerge/changelog.md +0 -167
  172. package/node_modules/deepmerge/dist/cjs.js +0 -133
  173. package/node_modules/deepmerge/dist/umd.js +0 -139
  174. package/node_modules/deepmerge/index.d.ts +0 -20
  175. package/node_modules/deepmerge/index.js +0 -106
  176. package/node_modules/deepmerge/license.txt +0 -21
  177. package/node_modules/deepmerge/package.json +0 -42
  178. package/node_modules/deepmerge/readme.md +0 -264
  179. package/node_modules/deepmerge/rollup.config.js +0 -22
  180. package/node_modules/emoji-regex/LICENSE-MIT.txt +0 -20
  181. package/node_modules/emoji-regex/README.md +0 -73
  182. package/node_modules/emoji-regex/es2015/index.js +0 -6
  183. package/node_modules/emoji-regex/es2015/text.js +0 -6
  184. package/node_modules/emoji-regex/index.d.ts +0 -23
  185. package/node_modules/emoji-regex/index.js +0 -6
  186. package/node_modules/emoji-regex/package.json +0 -50
  187. package/node_modules/emoji-regex/text.js +0 -6
  188. package/node_modules/gauge/LICENSE.md +0 -20
  189. package/node_modules/gauge/README.md +0 -402
  190. package/node_modules/gauge/lib/base-theme.js +0 -18
  191. package/node_modules/gauge/lib/error.js +0 -24
  192. package/node_modules/gauge/lib/has-color.js +0 -4
  193. package/node_modules/gauge/lib/index.js +0 -289
  194. package/node_modules/gauge/lib/plumbing.js +0 -50
  195. package/node_modules/gauge/lib/process.js +0 -3
  196. package/node_modules/gauge/lib/progress-bar.js +0 -41
  197. package/node_modules/gauge/lib/render-template.js +0 -222
  198. package/node_modules/gauge/lib/set-immediate.js +0 -7
  199. package/node_modules/gauge/lib/set-interval.js +0 -3
  200. package/node_modules/gauge/lib/spin.js +0 -5
  201. package/node_modules/gauge/lib/template-item.js +0 -87
  202. package/node_modules/gauge/lib/theme-set.js +0 -122
  203. package/node_modules/gauge/lib/themes.js +0 -56
  204. package/node_modules/gauge/lib/wide-truncate.js +0 -31
  205. package/node_modules/gauge/package.json +0 -68
  206. package/node_modules/has-unicode/LICENSE +0 -14
  207. package/node_modules/has-unicode/README.md +0 -43
  208. package/node_modules/has-unicode/index.js +0 -16
  209. package/node_modules/has-unicode/package.json +0 -30
  210. package/node_modules/is-fullwidth-code-point/index.d.ts +0 -17
  211. package/node_modules/is-fullwidth-code-point/index.js +0 -50
  212. package/node_modules/is-fullwidth-code-point/license +0 -9
  213. package/node_modules/is-fullwidth-code-point/package.json +0 -42
  214. package/node_modules/is-fullwidth-code-point/readme.md +0 -39
  215. package/node_modules/npmlog/LICENSE.md +0 -20
  216. package/node_modules/npmlog/README.md +0 -216
  217. package/node_modules/npmlog/lib/log.js +0 -400
  218. package/node_modules/npmlog/package.json +0 -52
  219. package/node_modules/set-blocking/LICENSE.txt +0 -14
  220. package/node_modules/set-blocking/README.md +0 -31
  221. package/node_modules/set-blocking/index.js +0 -7
  222. package/node_modules/set-blocking/package.json +0 -42
  223. package/node_modules/signal-exit/LICENSE.txt +0 -16
  224. package/node_modules/signal-exit/README.md +0 -74
  225. package/node_modules/signal-exit/dist/cjs/browser.d.ts +0 -12
  226. package/node_modules/signal-exit/dist/cjs/browser.d.ts.map +0 -1
  227. package/node_modules/signal-exit/dist/cjs/browser.js +0 -10
  228. package/node_modules/signal-exit/dist/cjs/browser.js.map +0 -1
  229. package/node_modules/signal-exit/dist/cjs/index.d.ts +0 -48
  230. package/node_modules/signal-exit/dist/cjs/index.d.ts.map +0 -1
  231. package/node_modules/signal-exit/dist/cjs/index.js +0 -279
  232. package/node_modules/signal-exit/dist/cjs/index.js.map +0 -1
  233. package/node_modules/signal-exit/dist/cjs/package.json +0 -3
  234. package/node_modules/signal-exit/dist/cjs/signals.d.ts +0 -29
  235. package/node_modules/signal-exit/dist/cjs/signals.d.ts.map +0 -1
  236. package/node_modules/signal-exit/dist/cjs/signals.js +0 -42
  237. package/node_modules/signal-exit/dist/cjs/signals.js.map +0 -1
  238. package/node_modules/signal-exit/dist/mjs/browser.d.ts +0 -12
  239. package/node_modules/signal-exit/dist/mjs/browser.d.ts.map +0 -1
  240. package/node_modules/signal-exit/dist/mjs/browser.js +0 -4
  241. package/node_modules/signal-exit/dist/mjs/browser.js.map +0 -1
  242. package/node_modules/signal-exit/dist/mjs/index.d.ts +0 -48
  243. package/node_modules/signal-exit/dist/mjs/index.d.ts.map +0 -1
  244. package/node_modules/signal-exit/dist/mjs/index.js +0 -275
  245. package/node_modules/signal-exit/dist/mjs/index.js.map +0 -1
  246. package/node_modules/signal-exit/dist/mjs/package.json +0 -3
  247. package/node_modules/signal-exit/dist/mjs/signals.d.ts +0 -29
  248. package/node_modules/signal-exit/dist/mjs/signals.d.ts.map +0 -1
  249. package/node_modules/signal-exit/dist/mjs/signals.js +0 -39
  250. package/node_modules/signal-exit/dist/mjs/signals.js.map +0 -1
  251. package/node_modules/signal-exit/package.json +0 -106
  252. package/node_modules/string-width/index.d.ts +0 -29
  253. package/node_modules/string-width/index.js +0 -47
  254. package/node_modules/string-width/license +0 -9
  255. package/node_modules/string-width/package.json +0 -56
  256. package/node_modules/string-width/readme.md +0 -50
  257. package/node_modules/strip-ansi/index.d.ts +0 -17
  258. package/node_modules/strip-ansi/index.js +0 -4
  259. package/node_modules/strip-ansi/license +0 -9
  260. package/node_modules/strip-ansi/package.json +0 -54
  261. package/node_modules/strip-ansi/readme.md +0 -46
  262. package/node_modules/wide-align/LICENSE +0 -14
  263. package/node_modules/wide-align/README.md +0 -47
  264. package/node_modules/wide-align/align.js +0 -65
  265. package/node_modules/wide-align/package.json +0 -33
@@ -1,7 +0,0 @@
1
- module.exports = function (blocking) {
2
- [process.stdout, process.stderr].forEach(function (stream) {
3
- if (stream._handle && stream.isTTY && typeof stream._handle.setBlocking === 'function') {
4
- stream._handle.setBlocking(blocking)
5
- }
6
- })
7
- }
@@ -1,42 +0,0 @@
1
- {
2
- "name": "set-blocking",
3
- "version": "2.0.0",
4
- "description": "set blocking stdio and stderr ensuring that terminal output does not truncate",
5
- "main": "index.js",
6
- "scripts": {
7
- "pretest": "standard",
8
- "test": "nyc mocha ./test/*.js",
9
- "coverage": "nyc report --reporter=text-lcov | coveralls",
10
- "version": "standard-version"
11
- },
12
- "repository": {
13
- "type": "git",
14
- "url": "git+https://github.com/yargs/set-blocking.git"
15
- },
16
- "keywords": [
17
- "flush",
18
- "terminal",
19
- "blocking",
20
- "shim",
21
- "stdio",
22
- "stderr"
23
- ],
24
- "author": "Ben Coe <ben@npmjs.com>",
25
- "license": "ISC",
26
- "bugs": {
27
- "url": "https://github.com/yargs/set-blocking/issues"
28
- },
29
- "homepage": "https://github.com/yargs/set-blocking#readme",
30
- "devDependencies": {
31
- "chai": "^3.5.0",
32
- "coveralls": "^2.11.9",
33
- "mocha": "^2.4.5",
34
- "nyc": "^6.4.4",
35
- "standard": "^7.0.1",
36
- "standard-version": "^2.2.1"
37
- },
38
- "files": [
39
- "index.js",
40
- "LICENSE.txt"
41
- ]
42
- }
@@ -1,16 +0,0 @@
1
- The ISC License
2
-
3
- Copyright (c) 2015-2023 Benjamin Coe, Isaac Z. Schlueter, and Contributors
4
-
5
- Permission to use, copy, modify, and/or distribute this software
6
- for any purpose with or without fee is hereby granted, provided
7
- that the above copyright notice and this permission notice
8
- appear in all copies.
9
-
10
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
12
- OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE
13
- LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
14
- OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
15
- WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
16
- ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -1,74 +0,0 @@
1
- # signal-exit
2
-
3
- When you want to fire an event no matter how a process exits:
4
-
5
- - reaching the end of execution.
6
- - explicitly having `process.exit(code)` called.
7
- - having `process.kill(pid, sig)` called.
8
- - receiving a fatal signal from outside the process
9
-
10
- Use `signal-exit`.
11
-
12
- ```js
13
- // Hybrid module, either works
14
- import { onExit } from 'signal-exit'
15
- // or:
16
- // const { onExit } = require('signal-exit')
17
-
18
- onExit((code, signal) => {
19
- console.log('process exited!', code, signal)
20
- })
21
- ```
22
-
23
- ## API
24
-
25
- `remove = onExit((code, signal) => {}, options)`
26
-
27
- The return value of the function is a function that will remove
28
- the handler.
29
-
30
- Note that the function _only_ fires for signals if the signal
31
- would cause the process to exit. That is, there are no other
32
- listeners, and it is a fatal signal.
33
-
34
- If the global `process` object is not suitable for this purpose
35
- (ie, it's unset, or doesn't have an `emit` method, etc.) then the
36
- `onExit` function is a no-op that returns a no-op `remove` method.
37
-
38
- ### Options
39
-
40
- - `alwaysLast`: Run this handler after any other signal or exit
41
- handlers. This causes `process.emit` to be monkeypatched.
42
-
43
- ### Capturing Signal Exits
44
-
45
- If the handler returns an exact boolean `true`, and the exit is a
46
- due to signal, then the signal will be considered handled, and
47
- will _not_ trigger a synthetic `process.kill(process.pid,
48
- signal)` after firing the `onExit` handlers.
49
-
50
- In this case, it your responsibility as the caller to exit with a
51
- signal (for example, by calling `process.kill()`) if you wish to
52
- preserve the same exit status that would otherwise have occurred.
53
- If you do not, then the process will likely exit gracefully with
54
- status 0 at some point, assuming that no other terminating signal
55
- or other exit trigger occurs.
56
-
57
- Prior to calling handlers, the `onExit` machinery is unloaded, so
58
- any subsequent exits or signals will not be handled, even if the
59
- signal is captured and the exit is thus prevented.
60
-
61
- Note that numeric code exits may indicate that the process is
62
- already committed to exiting, for example due to a fatal
63
- exception or unhandled promise rejection, and so there is no way to
64
- prevent it safely.
65
-
66
- ### Browser Fallback
67
-
68
- The `'signal-exit/browser'` module is the same fallback shim that
69
- just doesn't do anything, but presents the same function
70
- interface.
71
-
72
- Patches welcome to add something that hooks onto
73
- `window.onbeforeunload` or similar, but it might just not be a
74
- thing that makes sense there.
@@ -1,12 +0,0 @@
1
- /**
2
- * This is a browser shim that provides the same functional interface
3
- * as the main node export, but it does nothing.
4
- * @module
5
- */
6
- import type { Handler } from './index.js';
7
- export declare const onExit: (cb: Handler, opts: {
8
- alwaysLast?: boolean;
9
- }) => () => void;
10
- export declare const load: () => void;
11
- export declare const unload: () => void;
12
- //# sourceMappingURL=browser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACzC,eAAO,MAAM,MAAM,EAAE,CACnB,EAAE,EAAE,OAAO,EACX,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,KAC3B,MAAM,IAAqB,CAAA;AAChC,eAAO,MAAM,IAAI,YAAW,CAAA;AAC5B,eAAO,MAAM,MAAM,YAAW,CAAA"}
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.unload = exports.load = exports.onExit = void 0;
4
- const onExit = () => () => { };
5
- exports.onExit = onExit;
6
- const load = () => { };
7
- exports.load = load;
8
- const unload = () => { };
9
- exports.unload = unload;
10
- //# sourceMappingURL=browser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":";;;AAMO,MAAM,MAAM,GAGD,GAAG,EAAE,CAAC,GAAG,EAAE,GAAE,CAAC,CAAA;AAHnB,QAAA,MAAM,UAGa;AACzB,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;AAAf,QAAA,IAAI,QAAW;AACrB,MAAM,MAAM,GAAG,GAAG,EAAE,GAAE,CAAC,CAAA;AAAjB,QAAA,MAAM,UAAW","sourcesContent":["/**\n * This is a browser shim that provides the same functional interface\n * as the main node export, but it does nothing.\n * @module\n */\nimport type { Handler } from './index.js'\nexport const onExit: (\n cb: Handler,\n opts: { alwaysLast?: boolean }\n) => () => void = () => () => {}\nexport const load = () => {}\nexport const unload = () => {}\n"]}
@@ -1,48 +0,0 @@
1
- /// <reference types="node" />
2
- import { signals } from './signals.js';
3
- export { signals };
4
- /**
5
- * A function that takes an exit code and signal as arguments
6
- *
7
- * In the case of signal exits *only*, a return value of true
8
- * will indicate that the signal is being handled, and we should
9
- * not synthetically exit with the signal we received. Regardless
10
- * of the handler return value, the handler is unloaded when an
11
- * otherwise fatal signal is received, so you get exactly 1 shot
12
- * at it, unless you add another onExit handler at that point.
13
- *
14
- * In the case of numeric code exits, we may already have committed
15
- * to exiting the process, for example via a fatal exception or
16
- * unhandled promise rejection, so it is impossible to stop safely.
17
- */
18
- export type Handler = (code: number | null | undefined, signal: NodeJS.Signals | null) => true | void;
19
- export declare const
20
- /**
21
- * Called when the process is exiting, whether via signal, explicit
22
- * exit, or running out of stuff to do.
23
- *
24
- * If the global process object is not suitable for instrumentation,
25
- * then this will be a no-op.
26
- *
27
- * Returns a function that may be used to unload signal-exit.
28
- */
29
- onExit: (cb: Handler, opts?: {
30
- alwaysLast?: boolean | undefined;
31
- } | undefined) => () => void,
32
- /**
33
- * Load the listeners. Likely you never need to call this, unless
34
- * doing a rather deep integration with signal-exit functionality.
35
- * Mostly exposed for the benefit of testing.
36
- *
37
- * @internal
38
- */
39
- load: () => void,
40
- /**
41
- * Unload the listeners. Likely you never need to call this, unless
42
- * doing a rather deep integration with signal-exit functionality.
43
- * Mostly exposed for the benefit of testing.
44
- *
45
- * @internal
46
- */
47
- unload: () => void;
48
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,CAAA;AAuBlB;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,OAAO,GAAG,CACpB,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC/B,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,KAC1B,IAAI,GAAG,IAAI,CAAA;AA8QhB,eAAO;AACL;;;;;;;;GAQG;AACH,MAAM,OAzMO,OAAO;;wBAPiD,IAAI;AAkNzE;;;;;;GAMG;AACH,IAAI;AAEJ;;;;;;GAMG;AACH,MAAM,YAGP,CAAA"}
@@ -1,279 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.unload = exports.load = exports.onExit = exports.signals = void 0;
5
- // Note: since nyc uses this module to output coverage, any lines
6
- // that are in the direct sync flow of nyc's outputCoverage are
7
- // ignored, since we can never get coverage for them.
8
- // grab a reference to node's real process object right away
9
- const signals_js_1 = require("./signals.js");
10
- Object.defineProperty(exports, "signals", { enumerable: true, get: function () { return signals_js_1.signals; } });
11
- const processOk = (process) => !!process &&
12
- typeof process === 'object' &&
13
- typeof process.removeListener === 'function' &&
14
- typeof process.emit === 'function' &&
15
- typeof process.reallyExit === 'function' &&
16
- typeof process.listeners === 'function' &&
17
- typeof process.kill === 'function' &&
18
- typeof process.pid === 'number' &&
19
- typeof process.on === 'function';
20
- const kExitEmitter = Symbol.for('signal-exit emitter');
21
- const global = globalThis;
22
- const ObjectDefineProperty = Object.defineProperty.bind(Object);
23
- // teeny special purpose ee
24
- class Emitter {
25
- emitted = {
26
- afterExit: false,
27
- exit: false,
28
- };
29
- listeners = {
30
- afterExit: [],
31
- exit: [],
32
- };
33
- count = 0;
34
- id = Math.random();
35
- constructor() {
36
- if (global[kExitEmitter]) {
37
- return global[kExitEmitter];
38
- }
39
- ObjectDefineProperty(global, kExitEmitter, {
40
- value: this,
41
- writable: false,
42
- enumerable: false,
43
- configurable: false,
44
- });
45
- }
46
- on(ev, fn) {
47
- this.listeners[ev].push(fn);
48
- }
49
- removeListener(ev, fn) {
50
- const list = this.listeners[ev];
51
- const i = list.indexOf(fn);
52
- /* c8 ignore start */
53
- if (i === -1) {
54
- return;
55
- }
56
- /* c8 ignore stop */
57
- if (i === 0 && list.length === 1) {
58
- list.length = 0;
59
- }
60
- else {
61
- list.splice(i, 1);
62
- }
63
- }
64
- emit(ev, code, signal) {
65
- if (this.emitted[ev]) {
66
- return false;
67
- }
68
- this.emitted[ev] = true;
69
- let ret = false;
70
- for (const fn of this.listeners[ev]) {
71
- ret = fn(code, signal) === true || ret;
72
- }
73
- if (ev === 'exit') {
74
- ret = this.emit('afterExit', code, signal) || ret;
75
- }
76
- return ret;
77
- }
78
- }
79
- class SignalExitBase {
80
- }
81
- const signalExitWrap = (handler) => {
82
- return {
83
- onExit(cb, opts) {
84
- return handler.onExit(cb, opts);
85
- },
86
- load() {
87
- return handler.load();
88
- },
89
- unload() {
90
- return handler.unload();
91
- },
92
- };
93
- };
94
- class SignalExitFallback extends SignalExitBase {
95
- onExit() {
96
- return () => { };
97
- }
98
- load() { }
99
- unload() { }
100
- }
101
- class SignalExit extends SignalExitBase {
102
- // "SIGHUP" throws an `ENOSYS` error on Windows,
103
- // so use a supported signal instead
104
- /* c8 ignore start */
105
- #hupSig = process.platform === 'win32' ? 'SIGINT' : 'SIGHUP';
106
- /* c8 ignore stop */
107
- #emitter = new Emitter();
108
- #process;
109
- #originalProcessEmit;
110
- #originalProcessReallyExit;
111
- #sigListeners = {};
112
- #loaded = false;
113
- constructor(process) {
114
- super();
115
- this.#process = process;
116
- // { <signal>: <listener fn>, ... }
117
- this.#sigListeners = {};
118
- for (const sig of signals_js_1.signals) {
119
- this.#sigListeners[sig] = () => {
120
- // If there are no other listeners, an exit is coming!
121
- // Simplest way: remove us and then re-send the signal.
122
- // We know that this will kill the process, so we can
123
- // safely emit now.
124
- const listeners = this.#process.listeners(sig);
125
- let { count } = this.#emitter;
126
- // This is a workaround for the fact that signal-exit v3 and signal
127
- // exit v4 are not aware of each other, and each will attempt to let
128
- // the other handle it, so neither of them do. To correct this, we
129
- // detect if we're the only handler *except* for previous versions
130
- // of signal-exit, and increment by the count of listeners it has
131
- // created.
132
- /* c8 ignore start */
133
- const p = process;
134
- if (typeof p.__signal_exit_emitter__ === 'object' &&
135
- typeof p.__signal_exit_emitter__.count === 'number') {
136
- count += p.__signal_exit_emitter__.count;
137
- }
138
- /* c8 ignore stop */
139
- if (listeners.length === count) {
140
- this.unload();
141
- const ret = this.#emitter.emit('exit', null, sig);
142
- /* c8 ignore start */
143
- const s = sig === 'SIGHUP' ? this.#hupSig : sig;
144
- if (!ret)
145
- process.kill(process.pid, s);
146
- /* c8 ignore stop */
147
- }
148
- };
149
- }
150
- this.#originalProcessReallyExit = process.reallyExit;
151
- this.#originalProcessEmit = process.emit;
152
- }
153
- onExit(cb, opts) {
154
- /* c8 ignore start */
155
- if (!processOk(this.#process)) {
156
- return () => { };
157
- }
158
- /* c8 ignore stop */
159
- if (this.#loaded === false) {
160
- this.load();
161
- }
162
- const ev = opts?.alwaysLast ? 'afterExit' : 'exit';
163
- this.#emitter.on(ev, cb);
164
- return () => {
165
- this.#emitter.removeListener(ev, cb);
166
- if (this.#emitter.listeners['exit'].length === 0 &&
167
- this.#emitter.listeners['afterExit'].length === 0) {
168
- this.unload();
169
- }
170
- };
171
- }
172
- load() {
173
- if (this.#loaded) {
174
- return;
175
- }
176
- this.#loaded = true;
177
- // This is the number of onSignalExit's that are in play.
178
- // It's important so that we can count the correct number of
179
- // listeners on signals, and don't wait for the other one to
180
- // handle it instead of us.
181
- this.#emitter.count += 1;
182
- for (const sig of signals_js_1.signals) {
183
- try {
184
- const fn = this.#sigListeners[sig];
185
- if (fn)
186
- this.#process.on(sig, fn);
187
- }
188
- catch (_) { }
189
- }
190
- this.#process.emit = (ev, ...a) => {
191
- return this.#processEmit(ev, ...a);
192
- };
193
- this.#process.reallyExit = (code) => {
194
- return this.#processReallyExit(code);
195
- };
196
- }
197
- unload() {
198
- if (!this.#loaded) {
199
- return;
200
- }
201
- this.#loaded = false;
202
- signals_js_1.signals.forEach(sig => {
203
- const listener = this.#sigListeners[sig];
204
- /* c8 ignore start */
205
- if (!listener) {
206
- throw new Error('Listener not defined for signal: ' + sig);
207
- }
208
- /* c8 ignore stop */
209
- try {
210
- this.#process.removeListener(sig, listener);
211
- /* c8 ignore start */
212
- }
213
- catch (_) { }
214
- /* c8 ignore stop */
215
- });
216
- this.#process.emit = this.#originalProcessEmit;
217
- this.#process.reallyExit = this.#originalProcessReallyExit;
218
- this.#emitter.count -= 1;
219
- }
220
- #processReallyExit(code) {
221
- /* c8 ignore start */
222
- if (!processOk(this.#process)) {
223
- return 0;
224
- }
225
- this.#process.exitCode = code || 0;
226
- /* c8 ignore stop */
227
- this.#emitter.emit('exit', this.#process.exitCode, null);
228
- return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);
229
- }
230
- #processEmit(ev, ...args) {
231
- const og = this.#originalProcessEmit;
232
- if (ev === 'exit' && processOk(this.#process)) {
233
- if (typeof args[0] === 'number') {
234
- this.#process.exitCode = args[0];
235
- /* c8 ignore start */
236
- }
237
- /* c8 ignore start */
238
- const ret = og.call(this.#process, ev, ...args);
239
- /* c8 ignore start */
240
- this.#emitter.emit('exit', this.#process.exitCode, null);
241
- /* c8 ignore stop */
242
- return ret;
243
- }
244
- else {
245
- return og.call(this.#process, ev, ...args);
246
- }
247
- }
248
- }
249
- const process = globalThis.process;
250
- // wrap so that we call the method on the actual handler, without
251
- // exporting it directly.
252
- _a = signalExitWrap(processOk(process) ? new SignalExit(process) : new SignalExitFallback()),
253
- /**
254
- * Called when the process is exiting, whether via signal, explicit
255
- * exit, or running out of stuff to do.
256
- *
257
- * If the global process object is not suitable for instrumentation,
258
- * then this will be a no-op.
259
- *
260
- * Returns a function that may be used to unload signal-exit.
261
- */
262
- exports.onExit = _a.onExit,
263
- /**
264
- * Load the listeners. Likely you never need to call this, unless
265
- * doing a rather deep integration with signal-exit functionality.
266
- * Mostly exposed for the benefit of testing.
267
- *
268
- * @internal
269
- */
270
- exports.load = _a.load,
271
- /**
272
- * Unload the listeners. Likely you never need to call this, unless
273
- * doing a rather deep integration with signal-exit functionality.
274
- * Mostly exposed for the benefit of testing.
275
- *
276
- * @internal
277
- */
278
- exports.unload = _a.unload;
279
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nimport { signals } from './signals.js'\nexport { signals }\n\n// just a loosened process type so we can do some evil things\ntype ProcessRE = NodeJS.Process & {\n reallyExit: (code?: number | undefined | null) => any\n emit: (ev: string, ...a: any[]) => any\n}\n\nconst processOk = (process: any): process is ProcessRE =>\n !!process &&\n typeof process === 'object' &&\n typeof process.removeListener === 'function' &&\n typeof process.emit === 'function' &&\n typeof process.reallyExit === 'function' &&\n typeof process.listeners === 'function' &&\n typeof process.kill === 'function' &&\n typeof process.pid === 'number' &&\n typeof process.on === 'function'\n\nconst kExitEmitter = Symbol.for('signal-exit emitter')\nconst global: typeof globalThis & { [kExitEmitter]?: Emitter } = globalThis\nconst ObjectDefineProperty = Object.defineProperty.bind(Object)\n\n/**\n * A function that takes an exit code and signal as arguments\n *\n * In the case of signal exits *only*, a return value of true\n * will indicate that the signal is being handled, and we should\n * not synthetically exit with the signal we received. Regardless\n * of the handler return value, the handler is unloaded when an\n * otherwise fatal signal is received, so you get exactly 1 shot\n * at it, unless you add another onExit handler at that point.\n *\n * In the case of numeric code exits, we may already have committed\n * to exiting the process, for example via a fatal exception or\n * unhandled promise rejection, so it is impossible to stop safely.\n */\nexport type Handler = (\n code: number | null | undefined,\n signal: NodeJS.Signals | null\n) => true | void\ntype ExitEvent = 'afterExit' | 'exit'\ntype Emitted = { [k in ExitEvent]: boolean }\ntype Listeners = { [k in ExitEvent]: Handler[] }\n\n// teeny special purpose ee\nclass Emitter {\n emitted: Emitted = {\n afterExit: false,\n exit: false,\n }\n\n listeners: Listeners = {\n afterExit: [],\n exit: [],\n }\n\n count: number = 0\n id: number = Math.random()\n\n constructor() {\n if (global[kExitEmitter]) {\n return global[kExitEmitter]\n }\n ObjectDefineProperty(global, kExitEmitter, {\n value: this,\n writable: false,\n enumerable: false,\n configurable: false,\n })\n }\n\n on(ev: ExitEvent, fn: Handler) {\n this.listeners[ev].push(fn)\n }\n\n removeListener(ev: ExitEvent, fn: Handler) {\n const list = this.listeners[ev]\n const i = list.indexOf(fn)\n /* c8 ignore start */\n if (i === -1) {\n return\n }\n /* c8 ignore stop */\n if (i === 0 && list.length === 1) {\n list.length = 0\n } else {\n list.splice(i, 1)\n }\n }\n\n emit(\n ev: ExitEvent,\n code: number | null | undefined,\n signal: NodeJS.Signals | null\n ): boolean {\n if (this.emitted[ev]) {\n return false\n }\n this.emitted[ev] = true\n let ret: boolean = false\n for (const fn of this.listeners[ev]) {\n ret = fn(code, signal) === true || ret\n }\n if (ev === 'exit') {\n ret = this.emit('afterExit', code, signal) || ret\n }\n return ret\n }\n}\n\nabstract class SignalExitBase {\n abstract onExit(cb: Handler, opts?: { alwaysLast?: boolean }): () => void\n abstract load(): void\n abstract unload(): void\n}\n\nconst signalExitWrap = <T extends SignalExitBase>(handler: T) => {\n return {\n onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n return handler.onExit(cb, opts)\n },\n load() {\n return handler.load()\n },\n unload() {\n return handler.unload()\n },\n }\n}\n\nclass SignalExitFallback extends SignalExitBase {\n onExit() {\n return () => {}\n }\n load() {}\n unload() {}\n}\n\nclass SignalExit extends SignalExitBase {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n /* c8 ignore start */\n #hupSig = process.platform === 'win32' ? 'SIGINT' : 'SIGHUP'\n /* c8 ignore stop */\n #emitter = new Emitter()\n #process: ProcessRE\n #originalProcessEmit: ProcessRE['emit']\n #originalProcessReallyExit: ProcessRE['reallyExit']\n\n #sigListeners: { [k in NodeJS.Signals]?: () => void } = {}\n #loaded: boolean = false\n\n constructor(process: ProcessRE) {\n super()\n this.#process = process\n // { <signal>: <listener fn>, ... }\n this.#sigListeners = {}\n for (const sig of signals) {\n this.#sigListeners[sig] = () => {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n const listeners = this.#process.listeners(sig)\n let { count } = this.#emitter\n // This is a workaround for the fact that signal-exit v3 and signal\n // exit v4 are not aware of each other, and each will attempt to let\n // the other handle it, so neither of them do. To correct this, we\n // detect if we're the only handler *except* for previous versions\n // of signal-exit, and increment by the count of listeners it has\n // created.\n /* c8 ignore start */\n const p = process as unknown as {\n __signal_exit_emitter__?: { count: number }\n }\n if (\n typeof p.__signal_exit_emitter__ === 'object' &&\n typeof p.__signal_exit_emitter__.count === 'number'\n ) {\n count += p.__signal_exit_emitter__.count\n }\n /* c8 ignore stop */\n if (listeners.length === count) {\n this.unload()\n const ret = this.#emitter.emit('exit', null, sig)\n /* c8 ignore start */\n const s = sig === 'SIGHUP' ? this.#hupSig : sig\n if (!ret) process.kill(process.pid, s)\n /* c8 ignore stop */\n }\n }\n }\n\n this.#originalProcessReallyExit = process.reallyExit\n this.#originalProcessEmit = process.emit\n }\n\n onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return () => {}\n }\n /* c8 ignore stop */\n\n if (this.#loaded === false) {\n this.load()\n }\n\n const ev = opts?.alwaysLast ? 'afterExit' : 'exit'\n this.#emitter.on(ev, cb)\n return () => {\n this.#emitter.removeListener(ev, cb)\n if (\n this.#emitter.listeners['exit'].length === 0 &&\n this.#emitter.listeners['afterExit'].length === 0\n ) {\n this.unload()\n }\n }\n }\n\n load() {\n if (this.#loaded) {\n return\n }\n this.#loaded = true\n\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n this.#emitter.count += 1\n\n for (const sig of signals) {\n try {\n const fn = this.#sigListeners[sig]\n if (fn) this.#process.on(sig, fn)\n } catch (_) {}\n }\n\n this.#process.emit = (ev: string, ...a: any[]) => {\n return this.#processEmit(ev, ...a)\n }\n this.#process.reallyExit = (code?: number | null | undefined) => {\n return this.#processReallyExit(code)\n }\n }\n\n unload() {\n if (!this.#loaded) {\n return\n }\n this.#loaded = false\n\n signals.forEach(sig => {\n const listener = this.#sigListeners[sig]\n /* c8 ignore start */\n if (!listener) {\n throw new Error('Listener not defined for signal: ' + sig)\n }\n /* c8 ignore stop */\n try {\n this.#process.removeListener(sig, listener)\n /* c8 ignore start */\n } catch (_) {}\n /* c8 ignore stop */\n })\n this.#process.emit = this.#originalProcessEmit\n this.#process.reallyExit = this.#originalProcessReallyExit\n this.#emitter.count -= 1\n }\n\n #processReallyExit(code?: number | null | undefined) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return 0\n }\n this.#process.exitCode = code || 0\n /* c8 ignore stop */\n\n this.#emitter.emit('exit', this.#process.exitCode, null)\n return this.#originalProcessReallyExit.call(\n this.#process,\n this.#process.exitCode\n )\n }\n\n #processEmit(ev: string, ...args: any[]): any {\n const og = this.#originalProcessEmit\n if (ev === 'exit' && processOk(this.#process)) {\n if (typeof args[0] === 'number') {\n this.#process.exitCode = args[0]\n /* c8 ignore start */\n }\n /* c8 ignore start */\n const ret = og.call(this.#process, ev, ...args)\n /* c8 ignore start */\n this.#emitter.emit('exit', this.#process.exitCode, null)\n /* c8 ignore stop */\n return ret\n } else {\n return og.call(this.#process, ev, ...args)\n }\n }\n}\n\nconst process = globalThis.process\n// wrap so that we call the method on the actual handler, without\n// exporting it directly.\nexport const {\n /**\n * Called when the process is exiting, whether via signal, explicit\n * exit, or running out of stuff to do.\n *\n * If the global process object is not suitable for instrumentation,\n * then this will be a no-op.\n *\n * Returns a function that may be used to unload signal-exit.\n */\n onExit,\n\n /**\n * Load the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\n load,\n\n /**\n * Unload the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\n unload,\n} = signalExitWrap(\n processOk(process) ? new SignalExit(process) : new SignalExitFallback()\n)\n"]}
@@ -1,3 +0,0 @@
1
- {
2
- "type": "commonjs"
3
- }
@@ -1,29 +0,0 @@
1
- /// <reference types="node" />
2
- /**
3
- * This is not the set of all possible signals.
4
- *
5
- * It IS, however, the set of all signals that trigger
6
- * an exit on either Linux or BSD systems. Linux is a
7
- * superset of the signal names supported on BSD, and
8
- * the unknown signals just fail to register, so we can
9
- * catch that easily enough.
10
- *
11
- * Windows signals are a different set, since there are
12
- * signals that terminate Windows processes, but don't
13
- * terminate (or don't even exist) on Posix systems.
14
- *
15
- * Don't bother with SIGKILL. It's uncatchable, which
16
- * means that we can't fire any callbacks anyway.
17
- *
18
- * If a user does happen to register a handler on a non-
19
- * fatal signal like SIGWINCH or something, and then
20
- * exit, it'll end up firing `process.emit('exit')`, so
21
- * the handler will be fired anyway.
22
- *
23
- * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised
24
- * artificially, inherently leave the process in a
25
- * state from which it is not safe to try and enter JS
26
- * listeners.
27
- */
28
- export declare const signals: NodeJS.Signals[];
29
- //# sourceMappingURL=signals.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/signals.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,OAAO,EAAO,CAAA"}
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.signals = void 0;
4
- /**
5
- * This is not the set of all possible signals.
6
- *
7
- * It IS, however, the set of all signals that trigger
8
- * an exit on either Linux or BSD systems. Linux is a
9
- * superset of the signal names supported on BSD, and
10
- * the unknown signals just fail to register, so we can
11
- * catch that easily enough.
12
- *
13
- * Windows signals are a different set, since there are
14
- * signals that terminate Windows processes, but don't
15
- * terminate (or don't even exist) on Posix systems.
16
- *
17
- * Don't bother with SIGKILL. It's uncatchable, which
18
- * means that we can't fire any callbacks anyway.
19
- *
20
- * If a user does happen to register a handler on a non-
21
- * fatal signal like SIGWINCH or something, and then
22
- * exit, it'll end up firing `process.emit('exit')`, so
23
- * the handler will be fired anyway.
24
- *
25
- * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised
26
- * artificially, inherently leave the process in a
27
- * state from which it is not safe to try and enter JS
28
- * listeners.
29
- */
30
- exports.signals = [];
31
- exports.signals.push('SIGHUP', 'SIGINT', 'SIGTERM');
32
- if (process.platform !== 'win32') {
33
- exports.signals.push('SIGALRM', 'SIGABRT', 'SIGVTALRM', 'SIGXCPU', 'SIGXFSZ', 'SIGUSR2', 'SIGTRAP', 'SIGSYS', 'SIGQUIT', 'SIGIOT'
34
- // should detect profiler and enable/disable accordingly.
35
- // see #21
36
- // 'SIGPROF'
37
- );
38
- }
39
- if (process.platform === 'linux') {
40
- exports.signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT');
41
- }
42
- //# sourceMappingURL=signals.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signals.js","sourceRoot":"","sources":["../../src/signals.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACU,QAAA,OAAO,GAAqB,EAAE,CAAA;AAC3C,eAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;AAE3C,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;IAChC,eAAO,CAAC,IAAI,CACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,SAAS,EACT,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,SAAS,EACT,QAAQ;IACR,yDAAyD;IACzD,UAAU;IACV,YAAY;KACb,CAAA;CACF;AAED,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;IAChC,eAAO,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;CACxD","sourcesContent":["/**\n * This is not the set of all possible signals.\n *\n * It IS, however, the set of all signals that trigger\n * an exit on either Linux or BSD systems. Linux is a\n * superset of the signal names supported on BSD, and\n * the unknown signals just fail to register, so we can\n * catch that easily enough.\n *\n * Windows signals are a different set, since there are\n * signals that terminate Windows processes, but don't\n * terminate (or don't even exist) on Posix systems.\n *\n * Don't bother with SIGKILL. It's uncatchable, which\n * means that we can't fire any callbacks anyway.\n *\n * If a user does happen to register a handler on a non-\n * fatal signal like SIGWINCH or something, and then\n * exit, it'll end up firing `process.emit('exit')`, so\n * the handler will be fired anyway.\n *\n * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n * artificially, inherently leave the process in a\n * state from which it is not safe to try and enter JS\n * listeners.\n */\nexport const signals: NodeJS.Signals[] = []\nsignals.push('SIGHUP', 'SIGINT', 'SIGTERM')\n\nif (process.platform !== 'win32') {\n signals.push(\n 'SIGALRM',\n 'SIGABRT',\n 'SIGVTALRM',\n 'SIGXCPU',\n 'SIGXFSZ',\n 'SIGUSR2',\n 'SIGTRAP',\n 'SIGSYS',\n 'SIGQUIT',\n 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n )\n}\n\nif (process.platform === 'linux') {\n signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT')\n}\n"]}
@@ -1,12 +0,0 @@
1
- /**
2
- * This is a browser shim that provides the same functional interface
3
- * as the main node export, but it does nothing.
4
- * @module
5
- */
6
- import type { Handler } from './index.js';
7
- export declare const onExit: (cb: Handler, opts: {
8
- alwaysLast?: boolean;
9
- }) => () => void;
10
- export declare const load: () => void;
11
- export declare const unload: () => void;
12
- //# sourceMappingURL=browser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACzC,eAAO,MAAM,MAAM,EAAE,CACnB,EAAE,EAAE,OAAO,EACX,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,KAC3B,MAAM,IAAqB,CAAA;AAChC,eAAO,MAAM,IAAI,YAAW,CAAA;AAC5B,eAAO,MAAM,MAAM,YAAW,CAAA"}
@@ -1,4 +0,0 @@
1
- export const onExit = () => () => { };
2
- export const load = () => { };
3
- export const unload = () => { };
4
- //# sourceMappingURL=browser.js.map