@simplysm/sd-cli 12.16.27 → 13.0.0-beta.12
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/README.md +529 -0
- package/dist/builders/BaseBuilder.js +86 -0
- package/dist/builders/BaseBuilder.js.map +7 -0
- package/dist/builders/DtsBuilder.js +109 -0
- package/dist/builders/DtsBuilder.js.map +7 -0
- package/dist/builders/LibraryBuilder.js +122 -0
- package/dist/builders/LibraryBuilder.js.map +7 -0
- package/dist/builders/index.js +9 -0
- package/dist/builders/index.js.map +7 -0
- package/dist/builders/types.js +1 -0
- package/dist/builders/types.js.map +7 -0
- package/dist/capacitor/capacitor.js +619 -0
- package/dist/capacitor/capacitor.js.map +7 -0
- package/dist/commands/add-client.js +83 -0
- package/dist/commands/add-client.js.map +7 -0
- package/dist/commands/add-server.js +91 -0
- package/dist/commands/add-server.js.map +7 -0
- package/dist/commands/build.js +310 -0
- package/dist/commands/build.js.map +7 -0
- package/dist/commands/dev.js +426 -0
- package/dist/commands/dev.js.map +7 -0
- package/dist/commands/device.js +107 -0
- package/dist/commands/device.js.map +7 -0
- package/dist/commands/init.js +58 -0
- package/dist/commands/init.js.map +7 -0
- package/dist/commands/lint.js +138 -0
- package/dist/commands/lint.js.map +7 -0
- package/dist/commands/publish.js +401 -0
- package/dist/commands/publish.js.map +7 -0
- package/dist/commands/typecheck.js +197 -0
- package/dist/commands/typecheck.js.map +7 -0
- package/dist/commands/watch.js +19 -0
- package/dist/commands/watch.js.map +7 -0
- package/dist/core-common/src/common.types.d.ts +74 -0
- package/dist/core-common/src/common.types.d.ts.map +1 -0
- package/dist/core-common/src/env.d.ts +6 -0
- package/dist/core-common/src/env.d.ts.map +1 -0
- package/dist/core-common/src/errors/argument-error.d.ts +25 -0
- package/dist/core-common/src/errors/argument-error.d.ts.map +1 -0
- package/dist/core-common/src/errors/not-implemented-error.d.ts +29 -0
- package/dist/core-common/src/errors/not-implemented-error.d.ts.map +1 -0
- package/dist/core-common/src/errors/sd-error.d.ts +27 -0
- package/dist/core-common/src/errors/sd-error.d.ts.map +1 -0
- package/dist/core-common/src/errors/timeout-error.d.ts +31 -0
- package/dist/core-common/src/errors/timeout-error.d.ts.map +1 -0
- package/dist/core-common/src/extensions/arr-ext.d.ts +15 -0
- package/dist/core-common/src/extensions/arr-ext.d.ts.map +1 -0
- package/dist/core-common/src/extensions/arr-ext.helpers.d.ts +19 -0
- package/dist/core-common/src/extensions/arr-ext.helpers.d.ts.map +1 -0
- package/dist/core-common/src/extensions/arr-ext.types.d.ts +215 -0
- package/dist/core-common/src/extensions/arr-ext.types.d.ts.map +1 -0
- package/dist/core-common/src/extensions/map-ext.d.ts +57 -0
- package/dist/core-common/src/extensions/map-ext.d.ts.map +1 -0
- package/dist/core-common/src/extensions/set-ext.d.ts +36 -0
- package/dist/core-common/src/extensions/set-ext.d.ts.map +1 -0
- package/dist/core-common/src/features/debounce-queue.d.ts +53 -0
- package/dist/core-common/src/features/debounce-queue.d.ts.map +1 -0
- package/dist/core-common/src/features/event-emitter.d.ts +66 -0
- package/dist/core-common/src/features/event-emitter.d.ts.map +1 -0
- package/dist/core-common/src/features/serial-queue.d.ts +47 -0
- package/dist/core-common/src/features/serial-queue.d.ts.map +1 -0
- package/dist/core-common/src/index.d.ts +32 -0
- package/dist/core-common/src/index.d.ts.map +1 -0
- package/dist/core-common/src/types/date-only.d.ts +152 -0
- package/dist/core-common/src/types/date-only.d.ts.map +1 -0
- package/dist/core-common/src/types/date-time.d.ts +96 -0
- package/dist/core-common/src/types/date-time.d.ts.map +1 -0
- package/dist/core-common/src/types/lazy-gc-map.d.ts +80 -0
- package/dist/core-common/src/types/lazy-gc-map.d.ts.map +1 -0
- package/dist/core-common/src/types/time.d.ts +68 -0
- package/dist/core-common/src/types/time.d.ts.map +1 -0
- package/dist/core-common/src/types/uuid.d.ts +35 -0
- package/dist/core-common/src/types/uuid.d.ts.map +1 -0
- package/dist/core-common/src/utils/bytes.d.ts +51 -0
- package/dist/core-common/src/utils/bytes.d.ts.map +1 -0
- package/dist/core-common/src/utils/date-format.d.ts +90 -0
- package/dist/core-common/src/utils/date-format.d.ts.map +1 -0
- package/dist/core-common/src/utils/json.d.ts +34 -0
- package/dist/core-common/src/utils/json.d.ts.map +1 -0
- package/dist/core-common/src/utils/num.d.ts +60 -0
- package/dist/core-common/src/utils/num.d.ts.map +1 -0
- package/dist/core-common/src/utils/obj.d.ts +258 -0
- package/dist/core-common/src/utils/obj.d.ts.map +1 -0
- package/dist/core-common/src/utils/path.d.ts +23 -0
- package/dist/core-common/src/utils/path.d.ts.map +1 -0
- package/dist/core-common/src/utils/primitive.d.ts +18 -0
- package/dist/core-common/src/utils/primitive.d.ts.map +1 -0
- package/dist/core-common/src/utils/str.d.ts +103 -0
- package/dist/core-common/src/utils/str.d.ts.map +1 -0
- package/dist/core-common/src/utils/template-strings.d.ts +84 -0
- package/dist/core-common/src/utils/template-strings.d.ts.map +1 -0
- package/dist/core-common/src/utils/transferable.d.ts +47 -0
- package/dist/core-common/src/utils/transferable.d.ts.map +1 -0
- package/dist/core-common/src/utils/wait.d.ts +19 -0
- package/dist/core-common/src/utils/wait.d.ts.map +1 -0
- package/dist/core-common/src/utils/xml.d.ts +36 -0
- package/dist/core-common/src/utils/xml.d.ts.map +1 -0
- package/dist/core-common/src/zip/sd-zip.d.ts +80 -0
- package/dist/core-common/src/zip/sd-zip.d.ts.map +1 -0
- package/dist/core-node/src/features/fs-watcher.d.ts +70 -0
- package/dist/core-node/src/features/fs-watcher.d.ts.map +1 -0
- package/dist/core-node/src/index.d.ts +7 -0
- package/dist/core-node/src/index.d.ts.map +1 -0
- package/dist/core-node/src/utils/fs.d.ts +197 -0
- package/dist/core-node/src/utils/fs.d.ts.map +1 -0
- package/dist/core-node/src/utils/path.d.ts +75 -0
- package/dist/core-node/src/utils/path.d.ts.map +1 -0
- package/dist/core-node/src/worker/create-worker.d.ts +23 -0
- package/dist/core-node/src/worker/create-worker.d.ts.map +1 -0
- package/dist/core-node/src/worker/types.d.ts +67 -0
- package/dist/core-node/src/worker/types.d.ts.map +1 -0
- package/dist/core-node/src/worker/worker.d.ts +27 -0
- package/dist/core-node/src/worker/worker.d.ts.map +1 -0
- package/dist/electron/electron.js +242 -0
- package/dist/electron/electron.js.map +7 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +7 -0
- package/dist/infra/ResultCollector.js +59 -0
- package/dist/infra/ResultCollector.js.map +7 -0
- package/dist/infra/SignalHandler.js +44 -0
- package/dist/infra/SignalHandler.js.map +7 -0
- package/dist/infra/WorkerManager.js +56 -0
- package/dist/infra/WorkerManager.js.map +7 -0
- package/dist/infra/index.js +9 -0
- package/dist/infra/index.js.map +7 -0
- package/dist/orchestrators/WatchOrchestrator.js +135 -0
- package/dist/orchestrators/WatchOrchestrator.js.map +7 -0
- package/dist/orchestrators/index.js +5 -0
- package/dist/orchestrators/index.js.map +7 -0
- package/dist/sd-cli/src/builders/BaseBuilder.d.ts +77 -0
- package/dist/sd-cli/src/builders/BaseBuilder.d.ts.map +1 -0
- package/dist/sd-cli/src/builders/DtsBuilder.d.ts +22 -0
- package/dist/sd-cli/src/builders/DtsBuilder.d.ts.map +1 -0
- package/dist/sd-cli/src/builders/LibraryBuilder.d.ts +22 -0
- package/dist/sd-cli/src/builders/LibraryBuilder.d.ts.map +1 -0
- package/dist/sd-cli/src/builders/index.d.ts +5 -0
- package/dist/sd-cli/src/builders/index.d.ts.map +1 -0
- package/dist/sd-cli/src/builders/types.d.ts +49 -0
- package/dist/sd-cli/src/builders/types.d.ts.map +1 -0
- package/dist/sd-cli/src/capacitor/capacitor.d.ts +131 -0
- package/dist/sd-cli/src/capacitor/capacitor.d.ts.map +1 -0
- package/dist/sd-cli/src/commands/add-client.d.ts +18 -0
- package/dist/sd-cli/src/commands/add-client.d.ts.map +1 -0
- package/dist/sd-cli/src/commands/add-server.d.ts +18 -0
- package/dist/sd-cli/src/commands/add-server.d.ts.map +1 -0
- package/dist/sd-cli/src/commands/build.d.ts +25 -0
- package/dist/sd-cli/src/commands/build.d.ts.map +1 -0
- package/dist/sd-cli/src/commands/dev.d.ts +23 -0
- package/dist/sd-cli/src/commands/dev.d.ts.map +1 -0
- package/dist/sd-cli/src/commands/device.d.ts +22 -0
- package/dist/sd-cli/src/commands/device.d.ts.map +1 -0
- package/dist/sd-cli/src/commands/init.d.ts +15 -0
- package/dist/sd-cli/src/commands/init.d.ts.map +1 -0
- package/dist/sd-cli/src/commands/lint.d.ts +31 -0
- package/dist/sd-cli/src/commands/lint.d.ts.map +1 -0
- package/dist/sd-cli/src/commands/publish.d.ts +27 -0
- package/dist/sd-cli/src/commands/publish.d.ts.map +1 -0
- package/dist/sd-cli/src/commands/typecheck.d.ts +39 -0
- package/dist/sd-cli/src/commands/typecheck.d.ts.map +1 -0
- package/dist/sd-cli/src/commands/watch.d.ts +20 -0
- package/dist/sd-cli/src/commands/watch.d.ts.map +1 -0
- package/dist/sd-cli/src/electron/electron.d.ts +79 -0
- package/dist/sd-cli/src/electron/electron.d.ts.map +1 -0
- package/dist/sd-cli/src/index.d.ts +2 -0
- package/dist/sd-cli/src/index.d.ts.map +1 -0
- package/dist/sd-cli/src/infra/ResultCollector.d.ts +56 -0
- package/dist/sd-cli/src/infra/ResultCollector.d.ts.map +1 -0
- package/dist/sd-cli/src/infra/SignalHandler.d.ts +26 -0
- package/dist/sd-cli/src/infra/SignalHandler.d.ts.map +1 -0
- package/dist/sd-cli/src/infra/WorkerManager.d.ts +40 -0
- package/dist/sd-cli/src/infra/WorkerManager.d.ts.map +1 -0
- package/dist/sd-cli/src/infra/index.d.ts +4 -0
- package/dist/sd-cli/src/infra/index.d.ts.map +1 -0
- package/dist/sd-cli/src/orchestrators/WatchOrchestrator.d.ts +48 -0
- package/dist/sd-cli/src/orchestrators/WatchOrchestrator.d.ts.map +1 -0
- package/dist/sd-cli/src/orchestrators/index.d.ts +2 -0
- package/dist/sd-cli/src/orchestrators/index.d.ts.map +1 -0
- package/dist/sd-cli/src/sd-cli.d.ts +9 -0
- package/dist/sd-cli/src/sd-cli.d.ts.map +1 -0
- package/dist/sd-cli/src/sd-config.types.d.ts +222 -0
- package/dist/sd-cli/src/sd-config.types.d.ts.map +1 -0
- package/dist/sd-cli/src/utils/build-env.d.ts +5 -0
- package/dist/sd-cli/src/utils/build-env.d.ts.map +1 -0
- package/dist/sd-cli/src/utils/config-editor.d.ts +17 -0
- package/dist/sd-cli/src/utils/config-editor.d.ts.map +1 -0
- package/dist/sd-cli/src/utils/esbuild-config.d.ts +49 -0
- package/dist/sd-cli/src/utils/esbuild-config.d.ts.map +1 -0
- package/dist/sd-cli/src/utils/listr-manager.d.ts +37 -0
- package/dist/sd-cli/src/utils/listr-manager.d.ts.map +1 -0
- package/dist/sd-cli/src/utils/output-utils.d.ts +21 -0
- package/dist/sd-cli/src/utils/output-utils.d.ts.map +1 -0
- package/dist/sd-cli/src/utils/package-utils.d.ts +29 -0
- package/dist/sd-cli/src/utils/package-utils.d.ts.map +1 -0
- package/dist/sd-cli/src/utils/sd-config.d.ts +12 -0
- package/dist/sd-cli/src/utils/sd-config.d.ts.map +1 -0
- package/dist/sd-cli/src/utils/spawn.d.ts +26 -0
- package/dist/sd-cli/src/utils/spawn.d.ts.map +1 -0
- package/dist/sd-cli/src/utils/tailwind-config-deps.d.ts +8 -0
- package/dist/sd-cli/src/utils/tailwind-config-deps.d.ts.map +1 -0
- package/dist/sd-cli/src/utils/template.d.ts +14 -0
- package/dist/sd-cli/src/utils/template.d.ts.map +1 -0
- package/dist/sd-cli/src/utils/tsconfig.d.ts +35 -0
- package/dist/sd-cli/src/utils/tsconfig.d.ts.map +1 -0
- package/dist/sd-cli/src/utils/typecheck-serialization.d.ts +28 -0
- package/dist/sd-cli/src/utils/typecheck-serialization.d.ts.map +1 -0
- package/dist/sd-cli/src/utils/vite-config.d.ts +25 -0
- package/dist/sd-cli/src/utils/vite-config.d.ts.map +1 -0
- package/dist/sd-cli/src/utils/worker-events.d.ts +53 -0
- package/dist/sd-cli/src/utils/worker-events.d.ts.map +1 -0
- package/dist/sd-cli/src/workers/client.worker.d.ts +82 -0
- package/dist/sd-cli/src/workers/client.worker.d.ts.map +1 -0
- package/dist/sd-cli/src/workers/dts.worker.d.ts +73 -0
- package/dist/sd-cli/src/workers/dts.worker.d.ts.map +1 -0
- package/dist/sd-cli/src/workers/library.worker.d.ts +73 -0
- package/dist/sd-cli/src/workers/library.worker.d.ts.map +1 -0
- package/dist/sd-cli/src/workers/server-runtime.worker.d.ts +40 -0
- package/dist/sd-cli/src/workers/server-runtime.worker.d.ts.map +1 -0
- package/dist/sd-cli/src/workers/server.worker.d.ts +76 -0
- package/dist/sd-cli/src/workers/server.worker.d.ts.map +1 -0
- package/dist/sd-cli.js +239 -76
- package/dist/sd-cli.js.map +7 -0
- package/dist/sd-config.types.js +1 -0
- package/dist/sd-config.types.js.map +7 -0
- package/dist/storage/src/clients/ftp-storage-client.d.ts +56 -0
- package/dist/storage/src/clients/ftp-storage-client.d.ts.map +1 -0
- package/dist/storage/src/clients/sftp-storage-client.d.ts +48 -0
- package/dist/storage/src/clients/sftp-storage-client.d.ts.map +1 -0
- package/dist/storage/src/index.d.ts +7 -0
- package/dist/storage/src/index.d.ts.map +1 -0
- package/dist/storage/src/storage-factory.d.ts +20 -0
- package/dist/storage/src/storage-factory.d.ts.map +1 -0
- package/dist/storage/src/types/storage-conn-config.d.ts +7 -0
- package/dist/storage/src/types/storage-conn-config.d.ts.map +1 -0
- package/dist/storage/src/types/storage-type.d.ts +2 -0
- package/dist/storage/src/types/storage-type.d.ts.map +1 -0
- package/dist/storage/src/types/storage.d.ts +19 -0
- package/dist/storage/src/types/storage.d.ts.map +1 -0
- package/dist/utils/build-env.js +12 -0
- package/dist/utils/build-env.js.map +7 -0
- package/dist/utils/config-editor.js +77 -0
- package/dist/utils/config-editor.js.map +7 -0
- package/dist/utils/esbuild-config.js +44 -0
- package/dist/utils/esbuild-config.js.map +7 -0
- package/dist/utils/listr-manager.js +59 -0
- package/dist/utils/listr-manager.js.map +7 -0
- package/dist/utils/output-utils.js +40 -0
- package/dist/utils/output-utils.js.map +7 -0
- package/dist/utils/package-utils.js +28 -0
- package/dist/utils/package-utils.js.map +7 -0
- package/dist/utils/sd-config.js +24 -0
- package/dist/utils/sd-config.js.map +7 -0
- package/dist/utils/spawn.js +49 -0
- package/dist/utils/spawn.js.map +7 -0
- package/dist/utils/tailwind-config-deps.js +80 -0
- package/dist/utils/tailwind-config-deps.js.map +7 -0
- package/dist/utils/template.js +28 -0
- package/dist/utils/template.js.map +7 -0
- package/dist/utils/tsconfig.js +62 -0
- package/dist/utils/tsconfig.js.map +7 -0
- package/dist/utils/typecheck-serialization.js +46 -0
- package/dist/utils/typecheck-serialization.js.map +7 -0
- package/dist/utils/vite-config.js +108 -0
- package/dist/utils/vite-config.js.map +7 -0
- package/dist/utils/worker-events.js +38 -0
- package/dist/utils/worker-events.js.map +7 -0
- package/dist/workers/client.worker.js +94 -0
- package/dist/workers/client.worker.js.map +7 -0
- package/dist/workers/dts.worker.js +210 -0
- package/dist/workers/dts.worker.js.map +7 -0
- package/dist/workers/library.worker.js +118 -0
- package/dist/workers/library.worker.js.map +7 -0
- package/dist/workers/server-runtime.worker.js +85 -0
- package/dist/workers/server-runtime.worker.js.map +7 -0
- package/dist/workers/server.worker.js +114 -42
- package/dist/workers/server.worker.js.map +7 -0
- package/package.json +32 -29
- package/dist/entry/SdCliAiCommand.d.ts +0 -3
- package/dist/entry/SdCliAiCommand.js +0 -91
- package/dist/entry/SdCliCapacitor.d.ts +0 -35
- package/dist/entry/SdCliCapacitor.js +0 -565
- package/dist/entry/SdCliCordova.d.ts +0 -49
- package/dist/entry/SdCliCordova.js +0 -394
- package/dist/entry/SdCliElectron.d.ts +0 -22
- package/dist/entry/SdCliElectron.js +0 -128
- package/dist/entry/SdCliLocalUpdate.d.ts +0 -11
- package/dist/entry/SdCliLocalUpdate.js +0 -83
- package/dist/entry/SdCliPostInstall.d.ts +0 -3
- package/dist/entry/SdCliPostInstall.js +0 -48
- package/dist/entry/SdCliProject.d.ts +0 -24
- package/dist/entry/SdCliProject.js +0 -336
- package/dist/pkg-builders/SdBuildRunnerBase.d.ts +0 -14
- package/dist/pkg-builders/SdBuildRunnerBase.js +0 -22
- package/dist/pkg-builders/SdProjectBuildRunner.d.ts +0 -25
- package/dist/pkg-builders/SdProjectBuildRunner.js +0 -264
- package/dist/pkg-builders/client/SdCliNgRoutesFileGenerator.d.ts +0 -9
- package/dist/pkg-builders/client/SdCliNgRoutesFileGenerator.js +0 -89
- package/dist/pkg-builders/client/SdClientBuildRunner.d.ts +0 -10
- package/dist/pkg-builders/client/SdClientBuildRunner.js +0 -113
- package/dist/pkg-builders/client/SdNgBundler.d.ts +0 -38
- package/dist/pkg-builders/client/SdNgBundler.js +0 -525
- package/dist/pkg-builders/client/SdNgBundlerContext.d.ts +0 -25
- package/dist/pkg-builders/client/SdNgBundlerContext.js +0 -104
- package/dist/pkg-builders/client/createSdNgPlugin.d.ts +0 -5
- package/dist/pkg-builders/client/createSdNgPlugin.js +0 -133
- package/dist/pkg-builders/commons/SdWorkerPathPlugin.d.ts +0 -2
- package/dist/pkg-builders/commons/SdWorkerPathPlugin.js +0 -91
- package/dist/pkg-builders/lib/SdCliDbContextFileGenerator.d.ts +0 -9
- package/dist/pkg-builders/lib/SdCliDbContextFileGenerator.js +0 -138
- package/dist/pkg-builders/lib/SdCliIndexFileGenerator.d.ts +0 -11
- package/dist/pkg-builders/lib/SdCliIndexFileGenerator.js +0 -79
- package/dist/pkg-builders/lib/SdJsLibBuildRunner.d.ts +0 -8
- package/dist/pkg-builders/lib/SdJsLibBuildRunner.js +0 -44
- package/dist/pkg-builders/lib/SdTsLibBuildRunner.d.ts +0 -8
- package/dist/pkg-builders/lib/SdTsLibBuildRunner.js +0 -34
- package/dist/pkg-builders/lib/SdTsLibBuilder.d.ts +0 -10
- package/dist/pkg-builders/lib/SdTsLibBuilder.js +0 -54
- package/dist/pkg-builders/server/SdServerBuildRunner.d.ts +0 -10
- package/dist/pkg-builders/server/SdServerBuildRunner.js +0 -228
- package/dist/pkg-builders/server/SdServerBundler.d.ts +0 -17
- package/dist/pkg-builders/server/SdServerBundler.js +0 -174
- package/dist/pkg-builders/server/createSdServerPlugin.d.ts +0 -5
- package/dist/pkg-builders/server/createSdServerPlugin.js +0 -53
- package/dist/sd-cli-entry.d.ts +0 -2
- package/dist/sd-cli-entry.js +0 -230
- package/dist/sd-cli.d.ts +0 -2
- package/dist/ts-compiler/ScopePathSet.d.ts +0 -7
- package/dist/ts-compiler/ScopePathSet.js +0 -12
- package/dist/ts-compiler/SdDepAnalyzer.d.ts +0 -15
- package/dist/ts-compiler/SdDepAnalyzer.js +0 -299
- package/dist/ts-compiler/SdDepCache.d.ts +0 -77
- package/dist/ts-compiler/SdDepCache.js +0 -248
- package/dist/ts-compiler/SdStyleBundler.d.ts +0 -23
- package/dist/ts-compiler/SdStyleBundler.js +0 -131
- package/dist/ts-compiler/SdTsCompiler.d.ts +0 -29
- package/dist/ts-compiler/SdTsCompiler.js +0 -420
- package/dist/types/build/ISdBuildMessage.d.ts +0 -10
- package/dist/types/build/ISdBuildMessage.js +0 -1
- package/dist/types/build/ISdBuildResult.d.ts +0 -8
- package/dist/types/build/ISdBuildResult.js +0 -1
- package/dist/types/build/ISdTsCompilerOptions.d.ts +0 -10
- package/dist/types/build/ISdTsCompilerOptions.js +0 -1
- package/dist/types/build/ISdTsCompilerResult.d.ts +0 -14
- package/dist/types/build/ISdTsCompilerResult.js +0 -1
- package/dist/types/build/TStylesheetBundlingResult.d.ts +0 -12
- package/dist/types/build/TStylesheetBundlingResult.js +0 -1
- package/dist/types/common-config/INpmConfig.d.ts +0 -17
- package/dist/types/common-config/INpmConfig.js +0 -1
- package/dist/types/common-config/ITsConfig.d.ts +0 -7
- package/dist/types/common-config/ITsConfig.js +0 -1
- package/dist/types/config/ISdProjectConfig.d.ts +0 -144
- package/dist/types/config/ISdProjectConfig.js +0 -1
- package/dist/types/plugin/ISdCliNgPluginResultCache.d.ts +0 -8
- package/dist/types/plugin/ISdCliNgPluginResultCache.js +0 -1
- package/dist/types/plugin/ISdCliServerPluginResultCache.d.ts +0 -8
- package/dist/types/plugin/ISdCliServerPluginResultCache.js +0 -1
- package/dist/types/worker/ISdBuildRunnerWorkerType.d.ts +0 -20
- package/dist/types/worker/ISdBuildRunnerWorkerType.js +0 -1
- package/dist/types/worker/IServerWorkerType.d.ts +0 -17
- package/dist/types/worker/IServerWorkerType.js +0 -1
- package/dist/utils/SdCliConvertMessageUtils.d.ts +0 -21
- package/dist/utils/SdCliConvertMessageUtils.js +0 -138
- package/dist/utils/SdCliPerformanceTimer.d.ts +0 -10
- package/dist/utils/SdCliPerformanceTimer.js +0 -50
- package/dist/utils/loadProjConfAsync.d.ts +0 -5
- package/dist/utils/loadProjConfAsync.js +0 -7
- package/dist/workers/build-runner.worker.d.ts +0 -1
- package/dist/workers/build-runner.worker.js +0 -37
- package/dist/workers/server.worker.d.ts +0 -1
- package/lib/cordova-entry.js +0 -29
- package/src/entry/SdCliAiCommand.ts +0 -105
- package/src/entry/SdCliCapacitor.ts +0 -760
- package/src/entry/SdCliCordova.ts +0 -550
- package/src/entry/SdCliElectron.ts +0 -197
- package/src/entry/SdCliLocalUpdate.ts +0 -106
- package/src/entry/SdCliPostInstall.ts +0 -51
- package/src/entry/SdCliProject.ts +0 -427
- package/src/pkg-builders/SdBuildRunnerBase.ts +0 -36
- package/src/pkg-builders/SdProjectBuildRunner.ts +0 -398
- package/src/pkg-builders/client/SdCliNgRoutesFileGenerator.ts +0 -112
- package/src/pkg-builders/client/SdClientBuildRunner.ts +0 -156
- package/src/pkg-builders/client/SdNgBundler.ts +0 -666
- package/src/pkg-builders/client/SdNgBundlerContext.ts +0 -138
- package/src/pkg-builders/client/createSdNgPlugin.ts +0 -186
- package/src/pkg-builders/commons/SdWorkerPathPlugin.ts +0 -117
- package/src/pkg-builders/lib/SdCliDbContextFileGenerator.ts +0 -177
- package/src/pkg-builders/lib/SdCliIndexFileGenerator.ts +0 -94
- package/src/pkg-builders/lib/SdJsLibBuildRunner.ts +0 -59
- package/src/pkg-builders/lib/SdTsLibBuildRunner.ts +0 -47
- package/src/pkg-builders/lib/SdTsLibBuilder.ts +0 -71
- package/src/pkg-builders/server/SdServerBuildRunner.ts +0 -299
- package/src/pkg-builders/server/SdServerBundler.ts +0 -208
- package/src/pkg-builders/server/createSdServerPlugin.ts +0 -80
- package/src/sd-cli-entry.ts +0 -292
- package/src/sd-cli.ts +0 -105
- package/src/ts-compiler/ScopePathSet.ts +0 -17
- package/src/ts-compiler/SdDepAnalyzer.ts +0 -372
- package/src/ts-compiler/SdDepCache.ts +0 -304
- package/src/ts-compiler/SdStyleBundler.ts +0 -169
- package/src/ts-compiler/SdTsCompiler.ts +0 -638
- package/src/types/build/ISdBuildMessage.ts +0 -11
- package/src/types/build/ISdBuildResult.ts +0 -9
- package/src/types/build/ISdTsCompilerOptions.ts +0 -11
- package/src/types/build/ISdTsCompilerResult.ts +0 -12
- package/src/types/build/TStylesheetBundlingResult.ts +0 -15
- package/src/types/common-config/INpmConfig.ts +0 -24
- package/src/types/common-config/ITsConfig.ts +0 -5
- package/src/types/config/ISdProjectConfig.ts +0 -174
- package/src/types/plugin/ISdCliNgPluginResultCache.ts +0 -9
- package/src/types/plugin/ISdCliServerPluginResultCache.ts +0 -9
- package/src/types/worker/ISdBuildRunnerWorkerType.ts +0 -19
- package/src/types/worker/IServerWorkerType.ts +0 -8
- package/src/utils/SdCliConvertMessageUtils.ts +0 -180
- package/src/utils/SdCliPerformanceTimer.ts +0 -62
- package/src/utils/loadProjConfAsync.ts +0 -16
- package/src/workers/build-runner.worker.ts +0 -54
- package/src/workers/server.worker.ts +0 -54
- package/tests/deps/sd-dependency-analyzer.spec.ts +0 -241
- package/tests/deps/sd-dependency-cache.spec.ts +0 -153
- package/tsconfig.json +0 -8
- package/tsconfig.test.json +0 -8
- package/vitest.config.js +0 -15
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import os from "os";
|
|
4
|
+
import { Listr } from "listr2";
|
|
5
|
+
import { pathPosix, pathFilterByTargets, Worker } from "@simplysm/core-node";
|
|
6
|
+
import "@simplysm/core-common";
|
|
7
|
+
import { consola, LogLevels } from "consola";
|
|
8
|
+
import { parseRootTsconfig } from "../utils/tsconfig";
|
|
9
|
+
import { loadSdConfig } from "../utils/sd-config";
|
|
10
|
+
import { deserializeDiagnostic } from "../utils/typecheck-serialization";
|
|
11
|
+
const PATH_PATTERNS = {
|
|
12
|
+
/** packages/{pkg}/... */
|
|
13
|
+
PACKAGE: /^packages\/([^/]+)\//
|
|
14
|
+
};
|
|
15
|
+
function toTypecheckEnvs(target) {
|
|
16
|
+
if (target === "node") return ["node"];
|
|
17
|
+
if (target === "browser" || target === "client") return ["browser"];
|
|
18
|
+
return ["node", "browser"];
|
|
19
|
+
}
|
|
20
|
+
function extractPackages(fileNames, cwd, config) {
|
|
21
|
+
const packages = /* @__PURE__ */ new Map();
|
|
22
|
+
for (const fileName of fileNames) {
|
|
23
|
+
const relativePath = pathPosix(path.relative(cwd, fileName));
|
|
24
|
+
const packageMatch = relativePath.match(PATH_PATTERNS.PACKAGE);
|
|
25
|
+
if (packageMatch) {
|
|
26
|
+
const pkgName = packageMatch[1];
|
|
27
|
+
if (config.packages[pkgName]?.target === "scripts") continue;
|
|
28
|
+
if (!packages.has(pkgName)) {
|
|
29
|
+
packages.set(pkgName, {
|
|
30
|
+
name: pkgName,
|
|
31
|
+
dir: path.resolve(cwd, "packages", pkgName),
|
|
32
|
+
envs: toTypecheckEnvs(config.packages[pkgName]?.target)
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return packages;
|
|
38
|
+
}
|
|
39
|
+
function createTypecheckTasks(packages, cwd) {
|
|
40
|
+
const tasks = [];
|
|
41
|
+
for (const info of packages.values()) {
|
|
42
|
+
for (const env of info.envs) {
|
|
43
|
+
const envSuffix = info.envs.length > 1 ? ` [${env}]` : "";
|
|
44
|
+
tasks.push({
|
|
45
|
+
displayName: `\uD328\uD0A4\uC9C0: ${info.name}${envSuffix}`,
|
|
46
|
+
buildInfo: {
|
|
47
|
+
name: info.name,
|
|
48
|
+
cwd,
|
|
49
|
+
pkgDir: info.dir,
|
|
50
|
+
env,
|
|
51
|
+
emit: false
|
|
52
|
+
// 타입체크만 수행 (dts 생성 안 함)
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return tasks;
|
|
58
|
+
}
|
|
59
|
+
async function runTypecheck(options) {
|
|
60
|
+
const { targets } = options;
|
|
61
|
+
const cwd = process.cwd();
|
|
62
|
+
const logger = consola.withTag("sd:cli:typecheck");
|
|
63
|
+
logger.debug("\uD0C0\uC785\uCCB4\uD06C \uC2DC\uC791", { targets });
|
|
64
|
+
const formatHost = {
|
|
65
|
+
getCanonicalFileName: (f) => f,
|
|
66
|
+
getCurrentDirectory: () => cwd,
|
|
67
|
+
getNewLine: () => ts.sys.newLine
|
|
68
|
+
};
|
|
69
|
+
let parsedConfig;
|
|
70
|
+
try {
|
|
71
|
+
parsedConfig = parseRootTsconfig(cwd);
|
|
72
|
+
} catch (err) {
|
|
73
|
+
consola.error(err instanceof Error ? err.message : err);
|
|
74
|
+
process.exitCode = 1;
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
let sdConfig;
|
|
78
|
+
try {
|
|
79
|
+
sdConfig = await loadSdConfig({ cwd, dev: false, opt: options.options });
|
|
80
|
+
logger.debug("sd.config.ts \uB85C\uB4DC \uC644\uB8CC");
|
|
81
|
+
} catch (err) {
|
|
82
|
+
sdConfig = { packages: {} };
|
|
83
|
+
logger.debug("sd.config.ts \uB85C\uB4DC \uC2E4\uD328, \uAE30\uBCF8\uAC12 \uC0AC\uC6A9", err);
|
|
84
|
+
}
|
|
85
|
+
const fileNames = pathFilterByTargets(parsedConfig.fileNames, targets, cwd);
|
|
86
|
+
if (fileNames.length === 0) {
|
|
87
|
+
process.stdout.write("\u2714 \uD0C0\uC785\uCCB4\uD06C\uD560 \uD30C\uC77C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.\n");
|
|
88
|
+
logger.info("\uD0C0\uC785\uCCB4\uD06C\uD560 \uD30C\uC77C \uC5C6\uC74C");
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
const packages = extractPackages(fileNames, cwd, sdConfig);
|
|
92
|
+
logger.debug("\uD328\uD0A4\uC9C0 \uCD94\uCD9C \uC644\uB8CC", {
|
|
93
|
+
packageCount: packages.size,
|
|
94
|
+
packages: [...packages.keys()]
|
|
95
|
+
});
|
|
96
|
+
const tasks = createTypecheckTasks(packages, cwd);
|
|
97
|
+
if (tasks.length === 0) {
|
|
98
|
+
process.stdout.write("\u2714 \uD0C0\uC785\uCCB4\uD06C\uD560 \uD328\uD0A4\uC9C0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.\n");
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const maxConcurrency = Math.max(Math.floor(os.cpus().length * 7 / 8), 1);
|
|
102
|
+
const concurrency = Math.min(maxConcurrency, tasks.length);
|
|
103
|
+
logger.debug("\uB3D9\uC2DC\uC131 \uC124\uC815", { concurrency, maxConcurrency, taskCount: tasks.length });
|
|
104
|
+
const workerPath = path.resolve(import.meta.dirname, "../workers/dts.worker.ts");
|
|
105
|
+
const workers = [];
|
|
106
|
+
for (let i = 0; i < concurrency; i++) {
|
|
107
|
+
workers.push(Worker.create(workerPath));
|
|
108
|
+
}
|
|
109
|
+
const allResults = [];
|
|
110
|
+
const taskResolvers = /* @__PURE__ */ new Map();
|
|
111
|
+
try {
|
|
112
|
+
let taskIndex = 0;
|
|
113
|
+
async function runNextTask(worker) {
|
|
114
|
+
while (taskIndex < tasks.length) {
|
|
115
|
+
const currentIndex = taskIndex++;
|
|
116
|
+
const task = tasks[currentIndex];
|
|
117
|
+
try {
|
|
118
|
+
const result = await worker.buildDts(task.buildInfo);
|
|
119
|
+
allResults.push({ displayName: task.displayName, result });
|
|
120
|
+
} catch (err) {
|
|
121
|
+
logger.error(`Worker \uC624\uB958: ${task.displayName}`, {
|
|
122
|
+
error: err instanceof Error ? err.message : String(err)
|
|
123
|
+
});
|
|
124
|
+
allResults.push({
|
|
125
|
+
displayName: task.displayName,
|
|
126
|
+
result: {
|
|
127
|
+
success: false,
|
|
128
|
+
errors: [err instanceof Error ? err.message : String(err)],
|
|
129
|
+
diagnostics: [],
|
|
130
|
+
errorCount: 1,
|
|
131
|
+
warningCount: 0
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
} finally {
|
|
135
|
+
taskResolvers.get(task.displayName)?.();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
const listr = new Listr(
|
|
140
|
+
tasks.map((task) => ({
|
|
141
|
+
title: task.displayName,
|
|
142
|
+
task: () => new Promise((resolve) => {
|
|
143
|
+
taskResolvers.set(task.displayName, resolve);
|
|
144
|
+
})
|
|
145
|
+
})),
|
|
146
|
+
{
|
|
147
|
+
concurrent: concurrency,
|
|
148
|
+
exitOnError: false,
|
|
149
|
+
renderer: consola.level >= LogLevels.debug ? "verbose" : "default"
|
|
150
|
+
}
|
|
151
|
+
);
|
|
152
|
+
const workerPromises = workers.map((worker) => runNextTask(worker));
|
|
153
|
+
await Promise.all([listr.run(), ...workerPromises]);
|
|
154
|
+
} finally {
|
|
155
|
+
for (const resolver of taskResolvers.values()) {
|
|
156
|
+
resolver();
|
|
157
|
+
}
|
|
158
|
+
await Promise.all(workers.map((w) => w.terminate()));
|
|
159
|
+
}
|
|
160
|
+
const allDiagnostics = [];
|
|
161
|
+
let totalErrorCount = 0;
|
|
162
|
+
let totalWarningCount = 0;
|
|
163
|
+
const fileCache = /* @__PURE__ */ new Map();
|
|
164
|
+
for (const { result } of allResults) {
|
|
165
|
+
totalErrorCount += result.errorCount;
|
|
166
|
+
totalWarningCount += result.warningCount;
|
|
167
|
+
for (const serialized of result.diagnostics) {
|
|
168
|
+
allDiagnostics.push(deserializeDiagnostic(serialized, fileCache));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
if (totalErrorCount > 0) {
|
|
172
|
+
logger.error("\uD0C0\uC785\uCCB4\uD06C \uC5D0\uB7EC \uBC1C\uC0DD", {
|
|
173
|
+
errorCount: totalErrorCount,
|
|
174
|
+
warningCount: totalWarningCount
|
|
175
|
+
});
|
|
176
|
+
} else if (totalWarningCount > 0) {
|
|
177
|
+
logger.info("\uD0C0\uC785\uCCB4\uD06C \uC644\uB8CC (\uACBD\uACE0 \uC788\uC74C)", {
|
|
178
|
+
errorCount: totalErrorCount,
|
|
179
|
+
warningCount: totalWarningCount
|
|
180
|
+
});
|
|
181
|
+
} else {
|
|
182
|
+
logger.info("\uD0C0\uC785\uCCB4\uD06C \uC644\uB8CC", { errorCount: totalErrorCount, warningCount: totalWarningCount });
|
|
183
|
+
}
|
|
184
|
+
if (allDiagnostics.length > 0) {
|
|
185
|
+
const uniqueDiagnostics = ts.sortAndDeduplicateDiagnostics(allDiagnostics);
|
|
186
|
+
const message = ts.formatDiagnosticsWithColorAndContext(uniqueDiagnostics, formatHost);
|
|
187
|
+
process.stdout.write(message);
|
|
188
|
+
}
|
|
189
|
+
if (totalErrorCount > 0) {
|
|
190
|
+
process.exitCode = 1;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
export {
|
|
194
|
+
extractPackages,
|
|
195
|
+
runTypecheck
|
|
196
|
+
};
|
|
197
|
+
//# sourceMappingURL=typecheck.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/commands/typecheck.ts"],
|
|
4
|
+
"sourcesContent": ["import ts from \"typescript\";\nimport path from \"path\";\nimport os from \"os\";\nimport { Listr } from \"listr2\";\nimport { pathPosix, pathFilterByTargets, Worker, type WorkerProxy } from \"@simplysm/core-node\";\nimport \"@simplysm/core-common\";\nimport { consola, LogLevels } from \"consola\";\nimport type { SdConfig } from \"../sd-config.types\";\nimport { parseRootTsconfig, type TypecheckEnv } from \"../utils/tsconfig\";\nimport { loadSdConfig } from \"../utils/sd-config\";\nimport { deserializeDiagnostic } from \"../utils/typecheck-serialization\";\nimport type { DtsBuildInfo, DtsBuildResult } from \"../workers/dts.worker\";\nimport type * as DtsWorkerModule from \"../workers/dts.worker\";\n\n//#region Types\n\n/**\n * TypeScript \uD0C0\uC785\uCCB4\uD06C \uC635\uC158\n */\nexport interface TypecheckOptions {\n /** \uD0C0\uC785\uCCB4\uD06C\uD560 \uACBD\uB85C \uD544\uD130 (\uC608: `packages/core-common`). \uBE48 \uBC30\uC5F4\uC774\uBA74 tsconfig.json\uC5D0 \uC815\uC758\uB41C \uBAA8\uB4E0 \uD30C\uC77C \uB300\uC0C1 */\n targets: string[];\n /** sd.config.ts\uC5D0 \uC804\uB2EC\uD560 \uCD94\uAC00 \uC635\uC158 */\n options: string[];\n}\n\n// \uD328\uD0A4\uC9C0 \uC815\uBCF4 (packages/* \uD558\uC704 \uD30C\uC77C \uBD84\uB958\uC6A9)\ninterface PackageInfo {\n name: string;\n dir: string;\n envs: TypecheckEnv[]; // neutral\uC740 [\"node\", \"browser\"], \uB098\uBA38\uC9C0\uB294 \uB2E8\uC77C \uD658\uACBD\n}\n\n// \uD0C0\uC785\uCCB4\uD06C \uC791\uC5C5 \uC815\uBCF4 (\uB0B4\uBD80 \uC0AC\uC6A9)\ninterface TypecheckTask {\n /** \uC791\uC5C5 \uD45C\uC2DC \uC774\uB984 (\uC608: \"\uD328\uD0A4\uC9C0: core-common [node]\") */\n displayName: string;\n /** dts.worker\uC5D0 \uC804\uB2EC\uD560 \uC815\uBCF4 */\n buildInfo: DtsBuildInfo;\n}\n\n//#endregion\n\n//#region Utilities\n\n/** \uACBD\uB85C \uBD84\uB958\uC6A9 \uC815\uADDC\uD45C\uD604\uC2DD */\nconst PATH_PATTERNS = {\n /** packages/{pkg}/... */\n PACKAGE: /^packages\\/([^/]+)\\//,\n} as const;\n\n/**\n * \uD328\uD0A4\uC9C0 \uD0C0\uAC9F\uC744 \uD0C0\uC785\uCCB4\uD06C \uD658\uACBD \uBAA9\uB85D\uC73C\uB85C \uBCC0\uD658\uD569\uB2C8\uB2E4.\n * - node/browser: \uD574\uB2F9 \uD658\uACBD\uB9CC\n * - neutral: node + browser \uB458 \uB2E4\n * - client: browser\uB85C \uCC98\uB9AC\n * @param target \uD328\uD0A4\uC9C0 \uBE4C\uB4DC \uD0C0\uAC9F\n * @returns \uD0C0\uC785\uCCB4\uD06C \uD658\uACBD \uBAA9\uB85D\n */\nfunction toTypecheckEnvs(target: string | undefined): TypecheckEnv[] {\n if (target === \"node\") return [\"node\"];\n if (target === \"browser\" || target === \"client\") return [\"browser\"];\n // neutral \uB610\uB294 \uBBF8\uC9C0\uC815\uC740 \uB458 \uB2E4\n return [\"node\", \"browser\"];\n}\n\n/**\n * \uD30C\uC77C \uACBD\uB85C\uC5D0\uC11C \uD328\uD0A4\uC9C0 \uC815\uBCF4\uB97C \uCD94\uCD9C\uD569\uB2C8\uB2E4.\n * scripts \uD0C0\uAC9F \uD328\uD0A4\uC9C0\uB294 \uC81C\uC678\uD569\uB2C8\uB2E4.\n * @internal \uD14C\uC2A4\uD2B8\uC6A9\uC73C\uB85C export\n */\nexport function extractPackages(fileNames: string[], cwd: string, config: SdConfig): Map<string, PackageInfo> {\n const packages = new Map<string, PackageInfo>();\n\n for (const fileName of fileNames) {\n const relativePath = pathPosix(path.relative(cwd, fileName));\n\n // packages/{pkg}/...\n const packageMatch = relativePath.match(PATH_PATTERNS.PACKAGE);\n if (packageMatch) {\n const pkgName = packageMatch[1];\n // scripts \uD0C0\uAC9F \uD328\uD0A4\uC9C0\uB294 \uC81C\uC678\n if (config.packages[pkgName]?.target === \"scripts\") continue;\n\n if (!packages.has(pkgName)) {\n packages.set(pkgName, {\n name: pkgName,\n dir: path.resolve(cwd, \"packages\", pkgName),\n envs: toTypecheckEnvs(config.packages[pkgName]?.target),\n });\n }\n }\n }\n\n return packages;\n}\n\n/**\n * \uD328\uD0A4\uC9C0 \uC815\uBCF4\uB85C\uBD80\uD130 \uD0C0\uC785\uCCB4\uD06C \uC791\uC5C5 \uBAA9\uB85D\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4.\n * neutral \uD328\uD0A4\uC9C0\uB294 node/browser \uB450 \uD658\uACBD\uC73C\uB85C \uBD84\uB9AC\uD558\uC5EC \uAC01\uAC01 \uCCB4\uD06C\uD569\uB2C8\uB2E4.\n * @param packages \uD328\uD0A4\uC9C0 \uC815\uBCF4 \uB9F5\n * @param cwd \uD604\uC7AC \uC791\uC5C5 \uB514\uB809\uD1A0\uB9AC\n * @returns \uD0C0\uC785\uCCB4\uD06C \uC791\uC5C5 \uC815\uBCF4 \uBC30\uC5F4\n */\nfunction createTypecheckTasks(packages: Map<string, PackageInfo>, cwd: string): TypecheckTask[] {\n const tasks: TypecheckTask[] = [];\n\n // packages/* - \uAC01 env\uB9C8\uB2E4 \uBCC4\uB3C4 task \uC0DD\uC131\n for (const info of packages.values()) {\n for (const env of info.envs) {\n const envSuffix = info.envs.length > 1 ? ` [${env}]` : \"\";\n tasks.push({\n displayName: `\uD328\uD0A4\uC9C0: ${info.name}${envSuffix}`,\n buildInfo: {\n name: info.name,\n cwd,\n pkgDir: info.dir,\n env,\n emit: false, // \uD0C0\uC785\uCCB4\uD06C\uB9CC \uC218\uD589 (dts \uC0DD\uC131 \uC548 \uD568)\n },\n });\n }\n }\n\n return tasks;\n}\n\n//#endregion\n\n//#region Main\n\n/**\n * TypeScript \uD0C0\uC785\uCCB4\uD06C\uB97C \uC2E4\uD589\uD55C\uB2E4.\n *\n * - `tsconfig.json`\uC744 \uB85C\uB4DC\uD558\uC5EC \uCEF4\uD30C\uC77C\uB7EC \uC635\uC158 \uC801\uC6A9\n * - `sd.config.ts`\uB97C \uB85C\uB4DC\uD558\uC5EC \uD328\uD0A4\uC9C0\uBCC4 \uD0C0\uAC9F \uC815\uBCF4 \uD655\uC778 (\uC5C6\uC73C\uBA74 \uAE30\uBCF8\uAC12 \uC0AC\uC6A9)\n * - Worker threads\uB97C \uC0AC\uC6A9\uD558\uC5EC \uC2E4\uC81C \uBCD1\uB82C \uD0C0\uC785\uCCB4\uD06C \uC218\uD589\n * - incremental \uCEF4\uD30C\uC77C \uC0AC\uC6A9 (`.cache/typecheck-{env}.tsbuildinfo`)\n * - listr2\uB97C \uC0AC\uC6A9\uD558\uC5EC \uC9C4\uD589 \uC0C1\uD669 \uD45C\uC2DC\n * - \uC5D0\uB7EC \uBC1C\uC0DD \uC2DC `process.exitCode = 1` \uC124\uC815\n *\n * @param options - \uD0C0\uC785\uCCB4\uD06C \uC2E4\uD589 \uC635\uC158\n * @returns \uC644\uB8CC \uC2DC resolve. \uC5D0\uB7EC \uBC1C\uACAC \uC2DC `process.exitCode`\uB97C 1\uB85C \uC124\uC815\uD558\uACE0 resolve (throw\uD558\uC9C0 \uC54A\uC74C)\n */\nexport async function runTypecheck(options: TypecheckOptions): Promise<void> {\n const { targets } = options;\n const cwd = process.cwd();\n const logger = consola.withTag(\"sd:cli:typecheck\");\n\n logger.debug(\"\uD0C0\uC785\uCCB4\uD06C \uC2DC\uC791\", { targets });\n\n const formatHost: ts.FormatDiagnosticsHost = {\n getCanonicalFileName: (f) => f,\n getCurrentDirectory: () => cwd,\n getNewLine: () => ts.sys.newLine,\n };\n\n // tsconfig.json \uB85C\uB4DC \uBC0F \uD30C\uC2F1\n let parsedConfig: ts.ParsedCommandLine;\n try {\n parsedConfig = parseRootTsconfig(cwd);\n } catch (err) {\n consola.error(err instanceof Error ? err.message : err);\n process.exitCode = 1;\n return;\n }\n\n // sd.config.ts \uB85C\uB4DC\n let sdConfig: SdConfig;\n try {\n sdConfig = await loadSdConfig({ cwd, dev: false, opt: options.options });\n logger.debug(\"sd.config.ts \uB85C\uB4DC \uC644\uB8CC\");\n } catch (err) {\n // sd.config.ts\uAC00 \uC5C6\uAC70\uB098 \uB85C\uB4DC \uC2E4\uD328 \uC2DC \uAE30\uBCF8\uAC12 \uC0AC\uC6A9\n sdConfig = { packages: {} };\n logger.debug(\"sd.config.ts \uB85C\uB4DC \uC2E4\uD328, \uAE30\uBCF8\uAC12 \uC0AC\uC6A9\", err);\n }\n\n // targets\uAC00 \uC9C0\uC815\uB418\uBA74 fileNames \uD544\uD130\uB9C1\n const fileNames = pathFilterByTargets(parsedConfig.fileNames, targets, cwd);\n\n if (fileNames.length === 0) {\n process.stdout.write(\"\u2714 \uD0C0\uC785\uCCB4\uD06C\uD560 \uD30C\uC77C\uC774 \uC5C6\uC2B5\uB2C8\uB2E4.\\n\");\n logger.info(\"\uD0C0\uC785\uCCB4\uD06C\uD560 \uD30C\uC77C \uC5C6\uC74C\");\n return;\n }\n\n // \uD328\uD0A4\uC9C0 \uC815\uBCF4 \uCD94\uCD9C\n const packages = extractPackages(fileNames, cwd, sdConfig);\n logger.debug(\"\uD328\uD0A4\uC9C0 \uCD94\uCD9C \uC644\uB8CC\", {\n packageCount: packages.size,\n packages: [...packages.keys()],\n });\n\n // \uD0C0\uC785\uCCB4\uD06C \uC791\uC5C5 \uC0DD\uC131\n const tasks = createTypecheckTasks(packages, cwd);\n\n if (tasks.length === 0) {\n process.stdout.write(\"\u2714 \uD0C0\uC785\uCCB4\uD06C\uD560 \uD328\uD0A4\uC9C0\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.\\n\");\n return;\n }\n\n // \uB3D9\uC2DC\uC131 \uC124\uC815: CPU \uCF54\uC5B4\uC758 7/8\uB9CC \uC0AC\uC6A9 (\uC77C\uBC18\uC801\uC778 \uBCD1\uB82C \uBE4C\uB4DC \uB3C4\uAD6C\uC758 \uAE30\uBCF8\uAC12, OS/\uB2E4\uB978 \uD504\uB85C\uC138\uC2A4 \uC5EC\uC720\uBD84 \uD655\uBCF4, \uCD5C\uC18C 1, \uC791\uC5C5 \uC218 \uC774\uD558)\n const maxConcurrency = Math.max(Math.floor((os.cpus().length * 7) / 8), 1);\n const concurrency = Math.min(maxConcurrency, tasks.length);\n logger.debug(\"\uB3D9\uC2DC\uC131 \uC124\uC815\", { concurrency, maxConcurrency, taskCount: tasks.length });\n\n // Worker \uD480 \uC0DD\uC131 (\uC791\uC5C5 \uC218\uB9CC\uD07C\uB9CC \uC0DD\uC131)\n const workerPath = path.resolve(import.meta.dirname, \"../workers/dts.worker.ts\");\n const workers: WorkerProxy<typeof DtsWorkerModule>[] = [];\n for (let i = 0; i < concurrency; i++) {\n workers.push(Worker.create<typeof DtsWorkerModule>(workerPath));\n }\n\n // \uACB0\uACFC \uC218\uC9D1\uC6A9\n const allResults: { displayName: string; result: DtsBuildResult }[] = [];\n\n // listr2-Worker \uC5F0\uB3D9 \uD328\uD134:\n // 1. listr2\uC758 \uAC01 task\uB294 Promise\uB97C \uBC18\uD658\uD558\uACE0, \uD574\uB2F9 Promise\uAC00 resolve\uB418\uBA74 task\uAC00 \uC644\uB8CC\uB428\n // 2. taskResolvers \uB9F5\uC5D0 task\uBCC4 resolve \uD568\uC218\uB97C \uC800\uC7A5\n // 3. Worker\uAC00 \uC791\uC5C5 \uC644\uB8CC \uC2DC \uD574\uB2F9 task\uC758 resolver\uB97C \uD638\uCD9C\uD558\uC5EC listr2 UI \uC5C5\uB370\uC774\uD2B8\n // 4. Worker \uD480\uC740 \uB3C5\uB9BD\uC801\uC73C\uB85C \uC791\uC5C5 \uD050\uC5D0\uC11C task\uB97C \uAC00\uC838\uC640 \uC2E4\uD589\n const taskResolvers = new Map<string, () => void>();\n\n try {\n // \uC791\uC5C5 \uD050\n let taskIndex = 0;\n\n // Worker\uC5D0\uC11C \uC791\uC5C5 \uC2E4\uD589\n async function runNextTask(worker: WorkerProxy<typeof DtsWorkerModule>): Promise<void> {\n while (taskIndex < tasks.length) {\n const currentIndex = taskIndex++;\n const task = tasks[currentIndex];\n\n try {\n const result = await worker.buildDts(task.buildInfo);\n\n allResults.push({ displayName: task.displayName, result });\n } catch (err) {\n // Worker \uC624\uB958 \uB85C\uAE45 \uBC0F \uACB0\uACFC\uB85C \uBCC0\uD658\n logger.error(`Worker \uC624\uB958: ${task.displayName}`, {\n error: err instanceof Error ? err.message : String(err),\n });\n allResults.push({\n displayName: task.displayName,\n result: {\n success: false,\n errors: [err instanceof Error ? err.message : String(err)],\n diagnostics: [],\n errorCount: 1,\n warningCount: 0,\n },\n });\n } finally {\n // \uC131\uACF5/\uC2E4\uD328 \uBAA8\uB450 task \uC644\uB8CC \uCC98\uB9AC\n taskResolvers.get(task.displayName)?.();\n }\n }\n }\n\n // listr2\uB85C \uC9C4\uD589 \uC0C1\uD669 \uD45C\uC2DC\n const listr = new Listr(\n tasks.map((task) => ({\n title: task.displayName,\n task: () =>\n new Promise<void>((resolve) => {\n taskResolvers.set(task.displayName, resolve);\n }),\n })),\n {\n concurrent: concurrency,\n exitOnError: false,\n renderer: consola.level >= LogLevels.debug ? \"verbose\" : \"default\",\n },\n );\n\n // \uBCD1\uB82C\uB85C \uBAA8\uB4E0 worker \uC2E4\uD589\n const workerPromises = workers.map((worker) => runNextTask(worker));\n\n // listr\uC640 worker \uB3D9\uC2DC \uC2E4\uD589\n await Promise.all([listr.run(), ...workerPromises]);\n } finally {\n // \uBBF8\uD574\uACB0 resolver \uC815\uB9AC (\uD0C0\uC784\uC544\uC6C3/\uBE44\uC815\uC0C1 \uC885\uB8CC \uB300\uBE44)\n for (const resolver of taskResolvers.values()) {\n resolver();\n }\n // Worker \uC885\uB8CC (\uC131\uACF5/\uC2E4\uD328 \uBAA8\uB450)\n await Promise.all(workers.map((w) => w.terminate()));\n }\n\n // \uACB0\uACFC \uCD9C\uB825\n const allDiagnostics: ts.Diagnostic[] = [];\n let totalErrorCount = 0;\n let totalWarningCount = 0;\n const fileCache = new Map<string, string>(); // \uD30C\uC77C \uB0B4\uC6A9 \uCE90\uC2DC (\uB3D9\uC77C \uD30C\uC77C \uC911\uBCF5 \uC77D\uAE30 \uBC29\uC9C0)\n for (const { result } of allResults) {\n totalErrorCount += result.errorCount;\n totalWarningCount += result.warningCount;\n for (const serialized of result.diagnostics) {\n allDiagnostics.push(deserializeDiagnostic(serialized, fileCache));\n }\n }\n\n if (totalErrorCount > 0) {\n logger.error(\"\uD0C0\uC785\uCCB4\uD06C \uC5D0\uB7EC \uBC1C\uC0DD\", {\n errorCount: totalErrorCount,\n warningCount: totalWarningCount,\n });\n } else if (totalWarningCount > 0) {\n logger.info(\"\uD0C0\uC785\uCCB4\uD06C \uC644\uB8CC (\uACBD\uACE0 \uC788\uC74C)\", {\n errorCount: totalErrorCount,\n warningCount: totalWarningCount,\n });\n } else {\n logger.info(\"\uD0C0\uC785\uCCB4\uD06C \uC644\uB8CC\", { errorCount: totalErrorCount, warningCount: totalWarningCount });\n }\n\n if (allDiagnostics.length > 0) {\n const uniqueDiagnostics = ts.sortAndDeduplicateDiagnostics(allDiagnostics);\n const message = ts.formatDiagnosticsWithColorAndContext(uniqueDiagnostics, formatHost);\n process.stdout.write(message);\n }\n\n if (totalErrorCount > 0) {\n process.exitCode = 1;\n }\n}\n\n//#endregion\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,OAAO,QAAQ;AACf,SAAS,aAAa;AACtB,SAAS,WAAW,qBAAqB,cAAgC;AACzE,OAAO;AACP,SAAS,SAAS,iBAAiB;AAEnC,SAAS,yBAA4C;AACrD,SAAS,oBAAoB;AAC7B,SAAS,6BAA6B;AAoCtC,MAAM,gBAAgB;AAAA;AAAA,EAEpB,SAAS;AACX;AAUA,SAAS,gBAAgB,QAA4C;AACnE,MAAI,WAAW,OAAQ,QAAO,CAAC,MAAM;AACrC,MAAI,WAAW,aAAa,WAAW,SAAU,QAAO,CAAC,SAAS;AAElE,SAAO,CAAC,QAAQ,SAAS;AAC3B;AAOO,SAAS,gBAAgB,WAAqB,KAAa,QAA4C;AAC5G,QAAM,WAAW,oBAAI,IAAyB;AAE9C,aAAW,YAAY,WAAW;AAChC,UAAM,eAAe,UAAU,KAAK,SAAS,KAAK,QAAQ,CAAC;AAG3D,UAAM,eAAe,aAAa,MAAM,cAAc,OAAO;AAC7D,QAAI,cAAc;AAChB,YAAM,UAAU,aAAa,CAAC;AAE9B,UAAI,OAAO,SAAS,OAAO,GAAG,WAAW,UAAW;AAEpD,UAAI,CAAC,SAAS,IAAI,OAAO,GAAG;AAC1B,iBAAS,IAAI,SAAS;AAAA,UACpB,MAAM;AAAA,UACN,KAAK,KAAK,QAAQ,KAAK,YAAY,OAAO;AAAA,UAC1C,MAAM,gBAAgB,OAAO,SAAS,OAAO,GAAG,MAAM;AAAA,QACxD,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AASA,SAAS,qBAAqB,UAAoC,KAA8B;AAC9F,QAAM,QAAyB,CAAC;AAGhC,aAAW,QAAQ,SAAS,OAAO,GAAG;AACpC,eAAW,OAAO,KAAK,MAAM;AAC3B,YAAM,YAAY,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,MAAM;AACvD,YAAM,KAAK;AAAA,QACT,aAAa,uBAAQ,KAAK,IAAI,GAAG,SAAS;AAAA,QAC1C,WAAW;AAAA,UACT,MAAM,KAAK;AAAA,UACX;AAAA,UACA,QAAQ,KAAK;AAAA,UACb;AAAA,UACA,MAAM;AAAA;AAAA,QACR;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO;AACT;AAmBA,eAAsB,aAAa,SAA0C;AAC3E,QAAM,EAAE,QAAQ,IAAI;AACpB,QAAM,MAAM,QAAQ,IAAI;AACxB,QAAM,SAAS,QAAQ,QAAQ,kBAAkB;AAEjD,SAAO,MAAM,yCAAW,EAAE,QAAQ,CAAC;AAEnC,QAAM,aAAuC;AAAA,IAC3C,sBAAsB,CAAC,MAAM;AAAA,IAC7B,qBAAqB,MAAM;AAAA,IAC3B,YAAY,MAAM,GAAG,IAAI;AAAA,EAC3B;AAGA,MAAI;AACJ,MAAI;AACF,mBAAe,kBAAkB,GAAG;AAAA,EACtC,SAAS,KAAK;AACZ,YAAQ,MAAM,eAAe,QAAQ,IAAI,UAAU,GAAG;AACtD,YAAQ,WAAW;AACnB;AAAA,EACF;AAGA,MAAI;AACJ,MAAI;AACF,eAAW,MAAM,aAAa,EAAE,KAAK,KAAK,OAAO,KAAK,QAAQ,QAAQ,CAAC;AACvE,WAAO,MAAM,wCAAoB;AAAA,EACnC,SAAS,KAAK;AAEZ,eAAW,EAAE,UAAU,CAAC,EAAE;AAC1B,WAAO,MAAM,2EAA8B,GAAG;AAAA,EAChD;AAGA,QAAM,YAAY,oBAAoB,aAAa,WAAW,SAAS,GAAG;AAE1E,MAAI,UAAU,WAAW,GAAG;AAC1B,YAAQ,OAAO,MAAM,sFAAqB;AAC1C,WAAO,KAAK,0DAAa;AACzB;AAAA,EACF;AAGA,QAAM,WAAW,gBAAgB,WAAW,KAAK,QAAQ;AACzD,SAAO,MAAM,gDAAa;AAAA,IACxB,cAAc,SAAS;AAAA,IACvB,UAAU,CAAC,GAAG,SAAS,KAAK,CAAC;AAAA,EAC/B,CAAC;AAGD,QAAM,QAAQ,qBAAqB,UAAU,GAAG;AAEhD,MAAI,MAAM,WAAW,GAAG;AACtB,YAAQ,OAAO,MAAM,4FAAsB;AAC3C;AAAA,EACF;AAGA,QAAM,iBAAiB,KAAK,IAAI,KAAK,MAAO,GAAG,KAAK,EAAE,SAAS,IAAK,CAAC,GAAG,CAAC;AACzE,QAAM,cAAc,KAAK,IAAI,gBAAgB,MAAM,MAAM;AACzD,SAAO,MAAM,mCAAU,EAAE,aAAa,gBAAgB,WAAW,MAAM,OAAO,CAAC;AAG/E,QAAM,aAAa,KAAK,QAAQ,YAAY,SAAS,0BAA0B;AAC/E,QAAM,UAAiD,CAAC;AACxD,WAAS,IAAI,GAAG,IAAI,aAAa,KAAK;AACpC,YAAQ,KAAK,OAAO,OAA+B,UAAU,CAAC;AAAA,EAChE;AAGA,QAAM,aAAgE,CAAC;AAOvE,QAAM,gBAAgB,oBAAI,IAAwB;AAElD,MAAI;AAEF,QAAI,YAAY;AAGhB,mBAAe,YAAY,QAA4D;AACrF,aAAO,YAAY,MAAM,QAAQ;AAC/B,cAAM,eAAe;AACrB,cAAM,OAAO,MAAM,YAAY;AAE/B,YAAI;AACF,gBAAM,SAAS,MAAM,OAAO,SAAS,KAAK,SAAS;AAEnD,qBAAW,KAAK,EAAE,aAAa,KAAK,aAAa,OAAO,CAAC;AAAA,QAC3D,SAAS,KAAK;AAEZ,iBAAO,MAAM,wBAAc,KAAK,WAAW,IAAI;AAAA,YAC7C,OAAO,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;AAAA,UACxD,CAAC;AACD,qBAAW,KAAK;AAAA,YACd,aAAa,KAAK;AAAA,YAClB,QAAQ;AAAA,cACN,SAAS;AAAA,cACT,QAAQ,CAAC,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,CAAC;AAAA,cACzD,aAAa,CAAC;AAAA,cACd,YAAY;AAAA,cACZ,cAAc;AAAA,YAChB;AAAA,UACF,CAAC;AAAA,QACH,UAAE;AAEA,wBAAc,IAAI,KAAK,WAAW,IAAI;AAAA,QACxC;AAAA,MACF;AAAA,IACF;AAGA,UAAM,QAAQ,IAAI;AAAA,MAChB,MAAM,IAAI,CAAC,UAAU;AAAA,QACnB,OAAO,KAAK;AAAA,QACZ,MAAM,MACJ,IAAI,QAAc,CAAC,YAAY;AAC7B,wBAAc,IAAI,KAAK,aAAa,OAAO;AAAA,QAC7C,CAAC;AAAA,MACL,EAAE;AAAA,MACF;AAAA,QACE,YAAY;AAAA,QACZ,aAAa;AAAA,QACb,UAAU,QAAQ,SAAS,UAAU,QAAQ,YAAY;AAAA,MAC3D;AAAA,IACF;AAGA,UAAM,iBAAiB,QAAQ,IAAI,CAAC,WAAW,YAAY,MAAM,CAAC;AAGlE,UAAM,QAAQ,IAAI,CAAC,MAAM,IAAI,GAAG,GAAG,cAAc,CAAC;AAAA,EACpD,UAAE;AAEA,eAAW,YAAY,cAAc,OAAO,GAAG;AAC7C,eAAS;AAAA,IACX;AAEA,UAAM,QAAQ,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAAA,EACrD;AAGA,QAAM,iBAAkC,CAAC;AACzC,MAAI,kBAAkB;AACtB,MAAI,oBAAoB;AACxB,QAAM,YAAY,oBAAI,IAAoB;AAC1C,aAAW,EAAE,OAAO,KAAK,YAAY;AACnC,uBAAmB,OAAO;AAC1B,yBAAqB,OAAO;AAC5B,eAAW,cAAc,OAAO,aAAa;AAC3C,qBAAe,KAAK,sBAAsB,YAAY,SAAS,CAAC;AAAA,IAClE;AAAA,EACF;AAEA,MAAI,kBAAkB,GAAG;AACvB,WAAO,MAAM,sDAAc;AAAA,MACzB,YAAY;AAAA,MACZ,cAAc;AAAA,IAChB,CAAC;AAAA,EACH,WAAW,oBAAoB,GAAG;AAChC,WAAO,KAAK,qEAAmB;AAAA,MAC7B,YAAY;AAAA,MACZ,cAAc;AAAA,IAChB,CAAC;AAAA,EACH,OAAO;AACL,WAAO,KAAK,yCAAW,EAAE,YAAY,iBAAiB,cAAc,kBAAkB,CAAC;AAAA,EACzF;AAEA,MAAI,eAAe,SAAS,GAAG;AAC7B,UAAM,oBAAoB,GAAG,8BAA8B,cAAc;AACzE,UAAM,UAAU,GAAG,qCAAqC,mBAAmB,UAAU;AACrF,YAAQ,OAAO,MAAM,OAAO;AAAA,EAC9B;AAEA,MAAI,kBAAkB,GAAG;AACvB,YAAQ,WAAW;AAAA,EACrB;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { WatchOrchestrator } from "../orchestrators/WatchOrchestrator";
|
|
2
|
+
async function runWatch(options) {
|
|
3
|
+
const orchestratorOptions = {
|
|
4
|
+
targets: options.targets,
|
|
5
|
+
options: options.options
|
|
6
|
+
};
|
|
7
|
+
const orchestrator = new WatchOrchestrator(orchestratorOptions);
|
|
8
|
+
try {
|
|
9
|
+
await orchestrator.initialize();
|
|
10
|
+
await orchestrator.start();
|
|
11
|
+
await orchestrator.awaitTermination();
|
|
12
|
+
} finally {
|
|
13
|
+
await orchestrator.shutdown();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export {
|
|
17
|
+
runWatch
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=watch.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/commands/watch.ts"],
|
|
4
|
+
"sourcesContent": ["// packages/cli/src/commands/watch.ts\nimport { WatchOrchestrator, type WatchOrchestratorOptions } from \"../orchestrators/WatchOrchestrator\";\n\n/**\n * Watch \uBA85\uB839 \uC635\uC158 (\uD558\uC704 \uD638\uD658\uC131)\n */\nexport interface WatchOptions {\n targets: string[];\n options: string[];\n}\n\n/**\n * Library \uD328\uD0A4\uC9C0\uB97C watch \uBAA8\uB4DC\uB85C \uBE4C\uB4DC\uD55C\uB2E4.\n *\n * - `sd.config.ts`\uB97C \uB85C\uB4DC\uD558\uC5EC \uD328\uD0A4\uC9C0\uBCC4 \uBE4C\uB4DC \uD0C0\uAC9F \uC815\uBCF4 \uD655\uC778 (\uD544\uC218)\n * - `node`/`browser`/`neutral` \uD0C0\uAC9F: esbuild watch \uBAA8\uB4DC\uB85C \uBE4C\uB4DC + .d.ts \uC0DD\uC131\n * - \uD30C\uC77C \uBCC0\uACBD \uC2DC \uC790\uB3D9 \uB9AC\uBE4C\uB4DC\n * - SIGINT/SIGTERM \uC2DC\uADF8\uB110\uB85C \uC885\uB8CC\n *\n * @param options - watch \uC2E4\uD589 \uC635\uC158\n * @returns \uC885\uB8CC \uC2DC\uADF8\uB110 \uC218\uC2E0 \uC2DC resolve\n */\nexport async function runWatch(options: WatchOptions): Promise<void> {\n const orchestratorOptions: WatchOrchestratorOptions = {\n targets: options.targets,\n options: options.options,\n };\n\n const orchestrator = new WatchOrchestrator(orchestratorOptions);\n\n try {\n await orchestrator.initialize();\n await orchestrator.start();\n await orchestrator.awaitTermination();\n } finally {\n await orchestrator.shutdown();\n }\n}\n"],
|
|
5
|
+
"mappings": "AACA,SAAS,yBAAwD;AAqBjE,eAAsB,SAAS,SAAsC;AACnE,QAAM,sBAAgD;AAAA,IACpD,SAAS,QAAQ;AAAA,IACjB,SAAS,QAAQ;AAAA,EACnB;AAEA,QAAM,eAAe,IAAI,kBAAkB,mBAAmB;AAE9D,MAAI;AACF,UAAM,aAAa,WAAW;AAC9B,UAAM,aAAa,MAAM;AACzB,UAAM,aAAa,iBAAiB;AAAA,EACtC,UAAE;AACA,UAAM,aAAa,SAAS;AAAA,EAC9B;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { DateTime } from "./types/date-time";
|
|
2
|
+
import { DateOnly } from "./types/date-only";
|
|
3
|
+
import { Time } from "./types/time";
|
|
4
|
+
import { Uuid } from "./types/uuid";
|
|
5
|
+
/**
|
|
6
|
+
* Buffer 대신 사용하는 바이너리 타입
|
|
7
|
+
*/
|
|
8
|
+
export type Bytes = Uint8Array;
|
|
9
|
+
/**
|
|
10
|
+
* Primitive 타입 매핑
|
|
11
|
+
* orm-common과 공유
|
|
12
|
+
*/
|
|
13
|
+
export type PrimitiveTypeMap = {
|
|
14
|
+
string: string;
|
|
15
|
+
number: number;
|
|
16
|
+
boolean: boolean;
|
|
17
|
+
DateTime: DateTime;
|
|
18
|
+
DateOnly: DateOnly;
|
|
19
|
+
Time: Time;
|
|
20
|
+
Uuid: Uuid;
|
|
21
|
+
Bytes: Bytes;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Primitive 타입 문자열 키
|
|
25
|
+
*/
|
|
26
|
+
export type PrimitiveTypeStr = keyof PrimitiveTypeMap;
|
|
27
|
+
/**
|
|
28
|
+
* Primitive 타입 유니온
|
|
29
|
+
*/
|
|
30
|
+
export type PrimitiveType = PrimitiveTypeMap[PrimitiveTypeStr] | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* 깊은 Partial 타입
|
|
33
|
+
*
|
|
34
|
+
* 객체의 모든 속성을 재귀적으로 선택적(optional)으로 만듭니다.
|
|
35
|
+
* Primitive 타입(string, number, boolean 등)은 그대로 유지하고,
|
|
36
|
+
* 객체/배열 타입만 재귀적으로 Partial을 적용합니다.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* interface User {
|
|
41
|
+
* name: string;
|
|
42
|
+
* profile: {
|
|
43
|
+
* age: number;
|
|
44
|
+
* address: { city: string };
|
|
45
|
+
* };
|
|
46
|
+
* }
|
|
47
|
+
*
|
|
48
|
+
* // 모든 깊이의 속성이 선택적이 됨
|
|
49
|
+
* const partial: DeepPartial<User> = {
|
|
50
|
+
* profile: { address: {} }
|
|
51
|
+
* };
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export type DeepPartial<T> = Partial<{
|
|
55
|
+
[K in keyof T]: T[K] extends PrimitiveType ? T[K] : DeepPartial<T[K]>;
|
|
56
|
+
}>;
|
|
57
|
+
/**
|
|
58
|
+
* 생성자 타입
|
|
59
|
+
*
|
|
60
|
+
* 클래스 생성자를 타입으로 표현할 때 사용합니다.
|
|
61
|
+
* 주로 의존성 주입, 팩토리 패턴, instanceof 체크 등에서 활용됩니다.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* function create<T>(ctor: Type<T>): T {
|
|
65
|
+
* return new ctor();
|
|
66
|
+
* }
|
|
67
|
+
*
|
|
68
|
+
* class MyClass { name = "test"; }
|
|
69
|
+
* const instance = create(MyClass); // MyClass 인스턴스
|
|
70
|
+
*/
|
|
71
|
+
export interface Type<T> extends Function {
|
|
72
|
+
new (...args: unknown[]): T;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=common.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.types.d.ts","sourceRoot":"","sources":["../../../../core-common/src/common.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIpC;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC;AAM/B;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,gBAAgB,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;AAM3E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,OAAO,CAAC;KAClC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACtE,CAAC,CAAC;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,IAAI,CAAC,CAAC,CAAE,SAAQ,QAAQ;IACvC,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;CAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../core-common/src/env.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,GAAG,EAAE;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAKxB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SdError } from "./sd-error";
|
|
2
|
+
/**
|
|
3
|
+
* 인수 오류
|
|
4
|
+
*
|
|
5
|
+
* 잘못된 인수를 받았을 때 발생시키는 에러이다.
|
|
6
|
+
* 인수 객체를 YAML 형식으로 메시지에 포함하여 디버깅을 용이하게 한다.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* // 인수 객체만 전달
|
|
10
|
+
* throw new ArgumentError({ userId: 123, name: null });
|
|
11
|
+
* // 결과 메시지: "인수가 잘못되었습니다.\n\nuserId: 123\nname: null"
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* // 커스텀 메시지와 인수 객체 전달
|
|
15
|
+
* throw new ArgumentError("유효하지 않은 사용자", { userId: 123 });
|
|
16
|
+
* // 결과 메시지: "유효하지 않은 사용자\n\nuserId: 123"
|
|
17
|
+
*/
|
|
18
|
+
export declare class ArgumentError extends SdError {
|
|
19
|
+
/** 기본 메시지("인수가 잘못되었습니다.")와 함께 인수 객체를 YAML 형식으로 출력 */
|
|
20
|
+
constructor(argObj: Record<string, unknown>);
|
|
21
|
+
/** 커스텀 메시지와 함께 인수 객체를 YAML 형식으로 출력 */
|
|
22
|
+
constructor(message: string, argObj: Record<string, unknown>);
|
|
23
|
+
constructor(arg1: Record<string, unknown> | string, arg2?: Record<string, unknown>);
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=argument-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argument-error.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/errors/argument-error.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,aAAc,SAAQ,OAAO;IACxC,qDAAqD;gBACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3C,sCAAsC;gBAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAChD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAYnF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { SdError } from "./sd-error";
|
|
2
|
+
/**
|
|
3
|
+
* 미구현 오류
|
|
4
|
+
*
|
|
5
|
+
* 아직 구현되지 않은 기능을 호출했을 때 발생시키는 에러이다.
|
|
6
|
+
* 추상 메서드 스텁, 향후 구현 예정인 분기 등에 사용한다.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* // 추상 메서드 구현 전
|
|
10
|
+
* class BaseService {
|
|
11
|
+
* process(): void {
|
|
12
|
+
* throw new NotImplementedError("서브클래스에서 구현 필요");
|
|
13
|
+
* }
|
|
14
|
+
* }
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* // 향후 구현 예정 분기
|
|
18
|
+
* switch (type) {
|
|
19
|
+
* case "A": return handleA();
|
|
20
|
+
* case "B": throw new NotImplementedError(`타입 ${type} 처리`);
|
|
21
|
+
* }
|
|
22
|
+
*/
|
|
23
|
+
export declare class NotImplementedError extends SdError {
|
|
24
|
+
/**
|
|
25
|
+
* @param message 추가 설명 메시지
|
|
26
|
+
*/
|
|
27
|
+
constructor(message?: string);
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=not-implemented-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-implemented-error.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/errors/not-implemented-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,mBAAoB,SAAQ,OAAO;IAC9C;;OAEG;gBACS,OAAO,CAAC,EAAE,MAAM;CAI7B"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 오류의 Tree 구조 구성이 가능한 오류 클래스
|
|
3
|
+
* ES2024 cause 속성 활용
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* // 원인 에러를 감싸서 생성
|
|
7
|
+
* try {
|
|
8
|
+
* await fetch(url);
|
|
9
|
+
* } catch (err) {
|
|
10
|
+
* throw new SdError(err, "API 호출 실패", "사용자 로드 실패");
|
|
11
|
+
* }
|
|
12
|
+
* // 결과 메시지: "사용자 로드 실패 => API 호출 실패 => 원본 에러 메시지"
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* // 메시지만으로 생성
|
|
16
|
+
* throw new SdError("잘못된 상태", "처리 불가");
|
|
17
|
+
* // 결과 메시지: "처리 불가 => 잘못된 상태"
|
|
18
|
+
*/
|
|
19
|
+
export declare class SdError extends Error {
|
|
20
|
+
cause?: Error;
|
|
21
|
+
/** 원인 에러를 감싸서 생성. 메시지는 역순으로 연결됨 (상위 메시지 => 하위 메시지 => 원인 메시지) */
|
|
22
|
+
constructor(cause: Error, ...messages: string[]);
|
|
23
|
+
/** 메시지만으로 생성. 메시지는 역순으로 연결됨 (상위 메시지 => 하위 메시지) */
|
|
24
|
+
constructor(...messages: string[]);
|
|
25
|
+
constructor(arg1?: unknown, ...messages: string[]);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=sd-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sd-error.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/errors/sd-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,OAAQ,SAAQ,KAAK;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;IAEvB,gEAAgE;gBACpD,KAAK,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE;IAC/C,kDAAkD;gBACtC,GAAG,QAAQ,EAAE,MAAM,EAAE;gBACrB,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE;CA2BlD"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { SdError } from "./sd-error";
|
|
2
|
+
/**
|
|
3
|
+
* 타임아웃 오류
|
|
4
|
+
*
|
|
5
|
+
* 대기 시간이 초과되었을 때 발생하는 에러이다.
|
|
6
|
+
* Wait.until() 등의 비동기 대기 함수에서 최대 시도 횟수를 초과하면 자동으로 발생한다.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* // Wait.until에서 자동 발생
|
|
10
|
+
* try {
|
|
11
|
+
* await Wait.until(() => isReady, 100, 50); // 100ms 간격, 최대 50회
|
|
12
|
+
* } catch (err) {
|
|
13
|
+
* if (err instanceof TimeoutError) {
|
|
14
|
+
* console.log("시간 초과");
|
|
15
|
+
* }
|
|
16
|
+
* }
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* // 직접 발생
|
|
20
|
+
* if (elapsed > maxTime) {
|
|
21
|
+
* throw new TimeoutError(undefined, "API 응답 대기 초과");
|
|
22
|
+
* }
|
|
23
|
+
*/
|
|
24
|
+
export declare class TimeoutError extends SdError {
|
|
25
|
+
/**
|
|
26
|
+
* @param count 시도 횟수
|
|
27
|
+
* @param message 추가 메시지
|
|
28
|
+
*/
|
|
29
|
+
constructor(count?: number, message?: string);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=timeout-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeout-error.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/errors/timeout-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,YAAa,SAAQ,OAAO;IACvC;;;OAGG;gBACS,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAM7C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Array 확장 메서드
|
|
3
|
+
*
|
|
4
|
+
* @remarks 각 메서드의 TSDoc은 타입 정의 파일(arr-ext.types.ts) 참조
|
|
5
|
+
*/
|
|
6
|
+
import "./map-ext";
|
|
7
|
+
import type { ReadonlyArrayExt, MutableArrayExt } from "./arr-ext.types";
|
|
8
|
+
declare global {
|
|
9
|
+
interface ReadonlyArray<T> extends ReadonlyArrayExt<T> {
|
|
10
|
+
}
|
|
11
|
+
interface Array<T> extends ReadonlyArrayExt<T>, MutableArrayExt<T> {
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export type { ArrayDiffsResult, ArrayDiffs2Result, TreeArray, ComparableType } from "./arr-ext.types";
|
|
15
|
+
//# sourceMappingURL=arr-ext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arr-ext.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/extensions/arr-ext.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,WAAW,CAAC;AAUnB,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAIhB,MAAM,iBAAiB,CAAC;AA2uBzB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,aAAa,CAAC,CAAC,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC;KAAG;IACzD,UAAU,KAAK,CAAC,CAAC,CAAE,SAAQ,gBAAgB,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;KAAG;CACtE;AAID,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Array 확장 헬퍼 함수
|
|
3
|
+
*/
|
|
4
|
+
import type { ComparableType } from "./arr-ext.types";
|
|
5
|
+
/**
|
|
6
|
+
* DateTime, DateOnly, Time을 비교 가능한 primitive 값으로 변환
|
|
7
|
+
*/
|
|
8
|
+
export declare function toComparable(value: ComparableType): string | number | boolean | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* 정렬을 위한 비교 함수
|
|
11
|
+
*
|
|
12
|
+
* @param pp 비교 대상 1
|
|
13
|
+
* @param pn 비교 대상 2
|
|
14
|
+
* @param desc true: 내림차순, false: 오름차순
|
|
15
|
+
* @returns 음수: pp가 앞, 0: 같음, 양수: pn이 앞
|
|
16
|
+
* @note null/undefined 값은 오름차순 시 앞으로, 내림차순 시 뒤로 정렬됨
|
|
17
|
+
*/
|
|
18
|
+
export declare function compareForOrder(pp: ComparableType, pn: ComparableType, desc: boolean): number;
|
|
19
|
+
//# sourceMappingURL=arr-ext.helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arr-ext.helpers.d.ts","sourceRoot":"","sources":["../../../../../core-common/src/extensions/arr-ext.helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAKzF;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAuB7F"}
|