@deepintel-ltd/farmpro-contracts 1.5.12 → 1.5.14

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.
@@ -1 +1 @@
1
- {"version":3,"file":"agents.routes.d.ts","sourceRoot":"","sources":["../../src/routes/agents.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DvB,CAAC"}
1
+ {"version":3,"file":"agents.routes.d.ts","sourceRoot":"","sources":["../../src/routes/agents.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoGvB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { initContract } from '@ts-rest/core';
2
2
  import { z } from 'zod';
3
- import { chatRequestSchema, agentChatResponseSchema, conversationHistoryResponseSchema, conversationListResponseSchema, } from '../schemas/agents.schemas';
3
+ import { chatRequestSchema, agentChatResponseSchema, conversationHistoryResponseSchema, conversationListResponseSchema, surveyGeoJsonResponseSchema, } from '../schemas/agents.schemas';
4
4
  import { jsonApiErrorResponseSchema } from '../schemas/common.schemas';
5
5
  const c = initContract();
6
6
  export const agentsRouter = c.router({
@@ -9,10 +9,36 @@ export const agentsRouter = c.router({
9
9
  method: 'POST',
10
10
  path: '/agents/agronomics/chat',
11
11
  contentType: 'multipart/form-data', // Support file uploads
12
- body: z.union([
13
- z.object({ data: chatRequestSchema }), // JSON body
14
- z.object({ data: chatRequestSchema, file: z.instanceof(File).optional() }), // Multipart with optional file
15
- ]),
12
+ body: z.object({
13
+ // In multipart/form-data, 'data' comes as a JSON string that needs to be parsed
14
+ // Accept both string (from form-data) and object (already parsed) for flexibility
15
+ data: z.union([
16
+ chatRequestSchema, // Already an object
17
+ z.string().transform((str, ctx) => {
18
+ try {
19
+ const parsed = JSON.parse(str);
20
+ return chatRequestSchema.parse(parsed);
21
+ }
22
+ catch (error) {
23
+ if (error instanceof z.ZodError) {
24
+ ctx.addIssue({
25
+ code: z.ZodIssueCode.custom,
26
+ message: `Invalid data structure: ${error.errors.map(e => e.message).join(', ')}`,
27
+ });
28
+ }
29
+ else {
30
+ ctx.addIssue({
31
+ code: z.ZodIssueCode.custom,
32
+ message: 'Invalid JSON in data field',
33
+ });
34
+ }
35
+ return z.NEVER;
36
+ }
37
+ }),
38
+ ]),
39
+ file: z.instanceof(File).optional(),
40
+ files: z.union([z.instanceof(File), z.array(z.instanceof(File))]).optional(),
41
+ }),
16
42
  responses: {
17
43
  200: agentChatResponseSchema,
18
44
  400: jsonApiErrorResponseSchema,
@@ -62,4 +88,21 @@ export const agentsRouter = c.router({
62
88
  summary: 'List all conversations for a farm',
63
89
  description: 'Retrieve a list of all conversations for a specific farm, ordered by most recent first',
64
90
  },
91
+ // Generate GeoJSON from survey document
92
+ generateSurveyGeoJSON: {
93
+ method: 'POST',
94
+ path: '/agents/survey/geojson',
95
+ contentType: 'multipart/form-data',
96
+ body: z.object({
97
+ file: z.instanceof(File),
98
+ }),
99
+ responses: {
100
+ 200: surveyGeoJsonResponseSchema,
101
+ 400: jsonApiErrorResponseSchema,
102
+ 401: jsonApiErrorResponseSchema,
103
+ 500: jsonApiErrorResponseSchema,
104
+ },
105
+ summary: 'Generate GeoJSON from survey document',
106
+ description: 'Upload a survey document (PDF or image) and generate standardized GeoJSON. The agent intelligently extracts survey data, handles errors, and makes approximations when needed to create accurate geospatial boundaries.',
107
+ },
65
108
  });
@@ -2200,6 +2200,15 @@ export declare const fieldMonitoringRouter: {
2200
2200
  confidence?: number | undefined;
2201
2201
  }[] | undefined;
2202
2202
  };
2203
+ properties: {
2204
+ texture: {
2205
+ sand: number;
2206
+ silt: number;
2207
+ clay: number;
2208
+ classification: string;
2209
+ };
2210
+ bulkDensity: number;
2211
+ };
2203
2212
  quality: {
2204
2213
  overall: "critical" | "poor" | "fair" | "good" | "excellent";
2205
2214
  score: number;
@@ -2287,15 +2296,6 @@ export declare const fieldMonitoringRouter: {
2287
2296
  sourceId?: string | undefined;
2288
2297
  };
2289
2298
  };
2290
- properties: {
2291
- texture: {
2292
- sand: number;
2293
- silt: number;
2294
- clay: number;
2295
- classification: string;
2296
- };
2297
- bulkDensity: number;
2298
- };
2299
2299
  dataSources: Record<string, {
2300
2300
  date: string;
2301
2301
  source: "manual" | "regional_api" | "global_api" | "predicted";
@@ -2386,6 +2386,15 @@ export declare const fieldMonitoringRouter: {
2386
2386
  confidence?: number | undefined;
2387
2387
  }[] | undefined;
2388
2388
  };
2389
+ properties: {
2390
+ texture: {
2391
+ sand: number;
2392
+ silt: number;
2393
+ clay: number;
2394
+ classification: string;
2395
+ };
2396
+ bulkDensity: number;
2397
+ };
2389
2398
  quality: {
2390
2399
  overall: "critical" | "poor" | "fair" | "good" | "excellent";
2391
2400
  score: number;
@@ -2473,15 +2482,6 @@ export declare const fieldMonitoringRouter: {
2473
2482
  sourceId?: string | undefined;
2474
2483
  };
2475
2484
  };
2476
- properties: {
2477
- texture: {
2478
- sand: number;
2479
- silt: number;
2480
- clay: number;
2481
- classification: string;
2482
- };
2483
- bulkDensity: number;
2484
- };
2485
2485
  dataSources: Record<string, {
2486
2486
  date: string;
2487
2487
  source: "manual" | "regional_api" | "global_api" | "predicted";
@@ -1001,32 +1001,36 @@ export declare const fieldObservationsRouter: {
1001
1001
  };
1002
1002
  listFieldObservations: {
1003
1003
  query: z.ZodObject<{
1004
- fieldId: z.ZodOptional<z.ZodString>;
1005
- status: z.ZodOptional<z.ZodEnum<["pending", "processing", "completed", "failed"]>>;
1006
- observationType: z.ZodOptional<z.ZodString>;
1007
- severity: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "critical"]>>;
1008
- startDate: z.ZodOptional<z.ZodString>;
1009
- endDate: z.ZodOptional<z.ZodString>;
1010
- page: z.ZodDefault<z.ZodString>;
1011
- pageSize: z.ZodDefault<z.ZodString>;
1004
+ 'page[number]': z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1005
+ 'page[size]': z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1006
+ 'filter[startDate]': z.ZodOptional<z.ZodString>;
1007
+ 'filter[endDate]': z.ZodOptional<z.ZodString>;
1008
+ 'filter[crop]': z.ZodOptional<z.ZodString>;
1009
+ } & {
1010
+ 'filter[fieldId]': z.ZodOptional<z.ZodString>;
1011
+ 'filter[status]': z.ZodOptional<z.ZodEnum<["pending", "processing", "completed", "failed"]>>;
1012
+ 'filter[observationType]': z.ZodOptional<z.ZodString>;
1013
+ 'filter[severity]': z.ZodOptional<z.ZodEnum<["low", "medium", "high", "critical"]>>;
1012
1014
  }, "strip", z.ZodTypeAny, {
1013
- pageSize: string;
1014
- page: string;
1015
- status?: "pending" | "completed" | "failed" | "processing" | undefined;
1016
- fieldId?: string | undefined;
1017
- severity?: "critical" | "low" | "medium" | "high" | undefined;
1018
- startDate?: string | undefined;
1019
- endDate?: string | undefined;
1020
- observationType?: string | undefined;
1015
+ 'page[number]'?: number | undefined;
1016
+ 'page[size]'?: number | undefined;
1017
+ 'filter[startDate]'?: string | undefined;
1018
+ 'filter[endDate]'?: string | undefined;
1019
+ 'filter[status]'?: "pending" | "completed" | "failed" | "processing" | undefined;
1020
+ 'filter[crop]'?: string | undefined;
1021
+ 'filter[fieldId]'?: string | undefined;
1022
+ 'filter[observationType]'?: string | undefined;
1023
+ 'filter[severity]'?: "critical" | "low" | "medium" | "high" | undefined;
1021
1024
  }, {
1022
- status?: "pending" | "completed" | "failed" | "processing" | undefined;
1023
- pageSize?: string | undefined;
1024
- fieldId?: string | undefined;
1025
- severity?: "critical" | "low" | "medium" | "high" | undefined;
1026
- startDate?: string | undefined;
1027
- endDate?: string | undefined;
1028
- observationType?: string | undefined;
1029
- page?: string | undefined;
1025
+ 'page[number]'?: number | undefined;
1026
+ 'page[size]'?: number | undefined;
1027
+ 'filter[startDate]'?: string | undefined;
1028
+ 'filter[endDate]'?: string | undefined;
1029
+ 'filter[status]'?: "pending" | "completed" | "failed" | "processing" | undefined;
1030
+ 'filter[crop]'?: string | undefined;
1031
+ 'filter[fieldId]'?: string | undefined;
1032
+ 'filter[observationType]'?: string | undefined;
1033
+ 'filter[severity]'?: "critical" | "low" | "medium" | "high" | undefined;
1030
1034
  }>;
1031
1035
  summary: "List all observations for a field";
1032
1036
  method: "GET";
@@ -1854,32 +1858,36 @@ export declare const fieldObservationsRouter: {
1854
1858
  };
1855
1859
  listFarmObservations: {
1856
1860
  query: z.ZodObject<{
1857
- fieldId: z.ZodOptional<z.ZodString>;
1858
- status: z.ZodOptional<z.ZodEnum<["pending", "processing", "completed", "failed"]>>;
1859
- observationType: z.ZodOptional<z.ZodString>;
1860
- severity: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "critical"]>>;
1861
- startDate: z.ZodOptional<z.ZodString>;
1862
- endDate: z.ZodOptional<z.ZodString>;
1863
- page: z.ZodDefault<z.ZodString>;
1864
- pageSize: z.ZodDefault<z.ZodString>;
1861
+ 'page[number]': z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1862
+ 'page[size]': z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1863
+ 'filter[startDate]': z.ZodOptional<z.ZodString>;
1864
+ 'filter[endDate]': z.ZodOptional<z.ZodString>;
1865
+ 'filter[crop]': z.ZodOptional<z.ZodString>;
1866
+ } & {
1867
+ 'filter[fieldId]': z.ZodOptional<z.ZodString>;
1868
+ 'filter[status]': z.ZodOptional<z.ZodEnum<["pending", "processing", "completed", "failed"]>>;
1869
+ 'filter[observationType]': z.ZodOptional<z.ZodString>;
1870
+ 'filter[severity]': z.ZodOptional<z.ZodEnum<["low", "medium", "high", "critical"]>>;
1865
1871
  }, "strip", z.ZodTypeAny, {
1866
- pageSize: string;
1867
- page: string;
1868
- status?: "pending" | "completed" | "failed" | "processing" | undefined;
1869
- fieldId?: string | undefined;
1870
- severity?: "critical" | "low" | "medium" | "high" | undefined;
1871
- startDate?: string | undefined;
1872
- endDate?: string | undefined;
1873
- observationType?: string | undefined;
1872
+ 'page[number]'?: number | undefined;
1873
+ 'page[size]'?: number | undefined;
1874
+ 'filter[startDate]'?: string | undefined;
1875
+ 'filter[endDate]'?: string | undefined;
1876
+ 'filter[status]'?: "pending" | "completed" | "failed" | "processing" | undefined;
1877
+ 'filter[crop]'?: string | undefined;
1878
+ 'filter[fieldId]'?: string | undefined;
1879
+ 'filter[observationType]'?: string | undefined;
1880
+ 'filter[severity]'?: "critical" | "low" | "medium" | "high" | undefined;
1874
1881
  }, {
1875
- status?: "pending" | "completed" | "failed" | "processing" | undefined;
1876
- pageSize?: string | undefined;
1877
- fieldId?: string | undefined;
1878
- severity?: "critical" | "low" | "medium" | "high" | undefined;
1879
- startDate?: string | undefined;
1880
- endDate?: string | undefined;
1881
- observationType?: string | undefined;
1882
- page?: string | undefined;
1882
+ 'page[number]'?: number | undefined;
1883
+ 'page[size]'?: number | undefined;
1884
+ 'filter[startDate]'?: string | undefined;
1885
+ 'filter[endDate]'?: string | undefined;
1886
+ 'filter[status]'?: "pending" | "completed" | "failed" | "processing" | undefined;
1887
+ 'filter[crop]'?: string | undefined;
1888
+ 'filter[fieldId]'?: string | undefined;
1889
+ 'filter[observationType]'?: string | undefined;
1890
+ 'filter[severity]'?: "critical" | "low" | "medium" | "high" | undefined;
1883
1891
  }>;
1884
1892
  summary: "List all observations across all farm fields";
1885
1893
  method: "GET";
@@ -1 +1 @@
1
- {"version":3,"file":"field-observations.routes.d.ts","sourceRoot":"","sources":["../../src/routes/field-observations.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoHlC,CAAC"}
1
+ {"version":3,"file":"field-observations.routes.d.ts","sourceRoot":"","sources":["../../src/routes/field-observations.routes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoHlC,CAAC"}