@btrc/contracts 0.0.2

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoExB;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,MAAM,IAAI,IAAI,MAAM,IAAI,EAAE,GACxF;KAAG,CAAC,IAAI,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM;CAAE,GAChD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAE1B,MAAM,WAAW,QAAQ,CACvB,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,CAAC,SAAS,CAAC,CAAC,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC,UAAU,GAAG,SAAS,EAC7D,CAAC,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU;IAErC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IACvB,sGAAsG;IACtG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB,qGAAqG;IACrG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnB,mGAAmG;IACnG,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrB,kGAAkG;IAClG,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,sEAAsE;IACtE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AASD,eAAO,MAAM,MAAM;aACjB,SAAS;iBACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACJ,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACR,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACL,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAER,aAAa;iBACX,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACJ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAET,OAAO;iBACL,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACJ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACH,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACN,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACP,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACV,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACP,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAEX,QAAQ;iBACN,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACJ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACP,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACN,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAClB,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACd,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACb,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAElB,MAAM;iBACJ,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACJ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACP,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACR,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACP,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACT,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAEX,QAAQ;iBACN,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACJ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACP,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACJ,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACd,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACJ,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACX,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACZ,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACL,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACP,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACjB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACX,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACT,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAEP,OAAO;iBACL,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACJ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACP,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACN,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACR,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACJ,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACV,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACR,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAEN,KAAK;iBACH,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACJ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACP,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACP,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACP,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAEZ,QAAQ;iBACN,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACJ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACP,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACP,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAEZ,OAAO;iBACL,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACH,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACR,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACP,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAEX,IAAI;iBACF,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACH,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACnB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAEb,QAAQ;iBACN,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACJ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACH,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACd,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAChB,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACf,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAEhB,SAAS;iBACP,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACJ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACH,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACd,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACf,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACd,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAC1B,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBACpB,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAC/B,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAC7B,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEvB,CAAC;AAEX,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC"}
package/dist/routes.js ADDED
@@ -0,0 +1,198 @@
1
+ import { z } from 'zod';
2
+ import { pageSchema, responseSchema } from './envelopes.js';
3
+ import { ComparisonQuerySchema, DatasetDownloadQuerySchema, DriverListQuerySchema, EventListQuerySchema, LapListQuerySchema, LeaderboardQuerySchema, PageQuerySchema, PublicListQuerySchema, SearchQuerySchema, SessionListQuerySchema, StandingsQuerySchema, } from './queries.js';
4
+ import { AnalysisMetricSchema, BulletinActionSchema, BulletinSchema, ChampionshipAdjustmentSchema, ChampionshipSchema, CircuitFeatureSchema, CircuitLayoutSchema, CircuitSchema, ClassificationSchema, CoverageSchema, DataQualitySummarySchema, DatasetSchema, DriverPenaltyBalanceSchema, DriverSchema, EligibilityDecisionSchema, EntrySchema, EntryStatusHistorySchema, EventPermitSchema, EventSchema, FlagSchema, GridEntrySchema, JudicialDecisionSchema, LapSchema, LicencePenaltyPointSchema, NoticeboardDocumentSchema, NoticeboardSnapshotSchema, OfficialAssignmentSchema, OfficialSchema, OperationalRuleSchema, PenaltySchema, ProgrammeSlotSchema, PublicationChangeSchema, PublicationClassificationRowSchema, PublicationGridRowSchema, PublicationReconciliationSchema, ResultStatusHistorySchema, RunningOrderSchema, SanctionSchema, SearchResultSchema, SeasonSchema, SectorTimeSchema, SessionPublicationSchema, SessionSchema, SourceDocumentSchema, SourcePageSchema, StandingSchema, TeamSchema, TimingPointSchema, VehicleSchema, } from './resources.js';
5
+ function def(route) {
6
+ return route;
7
+ }
8
+ const unknownResponse = responseSchema(z.unknown());
9
+ const unknownPage = pageSchema(z.unknown());
10
+ export const routes = {
11
+ discovery: {
12
+ root: def({ method: 'GET', path: '/', response: unknownResponse, paginated: false }),
13
+ coverage: def({ method: 'GET', path: '/coverage', response: responseSchema(CoverageSchema), paginated: false }),
14
+ stats: def({ method: 'GET', path: '/stats', response: unknownResponse, paginated: false }),
15
+ search: def({ method: 'GET', path: '/search', query: SearchQuerySchema, response: pageSchema(SearchResultSchema), paginated: false }),
16
+ },
17
+ championships: {
18
+ list: def({ method: 'GET', path: '/championships', response: pageSchema(ChampionshipSchema), paginated: false }),
19
+ get: def({ method: 'GET', path: '/championships/{championshipId}', response: responseSchema(ChampionshipSchema), paginated: false }),
20
+ seasons: def({ method: 'GET', path: '/championships/{championshipId}/seasons', response: pageSchema(SeasonSchema), paginated: false }),
21
+ },
22
+ seasons: {
23
+ list: def({ method: 'GET', path: '/seasons', response: pageSchema(SeasonSchema), paginated: false }),
24
+ get: def({ method: 'GET', path: '/seasons/{year}', response: responseSchema(SeasonSchema), paginated: false }),
25
+ events: def({ method: 'GET', path: '/seasons/{year}/events', query: EventListQuerySchema, response: pageSchema(EventSchema), paginated: true }),
26
+ drivers: def({ method: 'GET', path: '/seasons/{year}/drivers', query: PageQuerySchema, response: pageSchema(DriverSchema), paginated: true }),
27
+ statistics: def({ method: 'GET', path: '/seasons/{year}/statistics', response: unknownResponse, paginated: false }),
28
+ records: def({ method: 'GET', path: '/seasons/{year}/records', query: LeaderboardQuerySchema, response: unknownResponse, paginated: false }),
29
+ standings: def({ method: 'GET', path: '/seasons/{year}/standings', query: StandingsQuerySchema, response: pageSchema(StandingSchema), paginated: false }),
30
+ },
31
+ circuits: {
32
+ list: def({ method: 'GET', path: '/circuits', response: pageSchema(CircuitSchema), paginated: false }),
33
+ get: def({ method: 'GET', path: '/circuits/{circuitId}', response: responseSchema(CircuitSchema), paginated: false }),
34
+ layouts: def({ method: 'GET', path: '/circuits/{circuitId}/layouts', response: pageSchema(CircuitLayoutSchema), paginated: false }),
35
+ events: def({ method: 'GET', path: '/circuits/{circuitId}/events', query: EventListQuerySchema, response: pageSchema(EventSchema), paginated: true }),
36
+ layout: def({ method: 'GET', path: '/layouts/{layoutId}', response: responseSchema(CircuitLayoutSchema), paginated: false }),
37
+ layoutTimingPoints: def({ method: 'GET', path: '/layouts/{layoutId}/timing-points', response: pageSchema(TimingPointSchema), paginated: false }),
38
+ layoutFeatures: def({ method: 'GET', path: '/layouts/{layoutId}/features', response: pageSchema(CircuitFeatureSchema), paginated: false }),
39
+ layoutRecords: def({ method: 'GET', path: '/layouts/{layoutId}/records', response: unknownResponse, paginated: false }),
40
+ layoutStatistics: def({ method: 'GET', path: '/layouts/{layoutId}/statistics', response: unknownResponse, paginated: false }),
41
+ },
42
+ events: {
43
+ list: def({ method: 'GET', path: '/events', query: EventListQuerySchema, response: pageSchema(EventSchema), paginated: true }),
44
+ get: def({ method: 'GET', path: '/events/{eventId}', response: responseSchema(EventSchema), paginated: false }),
45
+ summary: def({ method: 'GET', path: '/events/{eventId}/summary', response: unknownResponse, paginated: false }),
46
+ sessions: def({ method: 'GET', path: '/events/{eventId}/sessions', query: SessionListQuerySchema, response: pageSchema(SessionSchema), paginated: true }),
47
+ entries: def({ method: 'GET', path: '/events/{eventId}/entries', response: pageSchema(EntrySchema), paginated: false }),
48
+ penalties: def({ method: 'GET', path: '/events/{eventId}/penalties', response: pageSchema(PenaltySchema), paginated: false }),
49
+ documents: def({ method: 'GET', path: '/events/{eventId}/documents', response: pageSchema(SourceDocumentSchema), paginated: false }),
50
+ },
51
+ sessions: {
52
+ list: def({ method: 'GET', path: '/sessions', query: SessionListQuerySchema, response: pageSchema(SessionSchema), paginated: true }),
53
+ get: def({ method: 'GET', path: '/sessions/{sessionId}', response: responseSchema(SessionSchema), paginated: false }),
54
+ summary: def({ method: 'GET', path: '/sessions/{sessionId}/summary', response: unknownResponse, paginated: false }),
55
+ entries: def({ method: 'GET', path: '/sessions/{sessionId}/entries', response: pageSchema(EntrySchema), paginated: false }),
56
+ grid: def({ method: 'GET', path: '/sessions/{sessionId}/grid', response: pageSchema(GridEntrySchema), paginated: false }),
57
+ classification: def({ method: 'GET', path: '/sessions/{sessionId}/classification', response: pageSchema(ClassificationSchema), paginated: false }),
58
+ laps: def({ method: 'GET', path: '/sessions/{sessionId}/laps', query: LapListQuerySchema, response: pageSchema(LapSchema), paginated: true }),
59
+ sectorTimes: def({ method: 'GET', path: '/sessions/{sessionId}/sector-times', query: PageQuerySchema, response: pageSchema(SectorTimeSchema), paginated: true }),
60
+ runningOrder: def({ method: 'GET', path: '/sessions/{sessionId}/running-order', response: pageSchema(RunningOrderSchema), paginated: false }),
61
+ flags: def({ method: 'GET', path: '/sessions/{sessionId}/flags', response: pageSchema(FlagSchema), paginated: false }),
62
+ leaders: def({ method: 'GET', path: '/sessions/{sessionId}/leaders', response: unknownPage, paginated: false }),
63
+ fastestLapHistory: def({ method: 'GET', path: '/sessions/{sessionId}/fastest-lap-history', response: unknownPage, paginated: false }),
64
+ bestSectors: def({ method: 'GET', path: '/sessions/{sessionId}/best-sectors', response: unknownPage, paginated: false }),
65
+ penalties: def({ method: 'GET', path: '/sessions/{sessionId}/penalties', response: pageSchema(PenaltySchema), paginated: false }),
66
+ notes: def({ method: 'GET', path: '/sessions/{sessionId}/notes', response: unknownPage, paginated: false }),
67
+ },
68
+ drivers: {
69
+ list: def({ method: 'GET', path: '/drivers', query: DriverListQuerySchema, response: pageSchema(DriverSchema), paginated: true }),
70
+ get: def({ method: 'GET', path: '/drivers/{driverId}', response: responseSchema(DriverSchema), paginated: false }),
71
+ entries: def({ method: 'GET', path: '/drivers/{driverId}/entries', response: pageSchema(EntrySchema), paginated: false }),
72
+ events: def({ method: 'GET', path: '/drivers/{driverId}/events', response: pageSchema(EventSchema), paginated: false }),
73
+ sessions: def({ method: 'GET', path: '/drivers/{driverId}/sessions', response: pageSchema(SessionSchema), paginated: false }),
74
+ results: def({ method: 'GET', path: '/drivers/{driverId}/results', response: pageSchema(ClassificationSchema), paginated: false }),
75
+ laps: def({ method: 'GET', path: '/drivers/{driverId}/laps', query: LapListQuerySchema, response: pageSchema(LapSchema), paginated: true }),
76
+ statistics: def({ method: 'GET', path: '/drivers/{driverId}/statistics', response: unknownResponse, paginated: false }),
77
+ circuits: def({ method: 'GET', path: '/drivers/{driverId}/circuits', response: unknownPage, paginated: false }),
78
+ form: def({ method: 'GET', path: '/drivers/{driverId}/form', response: unknownPage, paginated: false }),
79
+ },
80
+ teams: {
81
+ list: def({ method: 'GET', path: '/teams', response: pageSchema(TeamSchema), paginated: false }),
82
+ get: def({ method: 'GET', path: '/teams/{teamId}', response: responseSchema(TeamSchema), paginated: false }),
83
+ drivers: def({ method: 'GET', path: '/teams/{teamId}/drivers', response: pageSchema(DriverSchema), paginated: false }),
84
+ entries: def({ method: 'GET', path: '/teams/{teamId}/entries', response: pageSchema(EntrySchema), paginated: false }),
85
+ results: def({ method: 'GET', path: '/teams/{teamId}/results', response: pageSchema(ClassificationSchema), paginated: false }),
86
+ statistics: def({ method: 'GET', path: '/teams/{teamId}/statistics', response: unknownResponse, paginated: false }),
87
+ },
88
+ vehicles: {
89
+ list: def({ method: 'GET', path: '/vehicles', response: pageSchema(VehicleSchema), paginated: false }),
90
+ get: def({ method: 'GET', path: '/vehicles/{vehicleId}', response: responseSchema(VehicleSchema), paginated: false }),
91
+ entries: def({ method: 'GET', path: '/vehicles/{vehicleId}/entries', response: pageSchema(EntrySchema), paginated: false }),
92
+ results: def({ method: 'GET', path: '/vehicles/{vehicleId}/results', response: pageSchema(ClassificationSchema), paginated: false }),
93
+ statistics: def({ method: 'GET', path: '/vehicles/{vehicleId}/statistics', response: unknownResponse, paginated: false }),
94
+ },
95
+ entries: {
96
+ get: def({ method: 'GET', path: '/entries/{entryId}', response: responseSchema(EntrySchema), paginated: false }),
97
+ sessions: def({ method: 'GET', path: '/entries/{entryId}/sessions', response: pageSchema(SessionSchema), paginated: false }),
98
+ laps: def({ method: 'GET', path: '/entries/{entryId}/laps', query: LapListQuerySchema, response: pageSchema(LapSchema), paginated: true }),
99
+ results: def({ method: 'GET', path: '/entries/{entryId}/results', response: pageSchema(ClassificationSchema), paginated: false }),
100
+ penalties: def({ method: 'GET', path: '/entries/{entryId}/penalties', response: pageSchema(PenaltySchema), paginated: false }),
101
+ },
102
+ laps: {
103
+ get: def({ method: 'GET', path: '/laps/{lapId}', response: responseSchema(LapSchema), paginated: false }),
104
+ sectors: def({ method: 'GET', path: '/laps/{lapId}/sectors', response: pageSchema(SectorTimeSchema), paginated: false }),
105
+ source: def({ method: 'GET', path: '/laps/{lapId}/source', response: unknownResponse, paginated: false }),
106
+ },
107
+ analysis: {
108
+ pace: def({ method: 'GET', path: '/sessions/{sessionId}/analysis/pace', response: pageSchema(AnalysisMetricSchema), paginated: false }),
109
+ consistency: def({ method: 'GET', path: '/sessions/{sessionId}/analysis/consistency', response: unknownPage, paginated: false }),
110
+ theoreticalBest: def({ method: 'GET', path: '/sessions/{sessionId}/analysis/theoretical-best', response: pageSchema(AnalysisMetricSchema), paginated: false }),
111
+ sectorPerformance: def({ method: 'GET', path: '/sessions/{sessionId}/analysis/sector-performance', response: unknownPage, paginated: false }),
112
+ positionChanges: def({ method: 'GET', path: '/sessions/{sessionId}/analysis/position-changes', response: unknownPage, paginated: false }),
113
+ pitLoss: def({ method: 'GET', path: '/sessions/{sessionId}/analysis/pit-loss', response: unknownPage, paginated: false }),
114
+ headToHead: def({ method: 'GET', path: '/sessions/{sessionId}/analysis/head-to-head', query: ComparisonQuerySchema, response: unknownPage, paginated: false }),
115
+ compareDrivers: def({ method: 'GET', path: '/comparisons/drivers', query: ComparisonQuerySchema, response: unknownPage, paginated: false }),
116
+ compareEntries: def({ method: 'GET', path: '/comparisons/entries', query: ComparisonQuerySchema, response: unknownPage, paginated: false }),
117
+ compareLaps: def({ method: 'GET', path: '/comparisons/laps', query: ComparisonQuerySchema, response: unknownPage, paginated: false }),
118
+ },
119
+ leaderboards: {
120
+ lapTimes: def({ method: 'GET', path: '/leaderboards/lap-times', query: LeaderboardQuerySchema, response: unknownPage, paginated: false }),
121
+ sectorTimes: def({ method: 'GET', path: '/leaderboards/sector-times', query: LeaderboardQuerySchema, response: unknownPage, paginated: false }),
122
+ consistency: def({ method: 'GET', path: '/leaderboards/consistency', query: LeaderboardQuerySchema, response: unknownPage, paginated: false }),
123
+ wins: def({ method: 'GET', path: '/leaderboards/wins', query: LeaderboardQuerySchema, response: unknownPage, paginated: false }),
124
+ podiums: def({ method: 'GET', path: '/leaderboards/podiums', query: LeaderboardQuerySchema, response: unknownPage, paginated: false }),
125
+ poles: def({ method: 'GET', path: '/leaderboards/poles', query: LeaderboardQuerySchema, response: unknownPage, paginated: false }),
126
+ fastestLaps: def({ method: 'GET', path: '/leaderboards/fastest-laps', query: LeaderboardQuerySchema, response: unknownPage, paginated: false }),
127
+ lapsLed: def({ method: 'GET', path: '/leaderboards/laps-led', query: LeaderboardQuerySchema, response: unknownPage, paginated: false }),
128
+ },
129
+ sources: {
130
+ documents: def({ method: 'GET', path: '/sources/documents', response: pageSchema(SourceDocumentSchema), paginated: false }),
131
+ document: def({ method: 'GET', path: '/sources/documents/{documentId}', response: responseSchema(SourceDocumentSchema), paginated: false }),
132
+ documentPages: def({ method: 'GET', path: '/sources/documents/{documentId}/pages', response: pageSchema(SourcePageSchema), paginated: false }),
133
+ page: def({ method: 'GET', path: '/sources/pages/{pageId}', response: responseSchema(SourcePageSchema), paginated: false }),
134
+ provenance: def({ method: 'GET', path: '/provenance/{resource}/{id}', response: unknownResponse, paginated: false }),
135
+ eventDataQuality: def({ method: 'GET', path: '/data-quality/events/{eventId}', response: responseSchema(DataQualitySummarySchema), paginated: false }),
136
+ sessionDataQuality: def({ method: 'GET', path: '/data-quality/sessions/{sessionId}', response: responseSchema(DataQualitySummarySchema), paginated: false }),
137
+ },
138
+ datasets: {
139
+ list: def({ method: 'GET', path: '/datasets', response: pageSchema(DatasetSchema), paginated: false }),
140
+ get: def({ method: 'GET', path: '/datasets/{datasetId}', response: responseSchema(DatasetSchema), paginated: false }),
141
+ download: def({ method: 'GET', path: '/datasets/{datasetId}/download', query: DatasetDownloadQuerySchema, response: z.unknown(), paginated: false, binary: true }),
142
+ },
143
+ noticeboards: {
144
+ list: def({ method: 'GET', path: '/noticeboards', query: PublicListQuerySchema, response: pageSchema(NoticeboardSnapshotSchema), paginated: true }),
145
+ get: def({ method: 'GET', path: '/noticeboards/{snapshotId}', response: responseSchema(NoticeboardSnapshotSchema), paginated: false }),
146
+ documents: def({ method: 'GET', path: '/noticeboards/{snapshotId}/documents', query: PageQuerySchema, response: pageSchema(NoticeboardDocumentSchema), paginated: true }),
147
+ eventNoticeboards: def({ method: 'GET', path: '/events/{eventId}/noticeboards', query: PublicListQuerySchema, response: pageSchema(NoticeboardSnapshotSchema), paginated: true }),
148
+ eventBulletins: def({ method: 'GET', path: '/events/{eventId}/bulletins', query: PublicListQuerySchema, response: pageSchema(BulletinSchema), paginated: true }),
149
+ bulletin: def({ method: 'GET', path: '/bulletins/{bulletinId}', response: responseSchema(BulletinSchema), paginated: false }),
150
+ bulletinActions: def({ method: 'GET', path: '/bulletins/{bulletinId}/actions', query: PageQuerySchema, response: pageSchema(BulletinActionSchema), paginated: true }),
151
+ dataQuality: def({ method: 'GET', path: '/data-quality/noticeboards/{snapshotId}', response: responseSchema(DataQualitySummarySchema), paginated: false }),
152
+ },
153
+ governance: {
154
+ eventPermit: def({ method: 'GET', path: '/events/{eventId}/permit', response: responseSchema(EventPermitSchema), paginated: false }),
155
+ eventOfficials: def({ method: 'GET', path: '/events/{eventId}/officials', query: PageQuerySchema, response: pageSchema(OfficialAssignmentSchema), paginated: true }),
156
+ officials: def({ method: 'GET', path: '/officials', query: PageQuerySchema, response: pageSchema(OfficialSchema), paginated: true }),
157
+ official: def({ method: 'GET', path: '/officials/{officialId}', response: responseSchema(OfficialSchema), paginated: false }),
158
+ officialEvents: def({ method: 'GET', path: '/officials/{officialId}/events', query: PageQuerySchema, response: pageSchema(EventSchema), paginated: true }),
159
+ operationalRules: def({ method: 'GET', path: '/events/{eventId}/operational-rules', query: PageQuerySchema, response: pageSchema(OperationalRuleSchema), paginated: true }),
160
+ programme: def({ method: 'GET', path: '/events/{eventId}/programme', query: PageQuerySchema, response: pageSchema(ProgrammeSlotSchema), paginated: true }),
161
+ entryStatusHistory: def({ method: 'GET', path: '/events/{eventId}/entry-status-history', query: PageQuerySchema, response: pageSchema(EntryStatusHistorySchema), paginated: true }),
162
+ eligibilityDecisions: def({ method: 'GET', path: '/events/{eventId}/eligibility-decisions', query: PageQuerySchema, response: pageSchema(EligibilityDecisionSchema), paginated: true }),
163
+ entryEligibilityHistory: def({ method: 'GET', path: '/entries/{entryId}/eligibility-history', query: PageQuerySchema, response: pageSchema(EligibilityDecisionSchema), paginated: true }),
164
+ },
165
+ publications: {
166
+ list: def({ method: 'GET', path: '/publications', query: PublicListQuerySchema, response: pageSchema(SessionPublicationSchema), paginated: true }),
167
+ get: def({ method: 'GET', path: '/publications/{publicationId}', response: responseSchema(SessionPublicationSchema), paginated: false }),
168
+ eventPublications: def({ method: 'GET', path: '/events/{eventId}/publications', query: PublicListQuerySchema, response: pageSchema(SessionPublicationSchema), paginated: true }),
169
+ sessionPublications: def({ method: 'GET', path: '/sessions/{sessionId}/publications', query: PublicListQuerySchema, response: pageSchema(SessionPublicationSchema), paginated: true }),
170
+ classification: def({ method: 'GET', path: '/publications/{publicationId}/classification', query: PageQuerySchema, response: pageSchema(PublicationClassificationRowSchema), paginated: true }),
171
+ grid: def({ method: 'GET', path: '/publications/{publicationId}/grid', query: PageQuerySchema, response: pageSchema(PublicationGridRowSchema), paginated: true }),
172
+ changes: def({ method: 'GET', path: '/publications/{publicationId}/changes', query: PageQuerySchema, response: pageSchema(PublicationChangeSchema), paginated: true }),
173
+ supersessionChain: def({ method: 'GET', path: '/publications/{publicationId}/supersession-chain', query: PageQuerySchema, response: pageSchema(SessionPublicationSchema), paginated: true }),
174
+ reconciliation: def({ method: 'GET', path: '/publications/{publicationId}/reconciliation', response: responseSchema(PublicationReconciliationSchema), paginated: false }),
175
+ resultStatusHistory: def({ method: 'GET', path: '/sessions/{sessionId}/result-status-history', query: PageQuerySchema, response: pageSchema(ResultStatusHistorySchema), paginated: true }),
176
+ dataQuality: def({ method: 'GET', path: '/data-quality/publications/{publicationId}', response: responseSchema(DataQualitySummarySchema), paginated: false }),
177
+ },
178
+ judicial: {
179
+ list: def({ method: 'GET', path: '/judicial-decisions', query: PublicListQuerySchema, response: pageSchema(JudicialDecisionSchema), paginated: true }),
180
+ get: def({ method: 'GET', path: '/judicial-decisions/{decisionId}', response: responseSchema(JudicialDecisionSchema), paginated: false }),
181
+ eventDecisions: def({ method: 'GET', path: '/events/{eventId}/judicial-decisions', query: PublicListQuerySchema, response: pageSchema(JudicialDecisionSchema), paginated: true }),
182
+ sessionDecisions: def({ method: 'GET', path: '/sessions/{sessionId}/judicial-decisions', query: PublicListQuerySchema, response: pageSchema(JudicialDecisionSchema), paginated: true }),
183
+ driverDecisions: def({ method: 'GET', path: '/drivers/{driverId}/judicial-decisions', query: PublicListQuerySchema, response: pageSchema(JudicialDecisionSchema), paginated: true }),
184
+ entryDecisions: def({ method: 'GET', path: '/entries/{entryId}/judicial-decisions', query: PublicListQuerySchema, response: pageSchema(JudicialDecisionSchema), paginated: true }),
185
+ },
186
+ sanctions: {
187
+ list: def({ method: 'GET', path: '/sanctions', query: PublicListQuerySchema, response: pageSchema(SanctionSchema), paginated: true }),
188
+ get: def({ method: 'GET', path: '/sanctions/{sanctionId}', response: responseSchema(SanctionSchema), paginated: false }),
189
+ eventSanctions: def({ method: 'GET', path: '/events/{eventId}/sanctions', query: PublicListQuerySchema, response: pageSchema(SanctionSchema), paginated: true }),
190
+ driverSanctions: def({ method: 'GET', path: '/drivers/{driverId}/sanctions', query: PublicListQuerySchema, response: pageSchema(SanctionSchema), paginated: true }),
191
+ entrySanctions: def({ method: 'GET', path: '/entries/{entryId}/sanctions', query: PublicListQuerySchema, response: pageSchema(SanctionSchema), paginated: true }),
192
+ driverLicencePenaltyPoints: def({ method: 'GET', path: '/drivers/{driverId}/licence-penalty-points', query: PageQuerySchema, response: pageSchema(LicencePenaltyPointSchema), paginated: true }),
193
+ driverPenaltyBalance: def({ method: 'GET', path: '/drivers/{driverId}/penalty-balance', response: responseSchema(DriverPenaltyBalanceSchema), paginated: false }),
194
+ licencePenaltyPointsLeaderboard: def({ method: 'GET', path: '/leaderboards/licence-penalty-points', query: PageQuerySchema, response: pageSchema(DriverPenaltyBalanceSchema), paginated: true }),
195
+ seasonChampionshipAdjustments: def({ method: 'GET', path: '/seasons/{year}/championship-adjustments', query: PageQuerySchema, response: pageSchema(ChampionshipAdjustmentSchema), paginated: true }),
196
+ driverChampionshipAdjustments: def({ method: 'GET', path: '/drivers/{driverId}/championship-adjustments', query: PageQuerySchema, response: pageSchema(ChampionshipAdjustmentSchema), paginated: true }),
197
+ },
198
+ };
@@ -0,0 +1,2 @@
1
+ export declare const API_VERSION: '1.1.0';
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,EAAG,OAAgB,CAAC"}
@@ -0,0 +1 @@
1
+ export const API_VERSION = '1.1.0';
package/package.json ADDED
@@ -0,0 +1,50 @@
1
+ {
2
+ "name": "@btrc/contracts",
3
+ "version": "0.0.2",
4
+ "description": "Zod schemas, types, and route definitions for the Bowler Racing BTRC API",
5
+ "private": false,
6
+ "type": "module",
7
+ "sideEffects": false,
8
+ "license": "MIT",
9
+ "engines": {
10
+ "node": ">=22.13"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/ReeceCenturion/BTRC.git",
15
+ "directory": "packages/contracts"
16
+ },
17
+ "publishConfig": {
18
+ "access": "public"
19
+ },
20
+ "files": [
21
+ "dist"
22
+ ],
23
+ "exports": {
24
+ ".": {
25
+ "types": "./dist/index.d.ts",
26
+ "default": "./dist/index.js"
27
+ },
28
+ "./routes": {
29
+ "types": "./dist/routes.d.ts",
30
+ "default": "./dist/routes.js"
31
+ }
32
+ },
33
+ "dependencies": {
34
+ "zod": "^3.25.67"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "^22.10.0",
38
+ "rimraf": "^6.0.1",
39
+ "typescript": "7.0.2",
40
+ "vitest": "^3.2.4"
41
+ },
42
+ "scripts": {
43
+ "build": "tsc -p tsconfig.build.json",
44
+ "dev": "tsc -p tsconfig.build.json --watch",
45
+ "typecheck": "tsc --noEmit",
46
+ "lint": "echo lint skipped: typescript-eslint does not yet support TypeScript 7 (TODO: restore eslint . when @typescript-eslint ships TS7 support)",
47
+ "test": "vitest run",
48
+ "clean": "rimraf .turbo dist coverage"
49
+ }
50
+ }