{"version":3,"file":"plugin.mjs","names":[],"sources":["../src/plugin.ts"],"sourcesContent":["import process from \"node:process\";\nimport * as p from \"@clack/prompts\";\nimport { Context, Effect, Layer } from \"effect\";\nimport { buildScoped, buildScopedContext } from \"every-plugin\";\nimport { registerBuild } from \"./commands/build\";\nimport { registerConfig } from \"./commands/config\";\nimport { registerDb } from \"./commands/db\";\nimport { registerDeploy } from \"./commands/deploy\";\nimport { registerDev } from \"./commands/dev\";\nimport { registerInit } from \"./commands/init\";\nimport { registerKeys } from \"./commands/keys\";\nimport { registerOps } from \"./commands/ops\";\nimport { registerPlugins } from \"./commands/plugins\";\nimport { type BosDeps, BosDepsTag } from \"./commands/shared\";\nimport { registerUpgrade } from \"./commands/upgrade\";\nimport { bosContract } from \"./contract\";\nimport { DatabaseBindings, DrizzleKit, makeDatabaseBindings, makeDrizzleKitLive } from \"./db\";\nimport { ProjectEnv, ProjectEnvLive } from \"./env/project-env\";\nimport { openResolution } from \"./resolution/session\";\nimport { createPlugin, z } from \"./sdk\";\n\nexport { resolveRemoteConfigChain } from \"./commands/config\";\nexport type { DevSessionData, StartSummary } from \"./dev-program\";\nexport { type ProgressEvent, pluginEvents } from \"./progress\";\n\nexport default createPlugin({\n  variables: z.object({\n    configPath: z.string().optional(),\n    // The artifact root (cwd-derived) — decoupled from configPath so an\n    // explicit boot config (--config-path fixture) validates and loads\n    // without redirecting where the CLI writes generated artifacts.\n    configDir: z.string().optional(),\n  }),\n  secrets: z.object({}),\n  contract: bosContract,\n  initialize: (config, _plugins) =>\n    Effect.gen(function* () {\n      const session = yield* Effect.promise(() =>\n        openResolution({ path: config.variables.configPath }),\n      );\n\n      const projectEnv = yield* buildScoped(ProjectEnv, ProjectEnvLive);\n      const effectContext = yield* Effect.context();\n\n      const configDir = config.variables.configDir ?? session?.root ?? process.cwd();\n\n      const services = yield* buildScopedContext(\n        Layer.mergeAll(\n          makeDatabaseBindings({\n            projectDir: configDir,\n            loadRuntimeConfig: async () => (await session?.buildRuntime()) ?? null,\n            loadEnv: () => Effect.runPromiseWith(effectContext)(projectEnv.load(configDir)),\n          }),\n          makeDrizzleKitLive({\n            projectDir: configDir,\n            onLog: (message) => p.log.info(message),\n          }),\n        ),\n      );\n\n      return Layer.succeed(BosDepsTag, {\n        session,\n        databaseBindings: Context.get(services, DatabaseBindings),\n        drizzleKit: Context.get(services, DrizzleKit),\n      } satisfies BosDeps);\n    }),\n  createRouter: (builder) => ({\n    ...registerConfig(builder),\n    ...registerPlugins(builder),\n    ...registerDev(builder),\n    ...registerBuild(builder),\n    ...registerDeploy(builder),\n    ...registerKeys(builder),\n    ...registerInit(builder),\n    ...registerUpgrade(builder),\n    ...registerDb(builder),\n    ...registerOps(builder),\n  }),\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAyBA,qBAAe,aAAa;CAC1B,WAAW,EAAE,OAAO;EAClB,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS;EAIhC,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,CAAC;CACD,SAAS,EAAE,OAAO,CAAC,CAAC;CACpB,UAAU;CACV,aAAa,QAAQ,aACnB,OAAO,IAAI,aAAa;EACtB,MAAM,UAAU,OAAO,OAAO,cAC5B,eAAe,EAAE,MAAM,OAAO,UAAU,WAAW,CAAC,CACtD;EAEA,MAAM,aAAa,OAAO,YAAY,YAAY,cAAc;EAChE,MAAM,gBAAgB,OAAO,OAAO,QAAQ;EAE5C,MAAM,YAAY,OAAO,UAAU,aAAa,SAAS,QAAQ,QAAQ,IAAI;EAE7E,MAAM,WAAW,OAAO,mBACtB,MAAM,SACJ,qBAAqB;GACnB,YAAY;GACZ,mBAAmB,YAAa,MAAM,SAAS,aAAa,KAAM;GAClE,eAAe,OAAO,eAAe,aAAa,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC;EAChF,CAAC,GACD,mBAAmB;GACjB,YAAY;GACZ,QAAQ,YAAY,EAAE,IAAI,KAAK,OAAO;EACxC,CAAC,CACH,CACF;EAEA,OAAO,MAAM,QAAQ,YAAY;GAC/B;GACA,kBAAkB,QAAQ,IAAI,UAAU,gBAAgB;GACxD,YAAY,QAAQ,IAAI,UAAU,UAAU;EAC9C,CAAmB;CACrB,CAAC;CACH,eAAe,aAAa;EAC1B,GAAG,eAAe,OAAO;EACzB,GAAG,gBAAgB,OAAO;EAC1B,GAAG,YAAY,OAAO;EACtB,GAAG,cAAc,OAAO;EACxB,GAAG,eAAe,OAAO;EACzB,GAAG,aAAa,OAAO;EACvB,GAAG,aAAa,OAAO;EACvB,GAAG,gBAAgB,OAAO;EAC1B,GAAG,WAAW,OAAO;EACrB,GAAG,YAAY,OAAO;CACxB;AACF,CAAC"}