import {z} from 'zod' export type GetApiApiV1UsStatutesSectionActIdRelatedArgs = {act_id: string, limit?: number | undefined, 'Idempotency-Key'?: (string | null) | undefined}; export type GetApiApiV1UsStatutesSectionActIdRelatedOptions = {baseUrl?: string | undefined, ApiKeyAuth?: string | undefined, fetch?: typeof fetch | undefined}; export const booleanMatchContext = z.object({text: z.string(), highlights: z.array(z.array(z.number().int()))}); export const cfrReferenceCheck = z.object({reference: z.string(), title: z.number().int().nullable().optional(), section: z.string().nullable().optional(), status: z.enum(["held", "not_held", "malformed"]), actId: z.string().nullable().optional(), titleAssumed: z.boolean().optional()}); export const frRelatedDocument = z.object({actId: z.string(), citation: z.string().nullable().optional(), title: z.string().nullable().optional(), documentType: z.string().nullable().optional(), publicationDate: z.string().nullable().optional()}); export const boundedField = z.object({field: z.string(), unit: z.enum(["items", "characters"]), total: z.number().int(), returned: z.number().int(), nextOffset: z.number().int()}); export const responseBounds = z.object({truncated: z.boolean(), fields: z.array(boundedField).optional(), note: z.string().nullable().optional()}); export const pendingAmendment = z.object({id: z.string(), status: z.string().nullable().optional(), cycle: z.number().int().nullable().optional(), effectiveDate: z.string().nullable().optional(), commentPeriodEnd: z.string().nullable().optional(), sourceUrl: z.string().nullable().optional(), textComplete: z.boolean().nullable().optional(), commentDocketIds: z.array(z.string()).optional()}); export const statuteResult = z.object({actId: z.string(), citation: z.string().nullable().optional(), citationShort: z.string().nullable().optional(), title: z.string().nullable().optional(), corpusType: z.string().nullable().optional(), state: z.string().nullable().optional(), source: z.string().nullable().optional(), year: z.number().int().nullable().optional(), relevanceScore: z.number().nullable().optional(), excerpt: z.string().optional(), body: z.string().nullable().optional(), bodyUnavailable: z.boolean().nullable().optional(), bodyUnavailableReason: z.enum(["image_only_source", "misfiled_source_text", "partial_snapshot_text"]).nullable().optional(), bodyNote: z.enum(["fetch_failed", "no_text", "insufficient_credits"]).nullable().optional(), bodyServedNote: z.string().nullable().optional(), matchContexts: z.array(booleanMatchContext).nullable().optional(), titleNumber: z.string().nullable().optional(), titleName: z.string().nullable().optional(), chapter: z.string().nullable().optional(), chapterName: z.string().nullable().optional(), sectionNumber: z.string().nullable().optional(), sectionTitle: z.string().nullable().optional(), displayPath: z.string().nullable().optional(), breadcrumb: z.array(z.record(z.string(), z.string())).nullable().optional(), parent: z.record(z.string(), z.unknown()).nullable().optional(), subchapter: z.string().nullable().optional(), subchapterName: z.string().nullable().optional(), part: z.string().nullable().optional(), partName: z.string().nullable().optional(), subpart: z.string().nullable().optional(), subpartName: z.string().nullable().optional(), popularName: z.string().nullable().optional(), actStatus: z.string().nullable().optional(), goodLawStatus: z.string().nullable().optional(), goodLawBasis: z.string().nullable().optional(), currencyNote: z.string().nullable().optional(), renumberedTo: z.string().nullable().optional(), renumberedToLabel: z.string().nullable().optional(), transferredTo: z.string().nullable().optional(), transferredToLabel: z.string().nullable().optional(), issueDate: z.string().nullable().optional(), issueDateRaw: z.string().nullable().optional(), crossReferencesCfr: z.array(z.string()).nullable().optional(), crossReferencesCfrChecked: z.array(cfrReferenceCheck).nullable().optional(), crossReferencesUsc: z.array(z.string()).nullable().optional(), statutoryAuthority: z.array(z.record(z.string(), z.unknown())).nullable().optional(), implementingRegulations: z.array(z.record(z.string(), z.unknown())).nullable().optional(), frRegulationIdNumbers: z.array(z.string()).nullable().optional(), frDocketIds: z.array(z.string()).nullable().optional(), frEffectiveOn: z.string().nullable().optional(), frCommentsCloseOn: z.string().nullable().optional(), frSignificant: z.boolean().nullable().optional(), frCorrectionOf: z.string().nullable().optional(), frCorrections: z.array(z.string()).nullable().optional(), frRegulationsDotGovUrl: z.string().nullable().optional(), frRelatedDocuments: z.array(frRelatedDocument).nullable().optional(), frRelatedDocumentsNote: z.string().nullable().optional(), subject: z.string().nullable().optional(), rescindedOn: z.string().nullable().optional(), rescindedOnRaw: z.string().nullable().optional(), sourceCredit: z.string().nullable().optional(), amendmentYears: z.array(z.number().int()).nullable().optional(), lastAmendedYear: z.number().int().nullable().optional(), amendmentsCount: z.number().int().nullable().optional(), currentThrough: z.string().nullable().optional(), pendingAdoptions: z.array(z.record(z.string(), z.unknown())).nullable().optional(), adoptedAfterCurrentThrough: z.boolean().nullable().optional(), amendmentHistory: z.array(z.string()).nullable().optional(), amendmentHistoryNote: z.string().nullable().optional(), fieldAbsenceNote: z.string().nullable().optional(), citationNote: z.string().nullable().optional(), responseBounds: responseBounds.nullable().optional(), sourceNote: z.string().nullable().optional(), effectiveDate: z.string().nullable().optional(), effectiveDateRaw: z.string().nullable().optional(), historyEffectiveDate: z.string().nullable().optional(), priorEffectiveDates: z.array(z.string()).nullable().optional(), priorEffectiveDatesRaw: z.array(z.string()).nullable().optional(), history: z.string().nullable().optional(), supersededBy: z.string().nullable().optional(), supersedes: z.string().nullable().optional(), pendingAmendments: z.array(pendingAmendment).nullable().optional(), ruleSet: z.string().nullable().optional(), publicLaws: z.array(z.string()).nullable().optional(), federalRegisterCitations: z.array(z.string()).nullable().optional(), granuleId: z.string().nullable().optional(), packageId: z.string().nullable().optional(), htmlUrl: z.string().nullable().optional(), pdfUrl: z.string().nullable().optional(), xmlUrl: z.string().nullable().optional(), textUrl: z.string().nullable().optional(), docxUrl: z.string().nullable().optional(), stateHtmlUrl: z.string().nullable().optional(), govInfoHtmlUrl: z.string().nullable().optional(), govInfoPdfUrl: z.string().nullable().optional(), abstract: z.string().nullable().optional(), agencies: z.array(z.string()).nullable().optional(), agencySlugs: z.array(z.string()).nullable().optional(), topics: z.array(z.string()).nullable().optional(), documentTypeLabel: z.string().nullable().optional(), documentSubtype: z.string().nullable().optional(), action: z.string().nullable().optional(), president: z.string().nullable().optional(), signingDate: z.string().nullable().optional(), signingDateRaw: z.string().nullable().optional(), executiveOrderNumber: z.string().nullable().optional(), proclamationNumber: z.string().nullable().optional(), instrumentNumberSource: z.string().nullable().optional(), datesText: z.string().nullable().optional(), frVolume: z.number().int().nullable().optional(), frStartPage: z.number().int().nullable().optional(), frEndPage: z.number().int().nullable().optional(), wordCount: z.number().int().nullable().optional(), issuingAgency: z.string().nullable().optional(), adoptingCitations: z.array(z.string()).nullable().optional(), lawImplemented: z.string().nullable().optional(), lastAmendedDate: z.string().nullable().optional(), lastAmendedDateRaw: z.string().nullable().optional(), amendmentNote: z.string().nullable().optional(), currencyYear: z.number().int().nullable().optional(), reviewDate: z.string().nullable().optional(), reviewDateRaw: z.string().nullable().optional(), originalEnactmentDate: z.string().nullable().optional(), originalEnactmentDateRaw: z.string().nullable().optional(), releaseDate: z.string().nullable().optional(), releaseDateRaw: z.string().nullable().optional(), documentNumber: z.string().nullable().optional(), caseName: z.string().nullable().optional(), forum: z.string().nullable().optional(), court: z.string().nullable().optional(), relatedDocuments: z.array(z.string()).nullable().optional(), settlementAmount: z.string().nullable().optional(), requesters: z.array(z.string()).nullable().optional(), program: z.string().nullable().optional(), languageCode: z.string().nullable().optional(), volume: z.number().int().nullable().optional(), articleNumber: z.string().nullable().optional(), articleName: z.string().nullable().optional(), ruleSetCode: z.string().nullable().optional(), edition: z.string().nullable().optional(), relatedCitations: z.array(z.string()).nullable().optional(), supersessionActions: z.record(z.string(), z.unknown()).nullable().optional(), subtitle: z.string().nullable().optional(), subtitleName: z.string().nullable().optional(), publisherKey: z.string().nullable().optional(), versionId: z.string().nullable().optional(), referencedShortTitles: z.array(z.string()).nullable().optional(), subjectNumber: z.string().nullable().optional(), audience: z.string().nullable().optional(), sourceCharStart: z.number().int().nullable().optional(), sourceCharEnd: z.number().int().nullable().optional(), matchSegment: z.enum(["rule_text", "source_credit", "note"]).nullable().optional(), matchNoteYear: z.number().int().nullable().optional(), alternateCitations: z.array(z.string()).nullable().optional(), expirationDate: z.string().nullable().optional(), expirationDateRaw: z.string().nullable().optional(), committeeNote: z.string().nullable().optional(), sourcePageStart: z.number().int().nullable().optional(), sourcePageEnd: z.number().int().nullable().optional(), displayLabel: z.string().nullable().optional(), publicationDate: z.string().nullable().optional(), publicationDateRaw: z.string().nullable().optional(), publicLawCites: z.array(z.record(z.string(), z.unknown())).nullable().optional(), topLevelTitle: z.string().nullable().optional(), externalUrl: z.string().nullable().optional(), sourceUrl: z.string().nullable().optional(), sourceUrlNote: z.string().nullable().optional()}); export const resolveContainerChild = z.object({actId: z.string(), citation: z.string().nullable().optional(), status: z.string().nullable().optional()}); export const resolveContainerInfo = z.object({kind: z.string(), label: z.string(), childCount: z.number().int(), children: z.array(resolveContainerChild).optional(), truncated: z.boolean().optional()}); export const resolveRepairAlternative = z.object({actId: z.string(), citation: z.string().nullable().optional()}); export const resolveRepairInfo = z.object({kind: z.string(), cited: z.string(), interpretedAs: z.string(), alternatives: z.array(resolveRepairAlternative).optional()}); export const resolveRegisterReference = z.object({citation: z.string(), state: z.string(), kind: z.enum(["page", "range", "issue", "filing"]), ruleCount: z.number().int(), rules: z.array(z.string()).optional(), registerItemHeld: z.boolean().optional()}); export const sectionIdentifierResolution = z.object({input: z.string(), actId: z.string(), via: z.enum(["normalized_id", "citation"]), subsection: z.string().nullable().optional(), matchLevel: z.enum(["container", "multiple", "repaired", "register_reference"]).nullable().optional(), container: resolveContainerInfo.nullable().optional(), citedSections: z.array(z.string()).nullable().optional(), repair: resolveRepairInfo.nullable().optional(), registerReference: resolveRegisterReference.nullable().optional()}); export const statuteNeighborsResponse = z.object({section: statuteResult, previous: z.array(statuteResult).optional(), next: z.array(statuteResult).optional(), container: z.string().nullable().optional(), truncated: z.boolean().optional(), note: z.string().nullable().optional(), resolvedFrom: sectionIdentifierResolution.nullable().optional(), processingTimeMs: z.number().optional(), creditsConsumed: z.number().optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Get the sections around this one * * GET /api/v1/us/statutes/section/{act_id}/related * * Also accepts auth: ApiKeyHeader */ export const getApiApiV1UsStatutesSectionActIdRelated = async (args: GetApiApiV1UsStatutesSectionActIdRelatedArgs, options?: GetApiApiV1UsStatutesSectionActIdRelatedOptions) => { const {baseUrl = "https://api.vaquill.ai", fetch: fetchFn = fetch, ApiKeyAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args.limit != null) query.append("limit", String(args.limit)) if (args['Idempotency-Key'] != null) headers.set("Idempotency-Key", String(args['Idempotency-Key'])) if (ApiKeyAuth !== undefined) headers.set('authorization', `Bearer ${ApiKeyAuth}`) const url = `${baseUrl.replace(/\/+$/, '')}/api/v1/us/statutes/section/${encodeURIComponent(String(args.act_id))}/related${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(statuteNeighborsResponse, await res.json()) };