@papierapi/sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +450 -0
- package/dist/chunk-JDUUPLUG.js +984 -0
- package/dist/chunk-JDUUPLUG.js.map +7 -0
- package/dist/client.d.ts +469 -0
- package/dist/errors.d.ts +20 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +343 -0
- package/dist/index.js.map +7 -0
- package/dist/internal/contracts/common.d.ts +108 -0
- package/dist/internal/contracts/dispatch.d.ts +979 -0
- package/dist/internal/contracts/fax.d.ts +49 -0
- package/dist/internal/contracts/index.d.ts +7 -0
- package/dist/internal/contracts/letter.d.ts +292 -0
- package/dist/internal/contracts/mcp.d.ts +395 -0
- package/dist/internal/contracts/platform.d.ts +424 -0
- package/dist/internal/contracts/rest.d.ts +1656 -0
- package/dist/operations.d.ts +1563 -0
- package/dist/operations.js +7 -0
- package/dist/operations.js.map +7 -0
- package/examples/get-dispatch.ts +13 -0
- package/package.json +68 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../contracts/src/common.ts", "../../contracts/src/dispatch.ts", "../../contracts/src/fax.ts", "../../contracts/src/letter.ts", "../../contracts/src/platform.ts", "../../contracts/src/mcp.ts", "../../contracts/src/rest.ts", "../src/operations.ts"],
|
|
4
|
+
"sourcesContent": ["import { z } from \"zod\";\n\nexport const CurrencySchema = z.literal(\"EUR\");\nexport type Currency = z.infer<typeof CurrencySchema>;\n\nexport const IsoDateSchema = z.iso.date();\nexport const IsoDateTimeSchema = z.iso.datetime({ offset: true });\n\nexport const IdempotencyKeySchema = z\n .string()\n .min(8)\n .max(200)\n .regex(/^[A-Za-z0-9._:-]+$/, \"Use only letters, digits, dot, underscore, colon, or dash\");\n\nexport function prefixedId(prefix: string) {\n return z.string().regex(new RegExp(`^${prefix}_[0-9A-HJKMNP-TV-Z]{26}$`));\n}\n\nexport const OrganizationIdSchema = prefixedId(\"org\");\nexport const WorkspaceIdSchema = prefixedId(\"wsp\");\nexport const SenderProfileIdSchema = prefixedId(\"snd\");\nexport const DocumentIdSchema = prefixedId(\"doc\");\nexport const DraftIdSchema = prefixedId(\"drf\");\nexport const VerificationRunIdSchema = prefixedId(\"vrf\");\nexport const QuoteIdSchema = prefixedId(\"quo\");\nexport const ApprovalRequestIdSchema = prefixedId(\"aprq\");\nexport const ApprovalIdSchema = prefixedId(\"apr\");\nexport const DirectPaymentIdSchema = prefixedId(\"dpy\");\nexport const DispatchIdSchema = prefixedId(\"dsp\");\nexport const EventIdSchema = prefixedId(\"evt\");\nexport const WebhookEndpointIdSchema = prefixedId(\"whk\");\nexport const RequestIdSchema = prefixedId(\"req\");\n\nexport const MoneySchema = z\n .object({\n amount_cents: z.int().min(0).max(10_000_000),\n currency: CurrencySchema,\n })\n .strict();\nexport type Money = z.infer<typeof MoneySchema>;\n\nexport const MetadataSchema = z\n .record(z.string().min(1).max(64), z.string().max(500))\n .refine((value) => Object.keys(value).length <= 20, \"At most 20 metadata keys are allowed\");\n\nexport const NextActionSchema = z\n .object({\n action: z.string().min(1).max(64),\n method: z.enum([\"GET\", \"POST\", \"PATCH\", \"DELETE\"]).optional(),\n href: z.string().max(2_000).optional(),\n })\n .strict();\nexport type NextAction = z.infer<typeof NextActionSchema>;\n\nexport const PaginationQuerySchema = z\n .object({\n cursor: z.string().max(500).optional(),\n limit: z.coerce.number().int().min(1).max(100).default(25),\n })\n .strict();\n\nexport const PaginatedMetaSchema = z\n .object({\n next_cursor: z.string().nullable(),\n has_more: z.boolean(),\n })\n .strict();\n\nexport const Sha256Schema = z.string().regex(/^[a-f0-9]{64}$/);\n\nexport const VerificationViolationSchema = z\n .object({\n code: z.string().min(1).max(80),\n field_path: z.string().max(300).optional(),\n page: z.int().min(1).optional(),\n rule: z.string().min(1).max(120),\n message: z.string().min(1).max(1_000),\n suggested_action: z.string().min(1).max(1_000),\n })\n .strict();\nexport type VerificationViolation = z.infer<typeof VerificationViolationSchema>;\n\nexport const VerificationCheckSchema = z\n .object({\n id: z.string().min(1).max(120),\n version: z.string().min(1).max(40),\n status: z.enum([\"passed\", \"warning\", \"failed\", \"skipped\"]),\n rule: z.string().min(1).max(120),\n evidence: z.record(z.string(), z.unknown()),\n violations: z.array(VerificationViolationSchema),\n duration_ms: z.int().min(0),\n })\n .strict();\nexport type VerificationCheck = z.infer<typeof VerificationCheckSchema>;\n\nexport const VerificationSummarySchema = z\n .object({\n status: z.enum([\"passed\", \"warning\", \"failed\"]),\n checks: z.array(VerificationCheckSchema),\n verifier_version: z.string(),\n })\n .strict();\nexport type VerificationSummary = z.infer<typeof VerificationSummarySchema>;\n", "import { z } from \"zod\";\nimport {\n ApprovalIdSchema,\n ApprovalRequestIdSchema,\n CurrencySchema,\n DispatchIdSchema,\n DocumentIdSchema,\n DraftIdSchema,\n EventIdSchema,\n IsoDateTimeSchema,\n NextActionSchema,\n OrganizationIdSchema,\n QuoteIdSchema,\n RequestIdSchema,\n Sha256Schema,\n VerificationRunIdSchema,\n VerificationSummarySchema,\n} from \"./common\";\nimport { FaxOptionsSchema, FaxRecipientSchema } from \"./fax\";\nimport { GermanPostalRecipientSchema, LetterOptionsSchema } from \"./letter\";\nimport { SenderProfilePayloadSchema } from \"./platform\";\n\nexport const ChannelSchema = z.enum([\"letter\", \"fax\"]);\nexport type Channel = z.infer<typeof ChannelSchema>;\n\nexport const ProviderNameSchema = z.enum([\"onlinebrief24\", \"pingen\", \"faxsuite\", \"mock\"]);\nexport type ProviderName = z.infer<typeof ProviderNameSchema>;\n\nexport const DraftStatusSchema = z.enum([\n \"draft\",\n \"validated\",\n \"quoted\",\n \"awaiting_approval\",\n \"approved\",\n \"cancelled\",\n]);\nexport type DraftStatus = z.infer<typeof DraftStatusSchema>;\n\nexport const DispatchStatusSchema = z.enum([\n \"funds_reserved\",\n \"submitting\",\n \"provider_accepted\",\n \"producing\",\n \"sending\",\n \"handed_to_carrier\",\n \"delivered\",\n \"failed\",\n \"returned\",\n \"cancellation_pending\",\n \"cancelled\",\n]);\nexport type DispatchStatus = z.infer<typeof DispatchStatusSchema>;\n\nexport const DraftSchema = z\n .object({\n id: DraftIdSchema,\n channel: ChannelSchema,\n status: DraftStatusSchema,\n content_sha256: Sha256Schema,\n page_count: z.int().min(1).max(100),\n recipient_display: z.string().min(1).max(200),\n verification: VerificationSummarySchema,\n preview_url: z.url(),\n preview_expires_at: IsoDateTimeSchema,\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n })\n .strict();\nexport type Draft = z.infer<typeof DraftSchema>;\n\nconst ApprovalDraftBaseSchema = DraftSchema.omit({\n channel: true,\n recipient_display: true,\n});\n\nexport const ApprovalLetterDraftSchema = ApprovalDraftBaseSchema.extend({\n channel: z.literal(\"letter\"),\n recipient: GermanPostalRecipientSchema,\n sender: SenderProfilePayloadSchema,\n options: LetterOptionsSchema,\n}).strict();\n\nexport const ApprovalFaxDraftSchema = ApprovalDraftBaseSchema.extend({\n channel: z.literal(\"fax\"),\n recipient: FaxRecipientSchema,\n sender: SenderProfilePayloadSchema,\n options: FaxOptionsSchema,\n}).strict();\n\nexport const ApprovalDraftSchema = z.discriminatedUnion(\"channel\", [\n ApprovalLetterDraftSchema,\n ApprovalFaxDraftSchema,\n]);\nexport type ApprovalDraft = z.infer<typeof ApprovalDraftSchema>;\n\nexport const QuoteSchema = z\n .object({\n id: QuoteIdSchema,\n draft_id: DraftIdSchema,\n subtotal_cents: z.int().min(0),\n vat_cents: z.int().min(0),\n total_cents: z.int().min(0),\n currency: CurrencySchema,\n valid_until: IsoDateTimeSchema,\n assumptions: z\n .object({\n channel: ChannelSchema,\n country: z.literal(\"DE\"),\n pages: z.int().min(1),\n service: z.string(),\n })\n .strict(),\n })\n .strict();\nexport type Quote = z.infer<typeof QuoteSchema>;\n\nexport const ApprovalQuoteSchema = QuoteSchema.extend({\n provider: ProviderNameSchema,\n}).strict();\n\nexport const CreateQuoteSchema = z.object({}).strict();\n\nexport const ApprovalRequestSchema = z\n .object({\n id: ApprovalRequestIdSchema,\n draft_id: DraftIdSchema,\n quote_id: QuoteIdSchema,\n status: z.enum([\"pending\", \"approved\", \"rejected\", \"expired\", \"stale\"]),\n approval_url: z.url(),\n expires_at: IsoDateTimeSchema,\n created_at: IsoDateTimeSchema,\n })\n .strict();\n\nexport const ApprovalReviewSchema = z\n .object({\n approval: ApprovalRequestSchema,\n decision: z\n .discriminatedUnion(\"status\", [\n z\n .object({\n status: z.literal(\"approved\"),\n approval_id: ApprovalIdSchema,\n decided_at: IsoDateTimeSchema,\n expires_at: IsoDateTimeSchema,\n })\n .strict(),\n z\n .object({\n status: z.literal(\"rejected\"),\n approval_id: z.null(),\n decided_at: IsoDateTimeSchema,\n expires_at: z.null(),\n })\n .strict(),\n ])\n .nullable(),\n draft: ApprovalDraftSchema,\n quote: ApprovalQuoteSchema,\n binding_sha256: Sha256Schema,\n })\n .strict();\nexport type ApprovalReview = z.infer<typeof ApprovalReviewSchema>;\n\nexport const ApprovalDecisionSchema = z\n .object({\n decision: z.enum([\"approve\", \"reject\"]),\n reason: z.string().max(1_000).optional(),\n })\n .strict();\n\nexport const ApprovalSchema = z\n .object({\n id: ApprovalIdSchema,\n request_id: ApprovalRequestIdSchema,\n status: z.enum([\"approved\", \"rejected\"]),\n actor_type: z.enum([\"human\", \"policy\"]),\n decided_at: IsoDateTimeSchema,\n })\n .strict();\n\nexport const CreateDispatchSchema = z\n .object({\n quote_id: QuoteIdSchema,\n approval_id: ApprovalIdSchema,\n })\n .strict();\n\nexport const DispatchSchema = z\n .object({\n id: DispatchIdSchema,\n draft_id: DraftIdSchema,\n status: DispatchStatusSchema,\n channel: ChannelSchema,\n amount_cents: z.int().min(1),\n currency: CurrencySchema,\n scheduled_for: IsoDateTimeSchema.nullable(),\n needs_review: z.boolean(),\n terminal_reason: z.string().max(500).nullable(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n })\n .strict();\nexport type Dispatch = z.infer<typeof DispatchSchema>;\n\nconst DispatchSummaryBaseSchema = z.object({\n subject: z.string().trim().min(1).max(300).nullable(),\n});\n\nexport const DispatchLetterSummarySchema = DispatchSummaryBaseSchema.extend({\n channel: z.literal(\"letter\"),\n recipient: z\n .object({\n label: z.string().trim().min(1).max(200),\n city: z.string().trim().min(1).max(100),\n })\n .strict(),\n}).strict();\n\nexport const DispatchFaxSummarySchema = DispatchSummaryBaseSchema.extend({\n channel: z.literal(\"fax\"),\n recipient: z\n .object({\n label: z.string().trim().min(1).max(200).nullable(),\n fax_number_e164: FaxRecipientSchema.shape.fax_number_e164,\n })\n .strict(),\n}).strict();\n\nexport const DispatchSummarySchema = z.discriminatedUnion(\"channel\", [\n DispatchLetterSummarySchema,\n DispatchFaxSummarySchema,\n]);\nexport type DispatchSummary = z.infer<typeof DispatchSummarySchema>;\n\nexport const DispatchEventSchema = z\n .object({\n id: EventIdSchema,\n dispatch_id: DispatchIdSchema,\n sequence: z.int().min(1),\n type: z.string().min(1).max(100),\n status: DispatchStatusSchema,\n created_at: IsoDateTimeSchema,\n evidence: z.record(z.string(), z.unknown()),\n event_hash: Sha256Schema,\n previous_hash: Sha256Schema.nullable(),\n })\n .strict();\nexport type DispatchEvent = z.infer<typeof DispatchEventSchema>;\n\nexport const ProofBundleSchema = z\n .object({\n schema_version: z.literal(\"2.0\"),\n dispatch_id: DispatchIdSchema,\n organization_id: OrganizationIdSchema,\n channel: ChannelSchema,\n content: z\n .object({\n document_id: DocumentIdSchema,\n sha256: Sha256Schema,\n })\n .strict(),\n recipient: z\n .object({\n fingerprint: Sha256Schema,\n display: z.string().min(1).max(200),\n })\n .strict(),\n verification: z\n .object({\n id: VerificationRunIdSchema,\n verifier_version: z.string().min(1).max(200),\n status: z.enum([\"passed\", \"warning\"]),\n content_sha256: Sha256Schema,\n })\n .strict(),\n quote: z\n .object({\n id: QuoteIdSchema,\n subtotal_cents: z.int().min(0),\n vat_cents: z.int().min(0),\n total_cents: z.int().min(0),\n currency: CurrencySchema,\n catalog_version: z.string().min(1).max(200),\n })\n .strict(),\n approval: z\n .object({\n id: ApprovalIdSchema,\n actor_type: z.enum([\"human\", \"policy\"]),\n actor_id: z.string().min(1).max(500),\n decided_at: IsoDateTimeSchema,\n binding_hash: Sha256Schema,\n })\n .strict(),\n provider: z\n .object({\n name: ProviderNameSchema,\n acceptance_reference_hash: Sha256Schema,\n accepted_at: IsoDateTimeSchema,\n })\n .strict()\n .nullable(),\n status: z\n .object({\n normalized: DispatchStatusSchema,\n observed_at: IsoDateTimeSchema,\n })\n .strict(),\n event_chain: z\n .object({\n valid: z.boolean(),\n checked_events: z.int().min(0),\n head: Sha256Schema.nullable(),\n })\n .strict(),\n generated_at: IsoDateTimeSchema,\n })\n .strict();\nexport type ProofBundle = z.infer<typeof ProofBundleSchema>;\n\nexport const ApiEnvelopeSchema = <T extends z.ZodType>(schema: T) =>\n z\n .object({\n request_id: RequestIdSchema,\n data: schema,\n next_actions: z.array(NextActionSchema).default([]),\n })\n .strict();\n\nexport const ErrorCodeSchema = z.enum([\n \"SCHEMA_INVALID\",\n \"UNAUTHENTICATED\",\n \"FORBIDDEN\",\n \"NOT_FOUND\",\n \"ADDRESS_INVALID\",\n \"FAX_NUMBER_INVALID\",\n \"DOCUMENT_UNREADABLE\",\n \"PDF_LAYOUT_INVALID\",\n \"UNSUPPORTED_OPTION\",\n \"VERIFICATION_FAILED\",\n \"QUOTE_EXPIRED\",\n \"APPROVAL_REQUIRED\",\n \"APPROVAL_STALE\",\n \"BUDGET_EXCEEDED\",\n \"INSUFFICIENT_FUNDS\",\n \"IDEMPOTENCY_REQUIRED\",\n \"IDEMPOTENCY_CONFLICT\",\n \"DISPATCH_NOT_CANCELLABLE\",\n \"PROVIDER_UNAVAILABLE\",\n \"PROVIDER_REJECTED\",\n \"RATE_LIMITED\",\n \"INTERNAL_ERROR\",\n]);\nexport type ErrorCode = z.infer<typeof ErrorCodeSchema>;\n\nexport const ApiErrorSchema = z\n .object({\n request_id: RequestIdSchema,\n error: z\n .object({\n code: ErrorCodeSchema,\n message: z.string(),\n retryable: z.boolean(),\n field_path: z.string().optional(),\n suggested_action: z.string(),\n details: z.record(z.string(), z.unknown()).optional(),\n })\n .strict(),\n })\n .strict();\nexport type ApiError = z.infer<typeof ApiErrorSchema>;\n", "import { z } from \"zod\";\nimport {\n DocumentIdSchema,\n IsoDateTimeSchema,\n MetadataSchema,\n SenderProfileIdSchema,\n} from \"./common\";\n\nexport const E164Schema = z.string().regex(/^\\+[1-9]\\d{7,14}$/);\n\nexport const FaxRecipientSchema = z\n .object({\n fax_number_e164: E164Schema,\n name: z.string().trim().min(1).max(100).optional(),\n company: z.string().trim().min(1).max(100).optional(),\n recipient_reference: z.string().max(100).optional(),\n })\n .strict();\nexport type FaxRecipient = z.infer<typeof FaxRecipientSchema>;\n\nexport const FaxOptionsSchema = z\n .object({\n max_attempts: z.union([z.literal(1), z.literal(2), z.literal(3)]).default(2),\n scheduled_at: IsoDateTimeSchema.describe(\n \"Optional send time between five minutes and 30 days in the future.\",\n ).optional(),\n purpose: z.enum([\"transactional\", \"contractual\", \"support\", \"other\"]),\n consent_reference: z.string().max(200).optional(),\n })\n .strict();\nexport type FaxOptions = z.infer<typeof FaxOptionsSchema>;\n\nexport const CreateFaxDraftSchema = z\n .object({\n sender_profile_id: SenderProfileIdSchema,\n recipient: FaxRecipientSchema,\n document_id: DocumentIdSchema,\n cover: z\n .object({\n enabled: z.boolean(),\n subject: z.string().max(300).optional(),\n note: z.string().max(4_000).optional(),\n })\n .strict()\n .default({ enabled: false }),\n options: FaxOptionsSchema,\n metadata: MetadataSchema.default({}),\n })\n .strict();\nexport type CreateFaxDraft = z.infer<typeof CreateFaxDraftSchema>;\n", "import { z } from \"zod\";\nimport { DocumentIdSchema, IsoDateSchema, MetadataSchema, SenderProfileIdSchema } from \"./common\";\n\nconst AddressLineSchema = z.string().trim().min(1).max(100);\n\nexport const GermanStreetRecipientSchema = z\n .object({\n type: z.literal(\"street\").default(\"street\"),\n company: AddressLineSchema.optional(),\n name: AddressLineSchema,\n attention: AddressLineSchema.optional(),\n additional_line: AddressLineSchema.optional(),\n street: AddressLineSchema,\n house_number: z.string().trim().min(1).max(20),\n postal_code: z.string().regex(/^\\d{5}$/),\n city: AddressLineSchema,\n country: z.literal(\"DE\"),\n })\n .strict();\n\nexport const GermanPostBoxRecipientSchema = z\n .object({\n type: z.literal(\"post_box\"),\n company: AddressLineSchema.optional(),\n name: AddressLineSchema,\n attention: AddressLineSchema.optional(),\n post_box: z\n .string()\n .trim()\n .regex(/^\\d(?:[ ]?\\d){3,9}$/),\n postal_code: z.string().regex(/^\\d{5}$/),\n city: AddressLineSchema,\n country: z.literal(\"DE\"),\n })\n .strict();\n\nexport const GermanPostalRecipientSchema = z.discriminatedUnion(\"type\", [\n GermanStreetRecipientSchema,\n GermanPostBoxRecipientSchema,\n]);\nexport type GermanPostalRecipient = z.infer<typeof GermanPostalRecipientSchema>;\n\nconst ParagraphBlockSchema = z\n .object({\n type: z.literal(\"paragraph\"),\n text: z.string().min(1).max(20_000),\n style: z.enum([\"normal\", \"emphasis\"]).default(\"normal\"),\n })\n .strict();\n\nconst HeadingBlockSchema = z\n .object({\n type: z.literal(\"heading\"),\n text: z.string().min(1).max(300),\n level: z.union([z.literal(1), z.literal(2)]),\n })\n .strict();\n\nconst ListBlockSchema = z\n .object({\n type: z.literal(\"list\"),\n ordered: z.boolean().default(false),\n items: z.array(z.string().min(1).max(2_000)).min(1).max(100),\n })\n .strict();\n\nconst TableBlockSchema = z\n .object({\n type: z.literal(\"table\"),\n columns: z.array(z.string().min(1).max(120)).min(1).max(8),\n rows: z\n .array(z.array(z.string().max(1_000)).min(1).max(8))\n .min(1)\n .max(100),\n })\n .strict()\n .superRefine((value, ctx) => {\n value.rows.forEach((row, index) => {\n if (row.length !== value.columns.length) {\n ctx.addIssue({\n code: \"custom\",\n message: \"Every table row must have the same number of cells as columns\",\n path: [\"rows\", index],\n });\n }\n });\n });\n\nconst SpacerBlockSchema = z\n .object({\n type: z.literal(\"spacer\"),\n millimeters: z.number().min(1).max(40),\n })\n .strict();\n\nconst ClosingBlockSchema = z\n .object({\n type: z.literal(\"closing\"),\n text: z.string().min(1).max(2_000),\n })\n .strict();\n\nconst SignaturePlaceholderSchema = z\n .object({\n type: z.literal(\"signature_placeholder\"),\n height_mm: z.number().min(5).max(40),\n })\n .strict();\n\nexport const LetterBlockSchema = z.discriminatedUnion(\"type\", [\n ParagraphBlockSchema,\n HeadingBlockSchema,\n ListBlockSchema,\n TableBlockSchema,\n SpacerBlockSchema,\n ClosingBlockSchema,\n SignaturePlaceholderSchema,\n]);\nexport type LetterBlock = z.infer<typeof LetterBlockSchema>;\n\nexport const StructuredLetterContentSchema = z\n .object({\n locale: z.enum([\"de-DE\", \"en-DE\"]).default(\"de-DE\"),\n date: IsoDateSchema,\n reference_lines: z\n .array(\n z\n .object({\n label: z.string().min(1).max(60),\n value: z.string().min(1).max(120),\n })\n .strict(),\n )\n .max(6)\n .optional(),\n subject: z.string().trim().min(1).max(300),\n salutation: z.string().max(300).optional(),\n blocks: z.array(LetterBlockSchema).min(1).max(500),\n closing: z.string().max(300).optional(),\n signatory: z.string().max(300).optional(),\n })\n .strict();\nexport type StructuredLetterContent = z.infer<typeof StructuredLetterContentSchema>;\n\nconst StructuredLetterSourceSchema = z\n .object({\n mode: z.literal(\"structured\"),\n content: StructuredLetterContentSchema,\n })\n .strict();\n\nconst RawPdfSourceSchema = z\n .object({\n mode: z.literal(\"raw_pdf\"),\n document_id: DocumentIdSchema,\n })\n .strict();\n\nexport const LetterSourceSchema = z.discriminatedUnion(\"mode\", [\n StructuredLetterSourceSchema,\n RawPdfSourceSchema,\n]);\n\nexport const LetterOptionsSchema = z\n .object({\n print: z.enum([\"grayscale\", \"color\"]),\n duplex: z.boolean(),\n service: z.enum([\"standard\", \"registered_insertion\", \"registered_signature\"]),\n criticality: z.enum([\"normal\", \"high\"]).default(\"normal\"),\n layout_profile: z\n .enum([\"de_business_window_a\", \"de_business_window_b\", \"de_business_no_window\"])\n .default(\"de_business_window_b\"),\n })\n .strict();\nexport type LetterOptions = z.infer<typeof LetterOptionsSchema>;\n\nexport const CreateLetterDraftSchema = z\n .object({\n sender_profile_id: SenderProfileIdSchema,\n recipient: GermanPostalRecipientSchema,\n source: LetterSourceSchema,\n attachments: z\n .array(z.object({ document_id: DocumentIdSchema }).strict())\n .max(20)\n .default([]),\n options: LetterOptionsSchema,\n metadata: MetadataSchema.default({}),\n })\n .strict();\nexport type CreateLetterDraft = z.infer<typeof CreateLetterDraftSchema>;\n", "import { z } from \"zod\";\nimport {\n ApprovalIdSchema,\n ApprovalRequestIdSchema,\n CurrencySchema,\n DirectPaymentIdSchema,\n DispatchIdSchema,\n IdempotencyKeySchema,\n IsoDateTimeSchema,\n OrganizationIdSchema,\n QuoteIdSchema,\n SenderProfileIdSchema,\n} from \"./common\";\n\nconst ProfileLineSchema = z.string().trim().min(1).max(120);\n\nexport const SenderProfilePayloadSchema = z\n .object({\n name: ProfileLineSchema,\n company: ProfileLineSchema.optional(),\n street: ProfileLineSchema,\n house_number: z.string().trim().min(1).max(20),\n postal_code: z.string().regex(/^\\d{5}$/),\n city: ProfileLineSchema,\n country: z.literal(\"DE\"),\n email: z.email().optional(),\n })\n .strict();\nexport type SenderProfilePayload = z.infer<typeof SenderProfilePayloadSchema>;\n\nexport const SenderProfileUsageSchema = z.enum([\"saved\", \"one_off\"]);\nexport type SenderProfileUsage = z.infer<typeof SenderProfileUsageSchema>;\n\nexport const CreateSenderProfileSchema = z\n .object({\n name: ProfileLineSchema,\n sender: SenderProfilePayloadSchema,\n attest_authorized: z.literal(true),\n usage: SenderProfileUsageSchema.default(\"saved\"),\n make_default: z.boolean().default(false),\n })\n .strict()\n .superRefine((value, ctx) => {\n if (value.usage === \"one_off\" && value.make_default) {\n ctx.addIssue({\n code: \"custom\",\n message: \"A one-off sender cannot become the default sender\",\n path: [\"make_default\"],\n });\n }\n });\nexport type CreateSenderProfile = z.infer<typeof CreateSenderProfileSchema>;\n\nexport const UpdateSenderProfileSchema = z\n .object({\n name: ProfileLineSchema,\n sender: SenderProfilePayloadSchema,\n attest_authorized: z.literal(true),\n make_default: z.boolean().default(false),\n })\n .strict();\nexport type UpdateSenderProfile = z.infer<typeof UpdateSenderProfileSchema>;\n\nexport const SenderProfileSchema = z\n .object({\n id: SenderProfileIdSchema,\n name: ProfileLineSchema,\n status: z.literal(\"verified\"),\n usage: SenderProfileUsageSchema,\n is_default: z.boolean(),\n supersedes_sender_profile_id: SenderProfileIdSchema.nullable(),\n verified_at: IsoDateTimeSchema,\n archived_at: IsoDateTimeSchema.nullable(),\n created_at: IsoDateTimeSchema,\n updated_at: IsoDateTimeSchema,\n })\n .strict();\nexport type SenderProfile = z.infer<typeof SenderProfileSchema>;\n\nexport const SenderProfileVerificationStateSchema = z.enum([\"pending\", \"verified\", \"rejected\"]);\nexport const SenderProfileVerificationSchema = z\n .object({\n state: SenderProfileVerificationStateSchema,\n verified_at: IsoDateTimeSchema.nullable(),\n expires_at: IsoDateTimeSchema.nullable(),\n })\n .strict();\nexport type SenderProfileVerification = z.infer<typeof SenderProfileVerificationSchema>;\n\nexport const ManagedSenderProfileSchema = SenderProfileSchema.extend({\n verification: SenderProfileVerificationSchema,\n is_selectable: z.boolean(),\n}).strict();\nexport type ManagedSenderProfile = z.infer<typeof ManagedSenderProfileSchema>;\n\nexport const SelectableSenderProfileSchema = ManagedSenderProfileSchema.extend({\n verification: SenderProfileVerificationSchema.extend({ state: z.literal(\"verified\") }).strict(),\n is_selectable: z.literal(true),\n}).strict();\nexport type SelectableSenderProfile = z.infer<typeof SelectableSenderProfileSchema>;\n\nexport const EditableSenderProfileSchema = ManagedSenderProfileSchema.extend({\n sender: SenderProfilePayloadSchema,\n}).strict();\nexport type EditableSenderProfile = z.infer<typeof EditableSenderProfileSchema>;\n\nexport const OnboardingAccountTypeSchema = z.enum([\"personal\", \"organization\"]);\nexport type OnboardingAccountType = z.infer<typeof OnboardingAccountTypeSchema>;\n\nexport const CompleteOnboardingSchema = z\n .object({\n account_type: OnboardingAccountTypeSchema,\n organization: z\n .object({\n name: z.string().trim().min(1).max(160),\n })\n .strict()\n .optional(),\n sender_profile: CreateSenderProfileSchema,\n })\n .strict()\n .superRefine((value, context) => {\n if (value.sender_profile.usage !== \"saved\") {\n context.addIssue({\n code: \"custom\",\n message: \"Onboarding requires a saved sender profile\",\n path: [\"sender_profile\", \"usage\"],\n });\n }\n if (value.account_type === \"organization\" && value.organization === undefined) {\n context.addIssue({\n code: \"custom\",\n message: \"Organization details are required for an organization account\",\n path: [\"organization\"],\n });\n }\n if (value.account_type === \"personal\" && value.organization !== undefined) {\n context.addIssue({\n code: \"custom\",\n message: \"Organization details must be omitted for a personal account\",\n path: [\"organization\"],\n });\n }\n });\n\nexport const GuestOnboardingSchema = z\n .object({\n email: z.email().trim().max(254),\n onboarding: CompleteOnboardingSchema,\n })\n .strict();\nexport type GuestOnboarding = z.infer<typeof GuestOnboardingSchema>;\n\nexport const CompleteOnboardingResultSchema = z\n .object({\n organization: z\n .object({\n id: OrganizationIdSchema,\n account_type: OnboardingAccountTypeSchema,\n name: z.string().min(1).max(160),\n plan: z.enum([\"developer\", \"growth\", \"enterprise\"]),\n status: z.enum([\"active\", \"suspended\", \"closed\"]),\n created_at: IsoDateTimeSchema,\n })\n .strict(),\n membership: z.object({ role: z.literal(\"owner\") }).strict(),\n sender_profile: z\n .object({\n id: z.string().regex(/^snd_[0-9A-HJKMNP-TV-Z]{26}$/),\n name: z.string().min(1).max(120),\n status: z.literal(\"verified\"),\n verified_at: IsoDateTimeSchema,\n created_at: IsoDateTimeSchema,\n })\n .strict(),\n })\n .strict();\nexport type CompleteOnboardingResult = z.infer<typeof CompleteOnboardingResultSchema>;\n\nexport const ApiKeyScopeSchema = z.enum([\n \"documents:write\",\n \"drafts:write\",\n \"drafts:read\",\n \"approvals:write\",\n \"dispatches:write\",\n \"dispatches:read\",\n \"wallet:read\",\n \"wallet:write\",\n \"webhooks:write\",\n]);\nexport type ApiKeyScope = z.infer<typeof ApiKeyScopeSchema>;\n\nexport const CreateApiKeySchema = z\n .object({\n name: z.string().trim().min(1).max(120),\n scopes: z.array(ApiKeyScopeSchema).min(1).max(20),\n expires_at: z.iso.datetime({ offset: true }).optional(),\n })\n .strict();\n\nexport const CreateApprovalRequestSchema = z\n .object({\n quote_id: z.string().regex(/^quo_[0-9A-HJKMNP-TV-Z]{26}$/),\n expires_in_seconds: z.int().min(300).max(86_400).default(3_600),\n })\n .strict();\n\nexport const CURRENT_TERMS_VERSION = \"2026-07-18\" as const;\nexport const CURRENT_WITHDRAWAL_NOTICE_VERSION = \"2026-07-18\" as const;\n\nexport const ImmediatePerformanceConsentSchema = z\n .object({\n requested_immediate_performance: z.literal(true),\n acknowledged_withdrawal_expiry_on_full_performance: z.literal(true),\n terms_version: z.literal(CURRENT_TERMS_VERSION),\n withdrawal_notice_version: z.literal(CURRENT_WITHDRAWAL_NOTICE_VERSION),\n })\n .strict();\nexport type ImmediatePerformanceConsent = z.infer<typeof ImmediatePerformanceConsentSchema>;\n\nexport const DecideApprovalSchema = z.discriminatedUnion(\"decision\", [\n z\n .object({\n decision: z.literal(\"approve\"),\n reason: z.string().trim().max(1_000).optional(),\n immediate_performance_consent: ImmediatePerformanceConsentSchema,\n })\n .strict(),\n z\n .object({\n decision: z.literal(\"reject\"),\n reason: z.string().trim().max(1_000).optional(),\n })\n .strict(),\n]);\n\nexport const ApprovalReferenceSchema = z\n .object({\n approval_request_id: ApprovalRequestIdSchema,\n approval_id: ApprovalIdSchema.optional(),\n })\n .strict();\n\nexport const CreateTopUpSessionSchema = z\n .object({\n amount_cents: z.int().min(500).max(100_000),\n success_url: z.url(),\n cancel_url: z.url(),\n })\n .strict();\n\nexport const CreateDirectPaymentSessionSchema = z\n .object({\n quote_id: QuoteIdSchema,\n approval_id: ApprovalIdSchema,\n })\n .strict();\n\nexport const DirectPaymentStatusSchema = z.enum([\n \"pending\",\n \"checkout_open\",\n \"dispatch_created\",\n \"expired\",\n \"payment_failed\",\n \"refund_required\",\n \"refunded\",\n]);\n\nexport const DirectPaymentSchema = z\n .object({\n id: DirectPaymentIdSchema,\n status: DirectPaymentStatusSchema,\n amount_cents: z.int().min(1).max(10_000_000),\n currency: CurrencySchema,\n expires_at: IsoDateTimeSchema.nullable(),\n checkout_url: z.url({ protocol: /^https$/ }).nullable(),\n dispatch_id: DispatchIdSchema.nullable(),\n })\n .strict();\nexport type DirectPayment = z.infer<typeof DirectPaymentSchema>;\n\nexport const ApprovalPaymentOutcomeSchema = z.discriminatedUnion(\"state\", [\n z\n .object({\n state: z.literal(\"none\"),\n approval_id: ApprovalIdSchema,\n })\n .strict(),\n z\n .object({\n state: z.literal(\"wallet_dispatch\"),\n approval_id: ApprovalIdSchema,\n dispatch_id: DispatchIdSchema,\n dispatch_status: z.string().trim().min(1).max(80),\n })\n .strict(),\n z\n .object({\n state: z.literal(\"direct_payment\"),\n approval_id: ApprovalIdSchema,\n direct_payment_id: DirectPaymentIdSchema,\n direct_payment_status: DirectPaymentStatusSchema,\n dispatch_id: DispatchIdSchema.nullable(),\n })\n .strict(),\n]);\nexport type ApprovalPaymentOutcome = z.infer<typeof ApprovalPaymentOutcomeSchema>;\n\nexport const CreateOrganizationSchema = z\n .object({\n id: OrganizationIdSchema.optional(),\n name: z.string().trim().min(1).max(160),\n })\n .strict();\n\nexport const WebhookEventSchema = z.enum([\n \"dispatch.*\",\n \"dispatch.funds_reserved\",\n \"dispatch.scheduled\",\n \"dispatch.submitting\",\n \"dispatch.provider_accepted\",\n \"dispatch.producing\",\n \"dispatch.sending\",\n \"dispatch.handed_to_carrier\",\n \"dispatch.delivered\",\n \"dispatch.failed\",\n \"dispatch.returned\",\n \"dispatch.cancelled\",\n]);\nexport type WebhookEvent = z.infer<typeof WebhookEventSchema>;\n\nexport const CreateWebhookEndpointSchema = z\n .object({\n url: z.url({ protocol: /^https$/ }),\n events: z.array(WebhookEventSchema).min(1).max(20),\n })\n .strict();\n\nexport const McpSendDispatchSchema = z\n .object({\n draft_id: z.string().regex(/^drf_[0-9A-HJKMNP-TV-Z]{26}$/),\n quote_id: z.string().regex(/^quo_[0-9A-HJKMNP-TV-Z]{26}$/),\n approval_id: ApprovalIdSchema,\n idempotency_key: IdempotencyKeySchema,\n })\n .strict();\n", "import { z } from \"zod\";\nimport { DispatchIdSchema, DraftIdSchema } from \"./common\";\nimport {\n ApprovalRequestSchema,\n DispatchEventSchema,\n DispatchSchema,\n DraftSchema,\n ProofBundleSchema,\n QuoteSchema,\n} from \"./dispatch\";\nimport { CreateFaxDraftSchema } from \"./fax\";\nimport { CreateLetterDraftSchema } from \"./letter\";\nimport { CreateApprovalRequestSchema, SelectableSenderProfileSchema } from \"./platform\";\n\nexport const McpEmptyInputSchema = z.object({}).strict();\n\nexport const McpDraftReferenceSchema = z.object({ draft_id: DraftIdSchema }).strict();\n\nexport const McpDispatchReferenceSchema = z.object({ dispatch_id: DispatchIdSchema }).strict();\n\nexport const McpRequestDispatchApprovalSchema = z\n .object({\n draft_id: DraftIdSchema,\n ...CreateApprovalRequestSchema.shape,\n })\n .strict();\n\nexport const McpListDispatchesInputSchema = z\n .object({ limit: z.number().int().min(1).max(100).default(25) })\n .strict();\n\nexport const WalletBalanceSchema = z\n .object({\n available_cents: z.int(),\n reserved_cents: z.int().min(0),\n total_cents: z.int(),\n currency: z.literal(\"EUR\"),\n })\n .strict();\n\nexport const SenderProfileSummarySchema = SelectableSenderProfileSchema;\n\nexport const McpSenderProfilesResultSchema = z\n .object({ sender_profiles: z.array(SenderProfileSummarySchema) })\n .strict();\n\nexport const McpDispatchDetailsSchema = z\n .object({\n dispatch: DispatchSchema,\n events: z.array(DispatchEventSchema),\n })\n .strict();\n\nexport const McpDispatchListSchema = z.object({ dispatches: z.array(DispatchSchema) }).strict();\n\nexport const McpPrepareLetterForReviewSchema = CreateLetterDraftSchema.extend({\n approval_expires_in_seconds: z.int().min(300).max(86_400).default(3_600),\n}).strict();\n\nexport const McpPrepareFaxForReviewSchema = CreateFaxDraftSchema.extend({\n approval_expires_in_seconds: z.int().min(300).max(86_400).default(3_600),\n}).strict();\n\nexport const McpCoreToolNameSchema = z.enum([\n \"list_sender_profiles\",\n \"prepare_letter_for_review\",\n \"prepare_fax_for_review\",\n \"get_dispatch\",\n \"get_dispatch_proof\",\n]);\n\nexport const McpReviewPackageSchema = z\n .object({\n draft: DraftSchema,\n quote: QuoteSchema,\n approval: ApprovalRequestSchema,\n human_action_required: z.literal(true),\n next_action: z\n .object({\n type: z.literal(\"open_approval_url\"),\n url: z.url(),\n description: z.string().min(1).max(500),\n })\n .strict(),\n })\n .strict();\n\nexport const McpWorkflowGuideSchema = z\n .object({\n version: z.literal(\"1.0\"),\n core_tools: z.array(McpCoreToolNameSchema).min(4).max(5),\n recommended_letter_tool: z.literal(\"prepare_letter_for_review\"),\n recommended_fax_tool: z.literal(\"prepare_fax_for_review\").optional(),\n recommended_tracking_tool: z.literal(\"get_dispatch\"),\n recommended_proof_tool: z.literal(\"get_dispatch_proof\"),\n workflow: z.array(z.string().min(1)),\n safety_invariants: z.array(z.string().min(1)),\n browser_fallback_url: z.url(),\n })\n .strict();\n\nexport {\n ApprovalRequestSchema as McpApprovalRequestResultSchema,\n DispatchSchema as McpDispatchResultSchema,\n DraftSchema as McpDraftResultSchema,\n ProofBundleSchema as McpProofResultSchema,\n QuoteSchema as McpQuoteResultSchema,\n};\n", "import { z } from \"zod\";\nimport {\n DirectPaymentIdSchema,\n DispatchIdSchema,\n DocumentIdSchema,\n DraftIdSchema,\n IsoDateTimeSchema,\n Sha256Schema,\n VerificationSummarySchema,\n} from \"./common\";\nimport {\n ApiEnvelopeSchema,\n ApprovalRequestSchema,\n CreateDispatchSchema,\n DispatchEventSchema,\n DispatchSchema,\n DispatchSummarySchema,\n DraftSchema,\n ProofBundleSchema,\n QuoteSchema,\n} from \"./dispatch\";\nimport { CreateFaxDraftSchema } from \"./fax\";\nimport { CreateLetterDraftSchema } from \"./letter\";\nimport { WalletBalanceSchema } from \"./mcp\";\nimport {\n CreateApprovalRequestSchema,\n CreateDirectPaymentSessionSchema,\n DirectPaymentSchema,\n} from \"./platform\";\n\nexport const UploadedDocumentResultSchema = z\n .object({\n document: z\n .object({\n id: DocumentIdSchema,\n sha256: Sha256Schema,\n byte_size: z\n .int()\n .min(1)\n .max(20 * 1024 * 1024),\n page_count: z.int().min(1).max(100),\n created_at: IsoDateTimeSchema,\n })\n .strict(),\n verification: VerificationSummarySchema,\n })\n .strict();\n\nexport type UploadedDocumentResult = z.infer<typeof UploadedDocumentResultSchema>;\n\nexport const DispatchListResultSchema = z.array(DispatchSchema).max(100);\nexport const DispatchEventListResultSchema = z.array(DispatchEventSchema);\n\ntype RestRequest =\n | { readonly kind: \"none\" }\n | { readonly kind: \"json\"; readonly schema: z.ZodType }\n | { readonly kind: \"pdf\" };\n\ntype RestOperationDefinition = {\n readonly operationId: string;\n readonly method: \"GET\" | \"POST\";\n readonly path: string;\n readonly request: RestRequest;\n readonly pathParameters: Readonly<Record<string, z.ZodType>>;\n readonly queryParameters: Readonly<Record<string, z.ZodType>>;\n readonly dataSchema: z.ZodType;\n readonly requiresIdempotencyKey: boolean;\n readonly safeToRetry: boolean;\n};\n\nfunction defineRestOperation<const TOperation extends RestOperationDefinition>(\n operation: TOperation,\n) {\n return {\n ...operation,\n responseSchema: ApiEnvelopeSchema(operation.dataSchema),\n } as TOperation & {\n readonly responseSchema: ReturnType<typeof ApiEnvelopeSchema<TOperation[\"dataSchema\"]>>;\n };\n}\n\nconst noPathParameters = {} as const;\nconst noQueryParameters = {} as const;\nconst noRequest = { kind: \"none\" } as const;\n\n/**\n * Canonical machine-readable contract for the small, stable workflow surface.\n * OpenAPI and the SDK consume this registry; route and MCP parity is tested.\n */\nexport const PapierApiRestOperations = {\n uploadDocument: defineRestOperation({\n operationId: \"uploadDocument\",\n method: \"POST\",\n path: \"/v1/documents\",\n request: { kind: \"pdf\" },\n pathParameters: noPathParameters,\n queryParameters: noQueryParameters,\n dataSchema: UploadedDocumentResultSchema,\n requiresIdempotencyKey: false,\n safeToRetry: false,\n }),\n createLetterDraft: defineRestOperation({\n operationId: \"createLetterDraft\",\n method: \"POST\",\n path: \"/v1/drafts/letters\",\n request: { kind: \"json\", schema: CreateLetterDraftSchema },\n pathParameters: noPathParameters,\n queryParameters: noQueryParameters,\n dataSchema: DraftSchema,\n requiresIdempotencyKey: false,\n safeToRetry: false,\n }),\n createFaxDraft: defineRestOperation({\n operationId: \"createFaxDraft\",\n method: \"POST\",\n path: \"/v1/drafts/faxes\",\n request: { kind: \"json\", schema: CreateFaxDraftSchema },\n pathParameters: noPathParameters,\n queryParameters: noQueryParameters,\n dataSchema: DraftSchema,\n requiresIdempotencyKey: false,\n safeToRetry: false,\n }),\n getDraft: defineRestOperation({\n operationId: \"getDraft\",\n method: \"GET\",\n path: \"/v1/drafts/{draftId}\",\n request: noRequest,\n pathParameters: { draftId: DraftIdSchema },\n queryParameters: noQueryParameters,\n dataSchema: DraftSchema,\n requiresIdempotencyKey: false,\n safeToRetry: true,\n }),\n quoteDraft: defineRestOperation({\n operationId: \"quoteDraft\",\n method: \"POST\",\n path: \"/v1/drafts/{draftId}/quote\",\n request: noRequest,\n pathParameters: { draftId: DraftIdSchema },\n queryParameters: noQueryParameters,\n dataSchema: QuoteSchema,\n requiresIdempotencyKey: false,\n safeToRetry: false,\n }),\n requestApproval: defineRestOperation({\n operationId: \"requestApproval\",\n method: \"POST\",\n path: \"/v1/drafts/{draftId}/approval-requests\",\n request: { kind: \"json\", schema: CreateApprovalRequestSchema },\n pathParameters: { draftId: DraftIdSchema },\n queryParameters: noQueryParameters,\n dataSchema: ApprovalRequestSchema,\n requiresIdempotencyKey: false,\n safeToRetry: false,\n }),\n createDispatch: defineRestOperation({\n operationId: \"createDispatch\",\n method: \"POST\",\n path: \"/v1/drafts/{draftId}/dispatches\",\n request: { kind: \"json\", schema: CreateDispatchSchema },\n pathParameters: { draftId: DraftIdSchema },\n queryParameters: noQueryParameters,\n dataSchema: DispatchSchema,\n requiresIdempotencyKey: true,\n safeToRetry: true,\n }),\n createDirectPaymentSession: defineRestOperation({\n operationId: \"createDirectPaymentSession\",\n method: \"POST\",\n path: \"/v1/drafts/{draftId}/direct-payment-sessions\",\n request: { kind: \"json\", schema: CreateDirectPaymentSessionSchema },\n pathParameters: { draftId: DraftIdSchema },\n queryParameters: noQueryParameters,\n dataSchema: DirectPaymentSchema,\n requiresIdempotencyKey: true,\n safeToRetry: true,\n }),\n getDirectPayment: defineRestOperation({\n operationId: \"getDirectPayment\",\n method: \"GET\",\n path: \"/v1/direct-payments/{directPaymentId}\",\n request: noRequest,\n pathParameters: { directPaymentId: DirectPaymentIdSchema },\n queryParameters: noQueryParameters,\n dataSchema: DirectPaymentSchema,\n requiresIdempotencyKey: false,\n safeToRetry: true,\n }),\n listDispatches: defineRestOperation({\n operationId: \"listDispatches\",\n method: \"GET\",\n path: \"/v1/dispatches\",\n request: noRequest,\n pathParameters: noPathParameters,\n queryParameters: { limit: z.int().min(1).max(100).default(25) },\n dataSchema: DispatchListResultSchema,\n requiresIdempotencyKey: false,\n safeToRetry: true,\n }),\n getDispatch: defineRestOperation({\n operationId: \"getDispatch\",\n method: \"GET\",\n path: \"/v1/dispatches/{dispatchId}\",\n request: noRequest,\n pathParameters: { dispatchId: DispatchIdSchema },\n queryParameters: noQueryParameters,\n dataSchema: DispatchSchema,\n requiresIdempotencyKey: false,\n safeToRetry: true,\n }),\n getDispatchSummary: defineRestOperation({\n operationId: \"getDispatchSummary\",\n method: \"GET\",\n path: \"/v1/dispatches/{dispatchId}/summary\",\n request: noRequest,\n pathParameters: { dispatchId: DispatchIdSchema },\n queryParameters: noQueryParameters,\n dataSchema: DispatchSummarySchema,\n requiresIdempotencyKey: false,\n safeToRetry: true,\n }),\n getDispatchEvents: defineRestOperation({\n operationId: \"getDispatchEvents\",\n method: \"GET\",\n path: \"/v1/dispatches/{dispatchId}/events\",\n request: noRequest,\n pathParameters: { dispatchId: DispatchIdSchema },\n queryParameters: noQueryParameters,\n dataSchema: DispatchEventListResultSchema,\n requiresIdempotencyKey: false,\n safeToRetry: true,\n }),\n getDispatchProof: defineRestOperation({\n operationId: \"getDispatchProof\",\n method: \"GET\",\n path: \"/v1/dispatches/{dispatchId}/proof\",\n request: noRequest,\n pathParameters: { dispatchId: DispatchIdSchema },\n queryParameters: noQueryParameters,\n dataSchema: ProofBundleSchema,\n requiresIdempotencyKey: false,\n safeToRetry: true,\n }),\n cancelDispatch: defineRestOperation({\n operationId: \"cancelDispatch\",\n method: \"POST\",\n path: \"/v1/dispatches/{dispatchId}/cancel\",\n request: noRequest,\n pathParameters: { dispatchId: DispatchIdSchema },\n queryParameters: noQueryParameters,\n dataSchema: DispatchSchema,\n requiresIdempotencyKey: false,\n safeToRetry: false,\n }),\n getWallet: defineRestOperation({\n operationId: \"getWallet\",\n method: \"GET\",\n path: \"/v1/wallet\",\n request: noRequest,\n pathParameters: noPathParameters,\n queryParameters: noQueryParameters,\n dataSchema: WalletBalanceSchema,\n requiresIdempotencyKey: false,\n safeToRetry: true,\n }),\n} as const;\n\nexport type PapierApiRestOperationName = keyof typeof PapierApiRestOperations;\n", "import { PapierApiRestOperations } from \"@papierapi/contracts\";\nimport type { z } from \"zod\";\n\nexport const papierApiOperations = PapierApiRestOperations;\n\nexport type PapierApiOperationName = keyof typeof papierApiOperations;\n\nexport type PapierApiOperationResponse<Name extends PapierApiOperationName> = z.infer<\n (typeof papierApiOperations)[Name][\"responseSchema\"]\n>;\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,SAAS;AAEX,IAAM,iBAAiB,EAAE,QAAQ,KAAK;AAGtC,IAAM,gBAAgB,EAAE,IAAI,KAAK;AACjC,IAAM,oBAAoB,EAAE,IAAI,SAAS,EAAE,QAAQ,KAAK,CAAC;AAEzD,IAAM,uBAAuB,EACjC,OAAO,EACP,IAAI,CAAC,EACL,IAAI,GAAG,EACP,MAAM,sBAAsB,2DAA2D;AAEnF,SAAS,WAAW,QAAgB;AACzC,SAAO,EAAE,OAAO,EAAE,MAAM,IAAI,OAAO,IAAI,MAAM,0BAA0B,CAAC;AAC1E;AAEO,IAAM,uBAAuB,WAAW,KAAK;AAC7C,IAAM,oBAAoB,WAAW,KAAK;AAC1C,IAAM,wBAAwB,WAAW,KAAK;AAC9C,IAAM,mBAAmB,WAAW,KAAK;AACzC,IAAM,gBAAgB,WAAW,KAAK;AACtC,IAAM,0BAA0B,WAAW,KAAK;AAChD,IAAM,gBAAgB,WAAW,KAAK;AACtC,IAAM,0BAA0B,WAAW,MAAM;AACjD,IAAM,mBAAmB,WAAW,KAAK;AACzC,IAAM,wBAAwB,WAAW,KAAK;AAC9C,IAAM,mBAAmB,WAAW,KAAK;AACzC,IAAM,gBAAgB,WAAW,KAAK;AACtC,IAAM,0BAA0B,WAAW,KAAK;AAChD,IAAM,kBAAkB,WAAW,KAAK;AAExC,IAAM,cAAc,EACxB,OAAO;AAAA,EACN,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAU;AAAA,EAC3C,UAAU;AACZ,CAAC,EACA,OAAO;AAGH,IAAM,iBAAiB,EAC3B,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,EACrD,OAAO,CAAC,UAAU,OAAO,KAAK,KAAK,EAAE,UAAU,IAAI,sCAAsC;AAErF,IAAM,mBAAmB,EAC7B,OAAO;AAAA,EACN,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EAChC,QAAQ,EAAE,KAAK,CAAC,OAAO,QAAQ,SAAS,QAAQ,CAAC,EAAE,SAAS;AAAA,EAC5D,MAAM,EAAE,OAAO,EAAE,IAAI,GAAK,EAAE,SAAS;AACvC,CAAC,EACA,OAAO;AAGH,IAAM,wBAAwB,EAClC,OAAO;AAAA,EACN,QAAQ,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACrC,OAAO,EAAE,OAAO,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAE;AAC3D,CAAC,EACA,OAAO;AAEH,IAAM,sBAAsB,EAChC,OAAO;AAAA,EACN,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA,EACjC,UAAU,EAAE,QAAQ;AACtB,CAAC,EACA,OAAO;AAEH,IAAM,eAAe,EAAE,OAAO,EAAE,MAAM,gBAAgB;AAEtD,IAAM,8BAA8B,EACxC,OAAO;AAAA,EACN,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EAC9B,YAAY,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACzC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC9B,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC/B,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAK;AAAA,EACpC,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAK;AAC/C,CAAC,EACA,OAAO;AAGH,IAAM,0BAA0B,EACpC,OAAO;AAAA,EACN,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC7B,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EACjC,QAAQ,EAAE,KAAK,CAAC,UAAU,WAAW,UAAU,SAAS,CAAC;AAAA,EACzD,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC/B,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC;AAAA,EAC1C,YAAY,EAAE,MAAM,2BAA2B;AAAA,EAC/C,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC;AAC5B,CAAC,EACA,OAAO;AAGH,IAAM,4BAA4B,EACtC,OAAO;AAAA,EACN,QAAQ,EAAE,KAAK,CAAC,UAAU,WAAW,QAAQ,CAAC;AAAA,EAC9C,QAAQ,EAAE,MAAM,uBAAuB;AAAA,EACvC,kBAAkB,EAAE,OAAO;AAC7B,CAAC,EACA,OAAO;;;ACrGV,SAAS,KAAAA,UAAS;;;ACAlB,SAAS,KAAAC,UAAS;AAQX,IAAM,aAAaC,GAAE,OAAO,EAAE,MAAM,mBAAmB;AAEvD,IAAM,qBAAqBA,GAC/B,OAAO;AAAA,EACN,iBAAiB;AAAA,EACjB,MAAMA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACjD,SAASA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACpD,qBAAqBA,GAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AACpD,CAAC,EACA,OAAO;AAGH,IAAM,mBAAmBA,GAC7B,OAAO;AAAA,EACN,cAAcA,GAAE,MAAM,CAACA,GAAE,QAAQ,CAAC,GAAGA,GAAE,QAAQ,CAAC,GAAGA,GAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC;AAAA,EAC3E,cAAc,kBAAkB;AAAA,IAC9B;AAAA,EACF,EAAE,SAAS;AAAA,EACX,SAASA,GAAE,KAAK,CAAC,iBAAiB,eAAe,WAAW,OAAO,CAAC;AAAA,EACpE,mBAAmBA,GAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AAClD,CAAC,EACA,OAAO;AAGH,IAAM,uBAAuBA,GACjC,OAAO;AAAA,EACN,mBAAmB;AAAA,EACnB,WAAW;AAAA,EACX,aAAa;AAAA,EACb,OAAOA,GACJ,OAAO;AAAA,IACN,SAASA,GAAE,QAAQ;AAAA,IACnB,SAASA,GAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,IACtC,MAAMA,GAAE,OAAO,EAAE,IAAI,GAAK,EAAE,SAAS;AAAA,EACvC,CAAC,EACA,OAAO,EACP,QAAQ,EAAE,SAAS,MAAM,CAAC;AAAA,EAC7B,SAAS;AAAA,EACT,UAAU,eAAe,QAAQ,CAAC,CAAC;AACrC,CAAC,EACA,OAAO;;;AChDV,SAAS,KAAAC,UAAS;AAGlB,IAAM,oBAAoBC,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAEnD,IAAM,8BAA8BA,GACxC,OAAO;AAAA,EACN,MAAMA,GAAE,QAAQ,QAAQ,EAAE,QAAQ,QAAQ;AAAA,EAC1C,SAAS,kBAAkB,SAAS;AAAA,EACpC,MAAM;AAAA,EACN,WAAW,kBAAkB,SAAS;AAAA,EACtC,iBAAiB,kBAAkB,SAAS;AAAA,EAC5C,QAAQ;AAAA,EACR,cAAcA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EAC7C,aAAaA,GAAE,OAAO,EAAE,MAAM,SAAS;AAAA,EACvC,MAAM;AAAA,EACN,SAASA,GAAE,QAAQ,IAAI;AACzB,CAAC,EACA,OAAO;AAEH,IAAM,+BAA+BA,GACzC,OAAO;AAAA,EACN,MAAMA,GAAE,QAAQ,UAAU;AAAA,EAC1B,SAAS,kBAAkB,SAAS;AAAA,EACpC,MAAM;AAAA,EACN,WAAW,kBAAkB,SAAS;AAAA,EACtC,UAAUA,GACP,OAAO,EACP,KAAK,EACL,MAAM,qBAAqB;AAAA,EAC9B,aAAaA,GAAE,OAAO,EAAE,MAAM,SAAS;AAAA,EACvC,MAAM;AAAA,EACN,SAASA,GAAE,QAAQ,IAAI;AACzB,CAAC,EACA,OAAO;AAEH,IAAM,8BAA8BA,GAAE,mBAAmB,QAAQ;AAAA,EACtE;AAAA,EACA;AACF,CAAC;AAGD,IAAM,uBAAuBA,GAC1B,OAAO;AAAA,EACN,MAAMA,GAAE,QAAQ,WAAW;AAAA,EAC3B,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAM;AAAA,EAClC,OAAOA,GAAE,KAAK,CAAC,UAAU,UAAU,CAAC,EAAE,QAAQ,QAAQ;AACxD,CAAC,EACA,OAAO;AAEV,IAAM,qBAAqBA,GACxB,OAAO;AAAA,EACN,MAAMA,GAAE,QAAQ,SAAS;AAAA,EACzB,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC/B,OAAOA,GAAE,MAAM,CAACA,GAAE,QAAQ,CAAC,GAAGA,GAAE,QAAQ,CAAC,CAAC,CAAC;AAC7C,CAAC,EACA,OAAO;AAEV,IAAM,kBAAkBA,GACrB,OAAO;AAAA,EACN,MAAMA,GAAE,QAAQ,MAAM;AAAA,EACtB,SAASA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AAAA,EAClC,OAAOA,GAAE,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAK,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAC7D,CAAC,EACA,OAAO;AAEV,IAAM,mBAAmBA,GACtB,OAAO;AAAA,EACN,MAAMA,GAAE,QAAQ,OAAO;AAAA,EACvB,SAASA,GAAE,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC;AAAA,EACzD,MAAMA,GACH,MAAMA,GAAE,MAAMA,GAAE,OAAO,EAAE,IAAI,GAAK,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,EAClD,IAAI,CAAC,EACL,IAAI,GAAG;AACZ,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,QAAQ;AAC3B,QAAM,KAAK,QAAQ,CAAC,KAAK,UAAU;AACjC,QAAI,IAAI,WAAW,MAAM,QAAQ,QAAQ;AACvC,UAAI,SAAS;AAAA,QACX,MAAM;AAAA,QACN,SAAS;AAAA,QACT,MAAM,CAAC,QAAQ,KAAK;AAAA,MACtB,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH,CAAC;AAEH,IAAM,oBAAoBA,GACvB,OAAO;AAAA,EACN,MAAMA,GAAE,QAAQ,QAAQ;AAAA,EACxB,aAAaA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AACvC,CAAC,EACA,OAAO;AAEV,IAAM,qBAAqBA,GACxB,OAAO;AAAA,EACN,MAAMA,GAAE,QAAQ,SAAS;AAAA,EACzB,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAK;AACnC,CAAC,EACA,OAAO;AAEV,IAAM,6BAA6BA,GAChC,OAAO;AAAA,EACN,MAAMA,GAAE,QAAQ,uBAAuB;AAAA,EACvC,WAAWA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AACrC,CAAC,EACA,OAAO;AAEH,IAAM,oBAAoBA,GAAE,mBAAmB,QAAQ;AAAA,EAC5D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,IAAM,gCAAgCA,GAC1C,OAAO;AAAA,EACN,QAAQA,GAAE,KAAK,CAAC,SAAS,OAAO,CAAC,EAAE,QAAQ,OAAO;AAAA,EAClD,MAAM;AAAA,EACN,iBAAiBA,GACd;AAAA,IACCA,GACG,OAAO;AAAA,MACN,OAAOA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,MAC/B,OAAOA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,IAClC,CAAC,EACA,OAAO;AAAA,EACZ,EACC,IAAI,CAAC,EACL,SAAS;AAAA,EACZ,SAASA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACzC,YAAYA,GAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACzC,QAAQA,GAAE,MAAM,iBAAiB,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACjD,SAASA,GAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACtC,WAAWA,GAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AAC1C,CAAC,EACA,OAAO;AAGV,IAAM,+BAA+BA,GAClC,OAAO;AAAA,EACN,MAAMA,GAAE,QAAQ,YAAY;AAAA,EAC5B,SAAS;AACX,CAAC,EACA,OAAO;AAEV,IAAM,qBAAqBA,GACxB,OAAO;AAAA,EACN,MAAMA,GAAE,QAAQ,SAAS;AAAA,EACzB,aAAa;AACf,CAAC,EACA,OAAO;AAEH,IAAM,qBAAqBA,GAAE,mBAAmB,QAAQ;AAAA,EAC7D;AAAA,EACA;AACF,CAAC;AAEM,IAAM,sBAAsBA,GAChC,OAAO;AAAA,EACN,OAAOA,GAAE,KAAK,CAAC,aAAa,OAAO,CAAC;AAAA,EACpC,QAAQA,GAAE,QAAQ;AAAA,EAClB,SAASA,GAAE,KAAK,CAAC,YAAY,wBAAwB,sBAAsB,CAAC;AAAA,EAC5E,aAAaA,GAAE,KAAK,CAAC,UAAU,MAAM,CAAC,EAAE,QAAQ,QAAQ;AAAA,EACxD,gBAAgBA,GACb,KAAK,CAAC,wBAAwB,wBAAwB,uBAAuB,CAAC,EAC9E,QAAQ,sBAAsB;AACnC,CAAC,EACA,OAAO;AAGH,IAAM,0BAA0BA,GACpC,OAAO;AAAA,EACN,mBAAmB;AAAA,EACnB,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,aAAaA,GACV,MAAMA,GAAE,OAAO,EAAE,aAAa,iBAAiB,CAAC,EAAE,OAAO,CAAC,EAC1D,IAAI,EAAE,EACN,QAAQ,CAAC,CAAC;AAAA,EACb,SAAS;AAAA,EACT,UAAU,eAAe,QAAQ,CAAC,CAAC;AACrC,CAAC,EACA,OAAO;;;AC5LV,SAAS,KAAAC,UAAS;AAclB,IAAM,oBAAoBC,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAEnD,IAAM,6BAA6BA,GACvC,OAAO;AAAA,EACN,MAAM;AAAA,EACN,SAAS,kBAAkB,SAAS;AAAA,EACpC,QAAQ;AAAA,EACR,cAAcA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EAC7C,aAAaA,GAAE,OAAO,EAAE,MAAM,SAAS;AAAA,EACvC,MAAM;AAAA,EACN,SAASA,GAAE,QAAQ,IAAI;AAAA,EACvB,OAAOA,GAAE,MAAM,EAAE,SAAS;AAC5B,CAAC,EACA,OAAO;AAGH,IAAM,2BAA2BA,GAAE,KAAK,CAAC,SAAS,SAAS,CAAC;AAG5D,IAAM,4BAA4BA,GACtC,OAAO;AAAA,EACN,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,mBAAmBA,GAAE,QAAQ,IAAI;AAAA,EACjC,OAAO,yBAAyB,QAAQ,OAAO;AAAA,EAC/C,cAAcA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AACzC,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,QAAQ;AAC3B,MAAI,MAAM,UAAU,aAAa,MAAM,cAAc;AACnD,QAAI,SAAS;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,MACT,MAAM,CAAC,cAAc;AAAA,IACvB,CAAC;AAAA,EACH;AACF,CAAC;AAGI,IAAM,4BAA4BA,GACtC,OAAO;AAAA,EACN,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,mBAAmBA,GAAE,QAAQ,IAAI;AAAA,EACjC,cAAcA,GAAE,QAAQ,EAAE,QAAQ,KAAK;AACzC,CAAC,EACA,OAAO;AAGH,IAAM,sBAAsBA,GAChC,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,QAAQA,GAAE,QAAQ,UAAU;AAAA,EAC5B,OAAO;AAAA,EACP,YAAYA,GAAE,QAAQ;AAAA,EACtB,8BAA8B,sBAAsB,SAAS;AAAA,EAC7D,aAAa;AAAA,EACb,aAAa,kBAAkB,SAAS;AAAA,EACxC,YAAY;AAAA,EACZ,YAAY;AACd,CAAC,EACA,OAAO;AAGH,IAAM,uCAAuCA,GAAE,KAAK,CAAC,WAAW,YAAY,UAAU,CAAC;AACvF,IAAM,kCAAkCA,GAC5C,OAAO;AAAA,EACN,OAAO;AAAA,EACP,aAAa,kBAAkB,SAAS;AAAA,EACxC,YAAY,kBAAkB,SAAS;AACzC,CAAC,EACA,OAAO;AAGH,IAAM,6BAA6B,oBAAoB,OAAO;AAAA,EACnE,cAAc;AAAA,EACd,eAAeA,GAAE,QAAQ;AAC3B,CAAC,EAAE,OAAO;AAGH,IAAM,gCAAgC,2BAA2B,OAAO;AAAA,EAC7E,cAAc,gCAAgC,OAAO,EAAE,OAAOA,GAAE,QAAQ,UAAU,EAAE,CAAC,EAAE,OAAO;AAAA,EAC9F,eAAeA,GAAE,QAAQ,IAAI;AAC/B,CAAC,EAAE,OAAO;AAGH,IAAM,8BAA8B,2BAA2B,OAAO;AAAA,EAC3E,QAAQ;AACV,CAAC,EAAE,OAAO;AAGH,IAAM,8BAA8BA,GAAE,KAAK,CAAC,YAAY,cAAc,CAAC;AAGvE,IAAM,2BAA2BA,GACrC,OAAO;AAAA,EACN,cAAc;AAAA,EACd,cAAcA,GACX,OAAO;AAAA,IACN,MAAMA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACxC,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,gBAAgB;AAClB,CAAC,EACA,OAAO,EACP,YAAY,CAAC,OAAO,YAAY;AAC/B,MAAI,MAAM,eAAe,UAAU,SAAS;AAC1C,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,MACT,MAAM,CAAC,kBAAkB,OAAO;AAAA,IAClC,CAAC;AAAA,EACH;AACA,MAAI,MAAM,iBAAiB,kBAAkB,MAAM,iBAAiB,QAAW;AAC7E,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,MACT,MAAM,CAAC,cAAc;AAAA,IACvB,CAAC;AAAA,EACH;AACA,MAAI,MAAM,iBAAiB,cAAc,MAAM,iBAAiB,QAAW;AACzE,YAAQ,SAAS;AAAA,MACf,MAAM;AAAA,MACN,SAAS;AAAA,MACT,MAAM,CAAC,cAAc;AAAA,IACvB,CAAC;AAAA,EACH;AACF,CAAC;AAEI,IAAM,wBAAwBA,GAClC,OAAO;AAAA,EACN,OAAOA,GAAE,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG;AAAA,EAC/B,YAAY;AACd,CAAC,EACA,OAAO;AAGH,IAAM,iCAAiCA,GAC3C,OAAO;AAAA,EACN,cAAcA,GACX,OAAO;AAAA,IACN,IAAI;AAAA,IACJ,cAAc;AAAA,IACd,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,IAC/B,MAAMA,GAAE,KAAK,CAAC,aAAa,UAAU,YAAY,CAAC;AAAA,IAClD,QAAQA,GAAE,KAAK,CAAC,UAAU,aAAa,QAAQ,CAAC;AAAA,IAChD,YAAY;AAAA,EACd,CAAC,EACA,OAAO;AAAA,EACV,YAAYA,GAAE,OAAO,EAAE,MAAMA,GAAE,QAAQ,OAAO,EAAE,CAAC,EAAE,OAAO;AAAA,EAC1D,gBAAgBA,GACb,OAAO;AAAA,IACN,IAAIA,GAAE,OAAO,EAAE,MAAM,8BAA8B;AAAA,IACnD,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,IAC/B,QAAQA,GAAE,QAAQ,UAAU;AAAA,IAC5B,aAAa;AAAA,IACb,YAAY;AAAA,EACd,CAAC,EACA,OAAO;AACZ,CAAC,EACA,OAAO;AAGH,IAAM,oBAAoBA,GAAE,KAAK;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,IAAM,qBAAqBA,GAC/B,OAAO;AAAA,EACN,MAAMA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACtC,QAAQA,GAAE,MAAM,iBAAiB,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EAChD,YAAYA,GAAE,IAAI,SAAS,EAAE,QAAQ,KAAK,CAAC,EAAE,SAAS;AACxD,CAAC,EACA,OAAO;AAEH,IAAM,8BAA8BA,GACxC,OAAO;AAAA,EACN,UAAUA,GAAE,OAAO,EAAE,MAAM,8BAA8B;AAAA,EACzD,oBAAoBA,GAAE,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,KAAM,EAAE,QAAQ,IAAK;AAChE,CAAC,EACA,OAAO;AAEH,IAAM,wBAAwB;AAC9B,IAAM,oCAAoC;AAE1C,IAAM,oCAAoCA,GAC9C,OAAO;AAAA,EACN,iCAAiCA,GAAE,QAAQ,IAAI;AAAA,EAC/C,oDAAoDA,GAAE,QAAQ,IAAI;AAAA,EAClE,eAAeA,GAAE,QAAQ,qBAAqB;AAAA,EAC9C,2BAA2BA,GAAE,QAAQ,iCAAiC;AACxE,CAAC,EACA,OAAO;AAGH,IAAM,uBAAuBA,GAAE,mBAAmB,YAAY;AAAA,EACnEA,GACG,OAAO;AAAA,IACN,UAAUA,GAAE,QAAQ,SAAS;AAAA,IAC7B,QAAQA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,GAAK,EAAE,SAAS;AAAA,IAC9C,+BAA+B;AAAA,EACjC,CAAC,EACA,OAAO;AAAA,EACVA,GACG,OAAO;AAAA,IACN,UAAUA,GAAE,QAAQ,QAAQ;AAAA,IAC5B,QAAQA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,GAAK,EAAE,SAAS;AAAA,EAChD,CAAC,EACA,OAAO;AACZ,CAAC;AAEM,IAAM,0BAA0BA,GACpC,OAAO;AAAA,EACN,qBAAqB;AAAA,EACrB,aAAa,iBAAiB,SAAS;AACzC,CAAC,EACA,OAAO;AAEH,IAAM,2BAA2BA,GACrC,OAAO;AAAA,EACN,cAAcA,GAAE,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,GAAO;AAAA,EAC1C,aAAaA,GAAE,IAAI;AAAA,EACnB,YAAYA,GAAE,IAAI;AACpB,CAAC,EACA,OAAO;AAEH,IAAM,mCAAmCA,GAC7C,OAAO;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AACf,CAAC,EACA,OAAO;AAEH,IAAM,4BAA4BA,GAAE,KAAK;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,sBAAsBA,GAChC,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,cAAcA,GAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAU;AAAA,EAC3C,UAAU;AAAA,EACV,YAAY,kBAAkB,SAAS;AAAA,EACvC,cAAcA,GAAE,IAAI,EAAE,UAAU,UAAU,CAAC,EAAE,SAAS;AAAA,EACtD,aAAa,iBAAiB,SAAS;AACzC,CAAC,EACA,OAAO;AAGH,IAAM,+BAA+BA,GAAE,mBAAmB,SAAS;AAAA,EACxEA,GACG,OAAO;AAAA,IACN,OAAOA,GAAE,QAAQ,MAAM;AAAA,IACvB,aAAa;AAAA,EACf,CAAC,EACA,OAAO;AAAA,EACVA,GACG,OAAO;AAAA,IACN,OAAOA,GAAE,QAAQ,iBAAiB;AAAA,IAClC,aAAa;AAAA,IACb,aAAa;AAAA,IACb,iBAAiBA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EAClD,CAAC,EACA,OAAO;AAAA,EACVA,GACG,OAAO;AAAA,IACN,OAAOA,GAAE,QAAQ,gBAAgB;AAAA,IACjC,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,uBAAuB;AAAA,IACvB,aAAa,iBAAiB,SAAS;AAAA,EACzC,CAAC,EACA,OAAO;AACZ,CAAC;AAGM,IAAM,2BAA2BA,GACrC,OAAO;AAAA,EACN,IAAI,qBAAqB,SAAS;AAAA,EAClC,MAAMA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AACxC,CAAC,EACA,OAAO;AAEH,IAAM,qBAAqBA,GAAE,KAAK;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,IAAM,8BAA8BA,GACxC,OAAO;AAAA,EACN,KAAKA,GAAE,IAAI,EAAE,UAAU,UAAU,CAAC;AAAA,EAClC,QAAQA,GAAE,MAAM,kBAAkB,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AACnD,CAAC,EACA,OAAO;AAEH,IAAM,wBAAwBA,GAClC,OAAO;AAAA,EACN,UAAUA,GAAE,OAAO,EAAE,MAAM,8BAA8B;AAAA,EACzD,UAAUA,GAAE,OAAO,EAAE,MAAM,8BAA8B;AAAA,EACzD,aAAa;AAAA,EACb,iBAAiB;AACnB,CAAC,EACA,OAAO;;;AHnUH,IAAM,gBAAgBC,GAAE,KAAK,CAAC,UAAU,KAAK,CAAC;AAG9C,IAAM,qBAAqBA,GAAE,KAAK,CAAC,iBAAiB,UAAU,YAAY,MAAM,CAAC;AAGjF,IAAM,oBAAoBA,GAAE,KAAK;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,IAAM,uBAAuBA,GAAE,KAAK;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,IAAM,cAAcA,GACxB,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,YAAYA,GAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAClC,mBAAmBA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC5C,cAAc;AAAA,EACd,aAAaA,GAAE,IAAI;AAAA,EACnB,oBAAoB;AAAA,EACpB,YAAY;AAAA,EACZ,YAAY;AACd,CAAC,EACA,OAAO;AAGV,IAAM,0BAA0B,YAAY,KAAK;AAAA,EAC/C,SAAS;AAAA,EACT,mBAAmB;AACrB,CAAC;AAEM,IAAM,4BAA4B,wBAAwB,OAAO;AAAA,EACtE,SAASA,GAAE,QAAQ,QAAQ;AAAA,EAC3B,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,SAAS;AACX,CAAC,EAAE,OAAO;AAEH,IAAM,yBAAyB,wBAAwB,OAAO;AAAA,EACnE,SAASA,GAAE,QAAQ,KAAK;AAAA,EACxB,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,SAAS;AACX,CAAC,EAAE,OAAO;AAEH,IAAM,sBAAsBA,GAAE,mBAAmB,WAAW;AAAA,EACjE;AAAA,EACA;AACF,CAAC;AAGM,IAAM,cAAcA,GACxB,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,gBAAgBA,GAAE,IAAI,EAAE,IAAI,CAAC;AAAA,EAC7B,WAAWA,GAAE,IAAI,EAAE,IAAI,CAAC;AAAA,EACxB,aAAaA,GAAE,IAAI,EAAE,IAAI,CAAC;AAAA,EAC1B,UAAU;AAAA,EACV,aAAa;AAAA,EACb,aAAaA,GACV,OAAO;AAAA,IACN,SAAS;AAAA,IACT,SAASA,GAAE,QAAQ,IAAI;AAAA,IACvB,OAAOA,GAAE,IAAI,EAAE,IAAI,CAAC;AAAA,IACpB,SAASA,GAAE,OAAO;AAAA,EACpB,CAAC,EACA,OAAO;AACZ,CAAC,EACA,OAAO;AAGH,IAAM,sBAAsB,YAAY,OAAO;AAAA,EACpD,UAAU;AACZ,CAAC,EAAE,OAAO;AAEH,IAAM,oBAAoBA,GAAE,OAAO,CAAC,CAAC,EAAE,OAAO;AAE9C,IAAM,wBAAwBA,GAClC,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQA,GAAE,KAAK,CAAC,WAAW,YAAY,YAAY,WAAW,OAAO,CAAC;AAAA,EACtE,cAAcA,GAAE,IAAI;AAAA,EACpB,YAAY;AAAA,EACZ,YAAY;AACd,CAAC,EACA,OAAO;AAEH,IAAM,uBAAuBA,GACjC,OAAO;AAAA,EACN,UAAU;AAAA,EACV,UAAUA,GACP,mBAAmB,UAAU;AAAA,IAC5BA,GACG,OAAO;AAAA,MACN,QAAQA,GAAE,QAAQ,UAAU;AAAA,MAC5B,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,YAAY;AAAA,IACd,CAAC,EACA,OAAO;AAAA,IACVA,GACG,OAAO;AAAA,MACN,QAAQA,GAAE,QAAQ,UAAU;AAAA,MAC5B,aAAaA,GAAE,KAAK;AAAA,MACpB,YAAY;AAAA,MACZ,YAAYA,GAAE,KAAK;AAAA,IACrB,CAAC,EACA,OAAO;AAAA,EACZ,CAAC,EACA,SAAS;AAAA,EACZ,OAAO;AAAA,EACP,OAAO;AAAA,EACP,gBAAgB;AAClB,CAAC,EACA,OAAO;AAGH,IAAM,yBAAyBA,GACnC,OAAO;AAAA,EACN,UAAUA,GAAE,KAAK,CAAC,WAAW,QAAQ,CAAC;AAAA,EACtC,QAAQA,GAAE,OAAO,EAAE,IAAI,GAAK,EAAE,SAAS;AACzC,CAAC,EACA,OAAO;AAEH,IAAM,iBAAiBA,GAC3B,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,YAAY;AAAA,EACZ,QAAQA,GAAE,KAAK,CAAC,YAAY,UAAU,CAAC;AAAA,EACvC,YAAYA,GAAE,KAAK,CAAC,SAAS,QAAQ,CAAC;AAAA,EACtC,YAAY;AACd,CAAC,EACA,OAAO;AAEH,IAAM,uBAAuBA,GACjC,OAAO;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AACf,CAAC,EACA,OAAO;AAEH,IAAM,iBAAiBA,GAC3B,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,cAAcA,GAAE,IAAI,EAAE,IAAI,CAAC;AAAA,EAC3B,UAAU;AAAA,EACV,eAAe,kBAAkB,SAAS;AAAA,EAC1C,cAAcA,GAAE,QAAQ;AAAA,EACxB,iBAAiBA,GAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EAC9C,YAAY;AAAA,EACZ,YAAY;AACd,CAAC,EACA,OAAO;AAGV,IAAM,4BAA4BA,GAAE,OAAO;AAAA,EACzC,SAASA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AACtD,CAAC;AAEM,IAAM,8BAA8B,0BAA0B,OAAO;AAAA,EAC1E,SAASA,GAAE,QAAQ,QAAQ;AAAA,EAC3B,WAAWA,GACR,OAAO;AAAA,IACN,OAAOA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,IACvC,MAAMA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACxC,CAAC,EACA,OAAO;AACZ,CAAC,EAAE,OAAO;AAEH,IAAM,2BAA2B,0BAA0B,OAAO;AAAA,EACvE,SAASA,GAAE,QAAQ,KAAK;AAAA,EACxB,WAAWA,GACR,OAAO;AAAA,IACN,OAAOA,GAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,IAClD,iBAAiB,mBAAmB,MAAM;AAAA,EAC5C,CAAC,EACA,OAAO;AACZ,CAAC,EAAE,OAAO;AAEH,IAAM,wBAAwBA,GAAE,mBAAmB,WAAW;AAAA,EACnE;AAAA,EACA;AACF,CAAC;AAGM,IAAM,sBAAsBA,GAChC,OAAO;AAAA,EACN,IAAI;AAAA,EACJ,aAAa;AAAA,EACb,UAAUA,GAAE,IAAI,EAAE,IAAI,CAAC;AAAA,EACvB,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC/B,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,UAAUA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,QAAQ,CAAC;AAAA,EAC1C,YAAY;AAAA,EACZ,eAAe,aAAa,SAAS;AACvC,CAAC,EACA,OAAO;AAGH,IAAM,oBAAoBA,GAC9B,OAAO;AAAA,EACN,gBAAgBA,GAAE,QAAQ,KAAK;AAAA,EAC/B,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,SAASA,GACN,OAAO;AAAA,IACN,aAAa;AAAA,IACb,QAAQ;AAAA,EACV,CAAC,EACA,OAAO;AAAA,EACV,WAAWA,GACR,OAAO;AAAA,IACN,aAAa;AAAA,IACb,SAASA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACpC,CAAC,EACA,OAAO;AAAA,EACV,cAAcA,GACX,OAAO;AAAA,IACN,IAAI;AAAA,IACJ,kBAAkBA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,IAC3C,QAAQA,GAAE,KAAK,CAAC,UAAU,SAAS,CAAC;AAAA,IACpC,gBAAgB;AAAA,EAClB,CAAC,EACA,OAAO;AAAA,EACV,OAAOA,GACJ,OAAO;AAAA,IACN,IAAI;AAAA,IACJ,gBAAgBA,GAAE,IAAI,EAAE,IAAI,CAAC;AAAA,IAC7B,WAAWA,GAAE,IAAI,EAAE,IAAI,CAAC;AAAA,IACxB,aAAaA,GAAE,IAAI,EAAE,IAAI,CAAC;AAAA,IAC1B,UAAU;AAAA,IACV,iBAAiBA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC5C,CAAC,EACA,OAAO;AAAA,EACV,UAAUA,GACP,OAAO;AAAA,IACN,IAAI;AAAA,IACJ,YAAYA,GAAE,KAAK,CAAC,SAAS,QAAQ,CAAC;AAAA,IACtC,UAAUA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,IACnC,YAAY;AAAA,IACZ,cAAc;AAAA,EAChB,CAAC,EACA,OAAO;AAAA,EACV,UAAUA,GACP,OAAO;AAAA,IACN,MAAM;AAAA,IACN,2BAA2B;AAAA,IAC3B,aAAa;AAAA,EACf,CAAC,EACA,OAAO,EACP,SAAS;AAAA,EACZ,QAAQA,GACL,OAAO;AAAA,IACN,YAAY;AAAA,IACZ,aAAa;AAAA,EACf,CAAC,EACA,OAAO;AAAA,EACV,aAAaA,GACV,OAAO;AAAA,IACN,OAAOA,GAAE,QAAQ;AAAA,IACjB,gBAAgBA,GAAE,IAAI,EAAE,IAAI,CAAC;AAAA,IAC7B,MAAM,aAAa,SAAS;AAAA,EAC9B,CAAC,EACA,OAAO;AAAA,EACV,cAAc;AAChB,CAAC,EACA,OAAO;AAGH,IAAM,oBAAoB,CAAsB,WACrDA,GACG,OAAO;AAAA,EACN,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,cAAcA,GAAE,MAAM,gBAAgB,EAAE,QAAQ,CAAC,CAAC;AACpD,CAAC,EACA,OAAO;AAEL,IAAM,kBAAkBA,GAAE,KAAK;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,IAAM,iBAAiBA,GAC3B,OAAO;AAAA,EACN,YAAY;AAAA,EACZ,OAAOA,GACJ,OAAO;AAAA,IACN,MAAM;AAAA,IACN,SAASA,GAAE,OAAO;AAAA,IAClB,WAAWA,GAAE,QAAQ;AAAA,IACrB,YAAYA,GAAE,OAAO,EAAE,SAAS;AAAA,IAChC,kBAAkBA,GAAE,OAAO;AAAA,IAC3B,SAASA,GAAE,OAAOA,GAAE,OAAO,GAAGA,GAAE,QAAQ,CAAC,EAAE,SAAS;AAAA,EACtD,CAAC,EACA,OAAO;AACZ,CAAC,EACA,OAAO;;;AIlXV,SAAS,KAAAC,UAAS;AAcX,IAAM,sBAAsBC,GAAE,OAAO,CAAC,CAAC,EAAE,OAAO;AAEhD,IAAM,0BAA0BA,GAAE,OAAO,EAAE,UAAU,cAAc,CAAC,EAAE,OAAO;AAE7E,IAAM,6BAA6BA,GAAE,OAAO,EAAE,aAAa,iBAAiB,CAAC,EAAE,OAAO;AAEtF,IAAM,mCAAmCA,GAC7C,OAAO;AAAA,EACN,UAAU;AAAA,EACV,GAAG,4BAA4B;AACjC,CAAC,EACA,OAAO;AAEH,IAAM,+BAA+BA,GACzC,OAAO,EAAE,OAAOA,GAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,EAC9D,OAAO;AAEH,IAAM,sBAAsBA,GAChC,OAAO;AAAA,EACN,iBAAiBA,GAAE,IAAI;AAAA,EACvB,gBAAgBA,GAAE,IAAI,EAAE,IAAI,CAAC;AAAA,EAC7B,aAAaA,GAAE,IAAI;AAAA,EACnB,UAAUA,GAAE,QAAQ,KAAK;AAC3B,CAAC,EACA,OAAO;AAEH,IAAM,6BAA6B;AAEnC,IAAM,gCAAgCA,GAC1C,OAAO,EAAE,iBAAiBA,GAAE,MAAM,0BAA0B,EAAE,CAAC,EAC/D,OAAO;AAEH,IAAM,2BAA2BA,GACrC,OAAO;AAAA,EACN,UAAU;AAAA,EACV,QAAQA,GAAE,MAAM,mBAAmB;AACrC,CAAC,EACA,OAAO;AAEH,IAAM,wBAAwBA,GAAE,OAAO,EAAE,YAAYA,GAAE,MAAM,cAAc,EAAE,CAAC,EAAE,OAAO;AAEvF,IAAM,kCAAkC,wBAAwB,OAAO;AAAA,EAC5E,6BAA6BA,GAAE,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,KAAM,EAAE,QAAQ,IAAK;AACzE,CAAC,EAAE,OAAO;AAEH,IAAM,+BAA+B,qBAAqB,OAAO;AAAA,EACtE,6BAA6BA,GAAE,IAAI,EAAE,IAAI,GAAG,EAAE,IAAI,KAAM,EAAE,QAAQ,IAAK;AACzE,CAAC,EAAE,OAAO;AAEH,IAAM,wBAAwBA,GAAE,KAAK;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,yBAAyBA,GACnC,OAAO;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,UAAU;AAAA,EACV,uBAAuBA,GAAE,QAAQ,IAAI;AAAA,EACrC,aAAaA,GACV,OAAO;AAAA,IACN,MAAMA,GAAE,QAAQ,mBAAmB;AAAA,IACnC,KAAKA,GAAE,IAAI;AAAA,IACX,aAAaA,GAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACxC,CAAC,EACA,OAAO;AACZ,CAAC,EACA,OAAO;AAEH,IAAM,yBAAyBA,GACnC,OAAO;AAAA,EACN,SAASA,GAAE,QAAQ,KAAK;AAAA,EACxB,YAAYA,GAAE,MAAM,qBAAqB,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC;AAAA,EACvD,yBAAyBA,GAAE,QAAQ,2BAA2B;AAAA,EAC9D,sBAAsBA,GAAE,QAAQ,wBAAwB,EAAE,SAAS;AAAA,EACnE,2BAA2BA,GAAE,QAAQ,cAAc;AAAA,EACnD,wBAAwBA,GAAE,QAAQ,oBAAoB;AAAA,EACtD,UAAUA,GAAE,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAAA,EACnC,mBAAmBA,GAAE,MAAMA,GAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAAA,EAC5C,sBAAsBA,GAAE,IAAI;AAC9B,CAAC,EACA,OAAO;;;ACnGV,SAAS,KAAAC,UAAS;AA8BX,IAAM,+BAA+BC,GACzC,OAAO;AAAA,EACN,UAAUA,GACP,OAAO;AAAA,IACN,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,WAAWA,GACR,IAAI,EACJ,IAAI,CAAC,EACL,IAAI,KAAK,OAAO,IAAI;AAAA,IACvB,YAAYA,GAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,IAClC,YAAY;AAAA,EACd,CAAC,EACA,OAAO;AAAA,EACV,cAAc;AAChB,CAAC,EACA,OAAO;AAIH,IAAM,2BAA2BA,GAAE,MAAM,cAAc,EAAE,IAAI,GAAG;AAChE,IAAM,gCAAgCA,GAAE,MAAM,mBAAmB;AAmBxE,SAAS,oBACP,WACA;AACA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,gBAAgB,kBAAkB,UAAU,UAAU;AAAA,EACxD;AAGF;AAEA,IAAM,mBAAmB,CAAC;AAC1B,IAAM,oBAAoB,CAAC;AAC3B,IAAM,YAAY,EAAE,MAAM,OAAO;AAM1B,IAAM,0BAA0B;AAAA,EACrC,gBAAgB,oBAAoB;AAAA,IAClC,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS,EAAE,MAAM,MAAM;AAAA,IACvB,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,wBAAwB;AAAA,IACxB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,mBAAmB,oBAAoB;AAAA,IACrC,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS,EAAE,MAAM,QAAQ,QAAQ,wBAAwB;AAAA,IACzD,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,wBAAwB;AAAA,IACxB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,gBAAgB,oBAAoB;AAAA,IAClC,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS,EAAE,MAAM,QAAQ,QAAQ,qBAAqB;AAAA,IACtD,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,wBAAwB;AAAA,IACxB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,UAAU,oBAAoB;AAAA,IAC5B,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB,EAAE,SAAS,cAAc;AAAA,IACzC,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,wBAAwB;AAAA,IACxB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,YAAY,oBAAoB;AAAA,IAC9B,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB,EAAE,SAAS,cAAc;AAAA,IACzC,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,wBAAwB;AAAA,IACxB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,iBAAiB,oBAAoB;AAAA,IACnC,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS,EAAE,MAAM,QAAQ,QAAQ,4BAA4B;AAAA,IAC7D,gBAAgB,EAAE,SAAS,cAAc;AAAA,IACzC,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,wBAAwB;AAAA,IACxB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,gBAAgB,oBAAoB;AAAA,IAClC,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS,EAAE,MAAM,QAAQ,QAAQ,qBAAqB;AAAA,IACtD,gBAAgB,EAAE,SAAS,cAAc;AAAA,IACzC,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,wBAAwB;AAAA,IACxB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,4BAA4B,oBAAoB;AAAA,IAC9C,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS,EAAE,MAAM,QAAQ,QAAQ,iCAAiC;AAAA,IAClE,gBAAgB,EAAE,SAAS,cAAc;AAAA,IACzC,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,wBAAwB;AAAA,IACxB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,kBAAkB,oBAAoB;AAAA,IACpC,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB,EAAE,iBAAiB,sBAAsB;AAAA,IACzD,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,wBAAwB;AAAA,IACxB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,gBAAgB,oBAAoB;AAAA,IAClC,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,iBAAiB,EAAE,OAAOA,GAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE;AAAA,IAC9D,YAAY;AAAA,IACZ,wBAAwB;AAAA,IACxB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,aAAa,oBAAoB;AAAA,IAC/B,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB,EAAE,YAAY,iBAAiB;AAAA,IAC/C,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,wBAAwB;AAAA,IACxB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,oBAAoB,oBAAoB;AAAA,IACtC,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB,EAAE,YAAY,iBAAiB;AAAA,IAC/C,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,wBAAwB;AAAA,IACxB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,mBAAmB,oBAAoB;AAAA,IACrC,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB,EAAE,YAAY,iBAAiB;AAAA,IAC/C,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,wBAAwB;AAAA,IACxB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,kBAAkB,oBAAoB;AAAA,IACpC,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB,EAAE,YAAY,iBAAiB;AAAA,IAC/C,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,wBAAwB;AAAA,IACxB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,gBAAgB,oBAAoB;AAAA,IAClC,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB,EAAE,YAAY,iBAAiB;AAAA,IAC/C,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,wBAAwB;AAAA,IACxB,aAAa;AAAA,EACf,CAAC;AAAA,EACD,WAAW,oBAAoB;AAAA,IAC7B,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,YAAY;AAAA,IACZ,wBAAwB;AAAA,IACxB,aAAa;AAAA,EACf,CAAC;AACH;;;ACvQO,IAAM,sBAAsB;",
|
|
6
|
+
"names": ["z", "z", "z", "z", "z", "z", "z", "z", "z", "z", "z", "z"]
|
|
7
|
+
}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,469 @@
|
|
|
1
|
+
import { type ApprovalRequestSchema, type CreateApprovalRequestSchema, type CreateDirectPaymentSessionSchema, type CreateDispatchSchema, type CreateFaxDraftSchema, type CreateLetterDraftSchema, type DispatchSchema, type DraftSchema, type QuoteSchema } from "./internal/contracts/index.js";
|
|
2
|
+
import type { z } from "zod";
|
|
3
|
+
type MaybePromise<T> = T | Promise<T>;
|
|
4
|
+
export type PapierApiAccessToken = string | (() => MaybePromise<string>);
|
|
5
|
+
export type PapierApiFetch = (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
6
|
+
export type PdfDocument = Blob | ArrayBuffer | Uint8Array;
|
|
7
|
+
export type CreateLetterDraftInput = z.input<typeof CreateLetterDraftSchema>;
|
|
8
|
+
export type CreateFaxDraftInput = z.input<typeof CreateFaxDraftSchema>;
|
|
9
|
+
export type CreateApprovalRequestInput = z.input<typeof CreateApprovalRequestSchema>;
|
|
10
|
+
export type CreateDispatchInput = z.input<typeof CreateDispatchSchema>;
|
|
11
|
+
export type CreateDirectPaymentSessionInput = z.input<typeof CreateDirectPaymentSessionSchema>;
|
|
12
|
+
export type ReviewPackage = {
|
|
13
|
+
draft: z.infer<typeof DraftSchema>;
|
|
14
|
+
quote: z.infer<typeof QuoteSchema>;
|
|
15
|
+
approval: z.infer<typeof ApprovalRequestSchema>;
|
|
16
|
+
};
|
|
17
|
+
export type DispatchResult = z.infer<typeof DispatchSchema>;
|
|
18
|
+
export type PapierApiClientOptions = {
|
|
19
|
+
baseUrl: string;
|
|
20
|
+
accessToken: PapierApiAccessToken;
|
|
21
|
+
fetcher?: PapierApiFetch;
|
|
22
|
+
timeoutMs?: number;
|
|
23
|
+
maxResponseBytes?: number;
|
|
24
|
+
};
|
|
25
|
+
export declare class PapierApiClient {
|
|
26
|
+
readonly baseUrl: string;
|
|
27
|
+
private readonly accessToken;
|
|
28
|
+
private readonly fetcher;
|
|
29
|
+
private readonly timeoutMs;
|
|
30
|
+
private readonly maxResponseBytes;
|
|
31
|
+
constructor(options: PapierApiClientOptions);
|
|
32
|
+
private token;
|
|
33
|
+
private execute;
|
|
34
|
+
uploadDocument(document: PdfDocument): Promise<{
|
|
35
|
+
request_id: string;
|
|
36
|
+
data: {
|
|
37
|
+
document: {
|
|
38
|
+
id: string;
|
|
39
|
+
sha256: string;
|
|
40
|
+
byte_size: number;
|
|
41
|
+
page_count: number;
|
|
42
|
+
created_at: string;
|
|
43
|
+
};
|
|
44
|
+
verification: {
|
|
45
|
+
status: "passed" | "warning" | "failed";
|
|
46
|
+
checks: {
|
|
47
|
+
id: string;
|
|
48
|
+
version: string;
|
|
49
|
+
status: "passed" | "warning" | "failed" | "skipped";
|
|
50
|
+
rule: string;
|
|
51
|
+
evidence: Record<string, unknown>;
|
|
52
|
+
violations: {
|
|
53
|
+
code: string;
|
|
54
|
+
rule: string;
|
|
55
|
+
message: string;
|
|
56
|
+
suggested_action: string;
|
|
57
|
+
field_path?: string | undefined;
|
|
58
|
+
page?: number | undefined;
|
|
59
|
+
}[];
|
|
60
|
+
duration_ms: number;
|
|
61
|
+
}[];
|
|
62
|
+
verifier_version: string;
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
next_actions: {
|
|
66
|
+
action: string;
|
|
67
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE" | undefined;
|
|
68
|
+
href?: string | undefined;
|
|
69
|
+
}[];
|
|
70
|
+
}>;
|
|
71
|
+
createLetterDraft(input: CreateLetterDraftInput): Promise<{
|
|
72
|
+
request_id: string;
|
|
73
|
+
data: {
|
|
74
|
+
id: string;
|
|
75
|
+
channel: "letter" | "fax";
|
|
76
|
+
status: "draft" | "validated" | "quoted" | "awaiting_approval" | "approved" | "cancelled";
|
|
77
|
+
content_sha256: string;
|
|
78
|
+
page_count: number;
|
|
79
|
+
recipient_display: string;
|
|
80
|
+
verification: {
|
|
81
|
+
status: "passed" | "warning" | "failed";
|
|
82
|
+
checks: {
|
|
83
|
+
id: string;
|
|
84
|
+
version: string;
|
|
85
|
+
status: "passed" | "warning" | "failed" | "skipped";
|
|
86
|
+
rule: string;
|
|
87
|
+
evidence: Record<string, unknown>;
|
|
88
|
+
violations: {
|
|
89
|
+
code: string;
|
|
90
|
+
rule: string;
|
|
91
|
+
message: string;
|
|
92
|
+
suggested_action: string;
|
|
93
|
+
field_path?: string | undefined;
|
|
94
|
+
page?: number | undefined;
|
|
95
|
+
}[];
|
|
96
|
+
duration_ms: number;
|
|
97
|
+
}[];
|
|
98
|
+
verifier_version: string;
|
|
99
|
+
};
|
|
100
|
+
preview_url: string;
|
|
101
|
+
preview_expires_at: string;
|
|
102
|
+
created_at: string;
|
|
103
|
+
updated_at: string;
|
|
104
|
+
};
|
|
105
|
+
next_actions: {
|
|
106
|
+
action: string;
|
|
107
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE" | undefined;
|
|
108
|
+
href?: string | undefined;
|
|
109
|
+
}[];
|
|
110
|
+
}>;
|
|
111
|
+
createFaxDraft(input: CreateFaxDraftInput): Promise<{
|
|
112
|
+
request_id: string;
|
|
113
|
+
data: {
|
|
114
|
+
id: string;
|
|
115
|
+
channel: "letter" | "fax";
|
|
116
|
+
status: "draft" | "validated" | "quoted" | "awaiting_approval" | "approved" | "cancelled";
|
|
117
|
+
content_sha256: string;
|
|
118
|
+
page_count: number;
|
|
119
|
+
recipient_display: string;
|
|
120
|
+
verification: {
|
|
121
|
+
status: "passed" | "warning" | "failed";
|
|
122
|
+
checks: {
|
|
123
|
+
id: string;
|
|
124
|
+
version: string;
|
|
125
|
+
status: "passed" | "warning" | "failed" | "skipped";
|
|
126
|
+
rule: string;
|
|
127
|
+
evidence: Record<string, unknown>;
|
|
128
|
+
violations: {
|
|
129
|
+
code: string;
|
|
130
|
+
rule: string;
|
|
131
|
+
message: string;
|
|
132
|
+
suggested_action: string;
|
|
133
|
+
field_path?: string | undefined;
|
|
134
|
+
page?: number | undefined;
|
|
135
|
+
}[];
|
|
136
|
+
duration_ms: number;
|
|
137
|
+
}[];
|
|
138
|
+
verifier_version: string;
|
|
139
|
+
};
|
|
140
|
+
preview_url: string;
|
|
141
|
+
preview_expires_at: string;
|
|
142
|
+
created_at: string;
|
|
143
|
+
updated_at: string;
|
|
144
|
+
};
|
|
145
|
+
next_actions: {
|
|
146
|
+
action: string;
|
|
147
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE" | undefined;
|
|
148
|
+
href?: string | undefined;
|
|
149
|
+
}[];
|
|
150
|
+
}>;
|
|
151
|
+
getDraft(draftId: string): Promise<{
|
|
152
|
+
request_id: string;
|
|
153
|
+
data: {
|
|
154
|
+
id: string;
|
|
155
|
+
channel: "letter" | "fax";
|
|
156
|
+
status: "draft" | "validated" | "quoted" | "awaiting_approval" | "approved" | "cancelled";
|
|
157
|
+
content_sha256: string;
|
|
158
|
+
page_count: number;
|
|
159
|
+
recipient_display: string;
|
|
160
|
+
verification: {
|
|
161
|
+
status: "passed" | "warning" | "failed";
|
|
162
|
+
checks: {
|
|
163
|
+
id: string;
|
|
164
|
+
version: string;
|
|
165
|
+
status: "passed" | "warning" | "failed" | "skipped";
|
|
166
|
+
rule: string;
|
|
167
|
+
evidence: Record<string, unknown>;
|
|
168
|
+
violations: {
|
|
169
|
+
code: string;
|
|
170
|
+
rule: string;
|
|
171
|
+
message: string;
|
|
172
|
+
suggested_action: string;
|
|
173
|
+
field_path?: string | undefined;
|
|
174
|
+
page?: number | undefined;
|
|
175
|
+
}[];
|
|
176
|
+
duration_ms: number;
|
|
177
|
+
}[];
|
|
178
|
+
verifier_version: string;
|
|
179
|
+
};
|
|
180
|
+
preview_url: string;
|
|
181
|
+
preview_expires_at: string;
|
|
182
|
+
created_at: string;
|
|
183
|
+
updated_at: string;
|
|
184
|
+
};
|
|
185
|
+
next_actions: {
|
|
186
|
+
action: string;
|
|
187
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE" | undefined;
|
|
188
|
+
href?: string | undefined;
|
|
189
|
+
}[];
|
|
190
|
+
}>;
|
|
191
|
+
quoteDraft(draftId: string): Promise<{
|
|
192
|
+
request_id: string;
|
|
193
|
+
data: {
|
|
194
|
+
id: string;
|
|
195
|
+
draft_id: string;
|
|
196
|
+
subtotal_cents: number;
|
|
197
|
+
vat_cents: number;
|
|
198
|
+
total_cents: number;
|
|
199
|
+
currency: "EUR";
|
|
200
|
+
valid_until: string;
|
|
201
|
+
assumptions: {
|
|
202
|
+
channel: "letter" | "fax";
|
|
203
|
+
country: "DE";
|
|
204
|
+
pages: number;
|
|
205
|
+
service: string;
|
|
206
|
+
};
|
|
207
|
+
};
|
|
208
|
+
next_actions: {
|
|
209
|
+
action: string;
|
|
210
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE" | undefined;
|
|
211
|
+
href?: string | undefined;
|
|
212
|
+
}[];
|
|
213
|
+
}>;
|
|
214
|
+
requestApproval(draftId: string, input: CreateApprovalRequestInput): Promise<{
|
|
215
|
+
request_id: string;
|
|
216
|
+
data: {
|
|
217
|
+
id: string;
|
|
218
|
+
draft_id: string;
|
|
219
|
+
quote_id: string;
|
|
220
|
+
status: "pending" | "rejected" | "expired" | "approved" | "stale";
|
|
221
|
+
approval_url: string;
|
|
222
|
+
expires_at: string;
|
|
223
|
+
created_at: string;
|
|
224
|
+
};
|
|
225
|
+
next_actions: {
|
|
226
|
+
action: string;
|
|
227
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE" | undefined;
|
|
228
|
+
href?: string | undefined;
|
|
229
|
+
}[];
|
|
230
|
+
}>;
|
|
231
|
+
/** Wallet-only dispatch after a human approval. Reuse the key only for an identical retry. */
|
|
232
|
+
createDispatch(draftId: string, input: CreateDispatchInput, idempotencyKey: string): Promise<{
|
|
233
|
+
request_id: string;
|
|
234
|
+
data: {
|
|
235
|
+
id: string;
|
|
236
|
+
draft_id: string;
|
|
237
|
+
status: "failed" | "cancelled" | "funds_reserved" | "submitting" | "provider_accepted" | "producing" | "sending" | "handed_to_carrier" | "delivered" | "returned" | "cancellation_pending";
|
|
238
|
+
channel: "letter" | "fax";
|
|
239
|
+
amount_cents: number;
|
|
240
|
+
currency: "EUR";
|
|
241
|
+
scheduled_for: string | null;
|
|
242
|
+
needs_review: boolean;
|
|
243
|
+
terminal_reason: string | null;
|
|
244
|
+
created_at: string;
|
|
245
|
+
updated_at: string;
|
|
246
|
+
};
|
|
247
|
+
next_actions: {
|
|
248
|
+
action: string;
|
|
249
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE" | undefined;
|
|
250
|
+
href?: string | undefined;
|
|
251
|
+
}[];
|
|
252
|
+
}>;
|
|
253
|
+
/** Creates a user-controlled Checkout after human approval; opening it does not dispatch. */
|
|
254
|
+
createDirectPaymentSession(draftId: string, input: CreateDirectPaymentSessionInput, idempotencyKey: string): Promise<{
|
|
255
|
+
request_id: string;
|
|
256
|
+
data: {
|
|
257
|
+
id: string;
|
|
258
|
+
status: "pending" | "checkout_open" | "dispatch_created" | "expired" | "payment_failed" | "refund_required" | "refunded";
|
|
259
|
+
amount_cents: number;
|
|
260
|
+
currency: "EUR";
|
|
261
|
+
expires_at: string | null;
|
|
262
|
+
checkout_url: string | null;
|
|
263
|
+
dispatch_id: string | null;
|
|
264
|
+
};
|
|
265
|
+
next_actions: {
|
|
266
|
+
action: string;
|
|
267
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE" | undefined;
|
|
268
|
+
href?: string | undefined;
|
|
269
|
+
}[];
|
|
270
|
+
}>;
|
|
271
|
+
/** Tracks server-confirmed payment and the resulting dispatch; checkout_open is not paid. */
|
|
272
|
+
getDirectPayment(directPaymentId: string): Promise<{
|
|
273
|
+
request_id: string;
|
|
274
|
+
data: {
|
|
275
|
+
id: string;
|
|
276
|
+
status: "pending" | "checkout_open" | "dispatch_created" | "expired" | "payment_failed" | "refund_required" | "refunded";
|
|
277
|
+
amount_cents: number;
|
|
278
|
+
currency: "EUR";
|
|
279
|
+
expires_at: string | null;
|
|
280
|
+
checkout_url: string | null;
|
|
281
|
+
dispatch_id: string | null;
|
|
282
|
+
};
|
|
283
|
+
next_actions: {
|
|
284
|
+
action: string;
|
|
285
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE" | undefined;
|
|
286
|
+
href?: string | undefined;
|
|
287
|
+
}[];
|
|
288
|
+
}>;
|
|
289
|
+
listDispatches(limit?: number): Promise<{
|
|
290
|
+
request_id: string;
|
|
291
|
+
data: {
|
|
292
|
+
id: string;
|
|
293
|
+
draft_id: string;
|
|
294
|
+
status: "failed" | "cancelled" | "funds_reserved" | "submitting" | "provider_accepted" | "producing" | "sending" | "handed_to_carrier" | "delivered" | "returned" | "cancellation_pending";
|
|
295
|
+
channel: "letter" | "fax";
|
|
296
|
+
amount_cents: number;
|
|
297
|
+
currency: "EUR";
|
|
298
|
+
scheduled_for: string | null;
|
|
299
|
+
needs_review: boolean;
|
|
300
|
+
terminal_reason: string | null;
|
|
301
|
+
created_at: string;
|
|
302
|
+
updated_at: string;
|
|
303
|
+
}[];
|
|
304
|
+
next_actions: {
|
|
305
|
+
action: string;
|
|
306
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE" | undefined;
|
|
307
|
+
href?: string | undefined;
|
|
308
|
+
}[];
|
|
309
|
+
}>;
|
|
310
|
+
getDispatch(dispatchId: string): Promise<{
|
|
311
|
+
request_id: string;
|
|
312
|
+
data: {
|
|
313
|
+
id: string;
|
|
314
|
+
draft_id: string;
|
|
315
|
+
status: "failed" | "cancelled" | "funds_reserved" | "submitting" | "provider_accepted" | "producing" | "sending" | "handed_to_carrier" | "delivered" | "returned" | "cancellation_pending";
|
|
316
|
+
channel: "letter" | "fax";
|
|
317
|
+
amount_cents: number;
|
|
318
|
+
currency: "EUR";
|
|
319
|
+
scheduled_for: string | null;
|
|
320
|
+
needs_review: boolean;
|
|
321
|
+
terminal_reason: string | null;
|
|
322
|
+
created_at: string;
|
|
323
|
+
updated_at: string;
|
|
324
|
+
};
|
|
325
|
+
next_actions: {
|
|
326
|
+
action: string;
|
|
327
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE" | undefined;
|
|
328
|
+
href?: string | undefined;
|
|
329
|
+
}[];
|
|
330
|
+
}>;
|
|
331
|
+
getDispatchSummary(dispatchId: string): Promise<{
|
|
332
|
+
request_id: string;
|
|
333
|
+
data: {
|
|
334
|
+
subject: string | null;
|
|
335
|
+
channel: "letter";
|
|
336
|
+
recipient: {
|
|
337
|
+
label: string;
|
|
338
|
+
city: string;
|
|
339
|
+
};
|
|
340
|
+
} | {
|
|
341
|
+
subject: string | null;
|
|
342
|
+
channel: "fax";
|
|
343
|
+
recipient: {
|
|
344
|
+
label: string | null;
|
|
345
|
+
fax_number_e164: string;
|
|
346
|
+
};
|
|
347
|
+
};
|
|
348
|
+
next_actions: {
|
|
349
|
+
action: string;
|
|
350
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE" | undefined;
|
|
351
|
+
href?: string | undefined;
|
|
352
|
+
}[];
|
|
353
|
+
}>;
|
|
354
|
+
getDispatchEvents(dispatchId: string): Promise<{
|
|
355
|
+
request_id: string;
|
|
356
|
+
data: {
|
|
357
|
+
id: string;
|
|
358
|
+
dispatch_id: string;
|
|
359
|
+
sequence: number;
|
|
360
|
+
type: string;
|
|
361
|
+
status: "failed" | "cancelled" | "funds_reserved" | "submitting" | "provider_accepted" | "producing" | "sending" | "handed_to_carrier" | "delivered" | "returned" | "cancellation_pending";
|
|
362
|
+
created_at: string;
|
|
363
|
+
evidence: Record<string, unknown>;
|
|
364
|
+
event_hash: string;
|
|
365
|
+
previous_hash: string | null;
|
|
366
|
+
}[];
|
|
367
|
+
next_actions: {
|
|
368
|
+
action: string;
|
|
369
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE" | undefined;
|
|
370
|
+
href?: string | undefined;
|
|
371
|
+
}[];
|
|
372
|
+
}>;
|
|
373
|
+
getDispatchProof(dispatchId: string): Promise<{
|
|
374
|
+
request_id: string;
|
|
375
|
+
data: {
|
|
376
|
+
schema_version: "2.0";
|
|
377
|
+
dispatch_id: string;
|
|
378
|
+
organization_id: string;
|
|
379
|
+
channel: "letter" | "fax";
|
|
380
|
+
content: {
|
|
381
|
+
document_id: string;
|
|
382
|
+
sha256: string;
|
|
383
|
+
};
|
|
384
|
+
recipient: {
|
|
385
|
+
fingerprint: string;
|
|
386
|
+
display: string;
|
|
387
|
+
};
|
|
388
|
+
verification: {
|
|
389
|
+
id: string;
|
|
390
|
+
verifier_version: string;
|
|
391
|
+
status: "passed" | "warning";
|
|
392
|
+
content_sha256: string;
|
|
393
|
+
};
|
|
394
|
+
quote: {
|
|
395
|
+
id: string;
|
|
396
|
+
subtotal_cents: number;
|
|
397
|
+
vat_cents: number;
|
|
398
|
+
total_cents: number;
|
|
399
|
+
currency: "EUR";
|
|
400
|
+
catalog_version: string;
|
|
401
|
+
};
|
|
402
|
+
approval: {
|
|
403
|
+
id: string;
|
|
404
|
+
actor_type: "human" | "policy";
|
|
405
|
+
actor_id: string;
|
|
406
|
+
decided_at: string;
|
|
407
|
+
binding_hash: string;
|
|
408
|
+
};
|
|
409
|
+
provider: {
|
|
410
|
+
name: "onlinebrief24" | "pingen" | "faxsuite" | "mock";
|
|
411
|
+
acceptance_reference_hash: string;
|
|
412
|
+
accepted_at: string;
|
|
413
|
+
} | null;
|
|
414
|
+
status: {
|
|
415
|
+
normalized: "failed" | "cancelled" | "funds_reserved" | "submitting" | "provider_accepted" | "producing" | "sending" | "handed_to_carrier" | "delivered" | "returned" | "cancellation_pending";
|
|
416
|
+
observed_at: string;
|
|
417
|
+
};
|
|
418
|
+
event_chain: {
|
|
419
|
+
valid: boolean;
|
|
420
|
+
checked_events: number;
|
|
421
|
+
head: string | null;
|
|
422
|
+
};
|
|
423
|
+
generated_at: string;
|
|
424
|
+
};
|
|
425
|
+
next_actions: {
|
|
426
|
+
action: string;
|
|
427
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE" | undefined;
|
|
428
|
+
href?: string | undefined;
|
|
429
|
+
}[];
|
|
430
|
+
}>;
|
|
431
|
+
cancelDispatch(dispatchId: string): Promise<{
|
|
432
|
+
request_id: string;
|
|
433
|
+
data: {
|
|
434
|
+
id: string;
|
|
435
|
+
draft_id: string;
|
|
436
|
+
status: "failed" | "cancelled" | "funds_reserved" | "submitting" | "provider_accepted" | "producing" | "sending" | "handed_to_carrier" | "delivered" | "returned" | "cancellation_pending";
|
|
437
|
+
channel: "letter" | "fax";
|
|
438
|
+
amount_cents: number;
|
|
439
|
+
currency: "EUR";
|
|
440
|
+
scheduled_for: string | null;
|
|
441
|
+
needs_review: boolean;
|
|
442
|
+
terminal_reason: string | null;
|
|
443
|
+
created_at: string;
|
|
444
|
+
updated_at: string;
|
|
445
|
+
};
|
|
446
|
+
next_actions: {
|
|
447
|
+
action: string;
|
|
448
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE" | undefined;
|
|
449
|
+
href?: string | undefined;
|
|
450
|
+
}[];
|
|
451
|
+
}>;
|
|
452
|
+
getWallet(): Promise<{
|
|
453
|
+
request_id: string;
|
|
454
|
+
data: {
|
|
455
|
+
available_cents: number;
|
|
456
|
+
reserved_cents: number;
|
|
457
|
+
total_cents: number;
|
|
458
|
+
currency: "EUR";
|
|
459
|
+
};
|
|
460
|
+
next_actions: {
|
|
461
|
+
action: string;
|
|
462
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE" | undefined;
|
|
463
|
+
href?: string | undefined;
|
|
464
|
+
}[];
|
|
465
|
+
}>;
|
|
466
|
+
prepareLetterForReview(input: CreateLetterDraftInput, approvalExpiresInSeconds?: number): Promise<ReviewPackage>;
|
|
467
|
+
prepareFaxForReview(input: CreateFaxDraftInput, approvalExpiresInSeconds?: number): Promise<ReviewPackage>;
|
|
468
|
+
}
|
|
469
|
+
export {};
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ApiError, ErrorCode } from "./internal/contracts/index.js";
|
|
2
|
+
export declare class PapierApiError extends Error {
|
|
3
|
+
readonly status: number;
|
|
4
|
+
readonly requestId: string;
|
|
5
|
+
readonly code: ErrorCode;
|
|
6
|
+
readonly retryable: boolean;
|
|
7
|
+
readonly suggestedAction: string;
|
|
8
|
+
readonly fieldPath: string | undefined;
|
|
9
|
+
constructor(status: number, response: ApiError);
|
|
10
|
+
}
|
|
11
|
+
export declare class PapierApiContractError extends Error {
|
|
12
|
+
readonly operationId: string;
|
|
13
|
+
readonly status: number | undefined;
|
|
14
|
+
constructor(message: string, operationId: string, status?: number);
|
|
15
|
+
}
|
|
16
|
+
export declare class PapierApiTransportError extends Error {
|
|
17
|
+
readonly reason: "network" | "timeout";
|
|
18
|
+
readonly retryable = true;
|
|
19
|
+
constructor(reason: "network" | "timeout");
|
|
20
|
+
}
|