@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,36 @@
|
|
|
1
|
+
import ts from "typescript";
|
|
2
|
+
import { type SerializedDiagnostic } from "./typecheck-serialization";
|
|
3
|
+
/**
|
|
4
|
+
* Options for package-mode tsc build
|
|
5
|
+
*/
|
|
6
|
+
export interface TscPackageBuildOptions {
|
|
7
|
+
pkgDir: string;
|
|
8
|
+
cwd: string;
|
|
9
|
+
/** Output control flags: which files to emit */
|
|
10
|
+
output: {
|
|
11
|
+
js: boolean;
|
|
12
|
+
dts: boolean;
|
|
13
|
+
};
|
|
14
|
+
/** Pre-parsed tsconfig. If provided, skips parseTsconfig() call. */
|
|
15
|
+
parsedConfig?: ts.ParsedCommandLine;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Result of package-mode tsc build
|
|
19
|
+
*/
|
|
20
|
+
export interface TscPackageBuildResult {
|
|
21
|
+
success: boolean;
|
|
22
|
+
errors?: string[];
|
|
23
|
+
diagnostics: SerializedDiagnostic[];
|
|
24
|
+
errorCount: number;
|
|
25
|
+
warningCount: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Run TypeScript incremental build for a package.
|
|
29
|
+
*
|
|
30
|
+
* - output.js || output.dts: emit mode (src files only, generates output files)
|
|
31
|
+
* - neither: typecheck only (src + test files, no output)
|
|
32
|
+
*
|
|
33
|
+
* Uses tsBuildInfoFile for incremental compilation across runs.
|
|
34
|
+
*/
|
|
35
|
+
export declare function runTscPackageBuild(options: TscPackageBuildOptions): TscPackageBuildResult;
|
|
36
|
+
//# sourceMappingURL=tsc-build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tsc-build.d.ts","sourceRoot":"","sources":["..\\..\\src\\utils\\tsc-build.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAQ5B,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAG3F;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,gDAAgD;IAChD,MAAM,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,CAAC;IACtC,oEAAoE;IACpE,YAAY,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,GAAG,qBAAqB,CAmIzF"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
import { pathx } from "@simplysm/core-node";
|
|
4
|
+
import { err as errNs } from "@simplysm/core-common";
|
|
5
|
+
import { parseTsconfig, getPackageSourceFiles, getPackageFiles, } from "./tsconfig.js";
|
|
6
|
+
import { serializeDiagnostic } from "./typecheck-serialization.js";
|
|
7
|
+
import { createOutputPathRewriter, addJsExtensionToImports } from "./output-path-rewriter.js";
|
|
8
|
+
/**
|
|
9
|
+
* Run TypeScript incremental build for a package.
|
|
10
|
+
*
|
|
11
|
+
* - output.js || output.dts: emit mode (src files only, generates output files)
|
|
12
|
+
* - neither: typecheck only (src + test files, no output)
|
|
13
|
+
*
|
|
14
|
+
* Uses tsBuildInfoFile for incremental compilation across runs.
|
|
15
|
+
*/
|
|
16
|
+
export function runTscPackageBuild(options) {
|
|
17
|
+
try {
|
|
18
|
+
const { pkgDir, output } = options;
|
|
19
|
+
const needsEmit = output.js || output.dts;
|
|
20
|
+
const parsedConfig = options.parsedConfig ?? parseTsconfig(pkgDir);
|
|
21
|
+
const baseOptions = parsedConfig.options;
|
|
22
|
+
let rootFiles;
|
|
23
|
+
let diagnosticFilter;
|
|
24
|
+
if (needsEmit) {
|
|
25
|
+
rootFiles = getPackageSourceFiles(pkgDir, parsedConfig);
|
|
26
|
+
const pkgSrcDir = path.join(pkgDir, "src");
|
|
27
|
+
diagnosticFilter = (d) => d.file == null || pathx.isChildPath(d.file.fileName, pkgSrcDir);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
rootFiles = getPackageFiles(pkgDir, parsedConfig);
|
|
31
|
+
diagnosticFilter = (d) => d.file == null || pathx.isChildPath(d.file.fileName, pkgDir);
|
|
32
|
+
}
|
|
33
|
+
const tsBuildInfoFile = path.join(pkgDir, ".cache", needsEmit ? "build.tsbuildinfo" : "typecheck.tsbuildinfo");
|
|
34
|
+
const compilerOptions = {
|
|
35
|
+
...baseOptions,
|
|
36
|
+
sourceMap: output.js,
|
|
37
|
+
incremental: true,
|
|
38
|
+
tsBuildInfoFile,
|
|
39
|
+
};
|
|
40
|
+
if (output.js && output.dts) {
|
|
41
|
+
compilerOptions.noEmit = false;
|
|
42
|
+
compilerOptions.emitDeclarationOnly = false;
|
|
43
|
+
compilerOptions.declaration = true;
|
|
44
|
+
compilerOptions.declarationMap = true;
|
|
45
|
+
compilerOptions.outDir = path.join(pkgDir, "dist");
|
|
46
|
+
compilerOptions.declarationDir = path.join(pkgDir, "dist");
|
|
47
|
+
}
|
|
48
|
+
else if (output.js) {
|
|
49
|
+
compilerOptions.noEmit = false;
|
|
50
|
+
compilerOptions.emitDeclarationOnly = false;
|
|
51
|
+
compilerOptions.declaration = false;
|
|
52
|
+
compilerOptions.declarationMap = false;
|
|
53
|
+
compilerOptions.outDir = path.join(pkgDir, "dist");
|
|
54
|
+
}
|
|
55
|
+
else if (output.dts) {
|
|
56
|
+
compilerOptions.noEmit = false;
|
|
57
|
+
compilerOptions.emitDeclarationOnly = true;
|
|
58
|
+
compilerOptions.declaration = true;
|
|
59
|
+
compilerOptions.declarationMap = true;
|
|
60
|
+
compilerOptions.outDir = path.join(pkgDir, "dist");
|
|
61
|
+
compilerOptions.declarationDir = path.join(pkgDir, "dist");
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
compilerOptions.noEmit = true;
|
|
65
|
+
compilerOptions.emitDeclarationOnly = false;
|
|
66
|
+
compilerOptions.declaration = false;
|
|
67
|
+
compilerOptions.declarationMap = false;
|
|
68
|
+
}
|
|
69
|
+
const host = ts.createIncrementalCompilerHost(compilerOptions);
|
|
70
|
+
if (needsEmit) {
|
|
71
|
+
const rewritePath = createOutputPathRewriter(pkgDir);
|
|
72
|
+
const originalWriteFile = host.writeFile;
|
|
73
|
+
host.writeFile = (fileName, content, writeByteOrderMark, onError, sourceFiles, data) => {
|
|
74
|
+
const result = rewritePath(fileName, content);
|
|
75
|
+
if (result != null) {
|
|
76
|
+
let [newPath, newContent] = result;
|
|
77
|
+
if (newPath.endsWith(".js")) {
|
|
78
|
+
newContent = addJsExtensionToImports(newContent);
|
|
79
|
+
}
|
|
80
|
+
originalWriteFile(newPath, newContent, writeByteOrderMark, onError, sourceFiles, data);
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
const program = ts.createIncrementalProgram({
|
|
85
|
+
rootNames: rootFiles,
|
|
86
|
+
options: compilerOptions,
|
|
87
|
+
host,
|
|
88
|
+
});
|
|
89
|
+
const emitResult = program.emit();
|
|
90
|
+
const allDiagnostics = [
|
|
91
|
+
...program.getConfigFileParsingDiagnostics(),
|
|
92
|
+
...program.getSyntacticDiagnostics(),
|
|
93
|
+
...program.getOptionsDiagnostics(),
|
|
94
|
+
...program.getGlobalDiagnostics(),
|
|
95
|
+
...program.getSemanticDiagnostics(),
|
|
96
|
+
...emitResult.diagnostics,
|
|
97
|
+
];
|
|
98
|
+
const filteredDiagnostics = allDiagnostics.filter(diagnosticFilter);
|
|
99
|
+
const serializedDiagnostics = filteredDiagnostics.map(serializeDiagnostic);
|
|
100
|
+
const errorCount = filteredDiagnostics.filter((d) => d.category === ts.DiagnosticCategory.Error).length;
|
|
101
|
+
const warningCount = filteredDiagnostics.filter((d) => d.category === ts.DiagnosticCategory.Warning).length;
|
|
102
|
+
const errors = filteredDiagnostics
|
|
103
|
+
.filter((d) => d.category === ts.DiagnosticCategory.Error)
|
|
104
|
+
.map((d) => {
|
|
105
|
+
const message = ts.flattenDiagnosticMessageText(d.messageText, "\n");
|
|
106
|
+
if (d.file != null && d.start != null) {
|
|
107
|
+
const { line, character } = d.file.getLineAndCharacterOfPosition(d.start);
|
|
108
|
+
return `${d.file.fileName}:${line + 1}:${character + 1}: TS${d.code}: ${message}`;
|
|
109
|
+
}
|
|
110
|
+
return `TS${d.code}: ${message}`;
|
|
111
|
+
});
|
|
112
|
+
return {
|
|
113
|
+
success: errorCount === 0,
|
|
114
|
+
errors: errors.length > 0 ? errors : undefined,
|
|
115
|
+
diagnostics: serializedDiagnostics,
|
|
116
|
+
errorCount,
|
|
117
|
+
warningCount,
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
catch (err) {
|
|
121
|
+
return {
|
|
122
|
+
success: false,
|
|
123
|
+
errors: [errNs.message(err)],
|
|
124
|
+
diagnostics: [],
|
|
125
|
+
errorCount: 1,
|
|
126
|
+
warningCount: 0,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=tsc-build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tsc-build.js","sourceRoot":"","sources":["..\\..\\src\\utils\\tsc-build.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/tsconfig.d.ts
CHANGED
|
@@ -1,38 +1,19 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Check if tsconfig.json in the given directory has angularCompilerOptions.
|
|
4
|
+
* Uses ts.readConfigFile to read raw JSON (before parsing/extension).
|
|
4
5
|
*/
|
|
5
|
-
export declare function
|
|
6
|
+
export declare function hasAngularCompilerOptions(pkgDir: string): boolean;
|
|
6
7
|
/**
|
|
7
|
-
*
|
|
8
|
-
* - node: remove DOM lib + add node types
|
|
9
|
-
* - browser: remove node types
|
|
8
|
+
* Parse tsconfig.json from the given directory.
|
|
10
9
|
*/
|
|
11
|
-
export
|
|
10
|
+
export declare function parseTsconfig(dir: string): ts.ParsedCommandLine;
|
|
12
11
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* @param baseOptions - Compiler options from root tsconfig
|
|
16
|
-
* @param env - Type check environment (node: remove DOM lib + add node types, browser: remove node types)
|
|
17
|
-
* @param packageDir - Package directory path
|
|
18
|
-
*
|
|
19
|
-
* @remarks
|
|
20
|
-
* The types option ignores baseOptions.types and is newly constructed per package.
|
|
21
|
-
* This is because the global types in root tsconfig may not fit the package environment.
|
|
22
|
-
* (e.g., prevent node types from being included in browser packages)
|
|
23
|
-
*/
|
|
24
|
-
export declare function getCompilerOptionsForPackage(baseOptions: ts.CompilerOptions, env: TypecheckEnv, packageDir: string): Promise<ts.CompilerOptions>;
|
|
25
|
-
/**
|
|
26
|
-
* Parse root tsconfig
|
|
27
|
-
* @throws If unable to read or parse tsconfig.json
|
|
28
|
-
*/
|
|
29
|
-
export declare function parseRootTsconfig(cwd: string): ts.ParsedCommandLine;
|
|
30
|
-
/**
|
|
31
|
-
* Get list of package source files (based on tsconfig)
|
|
12
|
+
* Get source files (under src/) from a package, filtered by the parsed tsconfig.
|
|
32
13
|
*/
|
|
33
14
|
export declare function getPackageSourceFiles(pkgDir: string, parsedConfig: ts.ParsedCommandLine): string[];
|
|
34
15
|
/**
|
|
35
|
-
* Get
|
|
16
|
+
* Get all files (src + tests) from a package, filtered by the parsed tsconfig.
|
|
36
17
|
*/
|
|
37
18
|
export declare function getPackageFiles(pkgDir: string, parsedConfig: ts.ParsedCommandLine): string[];
|
|
38
19
|
//# sourceMappingURL=tsconfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tsconfig.d.ts","sourceRoot":"","sources":["..\\..\\src\\utils\\tsconfig.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tsconfig.d.ts","sourceRoot":"","sources":["..\\..\\src\\utils\\tsconfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAG5B;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,CAAC,iBAAiB,CAa/D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,EAAE,CAAC,iBAAiB,GACjC,MAAM,EAAE,CAGV;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,EAAE,CAAC,iBAAiB,GACjC,MAAM,EAAE,CAEV"}
|
package/dist/utils/tsconfig.js
CHANGED
|
@@ -1,69 +1,44 @@
|
|
|
1
|
-
import ts from "typescript";
|
|
2
1
|
import path from "path";
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
async function getCompilerOptionsForPackage(baseOptions, env, packageDir) {
|
|
18
|
-
const options = { ...baseOptions };
|
|
19
|
-
const packageTypes = await getTypesFromPackageJson(packageDir);
|
|
20
|
-
options.typeRoots = [
|
|
21
|
-
path.join(packageDir, "node_modules", "@types"),
|
|
22
|
-
path.join(process.cwd(), "node_modules", "@types")
|
|
23
|
-
];
|
|
24
|
-
switch (env) {
|
|
25
|
-
case "node":
|
|
26
|
-
options.lib = options.lib?.filter(
|
|
27
|
-
(lib) => !DOM_LIB_PATTERNS.some((pattern) => lib.toLowerCase().includes(pattern))
|
|
28
|
-
);
|
|
29
|
-
options.types = [.../* @__PURE__ */ new Set([...packageTypes, "node"])];
|
|
30
|
-
break;
|
|
31
|
-
case "browser":
|
|
32
|
-
options.types = packageTypes.filter((t) => t !== "node");
|
|
33
|
-
break;
|
|
34
|
-
}
|
|
35
|
-
return options;
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
import { pathx } from "@simplysm/core-node";
|
|
4
|
+
/**
|
|
5
|
+
* Check if tsconfig.json in the given directory has angularCompilerOptions.
|
|
6
|
+
* Uses ts.readConfigFile to read raw JSON (before parsing/extension).
|
|
7
|
+
*/
|
|
8
|
+
export function hasAngularCompilerOptions(pkgDir) {
|
|
9
|
+
const tsconfigPath = path.join(pkgDir, "tsconfig.json");
|
|
10
|
+
const configFile = ts.readConfigFile(tsconfigPath, ts.sys.readFile);
|
|
11
|
+
if (configFile.error != null) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
return configFile.config?.angularCompilerOptions != null;
|
|
36
15
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Parse tsconfig.json from the given directory.
|
|
18
|
+
*/
|
|
19
|
+
export function parseTsconfig(dir) {
|
|
20
|
+
const tsconfigPath = path.join(dir, "tsconfig.json");
|
|
21
|
+
const configFile = ts.readConfigFile(tsconfigPath, ts.sys.readFile);
|
|
22
|
+
if (configFile.error) {
|
|
23
|
+
throw new Error(ts.flattenDiagnosticMessageText(configFile.error.messageText, "\n"));
|
|
24
|
+
}
|
|
25
|
+
const parsed = ts.parseJsonConfigFileContent(configFile.config, ts.sys, dir);
|
|
26
|
+
if (parsed.errors.length > 0) {
|
|
27
|
+
throw new Error(parsed.errors.map((e) => ts.flattenDiagnosticMessageText(e.messageText, "\n")).join("\n"));
|
|
28
|
+
}
|
|
29
|
+
return parsed;
|
|
50
30
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
31
|
+
/**
|
|
32
|
+
* Get source files (under src/) from a package, filtered by the parsed tsconfig.
|
|
33
|
+
*/
|
|
34
|
+
export function getPackageSourceFiles(pkgDir, parsedConfig) {
|
|
35
|
+
const srcDir = path.join(pkgDir, "src");
|
|
36
|
+
return parsedConfig.fileNames.filter((f) => pathx.isChildPath(f, srcDir));
|
|
54
37
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
return
|
|
60
|
-
});
|
|
38
|
+
/**
|
|
39
|
+
* Get all files (src + tests) from a package, filtered by the parsed tsconfig.
|
|
40
|
+
*/
|
|
41
|
+
export function getPackageFiles(pkgDir, parsedConfig) {
|
|
42
|
+
return parsedConfig.fileNames.filter((f) => pathx.isChildPath(f, pkgDir));
|
|
61
43
|
}
|
|
62
|
-
|
|
63
|
-
getCompilerOptionsForPackage,
|
|
64
|
-
getPackageFiles,
|
|
65
|
-
getPackageSourceFiles,
|
|
66
|
-
getTypesFromPackageJson,
|
|
67
|
-
parseRootTsconfig
|
|
68
|
-
};
|
|
69
|
-
//# sourceMappingURL=tsconfig.js.map
|
|
44
|
+
//# sourceMappingURL=tsconfig.js.map
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/tsconfig.ts"],
|
|
4
|
-
"mappings": "AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,SAAS,KAAK,aAAa;AAC3B,SAAS,eAAe;AAMxB,MAAM,mBAAmB,CAAC,OAAO,WAAW;AAK5C,eAAsB,wBAAwB,YAAuC;AACnF,QAAM,kBAAkB,KAAK,KAAK,YAAY,cAAc;AAC5D,MAAI,CAAE,MAAM,IAAI,OAAO,eAAe,GAAI;AACxC,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,cAAc,MAAM,IAAI;AAAA,IAC5B;AAAA,EACF;AACA,QAAM,UAAU,YAAY,mBAAmB,CAAC;AAEhD,SAAO,OAAO,KAAK,OAAO,EACvB,OAAO,CAAC,QAAQ,IAAI,WAAW,SAAS,CAAC,EACzC,IAAI,CAAC,QAAQ,IAAI,QAAQ,WAAW,EAAE,CAAC;AAC5C;AAqBA,eAAsB,6BACpB,aACA,KACA,YAC6B;AAC7B,QAAM,UAAU,EAAE,GAAG,YAAY;AACjC,QAAM,eAAe,MAAM,wBAAwB,UAAU;AAG7D,UAAQ,YAAY;AAAA,IAClB,KAAK,KAAK,YAAY,gBAAgB,QAAQ;AAAA,IAC9C,KAAK,KAAK,QAAQ,IAAI,GAAG,gBAAgB,QAAQ;AAAA,EACnD;AAEA,UAAQ,KAAK;AAAA,IACX,KAAK;AACH,cAAQ,MAAM,QAAQ,KAAK;AAAA,QACzB,CAAC,QAAQ,CAAC,iBAAiB,KAAK,CAAC,YAAY,IAAI,YAAY,EAAE,SAAS,OAAO,CAAC;AAAA,MAClF;AACA,cAAQ,QAAQ,CAAC,GAAG,oBAAI,IAAI,CAAC,GAAG,cAAc,MAAM,CAAC,CAAC;AACtD;AAAA,IACF,KAAK;AACH,cAAQ,QAAQ,aAAa,OAAO,CAAC,MAAM,MAAM,MAAM;AACvD;AAAA,EACJ;AAEA,SAAO;AACT;AAMO,SAAS,kBAAkB,KAAmC;AACnE,QAAM,eAAe,KAAK,KAAK,KAAK,eAAe;AACnD,QAAM,aAAa,GAAG,eAAe,cAAc,GAAG,IAAI,QAAQ;AAElE,MAAI,WAAW,OAAO;AACpB,UAAM,UAAU,GAAG,6BAA6B,WAAW,MAAM,aAAa,IAAI;AAClF,UAAM,IAAI,QAAQ,iCAAiC,OAAO,EAAE;AAAA,EAC9D;AAEA,QAAM,SAAS,GAAG,2BAA2B,WAAW,QAAQ,GAAG,KAAK,GAAG;AAE3E,MAAI,OAAO,OAAO,SAAS,GAAG;AAC5B,UAAM,WAAW,OAAO,OAAO,IAAI,CAAC,MAAM,GAAG,6BAA6B,EAAE,aAAa,IAAI,CAAC;AAC9F,UAAM,IAAI,QAAQ,kCAAkC,SAAS,KAAK,IAAI,CAAC,EAAE;AAAA,EAC3E;AAEA,SAAO;AACT;AAKO,SAAS,sBACd,QACA,cACU;AACV,QAAM,YAAY,KAAK,KAAK,QAAQ,KAAK;AACzC,SAAO,aAAa,UAAU,OAAO,CAAC,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC;AAC7E;AAKO,SAAS,gBAAgB,QAAgB,cAA8C;AAC5F,SAAO,aAAa,UAAU,OAAO,CAAC,MAAM;AAC1C,QAAI,CAAC,MAAM,YAAY,GAAG,MAAM,EAAG,QAAO;AAE1C,UAAM,WAAW,KAAK,SAAS,QAAQ,CAAC;AACxC,WAAO,KAAK,QAAQ,QAAQ,MAAM;AAAA,EACpC,CAAC;AACH;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
1
|
+
{"version":3,"file":"tsconfig.js","sourceRoot":"","sources":["..\\..\\src\\utils\\tsconfig.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAc;IACtD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,EAAE,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpE,IAAI,UAAU,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,UAAU,CAAC,MAAM,EAAE,sBAAsB,IAAI,IAAI,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,EAAE,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpE,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,MAAM,GAAG,EAAE,CAAC,0BAA0B,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7E,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,YAAkC;IAElC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxC,OAAO,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,YAAkC;IAElC,OAAO,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type SerializedDiagnostic } from "./typecheck-serialization";
|
|
2
|
+
export interface NonPackageTypecheckResult {
|
|
3
|
+
success: boolean;
|
|
4
|
+
errorCount: number;
|
|
5
|
+
warningCount: number;
|
|
6
|
+
diagnostics: SerializedDiagnostic[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Typecheck non-package files (root-level configs + package root configs).
|
|
10
|
+
* Extracted from dts.worker.ts non-package mode.
|
|
11
|
+
*
|
|
12
|
+
* Non-package files include:
|
|
13
|
+
* - Root-level files (vitest.config.ts, etc.) — not under packages/
|
|
14
|
+
* - Package root config files (packages/{pkg}/vitest.config.ts) — depth 2 under packages/
|
|
15
|
+
* Excludes package source files (packages/{pkg}/src/...)
|
|
16
|
+
*/
|
|
17
|
+
export declare function typecheckNonPackageFiles(cwd: string): NonPackageTypecheckResult;
|
|
18
|
+
//# sourceMappingURL=typecheck-non-package.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typecheck-non-package.d.ts","sourceRoot":"","sources":["..\\..\\src\\utils\\typecheck-non-package.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAE3F,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,yBAAyB,CAiE/E"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import ts from "typescript";
|
|
3
|
+
import { parseTsconfig } from "./tsconfig.js";
|
|
4
|
+
import { serializeDiagnostic } from "./typecheck-serialization.js";
|
|
5
|
+
/**
|
|
6
|
+
* Typecheck non-package files (root-level configs + package root configs).
|
|
7
|
+
* Extracted from dts.worker.ts non-package mode.
|
|
8
|
+
*
|
|
9
|
+
* Non-package files include:
|
|
10
|
+
* - Root-level files (vitest.config.ts, etc.) — not under packages/
|
|
11
|
+
* - Package root config files (packages/{pkg}/vitest.config.ts) — depth 2 under packages/
|
|
12
|
+
* Excludes package source files (packages/{pkg}/src/...)
|
|
13
|
+
*/
|
|
14
|
+
export function typecheckNonPackageFiles(cwd) {
|
|
15
|
+
const parsedConfig = parseTsconfig(cwd);
|
|
16
|
+
const packagesDir = path.join(cwd, "packages");
|
|
17
|
+
const isNonPackageFile = (fileName) => {
|
|
18
|
+
const normalized = path.resolve(fileName);
|
|
19
|
+
const normalizedPkgDir = path.resolve(packagesDir);
|
|
20
|
+
// Files outside packages/ directory
|
|
21
|
+
if (!normalized.startsWith(normalizedPkgDir + path.sep))
|
|
22
|
+
return true;
|
|
23
|
+
// Files directly in package root (e.g., packages/{pkg}/file.ts — depth 2)
|
|
24
|
+
const relative = path.relative(normalizedPkgDir, normalized);
|
|
25
|
+
return relative.split(path.sep).length === 2;
|
|
26
|
+
};
|
|
27
|
+
const rootFiles = parsedConfig.fileNames.filter(isNonPackageFile);
|
|
28
|
+
const tsBuildInfoFile = path.join(cwd, ".cache", "typecheck-root.tsbuildinfo");
|
|
29
|
+
const options = {
|
|
30
|
+
...parsedConfig.options,
|
|
31
|
+
sourceMap: false,
|
|
32
|
+
incremental: true,
|
|
33
|
+
tsBuildInfoFile,
|
|
34
|
+
noEmit: true,
|
|
35
|
+
emitDeclarationOnly: false,
|
|
36
|
+
declaration: false,
|
|
37
|
+
declarationMap: false,
|
|
38
|
+
};
|
|
39
|
+
const host = ts.createIncrementalCompilerHost(options);
|
|
40
|
+
const program = ts.createIncrementalProgram({
|
|
41
|
+
rootNames: rootFiles,
|
|
42
|
+
options,
|
|
43
|
+
host,
|
|
44
|
+
});
|
|
45
|
+
program.emit();
|
|
46
|
+
const allDiagnostics = [
|
|
47
|
+
...program.getConfigFileParsingDiagnostics(),
|
|
48
|
+
...program.getSyntacticDiagnostics(),
|
|
49
|
+
...program.getOptionsDiagnostics(),
|
|
50
|
+
...program.getGlobalDiagnostics(),
|
|
51
|
+
...program.getSemanticDiagnostics(),
|
|
52
|
+
];
|
|
53
|
+
const filteredDiagnostics = allDiagnostics.filter((d) => d.file == null || isNonPackageFile(d.file.fileName));
|
|
54
|
+
const serializedDiagnostics = filteredDiagnostics.map(serializeDiagnostic);
|
|
55
|
+
const errorCount = filteredDiagnostics.filter((d) => d.category === ts.DiagnosticCategory.Error).length;
|
|
56
|
+
const warningCount = filteredDiagnostics.filter((d) => d.category === ts.DiagnosticCategory.Warning).length;
|
|
57
|
+
return {
|
|
58
|
+
success: errorCount === 0,
|
|
59
|
+
errorCount,
|
|
60
|
+
warningCount,
|
|
61
|
+
diagnostics: serializedDiagnostics,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=typecheck-non-package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typecheck-non-package.js","sourceRoot":"","sources":["..\\..\\src\\utils\\typecheck-non-package.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,47 +1,65 @@
|
|
|
1
1
|
import ts from "typescript";
|
|
2
2
|
import { fsx } from "@simplysm/core-node";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Convert Diagnostic to serializable form
|
|
5
|
+
* (remove circular references/functions for structured clone communication between Worker threads)
|
|
6
|
+
*/
|
|
7
|
+
export function serializeDiagnostic(diagnostic) {
|
|
8
|
+
// If DiagnosticMessageChain, flatten entire chain to preserve all context info
|
|
9
|
+
const messageText = ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n");
|
|
10
|
+
return {
|
|
11
|
+
category: diagnostic.category,
|
|
12
|
+
code: diagnostic.code,
|
|
13
|
+
messageText,
|
|
14
|
+
file: diagnostic.file
|
|
15
|
+
? {
|
|
16
|
+
fileName: diagnostic.file.fileName,
|
|
17
|
+
}
|
|
18
|
+
: undefined,
|
|
19
|
+
start: diagnostic.start,
|
|
20
|
+
length: diagnostic.length,
|
|
21
|
+
};
|
|
15
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Determine TypeScript ScriptKind from filename
|
|
25
|
+
*/
|
|
16
26
|
function getScriptKind(fileName) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
27
|
+
if (fileName.endsWith(".tsx"))
|
|
28
|
+
return ts.ScriptKind.TSX;
|
|
29
|
+
if (fileName.endsWith(".jsx"))
|
|
30
|
+
return ts.ScriptKind.JSX;
|
|
31
|
+
if (fileName.endsWith(".js") || fileName.endsWith(".mjs") || fileName.endsWith(".cjs"))
|
|
32
|
+
return ts.ScriptKind.JS;
|
|
33
|
+
return ts.ScriptKind.TS;
|
|
22
34
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Restore SerializedDiagnostic to ts.Diagnostic
|
|
37
|
+
* Reads actual file contents so source code context is displayed in formatDiagnosticsWithColorAndContext
|
|
38
|
+
* @param serialized - Serialized diagnostic information
|
|
39
|
+
* @param fileCache - File content cache (prevent duplicate reads of same file)
|
|
40
|
+
* @returns Restored ts.Diagnostic object
|
|
41
|
+
*/
|
|
42
|
+
export function deserializeDiagnostic(serialized, fileCache) {
|
|
43
|
+
let file;
|
|
44
|
+
if (serialized.file != null) {
|
|
45
|
+
const fileName = serialized.file.fileName;
|
|
46
|
+
// Get cached file content (read and cache if not present)
|
|
47
|
+
// If file was deleted or inaccessible, treat as empty content
|
|
48
|
+
// (source code context won't be displayed but diagnostic message is shown normally)
|
|
49
|
+
if (!fileCache.has(fileName)) {
|
|
50
|
+
fileCache.set(fileName, fsx.existsSync(fileName) ? fsx.readSync(fileName) : "");
|
|
51
|
+
}
|
|
52
|
+
const content = fileCache.get(fileName);
|
|
53
|
+
const scriptKind = getScriptKind(fileName);
|
|
54
|
+
file = ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, false, scriptKind);
|
|
29
55
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
file,
|
|
39
|
-
start: serialized.start,
|
|
40
|
-
length: serialized.length
|
|
41
|
-
};
|
|
56
|
+
return {
|
|
57
|
+
category: serialized.category,
|
|
58
|
+
code: serialized.code,
|
|
59
|
+
messageText: serialized.messageText,
|
|
60
|
+
file,
|
|
61
|
+
start: serialized.start,
|
|
62
|
+
length: serialized.length,
|
|
63
|
+
};
|
|
42
64
|
}
|
|
43
|
-
|
|
44
|
-
deserializeDiagnostic,
|
|
45
|
-
serializeDiagnostic
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=typecheck-serialization.js.map
|
|
65
|
+
//# sourceMappingURL=typecheck-serialization.js.map
|
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils/typecheck-serialization.ts"],
|
|
4
|
-
"mappings": "AAAA,OAAO,QAAQ;AACf,SAAS,WAAW;AAoBb,SAAS,oBAAoB,YAAiD;AAEnF,QAAM,cAAc,GAAG,6BAA6B,WAAW,aAAa,IAAI;AAEhF,SAAO;AAAA,IACL,UAAU,WAAW;AAAA,IACrB,MAAM,WAAW;AAAA,IACjB;AAAA,IACA,MAAM,WAAW,OACb;AAAA,MACE,UAAU,WAAW,KAAK;AAAA,IAC5B,IACA;AAAA,IACJ,OAAO,WAAW;AAAA,IAClB,QAAQ,WAAW;AAAA,EACrB;AACF;AAKA,SAAS,cAAc,UAAiC;AACtD,MAAI,SAAS,SAAS,MAAM,EAAG,QAAO,GAAG,WAAW;AACpD,MAAI,SAAS,SAAS,MAAM,EAAG,QAAO,GAAG,WAAW;AACpD,MAAI,SAAS,SAAS,KAAK,KAAK,SAAS,SAAS,MAAM,KAAK,SAAS,SAAS,MAAM;AACnF,WAAO,GAAG,WAAW;AACvB,SAAO,GAAG,WAAW;AACvB;AASO,SAAS,sBACd,YACA,WACe;AACf,MAAI;AACJ,MAAI,WAAW,QAAQ,MAAM;AAC3B,UAAM,WAAW,WAAW,KAAK;AAKjC,QAAI,CAAC,UAAU,IAAI,QAAQ,GAAG;AAC5B,gBAAU,IAAI,UAAU,IAAI,WAAW,QAAQ,IAAI,IAAI,SAAS,QAAQ,IAAI,EAAE;AAAA,IAChF;AACA,UAAM,UAAU,UAAU,IAAI,QAAQ;AAEtC,UAAM,aAAa,cAAc,QAAQ;AACzC,WAAO,GAAG,iBAAiB,UAAU,SAAS,GAAG,aAAa,QAAQ,OAAO,UAAU;AAAA,EACzF;AAEA,SAAO;AAAA,IACL,UAAU,WAAW;AAAA,IACrB,MAAM,WAAW;AAAA,IACjB,aAAa,WAAW;AAAA,IACxB;AAAA,IACA,OAAO,WAAW;AAAA,IAClB,QAAQ,WAAW;AAAA,EACrB;AACF;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
1
|
+
{"version":3,"file":"typecheck-serialization.js","sourceRoot":"","sources":["..\\..\\src\\utils\\typecheck-serialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAgB1C;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAyB;IAC3D,+EAA+E;IAC/E,MAAM,WAAW,GAAG,EAAE,CAAC,4BAA4B,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAElF,OAAO;QACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,WAAW;QACX,IAAI,EAAE,UAAU,CAAC,IAAI;YACnB,CAAC,CAAC;gBACE,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ;aACnC;YACH,CAAC,CAAC,SAAS;QACb,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,QAAgB;IACrC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;IACxD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;IACxD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;QACpF,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;IAC1B,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAgC,EAChC,SAA8B;IAE9B,IAAI,IAA+B,CAAC;IACpC,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;QAE1C,0DAA0D;QAC1D,8DAA8D;QAC9D,oFAAoF;QACpF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;QAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3F,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,IAAI;QACJ,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,MAAM,EAAE,UAAU,CAAC,MAAM;KAC1B,CAAC;AACJ,CAAC"}
|