@cyanheads/wsdot-mcp-server 0.2.6 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/AGENTS.md +1 -1
  2. package/CLAUDE.md +1 -1
  3. package/README.md +32 -23
  4. package/changelog/0.3.x/0.3.0.md +30 -0
  5. package/changelog/0.4.x/0.4.0.md +26 -0
  6. package/dist/index.js +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/mcp-server/tools/definitions/get-ferry-routes.tool.d.ts +9 -2
  9. package/dist/mcp-server/tools/definitions/get-ferry-routes.tool.d.ts.map +1 -1
  10. package/dist/mcp-server/tools/definitions/get-ferry-routes.tool.js +40 -5
  11. package/dist/mcp-server/tools/definitions/get-ferry-routes.tool.js.map +1 -1
  12. package/dist/mcp-server/tools/definitions/get-ferry-schedule.tool.d.ts +10 -3
  13. package/dist/mcp-server/tools/definitions/get-ferry-schedule.tool.d.ts.map +1 -1
  14. package/dist/mcp-server/tools/definitions/get-ferry-schedule.tool.js +96 -20
  15. package/dist/mcp-server/tools/definitions/get-ferry-schedule.tool.js.map +1 -1
  16. package/dist/mcp-server/tools/definitions/get-ferry-terminals.tool.d.ts +2 -2
  17. package/dist/mcp-server/tools/definitions/get-ferry-terminals.tool.d.ts.map +1 -1
  18. package/dist/mcp-server/tools/definitions/get-ferry-terminals.tool.js +12 -5
  19. package/dist/mcp-server/tools/definitions/get-ferry-terminals.tool.js.map +1 -1
  20. package/dist/mcp-server/tools/definitions/get-mountain-passes.tool.d.ts +2 -2
  21. package/dist/mcp-server/tools/definitions/get-mountain-passes.tool.d.ts.map +1 -1
  22. package/dist/mcp-server/tools/definitions/get-mountain-passes.tool.js +9 -4
  23. package/dist/mcp-server/tools/definitions/get-mountain-passes.tool.js.map +1 -1
  24. package/dist/mcp-server/tools/definitions/get-terminal-space.tool.d.ts.map +1 -1
  25. package/dist/mcp-server/tools/definitions/get-terminal-space.tool.js +2 -0
  26. package/dist/mcp-server/tools/definitions/get-terminal-space.tool.js.map +1 -1
  27. package/dist/mcp-server/tools/definitions/get-toll-rates.tool.d.ts +4 -0
  28. package/dist/mcp-server/tools/definitions/get-toll-rates.tool.d.ts.map +1 -1
  29. package/dist/mcp-server/tools/definitions/get-toll-rates.tool.js +123 -79
  30. package/dist/mcp-server/tools/definitions/get-toll-rates.tool.js.map +1 -1
  31. package/dist/mcp-server/tools/definitions/get-travel-times.tool.d.ts.map +1 -1
  32. package/dist/mcp-server/tools/definitions/get-travel-times.tool.js +103 -101
  33. package/dist/mcp-server/tools/definitions/get-travel-times.tool.js.map +1 -1
  34. package/dist/mcp-server/tools/definitions/search-alerts.tool.d.ts +10 -0
  35. package/dist/mcp-server/tools/definitions/search-alerts.tool.d.ts.map +1 -1
  36. package/dist/mcp-server/tools/definitions/search-alerts.tool.js +152 -130
  37. package/dist/mcp-server/tools/definitions/search-alerts.tool.js.map +1 -1
  38. package/dist/mcp-server/tools/definitions/search-cameras.tool.d.ts +12 -0
  39. package/dist/mcp-server/tools/definitions/search-cameras.tool.d.ts.map +1 -1
  40. package/dist/mcp-server/tools/definitions/search-cameras.tool.js +118 -67
  41. package/dist/mcp-server/tools/definitions/search-cameras.tool.js.map +1 -1
  42. package/dist/mcp-server/tools/page-budget.d.ts +56 -0
  43. package/dist/mcp-server/tools/page-budget.d.ts.map +1 -0
  44. package/dist/mcp-server/tools/page-budget.js +76 -0
  45. package/dist/mcp-server/tools/page-budget.js.map +1 -0
  46. package/dist/services/ferry/ferry-service.d.ts +20 -0
  47. package/dist/services/ferry/ferry-service.d.ts.map +1 -1
  48. package/dist/services/ferry/ferry-service.js +186 -49
  49. package/dist/services/ferry/ferry-service.js.map +1 -1
  50. package/dist/services/ferry/types.d.ts +52 -4
  51. package/dist/services/ferry/types.d.ts.map +1 -1
  52. package/dist/services/text-field.d.ts +31 -0
  53. package/dist/services/text-field.d.ts.map +1 -0
  54. package/dist/services/text-field.js +41 -0
  55. package/dist/services/text-field.js.map +1 -0
  56. package/dist/services/traffic/traffic-service.d.ts.map +1 -1
  57. package/dist/services/traffic/traffic-service.js +66 -86
  58. package/dist/services/traffic/traffic-service.js.map +1 -1
  59. package/dist/services/traffic/types.d.ts +3 -3
  60. package/dist/services/traffic/types.d.ts.map +1 -1
  61. package/dist/services/wcf-date.d.ts +6 -4
  62. package/dist/services/wcf-date.d.ts.map +1 -1
  63. package/dist/services/wcf-date.js +8 -4
  64. package/dist/services/wcf-date.js.map +1 -1
  65. package/package.json +2 -2
  66. package/server.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"traffic-service.d.ts","sourceRoot":"","sources":["../../../src/services/traffic/traffic-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAOrE,OAAO,KAAK,EACV,cAAc,EACd,MAAM,EACN,YAAY,EACZ,YAAY,EASZ,QAAQ,EACR,UAAU,EACX,MAAM,YAAY,CAAC;AAMpB,+EAA+E;AAC/E,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,iFAAiF;AACjF,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAI;IAE5D,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAoBX,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA8C7D;IAEK,YAAY,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAyCnF;IAEK,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CA6BxD;IAEK,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAsBpD;IAEK,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAkChE;IAEK,aAAa,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA4B/E;CACF;AA8FD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAEtF;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAKxD"}
1
+ {"version":3,"file":"traffic-service.d.ts","sourceRoot":"","sources":["../../../src/services/traffic/traffic-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAOrE,OAAO,KAAK,EACV,cAAc,EACd,MAAM,EACN,YAAY,EACZ,YAAY,EAUZ,QAAQ,EAER,UAAU,EACX,MAAM,YAAY,CAAC;AAMpB,+EAA+E;AAC/E,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,iFAAiF;AACjF,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,YAAY,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAI;IAE5D,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAoBX,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA4B7D;IAEK,YAAY,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAyCnF;IAEK,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CA6BxD;IAEK,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAsBpD;IAEK,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA4BhE;IAEK,aAAa,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA4B/E;CACF;AAqGD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAEtF;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAKxD"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { withRetry } from '@cyanheads/mcp-ts-core/utils';
7
7
  import { getServerConfig } from '../../config/server-config.js';
8
- import { htmlToText } from '../html-text.js';
8
+ import { htmlTextField, textField } from '../text-field.js';
9
9
  import { wcfDateField } from '../wcf-date.js';
10
10
  import { assertUpstreamJson, fetchUpstream, redactUrl } from '../wsdot-http.js';
11
11
  import { routeMatches } from './route-match.js';
@@ -36,46 +36,28 @@ export class TrafficApiService {
36
36
  async getMountainPasses(ctx) {
37
37
  ctx.log.info('Fetching mountain pass conditions');
38
38
  const passes = await this.fetchJson('MountainPassConditions/MountainPassConditionsREST.svc/GetMountainPassConditionsAsJson', ctx);
39
- return passes.map((p) => ({
40
- mountainPassId: p.MountainPassId ?? 0,
41
- mountainPassName: p.MountainPassName ?? 'Unknown',
42
- ...(p.ElevationInFeet != null && { elevation: p.ElevationInFeet }),
43
- ...(p.TemperatureInFahrenheit != null && {
44
- temperatureInFahrenheit: p.TemperatureInFahrenheit,
45
- }),
46
- ...(p.WeatherCondition != null && { weatherCondition: p.WeatherCondition }),
47
- ...(p.RoadCondition != null && { roadCondition: p.RoadCondition }),
48
- ...(typeof p.TravelAdvisoryActive === 'boolean' && {
49
- travelAdvisoryActive: p.TravelAdvisoryActive,
50
- }),
51
- ...(p.RestrictionOne?.RestrictionText || p.RestrictionOne?.TravelDirection
52
- ? {
53
- restrictionOne: {
54
- ...(p.RestrictionOne.RestrictionText != null && {
55
- text: p.RestrictionOne.RestrictionText,
56
- }),
57
- ...(p.RestrictionOne.TravelDirection != null && {
58
- travelDirection: p.RestrictionOne.TravelDirection,
59
- }),
60
- },
61
- }
62
- : {}),
63
- ...(p.RestrictionTwo?.RestrictionText || p.RestrictionTwo?.TravelDirection
64
- ? {
65
- restrictionTwo: {
66
- ...(p.RestrictionTwo.RestrictionText != null && {
67
- text: p.RestrictionTwo.RestrictionText,
68
- }),
69
- ...(p.RestrictionTwo.TravelDirection != null && {
70
- travelDirection: p.RestrictionTwo.TravelDirection,
71
- }),
72
- },
73
- }
74
- : {}),
75
- ...wcfDateField('dateUpdated', p.DateUpdated),
76
- ...(p.Latitude != null && { latitude: p.Latitude }),
77
- ...(p.Longitude != null && { longitude: p.Longitude }),
78
- }));
39
+ return passes.map((p) => {
40
+ const restrictionOne = normalizeRestriction(p.RestrictionOne);
41
+ const restrictionTwo = normalizeRestriction(p.RestrictionTwo);
42
+ return {
43
+ ...(p.MountainPassId != null && { mountainPassId: p.MountainPassId }),
44
+ ...textField('mountainPassName', p.MountainPassName),
45
+ ...(p.ElevationInFeet != null && { elevation: p.ElevationInFeet }),
46
+ ...(p.TemperatureInFahrenheit != null && {
47
+ temperatureInFahrenheit: p.TemperatureInFahrenheit,
48
+ }),
49
+ ...textField('weatherCondition', p.WeatherCondition),
50
+ ...textField('roadCondition', p.RoadCondition),
51
+ ...(typeof p.TravelAdvisoryActive === 'boolean' && {
52
+ travelAdvisoryActive: p.TravelAdvisoryActive,
53
+ }),
54
+ ...(restrictionOne && { restrictionOne }),
55
+ ...(restrictionTwo && { restrictionTwo }),
56
+ ...wcfDateField('dateUpdated', p.DateUpdated),
57
+ ...(p.Latitude != null && { latitude: p.Latitude }),
58
+ ...(p.Longitude != null && { longitude: p.Longitude }),
59
+ };
60
+ });
79
61
  }
80
62
  async searchAlerts(params, ctx) {
81
63
  const result = await this.fetchJson('HighwayAlerts/HighwayAlertsREST.svc/GetAlertsAsJson', ctx);
@@ -115,23 +97,23 @@ export class TrafficApiService {
115
97
  const times = await this.fetchJson('TravelTimes/TravelTimesREST.svc/GetTravelTimesAsJson', ctx);
116
98
  return times.map((t) => ({
117
99
  ...(t.TravelTimeID != null && { travelTimeId: t.TravelTimeID }),
118
- ...(t.Name != null && { name: t.Name }),
119
- ...(t.Description != null && { description: t.Description }),
100
+ ...textField('name', t.Name),
101
+ ...textField('description', t.Description),
120
102
  ...(isMeasuredDuration(t.CurrentTime, t.Distance) && { currentTimeInMinutes: t.CurrentTime }),
121
103
  ...(isMeasuredDuration(t.AverageTime, t.Distance) && { averageTimeInMinutes: t.AverageTime }),
122
104
  ...wcfDateField('timeUpdated', t.TimeUpdated),
123
105
  ...(t.Distance != null && { distanceInMiles: t.Distance }),
124
106
  ...(t.StartPoint != null && {
125
107
  startPoint: {
126
- ...(t.StartPoint.RoadName != null && { roadName: t.StartPoint.RoadName }),
127
- ...(t.StartPoint.Direction != null && { direction: t.StartPoint.Direction }),
108
+ ...textField('roadName', t.StartPoint.RoadName),
109
+ ...textField('direction', t.StartPoint.Direction),
128
110
  ...(t.StartPoint.MilePost != null && { milePost: t.StartPoint.MilePost }),
129
111
  },
130
112
  }),
131
113
  ...(t.EndPoint != null && {
132
114
  endPoint: {
133
- ...(t.EndPoint.RoadName != null && { roadName: t.EndPoint.RoadName }),
134
- ...(t.EndPoint.Direction != null && { direction: t.EndPoint.Direction }),
115
+ ...textField('roadName', t.EndPoint.RoadName),
116
+ ...textField('direction', t.EndPoint.Direction),
135
117
  ...(t.EndPoint.MilePost != null && { milePost: t.EndPoint.MilePost }),
136
118
  },
137
119
  }),
@@ -141,15 +123,15 @@ export class TrafficApiService {
141
123
  ctx.log.info('Fetching toll rates');
142
124
  const rates = await this.fetchJson('TollRates/TollRatesREST.svc/GetTollRatesAsJson', ctx);
143
125
  return rates.map((r) => ({
144
- ...(r.TripName != null && { tripName: r.TripName }),
145
- ...(r.StateRoute != null && { stateRoute: r.StateRoute }),
146
- ...(r.TravelDirection != null && { travelDirection: r.TravelDirection }),
126
+ ...textField('tripName', r.TripName),
127
+ ...textField('stateRoute', r.StateRoute),
128
+ ...textField('travelDirection', r.TravelDirection),
147
129
  ...(r.StartMilepost != null && { startMilepost: r.StartMilepost }),
148
130
  ...(r.EndMilepost != null && { endMilepost: r.EndMilepost }),
149
131
  ...(r.CurrentToll != null && { tollRateInDollars: r.CurrentToll / 100 }),
150
- ...(r.CurrentMessage != null && { message: r.CurrentMessage }),
151
- ...(r.StartLocationName != null && { startLocationName: r.StartLocationName }),
152
- ...(r.EndLocationName != null && { endLocationName: r.EndLocationName }),
132
+ ...textField('message', r.CurrentMessage),
133
+ ...textField('startLocationName', r.StartLocationName),
134
+ ...textField('endLocationName', r.EndLocationName),
153
135
  ...(r.StartLatitude != null && { startLatitude: r.StartLatitude }),
154
136
  ...(r.StartLongitude != null && { startLongitude: r.StartLongitude }),
155
137
  ...(r.EndLatitude != null && { endLatitude: r.EndLatitude }),
@@ -161,21 +143,15 @@ export class TrafficApiService {
161
143
  ctx.log.info('Fetching border crossings');
162
144
  const crossings = await this.fetchJson('BorderCrossings/BorderCrossingsREST.svc/GetBorderCrossingsAsJson', ctx);
163
145
  return crossings.map((c) => ({
164
- ...(c.CrossingName != null && { crossingName: c.CrossingName }),
146
+ ...textField('crossingName', c.CrossingName),
165
147
  // WSDOT emits -1 when a crossing has no current reading — drop it rather than surface a bogus wait.
166
148
  ...(c.WaitTime != null && c.WaitTime >= 0 && { waitTimeInMinutes: c.WaitTime }),
167
149
  ...wcfDateField('updateTime', c.Time),
168
150
  ...(c.BorderCrossingLocation != null && {
169
151
  location: {
170
- ...(c.BorderCrossingLocation.Description != null && {
171
- description: c.BorderCrossingLocation.Description,
172
- }),
173
- ...(c.BorderCrossingLocation.RoadName != null && {
174
- roadName: c.BorderCrossingLocation.RoadName,
175
- }),
176
- ...(c.BorderCrossingLocation.Direction != null && {
177
- direction: c.BorderCrossingLocation.Direction,
178
- }),
152
+ ...textField('description', c.BorderCrossingLocation.Description),
153
+ ...textField('roadName', c.BorderCrossingLocation.RoadName),
154
+ ...textField('direction', c.BorderCrossingLocation.Direction),
179
155
  ...(c.BorderCrossingLocation.MilePost != null && {
180
156
  milePost: c.BorderCrossingLocation.MilePost,
181
157
  }),
@@ -236,37 +212,41 @@ function isMeasuredDuration(minutes, distanceInMiles) {
236
212
  function normalizeRoadwayLocation(loc) {
237
213
  const unpopulated = loc.MilePost === 0 && loc.Latitude === 0 && loc.Longitude === 0;
238
214
  return {
239
- ...(loc.RoadName != null && { roadName: loc.RoadName }),
240
- ...(loc.Direction != null && { direction: loc.Direction }),
215
+ ...textField('roadName', loc.RoadName),
216
+ ...textField('direction', loc.Direction),
241
217
  ...(!unpopulated && loc.MilePost != null && { milePost: loc.MilePost }),
242
218
  ...(!unpopulated && loc.Latitude != null && { latitude: loc.Latitude }),
243
219
  ...(!unpopulated && loc.Longitude != null && { longitude: loc.Longitude }),
244
220
  };
245
221
  }
222
+ /**
223
+ * A pass restriction, or `undefined` when neither its text nor its direction carries a value —
224
+ * the gate reads the normalized strings, so a whitespace-only pair leaves no empty object behind.
225
+ */
226
+ function normalizeRestriction(raw) {
227
+ const restriction = {
228
+ ...textField('text', raw?.RestrictionText),
229
+ ...textField('travelDirection', raw?.TravelDirection),
230
+ };
231
+ return Object.keys(restriction).length > 0 ? restriction : undefined;
232
+ }
246
233
  /**
247
234
  * WSDOT authors alert descriptions in a rich-text editor and ships the markup through — a
248
235
  * "read the advisory" link arrives as a raw `<a href=…>` anchor. Both descriptions are rendered
249
236
  * to plain text here, before either response path reads them, so `structuredContent` and the
250
237
  * `format()` markdown carry the same normalized string. A description that held nothing but
251
- * markup normalizes to an empty string and is dropped rather than surfaced as a blank field.
238
+ * markup or whitespace is dropped rather than surfaced as a blank field.
252
239
  */
253
- function alertDescription(raw) {
254
- if (raw == null)
255
- return;
256
- return htmlToText(raw) || undefined;
257
- }
258
240
  function normalizeAlert(a) {
259
- const headline = alertDescription(a.HeadlineDescription);
260
- const extended = alertDescription(a.ExtendedDescription);
261
241
  return {
262
242
  ...(a.AlertID != null && { alertId: a.AlertID }),
263
- ...(headline != null && { headlineDescription: headline }),
264
- ...(extended != null && { extendedDescription: extended }),
265
- ...(a.EventCategory != null && { eventCategory: a.EventCategory }),
266
- ...(a.EventStatus != null && { eventStatus: a.EventStatus }),
267
- ...(a.Priority != null && { priority: a.Priority }),
268
- ...(a.Region != null && { region: a.Region }),
269
- ...(a.County != null && { county: a.County }),
243
+ ...htmlTextField('headlineDescription', a.HeadlineDescription),
244
+ ...htmlTextField('extendedDescription', a.ExtendedDescription),
245
+ ...textField('eventCategory', a.EventCategory),
246
+ ...textField('eventStatus', a.EventStatus),
247
+ ...textField('priority', a.Priority),
248
+ ...textField('region', a.Region),
249
+ ...textField('county', a.County),
270
250
  ...(a.StartRoadwayLocation != null && {
271
251
  startRoadwayLocation: normalizeRoadwayLocation(a.StartRoadwayLocation),
272
252
  }),
@@ -282,15 +262,15 @@ function normalizeCamera(c) {
282
262
  const loc = c.CameraLocation;
283
263
  return {
284
264
  ...(c.CameraID != null && { cameraId: c.CameraID }),
285
- ...(c.Title != null && { title: c.Title }),
286
- ...(c.Description != null && { description: c.Description }),
287
- ...(c.ImageURL != null && { imageUrl: c.ImageURL }),
265
+ ...textField('title', c.Title),
266
+ ...textField('description', c.Description),
267
+ ...textField('imageUrl', c.ImageURL),
288
268
  ...(c.ImageWidth != null && { imageWidth: c.ImageWidth }),
289
269
  ...(c.ImageHeight != null && { imageHeight: c.ImageHeight }),
290
- ...(loc?.RoadName != null && { roadName: loc.RoadName }),
291
- ...(loc?.Direction != null && { direction: loc.Direction }),
270
+ ...textField('roadName', loc?.RoadName),
271
+ ...textField('direction', loc?.Direction),
292
272
  ...(loc?.MilePost != null && { milePost: loc.MilePost }),
293
- ...(c.Region != null && { region: c.Region }),
273
+ ...textField('region', c.Region),
294
274
  ...(loc?.Latitude != null && { latitude: loc.Latitude }),
295
275
  ...(loc?.Longitude != null && { longitude: loc.Longitude }),
296
276
  };
@@ -1 +1 @@
1
- {"version":3,"file":"traffic-service.js","sourceRoot":"","sources":["../../../src/services/traffic/traffic-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traffic-service.js","sourceRoot":"","sources":["../../../src/services/traffic/traffic-service.ts"],"names":[],"mappings":"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"}
@@ -28,14 +28,14 @@ export interface TravelRestriction {
28
28
  text?: string;
29
29
  travelDirection?: string;
30
30
  }
31
- /** Normalized mountain pass condition. */
31
+ /** Normalized mountain pass condition. Identity is optional too — never fabricated when absent. */
32
32
  export interface MountainPass {
33
33
  dateUpdated?: string;
34
34
  elevation?: number;
35
35
  latitude?: number;
36
36
  longitude?: number;
37
- mountainPassId: number;
38
- mountainPassName: string;
37
+ mountainPassId?: number;
38
+ mountainPassName?: string;
39
39
  restrictionOne?: TravelRestriction;
40
40
  restrictionTwo?: TravelRestriction;
41
41
  roadCondition?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/traffic/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/traffic/types.ts"],"names":[],"mappings":"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"}
@@ -7,16 +7,18 @@
7
7
  /**
8
8
  * Decode a WCF JSON date string (`/Date(ms±offset)/`) to an ISO 8601 UTC string.
9
9
  *
10
- * - `null` / `undefined` → `undefined`.
11
- * - A value that doesn't match the WCF pattern is returned unchanged (already ISO, or unknown shape).
10
+ * - `null` / `undefined`, or a blank or whitespace-only string → `undefined` (the {@link nonBlank}
11
+ * rule every upstream string follows); a populated value is trimmed before decoding.
12
+ * - A value that doesn't match the WCF pattern is returned as-is (already ISO, or unknown shape).
12
13
  * - `.NET DateTime.MinValue` (year 0001, e.g. `/Date(-62135568000000-0800)/`) is WSDOT's
13
14
  * "no timestamp" sentinel and decodes to `undefined`, so callers omit the field rather than
14
15
  * surfacing a year-0001 date.
15
16
  */
16
- export declare function decodeWcfDate(value: string | null | undefined): string | undefined;
17
+ export declare function decodeWcfDate(raw: string | null | undefined): string | undefined;
17
18
  /**
18
19
  * Spread-ready ISO date field. Decodes a WCF date and returns `{ [key]: iso }`, or `{}` when the
19
- * value is absent or the MinValue sentinel — so the field is omitted from the normalized object.
20
+ * value is absent, blank, or the MinValue sentinel — so the field is omitted from the normalized
21
+ * object.
20
22
  *
21
23
  * @example
22
24
  * return { ...wcfDateField('dateUpdated', p.DateUpdated) };
@@ -1 +1 @@
1
- {"version":3,"file":"wcf-date.d.ts","sourceRoot":"","sources":["../../src/services/wcf-date.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAOlF;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC3C,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC7B,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAG3C"}
1
+ {"version":3,"file":"wcf-date.d.ts","sourceRoot":"","sources":["../../src/services/wcf-date.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAQhF;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC3C,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC7B,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAG3C"}
@@ -4,18 +4,21 @@
4
4
  * .NET `DateTime.MinValue` sentinel so every mapper handles upstream dates identically.
5
5
  * @module services/wcf-date
6
6
  */
7
+ import { nonBlank } from './text-field.js';
7
8
  /** Decoded dates before this year are treated as the .NET `DateTime.MinValue` "no timestamp" sentinel. */
8
9
  const MIN_VALID_YEAR = 1900;
9
10
  /**
10
11
  * Decode a WCF JSON date string (`/Date(ms±offset)/`) to an ISO 8601 UTC string.
11
12
  *
12
- * - `null` / `undefined` → `undefined`.
13
- * - A value that doesn't match the WCF pattern is returned unchanged (already ISO, or unknown shape).
13
+ * - `null` / `undefined`, or a blank or whitespace-only string → `undefined` (the {@link nonBlank}
14
+ * rule every upstream string follows); a populated value is trimmed before decoding.
15
+ * - A value that doesn't match the WCF pattern is returned as-is (already ISO, or unknown shape).
14
16
  * - `.NET DateTime.MinValue` (year 0001, e.g. `/Date(-62135568000000-0800)/`) is WSDOT's
15
17
  * "no timestamp" sentinel and decodes to `undefined`, so callers omit the field rather than
16
18
  * surfacing a year-0001 date.
17
19
  */
18
- export function decodeWcfDate(value) {
20
+ export function decodeWcfDate(raw) {
21
+ const value = nonBlank(raw);
19
22
  if (value == null)
20
23
  return;
21
24
  const match = /^\/Date\((-?\d+)(?:[+-]\d{4})?\)\/$/.exec(value);
@@ -28,7 +31,8 @@ export function decodeWcfDate(value) {
28
31
  }
29
32
  /**
30
33
  * Spread-ready ISO date field. Decodes a WCF date and returns `{ [key]: iso }`, or `{}` when the
31
- * value is absent or the MinValue sentinel — so the field is omitted from the normalized object.
34
+ * value is absent, blank, or the MinValue sentinel — so the field is omitted from the normalized
35
+ * object.
32
36
  *
33
37
  * @example
34
38
  * return { ...wcfDateField('dateUpdated', p.DateUpdated) };
@@ -1 +1 @@
1
- {"version":3,"file":"wcf-date.js","sourceRoot":"","sources":["../../src/services/wcf-date.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,0GAA0G;AAC1G,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgC;IAC5D,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO;IAC1B,MAAM,KAAK,GAAG,qCAAqC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,GAAG,cAAc;QAAE,OAAO;IACnF,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAM,EACN,GAA8B;IAE9B,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAwB,CAAC;AAClE,CAAC"}
1
+ {"version":3,"file":"wcf-date.js","sourceRoot":"","sources":["../../src/services/wcf-date.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,0GAA0G;AAC1G,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,GAA8B;IAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO;IAC1B,MAAM,KAAK,GAAG,qCAAqC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,GAAG,cAAc;QAAE,OAAO;IACnF,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAM,EACN,GAA8B;IAE9B,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAwB,CAAC;AAClE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/wsdot-mcp-server",
3
- "version": "0.2.6",
3
+ "version": "0.4.0",
4
4
  "description": "Query WA highway conditions, ferry schedules, vessel locations, toll rates, border waits, and alerts via MCP. STDIO or Streamable HTTP.",
5
5
  "mcpName": "io.github.cyanheads/wsdot-mcp-server",
6
6
  "type": "module",
@@ -90,7 +90,7 @@
90
90
  "devDependencies": {
91
91
  "@biomejs/biome": "^2.5.14",
92
92
  "@socketsecurity/bun-security-scanner": "^1.1.2",
93
- "@types/node": "^26.6.1",
93
+ "@types/node": "^26.6.2",
94
94
  "depcheck": "^1.4.7",
95
95
  "ignore": "^7.0.9",
96
96
  "tsc-alias": "^1.9.5",
package/server.json CHANGED
@@ -12,14 +12,14 @@
12
12
  "url": "https://wsdot.caseyjhand.com/mcp"
13
13
  }
14
14
  ],
15
- "version": "0.2.6",
15
+ "version": "0.4.0",
16
16
  "packages": [
17
17
  {
18
18
  "registryType": "npm",
19
19
  "registryBaseUrl": "https://registry.npmjs.org",
20
20
  "identifier": "@cyanheads/wsdot-mcp-server",
21
21
  "runtimeHint": "node",
22
- "version": "0.2.6",
22
+ "version": "0.4.0",
23
23
  "packageArguments": [
24
24
  {
25
25
  "type": "positional",
@@ -54,7 +54,7 @@
54
54
  "registryBaseUrl": "https://registry.npmjs.org",
55
55
  "identifier": "@cyanheads/wsdot-mcp-server",
56
56
  "runtimeHint": "node",
57
- "version": "0.2.6",
57
+ "version": "0.4.0",
58
58
  "packageArguments": [
59
59
  {
60
60
  "type": "positional",