UNPKG

@us-legal-tools/ecfr-sdk

Version:

TypeScript SDK and MCP server for the eCFR (Electronic Code of Federal Regulations) API

10 lines 52.1 kB
{ "version": 3, "sources": ["../src/mcp/http-client.ts", "../src/mcp/handlers.ts", "../src/mcp/http-schemas/getApiSearchV1ResultsOrder.ts", "../src/mcp/http-schemas/getApiSearchV1ResultsPaginateBy.ts"], "sourcesContent": [ "/**\n * Generated by orval v7.10.0 🍺\n * Do not edit manually.\n * eCFR SDK\n * TypeScript SDK and Model Context Protocol server for the Electronic Code of Federal Regulations (eCFR) API\n * OpenAPI spec version: 1.0.0\n */\n\nimport { GetApiAdminV1CorrectionsJsonParams,\nGetApiSearchV1Results200,\nGetApiSearchV1ResultsParams,\nGetApiSearchV1CountParams,\nGetApiSearchV1SummaryParams,\nGetApiSearchV1CountsDailyParams,\nGetApiSearchV1CountsTitlesParams,\nGetApiSearchV1CountsHierarchyParams,\nGetApiSearchV1SuggestionsParams,\nGetApiVersionerV1AncestryDateTitleTitleJsonParams,\nGetApiVersionerV1FullDateTitleTitleXmlParams,\nGetApiVersionerV1VersionsTitleTitleJsonParams } from './http-schemas';\n\nexport type getApiAdminV1AgenciesJsonResponse200 = {\n data: void\n status: 200\n}\n \nexport type getApiAdminV1AgenciesJsonResponseComposite = getApiAdminV1AgenciesJsonResponse200;\n \nexport type getApiAdminV1AgenciesJsonResponse = getApiAdminV1AgenciesJsonResponseComposite & {\n headers: Headers;\n}\n\nexport const getGetApiAdminV1AgenciesJsonUrl = () => {\n\n\n \n\n return `https://www.ecfr.gov/api/admin/v1/agencies.json`\n}\n\nexport const getApiAdminV1AgenciesJson = async ( options?: RequestInit): Promise<getApiAdminV1AgenciesJsonResponse> => {\n \n const res = await fetch(getGetApiAdminV1AgenciesJsonUrl(),\n { \n ...options,\n method: 'GET'\n \n \n }\n)\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: getApiAdminV1AgenciesJsonResponse['data'] = body ? JSON.parse(body) : {}\n\n return { data, status: res.status, headers: res.headers } as getApiAdminV1AgenciesJsonResponse\n}\n\n\n\nexport type getApiAdminV1CorrectionsJsonResponse200 = {\n data: void\n status: 200\n}\n\nexport type getApiAdminV1CorrectionsJsonResponse400 = {\n data: void\n status: 400\n}\n \nexport type getApiAdminV1CorrectionsJsonResponseComposite = getApiAdminV1CorrectionsJsonResponse200 | getApiAdminV1CorrectionsJsonResponse400;\n \nexport type getApiAdminV1CorrectionsJsonResponse = getApiAdminV1CorrectionsJsonResponseComposite & {\n headers: Headers;\n}\n\nexport const getGetApiAdminV1CorrectionsJsonUrl = (params?: GetApiAdminV1CorrectionsJsonParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `https://www.ecfr.gov/api/admin/v1/corrections.json?${stringifiedParams}` : `https://www.ecfr.gov/api/admin/v1/corrections.json`\n}\n\nexport const getApiAdminV1CorrectionsJson = async (params?: GetApiAdminV1CorrectionsJsonParams, options?: RequestInit): Promise<getApiAdminV1CorrectionsJsonResponse> => {\n \n const res = await fetch(getGetApiAdminV1CorrectionsJsonUrl(params),\n { \n ...options,\n method: 'GET'\n \n \n }\n)\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: getApiAdminV1CorrectionsJsonResponse['data'] = body ? JSON.parse(body) : {}\n\n return { data, status: res.status, headers: res.headers } as getApiAdminV1CorrectionsJsonResponse\n}\n\n\n\nexport type getApiAdminV1CorrectionsTitleTitleJsonResponse200 = {\n data: void\n status: 200\n}\n\nexport type getApiAdminV1CorrectionsTitleTitleJsonResponse404 = {\n data: void\n status: 404\n}\n \nexport type getApiAdminV1CorrectionsTitleTitleJsonResponseComposite = getApiAdminV1CorrectionsTitleTitleJsonResponse200 | getApiAdminV1CorrectionsTitleTitleJsonResponse404;\n \nexport type getApiAdminV1CorrectionsTitleTitleJsonResponse = getApiAdminV1CorrectionsTitleTitleJsonResponseComposite & {\n headers: Headers;\n}\n\nexport const getGetApiAdminV1CorrectionsTitleTitleJsonUrl = (title: string,) => {\n\n\n \n\n return `https://www.ecfr.gov/api/admin/v1/corrections/title/${title}.json`\n}\n\nexport const getApiAdminV1CorrectionsTitleTitleJson = async (title: string, options?: RequestInit): Promise<getApiAdminV1CorrectionsTitleTitleJsonResponse> => {\n \n const res = await fetch(getGetApiAdminV1CorrectionsTitleTitleJsonUrl(title),\n { \n ...options,\n method: 'GET'\n \n \n }\n)\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: getApiAdminV1CorrectionsTitleTitleJsonResponse['data'] = body ? JSON.parse(body) : {}\n\n return { data, status: res.status, headers: res.headers } as getApiAdminV1CorrectionsTitleTitleJsonResponse\n}\n\n\n\nexport type getApiSearchV1ResultsResponse200 = {\n data: GetApiSearchV1Results200\n status: 200\n}\n\nexport type getApiSearchV1ResultsResponse405 = {\n data: void\n status: 405\n}\n \nexport type getApiSearchV1ResultsResponseComposite = getApiSearchV1ResultsResponse200 | getApiSearchV1ResultsResponse405;\n \nexport type getApiSearchV1ResultsResponse = getApiSearchV1ResultsResponseComposite & {\n headers: Headers;\n}\n\nexport const getGetApiSearchV1ResultsUrl = (params?: GetApiSearchV1ResultsParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n const explodeParameters = [\"agency_slugs[]\"];\n\n if (value instanceof Array && explodeParameters.includes(key)) {\n value.forEach((v) => normalizedParams.append(key, v === null ? 'null' : v.toString()));\n return;\n }\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `https://www.ecfr.gov/api/search/v1/results?${stringifiedParams}` : `https://www.ecfr.gov/api/search/v1/results`\n}\n\nexport const getApiSearchV1Results = async (params?: GetApiSearchV1ResultsParams, options?: RequestInit): Promise<getApiSearchV1ResultsResponse> => {\n \n const res = await fetch(getGetApiSearchV1ResultsUrl(params),\n { \n ...options,\n method: 'GET'\n \n \n }\n)\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: getApiSearchV1ResultsResponse['data'] = body ? JSON.parse(body) : {}\n\n return { data, status: res.status, headers: res.headers } as getApiSearchV1ResultsResponse\n}\n\n\n\nexport type getApiSearchV1CountResponse200 = {\n data: void\n status: 200\n}\n\nexport type getApiSearchV1CountResponse405 = {\n data: void\n status: 405\n}\n \nexport type getApiSearchV1CountResponseComposite = getApiSearchV1CountResponse200 | getApiSearchV1CountResponse405;\n \nexport type getApiSearchV1CountResponse = getApiSearchV1CountResponseComposite & {\n headers: Headers;\n}\n\nexport const getGetApiSearchV1CountUrl = (params?: GetApiSearchV1CountParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n const explodeParameters = [\"agency_slugs[]\"];\n\n if (value instanceof Array && explodeParameters.includes(key)) {\n value.forEach((v) => normalizedParams.append(key, v === null ? 'null' : v.toString()));\n return;\n }\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `https://www.ecfr.gov/api/search/v1/count?${stringifiedParams}` : `https://www.ecfr.gov/api/search/v1/count`\n}\n\nexport const getApiSearchV1Count = async (params?: GetApiSearchV1CountParams, options?: RequestInit): Promise<getApiSearchV1CountResponse> => {\n \n const res = await fetch(getGetApiSearchV1CountUrl(params),\n { \n ...options,\n method: 'GET'\n \n \n }\n)\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: getApiSearchV1CountResponse['data'] = body ? JSON.parse(body) : {}\n\n return { data, status: res.status, headers: res.headers } as getApiSearchV1CountResponse\n}\n\n\n\nexport type getApiSearchV1SummaryResponse200 = {\n data: void\n status: 200\n}\n\nexport type getApiSearchV1SummaryResponse405 = {\n data: void\n status: 405\n}\n \nexport type getApiSearchV1SummaryResponseComposite = getApiSearchV1SummaryResponse200 | getApiSearchV1SummaryResponse405;\n \nexport type getApiSearchV1SummaryResponse = getApiSearchV1SummaryResponseComposite & {\n headers: Headers;\n}\n\nexport const getGetApiSearchV1SummaryUrl = (params?: GetApiSearchV1SummaryParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n const explodeParameters = [\"agency_slugs[]\"];\n\n if (value instanceof Array && explodeParameters.includes(key)) {\n value.forEach((v) => normalizedParams.append(key, v === null ? 'null' : v.toString()));\n return;\n }\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `https://www.ecfr.gov/api/search/v1/summary?${stringifiedParams}` : `https://www.ecfr.gov/api/search/v1/summary`\n}\n\nexport const getApiSearchV1Summary = async (params?: GetApiSearchV1SummaryParams, options?: RequestInit): Promise<getApiSearchV1SummaryResponse> => {\n \n const res = await fetch(getGetApiSearchV1SummaryUrl(params),\n { \n ...options,\n method: 'GET'\n \n \n }\n)\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: getApiSearchV1SummaryResponse['data'] = body ? JSON.parse(body) : {}\n\n return { data, status: res.status, headers: res.headers } as getApiSearchV1SummaryResponse\n}\n\n\n\nexport type getApiSearchV1CountsDailyResponse200 = {\n data: void\n status: 200\n}\n\nexport type getApiSearchV1CountsDailyResponse405 = {\n data: void\n status: 405\n}\n \nexport type getApiSearchV1CountsDailyResponseComposite = getApiSearchV1CountsDailyResponse200 | getApiSearchV1CountsDailyResponse405;\n \nexport type getApiSearchV1CountsDailyResponse = getApiSearchV1CountsDailyResponseComposite & {\n headers: Headers;\n}\n\nexport const getGetApiSearchV1CountsDailyUrl = (params?: GetApiSearchV1CountsDailyParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n const explodeParameters = [\"agency_slugs[]\"];\n\n if (value instanceof Array && explodeParameters.includes(key)) {\n value.forEach((v) => normalizedParams.append(key, v === null ? 'null' : v.toString()));\n return;\n }\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `https://www.ecfr.gov/api/search/v1/counts/daily?${stringifiedParams}` : `https://www.ecfr.gov/api/search/v1/counts/daily`\n}\n\nexport const getApiSearchV1CountsDaily = async (params?: GetApiSearchV1CountsDailyParams, options?: RequestInit): Promise<getApiSearchV1CountsDailyResponse> => {\n \n const res = await fetch(getGetApiSearchV1CountsDailyUrl(params),\n { \n ...options,\n method: 'GET'\n \n \n }\n)\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: getApiSearchV1CountsDailyResponse['data'] = body ? JSON.parse(body) : {}\n\n return { data, status: res.status, headers: res.headers } as getApiSearchV1CountsDailyResponse\n}\n\n\n\nexport type getApiSearchV1CountsTitlesResponse200 = {\n data: void\n status: 200\n}\n\nexport type getApiSearchV1CountsTitlesResponse405 = {\n data: void\n status: 405\n}\n \nexport type getApiSearchV1CountsTitlesResponseComposite = getApiSearchV1CountsTitlesResponse200 | getApiSearchV1CountsTitlesResponse405;\n \nexport type getApiSearchV1CountsTitlesResponse = getApiSearchV1CountsTitlesResponseComposite & {\n headers: Headers;\n}\n\nexport const getGetApiSearchV1CountsTitlesUrl = (params?: GetApiSearchV1CountsTitlesParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n const explodeParameters = [\"agency_slugs[]\"];\n\n if (value instanceof Array && explodeParameters.includes(key)) {\n value.forEach((v) => normalizedParams.append(key, v === null ? 'null' : v.toString()));\n return;\n }\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `https://www.ecfr.gov/api/search/v1/counts/titles?${stringifiedParams}` : `https://www.ecfr.gov/api/search/v1/counts/titles`\n}\n\nexport const getApiSearchV1CountsTitles = async (params?: GetApiSearchV1CountsTitlesParams, options?: RequestInit): Promise<getApiSearchV1CountsTitlesResponse> => {\n \n const res = await fetch(getGetApiSearchV1CountsTitlesUrl(params),\n { \n ...options,\n method: 'GET'\n \n \n }\n)\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: getApiSearchV1CountsTitlesResponse['data'] = body ? JSON.parse(body) : {}\n\n return { data, status: res.status, headers: res.headers } as getApiSearchV1CountsTitlesResponse\n}\n\n\n\nexport type getApiSearchV1CountsHierarchyResponse200 = {\n data: void\n status: 200\n}\n\nexport type getApiSearchV1CountsHierarchyResponse405 = {\n data: void\n status: 405\n}\n \nexport type getApiSearchV1CountsHierarchyResponseComposite = getApiSearchV1CountsHierarchyResponse200 | getApiSearchV1CountsHierarchyResponse405;\n \nexport type getApiSearchV1CountsHierarchyResponse = getApiSearchV1CountsHierarchyResponseComposite & {\n headers: Headers;\n}\n\nexport const getGetApiSearchV1CountsHierarchyUrl = (params?: GetApiSearchV1CountsHierarchyParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n const explodeParameters = [\"agency_slugs[]\"];\n\n if (value instanceof Array && explodeParameters.includes(key)) {\n value.forEach((v) => normalizedParams.append(key, v === null ? 'null' : v.toString()));\n return;\n }\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `https://www.ecfr.gov/api/search/v1/counts/hierarchy?${stringifiedParams}` : `https://www.ecfr.gov/api/search/v1/counts/hierarchy`\n}\n\nexport const getApiSearchV1CountsHierarchy = async (params?: GetApiSearchV1CountsHierarchyParams, options?: RequestInit): Promise<getApiSearchV1CountsHierarchyResponse> => {\n \n const res = await fetch(getGetApiSearchV1CountsHierarchyUrl(params),\n { \n ...options,\n method: 'GET'\n \n \n }\n)\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: getApiSearchV1CountsHierarchyResponse['data'] = body ? JSON.parse(body) : {}\n\n return { data, status: res.status, headers: res.headers } as getApiSearchV1CountsHierarchyResponse\n}\n\n\n\nexport type getApiSearchV1SuggestionsResponse200 = {\n data: void\n status: 200\n}\n\nexport type getApiSearchV1SuggestionsResponse405 = {\n data: void\n status: 405\n}\n \nexport type getApiSearchV1SuggestionsResponseComposite = getApiSearchV1SuggestionsResponse200 | getApiSearchV1SuggestionsResponse405;\n \nexport type getApiSearchV1SuggestionsResponse = getApiSearchV1SuggestionsResponseComposite & {\n headers: Headers;\n}\n\nexport const getGetApiSearchV1SuggestionsUrl = (params?: GetApiSearchV1SuggestionsParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n const explodeParameters = [\"agency_slugs[]\"];\n\n if (value instanceof Array && explodeParameters.includes(key)) {\n value.forEach((v) => normalizedParams.append(key, v === null ? 'null' : v.toString()));\n return;\n }\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `https://www.ecfr.gov/api/search/v1/suggestions?${stringifiedParams}` : `https://www.ecfr.gov/api/search/v1/suggestions`\n}\n\nexport const getApiSearchV1Suggestions = async (params?: GetApiSearchV1SuggestionsParams, options?: RequestInit): Promise<getApiSearchV1SuggestionsResponse> => {\n \n const res = await fetch(getGetApiSearchV1SuggestionsUrl(params),\n { \n ...options,\n method: 'GET'\n \n \n }\n)\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: getApiSearchV1SuggestionsResponse['data'] = body ? JSON.parse(body) : {}\n\n return { data, status: res.status, headers: res.headers } as getApiSearchV1SuggestionsResponse\n}\n\n\n\nexport type getApiVersionerV1AncestryDateTitleTitleJsonResponse200 = {\n data: void\n status: 200\n}\n\nexport type getApiVersionerV1AncestryDateTitleTitleJsonResponse404 = {\n data: void\n status: 404\n}\n \nexport type getApiVersionerV1AncestryDateTitleTitleJsonResponseComposite = getApiVersionerV1AncestryDateTitleTitleJsonResponse200 | getApiVersionerV1AncestryDateTitleTitleJsonResponse404;\n \nexport type getApiVersionerV1AncestryDateTitleTitleJsonResponse = getApiVersionerV1AncestryDateTitleTitleJsonResponseComposite & {\n headers: Headers;\n}\n\nexport const getGetApiVersionerV1AncestryDateTitleTitleJsonUrl = (date: string,\n title: string,\n params?: GetApiVersionerV1AncestryDateTitleTitleJsonParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `https://www.ecfr.gov/api/versioner/v1/ancestry/${date}/title-${title}.json?${stringifiedParams}` : `https://www.ecfr.gov/api/versioner/v1/ancestry/${date}/title-${title}.json`\n}\n\nexport const getApiVersionerV1AncestryDateTitleTitleJson = async (date: string,\n title: string,\n params?: GetApiVersionerV1AncestryDateTitleTitleJsonParams, options?: RequestInit): Promise<getApiVersionerV1AncestryDateTitleTitleJsonResponse> => {\n \n const res = await fetch(getGetApiVersionerV1AncestryDateTitleTitleJsonUrl(date,title,params),\n { \n ...options,\n method: 'GET'\n \n \n }\n)\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: getApiVersionerV1AncestryDateTitleTitleJsonResponse['data'] = body ? JSON.parse(body) : {}\n\n return { data, status: res.status, headers: res.headers } as getApiVersionerV1AncestryDateTitleTitleJsonResponse\n}\n\n\n\nexport type getApiVersionerV1FullDateTitleTitleXmlResponse200 = {\n data: string\n status: 200\n}\n\nexport type getApiVersionerV1FullDateTitleTitleXmlResponse400 = {\n data: void\n status: 400\n}\n \nexport type getApiVersionerV1FullDateTitleTitleXmlResponseComposite = getApiVersionerV1FullDateTitleTitleXmlResponse200 | getApiVersionerV1FullDateTitleTitleXmlResponse400;\n \nexport type getApiVersionerV1FullDateTitleTitleXmlResponse = getApiVersionerV1FullDateTitleTitleXmlResponseComposite & {\n headers: Headers;\n}\n\nexport const getGetApiVersionerV1FullDateTitleTitleXmlUrl = (date: string,\n title: string,\n params?: GetApiVersionerV1FullDateTitleTitleXmlParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `https://www.ecfr.gov/api/versioner/v1/full/${date}/title-${title}.xml?${stringifiedParams}` : `https://www.ecfr.gov/api/versioner/v1/full/${date}/title-${title}.xml`\n}\n\nexport const getApiVersionerV1FullDateTitleTitleXml = async (date: string,\n title: string,\n params?: GetApiVersionerV1FullDateTitleTitleXmlParams, options?: RequestInit): Promise<getApiVersionerV1FullDateTitleTitleXmlResponse> => {\n \n const res = await fetch(getGetApiVersionerV1FullDateTitleTitleXmlUrl(date,title,params),\n { \n ...options,\n method: 'GET'\n \n \n }\n)\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: getApiVersionerV1FullDateTitleTitleXmlResponse['data'] = body ? JSON.parse(body) : {}\n\n return { data, status: res.status, headers: res.headers } as getApiVersionerV1FullDateTitleTitleXmlResponse\n}\n\n\n\nexport type getApiVersionerV1StructureDateTitleTitleJsonResponse200 = {\n data: void\n status: 200\n}\n\nexport type getApiVersionerV1StructureDateTitleTitleJsonResponse404 = {\n data: void\n status: 404\n}\n \nexport type getApiVersionerV1StructureDateTitleTitleJsonResponseComposite = getApiVersionerV1StructureDateTitleTitleJsonResponse200 | getApiVersionerV1StructureDateTitleTitleJsonResponse404;\n \nexport type getApiVersionerV1StructureDateTitleTitleJsonResponse = getApiVersionerV1StructureDateTitleTitleJsonResponseComposite & {\n headers: Headers;\n}\n\nexport const getGetApiVersionerV1StructureDateTitleTitleJsonUrl = (date: string,\n title: string,) => {\n\n\n \n\n return `https://www.ecfr.gov/api/versioner/v1/structure/${date}/title-${title}.json`\n}\n\nexport const getApiVersionerV1StructureDateTitleTitleJson = async (date: string,\n title: string, options?: RequestInit): Promise<getApiVersionerV1StructureDateTitleTitleJsonResponse> => {\n \n const res = await fetch(getGetApiVersionerV1StructureDateTitleTitleJsonUrl(date,title),\n { \n ...options,\n method: 'GET'\n \n \n }\n)\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: getApiVersionerV1StructureDateTitleTitleJsonResponse['data'] = body ? JSON.parse(body) : {}\n\n return { data, status: res.status, headers: res.headers } as getApiVersionerV1StructureDateTitleTitleJsonResponse\n}\n\n\n\nexport type getApiVersionerV1TitlesJsonResponse200 = {\n data: void\n status: 200\n}\n \nexport type getApiVersionerV1TitlesJsonResponseComposite = getApiVersionerV1TitlesJsonResponse200;\n \nexport type getApiVersionerV1TitlesJsonResponse = getApiVersionerV1TitlesJsonResponseComposite & {\n headers: Headers;\n}\n\nexport const getGetApiVersionerV1TitlesJsonUrl = () => {\n\n\n \n\n return `https://www.ecfr.gov/api/versioner/v1/titles.json`\n}\n\nexport const getApiVersionerV1TitlesJson = async ( options?: RequestInit): Promise<getApiVersionerV1TitlesJsonResponse> => {\n \n const res = await fetch(getGetApiVersionerV1TitlesJsonUrl(),\n { \n ...options,\n method: 'GET'\n \n \n }\n)\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: getApiVersionerV1TitlesJsonResponse['data'] = body ? JSON.parse(body) : {}\n\n return { data, status: res.status, headers: res.headers } as getApiVersionerV1TitlesJsonResponse\n}\n\n\n\nexport type getApiVersionerV1VersionsTitleTitleJsonResponse200 = {\n data: void\n status: 200\n}\n\nexport type getApiVersionerV1VersionsTitleTitleJsonResponse400 = {\n data: void\n status: 400\n}\n \nexport type getApiVersionerV1VersionsTitleTitleJsonResponseComposite = getApiVersionerV1VersionsTitleTitleJsonResponse200 | getApiVersionerV1VersionsTitleTitleJsonResponse400;\n \nexport type getApiVersionerV1VersionsTitleTitleJsonResponse = getApiVersionerV1VersionsTitleTitleJsonResponseComposite & {\n headers: Headers;\n}\n\nexport const getGetApiVersionerV1VersionsTitleTitleJsonUrl = (title: string,\n params?: GetApiVersionerV1VersionsTitleTitleJsonParams,) => {\n const normalizedParams = new URLSearchParams();\n\n Object.entries(params || {}).forEach(([key, value]) => {\n \n if (value !== undefined) {\n normalizedParams.append(key, value === null ? 'null' : value.toString())\n }\n });\n\n const stringifiedParams = normalizedParams.toString();\n\n return stringifiedParams.length > 0 ? `https://www.ecfr.gov/api/versioner/v1/versions/title-${title}.json?${stringifiedParams}` : `https://www.ecfr.gov/api/versioner/v1/versions/title-${title}.json`\n}\n\nexport const getApiVersionerV1VersionsTitleTitleJson = async (title: string,\n params?: GetApiVersionerV1VersionsTitleTitleJsonParams, options?: RequestInit): Promise<getApiVersionerV1VersionsTitleTitleJsonResponse> => {\n \n const res = await fetch(getGetApiVersionerV1VersionsTitleTitleJsonUrl(title,params),\n { \n ...options,\n method: 'GET'\n \n \n }\n)\n\n const body = [204, 205, 304].includes(res.status) ? null : await res.text()\n const data: getApiVersionerV1VersionsTitleTitleJsonResponse['data'] = body ? JSON.parse(body) : {}\n\n return { data, status: res.status, headers: res.headers } as getApiVersionerV1VersionsTitleTitleJsonResponse\n}\n\n\n", "/**\n * Generated by orval v7.10.0 🍺\n * Do not edit manually.\n * eCFR SDK\n * TypeScript SDK and Model Context Protocol server for the Electronic Code of Federal Regulations (eCFR) API\n * OpenAPI spec version: 1.0.0\n */\nimport {\n GetApiAdminV1CorrectionsJsonParams,\n GetApiSearchV1ResultsParams,\n GetApiSearchV1CountParams,\n GetApiSearchV1SummaryParams,\n GetApiSearchV1CountsDailyParams,\n GetApiSearchV1CountsTitlesParams,\n GetApiSearchV1CountsHierarchyParams,\n GetApiSearchV1SuggestionsParams,\n GetApiVersionerV1AncestryDateTitleTitleJsonParams,\n GetApiVersionerV1FullDateTitleTitleXmlParams,\n GetApiVersionerV1VersionsTitleTitleJsonParams\n} from './http-schemas';\n\nimport {\n getApiAdminV1AgenciesJson,\n getApiAdminV1CorrectionsJson,\n getApiAdminV1CorrectionsTitleTitleJson,\n getApiSearchV1Results,\n getApiSearchV1Count,\n getApiSearchV1Summary,\n getApiSearchV1CountsDaily,\n getApiSearchV1CountsTitles,\n getApiSearchV1CountsHierarchy,\n getApiSearchV1Suggestions,\n getApiVersionerV1AncestryDateTitleTitleJson,\n getApiVersionerV1FullDateTitleTitleXml,\n getApiVersionerV1StructureDateTitleTitleJson,\n getApiVersionerV1TitlesJson,\n getApiVersionerV1VersionsTitleTitleJson\n} from './http-client';\n \n/**\n * All top-level agencies in name order with children also in name order\n * @summary Agencies\n */\n\nexport const getApiAdminV1AgenciesJsonHandler = async () => {\n const res = await getApiAdminV1AgenciesJson();\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};\n\n/**\n * The Corrections service can be used to determine all corrections or can be filtered by title, effective date, or correction date.\n\n * @summary Corrections route returns all eCFR corrections.\n */\n\nexport type getApiAdminV1CorrectionsJsonArgs = {\n queryParams: GetApiAdminV1CorrectionsJsonParams;\n}\n\nexport const getApiAdminV1CorrectionsJsonHandler = async (args: getApiAdminV1CorrectionsJsonArgs) => {\n const res = await getApiAdminV1CorrectionsJson(args.queryParams);\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};\n\n/**\n * The Corrections service can be used to determine all corrections for the given title.\n * @summary Corrections title route returns all corrections for the supplied title.\n */\n\nexport type getApiAdminV1CorrectionsTitleTitleJsonArgs = {\n pathParams: {\n title: string\n };\n}\n\nexport const getApiAdminV1CorrectionsTitleTitleJsonHandler = async (args: getApiAdminV1CorrectionsTitleTitleJsonArgs) => {\n const res = await getApiAdminV1CorrectionsTitleTitleJson(args.pathParams.title);\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};\n\n/**\n * @summary Search results\n */\n\nexport type getApiSearchV1ResultsArgs = {\n queryParams: GetApiSearchV1ResultsParams;\n}\n\nexport const getApiSearchV1ResultsHandler = async (args: getApiSearchV1ResultsArgs) => {\n const res = await getApiSearchV1Results(args.queryParams);\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};\n\n/**\n * @summary Search result count\n */\n\nexport type getApiSearchV1CountArgs = {\n queryParams: GetApiSearchV1CountParams;\n}\n\nexport const getApiSearchV1CountHandler = async (args: getApiSearchV1CountArgs) => {\n const res = await getApiSearchV1Count(args.queryParams);\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};\n\n/**\n * @summary Search summary details\n */\n\nexport type getApiSearchV1SummaryArgs = {\n queryParams: GetApiSearchV1SummaryParams;\n}\n\nexport const getApiSearchV1SummaryHandler = async (args: getApiSearchV1SummaryArgs) => {\n const res = await getApiSearchV1Summary(args.queryParams);\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};\n\n/**\n * @summary Search result counts by date\n */\n\nexport type getApiSearchV1CountsDailyArgs = {\n queryParams: GetApiSearchV1CountsDailyParams;\n}\n\nexport const getApiSearchV1CountsDailyHandler = async (args: getApiSearchV1CountsDailyArgs) => {\n const res = await getApiSearchV1CountsDaily(args.queryParams);\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};\n\n/**\n * @summary Search result counts by title\n */\n\nexport type getApiSearchV1CountsTitlesArgs = {\n queryParams: GetApiSearchV1CountsTitlesParams;\n}\n\nexport const getApiSearchV1CountsTitlesHandler = async (args: getApiSearchV1CountsTitlesArgs) => {\n const res = await getApiSearchV1CountsTitles(args.queryParams);\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};\n\n/**\n * @summary Search result counts by hierarchy\n */\n\nexport type getApiSearchV1CountsHierarchyArgs = {\n queryParams: GetApiSearchV1CountsHierarchyParams;\n}\n\nexport const getApiSearchV1CountsHierarchyHandler = async (args: getApiSearchV1CountsHierarchyArgs) => {\n const res = await getApiSearchV1CountsHierarchy(args.queryParams);\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};\n\n/**\n * @summary Search suggestions\n */\n\nexport type getApiSearchV1SuggestionsArgs = {\n queryParams: GetApiSearchV1SuggestionsParams;\n}\n\nexport const getApiSearchV1SuggestionsHandler = async (args: getApiSearchV1SuggestionsArgs) => {\n const res = await getApiSearchV1Suggestions(args.queryParams);\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};\n\n/**\n * The Ancestry service can be used to determine the complete ancestry to a leaf node at a specific point in time.\n### Example\nThe complete hierarchy for **2 CFR 1532.137** is\n```\nTitle 2\n Subtitle B\n Chapter XV\n Part 1532\n Subpart A\n Section 1532.137\n```\nTo retrieve this complete hierarchy you can use the ancestry endpoint and provide a Title, Part and Section (you can provide additional layers of the hierarchy) to retrieve a full ancestry.\nSee sample json responses below.\n\n * @summary Ancestors route returns all ancestors (including self) from a given level through the top title node.\n */\n\nexport type getApiVersionerV1AncestryDateTitleTitleJsonArgs = {\n pathParams: {\n date: string,\n title: string\n };\n queryParams: GetApiVersionerV1AncestryDateTitleTitleJsonParams;\n}\n\nexport const getApiVersionerV1AncestryDateTitleTitleJsonHandler = async (args: getApiVersionerV1AncestryDateTitleTitleJsonArgs) => {\n const res = await getApiVersionerV1AncestryDateTitleTitleJson(args.pathParams.date, args.pathParams.title, args.queryParams);\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};\n\n/**\n * The title source route can be used to retrieve the source xml for a complete title or subset. The subset of xml is determined by the lowest leaf node given. For example, if you request Title 1, Chapter I, Part 1, you'll receive the XML only for Part 1 and its children.\nIf you request a section you'll receive the section XML inside its parent Part as well as relevant non-section sibling nodes (Auth, Source, etc).\nThe largest title source xml files can be dozens of megabytes.\n\n[GPO eCFR XML User guide](https://github.com/usgpo/bulk-data/blob/master/ECFR-XML-User-Guide.md)\n\n * @summary Source XML for a title or subset of a title. Requests can be for entire titles or part level and below. Downloadable XML document is returned for title requests. Processed XML is returned if part, subpart, section, or appendix is requested.\n */\n\nexport type getApiVersionerV1FullDateTitleTitleXmlArgs = {\n pathParams: {\n date: string,\n title: string\n };\n queryParams: GetApiVersionerV1FullDateTitleTitleXmlParams;\n}\n\nexport const getApiVersionerV1FullDateTitleTitleXmlHandler = async (args: getApiVersionerV1FullDateTitleTitleXmlArgs) => {\n const res = await getApiVersionerV1FullDateTitleTitleXml(args.pathParams.date, args.pathParams.title, args.queryParams);\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};\n\n/**\n * The structure JSON endpoint returns the complete structure of a title back as json. This format does not include the content of the title but does include all structure and content nodes as well as their meta data including their type, label, description, identifier and children.\n * @summary Structure JSON for a title\n */\n\nexport type getApiVersionerV1StructureDateTitleTitleJsonArgs = {\n pathParams: {\n date: string,\n title: string\n };\n}\n\nexport const getApiVersionerV1StructureDateTitleTitleJsonHandler = async (args: getApiVersionerV1StructureDateTitleTitleJsonArgs) => {\n const res = await getApiVersionerV1StructureDateTitleTitleJson(args.pathParams.date, args.pathParams.title);\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};\n\n/**\n * The Title service can be used to determine the status of each individual title and of the overall status of title imports and reprocessings. It returns an array of all titles containing a hash for each with the name of the title, the latest amended date, latest issue date, up-to-date date, reserved status, and if applicable, processing in progress status. The meta data returned indicates the latest issue date and whether titles are currently being reprocessed.\n * @summary Summary information about each title\n */\n\nexport const getApiVersionerV1TitlesJsonHandler = async () => {\n const res = await getApiVersionerV1TitlesJson();\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};\n\n/**\n * Returns the content versions meeting the specified criteria. Each content object includes its identifier, parent hierarchy, last amendment date and issue date it was last updated. Queries return content versions `on` an issue date, or before or on a specific issue date `lte` or on or after `gte` a specific issue date. The `gte` and `lte` parameters may be combined. Use of the `on` parameter precludes use of `gte` or `lte`. In the response, the `date` field is identical to `amendment_date` and is deprecated.\n<br>\nA response of `400 Bad Request` indicates that your request could not be processed. If possible the response will include a message indicating the problem.\n<br>\nA response of `503 Service Unavailable` indicates that the title is currently unavailable, typlically because it is currently being processed. The value of the `Retry-After` header suggests a number of seconds to wait before retrying the request.\n\n * @summary Returns an array of all sections and appendices inside a title.\n */\n\nexport type getApiVersionerV1VersionsTitleTitleJsonArgs = {\n pathParams: {\n title: string\n };\n queryParams: GetApiVersionerV1VersionsTitleTitleJsonParams;\n}\n\nexport const getApiVersionerV1VersionsTitleTitleJsonHandler = async (args: getApiVersionerV1VersionsTitleTitleJsonArgs) => {\n const res = await getApiVersionerV1VersionsTitleTitleJson(args.pathParams.title, args.queryParams);\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(res),\n },\n ],\n };\n};\n", "/**\n * Generated by orval v7.10.0 🍺\n * Do not edit manually.\n * eCFR SDK\n * TypeScript SDK and Model Context Protocol server for the Electronic Code of Federal Regulations (eCFR) API\n * OpenAPI spec version: 1.0.0\n */\n\nexport type GetApiSearchV1ResultsOrder = typeof GetApiSearchV1ResultsOrder[keyof typeof GetApiSearchV1ResultsOrder];\n\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetApiSearchV1ResultsOrder = {\n citations: 'citations',\n relevance: 'relevance',\n hierarchy: 'hierarchy',\n newest_first: 'newest_first',\n oldest_first: 'oldest_first',\n suggestions: 'suggestions',\n} as const;\n", "/**\n * Generated by orval v7.10.0 🍺\n * Do not edit manually.\n * eCFR SDK\n * TypeScript SDK and Model Context Protocol server for the Electronic Code of Federal Regulations (eCFR) API\n * OpenAPI spec version: 1.0.0\n */\n\nexport type GetApiSearchV1ResultsPaginateBy = typeof GetApiSearchV1ResultsPaginateBy[keyof typeof GetApiSearchV1ResultsPaginateBy];\n\n\n// eslint-disable-next-line @typescript-eslint/no-redeclare\nexport const GetApiSearchV1ResultsPaginateBy = {\n date: 'date',\n results: 'results',\n} as const;\n" ], "mappings": "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