{"version":3,"sources":["../src/manifest-schema.ts"],"names":["z"],"mappings":"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","file":"manifest-schema.cjs","sourcesContent":["/**\n * @oshon-ai/primitives — component manifest contract.\n *\n * Ported verbatim from MCP_SCHEMA.md §6. Every shipping component in\n * `@oshon-ai/primitives` and `@oshon-ai/components` declares a manifest\n * validated against `ComponentManifestSchema` at test time; downstream\n * tooling (MCP server, Figma Code Connect, docs generator, Skills bundle)\n * consumes the same schema to render the component without hand-rolled\n * metadata per surface.\n *\n * This is principle #8 (\"manifest-driven\") and principle #9 (\"trust-\n * boundary Zod\") from the Oshon engineering principles.\n */\n\nimport { z } from 'zod';\n\n/** Six density regimes defined by ARCHITECTURE.md §8 principle #1. */\nexport const DENSITY_REGIMES = [\n  'card',\n  'standard',\n  'paginated',\n  'virtualized',\n  'server',\n  'infinite',\n] as const;\n\nexport const ComponentManifestSchema = z.object({\n  name: z.string(),\n  package: z.string(),\n  version: z.string(),\n  license: z.enum(['MIT', 'commercial']),\n  purpose: z.string().min(10).max(280),\n  dataShape: z\n    .object({\n      primary: z.string(),\n      secondary: z.string().optional(),\n    })\n    .optional(),\n  densitySupport: z.array(z.enum(DENSITY_REGIMES)).optional(),\n  permissionsRequired: z.array(z.string()).default([]),\n  permissionsOptional: z.array(z.string()).default([]),\n  auditEvents: z.array(z.string()).default([]),\n  a11y: z.object({\n    wcagLevel: z.string(),\n    keyboardMap: z.string(),\n    screenReadersTested: z.array(z.string()),\n    lastAudit: z.string(),\n  }),\n  variants: z\n    .array(\n      z.object({\n        name: z.string(),\n        description: z.string(),\n      }),\n    )\n    .default([]),\n  slots: z\n    .array(\n      z.object({\n        name: z.string(),\n        description: z.string(),\n      }),\n    )\n    .default([]),\n  doExamples: z\n    .array(\n      z.object({\n        label: z.string(),\n        code: z.string(),\n      }),\n    )\n    .default([]),\n  dontExamples: z\n    .array(\n      z.object({\n        label: z.string(),\n        code: z.string(),\n        why: z.string(),\n      }),\n    )\n    .default([]),\n  figmaNode: z.string().optional(),\n  designRationale: z.string(),\n  relatedComponents: z.array(z.string()).default([]),\n  breakingChanges: z\n    .array(\n      z.object({\n        version: z.string(),\n        change: z.string(),\n        migration: z.string(),\n      }),\n    )\n    .default([]),\n});\n\nexport type ComponentManifest = z.infer<typeof ComponentManifestSchema>;\nexport type ComponentManifestInput = z.input<typeof ComponentManifestSchema>;\n\n/**\n * Validate a manifest and throw a descriptive error if it fails. Designed\n * for `scripts/validate-manifests.mjs` and per-primitive tests — failures\n * carry the full Zod issue list so the author knows exactly what's wrong.\n */\nexport function assertValidManifest(\n  manifest: unknown,\n  context: string,\n): ComponentManifest {\n  const result = ComponentManifestSchema.safeParse(manifest);\n  if (!result.success) {\n    const issues = result.error.issues\n      .map((issue) => `  - ${issue.path.join('.')}: ${issue.message}`)\n      .join('\\n');\n    throw new Error(\n      `Invalid ComponentManifest (${context}):\\n${issues}`,\n    );\n  }\n  return result.data;\n}\n"]}