ee-core 5.0.0-beta.2 → 5.0.0-beta.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/cjs/app/application.d.ts +36 -1
- package/dist/cjs/app/application.d.ts.map +1 -1
- package/dist/cjs/app/application.js +49 -2
- package/dist/cjs/app/application.js.map +1 -1
- package/dist/cjs/app/boot.d.ts +56 -1
- package/dist/cjs/app/boot.d.ts.map +1 -1
- package/dist/cjs/app/boot.js +74 -11
- package/dist/cjs/app/boot.js.map +1 -1
- package/dist/cjs/app/dir.d.ts +10 -0
- package/dist/cjs/app/dir.d.ts.map +1 -1
- package/dist/cjs/app/dir.js +71 -10
- package/dist/cjs/app/dir.js.map +1 -1
- package/dist/cjs/app/events.d.ts +58 -2
- package/dist/cjs/app/events.d.ts.map +1 -1
- package/dist/cjs/app/events.js +92 -12
- package/dist/cjs/app/events.js.map +1 -1
- package/dist/cjs/config/config_loader.d.ts +44 -0
- package/dist/cjs/config/config_loader.d.ts.map +1 -1
- package/dist/cjs/config/config_loader.js +82 -1
- package/dist/cjs/config/config_loader.js.map +1 -1
- package/dist/cjs/config/default_config.d.ts +5 -0
- package/dist/cjs/config/default_config.d.ts.map +1 -1
- package/dist/cjs/config/default_config.js +98 -11
- package/dist/cjs/config/default_config.js.map +1 -1
- package/dist/cjs/config/index.d.ts +31 -1
- package/dist/cjs/config/index.d.ts.map +1 -1
- package/dist/cjs/config/index.js +52 -0
- package/dist/cjs/config/index.js.map +1 -1
- package/dist/cjs/const/channel.d.ts +17 -0
- package/dist/cjs/const/channel.d.ts.map +1 -1
- package/dist/cjs/const/channel.js +17 -0
- package/dist/cjs/const/channel.js.map +1 -1
- package/dist/cjs/controller/controller_loader.d.ts +20 -1
- package/dist/cjs/controller/controller_loader.d.ts.map +1 -1
- package/dist/cjs/controller/controller_loader.js +89 -9
- package/dist/cjs/controller/controller_loader.js.map +1 -1
- package/dist/cjs/controller/index.d.ts +32 -0
- package/dist/cjs/controller/index.d.ts.map +1 -1
- package/dist/cjs/controller/index.js +66 -0
- package/dist/cjs/controller/index.js.map +1 -1
- package/dist/cjs/core/loader/file_loader.d.ts +78 -27
- package/dist/cjs/core/loader/file_loader.d.ts.map +1 -1
- package/dist/cjs/core/loader/file_loader.js +194 -68
- package/dist/cjs/core/loader/file_loader.js.map +1 -1
- package/dist/cjs/core/utils/index.d.ts +57 -2
- package/dist/cjs/core/utils/index.d.ts.map +1 -1
- package/dist/cjs/core/utils/index.js +120 -12
- package/dist/cjs/core/utils/index.js.map +1 -1
- package/dist/cjs/core/utils/timing.d.ts +47 -0
- package/dist/cjs/core/utils/timing.d.ts.map +1 -1
- package/dist/cjs/core/utils/timing.js +42 -2
- package/dist/cjs/core/utils/timing.js.map +1 -1
- package/dist/cjs/cross/cross.d.ts +81 -2
- package/dist/cjs/cross/cross.d.ts.map +1 -1
- package/dist/cjs/cross/cross.js +86 -16
- package/dist/cjs/cross/cross.js.map +1 -1
- package/dist/cjs/cross/crossProcess.d.ts +85 -14
- package/dist/cjs/cross/crossProcess.d.ts.map +1 -1
- package/dist/cjs/cross/crossProcess.js +85 -13
- package/dist/cjs/cross/crossProcess.js.map +1 -1
- package/dist/cjs/electron/app/index.d.ts +17 -1
- package/dist/cjs/electron/app/index.d.ts.map +1 -1
- package/dist/cjs/electron/app/index.js +27 -3
- package/dist/cjs/electron/app/index.js.map +1 -1
- package/dist/cjs/electron/index.d.ts +6 -0
- package/dist/cjs/electron/index.d.ts.map +1 -1
- package/dist/cjs/electron/index.js +16 -1
- package/dist/cjs/electron/index.js.map +1 -1
- package/dist/cjs/electron/window/index.d.ts +37 -0
- package/dist/cjs/electron/window/index.d.ts.map +1 -1
- package/dist/cjs/electron/window/index.js +144 -88
- package/dist/cjs/electron/window/index.js.map +1 -1
- package/dist/cjs/exception/index.d.ts +12 -0
- package/dist/cjs/exception/index.d.ts.map +1 -1
- package/dist/cjs/exception/index.js +67 -9
- package/dist/cjs/exception/index.js.map +1 -1
- package/dist/cjs/html/index.d.ts +19 -0
- package/dist/cjs/html/index.d.ts.map +1 -1
- package/dist/cjs/html/index.js +42 -0
- package/dist/cjs/html/index.js.map +1 -1
- package/dist/cjs/index.d.ts +35 -7
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +127 -80
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/jobs/child/app.js +86 -25
- package/dist/cjs/jobs/child/app.js.map +1 -1
- package/dist/cjs/jobs/child/index.d.ts +5 -5
- package/dist/cjs/jobs/child/index.js +5 -5
- package/dist/cjs/jobs/child/jobProcess.d.ts +68 -0
- package/dist/cjs/jobs/child/jobProcess.d.ts.map +1 -1
- package/dist/cjs/jobs/child/jobProcess.js +86 -11
- package/dist/cjs/jobs/child/jobProcess.js.map +1 -1
- package/dist/cjs/jobs/child-pool/index.d.ts +96 -0
- package/dist/cjs/jobs/child-pool/index.d.ts.map +1 -1
- package/dist/cjs/jobs/child-pool/index.js +91 -4
- package/dist/cjs/jobs/child-pool/index.js.map +1 -1
- package/dist/cjs/jobs/index.d.ts +10 -0
- package/dist/cjs/jobs/index.d.ts.map +1 -1
- package/dist/cjs/jobs/index.js +10 -0
- package/dist/cjs/jobs/index.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts +2 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/index.js +6 -0
- package/dist/cjs/jobs/load-balancer/algorithm/index.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/polling.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/polling.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/random.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/random.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/specify.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/specify.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weights.js +4 -8
- package/dist/cjs/jobs/load-balancer/algorithm/weights.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
- package/dist/cjs/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
- package/dist/cjs/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
- package/dist/cjs/jobs/load-balancer/consts.d.ts +22 -0
- package/dist/cjs/jobs/load-balancer/consts.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/consts.js +22 -0
- package/dist/cjs/jobs/load-balancer/consts.js.map +1 -1
- package/dist/cjs/jobs/load-balancer/index.d.ts +18 -18
- package/dist/cjs/jobs/load-balancer/index.js +18 -18
- package/dist/cjs/jobs/load-balancer/scheduler.d.ts +3 -3
- package/dist/cjs/jobs/load-balancer/scheduler.js +3 -3
- package/dist/cjs/jobs/load-balancer/types.d.ts +21 -0
- package/dist/cjs/jobs/load-balancer/types.d.ts.map +1 -1
- package/dist/cjs/jobs/load-balancer/types.js +4 -0
- package/dist/cjs/jobs/load-balancer/types.js.map +1 -1
- package/dist/cjs/jobs/registry.d.ts +24 -0
- package/dist/cjs/jobs/registry.d.ts.map +1 -0
- package/dist/cjs/jobs/registry.js +52 -0
- package/dist/cjs/jobs/registry.js.map +1 -0
- package/dist/cjs/loader/index.d.ts +52 -0
- package/dist/cjs/loader/index.d.ts.map +1 -1
- package/dist/cjs/loader/index.js +79 -10
- package/dist/cjs/loader/index.js.map +1 -1
- package/dist/cjs/log/index.d.ts +41 -0
- package/dist/cjs/log/index.d.ts.map +1 -1
- package/dist/cjs/log/index.js +59 -20
- package/dist/cjs/log/index.js.map +1 -1
- package/dist/cjs/log/logger.d.ts +26 -0
- package/dist/cjs/log/logger.d.ts.map +1 -1
- package/dist/cjs/log/logger.js +122 -2
- package/dist/cjs/log/logger.js.map +1 -1
- package/dist/cjs/message/childMessage.d.ts +50 -0
- package/dist/cjs/message/childMessage.d.ts.map +1 -1
- package/dist/cjs/message/childMessage.js +83 -2
- package/dist/cjs/message/childMessage.js.map +1 -1
- package/dist/cjs/ps/index.d.ts +112 -0
- package/dist/cjs/ps/index.d.ts.map +1 -1
- package/dist/cjs/ps/index.js +175 -41
- package/dist/cjs/ps/index.js.map +1 -1
- package/dist/cjs/socket/httpServer.d.ts +58 -5
- package/dist/cjs/socket/httpServer.d.ts.map +1 -1
- package/dist/cjs/socket/httpServer.js +94 -28
- package/dist/cjs/socket/httpServer.js.map +1 -1
- package/dist/cjs/socket/index.d.ts +45 -3
- package/dist/cjs/socket/index.d.ts.map +1 -1
- package/dist/cjs/socket/index.js +50 -14
- package/dist/cjs/socket/index.js.map +1 -1
- package/dist/cjs/socket/ipcServer.d.ts +31 -1
- package/dist/cjs/socket/ipcServer.d.ts.map +1 -1
- package/dist/cjs/socket/ipcServer.js +60 -43
- package/dist/cjs/socket/ipcServer.js.map +1 -1
- package/dist/cjs/socket/socketServer.d.ts +32 -1
- package/dist/cjs/socket/socketServer.d.ts.map +1 -1
- package/dist/cjs/socket/socketServer.js +53 -14
- package/dist/cjs/socket/socketServer.js.map +1 -1
- package/dist/cjs/socket/utils.d.ts +13 -0
- package/dist/cjs/socket/utils.d.ts.map +1 -0
- package/dist/cjs/socket/utils.js +41 -0
- package/dist/cjs/socket/utils.js.map +1 -0
- package/dist/cjs/storage/sqliteStorage.d.ts +93 -4
- package/dist/cjs/storage/sqliteStorage.d.ts.map +1 -1
- package/dist/cjs/storage/sqliteStorage.js +121 -9
- package/dist/cjs/storage/sqliteStorage.js.map +1 -1
- package/dist/cjs/types/index.d.ts +373 -5
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/utils/extend.d.ts +44 -1
- package/dist/cjs/utils/extend.d.ts.map +1 -1
- package/dist/cjs/utils/extend.js +67 -19
- package/dist/cjs/utils/extend.js.map +1 -1
- package/dist/cjs/utils/helper.d.ts +154 -1
- package/dist/cjs/utils/helper.d.ts.map +1 -1
- package/dist/cjs/utils/helper.js +205 -28
- package/dist/cjs/utils/helper.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +93 -0
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +136 -12
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/ip.d.ts +29 -0
- package/dist/cjs/utils/ip.d.ts.map +1 -1
- package/dist/cjs/utils/ip.js +95 -4
- package/dist/cjs/utils/ip.js.map +1 -1
- package/dist/cjs/utils/is.d.ts +123 -0
- package/dist/cjs/utils/is.d.ts.map +1 -1
- package/dist/cjs/utils/is.js +126 -14
- package/dist/cjs/utils/is.js.map +1 -1
- package/dist/cjs/utils/json.d.ts +54 -0
- package/dist/cjs/utils/json.d.ts.map +1 -1
- package/dist/cjs/utils/json.js +62 -0
- package/dist/cjs/utils/json.js.map +1 -1
- package/dist/cjs/utils/pargv.d.ts +51 -0
- package/dist/cjs/utils/pargv.d.ts.map +1 -1
- package/dist/cjs/utils/pargv.js +141 -3
- package/dist/cjs/utils/pargv.js.map +1 -1
- package/dist/cjs/utils/port/index.d.ts +42 -0
- package/dist/cjs/utils/port/index.d.ts.map +1 -1
- package/dist/cjs/utils/port/index.js +130 -7
- package/dist/cjs/utils/port/index.js.map +1 -1
- package/dist/cjs/utils/type_check.d.ts +79 -0
- package/dist/cjs/utils/type_check.d.ts.map +1 -1
- package/dist/cjs/utils/type_check.js +87 -1
- package/dist/cjs/utils/type_check.js.map +1 -1
- package/dist/cjs/utils/wrap.d.ts +26 -0
- package/dist/cjs/utils/wrap.d.ts.map +1 -1
- package/dist/cjs/utils/wrap.js +47 -10
- package/dist/cjs/utils/wrap.js.map +1 -1
- package/dist/esm/app/application.d.ts +36 -1
- package/dist/esm/app/application.d.ts.map +1 -1
- package/dist/esm/app/application.js +49 -2
- package/dist/esm/app/application.js.map +1 -1
- package/dist/esm/app/boot.d.ts +56 -1
- package/dist/esm/app/boot.d.ts.map +1 -1
- package/dist/esm/app/boot.js +74 -11
- package/dist/esm/app/boot.js.map +1 -1
- package/dist/esm/app/dir.d.ts +10 -0
- package/dist/esm/app/dir.d.ts.map +1 -1
- package/dist/esm/app/dir.js +71 -10
- package/dist/esm/app/dir.js.map +1 -1
- package/dist/esm/app/events.d.ts +58 -2
- package/dist/esm/app/events.d.ts.map +1 -1
- package/dist/esm/app/events.js +92 -12
- package/dist/esm/app/events.js.map +1 -1
- package/dist/esm/config/config_loader.d.ts +44 -0
- package/dist/esm/config/config_loader.d.ts.map +1 -1
- package/dist/esm/config/config_loader.js +82 -1
- package/dist/esm/config/config_loader.js.map +1 -1
- package/dist/esm/config/default_config.d.ts +5 -0
- package/dist/esm/config/default_config.d.ts.map +1 -1
- package/dist/esm/config/default_config.js +98 -11
- package/dist/esm/config/default_config.js.map +1 -1
- package/dist/esm/config/index.d.ts +31 -1
- package/dist/esm/config/index.d.ts.map +1 -1
- package/dist/esm/config/index.js +52 -0
- package/dist/esm/config/index.js.map +1 -1
- package/dist/esm/const/channel.d.ts +17 -0
- package/dist/esm/const/channel.d.ts.map +1 -1
- package/dist/esm/const/channel.js +17 -0
- package/dist/esm/const/channel.js.map +1 -1
- package/dist/esm/controller/controller_loader.d.ts +20 -1
- package/dist/esm/controller/controller_loader.d.ts.map +1 -1
- package/dist/esm/controller/controller_loader.js +89 -9
- package/dist/esm/controller/controller_loader.js.map +1 -1
- package/dist/esm/controller/index.d.ts +32 -0
- package/dist/esm/controller/index.d.ts.map +1 -1
- package/dist/esm/controller/index.js +66 -0
- package/dist/esm/controller/index.js.map +1 -1
- package/dist/esm/core/loader/file_loader.d.ts +78 -27
- package/dist/esm/core/loader/file_loader.d.ts.map +1 -1
- package/dist/esm/core/loader/file_loader.js +194 -68
- package/dist/esm/core/loader/file_loader.js.map +1 -1
- package/dist/esm/core/utils/index.d.ts +57 -2
- package/dist/esm/core/utils/index.d.ts.map +1 -1
- package/dist/esm/core/utils/index.js +87 -12
- package/dist/esm/core/utils/index.js.map +1 -1
- package/dist/esm/core/utils/timing.d.ts +47 -0
- package/dist/esm/core/utils/timing.d.ts.map +1 -1
- package/dist/esm/core/utils/timing.js +42 -2
- package/dist/esm/core/utils/timing.js.map +1 -1
- package/dist/esm/cross/cross.d.ts +81 -2
- package/dist/esm/cross/cross.d.ts.map +1 -1
- package/dist/esm/cross/cross.js +86 -16
- package/dist/esm/cross/cross.js.map +1 -1
- package/dist/esm/cross/crossProcess.d.ts +85 -14
- package/dist/esm/cross/crossProcess.d.ts.map +1 -1
- package/dist/esm/cross/crossProcess.js +85 -13
- package/dist/esm/cross/crossProcess.js.map +1 -1
- package/dist/esm/electron/app/index.d.ts +17 -1
- package/dist/esm/electron/app/index.d.ts.map +1 -1
- package/dist/esm/electron/app/index.js +27 -3
- package/dist/esm/electron/app/index.js.map +1 -1
- package/dist/esm/electron/index.d.ts +6 -0
- package/dist/esm/electron/index.d.ts.map +1 -1
- package/dist/esm/electron/index.js +16 -1
- package/dist/esm/electron/index.js.map +1 -1
- package/dist/esm/electron/window/index.d.ts +37 -0
- package/dist/esm/electron/window/index.d.ts.map +1 -1
- package/dist/esm/electron/window/index.js +144 -88
- package/dist/esm/electron/window/index.js.map +1 -1
- package/dist/esm/exception/index.d.ts +12 -0
- package/dist/esm/exception/index.d.ts.map +1 -1
- package/dist/esm/exception/index.js +67 -9
- package/dist/esm/exception/index.js.map +1 -1
- package/dist/esm/html/index.d.ts +19 -0
- package/dist/esm/html/index.d.ts.map +1 -1
- package/dist/esm/html/index.js +42 -0
- package/dist/esm/html/index.js.map +1 -1
- package/dist/esm/index.d.ts +35 -7
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +127 -80
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/jobs/child/app.js +86 -25
- package/dist/esm/jobs/child/app.js.map +1 -1
- package/dist/esm/jobs/child/index.d.ts +5 -5
- package/dist/esm/jobs/child/index.js +5 -5
- package/dist/esm/jobs/child/jobProcess.d.ts +68 -0
- package/dist/esm/jobs/child/jobProcess.d.ts.map +1 -1
- package/dist/esm/jobs/child/jobProcess.js +86 -11
- package/dist/esm/jobs/child/jobProcess.js.map +1 -1
- package/dist/esm/jobs/child-pool/index.d.ts +96 -0
- package/dist/esm/jobs/child-pool/index.d.ts.map +1 -1
- package/dist/esm/jobs/child-pool/index.js +91 -4
- package/dist/esm/jobs/child-pool/index.js.map +1 -1
- package/dist/esm/jobs/index.d.ts +10 -0
- package/dist/esm/jobs/index.d.ts.map +1 -1
- package/dist/esm/jobs/index.js +10 -0
- package/dist/esm/jobs/index.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/index.d.ts +2 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/index.js +6 -0
- package/dist/esm/jobs/load-balancer/algorithm/index.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/minimumConnection.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/polling.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/polling.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/random.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/random.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/specify.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/specify.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weights.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weights.js +4 -8
- package/dist/esm/jobs/load-balancer/algorithm/weights.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js +6 -11
- package/dist/esm/jobs/load-balancer/algorithm/weightsMinimumConnection.js.map +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsPolling.js +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.d.ts +1 -1
- package/dist/esm/jobs/load-balancer/algorithm/weightsRandom.js +1 -1
- package/dist/esm/jobs/load-balancer/consts.d.ts +22 -0
- package/dist/esm/jobs/load-balancer/consts.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/consts.js +22 -0
- package/dist/esm/jobs/load-balancer/consts.js.map +1 -1
- package/dist/esm/jobs/load-balancer/index.d.ts +18 -18
- package/dist/esm/jobs/load-balancer/index.js +18 -18
- package/dist/esm/jobs/load-balancer/scheduler.d.ts +3 -3
- package/dist/esm/jobs/load-balancer/scheduler.js +3 -3
- package/dist/esm/jobs/load-balancer/types.d.ts +21 -0
- package/dist/esm/jobs/load-balancer/types.d.ts.map +1 -1
- package/dist/esm/jobs/load-balancer/types.js +4 -0
- package/dist/esm/jobs/load-balancer/types.js.map +1 -1
- package/dist/esm/jobs/registry.d.ts +24 -0
- package/dist/esm/jobs/registry.d.ts.map +1 -0
- package/dist/esm/jobs/registry.js +52 -0
- package/dist/esm/jobs/registry.js.map +1 -0
- package/dist/esm/loader/index.d.ts +52 -0
- package/dist/esm/loader/index.d.ts.map +1 -1
- package/dist/esm/loader/index.js +79 -10
- package/dist/esm/loader/index.js.map +1 -1
- package/dist/esm/log/index.d.ts +41 -0
- package/dist/esm/log/index.d.ts.map +1 -1
- package/dist/esm/log/index.js +59 -20
- package/dist/esm/log/index.js.map +1 -1
- package/dist/esm/log/logger.d.ts +26 -0
- package/dist/esm/log/logger.d.ts.map +1 -1
- package/dist/esm/log/logger.js +122 -2
- package/dist/esm/log/logger.js.map +1 -1
- package/dist/esm/message/childMessage.d.ts +50 -0
- package/dist/esm/message/childMessage.d.ts.map +1 -1
- package/dist/esm/message/childMessage.js +83 -2
- package/dist/esm/message/childMessage.js.map +1 -1
- package/dist/esm/ps/index.d.ts +112 -0
- package/dist/esm/ps/index.d.ts.map +1 -1
- package/dist/esm/ps/index.js +175 -41
- package/dist/esm/ps/index.js.map +1 -1
- package/dist/esm/socket/httpServer.d.ts +58 -5
- package/dist/esm/socket/httpServer.d.ts.map +1 -1
- package/dist/esm/socket/httpServer.js +94 -28
- package/dist/esm/socket/httpServer.js.map +1 -1
- package/dist/esm/socket/index.d.ts +45 -3
- package/dist/esm/socket/index.d.ts.map +1 -1
- package/dist/esm/socket/index.js +50 -14
- package/dist/esm/socket/index.js.map +1 -1
- package/dist/esm/socket/ipcServer.d.ts +31 -1
- package/dist/esm/socket/ipcServer.d.ts.map +1 -1
- package/dist/esm/socket/ipcServer.js +60 -43
- package/dist/esm/socket/ipcServer.js.map +1 -1
- package/dist/esm/socket/socketServer.d.ts +32 -1
- package/dist/esm/socket/socketServer.d.ts.map +1 -1
- package/dist/esm/socket/socketServer.js +53 -14
- package/dist/esm/socket/socketServer.js.map +1 -1
- package/dist/esm/socket/utils.d.ts +13 -0
- package/dist/esm/socket/utils.d.ts.map +1 -0
- package/dist/esm/socket/utils.js +41 -0
- package/dist/esm/socket/utils.js.map +1 -0
- package/dist/esm/storage/sqliteStorage.d.ts +93 -4
- package/dist/esm/storage/sqliteStorage.d.ts.map +1 -1
- package/dist/esm/storage/sqliteStorage.js +121 -9
- package/dist/esm/storage/sqliteStorage.js.map +1 -1
- package/dist/esm/types/index.d.ts +373 -5
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/utils/extend.d.ts +44 -1
- package/dist/esm/utils/extend.d.ts.map +1 -1
- package/dist/esm/utils/extend.js +67 -19
- package/dist/esm/utils/extend.js.map +1 -1
- package/dist/esm/utils/helper.d.ts +154 -1
- package/dist/esm/utils/helper.d.ts.map +1 -1
- package/dist/esm/utils/helper.js +205 -28
- package/dist/esm/utils/helper.js.map +1 -1
- package/dist/esm/utils/index.d.ts +93 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +136 -12
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/ip.d.ts +29 -0
- package/dist/esm/utils/ip.d.ts.map +1 -1
- package/dist/esm/utils/ip.js +95 -4
- package/dist/esm/utils/ip.js.map +1 -1
- package/dist/esm/utils/is.d.ts +123 -0
- package/dist/esm/utils/is.d.ts.map +1 -1
- package/dist/esm/utils/is.js +126 -14
- package/dist/esm/utils/is.js.map +1 -1
- package/dist/esm/utils/json.d.ts +54 -0
- package/dist/esm/utils/json.d.ts.map +1 -1
- package/dist/esm/utils/json.js +62 -0
- package/dist/esm/utils/json.js.map +1 -1
- package/dist/esm/utils/pargv.d.ts +51 -0
- package/dist/esm/utils/pargv.d.ts.map +1 -1
- package/dist/esm/utils/pargv.js +141 -3
- package/dist/esm/utils/pargv.js.map +1 -1
- package/dist/esm/utils/port/index.d.ts +42 -0
- package/dist/esm/utils/port/index.d.ts.map +1 -1
- package/dist/esm/utils/port/index.js +130 -7
- package/dist/esm/utils/port/index.js.map +1 -1
- package/dist/esm/utils/type_check.d.ts +79 -0
- package/dist/esm/utils/type_check.d.ts.map +1 -1
- package/dist/esm/utils/type_check.js +87 -1
- package/dist/esm/utils/type_check.js.map +1 -1
- package/dist/esm/utils/wrap.d.ts +26 -0
- package/dist/esm/utils/wrap.d.ts.map +1 -1
- package/dist/esm/utils/wrap.js +47 -10
- package/dist/esm/utils/wrap.js.map +1 -1
- package/package.json +13 -13
|
@@ -1,17 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module core/utils/timing
|
|
3
|
+
* @description Timing utility. Used to record the loading duration of each framework stage for
|
|
4
|
+
* performance analysis and debugging. Used in ConfigLoader and ControllerLoader to record
|
|
5
|
+
* timing for stages like "Load Config", "Load Controller", etc.
|
|
6
|
+
*/
|
|
1
7
|
import type { TimingItem } from '../../types/index.js';
|
|
2
8
|
declare const MAP: unique symbol;
|
|
3
9
|
declare const LIST: unique symbol;
|
|
10
|
+
/**
|
|
11
|
+
* Timing — Timer
|
|
12
|
+
*
|
|
13
|
+
* Usage:
|
|
14
|
+
* ```ts
|
|
15
|
+
* const timing = new Timing();
|
|
16
|
+
* timing.start('Load Controller');
|
|
17
|
+
* // ... perform loading
|
|
18
|
+
* timing.end('Load Controller');
|
|
19
|
+
* const items = timing.toJSON(); // Get all timing records
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* Supports nested timing. Repeatedly calling start with the same name will automatically end the previous one first.
|
|
23
|
+
*/
|
|
4
24
|
export declare class Timing {
|
|
5
25
|
private _enable;
|
|
26
|
+
/** Mapping of timing item names to timing items, for quick lookup and end() */
|
|
6
27
|
private [MAP];
|
|
28
|
+
/** Chronologically ordered list of timing items */
|
|
7
29
|
private [LIST];
|
|
8
30
|
constructor();
|
|
31
|
+
/**
|
|
32
|
+
* Initialize: record process start time and script start execution time
|
|
33
|
+
*/
|
|
9
34
|
init(): void;
|
|
35
|
+
/**
|
|
36
|
+
* Start timing
|
|
37
|
+
*
|
|
38
|
+
* @param name - Timing item name
|
|
39
|
+
* @param start - Custom start timestamp (milliseconds); uses current time if not provided
|
|
40
|
+
* @returns Timing item object; if an item with the same name already exists, the previous one is ended first
|
|
41
|
+
*/
|
|
10
42
|
start(name: string, start?: number): TimingItem | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* End timing
|
|
45
|
+
*
|
|
46
|
+
* @param name - Timing item name (must be started first)
|
|
47
|
+
* @returns Timing item object (including duration)
|
|
48
|
+
* @throws Throws an error when the timing item does not exist
|
|
49
|
+
*/
|
|
11
50
|
end(name: string): TimingItem | undefined;
|
|
51
|
+
/** Enable timing */
|
|
12
52
|
enable(): void;
|
|
53
|
+
/** Disable timing */
|
|
13
54
|
disable(): void;
|
|
55
|
+
/** Clear all timing records */
|
|
14
56
|
clear(): void;
|
|
57
|
+
/**
|
|
58
|
+
* Export as JSON-formatted timing records
|
|
59
|
+
*
|
|
60
|
+
* @returns Chronologically ordered list of timing items
|
|
61
|
+
*/
|
|
15
62
|
toJSON(): TimingItem[];
|
|
16
63
|
}
|
|
17
64
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/timing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,QAAA,MAAM,GAAG,eAAuB,CAAC;AACjC,QAAA,MAAM,IAAI,eAAwB,CAAC;AAEnC,qBAAa,MAAM;IACjB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,CAAC,GAAG,CAAC,CAA0B;IACvC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAe;;IAQ7B,IAAI,IAAI,IAAI;IAaZ,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"timing.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/timing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,QAAA,MAAM,GAAG,eAAuB,CAAC;AACjC,QAAA,MAAM,IAAI,eAAwB,CAAC;AAEnC;;;;;;;;;;;;;GAaG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,OAAO,CAAQ;IACvB,+EAA+E;IAC/E,OAAO,CAAC,CAAC,GAAG,CAAC,CAA0B;IACvC,mDAAmD;IACnD,OAAO,CAAC,CAAC,IAAI,CAAC,CAAe;;IAQ7B;;OAEG;IACH,IAAI,IAAI,IAAI;IAaZ;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAmB3D;;;;;;OAMG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAYzC,oBAAoB;IACpB,MAAM,IAAI,IAAI;IAId,qBAAqB;IACrB,OAAO,IAAI,IAAI;IAIf,+BAA+B;IAC/B,KAAK,IAAI,IAAI;IAKb;;;;OAIG;IACH,MAAM,IAAI,UAAU,EAAE;CAGvB"}
|
|
@@ -3,6 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Timing = void 0;
|
|
4
4
|
const MAP = Symbol('Timing#map');
|
|
5
5
|
const LIST = Symbol('Timing#list');
|
|
6
|
+
/**
|
|
7
|
+
* Timing — Timer
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* ```ts
|
|
11
|
+
* const timing = new Timing();
|
|
12
|
+
* timing.start('Load Controller');
|
|
13
|
+
* // ... perform loading
|
|
14
|
+
* timing.end('Load Controller');
|
|
15
|
+
* const items = timing.toJSON(); // Get all timing records
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* Supports nested timing. Repeatedly calling start with the same name will automatically end the previous one first.
|
|
19
|
+
*/
|
|
6
20
|
class Timing {
|
|
7
21
|
constructor() {
|
|
8
22
|
this._enable = true;
|
|
@@ -10,20 +24,31 @@ class Timing {
|
|
|
10
24
|
this[LIST] = [];
|
|
11
25
|
this.init();
|
|
12
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Initialize: record process start time and script start execution time
|
|
29
|
+
*/
|
|
13
30
|
init() {
|
|
14
|
-
// process start time
|
|
31
|
+
// Record Node.js process start time (current time - process uptime)
|
|
15
32
|
this.start('Process Start', Date.now() - Math.floor(process.uptime() * 1000));
|
|
16
33
|
this.end('Process Start');
|
|
34
|
+
// If scriptStartTime exists (provided by some runtimes), record script start time
|
|
17
35
|
const proc = process;
|
|
18
36
|
if (typeof proc.scriptStartTime === 'number') {
|
|
19
|
-
// js script start execute time
|
|
20
37
|
this.start('Script Start', proc.scriptStartTime);
|
|
21
38
|
this.end('Script Start');
|
|
22
39
|
}
|
|
23
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Start timing
|
|
43
|
+
*
|
|
44
|
+
* @param name - Timing item name
|
|
45
|
+
* @param start - Custom start timestamp (milliseconds); uses current time if not provided
|
|
46
|
+
* @returns Timing item object; if an item with the same name already exists, the previous one is ended first
|
|
47
|
+
*/
|
|
24
48
|
start(name, start) {
|
|
25
49
|
if (!name || !this._enable)
|
|
26
50
|
return undefined;
|
|
51
|
+
// If a timing item with the same name already exists, end the previous one first
|
|
27
52
|
if (this[MAP].has(name))
|
|
28
53
|
this.end(name);
|
|
29
54
|
const item = {
|
|
@@ -38,6 +63,13 @@ class Timing {
|
|
|
38
63
|
this[LIST].push(item);
|
|
39
64
|
return item;
|
|
40
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* End timing
|
|
68
|
+
*
|
|
69
|
+
* @param name - Timing item name (must be started first)
|
|
70
|
+
* @returns Timing item object (including duration)
|
|
71
|
+
* @throws Throws an error when the timing item does not exist
|
|
72
|
+
*/
|
|
41
73
|
end(name) {
|
|
42
74
|
if (!name || !this._enable)
|
|
43
75
|
return undefined;
|
|
@@ -49,16 +81,24 @@ class Timing {
|
|
|
49
81
|
item.duration = item.end - item.start;
|
|
50
82
|
return item;
|
|
51
83
|
}
|
|
84
|
+
/** Enable timing */
|
|
52
85
|
enable() {
|
|
53
86
|
this._enable = true;
|
|
54
87
|
}
|
|
88
|
+
/** Disable timing */
|
|
55
89
|
disable() {
|
|
56
90
|
this._enable = false;
|
|
57
91
|
}
|
|
92
|
+
/** Clear all timing records */
|
|
58
93
|
clear() {
|
|
59
94
|
this[MAP].clear();
|
|
60
95
|
this[LIST] = [];
|
|
61
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Export as JSON-formatted timing records
|
|
99
|
+
*
|
|
100
|
+
* @returns Chronologically ordered list of timing items
|
|
101
|
+
*/
|
|
62
102
|
toJSON() {
|
|
63
103
|
return this[LIST];
|
|
64
104
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timing.js","sourceRoot":"","sources":["../../../../src/core/utils/timing.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"timing.js","sourceRoot":"","sources":["../../../../src/core/utils/timing.ts"],"names":[],"mappings":";;;AAQA,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AACjC,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAEnC;;;;;;;;;;;;;GAaG;AACH,MAAa,MAAM;IAOjB;QANQ,YAAO,GAAG,IAAI,CAAC;QAOrB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED;;OAEG;IACH,IAAI;QACF,oEAAoE;QACpE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAE1B,kFAAkF;QAClF,MAAM,IAAI,GAAG,OAAkD,CAAC;QAChE,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YAC7C,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YACjD,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAY,EAAE,KAAc;QAChC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE7C,iFAAiF;QACjF,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAExC,MAAM,IAAI,GAAe;YACvB,IAAI;YACJ,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE;YAC1B,GAAG,EAAE,SAAS;YACd,QAAQ,EAAE,SAAS;YACnB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;SACzB,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,GAAG,CAAC,IAAY;QACd,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,UAAU,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB;IACpB,MAAM;QACJ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,qBAAqB;IACrB,OAAO;QACL,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,+BAA+B;IAC/B,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;CACF;AAlGD,wBAkGC"}
|
|
@@ -1,25 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cross/cross
|
|
3
|
+
* @description Cross-process communication manager. Responsible for creating, managing, and terminating
|
|
4
|
+
* external child processes (e.g., Go/Python backends), and dynamically allocating ports for them.
|
|
5
|
+
*
|
|
6
|
+
* Core concepts:
|
|
7
|
+
* - children: Process mapping keyed by pid, storing CrossProcess instances
|
|
8
|
+
* - childrenMap: Mapping keyed by name, for quick process lookup by name
|
|
9
|
+
* - Event listening: Automatically cleans up from mappings when child processes exit/error
|
|
10
|
+
*
|
|
11
|
+
* Usage:
|
|
12
|
+
* ```ts
|
|
13
|
+
* const proc = await cross.run('goServer');
|
|
14
|
+
* const url = cross.getUrl('goServer');
|
|
15
|
+
* cross.killByName('goServer');
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
1
18
|
import EventEmitter from 'events';
|
|
2
19
|
import { CrossProcess } from './crossProcess.js';
|
|
20
|
+
import type { CrossHost } from './crossProcess.js';
|
|
21
|
+
/** Additional options when running a child process */
|
|
3
22
|
export interface CrossRunOptions {
|
|
4
23
|
[key: string]: unknown;
|
|
24
|
+
/** Override startup arguments */
|
|
5
25
|
args?: string[];
|
|
26
|
+
/** Specify port number */
|
|
6
27
|
port?: number;
|
|
7
28
|
}
|
|
8
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Cross - cross-process communication manager
|
|
31
|
+
*
|
|
32
|
+
* Implements the CrossHost interface, providing event notification capability for child processes.
|
|
33
|
+
* Manages processes via children and childrenMap dual indexes, supporting operations by pid or name.
|
|
34
|
+
*/
|
|
35
|
+
export declare class Cross implements CrossHost {
|
|
36
|
+
/** Event emitter for receiving child process exit/error events */
|
|
9
37
|
emitter: EventEmitter | undefined;
|
|
38
|
+
/** pid index: { pid: { name, entity } } */
|
|
10
39
|
private children;
|
|
40
|
+
/** name index: { name: pid } */
|
|
11
41
|
private childrenMap;
|
|
12
42
|
constructor();
|
|
43
|
+
/**
|
|
44
|
+
* Create and start all cross-process services with enable=true in config
|
|
45
|
+
*
|
|
46
|
+
* Iterates over config.cross configuration, calling run() for each service with enable=true.
|
|
47
|
+
*/
|
|
13
48
|
create(): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Run the specified cross-process service
|
|
51
|
+
*
|
|
52
|
+
* Flow:
|
|
53
|
+
* 1. Get service configuration from config, merge with runtime options
|
|
54
|
+
* 2. Parse port parameter, dynamically acquire available port if specified
|
|
55
|
+
* 3. Create CrossProcess child process
|
|
56
|
+
* 4. Register in children and childrenMap indexes
|
|
57
|
+
*
|
|
58
|
+
* @param service - Service name (corresponding to key name in config.cross)
|
|
59
|
+
* @param opt - Runtime options, can override configuration parameters
|
|
60
|
+
* @returns CrossProcess instance
|
|
61
|
+
* @throws Throws error when service configuration does not exist
|
|
62
|
+
*/
|
|
14
63
|
run(service: string, opt?: CrossRunOptions): Promise<CrossProcess>;
|
|
64
|
+
/** Terminate all child processes */
|
|
15
65
|
killAll(): void;
|
|
66
|
+
/** Terminate child process by pid */
|
|
16
67
|
kill(pid: string | number): void;
|
|
68
|
+
/** Terminate child process by name */
|
|
17
69
|
killByName(name: string): void;
|
|
18
|
-
|
|
70
|
+
/**
|
|
71
|
+
* Get the URL of the specified service
|
|
72
|
+
*
|
|
73
|
+
* @param name - Service name
|
|
74
|
+
* @returns Service URL, or undefined if process does not exist
|
|
75
|
+
*/
|
|
76
|
+
getUrl(name: string): string | undefined;
|
|
77
|
+
/**
|
|
78
|
+
* Get process instance by name
|
|
79
|
+
*
|
|
80
|
+
* @param name - Service name
|
|
81
|
+
* @returns CrossProcess instance
|
|
82
|
+
* @throws Throws error when process does not exist
|
|
83
|
+
*/
|
|
19
84
|
getProcByName(name: string): CrossProcess;
|
|
85
|
+
/**
|
|
86
|
+
* Get process instance by pid
|
|
87
|
+
*
|
|
88
|
+
* @param pid - Process ID
|
|
89
|
+
* @returns CrossProcess instance
|
|
90
|
+
* @throws Throws error when process does not exist
|
|
91
|
+
*/
|
|
20
92
|
getProc(pid: string | number): CrossProcess;
|
|
93
|
+
/** Get list of all child process pids */
|
|
21
94
|
getPids(): string[];
|
|
95
|
+
/**
|
|
96
|
+
* Initialize event listeners
|
|
97
|
+
*
|
|
98
|
+
* Listens for child process exit and error events, automatically cleaning up terminated processes from indexes.
|
|
99
|
+
*/
|
|
22
100
|
_initEventEmitter(): void;
|
|
23
101
|
}
|
|
102
|
+
/** Cross manager singleton */
|
|
24
103
|
export declare const cross: Cross;
|
|
25
104
|
//# sourceMappingURL=cross.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross.d.ts","sourceRoot":"","sources":["../../../src/cross/cross.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAGlC,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"cross.d.ts","sourceRoot":"","sources":["../../../src/cross/cross.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,YAAY,MAAM,QAAQ,CAAC;AAGlC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAMnD,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,qBAAa,KAAM,YAAW,SAAS;IACrC,kEAAkE;IAClE,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;IAElC,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAyD;IAEzE,gCAAgC;IAChC,OAAO,CAAC,WAAW,CAAyB;;IAS5C;;;;OAIG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAW7B;;;;;;;;;;;;;OAaG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,eAAoB,GAAG,OAAO,CAAC,YAAY,CAAC;IAuC5E,oCAAoC;IACpC,OAAO,IAAI,IAAI;IAMf,qCAAqC;IACrC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOhC,sCAAsC;IACtC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO9B;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQxC;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY;IAUzC;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY;IAS3C,yCAAyC;IACzC,OAAO,IAAI,MAAM,EAAE;IAKnB;;;;OAIG;IACH,iBAAiB,IAAI,IAAI;CAiB1B;AAED,8BAA8B;AAC9B,eAAO,MAAM,KAAK,OAAc,CAAC"}
|
package/dist/esm/cross/cross.js
CHANGED
|
@@ -4,6 +4,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.cross = exports.Cross = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* @module cross/cross
|
|
9
|
+
* @description Cross-process communication manager. Responsible for creating, managing, and terminating
|
|
10
|
+
* external child processes (e.g., Go/Python backends), and dynamically allocating ports for them.
|
|
11
|
+
*
|
|
12
|
+
* Core concepts:
|
|
13
|
+
* - children: Process mapping keyed by pid, storing CrossProcess instances
|
|
14
|
+
* - childrenMap: Mapping keyed by name, for quick process lookup by name
|
|
15
|
+
* - Event listening: Automatically cleans up from mappings when child processes exit/error
|
|
16
|
+
*
|
|
17
|
+
* Usage:
|
|
18
|
+
* ```ts
|
|
19
|
+
* const proc = await cross.run('goServer');
|
|
20
|
+
* const url = cross.getUrl('goServer');
|
|
21
|
+
* cross.killByName('goServer');
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
7
24
|
const events_1 = __importDefault(require("events"));
|
|
8
25
|
const index_js_1 = require("../config/index.js");
|
|
9
26
|
const helper_js_1 = require("../utils/helper.js");
|
|
@@ -11,6 +28,12 @@ const crossProcess_js_1 = require("./crossProcess.js");
|
|
|
11
28
|
const channel_js_1 = require("../const/channel.js");
|
|
12
29
|
const extend_js_1 = require("../utils/extend.js");
|
|
13
30
|
const index_js_2 = require("../utils/port/index.js");
|
|
31
|
+
/**
|
|
32
|
+
* Cross - cross-process communication manager
|
|
33
|
+
*
|
|
34
|
+
* Implements the CrossHost interface, providing event notification capability for child processes.
|
|
35
|
+
* Manages processes via children and childrenMap dual indexes, supporting operations by pid or name.
|
|
36
|
+
*/
|
|
14
37
|
class Cross {
|
|
15
38
|
constructor() {
|
|
16
39
|
this.emitter = undefined;
|
|
@@ -18,18 +41,34 @@ class Cross {
|
|
|
18
41
|
this.childrenMap = {};
|
|
19
42
|
this._initEventEmitter();
|
|
20
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Create and start all cross-process services with enable=true in config
|
|
46
|
+
*
|
|
47
|
+
* Iterates over config.cross configuration, calling run() for each service with enable=true.
|
|
48
|
+
*/
|
|
21
49
|
async create() {
|
|
22
|
-
// boot services
|
|
23
50
|
const crossCfg = (0, index_js_1.getConfig)().cross;
|
|
24
|
-
//await sleep(5 * 1000);
|
|
25
51
|
for (const key of Object.keys(crossCfg)) {
|
|
26
52
|
const val = crossCfg[key];
|
|
27
53
|
if (val && val.enable === true) {
|
|
28
|
-
this.run(key);
|
|
54
|
+
await this.run(key);
|
|
29
55
|
}
|
|
30
56
|
}
|
|
31
57
|
}
|
|
32
|
-
|
|
58
|
+
/**
|
|
59
|
+
* Run the specified cross-process service
|
|
60
|
+
*
|
|
61
|
+
* Flow:
|
|
62
|
+
* 1. Get service configuration from config, merge with runtime options
|
|
63
|
+
* 2. Parse port parameter, dynamically acquire available port if specified
|
|
64
|
+
* 3. Create CrossProcess child process
|
|
65
|
+
* 4. Register in children and childrenMap indexes
|
|
66
|
+
*
|
|
67
|
+
* @param service - Service name (corresponding to key name in config.cross)
|
|
68
|
+
* @param opt - Runtime options, can override configuration parameters
|
|
69
|
+
* @returns CrossProcess instance
|
|
70
|
+
* @throws Throws error when service configuration does not exist
|
|
71
|
+
*/
|
|
33
72
|
async run(service, opt = {}) {
|
|
34
73
|
const crossConf = (0, index_js_1.getConfig)().cross;
|
|
35
74
|
const defaultOpt = crossConf[service] || {};
|
|
@@ -37,22 +76,23 @@ class Cross {
|
|
|
37
76
|
if (Object.keys(targetConf).length === 0) {
|
|
38
77
|
throw new Error(`[ee-core] [cross] The service [${service}] config does not exit`);
|
|
39
78
|
}
|
|
40
|
-
//
|
|
79
|
+
// Parse and allocate port
|
|
41
80
|
const tmpArgs = targetConf.args || [];
|
|
42
81
|
let confPort = parseInt(String((0, helper_js_1.getValueFromArgv)(tmpArgs, 'port') || '0'), 10);
|
|
43
|
-
//
|
|
82
|
+
// Some programs error when passed non-existent arguments, in which case use the port field from config
|
|
44
83
|
if (isNaN(confPort) && (targetConf.port || 0) > 0) {
|
|
45
84
|
confPort = targetConf.port || 0;
|
|
46
85
|
}
|
|
47
86
|
if (confPort > 0) {
|
|
48
|
-
//
|
|
87
|
+
// Dynamically acquire available port
|
|
49
88
|
confPort = await (0, index_js_2.getPort)({ port: confPort });
|
|
50
|
-
//
|
|
89
|
+
// Replace port number in arguments
|
|
51
90
|
targetConf.args = (0, helper_js_1.replaceArgsValue)(tmpArgs, 'port', String(confPort));
|
|
52
91
|
}
|
|
53
|
-
//
|
|
92
|
+
// Create child process
|
|
54
93
|
const subProcess = new crossProcess_js_1.CrossProcess(this, { targetConf, port: confPort });
|
|
55
94
|
let uniqueName = targetConf.name;
|
|
95
|
+
// Append pid suffix for duplicate service names to avoid conflicts
|
|
56
96
|
if (Object.prototype.hasOwnProperty.call(this.childrenMap, uniqueName)) {
|
|
57
97
|
uniqueName = uniqueName + '-' + String(subProcess.pid);
|
|
58
98
|
}
|
|
@@ -64,31 +104,49 @@ class Cross {
|
|
|
64
104
|
};
|
|
65
105
|
return subProcess;
|
|
66
106
|
}
|
|
107
|
+
/** Terminate all child processes */
|
|
67
108
|
killAll() {
|
|
68
109
|
Object.keys(this.children).forEach((pid) => {
|
|
69
110
|
this.kill(pid);
|
|
70
111
|
});
|
|
71
112
|
}
|
|
113
|
+
/** Terminate child process by pid */
|
|
72
114
|
kill(pid) {
|
|
73
115
|
const entity = this.getProc(pid);
|
|
74
116
|
if (entity) {
|
|
75
117
|
entity.kill();
|
|
76
118
|
}
|
|
77
119
|
}
|
|
120
|
+
/** Terminate child process by name */
|
|
78
121
|
killByName(name) {
|
|
79
122
|
const entity = this.getProcByName(name);
|
|
80
123
|
if (entity) {
|
|
81
124
|
entity.kill();
|
|
82
125
|
}
|
|
83
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Get the URL of the specified service
|
|
129
|
+
*
|
|
130
|
+
* @param name - Service name
|
|
131
|
+
* @returns Service URL, or undefined if process does not exist
|
|
132
|
+
*/
|
|
84
133
|
getUrl(name) {
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
134
|
+
const pid = this.childrenMap[name];
|
|
135
|
+
if (!pid)
|
|
136
|
+
return undefined;
|
|
137
|
+
const child = this.children[String(pid)];
|
|
138
|
+
if (!child)
|
|
139
|
+
return undefined;
|
|
140
|
+
return child.entity.getUrl();
|
|
88
141
|
}
|
|
89
|
-
|
|
142
|
+
/**
|
|
143
|
+
* Get process instance by name
|
|
144
|
+
*
|
|
145
|
+
* @param name - Service name
|
|
146
|
+
* @returns CrossProcess instance
|
|
147
|
+
* @throws Throws error when process does not exist
|
|
148
|
+
*/
|
|
90
149
|
getProcByName(name) {
|
|
91
|
-
// [todo] 如果有名字一样的服务,需要加 pid
|
|
92
150
|
const pid = this.childrenMap[name];
|
|
93
151
|
if (!pid) {
|
|
94
152
|
throw new Error(`[ee-core] [cross] The process named [${name}] does not exit`);
|
|
@@ -96,7 +154,13 @@ class Cross {
|
|
|
96
154
|
const entity = this.getProc(pid);
|
|
97
155
|
return entity;
|
|
98
156
|
}
|
|
99
|
-
|
|
157
|
+
/**
|
|
158
|
+
* Get process instance by pid
|
|
159
|
+
*
|
|
160
|
+
* @param pid - Process ID
|
|
161
|
+
* @returns CrossProcess instance
|
|
162
|
+
* @throws Throws error when process does not exist
|
|
163
|
+
*/
|
|
100
164
|
getProc(pid) {
|
|
101
165
|
const child = this.children[String(pid)];
|
|
102
166
|
if (!child) {
|
|
@@ -104,11 +168,16 @@ class Cross {
|
|
|
104
168
|
}
|
|
105
169
|
return child.entity;
|
|
106
170
|
}
|
|
107
|
-
|
|
171
|
+
/** Get list of all child process pids */
|
|
108
172
|
getPids() {
|
|
109
173
|
const pids = Object.keys(this.children);
|
|
110
174
|
return pids;
|
|
111
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Initialize event listeners
|
|
178
|
+
*
|
|
179
|
+
* Listens for child process exit and error events, automatically cleaning up terminated processes from indexes.
|
|
180
|
+
*/
|
|
112
181
|
_initEventEmitter() {
|
|
113
182
|
this.emitter = new events_1.default();
|
|
114
183
|
this.emitter.on(channel_js_1.Events.childProcessExit, (data) => {
|
|
@@ -128,5 +197,6 @@ class Cross {
|
|
|
128
197
|
}
|
|
129
198
|
}
|
|
130
199
|
exports.Cross = Cross;
|
|
200
|
+
/** Cross manager singleton */
|
|
131
201
|
exports.cross = new Cross();
|
|
132
202
|
//# sourceMappingURL=cross.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross.js","sourceRoot":"","sources":["../../../src/cross/cross.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAkC;AAClC,iDAA+C;AAC/C,kDAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"cross.js","sourceRoot":"","sources":["../../../src/cross/cross.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,46 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module cross/crossProcess
|
|
3
|
+
* @description Cross-process child process management. Encapsulates the logic of using cross-spawn
|
|
4
|
+
* to create external processes, handling process path resolution, platform differences,
|
|
5
|
+
* lifecycle monitoring, and graceful exit.
|
|
6
|
+
*
|
|
7
|
+
* Supported external program types:
|
|
8
|
+
* - Go compiled binaries
|
|
9
|
+
* - Python scripts
|
|
10
|
+
* - Other executable programs
|
|
11
|
+
*
|
|
12
|
+
* Process path resolution rules:
|
|
13
|
+
* - Config has cmd → use cmd as executable file path
|
|
14
|
+
* - Config has no cmd → use extraResourcesDir/{name} as path
|
|
15
|
+
* - Windows platform automatically adds .exe extension
|
|
16
|
+
* - Dev environment relative to project root, production relative to extraResources directory
|
|
17
|
+
*/
|
|
1
18
|
import EventEmitter from 'events';
|
|
2
19
|
import crossSpawn from 'cross-spawn';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
cmd?: string;
|
|
7
|
-
directory?: string;
|
|
8
|
-
windowsExtname?: boolean;
|
|
9
|
-
stdio?: ('pipe' | 'ignore' | 'inherit' | 'ipc')[];
|
|
10
|
-
appExit?: boolean;
|
|
11
|
-
port?: number;
|
|
12
|
-
enable?: boolean;
|
|
13
|
-
}
|
|
20
|
+
import type { CrossTargetConfig } from '../types/index.js';
|
|
21
|
+
export type { CrossTargetConfig };
|
|
22
|
+
/** Options when creating a CrossProcess */
|
|
14
23
|
export interface CrossProcessOptions {
|
|
24
|
+
/** Target service configuration */
|
|
15
25
|
targetConf: CrossTargetConfig;
|
|
26
|
+
/** Allocated port number */
|
|
16
27
|
port: number;
|
|
17
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* CrossProcess - child process instance
|
|
31
|
+
*
|
|
32
|
+
* Encapsulates the complete lifecycle of an external process:
|
|
33
|
+
* Create → Run → Listen for events → Terminate
|
|
34
|
+
*
|
|
35
|
+
* Notifies the Cross manager of child process events (exit/error) via the host's emitter.
|
|
36
|
+
*/
|
|
18
37
|
export declare class CrossProcess {
|
|
38
|
+
/** Event emitter */
|
|
19
39
|
emitter: EventEmitter;
|
|
40
|
+
/** Host (Cross manager), used to notify process events */
|
|
20
41
|
host: CrossHost;
|
|
42
|
+
/** Child process object returned by cross-spawn */
|
|
21
43
|
child: ReturnType<typeof crossSpawn> | undefined;
|
|
44
|
+
/** Child process PID */
|
|
22
45
|
pid: number;
|
|
46
|
+
/** Allocated port number */
|
|
23
47
|
port: number;
|
|
48
|
+
/** Unique service name (may be rewritten by Cross manager to avoid conflicts) */
|
|
24
49
|
name: string;
|
|
50
|
+
/** Service configuration */
|
|
25
51
|
config: CrossTargetConfig;
|
|
26
52
|
constructor(host: CrossHost, opt?: CrossProcessOptions);
|
|
27
53
|
/**
|
|
28
|
-
*
|
|
54
|
+
* Initialize child process
|
|
55
|
+
*
|
|
56
|
+
* Execution flow:
|
|
57
|
+
* 1. Save configuration and port
|
|
58
|
+
* 2. Resolve executable file path (handle cmd/directory configuration and platform differences)
|
|
59
|
+
* 3. Set standard output mode (inherit in dev environment, ignore in production)
|
|
60
|
+
* 4. Start child process using cross-spawn
|
|
61
|
+
* 5. Listen for exit and error events
|
|
29
62
|
*/
|
|
30
63
|
_init(options?: CrossProcessOptions): void;
|
|
31
64
|
/**
|
|
32
|
-
*
|
|
65
|
+
* Terminate child process
|
|
66
|
+
*
|
|
67
|
+
* First sends SIGINT signal for graceful exit, then sends SIGKILL for forced termination if it fails.
|
|
68
|
+
* If the process still hasn't exited after timeout, triggers _exitElectron as a safety net.
|
|
69
|
+
*
|
|
70
|
+
* @param timeout - Timeout for waiting exit (milliseconds)
|
|
33
71
|
*/
|
|
34
72
|
kill(timeout?: number): void;
|
|
73
|
+
/**
|
|
74
|
+
* Get the service URL of the child process
|
|
75
|
+
*
|
|
76
|
+
* Parses hostname and ssl flag from startup arguments, constructs HTTP/HTTPS URL.
|
|
77
|
+
* Outputs warning when port is 0 (service may not have bound port correctly).
|
|
78
|
+
*
|
|
79
|
+
* @returns Service URL, e.g., http://127.0.0.1:7070
|
|
80
|
+
*/
|
|
35
81
|
getUrl(): string;
|
|
82
|
+
/**
|
|
83
|
+
* Get key-value object of startup arguments
|
|
84
|
+
*
|
|
85
|
+
* @returns Parsed arguments object
|
|
86
|
+
*/
|
|
36
87
|
getArgsObj(): Record<string, unknown>;
|
|
88
|
+
/**
|
|
89
|
+
* Set port number
|
|
90
|
+
*
|
|
91
|
+
* @param port - Port number (strings will be converted to numbers)
|
|
92
|
+
*/
|
|
37
93
|
setPort(port: string | number): void;
|
|
94
|
+
/**
|
|
95
|
+
* Generate unique ID
|
|
96
|
+
*
|
|
97
|
+
* @returns Unique identifier in the format 'node:{pid}:{randomString}'
|
|
98
|
+
*/
|
|
38
99
|
_generateId(): string;
|
|
39
100
|
/**
|
|
40
|
-
* exit
|
|
101
|
+
* Trigger Electron main process exit when child process exits
|
|
102
|
+
*
|
|
103
|
+
* Only effective when appExit=true is configured, ensuring the main process also exits when the child process crashes.
|
|
104
|
+
*
|
|
105
|
+
* @param timeout - Delayed exit time (milliseconds), waiting for resource release
|
|
41
106
|
*/
|
|
42
107
|
_exitElectron(timeout?: number): void;
|
|
43
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* CrossHost interface
|
|
111
|
+
*
|
|
112
|
+
* CrossProcess communicates with the host (Cross manager) through this interface,
|
|
113
|
+
* sending child process exit and error events.
|
|
114
|
+
*/
|
|
44
115
|
export interface CrossHost {
|
|
45
116
|
emitter: EventEmitter | undefined;
|
|
46
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crossProcess.d.ts","sourceRoot":"","sources":["../../../src/cross/crossProcess.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,UAAU,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"crossProcess.d.ts","sourceRoot":"","sources":["../../../src/cross/crossProcess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,UAAU,MAAM,aAAa,CAAC;AASrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElC,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,oBAAoB;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,0DAA0D;IAC1D,IAAI,EAAE,SAAS,CAAC;IAChB,mDAAmD;IACnD,KAAK,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,SAAS,CAAC;IACjD,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,MAAM,EAAE,iBAAiB,CAAC;gBAEd,IAAI,EAAE,SAAS,EAAE,GAAG,GAAE,mBAA2D;IAW7F;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO,GAAE,mBAA2D,GAAG,IAAI;IAuFjF;;;;;;;OAOG;IACH,IAAI,CAAC,OAAO,SAAO,GAAG,IAAI;IAkB1B;;;;;;;OAOG;IACH,MAAM,IAAI,MAAM;IAgBhB;;;;OAIG;IACH,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAKrC;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIpC;;;;OAIG;IACH,WAAW,IAAI,MAAM;IAKrB;;;;;;OAMG;IACH,aAAa,CAAC,OAAO,SAAO,GAAG,IAAI;CAOpC;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;CACnC"}
|