@simplysm/sd-cli 13.0.100 → 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
|
@@ -5,206 +5,305 @@ import { consola } from "consola";
|
|
|
5
5
|
import { fsx, pathx, FsWatcher } from "@simplysm/core-node";
|
|
6
6
|
import { exec } from "child_process";
|
|
7
7
|
import { promisify } from "util";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Match glob patterns from replaceDeps config with target package list
|
|
10
|
+
* and return { targetName, sourcePath } pairs
|
|
11
|
+
*
|
|
12
|
+
* @param replaceDeps - replaceDeps config from sd.config.ts (key: glob pattern, value: source path)
|
|
13
|
+
* @param targetNames - List of package names found in node_modules (e.g., ["@simplysm/solid", ...])
|
|
14
|
+
* @returns Array of matched { targetName, sourcePath }
|
|
15
|
+
*/
|
|
16
|
+
export function resolveReplaceDepEntries(replaceDeps, targetNames) {
|
|
17
|
+
const results = [];
|
|
18
|
+
for (const [pattern, sourceTemplate] of Object.entries(replaceDeps)) {
|
|
19
|
+
// Convert glob pattern to regex: * → (.*), . → \., / → [\\/]
|
|
20
|
+
const regexpText = pattern.replace(/[\\/.+*]/g, (ch) => {
|
|
21
|
+
if (ch === "*")
|
|
22
|
+
return "(.*)";
|
|
23
|
+
if (ch === ".")
|
|
24
|
+
return "\\.";
|
|
25
|
+
if (ch === "/" || ch === "\\")
|
|
26
|
+
return "[\\\\/]";
|
|
27
|
+
if (ch === "+")
|
|
28
|
+
return "\\+";
|
|
29
|
+
return ch;
|
|
30
|
+
});
|
|
31
|
+
const regex = new RegExp(`^${regexpText}$`);
|
|
32
|
+
const hasWildcard = pattern.includes("*");
|
|
33
|
+
for (const targetName of targetNames) {
|
|
34
|
+
const match = regex.exec(targetName);
|
|
35
|
+
if (match == null)
|
|
36
|
+
continue;
|
|
37
|
+
// If capture group exists, substitute * in source path with captured value
|
|
38
|
+
const sourcePath = hasWildcard ? sourceTemplate.replace(/\*/g, match[1]) : sourceTemplate;
|
|
39
|
+
results.push({ targetName, sourcePath });
|
|
40
|
+
}
|
|
25
41
|
}
|
|
26
|
-
|
|
27
|
-
return results;
|
|
42
|
+
return results;
|
|
28
43
|
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
/**
|
|
45
|
+
* Parse pnpm-workspace.yaml content and return array of workspace packages globs
|
|
46
|
+
* Simple line parsing without separate YAML library
|
|
47
|
+
*
|
|
48
|
+
* @param content - Content of pnpm-workspace.yaml file
|
|
49
|
+
* @returns Array of glob patterns (e.g., ["packages/*", "tools/*"])
|
|
50
|
+
*/
|
|
51
|
+
export function parseWorkspaceGlobs(content) {
|
|
52
|
+
const lines = content.split("\n");
|
|
53
|
+
const globs = [];
|
|
54
|
+
let inPackages = false;
|
|
55
|
+
for (const line of lines) {
|
|
56
|
+
const trimmed = line.trim();
|
|
57
|
+
if (trimmed === "packages:") {
|
|
58
|
+
inPackages = true;
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
// List items in packages section
|
|
62
|
+
if (inPackages && trimmed.startsWith("- ")) {
|
|
63
|
+
const value = trimmed
|
|
64
|
+
.slice(2)
|
|
65
|
+
.trim()
|
|
66
|
+
.replace(/^["']|["']$/g, "");
|
|
67
|
+
globs.push(value);
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
// End when other section starts
|
|
71
|
+
if (inPackages && trimmed !== "" && !trimmed.startsWith("#")) {
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
46
74
|
}
|
|
47
|
-
|
|
48
|
-
return globs;
|
|
75
|
+
return globs;
|
|
49
76
|
}
|
|
50
|
-
|
|
77
|
+
/**
|
|
78
|
+
* Names to exclude during copy
|
|
79
|
+
*/
|
|
80
|
+
const EXCLUDED_NAMES = new Set(["node_modules", "package.json", ".cache", "tests"]);
|
|
81
|
+
/**
|
|
82
|
+
* Filter function for replaceDeps copy
|
|
83
|
+
* Excludes node_modules, package.json, .cache, tests
|
|
84
|
+
*
|
|
85
|
+
* @param itemPath - Absolute path of item to copy
|
|
86
|
+
* @returns true if copy target, false if excluded
|
|
87
|
+
*/
|
|
51
88
|
function replaceDepsCopyFilter(itemPath) {
|
|
52
|
-
|
|
53
|
-
|
|
89
|
+
const basename = path.basename(itemPath);
|
|
90
|
+
return !EXCLUDED_NAMES.has(basename);
|
|
54
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Collect project root and workspace package paths.
|
|
94
|
+
*
|
|
95
|
+
* Parse pnpm-workspace.yaml to collect absolute paths of workspace packages.
|
|
96
|
+
* If file is missing or parsing fails, return only root path.
|
|
97
|
+
*
|
|
98
|
+
* @param projectRoot - Project root path
|
|
99
|
+
* @returns [root, ...workspace package paths] array
|
|
100
|
+
*/
|
|
55
101
|
async function collectSearchRoots(projectRoot) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
try {
|
|
59
|
-
const yamlContent = await fs.promises.readFile(workspaceYamlPath, "utf-8");
|
|
60
|
-
const workspaceGlobs = parseWorkspaceGlobs(yamlContent);
|
|
61
|
-
for (const pattern of workspaceGlobs) {
|
|
62
|
-
const dirs = await glob(pattern, { cwd: projectRoot, absolute: true });
|
|
63
|
-
searchRoots.push(...dirs);
|
|
64
|
-
}
|
|
65
|
-
} catch {
|
|
66
|
-
}
|
|
67
|
-
return searchRoots;
|
|
68
|
-
}
|
|
69
|
-
async function resolveAllReplaceDepEntries(projectRoot, replaceDeps, logger) {
|
|
70
|
-
const entries = [];
|
|
71
|
-
const searchRoots = await collectSearchRoots(projectRoot);
|
|
72
|
-
for (const searchRoot of searchRoots) {
|
|
73
|
-
const nodeModulesDir = path.join(searchRoot, "node_modules");
|
|
102
|
+
const searchRoots = [projectRoot];
|
|
103
|
+
const workspaceYamlPath = path.join(projectRoot, "pnpm-workspace.yaml");
|
|
74
104
|
try {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
for (const pattern of Object.keys(replaceDeps)) {
|
|
81
|
-
const matches = await glob(pattern, { cwd: nodeModulesDir });
|
|
82
|
-
targetNames.push(...matches);
|
|
83
|
-
}
|
|
84
|
-
if (targetNames.length === 0) continue;
|
|
85
|
-
const matchedEntries = resolveReplaceDepEntries(replaceDeps, targetNames);
|
|
86
|
-
for (const { targetName, sourcePath } of matchedEntries) {
|
|
87
|
-
const targetPath = path.join(nodeModulesDir, targetName);
|
|
88
|
-
const resolvedSourcePath = path.resolve(projectRoot, sourcePath);
|
|
89
|
-
try {
|
|
90
|
-
await fs.promises.access(resolvedSourcePath);
|
|
91
|
-
} catch {
|
|
92
|
-
logger.warn(`Source path does not exist, skipping: ${resolvedSourcePath}`);
|
|
93
|
-
continue;
|
|
94
|
-
}
|
|
95
|
-
let actualTargetPath = targetPath;
|
|
96
|
-
try {
|
|
97
|
-
const stat = await fs.promises.lstat(targetPath);
|
|
98
|
-
if (stat.isSymbolicLink()) {
|
|
99
|
-
actualTargetPath = await fs.promises.realpath(targetPath);
|
|
105
|
+
const yamlContent = await fs.promises.readFile(workspaceYamlPath, "utf-8");
|
|
106
|
+
const workspaceGlobs = parseWorkspaceGlobs(yamlContent);
|
|
107
|
+
for (const pattern of workspaceGlobs) {
|
|
108
|
+
const dirs = await glob(pattern, { cwd: projectRoot, absolute: true });
|
|
109
|
+
searchRoots.push(...dirs);
|
|
100
110
|
}
|
|
101
|
-
} catch {
|
|
102
|
-
}
|
|
103
|
-
entries.push({
|
|
104
|
-
targetName,
|
|
105
|
-
sourcePath,
|
|
106
|
-
targetPath,
|
|
107
|
-
resolvedSourcePath,
|
|
108
|
-
actualTargetPath
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
return entries;
|
|
113
|
-
}
|
|
114
|
-
async function setupReplaceDeps(projectRoot, replaceDeps) {
|
|
115
|
-
const logger = consola.withTag("sd:cli:replace-deps");
|
|
116
|
-
let setupCount = 0;
|
|
117
|
-
logger.start("Setting up replace-deps");
|
|
118
|
-
const entries = await resolveAllReplaceDepEntries(projectRoot, replaceDeps, logger);
|
|
119
|
-
for (const { targetName, resolvedSourcePath, actualTargetPath } of entries) {
|
|
120
|
-
try {
|
|
121
|
-
await fsx.copy(resolvedSourcePath, actualTargetPath, replaceDepsCopyFilter);
|
|
122
|
-
setupCount += 1;
|
|
123
|
-
} catch (err) {
|
|
124
|
-
logger.error(`Copy replace failed (${targetName}): ${err instanceof Error ? err.message : err}`);
|
|
125
111
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
for (const { targetName, resolvedSourcePath, actualTargetPath } of entries) {
|
|
129
|
-
const sourcePkgJsonPath = path.join(resolvedSourcePath, "package.json");
|
|
130
|
-
try {
|
|
131
|
-
const pkgJson = JSON.parse(await fs.promises.readFile(sourcePkgJsonPath, "utf-8"));
|
|
132
|
-
const postinstall = pkgJson.scripts?.postinstall;
|
|
133
|
-
if (postinstall == null) continue;
|
|
134
|
-
logger.start(`Running postinstall for ${targetName}`);
|
|
135
|
-
await promisify(exec)(postinstall, { cwd: actualTargetPath });
|
|
136
|
-
logger.success(`postinstall done: ${targetName}`);
|
|
137
|
-
} catch (err) {
|
|
138
|
-
logger.error(
|
|
139
|
-
`postinstall failed (${targetName}): ${err instanceof Error ? err.message : err}`
|
|
140
|
-
);
|
|
112
|
+
catch {
|
|
113
|
+
// If pnpm-workspace.yaml doesn't exist, only process root
|
|
141
114
|
}
|
|
142
|
-
|
|
115
|
+
return searchRoots;
|
|
143
116
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
117
|
+
/**
|
|
118
|
+
* Resolve all replacement target items from replaceDeps config.
|
|
119
|
+
*
|
|
120
|
+
* 1. Parse pnpm-workspace.yaml → workspace package paths
|
|
121
|
+
* 2. Find matching packages in [root, ...workspace packages] node_modules
|
|
122
|
+
* 3. Pattern matching + verify source path exists + resolve symlinks
|
|
123
|
+
*
|
|
124
|
+
* @param projectRoot - Project root path
|
|
125
|
+
* @param replaceDeps - replaceDeps config from sd.config.ts
|
|
126
|
+
* @param logger - consola logger
|
|
127
|
+
* @returns Array of resolved replacement target items
|
|
128
|
+
*/
|
|
129
|
+
async function resolveAllReplaceDepEntries(projectRoot, replaceDeps, logger) {
|
|
130
|
+
const entries = [];
|
|
131
|
+
const searchRoots = await collectSearchRoots(projectRoot);
|
|
132
|
+
for (const searchRoot of searchRoots) {
|
|
133
|
+
const nodeModulesDir = path.join(searchRoot, "node_modules");
|
|
134
|
+
try {
|
|
135
|
+
await fs.promises.access(nodeModulesDir);
|
|
161
136
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
137
|
+
catch {
|
|
138
|
+
continue; // Skip if node_modules doesn't exist
|
|
139
|
+
}
|
|
140
|
+
// Search node_modules directories using each glob pattern from replaceDeps
|
|
141
|
+
const targetNames = [];
|
|
142
|
+
for (const pattern of Object.keys(replaceDeps)) {
|
|
143
|
+
const matches = await glob(pattern, { cwd: nodeModulesDir });
|
|
144
|
+
targetNames.push(...matches);
|
|
145
|
+
}
|
|
146
|
+
if (targetNames.length === 0)
|
|
147
|
+
continue;
|
|
148
|
+
// Pattern matching and path resolution
|
|
149
|
+
const matchedEntries = resolveReplaceDepEntries(replaceDeps, targetNames);
|
|
150
|
+
for (const { targetName, sourcePath } of matchedEntries) {
|
|
151
|
+
const targetPath = path.join(nodeModulesDir, targetName);
|
|
152
|
+
const resolvedSourcePath = path.resolve(projectRoot, sourcePath);
|
|
153
|
+
// Verify source path exists
|
|
154
|
+
try {
|
|
155
|
+
await fs.promises.access(resolvedSourcePath);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
logger.warn(`Source path does not exist, skipping: ${resolvedSourcePath}`);
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
// If targetPath is symlink, resolve to get actual .pnpm store path
|
|
162
|
+
let actualTargetPath = targetPath;
|
|
168
163
|
try {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
164
|
+
const stat = await fs.promises.lstat(targetPath);
|
|
165
|
+
if (stat.isSymbolicLink()) {
|
|
166
|
+
actualTargetPath = await fs.promises.realpath(targetPath);
|
|
167
|
+
}
|
|
172
168
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
if (stat.isDirectory()) {
|
|
176
|
-
await fsx.mkdir(destPath);
|
|
177
|
-
} else {
|
|
178
|
-
await fsx.mkdir(path.dirname(destPath));
|
|
179
|
-
await fsx.copy(changedPath, destPath, replaceDepsCopyFilter);
|
|
180
|
-
}
|
|
181
|
-
} else {
|
|
182
|
-
await fsx.rm(destPath);
|
|
169
|
+
catch {
|
|
170
|
+
// If targetPath doesn't exist, use as-is
|
|
183
171
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
172
|
+
entries.push({
|
|
173
|
+
targetName,
|
|
174
|
+
sourcePath,
|
|
175
|
+
targetPath,
|
|
176
|
+
resolvedSourcePath,
|
|
177
|
+
actualTargetPath,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return entries;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Replace packages in node_modules with source directories according to replaceDeps config.
|
|
185
|
+
*
|
|
186
|
+
* 1. Parse pnpm-workspace.yaml → workspace package paths
|
|
187
|
+
* 2. Find matching packages in [root, ...workspace packages] node_modules
|
|
188
|
+
* 3. Remove existing symlinks/directories → copy source path (excluding node_modules, package.json, .cache, tests)
|
|
189
|
+
*
|
|
190
|
+
* @param projectRoot - Project root path
|
|
191
|
+
* @param replaceDeps - replaceDeps config from sd.config.ts
|
|
192
|
+
*/
|
|
193
|
+
export async function setupReplaceDeps(projectRoot, replaceDeps) {
|
|
194
|
+
const logger = consola.withTag("sd:cli:replace-deps");
|
|
195
|
+
let setupCount = 0;
|
|
196
|
+
logger.start("Setting up replace-deps");
|
|
197
|
+
const entries = await resolveAllReplaceDepEntries(projectRoot, replaceDeps, logger);
|
|
198
|
+
for (const { targetName, resolvedSourcePath, actualTargetPath } of entries) {
|
|
199
|
+
try {
|
|
200
|
+
// Overwrite-copy source files to actualTargetPath (maintain existing directory, preserve symlinks)
|
|
201
|
+
await fsx.copy(resolvedSourcePath, actualTargetPath, replaceDepsCopyFilter);
|
|
202
|
+
setupCount += 1;
|
|
203
|
+
}
|
|
204
|
+
catch (err) {
|
|
205
|
+
logger.error(`Copy replace failed (${targetName}): ${err instanceof Error ? err.message : err}`);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
logger.success(`Replaced ${setupCount} dependencies`);
|
|
209
|
+
// Run postinstall scripts from replaced packages
|
|
210
|
+
for (const { targetName, resolvedSourcePath, actualTargetPath } of entries) {
|
|
211
|
+
const sourcePkgJsonPath = path.join(resolvedSourcePath, "package.json");
|
|
212
|
+
try {
|
|
213
|
+
const pkgJson = JSON.parse(await fs.promises.readFile(sourcePkgJsonPath, "utf-8"));
|
|
214
|
+
const postinstall = pkgJson.scripts?.postinstall;
|
|
215
|
+
if (postinstall == null)
|
|
216
|
+
continue;
|
|
217
|
+
logger.start(`Running postinstall for ${targetName}`);
|
|
218
|
+
await promisify(exec)(postinstall, { cwd: actualTargetPath });
|
|
219
|
+
logger.success(`postinstall done: ${targetName}`);
|
|
220
|
+
}
|
|
221
|
+
catch (err) {
|
|
222
|
+
logger.error(`postinstall failed (${targetName}): ${err instanceof Error ? err.message : err}`);
|
|
189
223
|
}
|
|
190
|
-
}
|
|
191
|
-
});
|
|
192
|
-
watchers.push(watcher);
|
|
193
|
-
}
|
|
194
|
-
logger.success(`Replace-deps watch ready`);
|
|
195
|
-
return {
|
|
196
|
-
entries,
|
|
197
|
-
dispose: () => {
|
|
198
|
-
for (const watcher of watchers) {
|
|
199
|
-
void watcher.close();
|
|
200
|
-
}
|
|
201
224
|
}
|
|
202
|
-
};
|
|
203
225
|
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
226
|
+
/**
|
|
227
|
+
* Watch source directories according to replaceDeps config and copy changes to target paths.
|
|
228
|
+
*
|
|
229
|
+
* 1. Parse pnpm-workspace.yaml → workspace package paths
|
|
230
|
+
* 2. Find matching packages in [root, ...workspace packages] node_modules
|
|
231
|
+
* 3. Watch source directories with FsWatcher (300ms delay)
|
|
232
|
+
* 4. Copy changes to target paths (excluding node_modules, package.json, .cache, tests)
|
|
233
|
+
*
|
|
234
|
+
* @param projectRoot - Project root path
|
|
235
|
+
* @param replaceDeps - replaceDeps config from sd.config.ts
|
|
236
|
+
* @returns entries and dispose function
|
|
237
|
+
*/
|
|
238
|
+
export async function watchReplaceDeps(projectRoot, replaceDeps) {
|
|
239
|
+
const logger = consola.withTag("sd:cli:replace-deps:watch");
|
|
240
|
+
const entries = await resolveAllReplaceDepEntries(projectRoot, replaceDeps, logger);
|
|
241
|
+
// Setup source directory watchers
|
|
242
|
+
const watchers = [];
|
|
243
|
+
const watchedSources = new Set();
|
|
244
|
+
logger.start(`Watching ${entries.length} replace-deps target(s)`);
|
|
245
|
+
for (const entry of entries) {
|
|
246
|
+
if (watchedSources.has(entry.resolvedSourcePath))
|
|
247
|
+
continue;
|
|
248
|
+
watchedSources.add(entry.resolvedSourcePath);
|
|
249
|
+
const excludedPaths = [...EXCLUDED_NAMES].map((name) => path.join(entry.resolvedSourcePath, name));
|
|
250
|
+
const watcher = await FsWatcher.watch([entry.resolvedSourcePath], { followSymlinks: false });
|
|
251
|
+
watcher.onChange({ delay: 300 }, async (changeInfos) => {
|
|
252
|
+
for (const { path: changedPath } of changeInfos) {
|
|
253
|
+
// Filter excluded items: basename match or path within excluded directory
|
|
254
|
+
if (EXCLUDED_NAMES.has(path.basename(changedPath)) ||
|
|
255
|
+
excludedPaths.some((ep) => pathx.isChildPath(changedPath, ep))) {
|
|
256
|
+
continue;
|
|
257
|
+
}
|
|
258
|
+
// Copy for all entries using this source path
|
|
259
|
+
for (const e of entries) {
|
|
260
|
+
if (e.resolvedSourcePath !== entry.resolvedSourcePath)
|
|
261
|
+
continue;
|
|
262
|
+
// Calculate relative path from source
|
|
263
|
+
const relativePath = path.relative(e.resolvedSourcePath, changedPath);
|
|
264
|
+
const destPath = path.join(e.actualTargetPath, relativePath);
|
|
265
|
+
try {
|
|
266
|
+
// Check if source exists
|
|
267
|
+
let sourceExists = false;
|
|
268
|
+
try {
|
|
269
|
+
await fs.promises.access(changedPath);
|
|
270
|
+
sourceExists = true;
|
|
271
|
+
}
|
|
272
|
+
catch {
|
|
273
|
+
// Source was deleted
|
|
274
|
+
}
|
|
275
|
+
if (sourceExists) {
|
|
276
|
+
// Check if source is directory or file
|
|
277
|
+
const stat = await fs.promises.stat(changedPath);
|
|
278
|
+
if (stat.isDirectory()) {
|
|
279
|
+
await fsx.mkdir(destPath);
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
await fsx.mkdir(path.dirname(destPath));
|
|
283
|
+
await fsx.copy(changedPath, destPath, replaceDepsCopyFilter);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
// Source was deleted → delete target
|
|
288
|
+
await fsx.rm(destPath);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
catch (err) {
|
|
292
|
+
logger.error(`Copy failed (${e.targetName}/${relativePath}): ${err instanceof Error ? err.message : err}`);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
});
|
|
297
|
+
watchers.push(watcher);
|
|
298
|
+
}
|
|
299
|
+
logger.success(`Replace-deps watch ready`);
|
|
300
|
+
return {
|
|
301
|
+
entries,
|
|
302
|
+
dispose: () => {
|
|
303
|
+
for (const watcher of watchers) {
|
|
304
|
+
void watcher.close();
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
//# sourceMappingURL=replace-deps.js.map
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/replace-deps.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
1
|
+
{"version":3,"file":"replace-deps.js","sourceRoot":"","sources":["..\\..\\src\\utils\\replace-deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface ScssCompileResult {
|
|
2
|
+
css: string;
|
|
3
|
+
/** 컴파일에 참여한 의존 파일 목록 (loadedUrls -> 절대 경로) */
|
|
4
|
+
dependencies: string[];
|
|
5
|
+
}
|
|
6
|
+
/** 인라인 SCSS 문자열을 CSS로 컴파일한다 */
|
|
7
|
+
export declare function compileScssString(source: string, containingFile: string, loadPaths: string[]): ScssCompileResult;
|
|
8
|
+
/** 외부 SCSS 파일을 CSS로 컴파일한다 */
|
|
9
|
+
export declare function compileScssFile(filePath: string, loadPaths: string[]): ScssCompileResult;
|
|
10
|
+
//# sourceMappingURL=scss-compiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scss-compiler.d.ts","sourceRoot":"","sources":["..\\..\\src\\utils\\scss-compiler.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAgBD,+BAA+B;AAC/B,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EAAE,GAClB,iBAAiB,CAUnB;AAED,6BAA6B;AAC7B,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EAAE,GAClB,iBAAiB,CASnB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as sass from "sass";
|
|
2
|
+
import { pathToFileURL } from "url";
|
|
3
|
+
//#endregion
|
|
4
|
+
//#region Private helpers
|
|
5
|
+
function extractDependencies(loadedUrls) {
|
|
6
|
+
return loadedUrls
|
|
7
|
+
.filter((url) => url.protocol === "file:")
|
|
8
|
+
.map((url) => url.pathname.replace(/^\/([A-Za-z]:)/, "$1"));
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region Public API
|
|
12
|
+
/** 인라인 SCSS 문자열을 CSS로 컴파일한다 */
|
|
13
|
+
export function compileScssString(source, containingFile, loadPaths) {
|
|
14
|
+
const result = sass.compileString(source, {
|
|
15
|
+
url: pathToFileURL(containingFile),
|
|
16
|
+
loadPaths,
|
|
17
|
+
silenceDeprecations: ["color-functions", "global-builtin", "import", "legacy-js-api"],
|
|
18
|
+
});
|
|
19
|
+
return {
|
|
20
|
+
css: result.css,
|
|
21
|
+
dependencies: extractDependencies(result.loadedUrls),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/** 외부 SCSS 파일을 CSS로 컴파일한다 */
|
|
25
|
+
export function compileScssFile(filePath, loadPaths) {
|
|
26
|
+
const result = sass.compile(filePath, {
|
|
27
|
+
loadPaths,
|
|
28
|
+
silenceDeprecations: ["color-functions", "global-builtin", "import", "legacy-js-api"],
|
|
29
|
+
});
|
|
30
|
+
return {
|
|
31
|
+
css: result.css,
|
|
32
|
+
dependencies: extractDependencies(result.loadedUrls),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
//# sourceMappingURL=scss-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scss-compiler.js","sourceRoot":"","sources":["..\\..\\src\\utils\\scss-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAUpC,YAAY;AAEZ,yBAAyB;AAEzB,SAAS,mBAAmB,CAAC,UAAiB;IAC5C,OAAO,UAAU;SACd,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;SACzC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,YAAY;AAEZ,oBAAoB;AAEpB,+BAA+B;AAC/B,MAAM,UAAU,iBAAiB,CAC/B,MAAc,EACd,cAAsB,EACtB,SAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;QACxC,GAAG,EAAE,aAAa,CAAC,cAAc,CAAC;QAClC,SAAS;QACT,mBAAmB,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,CAAC;KACtF,CAAC,CAAC;IACH,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,YAAY,EAAE,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,SAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;QACpC,SAAS;QACT,mBAAmB,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,CAAC;KACtF,CAAC,CAAC;IACH,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,YAAY,EAAE,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC;KACrD,CAAC;AACJ,CAAC;AAED,YAAY"}
|
package/dist/utils/sd-config.js
CHANGED
|
@@ -2,23 +2,33 @@ import path from "path";
|
|
|
2
2
|
import { createJiti } from "jiti";
|
|
3
3
|
import { SdError } from "@simplysm/core-common";
|
|
4
4
|
import { fsx } from "@simplysm/core-node";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Load sd.config.ts
|
|
7
|
+
* @returns SdConfig object
|
|
8
|
+
* @throws if sd.config.ts is missing or format is incorrect
|
|
9
|
+
*/
|
|
10
|
+
export async function loadSdConfig(params) {
|
|
11
|
+
const sdConfigPath = path.resolve(params.cwd, "sd.config.ts");
|
|
12
|
+
if (!(await fsx.exists(sdConfigPath))) {
|
|
13
|
+
throw new SdError(`sd.config.ts file not found: ${sdConfigPath}`);
|
|
14
|
+
}
|
|
15
|
+
const jiti = createJiti(import.meta.url);
|
|
16
|
+
const sdConfigModule = await jiti.import(sdConfigPath);
|
|
17
|
+
if (sdConfigModule == null ||
|
|
18
|
+
typeof sdConfigModule !== "object" ||
|
|
19
|
+
!("default" in sdConfigModule) ||
|
|
20
|
+
typeof sdConfigModule.default !== "function") {
|
|
21
|
+
throw new SdError(`sd.config.ts must export a function as default: ${sdConfigPath}`);
|
|
22
|
+
}
|
|
23
|
+
const config = await sdConfigModule.default(params);
|
|
24
|
+
if (config == null ||
|
|
25
|
+
typeof config !== "object" ||
|
|
26
|
+
!("packages" in config) ||
|
|
27
|
+
config.packages == null ||
|
|
28
|
+
typeof config.packages !== "object" ||
|
|
29
|
+
Array.isArray(config.packages)) {
|
|
30
|
+
throw new SdError(`sd.config.ts return value is not in the correct format: ${sdConfigPath}`);
|
|
31
|
+
}
|
|
32
|
+
return config;
|
|
20
33
|
}
|
|
21
|
-
|
|
22
|
-
loadSdConfig
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=sd-config.js.map
|
|
34
|
+
//# sourceMappingURL=sd-config.js.map
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/sd-config.ts"],
|
|
4
|
-
"mappings": "AAAA,OAAO,UAAU;AACjB,SAAS,kBAAkB;AAC3B,SAAS,eAAe;AACxB,SAAS,WAAW;AAQpB,eAAsB,aAAa,QAA2C;AAC5E,QAAM,eAAe,KAAK,QAAQ,OAAO,KAAK,cAAc;AAE5D,MAAI,CAAE,MAAM,IAAI,OAAO,YAAY,GAAI;AACrC,UAAM,IAAI,QAAQ,gCAAgC,YAAY,EAAE;AAAA,EAClE;AAEA,QAAM,OAAO,WAAW,YAAY,GAAG;AACvC,QAAM,iBAAiB,MAAM,KAAK,OAAO,YAAY;AAErD,MACE,kBAAkB,QAClB,OAAO,mBAAmB,YAC1B,EAAE,aAAa,mBACf,OAAO,eAAe,YAAY,YAClC;AACA,UAAM,IAAI,QAAQ,mDAAmD,YAAY,EAAE;AAAA,EACrF;AAEA,QAAM,SAAS,MAAM,eAAe,QAAQ,MAAM;AAElD,MACE,UAAU,QACV,OAAO,WAAW,YAClB,EAAE,cAAc,WAChB,OAAO,YAAY,QACnB,OAAO,OAAO,aAAa,YAC3B,MAAM,QAAQ,OAAO,QAAQ,GAC7B;AACA,UAAM,IAAI,QAAQ,2DAA2D,YAAY,EAAE;AAAA,EAC7F;AACA,SAAO;AACT;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
1
|
+
{"version":3,"file":"sd-config.js","sourceRoot":"","sources":["..\\..\\src\\utils\\sd-config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAG1C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAsB;IACvD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAE9D,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,OAAO,CAAC,gCAAgC,YAAY,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAEvD,IACE,cAAc,IAAI,IAAI;QACtB,OAAO,cAAc,KAAK,QAAQ;QAClC,CAAC,CAAC,SAAS,IAAI,cAAc,CAAC;QAC9B,OAAO,cAAc,CAAC,OAAO,KAAK,UAAU,EAC5C,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,mDAAmD,YAAY,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpD,IACE,MAAM,IAAI,IAAI;QACd,OAAO,MAAM,KAAK,QAAQ;QAC1B,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC;QACvB,MAAM,CAAC,QAAQ,IAAI,IAAI;QACvB,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;QACnC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAC9B,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,2DAA2D,YAAY,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,MAAkB,CAAC;AAC5B,CAAC"}
|