@deepintel-ltd/farmpro-contracts 1.0.2 → 1.0.4

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 (106) hide show
  1. package/dist/index.d.ts +43 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +84 -0
  4. package/dist/routes/analytics.routes.d.ts +754 -0
  5. package/dist/routes/analytics.routes.d.ts.map +1 -0
  6. package/dist/routes/analytics.routes.js +24 -0
  7. package/dist/routes/auth.routes.d.ts +3836 -0
  8. package/dist/routes/auth.routes.d.ts.map +1 -0
  9. package/dist/routes/auth.routes.js +158 -0
  10. package/dist/routes/categories.routes.d.ts +800 -0
  11. package/dist/routes/categories.routes.d.ts.map +1 -0
  12. package/dist/routes/categories.routes.js +120 -0
  13. package/dist/routes/documents.routes.d.ts +2476 -0
  14. package/dist/routes/documents.routes.d.ts.map +1 -0
  15. package/dist/routes/documents.routes.js +100 -0
  16. package/dist/routes/equipment.routes.d.ts +3617 -0
  17. package/dist/routes/equipment.routes.d.ts.map +1 -0
  18. package/dist/routes/equipment.routes.js +118 -0
  19. package/dist/routes/farms.routes.d.ts +2202 -0
  20. package/dist/routes/farms.routes.d.ts.map +1 -0
  21. package/dist/routes/farms.routes.js +111 -0
  22. package/dist/routes/fields.routes.d.ts +3479 -0
  23. package/dist/routes/fields.routes.d.ts.map +1 -0
  24. package/dist/routes/fields.routes.js +96 -0
  25. package/dist/routes/finance.routes.d.ts +6855 -0
  26. package/dist/routes/finance.routes.d.ts.map +1 -0
  27. package/dist/routes/finance.routes.js +259 -0
  28. package/dist/routes/harvest.routes.d.ts +2337 -0
  29. package/dist/routes/harvest.routes.d.ts.map +1 -0
  30. package/dist/routes/harvest.routes.js +99 -0
  31. package/dist/routes/index.d.ts +71 -0
  32. package/dist/routes/index.d.ts.map +1 -0
  33. package/dist/routes/index.js +45 -0
  34. package/dist/routes/inventory.routes.d.ts +2853 -0
  35. package/dist/routes/inventory.routes.d.ts.map +1 -0
  36. package/dist/routes/inventory.routes.js +121 -0
  37. package/dist/routes/soil-tests.routes.d.ts +3005 -0
  38. package/dist/routes/soil-tests.routes.d.ts.map +1 -0
  39. package/dist/routes/soil-tests.routes.js +98 -0
  40. package/dist/routes/suppliers.routes.d.ts +4190 -0
  41. package/dist/routes/suppliers.routes.d.ts.map +1 -0
  42. package/dist/routes/suppliers.routes.js +146 -0
  43. package/dist/routes/tasks.routes.d.ts +4248 -0
  44. package/dist/routes/tasks.routes.d.ts.map +1 -0
  45. package/dist/routes/tasks.routes.js +138 -0
  46. package/dist/routes/team.routes.d.ts +2210 -0
  47. package/dist/routes/team.routes.d.ts.map +1 -0
  48. package/dist/routes/team.routes.js +98 -0
  49. package/dist/routes/users.routes.d.ts +721 -0
  50. package/dist/routes/users.routes.d.ts.map +1 -0
  51. package/dist/routes/users.routes.js +35 -0
  52. package/dist/routes/weather.routes.d.ts +500 -0
  53. package/dist/routes/weather.routes.d.ts.map +1 -0
  54. package/dist/routes/weather.routes.js +23 -0
  55. package/dist/schemas/analytics.schemas.d.ts +1344 -0
  56. package/dist/schemas/analytics.schemas.d.ts.map +1 -0
  57. package/dist/schemas/analytics.schemas.js +73 -0
  58. package/dist/schemas/auth.schemas.d.ts +1093 -0
  59. package/dist/schemas/auth.schemas.d.ts.map +1 -0
  60. package/dist/schemas/auth.schemas.js +159 -0
  61. package/dist/schemas/categories.schemas.d.ts +471 -0
  62. package/dist/schemas/categories.schemas.d.ts.map +1 -0
  63. package/dist/schemas/categories.schemas.js +51 -0
  64. package/dist/schemas/common.schemas.d.ts +562 -0
  65. package/dist/schemas/common.schemas.d.ts.map +1 -0
  66. package/dist/schemas/common.schemas.js +122 -0
  67. package/dist/schemas/documents.schemas.d.ts +850 -0
  68. package/dist/schemas/documents.schemas.d.ts.map +1 -0
  69. package/dist/schemas/documents.schemas.js +75 -0
  70. package/dist/schemas/equipment.schemas.d.ts +1618 -0
  71. package/dist/schemas/equipment.schemas.d.ts.map +1 -0
  72. package/dist/schemas/equipment.schemas.js +125 -0
  73. package/dist/schemas/farms.schemas.d.ts +1171 -0
  74. package/dist/schemas/farms.schemas.d.ts.map +1 -0
  75. package/dist/schemas/farms.schemas.js +62 -0
  76. package/dist/schemas/fields.schemas.d.ts +2508 -0
  77. package/dist/schemas/fields.schemas.d.ts.map +1 -0
  78. package/dist/schemas/fields.schemas.js +125 -0
  79. package/dist/schemas/finance.schemas.d.ts +2869 -0
  80. package/dist/schemas/finance.schemas.d.ts.map +1 -0
  81. package/dist/schemas/finance.schemas.js +196 -0
  82. package/dist/schemas/harvest.schemas.d.ts +1051 -0
  83. package/dist/schemas/harvest.schemas.d.ts.map +1 -0
  84. package/dist/schemas/harvest.schemas.js +71 -0
  85. package/dist/schemas/inventory.schemas.d.ts +1138 -0
  86. package/dist/schemas/inventory.schemas.d.ts.map +1 -0
  87. package/dist/schemas/inventory.schemas.js +89 -0
  88. package/dist/schemas/soil-tests.schemas.d.ts +1885 -0
  89. package/dist/schemas/soil-tests.schemas.d.ts.map +1 -0
  90. package/dist/schemas/soil-tests.schemas.js +102 -0
  91. package/dist/schemas/suppliers.schemas.d.ts +1774 -0
  92. package/dist/schemas/suppliers.schemas.d.ts.map +1 -0
  93. package/dist/schemas/suppliers.schemas.js +121 -0
  94. package/dist/schemas/tasks.schemas.d.ts +1811 -0
  95. package/dist/schemas/tasks.schemas.d.ts.map +1 -0
  96. package/dist/schemas/tasks.schemas.js +124 -0
  97. package/dist/schemas/team.schemas.d.ts +583 -0
  98. package/dist/schemas/team.schemas.d.ts.map +1 -0
  99. package/dist/schemas/team.schemas.js +60 -0
  100. package/dist/schemas/users.schemas.d.ts +288 -0
  101. package/dist/schemas/users.schemas.d.ts.map +1 -0
  102. package/dist/schemas/users.schemas.js +32 -0
  103. package/dist/schemas/weather.schemas.d.ts +682 -0
  104. package/dist/schemas/weather.schemas.d.ts.map +1 -0
  105. package/dist/schemas/weather.schemas.js +49 -0
  106. package/package.json +1 -1
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dateRangeQuerySchema = exports.paginationQuerySchema = exports.errorResponseSchema = exports.createJsonApiResourceSchema = exports.timestampsSchema = exports.idParamSchema = exports.jsonApiSuccessResponseSchema = exports.jsonApiErrorResponseSchema = exports.jsonApiErrorSchema = exports.jsonApiIncludeQuerySchema = exports.jsonApiFieldsQuerySchema = exports.jsonApiFilterQuerySchema = exports.jsonApiSortQuerySchema = exports.jsonApiPaginationMetaSchema = exports.jsonApiPaginationLinksSchema = exports.jsonApiPaginationQuerySchema = exports.jsonApiCollectionResponseSchema = exports.jsonApiSingleResponseSchema = exports.jsonApiResourceSchema = exports.geoJSONGeometrySchema = void 0;
4
+ const zod_1 = require("zod");
5
+ /**
6
+ * Common schemas used across all API contracts - JSON:API compliant
7
+ */
8
+ // GeoJSON Geometry Schema (Polygon, MultiPolygon, Point, LineString)
9
+ exports.geoJSONGeometrySchema = zod_1.z.object({
10
+ type: zod_1.z.enum(['Polygon', 'MultiPolygon', 'Point', 'LineString']),
11
+ coordinates: zod_1.z.union([
12
+ zod_1.z.array(zod_1.z.array(zod_1.z.array(zod_1.z.number()))), // Polygon: [[[lng, lat], ...]]
13
+ zod_1.z.array(zod_1.z.array(zod_1.z.array(zod_1.z.array(zod_1.z.number())))), // MultiPolygon: [[[[lng, lat], ...]]]
14
+ zod_1.z.array(zod_1.z.number()), // Point: [lng, lat]
15
+ zod_1.z.array(zod_1.z.array(zod_1.z.number())), // LineString: [[lng, lat], ...]
16
+ ]),
17
+ });
18
+ // JSON:API Resource Object Base
19
+ exports.jsonApiResourceSchema = zod_1.z.object({
20
+ type: zod_1.z.string(),
21
+ id: zod_1.z.string(),
22
+ attributes: zod_1.z.record(zod_1.z.unknown()).optional(),
23
+ relationships: zod_1.z.record(zod_1.z.unknown()).optional(),
24
+ links: zod_1.z.record(zod_1.z.string()).optional(),
25
+ meta: zod_1.z.record(zod_1.z.unknown()).optional(),
26
+ });
27
+ // JSON:API Single Resource Response
28
+ const jsonApiSingleResponseSchema = (resourceSchema) => zod_1.z.object({
29
+ data: resourceSchema,
30
+ included: zod_1.z.array(exports.jsonApiResourceSchema).optional(),
31
+ meta: zod_1.z.record(zod_1.z.unknown()).optional(),
32
+ links: zod_1.z.record(zod_1.z.string()).optional(),
33
+ });
34
+ exports.jsonApiSingleResponseSchema = jsonApiSingleResponseSchema;
35
+ // JSON:API Collection Response
36
+ const jsonApiCollectionResponseSchema = (resourceSchema) => zod_1.z.object({
37
+ data: zod_1.z.array(resourceSchema),
38
+ included: zod_1.z.array(exports.jsonApiResourceSchema).optional(),
39
+ meta: zod_1.z.record(zod_1.z.unknown()).optional(),
40
+ links: zod_1.z.record(zod_1.z.string()).optional(),
41
+ });
42
+ exports.jsonApiCollectionResponseSchema = jsonApiCollectionResponseSchema;
43
+ exports.jsonApiPaginationQuerySchema = zod_1.z.object({
44
+ 'page[number]': zod_1.z.coerce.number().int().positive().default(1).optional(),
45
+ 'page[size]': zod_1.z.coerce.number().int().positive().max(100).default(20).optional(),
46
+ });
47
+ exports.jsonApiPaginationLinksSchema = zod_1.z.object({
48
+ first: zod_1.z.string().optional(),
49
+ last: zod_1.z.string().optional(),
50
+ prev: zod_1.z.string().optional(),
51
+ next: zod_1.z.string().optional(),
52
+ self: zod_1.z.string(),
53
+ });
54
+ exports.jsonApiPaginationMetaSchema = zod_1.z.object({
55
+ totalRecords: zod_1.z.number().int().nonnegative(),
56
+ totalPages: zod_1.z.number().int().nonnegative(),
57
+ currentPage: zod_1.z.number().int().positive(),
58
+ pageSize: zod_1.z.number().int().positive(),
59
+ });
60
+ exports.jsonApiSortQuerySchema = zod_1.z.object({
61
+ sort: zod_1.z.string().optional(), // e.g., "name,-createdAt"
62
+ });
63
+ exports.jsonApiFilterQuerySchema = zod_1.z.object({
64
+ 'filter[startDate]': zod_1.z.string().datetime().optional(),
65
+ 'filter[endDate]': zod_1.z.string().datetime().optional(),
66
+ 'filter[status]': zod_1.z.string().optional(),
67
+ 'filter[crop]': zod_1.z.string().optional(),
68
+ });
69
+ exports.jsonApiFieldsQuerySchema = zod_1.z.record(zod_1.z.string(), // resource type
70
+ zod_1.z.string() // comma-separated field names
71
+ ).optional();
72
+ exports.jsonApiIncludeQuerySchema = zod_1.z.object({
73
+ include: zod_1.z.string().optional(), // e.g., "fields,team"
74
+ });
75
+ exports.jsonApiErrorSchema = zod_1.z.object({
76
+ id: zod_1.z.string().optional(),
77
+ links: zod_1.z.object({
78
+ about: zod_1.z.string().optional(),
79
+ }).optional(),
80
+ status: zod_1.z.string().optional(), // HTTP status code as string
81
+ code: zod_1.z.string().optional(), // Application-specific error code
82
+ title: zod_1.z.string().optional(), // Short, human-readable summary
83
+ detail: zod_1.z.string().optional(), // Human-readable explanation
84
+ source: zod_1.z.object({
85
+ pointer: zod_1.z.string().optional(), // JSON Pointer to associated field
86
+ parameter: zod_1.z.string().optional(), // Query parameter that caused the error
87
+ }).optional(),
88
+ meta: zod_1.z.record(zod_1.z.unknown()).optional(),
89
+ });
90
+ exports.jsonApiErrorResponseSchema = zod_1.z.object({
91
+ errors: zod_1.z.array(exports.jsonApiErrorSchema),
92
+ meta: zod_1.z.record(zod_1.z.unknown()).optional(),
93
+ });
94
+ exports.jsonApiSuccessResponseSchema = zod_1.z.object({
95
+ meta: zod_1.z.object({
96
+ message: zod_1.z.string(),
97
+ }),
98
+ });
99
+ exports.idParamSchema = zod_1.z.object({
100
+ id: zod_1.z.string().uuid(),
101
+ });
102
+ exports.timestampsSchema = zod_1.z.object({
103
+ createdAt: zod_1.z.string().datetime(),
104
+ updatedAt: zod_1.z.string().datetime(),
105
+ });
106
+ // Helper to create a JSON:API resource schema
107
+ const createJsonApiResourceSchema = (resourceType, attributesSchema) => zod_1.z.object({
108
+ type: zod_1.z.literal(resourceType),
109
+ id: zod_1.z.string(),
110
+ attributes: attributesSchema,
111
+ relationships: zod_1.z.record(zod_1.z.unknown()).optional(),
112
+ links: zod_1.z.record(zod_1.z.string()).optional(),
113
+ meta: zod_1.z.record(zod_1.z.unknown()).optional(),
114
+ });
115
+ exports.createJsonApiResourceSchema = createJsonApiResourceSchema;
116
+ // Backward compatibility exports (deprecated - use JSON:API versions)
117
+ exports.errorResponseSchema = exports.jsonApiErrorResponseSchema;
118
+ exports.paginationQuerySchema = exports.jsonApiPaginationQuerySchema;
119
+ exports.dateRangeQuerySchema = zod_1.z.object({
120
+ 'filter[startDate]': zod_1.z.string().datetime().optional(),
121
+ 'filter[endDate]': zod_1.z.string().datetime().optional(),
122
+ });