# GENERATED. Do not change this line unless the file contains project specific changes.
# DO NOT EDIT THIS FILE. Changes are overwritten on the next build.
# Owner command: archetype.registry.build
# Edit instead: the archetype.registry.build generator source (not this file).
# Regenerate:   pnpm exec werkstatt run archetype.registry.build
id: journal-receipt-verifier
displayName: Journal Receipt Verifier
version: 1.0.0
semanticRole: component-journal-receipt-verifier
description: |
  Client-side upload-receipt verifier for /pruefen (RFC-1268). Loads the
  same-origin /.well-known/did.json key set (pasted did.json as fallback),
  accepts a receipt JSON by file or paste, and verifies schema, canonical
  JCS form, Ed25519 signature, RFC 3161 TSTInfo binding, and the TSA
  SignerInfo signature entirely in the browser — nothing is uploaded (D7).
expectedIntents:
  - verify-upload-receipt
expectedIndustryFit:
  - trades-and-construction
layoutHint: single-column
propsSchema:
  $shape: zod
  shape: |
    z.object({
      header: z.object({
        heading: z.string(),
        subheading: z.string().optional(),
        hideSectionNumber: z.boolean().optional(),
        align: z.enum(["left", "center", "right"]).optional(),
        level: z.number().optional(),
      }),
      background: z.unknown().optional(),
      effects: z.unknown().optional(),
      density: z.unknown().optional(),
      tone: z.unknown().optional(),
      intro: z.string().optional(),
      labels: z.object({
        fileLabel: z.string(),
        pasteLabel: z.string(),
        didPasteLabel: z.string(),
        verifyButton: z.string(),
        checksHeading: z.string(),
        diagnosticsHeading: z.string(),
        resultOk: z.string(),
        resultFail: z.string(),
        didAutoOk: z.string(),
        didAutoFail: z.string(),
        didPasteUsed: z.string(),
        statusPass: z.string(),
        statusFail: z.string(),
        statusWarn: z.string(),
        statusSkip: z.string(),
        checkSchema: z.string(),
        checkJcsHash: z.string(),
        checkSignature: z.string(),
        checkTsaBinding: z.string(),
        checkSignerSignature: z.string(),
        checkChainInclusion: z.string(),
      }),
    }).passthrough()
acceptedCosmicNames:
  - Praxidike
constraints: {}
