claude-flow-novice 2.0.3 → 2.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/cli/commands/swarm.js +1 -1
- package/dist/src/cli/main.js +1 -1
- package/dist/src/coordination/byzantine-memory-channels.js +25 -1
- package/dist/src/index.js +384 -35
- package/dist/src/utils/error-handler.js +2 -36
- package/dist/src/web/api/apm-routes.js +353 -0
- package/dist/src/web/api/config/api-config.js +184 -0
- package/dist/src/web/api/middleware/auth.js +203 -0
- package/dist/src/web/api/middleware/cache.js +273 -0
- package/dist/src/web/api/middleware/error-handler.js +257 -0
- package/dist/src/web/api/middleware/request-logger.js +215 -0
- package/dist/src/web/api/middleware/validation.js +323 -0
- package/dist/src/web/api/routes/events.js +463 -0
- package/dist/src/web/api/routes/hierarchy.js +300 -0
- package/dist/src/web/api/routes/index.js +12 -0
- package/dist/src/web/api/routes/metrics.js +559 -0
- package/dist/src/web/api/routes/parallel-status.js +359 -0
- package/dist/src/web/api/routes/status.js +448 -0
- package/dist/src/web/api/server.js +462 -0
- package/dist/src/web/dashboard/hooks/useWebSocket.js +383 -0
- package/dist/src/web/dashboard/index.js +85 -0
- package/dist/src/web/dashboard/realtime/CustomSyncManager.js +439 -0
- package/dist/src/web/dashboard/realtime/NativeWebSocketManager.js +323 -0
- package/dist/src/web/dashboard/realtime/PerformanceBenchmark.js +527 -0
- package/dist/src/web/dashboard/realtime/RealtimeCommunicationManager.js +474 -0
- package/dist/src/web/dashboard/realtime/RealtimeServer.js +666 -0
- package/dist/src/web/dashboard/realtime/SSEManager.js +426 -0
- package/dist/src/web/dashboard/types.js +4 -0
- package/dist/src/web/messaging/agent-status-tracker.js +453 -0
- package/dist/src/web/messaging/human-intervention-system.js +305 -0
- package/dist/src/web/messaging/message-filter.js +302 -0
- package/dist/src/web/messaging/swarm-message-router.js +324 -0
- package/dist/src/web/messaging/transparency-logger.js +421 -0
- package/dist/src/web/portal-server.js +460 -0
- package/dist/src/web/server.js +322 -0
- package/dist/src/web/websocket/apm-websocket-handler.js +453 -0
- package/dist/src/web/websocket/websocket-manager.js +780 -0
- package/package.json +6 -4
- package/dist/src/cli/minimal-main.js +0 -22
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/documentSymbols/browser/documentSymbols.js +0 -23
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteContribution.js +0 -57
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/copyPasteController.js +0 -401
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/defaultProviders.js +0 -181
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorContribution.js +0 -44
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/dropIntoEditorController.js +0 -157
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/dropOrPasteInto/browser/edit.js +0 -71
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/editorState/browser/editorState.js +0 -112
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findController.js +0 -990
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findDecorations.js +0 -296
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findModel.js +0 -488
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findOptionsWidget.js +0 -138
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findState.js +0 -243
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/find/browser/findWidget.js +0 -1177
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/folding.js +0 -1093
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/foldingDecorations.js +0 -133
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/foldingModel.js +0 -538
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/folding/browser/foldingRanges.js +0 -351
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/fontZoom/browser/fontZoom.js +0 -49
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/format/browser/format.js +0 -360
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/format/browser/formatActions.js +0 -263
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/format/browser/formattingEdit.js +0 -54
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/gotoSymbol/browser/link/clickLinkGesture.js +0 -149
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/hover/browser/contentHover.js +0 -874
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/inlineCompletions/browser/commandIds.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/inlineCompletions/browser/commands.js +0 -199
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/linesOperations/browser/copyLinesCommand.js +0 -70
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/quickAccess/browser/commandsQuickAccess.js +0 -26
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/quickAccess/browser/editorNavigationQuickAccess.js +0 -153
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/readOnlyMessage/browser/contribution.js +0 -33
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/semanticTokens/browser/documentSemanticTokens.js +0 -354
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/smartSelect/browser/bracketSelections.js +0 -146
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/suggest/browser/completionModel.js +0 -224
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/contrib/unicodeHighlighter/browser/bannerController.js +0 -119
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/edcore.main.js +0 -14
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.all.js +0 -63
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.api.js +0 -55
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.main.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/editor.worker.js +0 -25
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/editor/standalone/browser/colorizer.js +0 -118
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/language/css/css.worker.js +0 -36869
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/language/css/cssMode.js +0 -2035
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/accessibility/browser/accessibilityService.js +0 -88
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/accessibility/common/accessibility.js +0 -9
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/action/common/action.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/action/common/actionCommonCategories.js +0 -13
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/browser/actionList.js +0 -276
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/browser/actionWidget.js +0 -248
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actionWidget/common/actionWidget.js +0 -5
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/actions/common/actions.js +0 -409
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/audioCues/browser/audioCueService.js +0 -176
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/clipboard/browser/clipboardService.js +0 -141
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/clipboard/common/clipboardService.js +0 -6
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/commands/common/commands.js +0 -80
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configuration.js +0 -86
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurationModels.js +0 -554
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurationRegistry.js +0 -317
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/configuration/common/configurations.js +0 -41
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/browser/contextKeyService.js +0 -432
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/common/contextkey.js +0 -1547
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextkey/common/contextkeys.js +0 -18
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextMenuHandler.js +0 -124
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextMenuService.js +0 -101
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextView.js +0 -7
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/contextview/browser/contextViewService.js +0 -72
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/dialogs/common/dialogs.js +0 -2
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/dnd/browser/dnd.js +0 -36
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/editor/common/editor.js +0 -17
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/environment/common/environment.js +0 -2
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/extensions/common/extensions.js +0 -47
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/files/common/files.js +0 -9
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/history/browser/contextScopedHistoryWidget.js +0 -105
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/instantiation/common/descriptors.js +0 -11
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/instantiation/common/extensions.js +0 -15
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/keybinding/common/abstractKeybindingService.js +0 -277
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/keybinding/common/baseResolvedKeybinding.js +0 -53
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/quickinput/browser/commandsQuickAccess.js +0 -354
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/theme/browser/defaultStyles.js +0 -162
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/esm/vs/platform/theme/common/colorRegistry.js +0 -482
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/abap/abap.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/apex/apex.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/azcli/azcli.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/bat/bat.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/bicep/bicep.js +0 -11
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/cameligo/cameligo.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/clojure/clojure.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/coffee/coffee.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/cpp/cpp.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/csharp/csharp.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/csp/csp.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/css/css.js +0 -12
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/cypher/cypher.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/dart/dart.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/dockerfile/dockerfile.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/ecl/ecl.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/elixir/elixir.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/basic-languages/flow9/flow9.js +0 -10
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.js +0 -745
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.de.js +0 -31
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.es.js +0 -31
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.fr.js +0 -29
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.it.js +0 -29
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.ja.js +0 -31
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.js +0 -29
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.ko.js +0 -29
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.ru.js +0 -31
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.zh-cn.js +0 -31
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/editor/editor.main.nls.zh-tw.js +0 -29
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/language/css/cssMode.js +0 -13
- package/dist/src/web/frontend/node_modules/.monaco-editor-MndU045b/min/vs/language/css/cssWorker.js +0 -81
- package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/cli.js +0 -64
- package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/example.js +0 -36
- package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/index.js +0 -205
- package/dist/src/web/frontend/node_modules/.multicast-dns-iKseM9bB/test.js +0 -260
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/async/index.browser.js +0 -34
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/async/index.js +0 -35
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/async/index.native.js +0 -26
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/index.browser.js +0 -34
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/index.js +0 -45
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/nanoid.js +0 -1
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/non-secure/index.js +0 -21
- package/dist/src/web/frontend/node_modules/.nanoid-PAMEV9Hd/url-alphabet/index.js +0 -3
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/bin/nodemon.js +0 -16
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/cli/index.js +0 -49
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/cli/parse.js +0 -230
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/command.js +0 -43
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/defaults.js +0 -34
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/exec.js +0 -234
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/index.js +0 -93
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/config/load.js +0 -225
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/help/index.js +0 -27
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/index.js +0 -1
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/index.js +0 -4
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/match.js +0 -287
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/run.js +0 -562
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/signals.js +0 -34
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/monitor/watch.js +0 -244
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/nodemon.js +0 -317
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/rules/add.js +0 -89
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/rules/index.js +0 -53
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/rules/parse.js +0 -43
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/spawn.js +0 -74
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/bus.js +0 -44
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/clone.js +0 -40
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/colour.js +0 -26
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/index.js +0 -103
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/log.js +0 -82
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/utils/merge.js +0 -47
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/lib/version.js +0 -100
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/brace-expansion/index.js +0 -201
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/has-flag/index.js +0 -8
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/minimatch/minimatch.js +0 -947
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/supports-color/browser.js +0 -5
- package/dist/src/web/frontend/node_modules/.nodemon-QcvNKhKT/node_modules/supports-color/index.js +0 -131
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/bin/pidtree.js +0 -128
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/index.js +0 -49
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/bin.js +0 -61
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/get.js +0 -45
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/pidtree.js +0 -104
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/ps.js +0 -47
- package/dist/src/web/frontend/node_modules/.pidtree-icfat3SQ/lib/wmic.js +0 -49
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/doc.js +0 -1270
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/acorn.js +0 -15
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/angular.js +0 -2
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/babel.js +0 -15
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/estree.js +0 -36
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/flow.js +0 -19
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/glimmer.js +0 -29
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/graphql.js +0 -29
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/html.js +0 -22
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/markdown.js +0 -63
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/meriyah.js +0 -4
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/postcss.js +0 -54
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/typescript.js +0 -20
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/plugins/yaml.js +0 -160
- package/dist/src/web/frontend/node_modules/.prettier-ApZm3b7s/standalone.js +0 -34
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/bin/react-scripts.js +0 -58
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/env.js +0 -112
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/getHttpsConfig.js +0 -74
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/jest/babelTransform.js +0 -37
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/jest/cssTransform.js +0 -22
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/jest/fileTransform.js +0 -40
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/modules.js +0 -142
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/paths.js +0 -153
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/webpack/persistentCache/createEnvironmentHash.js +0 -9
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/webpack.config.js +0 -796
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/config/webpackDevServer.config.js +0 -135
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/scripts/build.js +0 -225
- package/dist/src/web/frontend/node_modules/.react-scripts-OTANyoRb/scripts/eject.js +0 -340
|
@@ -1,562 +0,0 @@
|
|
|
1
|
-
var debug = require('debug')('nodemon:run');
|
|
2
|
-
const statSync = require('fs').statSync;
|
|
3
|
-
var utils = require('../utils');
|
|
4
|
-
var bus = utils.bus;
|
|
5
|
-
var childProcess = require('child_process');
|
|
6
|
-
var spawn = childProcess.spawn;
|
|
7
|
-
var exec = childProcess.exec;
|
|
8
|
-
var execSync = childProcess.execSync;
|
|
9
|
-
var fork = childProcess.fork;
|
|
10
|
-
var watch = require('./watch').watch;
|
|
11
|
-
var config = require('../config');
|
|
12
|
-
var child = null; // the actual child process we spawn
|
|
13
|
-
var killedAfterChange = false;
|
|
14
|
-
var noop = () => {};
|
|
15
|
-
var restart = null;
|
|
16
|
-
var psTree = require('pstree.remy');
|
|
17
|
-
var path = require('path');
|
|
18
|
-
var signals = require('./signals');
|
|
19
|
-
const undefsafe = require('undefsafe');
|
|
20
|
-
const osRelease = parseInt(require('os').release().split('.')[0], 10);
|
|
21
|
-
|
|
22
|
-
function run(options) {
|
|
23
|
-
var cmd = config.command.raw;
|
|
24
|
-
// moved up
|
|
25
|
-
// we need restart function below in the global scope for run.kill
|
|
26
|
-
/*jshint validthis:true*/
|
|
27
|
-
restart = run.bind(this, options);
|
|
28
|
-
run.restart = restart;
|
|
29
|
-
|
|
30
|
-
// binding options with instance of run
|
|
31
|
-
// so that we can use it in run.kill
|
|
32
|
-
run.options = options;
|
|
33
|
-
|
|
34
|
-
var runCmd = !options.runOnChangeOnly || config.lastStarted !== 0;
|
|
35
|
-
if (runCmd) {
|
|
36
|
-
utils.log.status('starting `' + config.command.string + '`');
|
|
37
|
-
} else {
|
|
38
|
-
// should just watch file if command is not to be run
|
|
39
|
-
// had another alternate approach
|
|
40
|
-
// to stop process being forked/spawned in the below code
|
|
41
|
-
// but this approach does early exit and makes code cleaner
|
|
42
|
-
debug('start watch on: %s', config.options.watch);
|
|
43
|
-
if (config.options.watch !== false) {
|
|
44
|
-
watch();
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
config.lastStarted = Date.now();
|
|
50
|
-
|
|
51
|
-
var stdio = ['pipe', 'pipe', 'pipe'];
|
|
52
|
-
|
|
53
|
-
if (config.options.stdout) {
|
|
54
|
-
stdio = ['pipe', process.stdout, process.stderr];
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if (config.options.stdin === false) {
|
|
58
|
-
stdio = [process.stdin, process.stdout, process.stderr];
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
var sh = 'sh';
|
|
62
|
-
var shFlag = '-c';
|
|
63
|
-
|
|
64
|
-
const binPath = process.cwd() + '/node_modules/.bin';
|
|
65
|
-
|
|
66
|
-
const spawnOptions = {
|
|
67
|
-
env: Object.assign({}, options.execOptions.env, process.env, {
|
|
68
|
-
PATH:
|
|
69
|
-
binPath +
|
|
70
|
-
path.delimiter +
|
|
71
|
-
(undefsafe(options, '.execOptions.env.PATH') || process.env.PATH),
|
|
72
|
-
}),
|
|
73
|
-
stdio: stdio,
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
var executable = cmd.executable;
|
|
77
|
-
|
|
78
|
-
if (utils.isWindows) {
|
|
79
|
-
// if the exec includes a forward slash, reverse it for windows compat
|
|
80
|
-
// but *only* apply to the first command, and none of the arguments.
|
|
81
|
-
// ref #1251 and #1236
|
|
82
|
-
if (executable.indexOf('/') !== -1) {
|
|
83
|
-
executable = executable
|
|
84
|
-
.split(' ')
|
|
85
|
-
.map((e, i) => {
|
|
86
|
-
if (i === 0) {
|
|
87
|
-
return path.normalize(e);
|
|
88
|
-
}
|
|
89
|
-
return e;
|
|
90
|
-
})
|
|
91
|
-
.join(' ');
|
|
92
|
-
}
|
|
93
|
-
// taken from npm's cli: https://git.io/vNFD4
|
|
94
|
-
sh = process.env.comspec || 'cmd';
|
|
95
|
-
shFlag = '/d /s /c';
|
|
96
|
-
spawnOptions.windowsVerbatimArguments = true;
|
|
97
|
-
spawnOptions.windowsHide = true;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
var args = runCmd ? utils.stringify(executable, cmd.args) : ':';
|
|
101
|
-
var spawnArgs = [sh, [shFlag, args], spawnOptions];
|
|
102
|
-
|
|
103
|
-
const firstArg = cmd.args[0] || '';
|
|
104
|
-
|
|
105
|
-
var inBinPath = false;
|
|
106
|
-
try {
|
|
107
|
-
inBinPath = statSync(`${binPath}/${executable}`).isFile();
|
|
108
|
-
} catch (e) {}
|
|
109
|
-
|
|
110
|
-
// hasStdio allows us to correctly handle stdin piping
|
|
111
|
-
// see: https://git.io/vNtX3
|
|
112
|
-
const hasStdio = utils.satisfies('>= 6.4.0 || < 5');
|
|
113
|
-
|
|
114
|
-
// forking helps with sub-process handling and tends to clean up better
|
|
115
|
-
// than spawning, but it should only be used under specific conditions
|
|
116
|
-
const shouldFork =
|
|
117
|
-
!config.options.spawn &&
|
|
118
|
-
!inBinPath &&
|
|
119
|
-
!(firstArg.indexOf('-') === 0) && // don't fork if there's a node exec arg
|
|
120
|
-
firstArg !== 'inspect' && // don't fork it's `inspect` debugger
|
|
121
|
-
executable === 'node' && // only fork if node
|
|
122
|
-
utils.version.major > 4; // only fork if node version > 4
|
|
123
|
-
|
|
124
|
-
if (shouldFork) {
|
|
125
|
-
// this assumes the first argument is the script and slices it out, since
|
|
126
|
-
// we're forking
|
|
127
|
-
var forkArgs = cmd.args.slice(1);
|
|
128
|
-
var env = utils.merge(options.execOptions.env, process.env);
|
|
129
|
-
stdio.push('ipc');
|
|
130
|
-
const forkOptions = {
|
|
131
|
-
env: env,
|
|
132
|
-
stdio: stdio,
|
|
133
|
-
silent: !hasStdio,
|
|
134
|
-
};
|
|
135
|
-
if (utils.isWindows) {
|
|
136
|
-
forkOptions.windowsHide = true;
|
|
137
|
-
}
|
|
138
|
-
child = fork(options.execOptions.script, forkArgs, forkOptions);
|
|
139
|
-
utils.log.detail('forking');
|
|
140
|
-
debug('fork', sh, shFlag, args);
|
|
141
|
-
} else {
|
|
142
|
-
utils.log.detail('spawning');
|
|
143
|
-
child = spawn.apply(null, spawnArgs);
|
|
144
|
-
debug('spawn', sh, shFlag, args);
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
if (config.required) {
|
|
148
|
-
var emit = {
|
|
149
|
-
stdout: function (data) {
|
|
150
|
-
bus.emit('stdout', data);
|
|
151
|
-
},
|
|
152
|
-
stderr: function (data) {
|
|
153
|
-
bus.emit('stderr', data);
|
|
154
|
-
},
|
|
155
|
-
};
|
|
156
|
-
|
|
157
|
-
// now work out what to bind to...
|
|
158
|
-
if (config.options.stdout) {
|
|
159
|
-
child.on('stdout', emit.stdout).on('stderr', emit.stderr);
|
|
160
|
-
} else {
|
|
161
|
-
child.stdout.on('data', emit.stdout);
|
|
162
|
-
child.stderr.on('data', emit.stderr);
|
|
163
|
-
|
|
164
|
-
bus.stdout = child.stdout;
|
|
165
|
-
bus.stderr = child.stderr;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
if (shouldFork) {
|
|
169
|
-
child.on('message', function (message, sendHandle) {
|
|
170
|
-
bus.emit('message', message, sendHandle);
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
bus.emit('start');
|
|
176
|
-
|
|
177
|
-
utils.log.detail('child pid: ' + child.pid);
|
|
178
|
-
|
|
179
|
-
child.on('error', function (error) {
|
|
180
|
-
bus.emit('error', error);
|
|
181
|
-
if (error.code === 'ENOENT') {
|
|
182
|
-
utils.log.error('unable to run executable: "' + cmd.executable + '"');
|
|
183
|
-
process.exit(1);
|
|
184
|
-
} else {
|
|
185
|
-
utils.log.error('failed to start child process: ' + error.code);
|
|
186
|
-
throw error;
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
|
|
190
|
-
child.on('exit', function (code, signal) {
|
|
191
|
-
if (child && child.stdin) {
|
|
192
|
-
process.stdin.unpipe(child.stdin);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
if (code === 127) {
|
|
196
|
-
utils.log.error(
|
|
197
|
-
'failed to start process, "' + cmd.executable + '" exec not found'
|
|
198
|
-
);
|
|
199
|
-
bus.emit('error', code);
|
|
200
|
-
process.exit();
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
// If the command failed with code 2, it may or may not be a syntax error
|
|
204
|
-
// See: http://git.io/fNOAR
|
|
205
|
-
// We will only assume a parse error, if the child failed quickly
|
|
206
|
-
if (code === 2 && Date.now() < config.lastStarted + 500) {
|
|
207
|
-
utils.log.error('process failed, unhandled exit code (2)');
|
|
208
|
-
utils.log.error('');
|
|
209
|
-
utils.log.error('Either the command has a syntax error,');
|
|
210
|
-
utils.log.error('or it is exiting with reserved code 2.');
|
|
211
|
-
utils.log.error('');
|
|
212
|
-
utils.log.error('To keep nodemon running even after a code 2,');
|
|
213
|
-
utils.log.error('add this to the end of your command: || exit 1');
|
|
214
|
-
utils.log.error('');
|
|
215
|
-
utils.log.error('Read more here: https://git.io/fNOAG');
|
|
216
|
-
utils.log.error('');
|
|
217
|
-
utils.log.error('nodemon will stop now so that you can fix the command.');
|
|
218
|
-
utils.log.error('');
|
|
219
|
-
bus.emit('error', code);
|
|
220
|
-
process.exit();
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
// In case we killed the app ourselves, set the signal thusly
|
|
224
|
-
if (killedAfterChange) {
|
|
225
|
-
killedAfterChange = false;
|
|
226
|
-
signal = config.signal;
|
|
227
|
-
}
|
|
228
|
-
// this is nasty, but it gives it windows support
|
|
229
|
-
if (utils.isWindows && signal === 'SIGTERM') {
|
|
230
|
-
signal = config.signal;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
if (signal === config.signal || code === 0) {
|
|
234
|
-
// this was a clean exit, so emit exit, rather than crash
|
|
235
|
-
debug('bus.emit(exit) via ' + config.signal);
|
|
236
|
-
bus.emit('exit', signal);
|
|
237
|
-
|
|
238
|
-
// exit the monitor, but do it gracefully
|
|
239
|
-
if (signal === config.signal) {
|
|
240
|
-
return restart();
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
if (code === 0) {
|
|
244
|
-
// clean exit - wait until file change to restart
|
|
245
|
-
if (runCmd) {
|
|
246
|
-
utils.log.status('clean exit - waiting for changes before restart');
|
|
247
|
-
}
|
|
248
|
-
child = null;
|
|
249
|
-
}
|
|
250
|
-
} else {
|
|
251
|
-
bus.emit('crash');
|
|
252
|
-
|
|
253
|
-
// support the old syntax of `exitcrash` - 2024-12-13
|
|
254
|
-
if (options.exitcrash) {
|
|
255
|
-
options.exitCrash = true;
|
|
256
|
-
delete options.exitcrash;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
if (options.exitCrash) {
|
|
260
|
-
utils.log.fail('app crashed');
|
|
261
|
-
if (!config.required) {
|
|
262
|
-
process.exit(1);
|
|
263
|
-
}
|
|
264
|
-
} else {
|
|
265
|
-
utils.log.fail(
|
|
266
|
-
'app crashed - waiting for file changes before' + ' starting...'
|
|
267
|
-
);
|
|
268
|
-
child = null;
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
if (config.options.restartable) {
|
|
273
|
-
// stdin needs to kick in again to be able to listen to the
|
|
274
|
-
// restart command
|
|
275
|
-
process.stdin.resume();
|
|
276
|
-
}
|
|
277
|
-
});
|
|
278
|
-
|
|
279
|
-
// moved the run.kill outside to handle both the cases
|
|
280
|
-
// intial start
|
|
281
|
-
// no start
|
|
282
|
-
|
|
283
|
-
// connect stdin to the child process (options.stdin is on by default)
|
|
284
|
-
if (options.stdin) {
|
|
285
|
-
process.stdin.resume();
|
|
286
|
-
// FIXME decide whether or not we need to decide the encoding
|
|
287
|
-
// process.stdin.setEncoding('utf8');
|
|
288
|
-
|
|
289
|
-
// swallow the stdin error if it happens
|
|
290
|
-
// ref: https://github.com/remy/nodemon/issues/1195
|
|
291
|
-
if (hasStdio) {
|
|
292
|
-
child.stdin.on('error', () => {});
|
|
293
|
-
process.stdin.pipe(child.stdin);
|
|
294
|
-
} else {
|
|
295
|
-
if (child.stdout) {
|
|
296
|
-
child.stdout.pipe(process.stdout);
|
|
297
|
-
} else {
|
|
298
|
-
utils.log.error(
|
|
299
|
-
'running an unsupported version of node ' + process.version
|
|
300
|
-
);
|
|
301
|
-
utils.log.error(
|
|
302
|
-
'nodemon may not work as expected - ' +
|
|
303
|
-
'please consider upgrading to LTS'
|
|
304
|
-
);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
bus.once('exit', function () {
|
|
309
|
-
if (child && process.stdin.unpipe) {
|
|
310
|
-
// node > 0.8
|
|
311
|
-
process.stdin.unpipe(child.stdin);
|
|
312
|
-
}
|
|
313
|
-
});
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
debug('start watch on: %s', config.options.watch);
|
|
317
|
-
if (config.options.watch !== false) {
|
|
318
|
-
watch();
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
function waitForSubProcesses(pid, callback) {
|
|
323
|
-
debug('checking ps tree for pids of ' + pid);
|
|
324
|
-
psTree(pid, (err, pids) => {
|
|
325
|
-
if (!pids.length) {
|
|
326
|
-
return callback();
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
utils.log.status(
|
|
330
|
-
`still waiting for ${pids.length} sub-process${
|
|
331
|
-
pids.length > 2 ? 'es' : ''
|
|
332
|
-
} to finish...`
|
|
333
|
-
);
|
|
334
|
-
setTimeout(() => waitForSubProcesses(pid, callback), 1000);
|
|
335
|
-
});
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
function kill(child, signal, callback) {
|
|
339
|
-
if (!callback) {
|
|
340
|
-
callback = noop;
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
if (utils.isWindows) {
|
|
344
|
-
const taskKill = () => {
|
|
345
|
-
try {
|
|
346
|
-
exec('taskkill /pid ' + child.pid + ' /T /F');
|
|
347
|
-
} catch (e) {
|
|
348
|
-
utils.log.error('Could not shutdown sub process cleanly');
|
|
349
|
-
}
|
|
350
|
-
};
|
|
351
|
-
|
|
352
|
-
// We are handling a 'SIGKILL' , 'SIGUSR2' and 'SIGUSR1' POSIX signal under Windows the
|
|
353
|
-
// same way it is handled on a UNIX system: We are performing
|
|
354
|
-
// a hard shutdown without waiting for the process to clean-up.
|
|
355
|
-
if (
|
|
356
|
-
signal === 'SIGKILL' ||
|
|
357
|
-
osRelease < 10 ||
|
|
358
|
-
signal === 'SIGUSR2' ||
|
|
359
|
-
signal === 'SIGUSR1'
|
|
360
|
-
) {
|
|
361
|
-
debug('terminating process group by force: %s', child.pid);
|
|
362
|
-
|
|
363
|
-
// We are using the taskkill utility to terminate the whole
|
|
364
|
-
// process group ('/t') of the child ('/pid') by force ('/f').
|
|
365
|
-
// We need to end all sub processes, because the 'child'
|
|
366
|
-
// process in this context is actually a cmd.exe wrapper.
|
|
367
|
-
taskKill();
|
|
368
|
-
callback();
|
|
369
|
-
return;
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
try {
|
|
373
|
-
// We are using the Windows Management Instrumentation Command-line
|
|
374
|
-
// (wmic.exe) to resolve the sub-child process identifier, because the
|
|
375
|
-
// 'child' process in this context is actually a cmd.exe wrapper.
|
|
376
|
-
// We want to send the termination signal directly to the node process.
|
|
377
|
-
// The '2> nul' silences the no process found error message.
|
|
378
|
-
const resultBuffer = execSync(
|
|
379
|
-
`wmic process where (ParentProcessId=${child.pid}) get ProcessId 2> nul`
|
|
380
|
-
);
|
|
381
|
-
const result = resultBuffer.toString().match(/^[0-9]+/m);
|
|
382
|
-
|
|
383
|
-
// If there is no sub-child process we fall back to the child process.
|
|
384
|
-
const processId = Array.isArray(result) ? result[0] : child.pid;
|
|
385
|
-
|
|
386
|
-
debug('sending kill signal SIGINT to process: %s', processId);
|
|
387
|
-
|
|
388
|
-
// We are using the standalone 'windows-kill' executable to send the
|
|
389
|
-
// standard POSIX signal 'SIGINT' to the node process. This fixes #1720.
|
|
390
|
-
const windowsKill = path.normalize(
|
|
391
|
-
`${__dirname}/../../bin/windows-kill.exe`
|
|
392
|
-
);
|
|
393
|
-
|
|
394
|
-
// We have to detach the 'windows-kill' execution completely from this
|
|
395
|
-
// process group to avoid terminating the nodemon process itself.
|
|
396
|
-
// See: https://github.com/alirdn/windows-kill#how-it-works--limitations
|
|
397
|
-
//
|
|
398
|
-
// Therefore we are using 'start' to create a new cmd.exe context.
|
|
399
|
-
// The '/min' option hides the new terminal window and the '/wait'
|
|
400
|
-
// option lets the process wait for the command to finish.
|
|
401
|
-
|
|
402
|
-
execSync(
|
|
403
|
-
`start "windows-kill" /min /wait "${windowsKill}" -SIGINT ${processId}`
|
|
404
|
-
);
|
|
405
|
-
} catch (e) {
|
|
406
|
-
taskKill();
|
|
407
|
-
}
|
|
408
|
-
callback();
|
|
409
|
-
} else {
|
|
410
|
-
// we use psTree to kill the full subtree of nodemon, because when
|
|
411
|
-
// spawning processes like `coffee` under the `--debug` flag, it'll spawn
|
|
412
|
-
// it's own child, and that can't be killed by nodemon, so psTree gives us
|
|
413
|
-
// an array of PIDs that have spawned under nodemon, and we send each the
|
|
414
|
-
// configured signal (default: SIGUSR2) signal, which fixes #335
|
|
415
|
-
// note that psTree also works if `ps` is missing by looking in /proc
|
|
416
|
-
let sig = signal.replace('SIG', '');
|
|
417
|
-
|
|
418
|
-
psTree(child.pid, function (err, pids) {
|
|
419
|
-
// if ps isn't native to the OS, then we need to send the numeric value
|
|
420
|
-
// for the signal during the kill, `signals` is a lookup table for that.
|
|
421
|
-
if (!psTree.hasPS) {
|
|
422
|
-
sig = signals[signal];
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
// the sub processes need to be killed from smallest to largest
|
|
426
|
-
debug('sending kill signal to ' + pids.join(', '));
|
|
427
|
-
|
|
428
|
-
child.kill(signal);
|
|
429
|
-
|
|
430
|
-
pids.sort().forEach((pid) => exec(`kill -${sig} ${pid}`, noop));
|
|
431
|
-
|
|
432
|
-
waitForSubProcesses(child.pid, () => {
|
|
433
|
-
// finally kill the main user process
|
|
434
|
-
exec(`kill -${sig} ${child.pid}`, callback);
|
|
435
|
-
});
|
|
436
|
-
});
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
run.kill = function (noRestart, callback) {
|
|
441
|
-
// I hate code like this :( - Remy (author of said code)
|
|
442
|
-
if (typeof noRestart === 'function') {
|
|
443
|
-
callback = noRestart;
|
|
444
|
-
noRestart = false;
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
if (!callback) {
|
|
448
|
-
callback = noop;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
if (child !== null) {
|
|
452
|
-
// if the stdin piping is on, we need to unpipe, but also close stdin on
|
|
453
|
-
// the child, otherwise linux can throw EPIPE or ECONNRESET errors.
|
|
454
|
-
if (run.options.stdin) {
|
|
455
|
-
process.stdin.unpipe(child.stdin);
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
// For the on('exit', ...) handler above the following looks like a
|
|
459
|
-
// crash, so we set the killedAfterChange flag if a restart is planned
|
|
460
|
-
if (!noRestart) {
|
|
461
|
-
killedAfterChange = true;
|
|
462
|
-
}
|
|
463
|
-
|
|
464
|
-
/* Now kill the entire subtree of processes belonging to nodemon */
|
|
465
|
-
var oldPid = child.pid;
|
|
466
|
-
if (child) {
|
|
467
|
-
kill(child, config.signal, function () {
|
|
468
|
-
// this seems to fix the 0.11.x issue with the "rs" restart command,
|
|
469
|
-
// though I'm unsure why. it seems like more data is streamed in to
|
|
470
|
-
// stdin after we close.
|
|
471
|
-
if (child && run.options.stdin && child.stdin && oldPid === child.pid) {
|
|
472
|
-
child.stdin.end();
|
|
473
|
-
}
|
|
474
|
-
callback();
|
|
475
|
-
});
|
|
476
|
-
}
|
|
477
|
-
} else if (!noRestart) {
|
|
478
|
-
// if there's no child, then we need to manually start the process
|
|
479
|
-
// this is because as there was no child, the child.on('exit') event
|
|
480
|
-
// handler doesn't exist which would normally trigger the restart.
|
|
481
|
-
bus.once('start', callback);
|
|
482
|
-
run.restart();
|
|
483
|
-
} else {
|
|
484
|
-
callback();
|
|
485
|
-
}
|
|
486
|
-
};
|
|
487
|
-
|
|
488
|
-
run.restart = noop;
|
|
489
|
-
|
|
490
|
-
bus.on('quit', function onQuit(code) {
|
|
491
|
-
if (code === undefined) {
|
|
492
|
-
code = 0;
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
// remove event listener
|
|
496
|
-
var exitTimer = null;
|
|
497
|
-
var exit = function () {
|
|
498
|
-
clearTimeout(exitTimer);
|
|
499
|
-
exit = noop; // null out in case of race condition
|
|
500
|
-
child = null;
|
|
501
|
-
if (!config.required) {
|
|
502
|
-
// Execute all other quit listeners.
|
|
503
|
-
bus.listeners('quit').forEach(function (listener) {
|
|
504
|
-
if (listener !== onQuit) {
|
|
505
|
-
listener();
|
|
506
|
-
}
|
|
507
|
-
});
|
|
508
|
-
process.exit(code);
|
|
509
|
-
} else {
|
|
510
|
-
bus.emit('exit');
|
|
511
|
-
}
|
|
512
|
-
};
|
|
513
|
-
|
|
514
|
-
// if we're not running already, don't bother with trying to kill
|
|
515
|
-
if (config.run === false) {
|
|
516
|
-
return exit();
|
|
517
|
-
}
|
|
518
|
-
|
|
519
|
-
// immediately try to stop any polling
|
|
520
|
-
config.run = false;
|
|
521
|
-
|
|
522
|
-
if (child) {
|
|
523
|
-
// give up waiting for the kids after 10 seconds
|
|
524
|
-
exitTimer = setTimeout(exit, 10 * 1000);
|
|
525
|
-
child.removeAllListeners('exit');
|
|
526
|
-
child.once('exit', exit);
|
|
527
|
-
|
|
528
|
-
kill(child, 'SIGINT');
|
|
529
|
-
} else {
|
|
530
|
-
exit();
|
|
531
|
-
}
|
|
532
|
-
});
|
|
533
|
-
|
|
534
|
-
bus.on('restart', function () {
|
|
535
|
-
// run.kill will send a SIGINT to the child process, which will cause it
|
|
536
|
-
// to terminate, which in turn uses the 'exit' event handler to restart
|
|
537
|
-
run.kill();
|
|
538
|
-
});
|
|
539
|
-
|
|
540
|
-
// remove the child file on exit
|
|
541
|
-
process.on('exit', function () {
|
|
542
|
-
utils.log.detail('exiting');
|
|
543
|
-
if (child) {
|
|
544
|
-
child.kill();
|
|
545
|
-
}
|
|
546
|
-
});
|
|
547
|
-
|
|
548
|
-
// because windows borks when listening for the SIG* events
|
|
549
|
-
if (!utils.isWindows) {
|
|
550
|
-
bus.once('boot', () => {
|
|
551
|
-
// usual suspect: ctrl+c exit
|
|
552
|
-
process.once('SIGINT', () => bus.emit('quit', 130));
|
|
553
|
-
process.once('SIGTERM', () => {
|
|
554
|
-
bus.emit('quit', 143);
|
|
555
|
-
if (child) {
|
|
556
|
-
child.kill('SIGTERM');
|
|
557
|
-
}
|
|
558
|
-
});
|
|
559
|
-
});
|
|
560
|
-
}
|
|
561
|
-
|
|
562
|
-
module.exports = run;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
module.exports = {
|
|
2
|
-
SIGHUP: 1,
|
|
3
|
-
SIGINT: 2,
|
|
4
|
-
SIGQUIT: 3,
|
|
5
|
-
SIGILL: 4,
|
|
6
|
-
SIGTRAP: 5,
|
|
7
|
-
SIGABRT: 6,
|
|
8
|
-
SIGBUS: 7,
|
|
9
|
-
SIGFPE: 8,
|
|
10
|
-
SIGKILL: 9,
|
|
11
|
-
SIGUSR1: 10,
|
|
12
|
-
SIGSEGV: 11,
|
|
13
|
-
SIGUSR2: 12,
|
|
14
|
-
SIGPIPE: 13,
|
|
15
|
-
SIGALRM: 14,
|
|
16
|
-
SIGTERM: 15,
|
|
17
|
-
SIGSTKFLT: 16,
|
|
18
|
-
SIGCHLD: 17,
|
|
19
|
-
SIGCONT: 18,
|
|
20
|
-
SIGSTOP: 19,
|
|
21
|
-
SIGTSTP: 20,
|
|
22
|
-
SIGTTIN: 21,
|
|
23
|
-
SIGTTOU: 22,
|
|
24
|
-
SIGURG: 23,
|
|
25
|
-
SIGXCPU: 24,
|
|
26
|
-
SIGXFSZ: 25,
|
|
27
|
-
SIGVTALRM: 26,
|
|
28
|
-
SIGPROF: 27,
|
|
29
|
-
SIGWINCH: 28,
|
|
30
|
-
SIGIO: 29,
|
|
31
|
-
SIGPWR: 30,
|
|
32
|
-
SIGSYS: 31,
|
|
33
|
-
SIGRTMIN: 35,
|
|
34
|
-
}
|