{"version":3,"file":"schema.cjs","names":["z","SlotPinSchema","JsonObjectSchema","SharedDepMapSchema"],"sources":["../../src/descriptor/schema.ts"],"sourcesContent":["import * as z from \"zod\";\nimport { JsonObjectSchema, SharedDepMapSchema, SlotPinSchema } from \"../types\";\n\n/** Pipeline-owned fields — never authored; injected from the deploy map. */\nexport const PipelineFieldsSchema = z.object({\n  production: z.string().optional(),\n  integrity: z.string().optional(),\n  ssr: z.string().optional(),\n  ssrIntegrity: z.string().optional(),\n  pin: SlotPinSchema.optional(),\n});\nexport type PipelineFields = z.infer<typeof PipelineFieldsSchema>;\n\nconst DevelopmentRefSchema = z.object({\n  /** local workspace directory, relative to the App root — emitted as `local:<path>` */\n  path: z.string().optional(),\n  /** explicit development ref override (e.g. a remote dev URL) */\n  development: z.string().optional(),\n});\n\n/** An attached App (today's `plugins.<id>` / `app.auth` entries). */\nexport const AttachmentRefSchema = DevelopmentRefSchema.extend({\n  name: z.string().optional(),\n  /** published module reference (bos://…) consumed by resolution */\n  extends: z.string().optional(),\n  proxy: z.string().optional(),\n  variables: JsonObjectSchema.optional(),\n  secrets: z.array(z.string()).optional(),\n  routes: z.array(z.string()).optional(),\n  shared: SharedDepMapSchema.optional(),\n  connectSrc: z.array(z.string()).optional(),\n  dependsOn: z.array(z.string()).optional(),\n  version: z.string().optional(),\n  ui: z\n    .object({\n      name: z.string().optional(),\n      path: z.string().optional(),\n      development: z.string().optional(),\n      integrity: z.string().optional(),\n      pin: SlotPinSchema.optional(),\n    })\n    .strict()\n    .optional(),\n});\nexport type AttachmentRef = z.infer<typeof AttachmentRefSchema>;\nexport type AttachmentInput = AttachmentRef;\n\n/** The `app.api` slot. */\nexport const ApiRefSchema = DevelopmentRefSchema.extend({\n  proxy: z.string().optional(),\n  variables: JsonObjectSchema.optional(),\n  secrets: z.array(z.string()).optional(),\n  routes: z.array(z.string()).optional(),\n  shared: SharedDepMapSchema.optional(),\n  dependsOn: z.array(z.string()).optional(),\n}).strict();\nexport type ApiRef = z.infer<typeof ApiRefSchema>;\nexport type ApiInput = ApiRef;\n\n/** The `app.ui` slot — pipeline fields (production/integrity/ssr) come from the deploy map. */\nexport const UiRefSchema = DevelopmentRefSchema.strict();\nexport type UiRef = z.infer<typeof UiRefSchema>;\nexport type UiInput = UiRef;\n\n/** The `app.host` slot — production/integrity come from the deploy map. */\nexport const HostRefSchema = DevelopmentRefSchema.extend({\n  secrets: z.array(z.string()).optional(),\n}).strict();\nexport type HostRef = z.infer<typeof HostRefSchema>;\nexport type HostInput = HostRef;\n\n/**\n * The authored App — pure data, the boot input. Local paths only (dev\n * authoring shape); deployment resolves them through the deploy map.\n */\nexport const AppDescriptorSchema = z\n  .object({\n    name: z.string(),\n    /**\n     * The base App this App inherits (child-wins): a registry name\n     * (`\"everything.dev\"`) or an imported App descriptor value — an imported\n     * parent is an inlined parent (same-repo composition; the resolved shape\n     * is identical to a fetched one). The value is validated and depth-guarded\n     * at resolution (flattenParent re-parses it); chains deeper than one\n     * level are deferred (wayfinder ticket 08).\n     */\n    extends: z.union([z.string(), z.record(z.string(), z.unknown())]).optional(),\n    account: z.string().optional(),\n    domain: z.string().optional(),\n    title: z.string().optional(),\n    description: z.string().optional(),\n    repository: z.string().optional(),\n    testnet: z.string().optional(),\n    staging: z\n      .object({\n        domain: z.string(),\n        account: z.string().optional(),\n      })\n      .strict()\n      .optional(),\n    /** Authoring-only: the starter level this child was scaffolded with.\n     * Stripped from resolved configs — publish canonicalization never\n     * carries it. */\n    starter: z.enum([\"simple\", \"advanced\"]).optional(),\n    ci: z\n      .object({\n        image: z.string().optional(),\n        railway: z\n          .object({\n            service: z.string(),\n          })\n          .strict()\n          .optional(),\n      })\n      .strict()\n      .optional(),\n    cdn: z\n      .object({\n        origin: z.string().optional(),\n      })\n      .strict()\n      .optional(),\n    publish: z\n      .object({\n        auth: z.enum([\"session\", \"key\", \"custody\"]).optional(),\n      })\n      .strict()\n      .optional(),\n    host: HostRefSchema.optional(),\n    api: ApiRefSchema.optional(),\n    ui: UiRefSchema.optional(),\n    /** attachment landing in the `app.auth` slot */\n    auth: AttachmentRefSchema.optional(),\n    plugins: z.record(z.string(), AttachmentRefSchema).optional(),\n  })\n  .strict();\nexport type AppDescriptor = z.infer<typeof AppDescriptorSchema>;\nexport type AppInput = AppDescriptor;\n\nexport type AppRegistry = Record<string, AppInput>;\n"],"mappings":"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"}