@simplysm/sd-cli 13.0.99 → 14.0.1
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/commands/build.js +29 -19
- package/dist/commands/build.js.map +1 -6
- package/dist/commands/check.d.ts +1 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +130 -115
- package/dist/commands/check.js.map +1 -6
- package/dist/commands/dev.d.ts +6 -7
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +24 -14
- package/dist/commands/dev.js.map +1 -6
- package/dist/commands/lint.d.ts +1 -1
- package/dist/commands/lint.js +158 -116
- package/dist/commands/lint.js.map +1 -6
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +637 -510
- package/dist/commands/publish.js.map +1 -6
- package/dist/commands/replace-deps.js +12 -12
- package/dist/commands/replace-deps.js.map +1 -6
- package/dist/commands/typecheck.d.ts +5 -30
- package/dist/commands/typecheck.d.ts.map +1 -1
- package/dist/commands/typecheck.js +144 -207
- package/dist/commands/typecheck.js.map +1 -6
- package/dist/commands/watch.d.ts +6 -4
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +25 -16
- package/dist/commands/watch.js.map +1 -6
- package/dist/engines/NgtscEngine.d.ts +47 -0
- package/dist/engines/NgtscEngine.d.ts.map +1 -0
- package/dist/engines/NgtscEngine.js +151 -0
- package/dist/engines/NgtscEngine.js.map +1 -0
- package/dist/engines/ServerEsbuildEngine.d.ts +47 -0
- package/dist/engines/ServerEsbuildEngine.d.ts.map +1 -0
- package/dist/engines/ServerEsbuildEngine.js +159 -0
- package/dist/engines/ServerEsbuildEngine.js.map +1 -0
- package/dist/engines/TscEngine.d.ts +47 -0
- package/dist/engines/TscEngine.d.ts.map +1 -0
- package/dist/engines/TscEngine.js +153 -0
- package/dist/engines/TscEngine.js.map +1 -0
- package/dist/engines/ViteEngine.d.ts +49 -0
- package/dist/engines/ViteEngine.d.ts.map +1 -0
- package/dist/engines/ViteEngine.js +161 -0
- package/dist/engines/ViteEngine.js.map +1 -0
- package/dist/engines/index.d.ts +26 -0
- package/dist/engines/index.d.ts.map +1 -0
- package/dist/engines/index.js +30 -0
- package/dist/engines/index.js.map +1 -0
- package/dist/engines/types.d.ts +77 -0
- package/dist/engines/types.d.ts.map +1 -0
- package/dist/engines/types.js +2 -0
- package/dist/engines/types.js.map +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -6
- package/dist/infra/ResultCollector.d.ts +1 -1
- package/dist/infra/ResultCollector.d.ts.map +1 -1
- package/dist/infra/ResultCollector.js +30 -27
- package/dist/infra/ResultCollector.js.map +1 -6
- package/dist/infra/SignalHandler.js +45 -42
- package/dist/infra/SignalHandler.js.map +1 -6
- package/dist/infra/WorkerManager.js +56 -53
- package/dist/infra/WorkerManager.js.map +1 -6
- package/dist/orchestrators/BuildOrchestrator.d.ts +33 -1
- package/dist/orchestrators/BuildOrchestrator.d.ts.map +1 -1
- package/dist/orchestrators/BuildOrchestrator.js +314 -309
- package/dist/orchestrators/BuildOrchestrator.js.map +1 -6
- package/dist/orchestrators/DevWatchOrchestrator.d.ts +60 -0
- package/dist/orchestrators/DevWatchOrchestrator.d.ts.map +1 -0
- package/dist/orchestrators/DevWatchOrchestrator.js +465 -0
- package/dist/orchestrators/DevWatchOrchestrator.js.map +1 -0
- package/dist/sd-cli-entry.d.ts.map +1 -1
- package/dist/sd-cli-entry.js +190 -266
- package/dist/sd-cli-entry.js.map +1 -6
- package/dist/sd-cli.js +77 -49
- package/dist/sd-cli.js.map +1 -6
- package/dist/sd-config.types.d.ts +2 -0
- package/dist/sd-config.types.d.ts.map +1 -1
- package/dist/sd-config.types.js +2 -1
- package/dist/sd-config.types.js.map +1 -6
- package/dist/utils/angular-build.d.ts +77 -0
- package/dist/utils/angular-build.d.ts.map +1 -0
- package/dist/utils/angular-build.js +84 -0
- package/dist/utils/angular-build.js.map +1 -0
- package/dist/utils/build-env.js +9 -9
- package/dist/utils/build-env.js.map +1 -6
- package/dist/utils/concurrency.d.ts +15 -0
- package/dist/utils/concurrency.d.ts.map +1 -0
- package/dist/utils/concurrency.js +38 -0
- package/dist/utils/concurrency.js.map +1 -0
- package/dist/utils/copy-public.js +104 -87
- package/dist/utils/copy-public.js.map +1 -6
- package/dist/utils/copy-src.js +49 -35
- package/dist/utils/copy-src.js.map +1 -6
- package/dist/utils/esbuild-config.d.ts +0 -29
- package/dist/utils/esbuild-config.d.ts.map +1 -1
- package/dist/utils/esbuild-config.js +151 -218
- package/dist/utils/esbuild-config.js.map +1 -6
- package/dist/utils/ngtsc-build-core.d.ts +49 -0
- package/dist/utils/ngtsc-build-core.d.ts.map +1 -0
- package/dist/utils/ngtsc-build-core.js +250 -0
- package/dist/utils/ngtsc-build-core.js.map +1 -0
- package/dist/utils/output-path-rewriter.d.ts +23 -0
- package/dist/utils/output-path-rewriter.d.ts.map +1 -0
- package/dist/utils/output-path-rewriter.js +74 -0
- package/dist/utils/output-path-rewriter.js.map +1 -0
- package/dist/utils/output-utils.js +55 -40
- package/dist/utils/output-utils.js.map +1 -6
- package/dist/utils/package-utils.d.ts +8 -0
- package/dist/utils/package-utils.d.ts.map +1 -1
- package/dist/utils/package-utils.js +103 -73
- package/dist/utils/package-utils.js.map +1 -6
- package/dist/utils/rebuild-manager.js +41 -44
- package/dist/utils/rebuild-manager.js.map +1 -6
- package/dist/utils/replace-deps.js +283 -184
- package/dist/utils/replace-deps.js.map +1 -6
- package/dist/utils/scss-compiler.d.ts +10 -0
- package/dist/utils/scss-compiler.d.ts.map +1 -0
- package/dist/utils/scss-compiler.js +36 -0
- package/dist/utils/scss-compiler.js.map +1 -0
- package/dist/utils/sd-config.js +29 -19
- package/dist/utils/sd-config.js.map +1 -6
- package/dist/utils/tsc-build.d.ts +36 -0
- package/dist/utils/tsc-build.d.ts.map +1 -0
- package/dist/utils/tsc-build.js +130 -0
- package/dist/utils/tsc-build.js.map +1 -0
- package/dist/utils/tsconfig.d.ts +7 -26
- package/dist/utils/tsconfig.d.ts.map +1 -1
- package/dist/utils/tsconfig.js +39 -64
- package/dist/utils/tsconfig.js.map +1 -6
- package/dist/utils/typecheck-non-package.d.ts +18 -0
- package/dist/utils/typecheck-non-package.d.ts.map +1 -0
- package/dist/utils/typecheck-non-package.js +64 -0
- package/dist/utils/typecheck-non-package.js.map +1 -0
- package/dist/utils/typecheck-serialization.js +58 -40
- package/dist/utils/typecheck-serialization.js.map +1 -6
- package/dist/utils/worker-events.js +48 -40
- package/dist/utils/worker-events.js.map +1 -6
- package/dist/utils/worker-utils.js +48 -28
- package/dist/utils/worker-utils.js.map +1 -6
- package/dist/vitest-plugin.d.ts +9 -0
- package/dist/vitest-plugin.d.ts.map +1 -0
- package/dist/vitest-plugin.js +85 -0
- package/dist/vitest-plugin.js.map +1 -0
- package/dist/workers/library-build.worker.d.ts +54 -0
- package/dist/workers/library-build.worker.d.ts.map +1 -0
- package/dist/workers/library-build.worker.js +97 -0
- package/dist/workers/library-build.worker.js.map +1 -0
- package/dist/workers/lint.worker.js +9 -6
- package/dist/workers/lint.worker.js.map +1 -6
- package/dist/workers/ngtsc-build.worker.d.ts +23 -0
- package/dist/workers/ngtsc-build.worker.d.ts.map +1 -0
- package/dist/workers/ngtsc-build.worker.js +98 -0
- package/dist/workers/ngtsc-build.worker.js.map +1 -0
- package/dist/workers/{server.worker.d.ts → server-build.worker.d.ts} +39 -29
- package/dist/workers/server-build.worker.d.ts.map +1 -0
- package/dist/workers/server-build.worker.js +399 -0
- package/dist/workers/server-build.worker.js.map +1 -0
- package/dist/workers/server-runtime.worker.d.ts +3 -2
- package/dist/workers/server-runtime.worker.d.ts.map +1 -1
- package/dist/workers/server-runtime.worker.js +100 -95
- package/dist/workers/server-runtime.worker.js.map +1 -6
- package/dist/workers/vite-build.worker.d.ts +56 -0
- package/dist/workers/vite-build.worker.d.ts.map +1 -0
- package/dist/workers/vite-build.worker.js +167 -0
- package/dist/workers/vite-build.worker.js.map +1 -0
- package/package.json +10 -16
- package/src/commands/check.ts +21 -3
- package/src/commands/dev.ts +10 -8
- package/src/commands/lint.ts +1 -1
- package/src/commands/publish.ts +4 -0
- package/src/commands/typecheck.ts +89 -256
- package/src/commands/watch.ts +9 -8
- package/src/engines/NgtscEngine.ts +190 -0
- package/src/engines/ServerEsbuildEngine.ts +195 -0
- package/src/engines/TscEngine.ts +189 -0
- package/src/engines/ViteEngine.ts +203 -0
- package/src/engines/index.ts +49 -0
- package/src/engines/types.ts +79 -0
- package/src/index.ts +0 -3
- package/src/infra/ResultCollector.ts +1 -1
- package/src/orchestrators/BuildOrchestrator.ts +87 -157
- package/src/orchestrators/DevWatchOrchestrator.ts +573 -0
- package/src/sd-cli-entry.ts +13 -116
- package/src/sd-config.types.ts +2 -0
- package/src/utils/angular-build.ts +157 -0
- package/src/utils/concurrency.ts +43 -0
- package/src/utils/esbuild-config.ts +1 -122
- package/src/utils/ngtsc-build-core.ts +379 -0
- package/src/utils/output-path-rewriter.ts +82 -0
- package/src/utils/package-utils.ts +20 -0
- package/src/utils/scss-compiler.ts +58 -0
- package/src/utils/tsc-build.ts +175 -0
- package/src/utils/tsconfig.ts +27 -95
- package/src/utils/typecheck-non-package.ts +87 -0
- package/src/vitest-plugin.ts +118 -0
- package/src/workers/library-build.worker.ts +153 -0
- package/src/workers/ngtsc-build.worker.ts +146 -0
- package/src/workers/server-build.worker.ts +565 -0
- package/src/workers/server-runtime.worker.ts +17 -26
- package/src/workers/vite-build.worker.ts +252 -0
- package/tests/commands/check.spec.ts +276 -0
- package/tests/commands/dev.spec.ts +53 -0
- package/tests/commands/lint.spec.ts +243 -0
- package/tests/commands/publish.spec.ts +1159 -0
- package/tests/commands/typecheck.spec.ts +294 -0
- package/tests/commands/watch.spec.ts +53 -0
- package/tests/engines/engine-selection.spec.ts +247 -0
- package/tests/engines/ngtsc-engine.spec.ts +274 -0
- package/tests/engines/server-esbuild-engine.spec.ts +256 -0
- package/tests/engines/tsc-engine.spec.ts +213 -0
- package/tests/engines/vite-engine.spec.ts +358 -0
- package/tests/infra/result-collector.spec.ts +46 -0
- package/tests/infra/signal-handler.spec.ts +32 -0
- package/tests/infra/worker-manager.spec.ts +63 -0
- package/tests/orchestrators/build-orchestrator.spec.ts +772 -0
- package/tests/orchestrators/dev-watch-orchestrator.spec.ts +1173 -0
- package/tests/sd-cli-entry.spec.ts +49 -0
- package/tests/utils/angular-build.spec.ts +251 -0
- package/tests/utils/build-env.spec.ts +33 -0
- package/tests/utils/concurrency.spec.ts +65 -0
- package/tests/utils/copy-src.spec.ts +144 -0
- package/tests/utils/esbuild-config.spec.ts +186 -0
- package/tests/utils/external-modules.spec.ts +161 -0
- package/tests/utils/ngtsc-scss-refactor.spec.ts +66 -0
- package/tests/utils/output-path-rewriter.spec.ts +165 -0
- package/tests/utils/output-utils.spec.ts +104 -0
- package/tests/utils/package-utils.spec.ts +52 -0
- package/tests/utils/rebuild-manager.spec.ts +30 -27
- package/tests/utils/replace-deps.spec.ts +69 -0
- package/tests/utils/scss-compiler.spec.ts +131 -0
- package/tests/utils/sd-config.spec.ts +77 -0
- package/tests/utils/tsc-build.spec.ts +358 -0
- package/tests/utils/tsconfig-angular.spec.ts +71 -0
- package/tests/utils/typecheck-non-package.spec.ts +120 -0
- package/tests/utils/worker-events.spec.ts +155 -0
- package/tests/utils/worker-utils.spec.ts +43 -0
- package/tests/vitest-plugin-cwd.spec.ts +68 -0
- package/tests/vitest-plugin.spec.ts +103 -0
- package/tests/workers/library-build-worker.spec.ts +258 -0
- package/tests/workers/ngtsc-build-worker.spec.ts +187 -0
- package/tests/workers/server-build-worker.spec.ts +566 -0
- package/tests/workers/server-runtime-worker.spec.ts +251 -0
- package/README.md +0 -295
- package/dist/builders/BaseBuilder.d.ts +0 -88
- package/dist/builders/BaseBuilder.d.ts.map +0 -1
- package/dist/builders/BaseBuilder.js +0 -142
- package/dist/builders/BaseBuilder.js.map +0 -6
- package/dist/builders/DtsBuilder.d.ts +0 -22
- package/dist/builders/DtsBuilder.d.ts.map +0 -1
- package/dist/builders/DtsBuilder.js +0 -72
- package/dist/builders/DtsBuilder.js.map +0 -6
- package/dist/builders/LibraryBuilder.d.ts +0 -22
- package/dist/builders/LibraryBuilder.d.ts.map +0 -1
- package/dist/builders/LibraryBuilder.js +0 -85
- package/dist/builders/LibraryBuilder.js.map +0 -6
- package/dist/builders/types.d.ts +0 -55
- package/dist/builders/types.d.ts.map +0 -1
- package/dist/builders/types.js +0 -1
- package/dist/builders/types.js.map +0 -6
- package/dist/capacitor/capacitor.d.ts +0 -151
- package/dist/capacitor/capacitor.d.ts.map +0 -1
- package/dist/capacitor/capacitor.js +0 -694
- package/dist/capacitor/capacitor.js.map +0 -6
- package/dist/commands/device.d.ts +0 -22
- package/dist/commands/device.d.ts.map +0 -1
- package/dist/commands/device.js +0 -98
- package/dist/commands/device.js.map +0 -6
- package/dist/commands/init.d.ts +0 -14
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -72
- package/dist/commands/init.js.map +0 -6
- package/dist/electron/electron.d.ts +0 -84
- package/dist/electron/electron.d.ts.map +0 -1
- package/dist/electron/electron.js +0 -263
- package/dist/electron/electron.js.map +0 -6
- package/dist/orchestrators/DevOrchestrator.d.ts +0 -83
- package/dist/orchestrators/DevOrchestrator.d.ts.map +0 -1
- package/dist/orchestrators/DevOrchestrator.js +0 -540
- package/dist/orchestrators/DevOrchestrator.js.map +0 -6
- package/dist/orchestrators/WatchOrchestrator.d.ts +0 -57
- package/dist/orchestrators/WatchOrchestrator.d.ts.map +0 -1
- package/dist/orchestrators/WatchOrchestrator.js +0 -199
- package/dist/orchestrators/WatchOrchestrator.js.map +0 -6
- package/dist/utils/tailwind-config-deps.d.ts +0 -8
- package/dist/utils/tailwind-config-deps.d.ts.map +0 -1
- package/dist/utils/tailwind-config-deps.js +0 -82
- package/dist/utils/tailwind-config-deps.js.map +0 -6
- package/dist/utils/template.d.ts +0 -14
- package/dist/utils/template.d.ts.map +0 -1
- package/dist/utils/template.js +0 -33
- package/dist/utils/template.js.map +0 -6
- package/dist/utils/vite-config.d.ts +0 -35
- package/dist/utils/vite-config.d.ts.map +0 -1
- package/dist/utils/vite-config.js +0 -259
- package/dist/utils/vite-config.js.map +0 -6
- package/dist/workers/client.worker.d.ts +0 -83
- package/dist/workers/client.worker.d.ts.map +0 -1
- package/dist/workers/client.worker.js +0 -111
- package/dist/workers/client.worker.js.map +0 -6
- package/dist/workers/dts.worker.d.ts +0 -75
- package/dist/workers/dts.worker.d.ts.map +0 -1
- package/dist/workers/dts.worker.js +0 -270
- package/dist/workers/dts.worker.js.map +0 -6
- package/dist/workers/library.worker.d.ts +0 -75
- package/dist/workers/library.worker.d.ts.map +0 -1
- package/dist/workers/library.worker.js +0 -166
- package/dist/workers/library.worker.js.map +0 -6
- package/dist/workers/server.worker.d.ts.map +0 -1
- package/dist/workers/server.worker.js +0 -482
- package/dist/workers/server.worker.js.map +0 -6
- package/src/builders/BaseBuilder.ts +0 -218
- package/src/builders/DtsBuilder.ts +0 -92
- package/src/builders/LibraryBuilder.ts +0 -110
- package/src/builders/types.ts +0 -60
- package/src/capacitor/capacitor.ts +0 -931
- package/src/commands/device.ts +0 -140
- package/src/commands/init.ts +0 -113
- package/src/electron/electron.ts +0 -362
- package/src/orchestrators/DevOrchestrator.ts +0 -744
- package/src/orchestrators/WatchOrchestrator.ts +0 -277
- package/src/utils/tailwind-config-deps.ts +0 -98
- package/src/utils/template.ts +0 -56
- package/src/utils/vite-config.ts +0 -390
- package/src/workers/client.worker.ts +0 -250
- package/src/workers/dts.worker.ts +0 -453
- package/src/workers/library.worker.ts +0 -316
- package/src/workers/server.worker.ts +0 -734
- package/templates/init/.gitignore.hbs +0 -34
- package/templates/init/.npmrc.hbs +0 -1
- package/templates/init/.prettierignore +0 -1
- package/templates/init/.prettierrc.yaml +0 -12
- package/templates/init/eslint.config.ts +0 -15
- package/templates/init/mise.toml +0 -3
- package/templates/init/package.json.hbs +0 -32
- package/templates/init/packages/client-admin/index.html.hbs +0 -144
- package/templates/init/packages/client-admin/package.json.hbs +0 -27
- package/templates/init/packages/client-admin/public/assets/logo-landscape.png +0 -0
- package/templates/init/packages/client-admin/public/assets/logo.png +0 -0
- package/templates/init/packages/client-admin/public/favicon.ico +0 -0
- package/templates/init/packages/client-admin/src/App.tsx +0 -42
- package/templates/init/packages/client-admin/src/dev/DevDialog.tsx +0 -34
- package/templates/init/packages/client-admin/src/events/AuthChangeEvent.ts +0 -3
- package/templates/init/packages/client-admin/src/main.css +0 -4
- package/templates/init/packages/client-admin/src/main.tsx.hbs +0 -146
- package/templates/init/packages/client-admin/src/providers/AppServiceProvider.tsx.hbs +0 -103
- package/templates/init/packages/client-admin/src/providers/AppStructureProvider.tsx +0 -84
- package/templates/init/packages/client-admin/src/providers/AuthProvider.tsx.hbs +0 -96
- package/templates/init/packages/client-admin/src/providers/configureSharedData.ts.hbs +0 -67
- package/templates/init/packages/client-admin/src/views/auth/LoginView.tsx +0 -132
- package/templates/init/packages/client-admin/src/views/home/HomeView.tsx +0 -108
- package/templates/init/packages/client-admin/src/views/home/base/employee/EmployeeDetail.tsx.hbs +0 -243
- package/templates/init/packages/client-admin/src/views/home/base/employee/EmployeeSheet.tsx.hbs +0 -271
- package/templates/init/packages/client-admin/src/views/home/base/role-permission/RoleDetail.tsx.hbs +0 -146
- package/templates/init/packages/client-admin/src/views/home/base/role-permission/RolePermissionDetail.tsx.hbs +0 -121
- package/templates/init/packages/client-admin/src/views/home/base/role-permission/RolePermissionView.tsx +0 -52
- package/templates/init/packages/client-admin/src/views/home/base/role-permission/RoleSheet.tsx.hbs +0 -125
- package/templates/init/packages/client-admin/src/views/home/main/MainView.tsx.hbs +0 -13
- package/templates/init/packages/client-admin/src/views/home/my-info/MyInfoDetail.tsx.hbs +0 -241
- package/templates/init/packages/client-admin/src/views/home/system/system-log/SystemLogSheet.tsx.hbs +0 -169
- package/templates/init/packages/client-admin/src/views/not-found/NotFoundView.tsx +0 -15
- package/templates/init/packages/client-admin/tailwind.config.ts +0 -10
- package/templates/init/packages/db-main/package.json.hbs +0 -13
- package/templates/init/packages/db-main/src/MainDbContext.ts +0 -22
- package/templates/init/packages/db-main/src/dataLogExt.ts +0 -127
- package/templates/init/packages/db-main/src/index.ts +0 -14
- package/templates/init/packages/db-main/src/tables/base/Employee.ts +0 -24
- package/templates/init/packages/db-main/src/tables/base/EmployeeConfig.ts +0 -13
- package/templates/init/packages/db-main/src/tables/base/Role.ts +0 -9
- package/templates/init/packages/db-main/src/tables/base/RolePermission.ts +0 -13
- package/templates/init/packages/db-main/src/tables/system/_DataLog.ts +0 -19
- package/templates/init/packages/db-main/src/tables/system/_Log.ts +0 -16
- package/templates/init/packages/server/package.json.hbs +0 -20
- package/templates/init/packages/server/public-dev/dev//354/264/210/352/270/260/355/231/224.xlsx +0 -0
- package/templates/init/packages/server/src/index.ts +0 -4
- package/templates/init/packages/server/src/main.ts.hbs +0 -34
- package/templates/init/packages/server/src/services/AuthService.ts.hbs +0 -171
- package/templates/init/packages/server/src/services/DevService.ts.hbs +0 -94
- package/templates/init/packages/server/src/services/EmployeeService.ts.hbs +0 -122
- package/templates/init/packages/server/src/services/RoleService.ts.hbs +0 -59
- package/templates/init/pnpm-workspace.yaml +0 -15
- package/templates/init/sd.config.ts.hbs +0 -48
- package/templates/init/tsconfig.json.hbs +0 -39
- package/templates/init/vitest.config.ts +0 -36
- package/tests/capacitor-exclude.spec.ts +0 -78
- package/tests/capacitor.spec.ts +0 -49
- package/tests/copy-src.spec.ts +0 -50
- package/tests/electron-exclude.spec.ts +0 -61
- package/tests/get-compiler-options-for-package.spec.ts +0 -80
- package/tests/get-package-source-files.spec.ts +0 -139
- package/tests/get-types-from-package-json.spec.ts +0 -92
- package/tests/infra/ResultCollector.spec.ts +0 -30
- package/tests/infra/SignalHandler.spec.ts +0 -38
- package/tests/infra/WorkerManager.spec.ts +0 -63
- package/tests/load-ignore-patterns.spec.ts +0 -163
- package/tests/load-sd-config.spec.ts +0 -100
- package/tests/package-utils.spec.ts +0 -188
- package/tests/parse-root-tsconfig.spec.ts +0 -89
- package/tests/publish-config-narrowing.spec.ts +0 -20
- package/tests/replace-deps.spec.ts +0 -308
- package/tests/run-lint.spec.ts +0 -366
- package/tests/run-typecheck.spec.ts +0 -544
- package/tests/run-watch.spec.ts +0 -76
- package/tests/sd-cli.spec.ts +0 -265
- package/tests/sd-public-dev-plugin-mime.spec.ts +0 -19
- package/tests/tailwind-config-deps.spec.ts +0 -30
- package/tests/template.spec.ts +0 -70
- package/tests/vite-config-exclude.spec.ts +0 -35
- package/tests/vite-config-outdir.spec.ts +0 -38
- package/tests/write-changed-output-files.spec.ts +0 -97
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach, beforeAll, afterAll } from "vitest";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import os from "os";
|
|
4
|
+
import fsp from "fs/promises";
|
|
5
|
+
|
|
6
|
+
// Capture workerFns passed to createWorker
|
|
7
|
+
let workerFns: Record<string, (...args: any[]) => any>;
|
|
8
|
+
let mockSend: ReturnType<typeof vi.fn>;
|
|
9
|
+
|
|
10
|
+
vi.mock("@simplysm/core-node", () => ({
|
|
11
|
+
createWorker: vi.fn((fns: Record<string, Function>) => {
|
|
12
|
+
workerFns = fns as any;
|
|
13
|
+
mockSend = vi.fn();
|
|
14
|
+
return { send: mockSend };
|
|
15
|
+
}),
|
|
16
|
+
}));
|
|
17
|
+
|
|
18
|
+
vi.mock("@simplysm/core-common", () => ({
|
|
19
|
+
err: { message: (e: any) => e?.message ?? String(e) },
|
|
20
|
+
}));
|
|
21
|
+
|
|
22
|
+
vi.mock("consola", () => ({
|
|
23
|
+
consola: {
|
|
24
|
+
withTag: vi.fn(() => ({
|
|
25
|
+
debug: vi.fn(),
|
|
26
|
+
warn: vi.fn(),
|
|
27
|
+
info: vi.fn(),
|
|
28
|
+
error: vi.fn(),
|
|
29
|
+
})),
|
|
30
|
+
},
|
|
31
|
+
}));
|
|
32
|
+
|
|
33
|
+
vi.mock("../../src/utils/worker-utils", () => ({
|
|
34
|
+
registerCleanupHandlers: vi.fn(),
|
|
35
|
+
applyDebugLevel: vi.fn(),
|
|
36
|
+
}));
|
|
37
|
+
|
|
38
|
+
// @fastify/http-proxy mock
|
|
39
|
+
const mockProxyPlugin = vi.fn();
|
|
40
|
+
vi.mock("@fastify/http-proxy", () => ({
|
|
41
|
+
default: mockProxyPlugin,
|
|
42
|
+
}));
|
|
43
|
+
|
|
44
|
+
// Port availability mock
|
|
45
|
+
let portCheckResults: boolean[] = [];
|
|
46
|
+
let portCheckIndex = 0;
|
|
47
|
+
|
|
48
|
+
vi.mock("net", () => ({
|
|
49
|
+
default: {
|
|
50
|
+
createServer: vi.fn(() => {
|
|
51
|
+
const handlers: Record<string, Function> = {};
|
|
52
|
+
return {
|
|
53
|
+
once: (event: string, cb: Function) => {
|
|
54
|
+
handlers[event] = cb;
|
|
55
|
+
},
|
|
56
|
+
listen: () => {
|
|
57
|
+
const isAvailable = portCheckResults[portCheckIndex++] ?? true;
|
|
58
|
+
if (isAvailable) {
|
|
59
|
+
const _closeFn = (cb?: () => void) => {
|
|
60
|
+
cb?.();
|
|
61
|
+
};
|
|
62
|
+
handlers["listening"]();
|
|
63
|
+
} else {
|
|
64
|
+
handlers["error"]();
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
close: (cb?: () => void) => {
|
|
68
|
+
cb?.();
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}),
|
|
72
|
+
},
|
|
73
|
+
}));
|
|
74
|
+
|
|
75
|
+
// Import triggers createWorker
|
|
76
|
+
await import("../../src/workers/server-runtime.worker");
|
|
77
|
+
|
|
78
|
+
// Create a temp mock main.js that exports globalThis.__sdCliTestServer
|
|
79
|
+
const mockMainJsPath = path.join(os.tmpdir(), `sd-cli-test-main-${Date.now()}.mjs`);
|
|
80
|
+
|
|
81
|
+
const mockRegister = vi.fn().mockResolvedValue(undefined);
|
|
82
|
+
|
|
83
|
+
const mockServer = {
|
|
84
|
+
options: { port: 3000 },
|
|
85
|
+
listen: vi.fn(async () => {}),
|
|
86
|
+
close: vi.fn(async () => {}),
|
|
87
|
+
fastify: { register: mockRegister },
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
beforeAll(async () => {
|
|
91
|
+
(globalThis as any).__sdCliTestServer = mockServer;
|
|
92
|
+
await fsp.writeFile(
|
|
93
|
+
mockMainJsPath,
|
|
94
|
+
"export const server = globalThis.__sdCliTestServer;\n",
|
|
95
|
+
);
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
afterAll(async () => {
|
|
99
|
+
await fsp.unlink(mockMainJsPath).catch(() => {});
|
|
100
|
+
delete (globalThis as any).__sdCliTestServer;
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
describe("server-runtime.worker start", () => {
|
|
104
|
+
const savedEnv: Record<string, string | undefined> = {};
|
|
105
|
+
|
|
106
|
+
beforeEach(() => {
|
|
107
|
+
mockSend.mockClear();
|
|
108
|
+
mockServer.listen.mockClear();
|
|
109
|
+
mockServer.close.mockClear();
|
|
110
|
+
mockRegister.mockClear();
|
|
111
|
+
mockProxyPlugin.mockClear();
|
|
112
|
+
mockServer.options.port = 3000;
|
|
113
|
+
portCheckResults = [];
|
|
114
|
+
portCheckIndex = 0;
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
afterEach(() => {
|
|
118
|
+
// Restore modified env vars
|
|
119
|
+
for (const [key, value] of Object.entries(savedEnv)) {
|
|
120
|
+
if (value === undefined) {
|
|
121
|
+
delete process.env[key];
|
|
122
|
+
} else {
|
|
123
|
+
process.env[key] = value;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
function trackEnv(key: string): void {
|
|
129
|
+
savedEnv[key] = process.env[key];
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
it("injects env vars into process.env before server start", async () => {
|
|
133
|
+
trackEnv("TEST_DB_HOST");
|
|
134
|
+
trackEnv("TEST_API_KEY");
|
|
135
|
+
|
|
136
|
+
await workerFns["start"]({
|
|
137
|
+
mainJsPath: mockMainJsPath,
|
|
138
|
+
env: { TEST_DB_HOST: "localhost", TEST_API_KEY: "secret123" },
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
expect(process.env["TEST_DB_HOST"]).toBe("localhost");
|
|
142
|
+
expect(process.env["TEST_API_KEY"]).toBe("secret123");
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
it("calls server.listen() and sends serverReady event with port", async () => {
|
|
146
|
+
portCheckResults = [true]; // Port 3000 available
|
|
147
|
+
|
|
148
|
+
await workerFns["start"]({ mainJsPath: mockMainJsPath });
|
|
149
|
+
|
|
150
|
+
expect(mockServer.listen).toHaveBeenCalled();
|
|
151
|
+
expect(mockSend).toHaveBeenCalledWith("serverReady", { port: 3000 });
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
it("auto-increments port on conflict and updates server.options.port", async () => {
|
|
155
|
+
portCheckResults = [false, false, true]; // 3000 taken, 3001 taken, 3002 available
|
|
156
|
+
mockServer.options.port = 3000;
|
|
157
|
+
|
|
158
|
+
await workerFns["start"]({ mainJsPath: mockMainJsPath });
|
|
159
|
+
|
|
160
|
+
expect(mockServer.options.port).toBe(3002);
|
|
161
|
+
expect(mockSend).toHaveBeenCalledWith("serverReady", { port: 3002 });
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
it("sends error event when all ports are unavailable (20 retries)", async () => {
|
|
165
|
+
portCheckResults = Array(20).fill(false);
|
|
166
|
+
mockServer.options.port = 3000;
|
|
167
|
+
|
|
168
|
+
await workerFns["start"]({ mainJsPath: mockMainJsPath });
|
|
169
|
+
|
|
170
|
+
expect(mockSend).toHaveBeenCalledWith(
|
|
171
|
+
"error",
|
|
172
|
+
expect.objectContaining({
|
|
173
|
+
message: expect.stringContaining("No available port"),
|
|
174
|
+
}),
|
|
175
|
+
);
|
|
176
|
+
expect(mockSend).not.toHaveBeenCalledWith("serverReady", expect.anything());
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
// Acceptance: Scenario "서버 런타임에 클라이언트 프록시 등록"
|
|
180
|
+
it("registers @fastify/http-proxy for each client port before listen", async () => {
|
|
181
|
+
portCheckResults = [true];
|
|
182
|
+
|
|
183
|
+
await workerFns["start"]({
|
|
184
|
+
mainJsPath: mockMainJsPath,
|
|
185
|
+
clientPorts: { "client-a": 54321, "client-b": 54322 },
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
expect(mockRegister).toHaveBeenCalledTimes(2);
|
|
189
|
+
expect(mockRegister).toHaveBeenCalledWith(
|
|
190
|
+
mockProxyPlugin,
|
|
191
|
+
expect.objectContaining({
|
|
192
|
+
prefix: "/client-a",
|
|
193
|
+
upstream: "http://127.0.0.1:54321",
|
|
194
|
+
rewritePrefix: "/client-a",
|
|
195
|
+
websocket: true,
|
|
196
|
+
}),
|
|
197
|
+
);
|
|
198
|
+
expect(mockRegister).toHaveBeenCalledWith(
|
|
199
|
+
mockProxyPlugin,
|
|
200
|
+
expect.objectContaining({
|
|
201
|
+
prefix: "/client-b",
|
|
202
|
+
upstream: "http://127.0.0.1:54322",
|
|
203
|
+
rewritePrefix: "/client-b",
|
|
204
|
+
websocket: true,
|
|
205
|
+
}),
|
|
206
|
+
);
|
|
207
|
+
expect(mockSend).toHaveBeenCalledWith("serverReady", { port: 3000 });
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
// Unit: no proxy when clientPorts is undefined
|
|
211
|
+
it("does not register proxy when clientPorts is undefined", async () => {
|
|
212
|
+
portCheckResults = [true];
|
|
213
|
+
|
|
214
|
+
await workerFns["start"]({
|
|
215
|
+
mainJsPath: mockMainJsPath,
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
expect(mockRegister).not.toHaveBeenCalled();
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
// Unit: empty clientPorts
|
|
222
|
+
it("does not register proxy when clientPorts is empty", async () => {
|
|
223
|
+
portCheckResults = [true];
|
|
224
|
+
|
|
225
|
+
await workerFns["start"]({
|
|
226
|
+
mainJsPath: mockMainJsPath,
|
|
227
|
+
clientPorts: {},
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
expect(mockRegister).not.toHaveBeenCalled();
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
it("sends error event when main.js does not export server", async () => {
|
|
234
|
+
// Create a temp file without server export
|
|
235
|
+
const noServerPath = path.join(os.tmpdir(), `sd-cli-test-no-server-${Date.now()}.mjs`);
|
|
236
|
+
await fsp.writeFile(noServerPath, "export const notAServer = true;\n");
|
|
237
|
+
|
|
238
|
+
try {
|
|
239
|
+
await workerFns["start"]({ mainJsPath: noServerPath });
|
|
240
|
+
|
|
241
|
+
expect(mockSend).toHaveBeenCalledWith(
|
|
242
|
+
"error",
|
|
243
|
+
expect.objectContaining({
|
|
244
|
+
message: expect.stringContaining("must export a server instance"),
|
|
245
|
+
}),
|
|
246
|
+
);
|
|
247
|
+
} finally {
|
|
248
|
+
await fsp.unlink(noServerPath).catch(() => {});
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
});
|
package/README.md
DELETED
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
# @simplysm/sd-cli
|
|
2
|
-
|
|
3
|
-
Simplysm package - CLI tool. Provides monorepo build, dev server, publish, and code quality tooling for Simplysm projects. Also exports configuration types and a Vite config factory for client packages.
|
|
4
|
-
|
|
5
|
-
## Installation
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install @simplysm/sd-cli
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
## API Overview
|
|
12
|
-
|
|
13
|
-
### Config Types
|
|
14
|
-
|
|
15
|
-
| API | Type | Description |
|
|
16
|
-
|-----|------|-------------|
|
|
17
|
-
| `SdConfig` | interface | Top-level `sd.config.ts` configuration |
|
|
18
|
-
| `SdConfigFn` | type | Function signature for `sd.config.ts` default export |
|
|
19
|
-
| `SdConfigParams` | interface | Parameters passed to `SdConfigFn` |
|
|
20
|
-
| `SdPackageConfig` | type | Union of all package config types |
|
|
21
|
-
| `SdBuildPackageConfig` | interface | Package config for node/browser/neutral targets |
|
|
22
|
-
| `SdClientPackageConfig` | interface | Client package config (Vite dev server) |
|
|
23
|
-
| `SdServerPackageConfig` | interface | Server package config (Fastify server) |
|
|
24
|
-
| `SdScriptsPackageConfig` | interface | Scripts-only package config |
|
|
25
|
-
| `BuildTarget` | type | Build target type (`"node" \| "browser" \| "neutral"`) |
|
|
26
|
-
| `SdPublishConfig` | type | Union of all publish config types |
|
|
27
|
-
| `SdNpmPublishConfig` | interface | npm registry publish config |
|
|
28
|
-
| `SdLocalDirectoryPublishConfig` | interface | Local directory publish config |
|
|
29
|
-
| `SdStoragePublishConfig` | interface | FTP/FTPS/SFTP publish config |
|
|
30
|
-
| `SdPostPublishScriptConfig` | interface | Post-publish script config |
|
|
31
|
-
| `SdCapacitorConfig` | interface | Capacitor configuration |
|
|
32
|
-
| `SdCapacitorAndroidConfig` | interface | Capacitor Android platform config |
|
|
33
|
-
| `SdCapacitorSignConfig` | interface | Capacitor Android signing config |
|
|
34
|
-
| `SdCapacitorPermission` | interface | Capacitor Android permission config |
|
|
35
|
-
| `SdCapacitorIntentFilter` | interface | Capacitor Android Intent Filter config |
|
|
36
|
-
| `SdElectronConfig` | interface | Electron configuration |
|
|
37
|
-
| `SdWatchHookConfig` | interface | Watch hook config for scripts packages |
|
|
38
|
-
|
|
39
|
-
### Vite Utilities
|
|
40
|
-
|
|
41
|
-
| API | Type | Description |
|
|
42
|
-
|-----|------|-------------|
|
|
43
|
-
| `createViteConfig` | function | Create Vite config for SolidJS + Tailwind client packages |
|
|
44
|
-
| `ViteConfigOptions` | interface | Options for `createViteConfig` |
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
### `SdConfig`
|
|
49
|
-
|
|
50
|
-
| Field | Type | Description |
|
|
51
|
-
|-------|------|-------------|
|
|
52
|
-
| `packages` | `Record<string, SdPackageConfig \| undefined>` | Per-package configuration (key: subdirectory name under `packages/`) |
|
|
53
|
-
| `replaceDeps` | `Record<string, string>?` | Dependency replacement config (symlink local sources) |
|
|
54
|
-
| `postPublish` | `SdPostPublishScriptConfig[]?` | Scripts to execute after deployment |
|
|
55
|
-
|
|
56
|
-
### `SdConfigFn`
|
|
57
|
-
|
|
58
|
-
```typescript
|
|
59
|
-
type SdConfigFn = (params: SdConfigParams) => SdConfig | Promise<SdConfig>
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### `SdConfigParams`
|
|
63
|
-
|
|
64
|
-
| Field | Type | Description |
|
|
65
|
-
|-------|------|-------------|
|
|
66
|
-
| `cwd` | `string` | Current working directory |
|
|
67
|
-
| `dev` | `boolean` | Development mode flag |
|
|
68
|
-
| `options` | `string[]` | Additional options (from CLI `-o` flag) |
|
|
69
|
-
|
|
70
|
-
### `BuildTarget`
|
|
71
|
-
|
|
72
|
-
```typescript
|
|
73
|
-
type BuildTarget = "node" | "browser" | "neutral"
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### `SdPackageConfig`
|
|
77
|
-
|
|
78
|
-
```typescript
|
|
79
|
-
type SdPackageConfig =
|
|
80
|
-
| SdBuildPackageConfig
|
|
81
|
-
| SdClientPackageConfig
|
|
82
|
-
| SdServerPackageConfig
|
|
83
|
-
| SdScriptsPackageConfig
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### `SdBuildPackageConfig`
|
|
87
|
-
|
|
88
|
-
| Field | Type | Description |
|
|
89
|
-
|-------|------|-------------|
|
|
90
|
-
| `target` | `BuildTarget` | Build target |
|
|
91
|
-
| `publish` | `SdPublishConfig?` | Publish configuration |
|
|
92
|
-
| `copySrc` | `string[]?` | Glob patterns for files to copy from `src/` to `dist/` |
|
|
93
|
-
|
|
94
|
-
### `SdClientPackageConfig`
|
|
95
|
-
|
|
96
|
-
| Field | Type | Description |
|
|
97
|
-
|-------|------|-------------|
|
|
98
|
-
| `target` | `"client"` | Build target |
|
|
99
|
-
| `server` | `string \| number` | Server package name or Vite port number |
|
|
100
|
-
| `env` | `Record<string, string>?` | Environment variables for build |
|
|
101
|
-
| `publish` | `SdPublishConfig?` | Publish configuration |
|
|
102
|
-
| `capacitor` | `SdCapacitorConfig?` | Capacitor configuration |
|
|
103
|
-
| `electron` | `SdElectronConfig?` | Electron configuration |
|
|
104
|
-
| `configs` | `Record<string, unknown>?` | Runtime config (written to `dist/.config.json`) |
|
|
105
|
-
| `exclude` | `string[]?` | Packages to exclude from Vite optimizeDeps |
|
|
106
|
-
|
|
107
|
-
### `SdServerPackageConfig`
|
|
108
|
-
|
|
109
|
-
| Field | Type | Description |
|
|
110
|
-
|-------|------|-------------|
|
|
111
|
-
| `target` | `"server"` | Build target |
|
|
112
|
-
| `env` | `Record<string, string>?` | Environment variables for build |
|
|
113
|
-
| `publish` | `SdPublishConfig?` | Publish configuration |
|
|
114
|
-
| `configs` | `Record<string, unknown>?` | Runtime config (written to `dist/.config.json`) |
|
|
115
|
-
| `externals` | `string[]?` | External modules for esbuild |
|
|
116
|
-
| `pm2` | `{ name?: string; ignoreWatchPaths?: string[] }?` | PM2 configuration |
|
|
117
|
-
| `packageManager` | `"volta" \| "mise"?` | Package manager setting |
|
|
118
|
-
|
|
119
|
-
### `SdScriptsPackageConfig`
|
|
120
|
-
|
|
121
|
-
| Field | Type | Description |
|
|
122
|
-
|-------|------|-------------|
|
|
123
|
-
| `target` | `"scripts"` | Build target |
|
|
124
|
-
| `publish` | `SdPublishConfig?` | Publish configuration |
|
|
125
|
-
| `watch` | `SdWatchHookConfig?` | Watch hook configuration |
|
|
126
|
-
|
|
127
|
-
### `SdWatchHookConfig`
|
|
128
|
-
|
|
129
|
-
| Field | Type | Description |
|
|
130
|
-
|-------|------|-------------|
|
|
131
|
-
| `target` | `string[]` | Glob patterns to watch (relative to package directory) |
|
|
132
|
-
| `cmd` | `string` | Command to execute on change |
|
|
133
|
-
| `args` | `string[]?` | Command arguments |
|
|
134
|
-
|
|
135
|
-
### `SdPublishConfig`
|
|
136
|
-
|
|
137
|
-
```typescript
|
|
138
|
-
type SdPublishConfig = SdNpmPublishConfig | SdLocalDirectoryPublishConfig | SdStoragePublishConfig
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
### `SdNpmPublishConfig`
|
|
142
|
-
|
|
143
|
-
| Field | Type | Description |
|
|
144
|
-
|-------|------|-------------|
|
|
145
|
-
| `type` | `"npm"` | Publish type |
|
|
146
|
-
|
|
147
|
-
### `SdLocalDirectoryPublishConfig`
|
|
148
|
-
|
|
149
|
-
| Field | Type | Description |
|
|
150
|
-
|-------|------|-------------|
|
|
151
|
-
| `type` | `"local-directory"` | Publish type |
|
|
152
|
-
| `path` | `string` | Target path (supports `%VER%`, `%PROJECT%` substitution) |
|
|
153
|
-
|
|
154
|
-
### `SdStoragePublishConfig`
|
|
155
|
-
|
|
156
|
-
| Field | Type | Description |
|
|
157
|
-
|-------|------|-------------|
|
|
158
|
-
| `type` | `"ftp" \| "ftps" \| "sftp"` | Protocol type |
|
|
159
|
-
| `host` | `string` | Server hostname |
|
|
160
|
-
| `port` | `number?` | Server port |
|
|
161
|
-
| `path` | `string?` | Remote path |
|
|
162
|
-
| `user` | `string?` | Username |
|
|
163
|
-
| `password` | `string?` | Password |
|
|
164
|
-
|
|
165
|
-
### `SdPostPublishScriptConfig`
|
|
166
|
-
|
|
167
|
-
| Field | Type | Description |
|
|
168
|
-
|-------|------|-------------|
|
|
169
|
-
| `type` | `"script"` | Config type |
|
|
170
|
-
| `cmd` | `string` | Command to execute |
|
|
171
|
-
| `args` | `string[]` | Script arguments (supports `%VER%`, `%PROJECT%` substitution) |
|
|
172
|
-
|
|
173
|
-
### `SdCapacitorConfig`
|
|
174
|
-
|
|
175
|
-
| Field | Type | Description |
|
|
176
|
-
|-------|------|-------------|
|
|
177
|
-
| `appId` | `string` | App ID (e.g., `"com.example.app"`) |
|
|
178
|
-
| `appName` | `string` | App name |
|
|
179
|
-
| `plugins` | `Record<string, Record<string, unknown> \| true>?` | Capacitor plugin configuration |
|
|
180
|
-
| `icon` | `string?` | App icon path (relative to package directory) |
|
|
181
|
-
| `debug` | `boolean?` | Debug build flag |
|
|
182
|
-
| `platform` | `{ android?: SdCapacitorAndroidConfig }?` | Per-platform configuration |
|
|
183
|
-
|
|
184
|
-
### `SdCapacitorAndroidConfig`
|
|
185
|
-
|
|
186
|
-
| Field | Type | Description |
|
|
187
|
-
|-------|------|-------------|
|
|
188
|
-
| `config` | `Record<string, string>?` | AndroidManifest.xml application tag attributes |
|
|
189
|
-
| `bundle` | `boolean?` | AAB bundle build flag (false for APK) |
|
|
190
|
-
| `intentFilters` | `SdCapacitorIntentFilter[]?` | Intent Filter configuration |
|
|
191
|
-
| `sign` | `SdCapacitorSignConfig?` | APK/AAB signing configuration |
|
|
192
|
-
| `sdkVersion` | `number?` | Android SDK version (minSdk, targetSdk) |
|
|
193
|
-
| `permissions` | `SdCapacitorPermission[]?` | Additional permission configuration |
|
|
194
|
-
|
|
195
|
-
### `SdCapacitorSignConfig`
|
|
196
|
-
|
|
197
|
-
| Field | Type | Description |
|
|
198
|
-
|-------|------|-------------|
|
|
199
|
-
| `keystore` | `string` | Keystore file path (relative to package directory) |
|
|
200
|
-
| `storePassword` | `string` | Keystore password |
|
|
201
|
-
| `alias` | `string` | Key alias |
|
|
202
|
-
| `password` | `string` | Key password |
|
|
203
|
-
| `keystoreType` | `string?` | Keystore type (default: `"jks"`) |
|
|
204
|
-
|
|
205
|
-
### `SdCapacitorPermission`
|
|
206
|
-
|
|
207
|
-
| Field | Type | Description |
|
|
208
|
-
|-------|------|-------------|
|
|
209
|
-
| `name` | `string` | Permission name (e.g., `"CAMERA"`) |
|
|
210
|
-
| `maxSdkVersion` | `number?` | Maximum SDK version |
|
|
211
|
-
| `ignore` | `string?` | `tools:ignore` attribute value |
|
|
212
|
-
|
|
213
|
-
### `SdCapacitorIntentFilter`
|
|
214
|
-
|
|
215
|
-
| Field | Type | Description |
|
|
216
|
-
|-------|------|-------------|
|
|
217
|
-
| `action` | `string?` | Intent action (e.g., `"android.intent.action.VIEW"`) |
|
|
218
|
-
| `category` | `string?` | Intent category (e.g., `"android.intent.category.DEFAULT"`) |
|
|
219
|
-
|
|
220
|
-
### `SdElectronConfig`
|
|
221
|
-
|
|
222
|
-
| Field | Type | Description |
|
|
223
|
-
|-------|------|-------------|
|
|
224
|
-
| `appId` | `string` | Electron app ID |
|
|
225
|
-
| `portable` | `boolean?` | Portable `.exe` (true) or NSIS installer (false) |
|
|
226
|
-
| `installerIcon` | `string?` | Installer icon path (`.ico`, relative to package directory) |
|
|
227
|
-
| `reinstallDependencies` | `string[]?` | npm packages to include in Electron |
|
|
228
|
-
| `postInstallScript` | `string?` | npm postinstall script |
|
|
229
|
-
| `nsisOptions` | `Record<string, unknown>?` | NSIS options |
|
|
230
|
-
| `env` | `Record<string, string>?` | Environment variables |
|
|
231
|
-
|
|
232
|
-
### `ViteConfigOptions`
|
|
233
|
-
|
|
234
|
-
| Field | Type | Description |
|
|
235
|
-
|-------|------|-------------|
|
|
236
|
-
| `pkgDir` | `string` | Package directory path |
|
|
237
|
-
| `name` | `string` | Package name |
|
|
238
|
-
| `tsconfigPath` | `string` | tsconfig.json path |
|
|
239
|
-
| `compilerOptions` | `Record<string, unknown>` | TypeScript compiler options |
|
|
240
|
-
| `env` | `Record<string, string>?` | Environment variables |
|
|
241
|
-
| `mode` | `"build" \| "dev"` | Build or dev mode |
|
|
242
|
-
| `serverPort` | `number?` | Server port in dev mode (0 for auto-assign) |
|
|
243
|
-
| `replaceDeps` | `string[]?` | Array of replaceDeps package names |
|
|
244
|
-
| `onScopeRebuild` | `(() => void)?` | Callback when replaceDeps package dist changes |
|
|
245
|
-
| `outDir` | `string?` | Override `build.outDir` |
|
|
246
|
-
| `base` | `string?` | Override base path |
|
|
247
|
-
| `exclude` | `string[]?` | Packages to exclude from optimizeDeps |
|
|
248
|
-
|
|
249
|
-
### `createViteConfig`
|
|
250
|
-
|
|
251
|
-
```typescript
|
|
252
|
-
function createViteConfig(options: ViteConfigOptions): ViteUserConfig
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
Creates a Vite config for SolidJS + Tailwind CSS client packages. Includes plugins for tsconfig paths, SolidJS, PWA, Tailwind config deps watching, scope package watching, and public-dev directory serving.
|
|
256
|
-
|
|
257
|
-
## Usage Examples
|
|
258
|
-
|
|
259
|
-
### sd.config.ts
|
|
260
|
-
|
|
261
|
-
```typescript
|
|
262
|
-
import type { SdConfigFn, SdConfigParams } from "@simplysm/sd-cli";
|
|
263
|
-
|
|
264
|
-
const config: SdConfigFn = (params: SdConfigParams) => ({
|
|
265
|
-
packages: {
|
|
266
|
-
"core-common": { target: "neutral" },
|
|
267
|
-
"core-node": { target: "node" },
|
|
268
|
-
"my-client": {
|
|
269
|
-
target: "client",
|
|
270
|
-
server: "my-server",
|
|
271
|
-
},
|
|
272
|
-
"my-server": {
|
|
273
|
-
target: "server",
|
|
274
|
-
pm2: { name: "my-app" },
|
|
275
|
-
},
|
|
276
|
-
},
|
|
277
|
-
});
|
|
278
|
-
|
|
279
|
-
export default config;
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
### Custom Vite config
|
|
283
|
-
|
|
284
|
-
```typescript
|
|
285
|
-
import { createViteConfig } from "@simplysm/sd-cli";
|
|
286
|
-
|
|
287
|
-
const config = createViteConfig({
|
|
288
|
-
pkgDir: "/path/to/package",
|
|
289
|
-
name: "my-client",
|
|
290
|
-
tsconfigPath: "/path/to/tsconfig.json",
|
|
291
|
-
compilerOptions: { jsx: "preserve" },
|
|
292
|
-
mode: "dev",
|
|
293
|
-
serverPort: 3000,
|
|
294
|
-
});
|
|
295
|
-
```
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { WorkerManager } from "../infra/WorkerManager";
|
|
2
|
-
import type { BuildResult, ResultCollector } from "../infra/ResultCollector";
|
|
3
|
-
import type { RebuildManager } from "../utils/rebuild-manager";
|
|
4
|
-
import type { IBuilder, PackageInfo } from "./types";
|
|
5
|
-
/**
|
|
6
|
-
* Abstract base class for Builder
|
|
7
|
-
*
|
|
8
|
-
* Provides common logic for all Builders and
|
|
9
|
-
* defines abstract methods that subclasses must implement.
|
|
10
|
-
*/
|
|
11
|
-
export declare abstract class BaseBuilder implements IBuilder {
|
|
12
|
-
protected readonly workerManager: WorkerManager;
|
|
13
|
-
protected readonly resultCollector: ResultCollector;
|
|
14
|
-
protected readonly rebuildManager: RebuildManager | undefined;
|
|
15
|
-
protected readonly packages: PackageInfo[];
|
|
16
|
-
protected readonly cwd: string;
|
|
17
|
-
protected isWatchMode: boolean;
|
|
18
|
-
/** Initial build Promise (per package) */
|
|
19
|
-
protected readonly initialBuildPromises: Map<string, Promise<void>>;
|
|
20
|
-
/** Initial build resolver (per package) */
|
|
21
|
-
protected readonly buildResolvers: Map<string, () => void>;
|
|
22
|
-
constructor(options: {
|
|
23
|
-
cwd: string;
|
|
24
|
-
packages: PackageInfo[];
|
|
25
|
-
resultCollector: ResultCollector;
|
|
26
|
-
rebuildManager?: RebuildManager;
|
|
27
|
-
});
|
|
28
|
-
/**
|
|
29
|
-
* Initialize Builder
|
|
30
|
-
*/
|
|
31
|
-
initialize(): Promise<void>;
|
|
32
|
-
/**
|
|
33
|
-
* One-time build (production)
|
|
34
|
-
*/
|
|
35
|
-
build(): Promise<void>;
|
|
36
|
-
/**
|
|
37
|
-
* Start watch mode
|
|
38
|
-
*/
|
|
39
|
-
startWatch(): Promise<void>;
|
|
40
|
-
/**
|
|
41
|
-
* Shutdown Builder
|
|
42
|
-
*/
|
|
43
|
-
shutdown(): Promise<void>;
|
|
44
|
-
/**
|
|
45
|
-
* Get initial build Promise map
|
|
46
|
-
*/
|
|
47
|
-
getInitialBuildPromises(): Map<string, Promise<void>>;
|
|
48
|
-
/**
|
|
49
|
-
* Generate package key (for result storage)
|
|
50
|
-
*/
|
|
51
|
-
protected getPackageKey(pkg: PackageInfo): string;
|
|
52
|
-
/**
|
|
53
|
-
* Handle build completion
|
|
54
|
-
*/
|
|
55
|
-
protected completeBuild(pkg: PackageInfo): void;
|
|
56
|
-
/**
|
|
57
|
-
* Register common Worker event handlers (buildStart, build, error)
|
|
58
|
-
*
|
|
59
|
-
* Provides common logic so LibraryBuilder and DtsBuilder can register
|
|
60
|
-
* event handlers with the same pattern without duplication.
|
|
61
|
-
*
|
|
62
|
-
* @param workerKey Worker identifier (e.g., "core-common:build")
|
|
63
|
-
* @param resultType BuildResult type field value
|
|
64
|
-
* @param listrTitle Title to display during rebuild
|
|
65
|
-
*/
|
|
66
|
-
protected registerEventHandlersForWorker(pkg: PackageInfo, workerKey: string, resultType: BuildResult["type"], listrTitle: string): void;
|
|
67
|
-
/**
|
|
68
|
-
* Builder type (for result key generation)
|
|
69
|
-
*/
|
|
70
|
-
protected abstract getBuilderType(): string;
|
|
71
|
-
/**
|
|
72
|
-
* Create Workers
|
|
73
|
-
*/
|
|
74
|
-
protected abstract createWorkers(): void;
|
|
75
|
-
/**
|
|
76
|
-
* Register event handlers
|
|
77
|
-
*/
|
|
78
|
-
protected abstract registerEventHandlers(): void;
|
|
79
|
-
/**
|
|
80
|
-
* Single package build (production)
|
|
81
|
-
*/
|
|
82
|
-
protected abstract buildPackage(pkg: PackageInfo): Promise<void>;
|
|
83
|
-
/**
|
|
84
|
-
* Start watching single package
|
|
85
|
-
*/
|
|
86
|
-
protected abstract startWatchPackage(pkg: PackageInfo): void;
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=BaseBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BaseBuilder.d.ts","sourceRoot":"","sources":["..\\..\\src\\builders\\BaseBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIrD;;;;;GAKG;AACH,8BAAsB,WAAY,YAAW,QAAQ;IACnD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAChD,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IACpD,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,GAAG,SAAS,CAAC;IAC9D,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;IAC3C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,WAAW,UAAS;IAE9B,0CAA0C;IAC1C,SAAS,CAAC,QAAQ,CAAC,oBAAoB,6BAAoC;IAC3E,2CAA2C;IAC3C,SAAS,CAAC,QAAQ,CAAC,cAAc,oBAAyB,IAAI,EAAI;gBAEtD,OAAO,EAAE;QACnB,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,eAAe,EAAE,eAAe,CAAC;QACjC,cAAc,CAAC,EAAE,cAAc,CAAC;KACjC;IAQD;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB3B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B;;OAEG;IACH,uBAAuB,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAIrD;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM;IAIjD;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAS/C;;;;;;;;;OASG;IACH,SAAS,CAAC,8BAA8B,CACtC,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/B,UAAU,EAAE,MAAM,GACjB,IAAI;IAyDP;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,MAAM;IAE3C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI;IAExC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,qBAAqB,IAAI,IAAI;IAEhD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAEhE;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;CAC7D"}
|