ws-dottie
Version:
Your friendly TypeScript companion for Washington State transportation APIs - WSDOT and WSF data with smart caching and React Query integration
1 lines • 28 kB
Source Map (JSON)
{"version":3,"sources":["../src/apis/index.ts","../src/apis/wsdot-border-crossings/api.ts","../src/apis/wsdot-bridge-clearances/api.ts","../src/apis/wsdot-commercial-vehicle-restrictions/api.ts","../src/apis/wsdot-highway-alerts/api.ts","../src/apis/wsdot-highway-cameras/api.ts","../src/apis/wsdot-mountain-pass-conditions/api.ts","../src/apis/wsdot-toll-rates/api.ts","../src/apis/wsdot-traffic-flow/api.ts","../src/apis/wsdot-travel-times/api.ts","../src/apis/wsdot-weather-information/api.ts","../src/apis/wsdot-weather-readings/api.ts","../src/apis/wsdot-weather-stations/api.ts","../src/apis/wsf-fares/api.ts","../src/apis/wsf-schedule/api.ts","../src/apis/wsf-terminals/api.ts","../src/apis/wsf-vessels/api.ts","../src/apis/endpoints.ts"],"names":["init_zod","init_apiMeta","init_borderCrossingData_endpoints","wsdotBorderCrossings","wsdotBorderCrossingsApiMeta","borderCrossingDataGroup","init_bridgeClearances_endpoints","wsdotBridgeClearances","wsdotBridgeClearancesApiMeta","bridgeClearancesGroup","init_cvRestrictionData_endpoints","init_cvRestrictionDataWithId_endpoints","wsdotCommercialVehicleRestrictions","wsdotCommercialVehicleRestrictionsApiMeta","cvRestrictionDataGroup","cvRestrictionDataWithIdGroup","init_alertAreas_endpoints","init_eventCategories_endpoints","init_highwayAlerts_endpoints","wsdotHighwayAlerts","wsdotHighwayAlertsApiMeta","highwayAlertsGroup","alertAreasGroup","eventCategoriesGroup","init_cameras_endpoints","wsdotHighwayCameras","wsdotHighwayCamerasApiMeta","camerasGroup","init_passConditions_endpoints","wsdotMountainPassConditions","wsdotMountainPassConditionsApiMeta","passConditionsGroup","init_tollRates_endpoints","init_tollTripInfo_endpoints","init_tollTripRates_endpoints","init_tollTripVersion_endpoints","wsdotTollRates","wsdotTollRatesApiMeta","tollRatesGroup","tollTripInfoGroup","tollTripRatesGroup","tollTripVersionGroup","init_flowData_endpoints","wsdotTrafficFlow","wsdotTrafficFlowApiMeta","flowDataGroup","init_travelTimeRoutes_endpoints","wsdotTravelTimes","wsdotTravelTimesApiMeta","travelTimeRoutesGroup","init_weatherInfo_endpoints","wsdotWeatherInformation","wsdotWeatherInformationApiMeta","weatherInfoGroup","init_subSurfaceMeasurements_endpoints","init_surfaceMeasurements_endpoints","init_weatherReadings_endpoints","wsdotWeatherReadings","wsdotWeatherReadingsApiMeta","weatherReadingsGroup","surfaceMeasurementsGroup","subSurfaceMeasurementsGroup","init_weatherStations_endpoints","wsdotWeatherStations","wsdotWeatherStationsApiMeta","weatherStationsGroup","init_cacheFlushDate_endpoints","init_fareLineItems_endpoints","init_fareTotals_endpoints","init_terminalCombo_endpoints","init_terminals_endpoints","init_validDateRange_endpoints","wsfFares","wsfFaresApiMeta","cacheFlushDateFaresGroup","validDateRangeGroup","terminalsGroup","terminalComboGroup","fareLineItemsGroup","fareTotalsGroup","init_activeSeasons_endpoints","init_routeDetails_endpoints","init_routes_endpoints","init_sailings_endpoints","init_scheduleAlerts_endpoints","init_scheduledRoutes_endpoints","init_schedules_endpoints","init_scheduleToday_endpoints","init_serviceDisruptions_endpoints","init_terminalMates_endpoints","init_timeAdjustments_endpoints","wsfSchedule","wsfScheduleApiMeta","activeSeasonsGroup","sailingsGroup","cacheFlushDateScheduleGroup","routeDetailsGroup","routesGroup","serviceDisruptionsGroup","scheduleAlertsGroup","schedulesGroup","scheduledRoutesGroup","scheduleTodayGroup","scheduleValidDateRangeGroup","scheduleTerminalMatesGroup","scheduleTerminalsGroup","timeAdjustmentsGroup","init_terminalBasics_endpoints","init_terminalBulletins_endpoints","init_terminalLocations_endpoints","init_terminalSailingSpace_endpoints","init_terminalTransports_endpoints","init_terminalVerbose_endpoints","init_terminalWaitTimes_endpoints","wsfTerminals","wsfTerminalsApiMeta","cacheFlushDateTerminalsGroup","terminalBasicsGroup","terminalBulletinsGroup","terminalLocationsGroup","terminalSailingSpaceGroup","terminalTransportsGroup","terminalVerboseGroup","terminalWaitTimesGroup","init_vesselAccommodations_endpoints","init_vesselBasics_endpoints","init_vesselHistories_endpoints","init_vesselLocations_endpoints","init_vesselStats_endpoints","init_vesselVerbose_endpoints","wsfVessels","wsfVesselsApiMeta","cacheFlushDateVesselsGroup","vesselAccommodationsGroup","vesselBasicsGroup","vesselHistoriesGroup","vesselLocationsGroup","vesselStatsGroup","vesselVerboseGroup","apis","toEndpoint","api","group","endpoint","endpointsByApi","apiDefinition","endpointsFlat"],"mappings":"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","file":"chunk-PMJBKYAT.mjs","sourcesContent":["/**\n * @fileoverview APIs Registry Export\n *\n * This module provides the centralized APIs registry for consumers who need\n * to access API definitions programmatically.\n */\n\n// Import Zod OpenAPI initialization FIRST, before any schema creation\n// This ensures all schemas imported from API modules have .openapi() method\nimport \"@/shared/zod\";\n\n// Re-export all types from types module\nexport type * from \"./types\";\n\n// Import all API definitions\nimport { wsdotBorderCrossings } from \"./wsdot-border-crossings/api\";\nimport { wsdotBridgeClearances } from \"./wsdot-bridge-clearances/api\";\nimport { wsdotCommercialVehicleRestrictions } from \"./wsdot-commercial-vehicle-restrictions/api\";\nimport { wsdotHighwayAlerts } from \"./wsdot-highway-alerts/api\";\nimport { wsdotHighwayCameras } from \"./wsdot-highway-cameras/api\";\nimport { wsdotMountainPassConditions } from \"./wsdot-mountain-pass-conditions/api\";\nimport { wsdotTollRates } from \"./wsdot-toll-rates/api\";\nimport { wsdotTrafficFlow } from \"./wsdot-traffic-flow/api\";\nimport { wsdotTravelTimes } from \"./wsdot-travel-times/api\";\nimport { wsdotWeatherInformation } from \"./wsdot-weather-information/api\";\nimport { wsdotWeatherReadings } from \"./wsdot-weather-readings/api\";\nimport { wsdotWeatherStations } from \"./wsdot-weather-stations/api\";\nimport { wsfFares } from \"./wsf-fares/api\";\nimport { wsfSchedule } from \"./wsf-schedule/api\";\nimport { wsfTerminals } from \"./wsf-terminals/api\";\nimport { wsfVessels } from \"./wsf-vessels/api\";\n\n// Export each API individually (standard barrel export)\nexport { wsdotBorderCrossings };\nexport { wsdotBridgeClearances };\nexport { wsdotCommercialVehicleRestrictions };\nexport { wsdotHighwayAlerts };\nexport { wsdotHighwayCameras };\nexport { wsdotMountainPassConditions };\nexport { wsdotTollRates };\nexport { wsdotTrafficFlow };\nexport { wsdotTravelTimes };\nexport { wsdotWeatherInformation };\nexport { wsdotWeatherReadings };\nexport { wsdotWeatherStations };\nexport { wsfFares };\nexport { wsfSchedule };\nexport { wsfTerminals };\nexport { wsfVessels };\n\n/**\n * All APIs as a simple object for iteration and programmatic access\n *\n * This object provides access to all APIs for consumers that need to\n * iterate over them or access them programmatically.\n */\nexport const apis = {\n wsdotBorderCrossings,\n wsdotBridgeClearances,\n wsdotCommercialVehicleRestrictions,\n wsdotHighwayAlerts,\n wsdotHighwayCameras,\n wsdotMountainPassConditions,\n wsdotTollRates,\n wsdotTrafficFlow,\n wsdotTravelTimes,\n wsdotWeatherInformation,\n wsdotWeatherReadings,\n wsdotWeatherStations,\n wsfFares,\n wsfSchedule,\n wsfTerminals,\n wsfVessels,\n} as const;\n\n// Re-export endpoints registries\nexport { endpointsByApi, endpointsFlat } from \"./endpoints\";\n","import type { ApiDefinition } from \"@/apis/types\";\nimport { wsdotBorderCrossingsApiMeta } from \"./apiMeta\";\nimport { borderCrossingDataGroup } from \"./borderCrossingData/shared/borderCrossingData.endpoints\";\n\nexport const wsdotBorderCrossings: ApiDefinition = {\n api: wsdotBorderCrossingsApiMeta,\n endpointGroups: [borderCrossingDataGroup],\n};\n","import type { ApiDefinition } from \"@/apis/types\";\nimport { wsdotBridgeClearancesApiMeta } from \"./apiMeta\";\nimport { bridgeClearancesGroup } from \"./bridgeClearances/shared/bridgeClearances.endpoints\";\n\nexport const wsdotBridgeClearances: ApiDefinition = {\n api: wsdotBridgeClearancesApiMeta,\n endpointGroups: [bridgeClearancesGroup],\n};\n","import type { ApiDefinition } from \"@/apis/types\";\nimport { wsdotCommercialVehicleRestrictionsApiMeta } from \"./apiMeta\";\nimport { cvRestrictionDataGroup } from \"./cvRestrictionData/shared/cvRestrictionData.endpoints\";\nimport { cvRestrictionDataWithIdGroup } from \"./cvRestrictionDataWithId/shared/cvRestrictionDataWithId.endpoints\";\n\nexport const wsdotCommercialVehicleRestrictions: ApiDefinition = {\n api: wsdotCommercialVehicleRestrictionsApiMeta,\n endpointGroups: [cvRestrictionDataGroup, cvRestrictionDataWithIdGroup],\n};\n","import type { ApiDefinition } from \"@/apis/types\";\nimport { alertAreasGroup } from \"./alertAreas/shared/alertAreas.endpoints\";\nimport { wsdotHighwayAlertsApiMeta } from \"./apiMeta\";\nimport { eventCategoriesGroup } from \"./eventCategories/shared/eventCategories.endpoints\";\nimport { highwayAlertsGroup } from \"./highwayAlerts/shared/highwayAlerts.endpoints\";\n\nexport const wsdotHighwayAlerts: ApiDefinition = {\n api: wsdotHighwayAlertsApiMeta,\n endpointGroups: [highwayAlertsGroup, alertAreasGroup, eventCategoriesGroup],\n};\n","import type { ApiDefinition } from \"@/apis/types\";\nimport { wsdotHighwayCamerasApiMeta } from \"./apiMeta\";\nimport { camerasGroup } from \"./cameras/shared/cameras.endpoints\";\n\nexport const wsdotHighwayCameras: ApiDefinition = {\n api: wsdotHighwayCamerasApiMeta,\n endpointGroups: [camerasGroup],\n};\n","import type { ApiDefinition } from \"@/apis/types\";\nimport { wsdotMountainPassConditionsApiMeta } from \"./apiMeta\";\nimport { passConditionsGroup } from \"./passConditions/shared/passConditions.endpoints\";\n\nexport const wsdotMountainPassConditions: ApiDefinition = {\n api: wsdotMountainPassConditionsApiMeta,\n endpointGroups: [passConditionsGroup],\n};\n","import type { ApiDefinition } from \"@/apis/types\";\nimport { wsdotTollRatesApiMeta } from \"./apiMeta\";\nimport { tollRatesGroup } from \"./tollRates/shared/tollRates.endpoints\";\nimport { tollTripInfoGroup } from \"./tollTripInfo/shared/tollTripInfo.endpoints\";\nimport { tollTripRatesGroup } from \"./tollTripRates/shared/tollTripRates.endpoints\";\nimport { tollTripVersionGroup } from \"./tollTripVersion/shared/tollTripVersion.endpoints\";\n\nexport const wsdotTollRates: ApiDefinition = {\n api: wsdotTollRatesApiMeta,\n endpointGroups: [\n tollRatesGroup,\n tollTripInfoGroup,\n tollTripRatesGroup,\n tollTripVersionGroup,\n ],\n};\n","import type { ApiDefinition } from \"@/apis/types\";\nimport { wsdotTrafficFlowApiMeta } from \"./apiMeta\";\nimport { flowDataGroup } from \"./flowData/shared/flowData.endpoints\";\n\nexport const wsdotTrafficFlow: ApiDefinition = {\n api: wsdotTrafficFlowApiMeta,\n endpointGroups: [flowDataGroup],\n};\n","import type { ApiDefinition } from \"@/apis/types\";\nimport { wsdotTravelTimesApiMeta } from \"./apiMeta\";\nimport { travelTimeRoutesGroup } from \"./travelTimeRoutes/shared/travelTimeRoutes.endpoints\";\n\nexport const wsdotTravelTimes: ApiDefinition = {\n api: wsdotTravelTimesApiMeta,\n endpointGroups: [travelTimeRoutesGroup],\n};\n","import type { ApiDefinition } from \"@/apis/types\";\nimport { wsdotWeatherInformationApiMeta } from \"./apiMeta\";\nimport { weatherInfoGroup } from \"./weatherInfo/shared/weatherInfo.endpoints\";\n\nexport const wsdotWeatherInformation: ApiDefinition = {\n api: wsdotWeatherInformationApiMeta,\n endpointGroups: [weatherInfoGroup],\n};\n","import type { ApiDefinition } from \"@/apis/types\";\nimport { wsdotWeatherReadingsApiMeta } from \"./apiMeta\";\nimport { subSurfaceMeasurementsGroup } from \"./subSurfaceMeasurements/shared/subSurfaceMeasurements.endpoints\";\nimport { surfaceMeasurementsGroup } from \"./surfaceMeasurements/shared/surfaceMeasurements.endpoints\";\nimport { weatherReadingsGroup } from \"./weatherReadings/shared/weatherReadings.endpoints\";\n\nexport const wsdotWeatherReadings: ApiDefinition = {\n api: wsdotWeatherReadingsApiMeta,\n endpointGroups: [\n weatherReadingsGroup,\n surfaceMeasurementsGroup,\n subSurfaceMeasurementsGroup,\n ],\n};\n","import type { ApiDefinition } from \"@/apis/types\";\nimport { wsdotWeatherStationsApiMeta } from \"./apiMeta\";\nimport { weatherStationsGroup } from \"./weatherStations/shared/weatherStations.endpoints\";\n\nexport const wsdotWeatherStations: ApiDefinition = {\n api: wsdotWeatherStationsApiMeta,\n endpointGroups: [weatherStationsGroup],\n};\n","import type { ApiDefinition } from \"@/apis/types\";\nimport { wsfFaresApiMeta } from \"./apiMeta\";\nimport { cacheFlushDateFaresGroup } from \"./cacheFlushDate/shared/cacheFlushDate.endpoints\";\nimport { fareLineItemsGroup } from \"./fareLineItems/shared/fareLineItems.endpoints\";\nimport { fareTotalsGroup } from \"./fareTotals/shared/fareTotals.endpoints\";\nimport { terminalComboGroup } from \"./terminalCombo/shared/terminalCombo.endpoints\";\nimport { terminalsGroup } from \"./terminals/shared/terminals.endpoints\";\nimport { validDateRangeGroup } from \"./validDateRange/shared/validDateRange.endpoints\";\n\nexport const wsfFares: ApiDefinition = {\n api: wsfFaresApiMeta,\n endpointGroups: [\n cacheFlushDateFaresGroup,\n validDateRangeGroup,\n terminalsGroup,\n terminalComboGroup,\n fareLineItemsGroup,\n fareTotalsGroup,\n ],\n};\n","import type { ApiDefinition } from \"@/apis/types\";\nimport { activeSeasonsGroup } from \"./activeSeasons/shared/activeSeasons.endpoints\";\nimport { wsfScheduleApiMeta } from \"./apiMeta\";\nimport { cacheFlushDateScheduleGroup } from \"./cacheFlushDate/shared/cacheFlushDate.endpoints\";\nimport { routeDetailsGroup } from \"./routeDetails/shared/routeDetails.endpoints\";\nimport { routesGroup } from \"./routes/shared/routes.endpoints\";\nimport { sailingsGroup } from \"./sailings/shared/sailings.endpoints\";\nimport { scheduleAlertsGroup } from \"./scheduleAlerts/shared/scheduleAlerts.endpoints\";\nimport { scheduledRoutesGroup } from \"./scheduledRoutes/shared/scheduledRoutes.endpoints\";\nimport { schedulesGroup } from \"./schedules/shared/schedules.endpoints\";\nimport { scheduleTodayGroup } from \"./scheduleToday/shared/scheduleToday.endpoints\";\nimport { serviceDisruptionsGroup } from \"./serviceDisruptions/shared/serviceDisruptions.endpoints\";\nimport { scheduleTerminalMatesGroup } from \"./terminalMates/shared/terminalMates.endpoints\";\nimport { scheduleTerminalsGroup } from \"./terminals/shared/terminals.endpoints\";\nimport { timeAdjustmentsGroup } from \"./timeAdjustments/shared/timeAdjustments.endpoints\";\nimport { scheduleValidDateRangeGroup } from \"./validDateRange/shared/validDateRange.endpoints\";\n\nexport const wsfSchedule: ApiDefinition = {\n api: wsfScheduleApiMeta,\n endpointGroups: [\n activeSeasonsGroup,\n sailingsGroup,\n cacheFlushDateScheduleGroup,\n routeDetailsGroup,\n routesGroup,\n serviceDisruptionsGroup,\n scheduleAlertsGroup,\n schedulesGroup,\n scheduledRoutesGroup,\n scheduleTodayGroup,\n scheduleValidDateRangeGroup,\n scheduleTerminalMatesGroup,\n scheduleTerminalsGroup,\n timeAdjustmentsGroup,\n ],\n};\n","import type { ApiDefinition } from \"@/apis/types\";\nimport { wsfTerminalsApiMeta } from \"./apiMeta\";\nimport { cacheFlushDateTerminalsGroup } from \"./cacheFlushDate/shared/cacheFlushDate.endpoints\";\nimport { terminalBasicsGroup } from \"./terminalBasics/shared/terminalBasics.endpoints\";\nimport { terminalBulletinsGroup } from \"./terminalBulletins/shared/terminalBulletins.endpoints\";\nimport { terminalLocationsGroup } from \"./terminalLocations/shared/terminalLocations.endpoints\";\nimport { terminalSailingSpaceGroup } from \"./terminalSailingSpace/shared/terminalSailingSpace.endpoints\";\nimport { terminalTransportsGroup } from \"./terminalTransports/shared/terminalTransports.endpoints\";\nimport { terminalVerboseGroup } from \"./terminalVerbose/shared/terminalVerbose.endpoints\";\nimport { terminalWaitTimesGroup } from \"./terminalWaitTimes/shared/terminalWaitTimes.endpoints\";\n\nexport const wsfTerminals: ApiDefinition = {\n api: wsfTerminalsApiMeta,\n endpointGroups: [\n cacheFlushDateTerminalsGroup,\n terminalBasicsGroup,\n terminalBulletinsGroup,\n terminalLocationsGroup,\n terminalSailingSpaceGroup,\n terminalTransportsGroup,\n terminalVerboseGroup,\n terminalWaitTimesGroup,\n ],\n};\n","import type { ApiDefinition } from \"@/apis/types\";\nimport { wsfVesselsApiMeta } from \"./apiMeta\";\nimport { cacheFlushDateVesselsGroup } from \"./cacheFlushDate/shared/cacheFlushDate.endpoints\";\nimport { vesselAccommodationsGroup } from \"./vesselAccommodations/shared/vesselAccommodations.endpoints\";\nimport { vesselBasicsGroup } from \"./vesselBasics/shared/vesselBasics.endpoints\";\nimport { vesselHistoriesGroup } from \"./vesselHistories/shared/vesselHistories.endpoints\";\nimport { vesselLocationsGroup } from \"./vesselLocations/shared/vesselLocations.endpoints\";\nimport { vesselStatsGroup } from \"./vesselStats/shared/vesselStats.endpoints\";\nimport { vesselVerboseGroup } from \"./vesselVerbose/shared/vesselVerbose.endpoints\";\n\nexport const wsfVessels: ApiDefinition = {\n api: wsfVesselsApiMeta,\n endpointGroups: [\n cacheFlushDateVesselsGroup,\n vesselAccommodationsGroup,\n vesselBasicsGroup,\n vesselHistoriesGroup,\n vesselLocationsGroup,\n vesselStatsGroup,\n vesselVerboseGroup,\n ],\n};\n","/**\n * @fileoverview Endpoint Registry\n *\n * This module provides a centralized registry of all endpoints from the new\n * API structure. It automatically discovers all endpoints by iterating through\n * the API graph: apis -> endpointGroups -> endpoints.\n *\n * ## Exports\n *\n * **`endpointsByApi`** - Nested structure organized by API name, then endpoint group, then function name.\n * Useful for direct hierarchical access when you know the full path to an endpoint.\n *\n * ```typescript\n * const endpoint = endpointsByApi['wsf-vessels']['vesselBasics']['vesselBasics'];\n * ```\n *\n * **`endpointsFlat`** - Flat array of all endpoints from all APIs. Ideal for iteration,\n * searching, and filtering operations. This is the primary export used by most consumers\n * (CLI, E2E tests, documentation generation).\n *\n * ```typescript\n * const endpoint = endpointsFlat.find(ep => ep.functionName === 'vesselBasics');\n * ```\n */\n\n// Import Zod OpenAPI initialization FIRST, before any schema creation\n// This ensures all schemas imported from API modules have .openapi() method\nimport \"@/shared/zod\";\nimport type {\n ApiMeta,\n Endpoint,\n EndpointGroupMeta,\n EndpointMeta,\n EndpointParams,\n EndpointResponse,\n} from \"./types\";\n\n// Import all API definitions directly to avoid circular dependency with index.ts\nimport { wsdotBorderCrossings } from \"./wsdot-border-crossings/api\";\nimport { wsdotBridgeClearances } from \"./wsdot-bridge-clearances/api\";\nimport { wsdotCommercialVehicleRestrictions } from \"./wsdot-commercial-vehicle-restrictions/api\";\nimport { wsdotHighwayAlerts } from \"./wsdot-highway-alerts/api\";\nimport { wsdotHighwayCameras } from \"./wsdot-highway-cameras/api\";\nimport { wsdotMountainPassConditions } from \"./wsdot-mountain-pass-conditions/api\";\nimport { wsdotTollRates } from \"./wsdot-toll-rates/api\";\nimport { wsdotTrafficFlow } from \"./wsdot-traffic-flow/api\";\nimport { wsdotTravelTimes } from \"./wsdot-travel-times/api\";\nimport { wsdotWeatherInformation } from \"./wsdot-weather-information/api\";\nimport { wsdotWeatherReadings } from \"./wsdot-weather-readings/api\";\nimport { wsdotWeatherStations } from \"./wsdot-weather-stations/api\";\nimport { wsfFares } from \"./wsf-fares/api\";\nimport { wsfSchedule } from \"./wsf-schedule/api\";\nimport { wsfTerminals } from \"./wsf-terminals/api\";\nimport { wsfVessels } from \"./wsf-vessels/api\";\n\n// Build apis object locally to avoid circular dependency\nconst apis = {\n wsdotBorderCrossings,\n wsdotBridgeClearances,\n wsdotCommercialVehicleRestrictions,\n wsdotHighwayAlerts,\n wsdotHighwayCameras,\n wsdotMountainPassConditions,\n wsdotTollRates,\n wsdotTrafficFlow,\n wsdotTravelTimes,\n wsdotWeatherInformation,\n wsdotWeatherReadings,\n wsdotWeatherStations,\n wsfFares,\n wsfSchedule,\n wsfTerminals,\n wsfVessels,\n} as const;\n\n/**\n * Builds a complete endpoint descriptor from metadata objects\n *\n * Combines API, group, and endpoint metadata into a single descriptor\n * with computed properties like urlTemplate and id.\n *\n * @template I - The input parameters type\n * @template O - The output response type\n * @param api - API metadata containing base URL and name\n * @param group - Endpoint group metadata containing cache strategy\n * @param endpoint - Endpoint metadata containing path, schemas, and function name\n * @returns A complete Endpoint object with all metadata and computed properties\n */\nconst toEndpoint = <I, O>(\n api: ApiMeta,\n group: EndpointGroupMeta,\n endpoint: EndpointMeta<I, O>\n): Endpoint<I, O> => ({\n api,\n group,\n endpoint: endpoint.endpoint,\n functionName: endpoint.functionName,\n inputSchema: endpoint.inputSchema,\n outputSchema: endpoint.outputSchema,\n sampleParams: endpoint.sampleParams,\n endpointDescription: endpoint.endpointDescription,\n cacheStrategy: group.cacheStrategy,\n urlTemplate: `${api.baseUrl}${endpoint.endpoint}`,\n id: `${api.name}:${endpoint.functionName}`,\n});\n\n/**\n * All endpoints organized by API name, then endpoint group, then function name\n *\n * This nested structure provides organized access to endpoints by their\n * hierarchical structure: API -> Endpoint Group -> Function Name.\n * Useful for programmatic access when you know the API and group structure.\n */\nexport const endpointsByApi: Record<\n string,\n Record<string, Record<string, Endpoint<EndpointParams, EndpointResponse>>>\n> = Object.fromEntries(\n Object.values(apis).map((apiDefinition) => [\n apiDefinition.api.name,\n Object.fromEntries(\n apiDefinition.endpointGroups.map((group) => [\n group.name,\n Object.fromEntries(\n group.endpoints.map((endpoint) => [\n endpoint.functionName,\n toEndpoint(apiDefinition.api, group, endpoint),\n ])\n ),\n ])\n ),\n ])\n) as Record<\n string,\n Record<string, Record<string, Endpoint<EndpointParams, EndpointResponse>>>\n>;\n\n/**\n * All endpoints from all APIs as a flat array\n *\n * This array contains all endpoints from all APIs flattened into a single\n * array for easy iteration and processing by CLI and e2e tests.\n * Endpoints are automatically discovered by iterating through the API graph:\n * apis -> endpointGroups -> endpoints.\n */\nexport const endpointsFlat: Endpoint<EndpointParams, EndpointResponse>[] =\n Object.values(apis).flatMap((apiDefinition) =>\n apiDefinition.endpointGroups.flatMap((group) =>\n group.endpoints.map((endpoint) =>\n toEndpoint(apiDefinition.api, group, endpoint)\n )\n )\n ) satisfies Endpoint<EndpointParams, EndpointResponse>[];\n"]}