diff --git a/packages/cli/package.json b/packages/cli/package.json index 5e4de30525..22980aa3f5 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -9,7 +9,7 @@ "os": "./bin/run.js" }, "scripts": { - "build": "tsc -p tsconfig.build.json", + "build": "if [ -n \"$OS_SKIP_DTS\" ]; then tsc -p tsconfig.build.json --noCheck --declaration false --declarationMap false; else tsc -p tsconfig.build.json; fi", "dev": "tsc -p tsconfig.build.json --watch", "test": "vitest run", "lint": "eslint src" diff --git a/packages/cli/src/commands/serve.ts b/packages/cli/src/commands/serve.ts index e5f98a011c..7a75c97d8b 100644 --- a/packages/cli/src/commands/serve.ts +++ b/packages/cli/src/commands/serve.ts @@ -1377,7 +1377,11 @@ export default class Serve extends Command { trackPlugin('AIService'); } catch (err: unknown) { const msg = err instanceof Error ? err.message : String(err); - if (!msg.includes('Cannot find module') && !msg.includes('ERR_MODULE_NOT_FOUND')) { + const code = (err as { code?: string })?.code; + const missing = code === 'ERR_MODULE_NOT_FOUND' + || msg.includes('Cannot find module') + || msg.includes('Cannot find package'); + if (!missing) { console.error('[AI] AIServicePlugin failed to start:', msg); } // @objectstack/service-ai not installed — AI features unavailable @@ -1401,7 +1405,11 @@ export default class Serve extends Command { trackPlugin('AIStudio'); } catch (err: unknown) { const msg = err instanceof Error ? err.message : String(err); - if (!msg.includes('Cannot find module') && !msg.includes('ERR_MODULE_NOT_FOUND')) { + const code = (err as { code?: string })?.code; + const missing = code === 'ERR_MODULE_NOT_FOUND' + || msg.includes('Cannot find module') + || msg.includes('Cannot find package'); + if (!missing) { console.error('[AI Studio] AIStudioPlugin failed to start:', msg); } // @objectstack/service-ai-studio not installed — AI authoring unavailable diff --git a/packages/cli/tsup.config.ts b/packages/cli/tsup.config.ts index e3c4898f83..a26047d4ff 100644 --- a/packages/cli/tsup.config.ts +++ b/packages/cli/tsup.config.ts @@ -17,7 +17,7 @@ export default defineConfig([ { entry: ['src/index.ts'], format: ['esm'], - dts: true, + dts: !process.env.OS_SKIP_DTS, shims: true, }, ]); diff --git a/packages/core/tsup.config.ts b/packages/core/tsup.config.ts index ba2a9673c4..365b76b31f 100644 --- a/packages/core/tsup.config.ts +++ b/packages/core/tsup.config.ts @@ -13,7 +13,7 @@ export default defineConfig({ splitting: false, sourcemap: true, clean: true, - dts: true, + dts: !process.env.OS_SKIP_DTS, format: ['esm', 'cjs'], target: 'es2020', }); diff --git a/packages/metadata-core/tsup.config.ts b/packages/metadata-core/tsup.config.ts index be6392f3de..a9fe160868 100644 --- a/packages/metadata-core/tsup.config.ts +++ b/packages/metadata-core/tsup.config.ts @@ -7,7 +7,7 @@ export default defineConfig({ splitting: true, sourcemap: true, clean: true, - dts: true, + dts: !process.env.OS_SKIP_DTS, format: ['esm', 'cjs'], target: 'es2020', external: ['vitest'], diff --git a/packages/metadata-fs/tsup.config.ts b/packages/metadata-fs/tsup.config.ts index 5a1f5ef5a9..88826a7e6b 100644 --- a/packages/metadata-fs/tsup.config.ts +++ b/packages/metadata-fs/tsup.config.ts @@ -7,7 +7,7 @@ export default defineConfig({ splitting: false, sourcemap: true, clean: true, - dts: true, + dts: !process.env.OS_SKIP_DTS, format: ['esm', 'cjs'], target: 'es2020', external: ['chokidar', '@objectstack/metadata-core'], diff --git a/packages/metadata/tsup.config.ts b/packages/metadata/tsup.config.ts index 665d2b419e..a6d6f382fb 100644 --- a/packages/metadata/tsup.config.ts +++ b/packages/metadata/tsup.config.ts @@ -11,7 +11,7 @@ export default defineConfig({ splitting: false, sourcemap: true, clean: true, - dts: true, + dts: !process.env.OS_SKIP_DTS, format: ['esm', 'cjs'], target: 'es2020', }); diff --git a/packages/platform-objects/tsup.config.ts b/packages/platform-objects/tsup.config.ts index 8dc68c40c6..f147ec30fd 100644 --- a/packages/platform-objects/tsup.config.ts +++ b/packages/platform-objects/tsup.config.ts @@ -17,7 +17,7 @@ export default defineConfig({ plugin: 'src/plugin.ts', }, format: ['cjs', 'esm'], - dts: true, + dts: !process.env.OS_SKIP_DTS, clean: true, sourcemap: true, splitting: false, diff --git a/packages/plugins/plugin-webhooks/tsup.config.ts b/packages/plugins/plugin-webhooks/tsup.config.ts index 983062dbef..37429d0932 100644 --- a/packages/plugins/plugin-webhooks/tsup.config.ts +++ b/packages/plugins/plugin-webhooks/tsup.config.ts @@ -7,7 +7,7 @@ export default defineConfig({ splitting: true, sourcemap: true, clean: true, - dts: true, + dts: !process.env.OS_SKIP_DTS, format: ['esm', 'cjs'], target: 'es2020', external: ['vitest'], diff --git a/packages/runtime/tsup.config.ts b/packages/runtime/tsup.config.ts index 3b7de514f4..0e3f256726 100644 --- a/packages/runtime/tsup.config.ts +++ b/packages/runtime/tsup.config.ts @@ -7,7 +7,7 @@ export default defineConfig({ splitting: false, sourcemap: true, clean: true, - dts: true, + dts: !process.env.OS_SKIP_DTS, format: ['esm', 'cjs'], target: 'es2020', // Mark driver packages as external so they are resolved at runtime, not bundled diff --git a/packages/services/service-cluster-redis/tsup.config.ts b/packages/services/service-cluster-redis/tsup.config.ts index e99e286398..c1773045fb 100644 --- a/packages/services/service-cluster-redis/tsup.config.ts +++ b/packages/services/service-cluster-redis/tsup.config.ts @@ -7,7 +7,7 @@ export default defineConfig({ splitting: true, sourcemap: true, clean: true, - dts: true, + dts: !process.env.OS_SKIP_DTS, format: ['esm', 'cjs'], target: 'es2020', external: ['vitest', 'ioredis'], diff --git a/packages/services/service-cluster/tsup.config.ts b/packages/services/service-cluster/tsup.config.ts index 53dfb458c5..31546183ca 100644 --- a/packages/services/service-cluster/tsup.config.ts +++ b/packages/services/service-cluster/tsup.config.ts @@ -7,7 +7,7 @@ export default defineConfig({ splitting: true, sourcemap: true, clean: true, - dts: true, + dts: !process.env.OS_SKIP_DTS, format: ['esm', 'cjs'], target: 'es2020', external: ['vitest'], diff --git a/packages/services/service-datasource/tsup.config.ts b/packages/services/service-datasource/tsup.config.ts index 6659899115..d54f0e0b9a 100644 --- a/packages/services/service-datasource/tsup.config.ts +++ b/packages/services/service-datasource/tsup.config.ts @@ -7,7 +7,7 @@ export default defineConfig({ splitting: true, sourcemap: true, clean: true, - dts: true, + dts: !process.env.OS_SKIP_DTS, format: ['esm', 'cjs'], target: 'es2020', // Driver packages are loaded via optional, lazy `await import('@objectstack/driver-*')` diff --git a/packages/spec/package.json b/packages/spec/package.json index 9dedfdc30d..4d72f2a444 100644 --- a/packages/spec/package.json +++ b/packages/spec/package.json @@ -178,7 +178,7 @@ "src/**/*.zod.ts" ], "scripts": { - "build": "pnpm gen:schema && pnpm gen:openapi && tsup && NODE_OPTIONS=\"--max-old-space-size=4096\" BUILD_DTS=true tsup", + "build": "pnpm gen:schema && pnpm gen:openapi && tsup && if [ -z \"$OS_SKIP_DTS\" ]; then NODE_OPTIONS=\"--max-old-space-size=4096\" BUILD_DTS=true tsup; fi", "dev": "tsc --watch", "clean": "rm -rf dist", "gen:schema": "OS_EAGER_SCHEMAS=1 tsx scripts/build-schemas.ts", diff --git a/tsup.config.ts b/tsup.config.ts index 533062fa6e..ffa32ebd48 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -5,7 +5,7 @@ export default defineConfig({ splitting: false, sourcemap: true, clean: true, - dts: true, + dts: !process.env.OS_SKIP_DTS, format: ['esm', 'cjs'], target: 'es2020', }); diff --git a/turbo.json b/turbo.json index 624a57bcfc..6b670ca659 100644 --- a/turbo.json +++ b/turbo.json @@ -1,6 +1,7 @@ { "$schema": "https://turbo.build/schema.json", "globalDependencies": ["tsconfig.json", "tsup.config.ts"], + "globalEnv": ["OS_SKIP_DTS"], "tasks": { "build": { "dependsOn": ["^build"],