{"version":3,"file":"build.cjs","names":["ResolutionSessionService","BuildTrainService","MISSING_CONFIG_MESSAGE","selectWorkspaceTargets","Effect","generateCodeArtifacts"],"sources":["../../src/handlers/build.ts"],"sourcesContent":["import { Effect } from \"effect\";\nimport { MISSING_CONFIG_MESSAGE } from \"../config\";\nimport { generateCodeArtifacts } from \"../services/codegen/artifacts\";\nimport type { BosEnv } from \"../services/resolution/merge\";\nimport { ResolutionSessionService } from \"../services/resolution/session\";\nimport {\n  type BuildTargetsInput,\n  BuildTrainService,\n  selectWorkspaceTargets,\n} from \"../services/workspace/build-train\";\nimport type { BosBuilder } from \"./shared\";\n\nexport function registerBuild(builder: BosBuilder) {\n  return {\n    build: builder.build.effect(function* (_opts, input) {\n      const session = yield* ResolutionSessionService;\n      const train = yield* BuildTrainService;\n      if (!session?.config) {\n        return {\n          status: \"error\" as const,\n          error: MISSING_CONFIG_MESSAGE,\n          built: [],\n          skipped: [],\n        };\n      }\n      const bosConfig = session.config;\n\n      const buildEnv: BosEnv = \"development\";\n\n      const targets = selectWorkspaceTargets(input.packages, bosConfig);\n      if (targets.length === 0) {\n        const allPackages = [\n          ...Object.keys(bosConfig.app ?? {}),\n          ...Object.keys(bosConfig.plugins ?? {}),\n        ];\n        return {\n          status: \"error\" as const,\n          error: `Unknown build target(s): ${input.packages} — valid targets: ${allPackages.join(\", \") || \"none\"} (framework packages build via the prerequisite train: pnpm run build <target>)`,\n          built: [],\n          skipped: [],\n        };\n      }\n\n      const runtimeConfig = yield* Effect.tryPromise({\n        try: () =>\n          session.buildRuntime({\n            uiSource: bosConfig.app.ui?.development ? \"local\" : \"remote\",\n            apiSource: bosConfig.app.api?.development ? \"local\" : \"remote\",\n            authSource: bosConfig.app.auth?.development ? \"local\" : \"remote\",\n            hostSource: bosConfig.app.host?.development ? \"local\" : \"remote\",\n            env: buildEnv,\n            plugins: session.runtime?.plugins,\n          }),\n        catch: () => ({\n          status: \"error\" as const,\n          error: \"Could not build the runtime config\",\n          built: [],\n          skipped: [],\n        }),\n      });\n      for (const message of session.warnings) {\n        console.warn(message);\n      }\n\n      yield* Effect.tryPromise({\n        try: () =>\n          generateCodeArtifacts(session.root, bosConfig, {\n            env: buildEnv,\n            runtimeConfig,\n          }),\n        catch: () => ({\n          status: \"error\" as const,\n          error: \"Could not generate code artifacts\",\n          built: [],\n          skipped: [],\n        }),\n      });\n\n      const buildInput: BuildTargetsInput = {\n        configDir: session.root,\n        bosConfig,\n        runtimeConfig,\n        targets,\n        deploy: false,\n      };\n      const { built, skipped } = yield* Effect.tryPromise({\n        try: () => train.buildTargets(buildInput),\n        catch: (error) => ({\n          status: \"error\" as const,\n          error: error instanceof Error ? error.message : \"Unknown error\",\n          built: [],\n          skipped: [],\n        }),\n      });\n\n      if (built.length === 0) {\n        return {\n          status: \"error\" as const,\n          error: `Nothing to build — no local targets matched${skipped.length > 0 ? `: ${skipped.join(\", \")}` : \"\"}`,\n          built: [],\n          skipped,\n        };\n      }\n\n      return {\n        status: \"success\" as const,\n        built,\n        skipped,\n      };\n    }),\n  };\n}\n"],"mappings":";;;;;;;AAYA,SAAgB,cAAc,SAAqB;CACjD,OAAO,EACL,OAAO,QAAQ,MAAM,OAAO,WAAW,OAAO,OAAO;EACnD,MAAM,UAAU,OAAOA;EACvB,MAAM,QAAQ,OAAOC;EACrB,IAAI,CAAC,SAAS,QACZ,OAAO;GACL,QAAQ;GACR,OAAOC;GACP,OAAO,CAAC;GACR,SAAS,CAAC;EACZ;EAEF,MAAM,YAAY,QAAQ;EAE1B,MAAM,WAAmB;EAEzB,MAAM,UAAUC,2CAAuB,MAAM,UAAU,SAAS;EAChE,IAAI,QAAQ,WAAW,GAAG;GACxB,MAAM,cAAc,CAClB,GAAG,OAAO,KAAK,UAAU,OAAO,CAAC,CAAC,GAClC,GAAG,OAAO,KAAK,UAAU,WAAW,CAAC,CAAC,CACxC;GACA,OAAO;IACL,QAAQ;IACR,OAAO,4BAA4B,MAAM,SAAS,oBAAoB,YAAY,KAAK,IAAI,KAAK,OAAO;IACvG,OAAO,CAAC;IACR,SAAS,CAAC;GACZ;EACF;EAEA,MAAM,gBAAgB,OAAOC,cAAO,WAAW;GAC7C,WACE,QAAQ,aAAa;IACnB,UAAU,UAAU,IAAI,IAAI,cAAc,UAAU;IACpD,WAAW,UAAU,IAAI,KAAK,cAAc,UAAU;IACtD,YAAY,UAAU,IAAI,MAAM,cAAc,UAAU;IACxD,YAAY,UAAU,IAAI,MAAM,cAAc,UAAU;IACxD,KAAK;IACL,SAAS,QAAQ,SAAS;GAC5B,CAAC;GACH,cAAc;IACZ,QAAQ;IACR,OAAO;IACP,OAAO,CAAC;IACR,SAAS,CAAC;GACZ;EACF,CAAC;EACD,KAAK,MAAM,WAAW,QAAQ,UAC5B,QAAQ,KAAK,OAAO;EAGtB,OAAOA,cAAO,WAAW;GACvB,WACEC,wCAAsB,QAAQ,MAAM,WAAW;IAC7C,KAAK;IACL;GACF,CAAC;GACH,cAAc;IACZ,QAAQ;IACR,OAAO;IACP,OAAO,CAAC;IACR,SAAS,CAAC;GACZ;EACF,CAAC;EAED,MAAM,aAAgC;GACpC,WAAW,QAAQ;GACnB;GACA;GACA;GACA,QAAQ;EACV;EACA,MAAM,EAAE,OAAO,YAAY,OAAOD,cAAO,WAAW;GAClD,WAAW,MAAM,aAAa,UAAU;GACxC,QAAQ,WAAW;IACjB,QAAQ;IACR,OAAO,iBAAiB,QAAQ,MAAM,UAAU;IAChD,OAAO,CAAC;IACR,SAAS,CAAC;GACZ;EACF,CAAC;EAED,IAAI,MAAM,WAAW,GACnB,OAAO;GACL,QAAQ;GACR,OAAO,8CAA8C,QAAQ,SAAS,IAAI,KAAK,QAAQ,KAAK,IAAI,MAAM;GACtG,OAAO,CAAC;GACR;EACF;EAGF,OAAO;GACL,QAAQ;GACR;GACA;EACF;CACF,CAAC,EACH;AACF"}