@litusarchieve18/agricore-utils 1.0.11 → 1.0.13

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,654 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/constants.ts
21
+ var constants_exports = {};
22
+ __export(constants_exports, {
23
+ ACCESS_RANK: () => ACCESS_RANK,
24
+ ACT: () => ACT,
25
+ AccessLevel: () => AccessLevel,
26
+ ApprovalStatus: () => ApprovalStatus,
27
+ ApprovalType: () => ApprovalType,
28
+ AuditStatus: () => AuditStatus,
29
+ AuditType: () => AuditType,
30
+ CAT: () => CAT,
31
+ CropCycleStatus: () => CropCycleStatus,
32
+ DOCUMENT_MENU_MAP: () => DOCUMENT_MENU_MAP,
33
+ DocumentType: () => DocumentType,
34
+ ERROR_DICTIONARY: () => ERROR_DICTIONARY,
35
+ EVERYONE: () => EVERYONE,
36
+ EmitterType: () => EmitterType,
37
+ EnabledModule: () => EnabledModule,
38
+ FORM_REGISTRY: () => FORM_REGISTRY,
39
+ FacilityType: () => FacilityType,
40
+ HarvestMethod: () => HarvestMethod,
41
+ LinkedStatus: () => LinkedStatus,
42
+ MOD: () => MOD,
43
+ MODULE_LABELS: () => MODULE_LABELS,
44
+ MicroclimateZone: () => MicroclimateZone,
45
+ MimeType: () => MimeType,
46
+ NettingType: () => NettingType,
47
+ NotificationMode: () => NotificationMode,
48
+ OrderStatus: () => OrderStatus,
49
+ PhysicalState: () => PhysicalState,
50
+ PlantingMethod: () => PlantingMethod,
51
+ RESOURCE_MODULE_MAP: () => RESOURCE_MODULE_MAP,
52
+ RESOURCE_PATHS: () => RESOURCE_PATHS,
53
+ RESOURCE_REQUIREMENTS: () => RESOURCE_REQUIREMENTS,
54
+ ROLE_SECTIONS_BY_KEY: () => ROLE_SECTIONS_BY_KEY,
55
+ RelationshipType: () => RelationshipType,
56
+ RowOrientation: () => RowOrientation,
57
+ SENTINEL_UUID: () => SENTINEL_UUID,
58
+ SoilTexture: () => SoilTexture,
59
+ TASK_TYPE_REGISTRY: () => TASK_TYPE_REGISTRY,
60
+ TargetEntityType: () => TargetEntityType,
61
+ TaskStatus: () => TaskStatus,
62
+ TaskType: () => TaskType,
63
+ TransactionType: () => TransactionType,
64
+ TrellisType: () => TrellisType,
65
+ UserPrivilege: () => UserPrivilege,
66
+ UserRole: () => UserRole,
67
+ VigorRating: () => VigorRating,
68
+ WaterSource: () => WaterSource
69
+ });
70
+ module.exports = __toCommonJS(constants_exports);
71
+ var MOD = {
72
+ OPERATIONS: "OPR",
73
+ EQUIPMENT: "EQP",
74
+ PACKHOUSE: "PCK",
75
+ FARM: "FRM",
76
+ SAFETY: "SAF",
77
+ TEAM_HR: "THR",
78
+ RECORDS: "REC",
79
+ ADMIN: "ADM",
80
+ DOCUMENTS: "DOC",
81
+ ALERTS: "ALT",
82
+ INFRA: "INF",
83
+ SESSION: "SES"
84
+ };
85
+ var CAT = {
86
+ SUBSCRIPTION: "1",
87
+ PERMISSION: "2",
88
+ VALIDATION: "3",
89
+ INTEGRITY: "4"
90
+ };
91
+ var ACT = {
92
+ GENERIC: "00",
93
+ VIEW: "01",
94
+ CREATE: "02",
95
+ EDIT: "03",
96
+ DELETE: "04",
97
+ UPLOAD: "05"
98
+ };
99
+ var SENTINEL_UUID = "00000000-0000-0000-0000-000000000000";
100
+ var MODULE_LABELS = {
101
+ [MOD.OPERATIONS]: "Operations",
102
+ [MOD.EQUIPMENT]: "Equipment & Fleet",
103
+ [MOD.PACKHOUSE]: "Packhouse",
104
+ [MOD.FARM]: "Farm Management",
105
+ [MOD.SAFETY]: "Safety & Compliance",
106
+ [MOD.TEAM_HR]: "Team & HR",
107
+ [MOD.RECORDS]: "Records & Reports",
108
+ [MOD.ADMIN]: "Admin Settings",
109
+ [MOD.DOCUMENTS]: "Documents",
110
+ [MOD.ALERTS]: "Alerts",
111
+ [MOD.INFRA]: "Infrastructure",
112
+ [MOD.SESSION]: "Session"
113
+ };
114
+ var ERROR_DICTIONARY = {
115
+ // ── Gate 1: Subscription ──────────────────────────────────────────────────
116
+ "100": { title: "Module Locked", text: "This feature is part of a module not enabled for your company. Contact your administrator to unlock it." },
117
+ // ── Gate 2: Permission ────────────────────────────────────────────────────
118
+ "200": { title: "Access Denied", text: "You do not have permission to perform this action. Contact your manager." },
119
+ "201": { title: "Restricted View", text: "Viewing this section requires higher access. Contact your administrator." },
120
+ "202": { title: "Creation Restricted", text: "You are not permitted to create new records here." },
121
+ "203": { title: "Edit Restricted", text: "You do not have permission to edit this record." },
122
+ "204": { title: "Protected Record", text: "You do not have permission to delete this record. Contact your administrator." },
123
+ "205": { title: "Upload Restricted", text: "You are not permitted to upload files here." },
124
+ // ── Gate 3: Validation ────────────────────────────────────────────────────
125
+ "300": { title: "Invalid Input", text: "Something is wrong with the data provided. Please review and try again." },
126
+ "301": { title: "Cannot Load Data", text: "Required information is missing to load this page." },
127
+ "302": { title: "Missing Fields", text: "Please fill in all required fields before saving." },
128
+ "303": { title: "Invalid Update", text: "The data you are trying to save is not valid. Please check your inputs." },
129
+ "304": { title: "Cannot Delete", text: "The record cannot be deleted due to a validation issue." },
130
+ "305": { title: "Upload Failed", text: "The file could not be uploaded. Please check the file type and size." },
131
+ // ── Gate 4: Integrity ─────────────────────────────────────────────────────
132
+ "400": { title: "Data Conflict", text: "A conflict occurred with an existing record. Please review and try again." },
133
+ "402": { title: "Duplicate Entry", text: "A record with this name or identifier already exists." },
134
+ "403": { title: "Edit Conflict", text: "This record was recently updated by someone else. Please refresh and try again." },
135
+ "404": { title: "Record In Use", text: "This record cannot be deleted because it is referenced by other data." }
136
+ };
137
+ var UserRole = {
138
+ OWNER: "owner",
139
+ MANAGER: "manager",
140
+ SUPERVISOR: "supervisor",
141
+ LEADING_HAND: "leadingHand",
142
+ WORKER: "worker"
143
+ };
144
+ var UserPrivilege = {
145
+ FINANCE: "finance",
146
+ HR: "hr",
147
+ MECHANIC: "mechanic",
148
+ AUDIT_COMPLIANCE: "auditCompliance",
149
+ ADMIN: "admin"
150
+ };
151
+ var AccessLevel = {
152
+ NONE: "NONE",
153
+ READ: "READ",
154
+ WRITE: "WRITE"
155
+ };
156
+ var EnabledModule = {
157
+ FARM_MANAGEMENT: "farm_management",
158
+ PACKHOUSE: "packhouse",
159
+ ACCOMMODATION: "accommodation"
160
+ };
161
+ var FacilityType = {
162
+ FARM: "farm",
163
+ PACKHOUSE: "packhouse",
164
+ ACCOMMODATION: "accommodation"
165
+ };
166
+ var LinkedStatus = {
167
+ NOT_LINKED: "not_linked",
168
+ PENDING_LINK: "pending_link",
169
+ LINKED: "linked"
170
+ };
171
+ var RelationshipType = {
172
+ SUPPLIER: "supplier",
173
+ CUSTOMER: "customer",
174
+ BOTH: "both"
175
+ };
176
+ var ApprovalType = {
177
+ ROLE: "role",
178
+ PRIVILEGE: "privilege",
179
+ SPECIFIC_USERS: "specific_users"
180
+ };
181
+ var TransactionType = {
182
+ PURCHASE_ORDER: "purchase_order",
183
+ SALES_ORDER: "sales_order",
184
+ REPAIR: "repair",
185
+ FUEL: "fuel",
186
+ OTHER: "other"
187
+ };
188
+ var ApprovalStatus = {
189
+ PENDING: "pending",
190
+ APPROVED: "approved",
191
+ REJECTED: "rejected"
192
+ };
193
+ var OrderStatus = {
194
+ DRAFT: "draft",
195
+ PENDING_FINANCE: "pending_finance",
196
+ NEW: "new",
197
+ ACKNOWLEDGED: "acknowledged",
198
+ IN_PROGRESS: "in_progress",
199
+ SHIPPED: "shipped",
200
+ RECEIVED: "received",
201
+ CANCELLED: "cancelled"
202
+ };
203
+ var NotificationMode = {
204
+ INTERNAL: "internal",
205
+ EXTERNAL_EMAIL: "external_email",
206
+ NONE: "none"
207
+ };
208
+ var TaskType = {
209
+ KML_PARSE: "KML_PARSE",
210
+ INVOICE_OCR: "INVOICE_OCR",
211
+ AUDIT_UPLOAD: "AUDIT_UPLOAD",
212
+ REPORT_GEN: "REPORT_GEN"
213
+ };
214
+ var TaskStatus = {
215
+ PENDING: "PENDING",
216
+ PROCESSING: "PROCESSING",
217
+ COMPLETED: "COMPLETED",
218
+ FAILED: "FAILED",
219
+ AWAITING_REVIEW: "AWAITING_REVIEW",
220
+ VERIFIED: "VERIFIED",
221
+ REJECTED: "REJECTED"
222
+ };
223
+ var MimeType = {
224
+ KML: "application/vnd.google-earth.kml+xml",
225
+ KMZ: "application/vnd.google-earth.kmz",
226
+ PDF: "application/pdf",
227
+ XLSX: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
228
+ XLS: "application/vnd.ms-excel",
229
+ JPEG: "image/jpeg",
230
+ PNG: "image/png"
231
+ };
232
+ var TargetEntityType = {
233
+ FARM: "FARM",
234
+ ZONE: "ZONE",
235
+ BLOCK: "BLOCK",
236
+ INFRASTRUCTURE: "INFRASTRUCTURE",
237
+ AUTO: "AUTO"
238
+ };
239
+ var AuditType = {
240
+ FRESHCARE: "Freshcare",
241
+ HACCP: "HACCP",
242
+ WHS: "WHS",
243
+ CUSTOM: "Custom"
244
+ };
245
+ var AuditStatus = {
246
+ DRAFT: "DRAFT",
247
+ IN_REVIEW: "IN_REVIEW",
248
+ FINALIZED: "FINALIZED"
249
+ };
250
+ var SoilTexture = {
251
+ SAND: "SAND",
252
+ LOAMY_SAND: "LOAMY_SAND",
253
+ SANDY_LOAM: "SANDY_LOAM",
254
+ LOAM: "LOAM",
255
+ SILT_LOAM: "SILT_LOAM",
256
+ SILT: "SILT",
257
+ SANDY_CLAY_LOAM: "SANDY_CLAY_LOAM",
258
+ CLAY_LOAM: "CLAY_LOAM",
259
+ SILTY_CLAY_LOAM: "SILTY_CLAY_LOAM",
260
+ SANDY_CLAY: "SANDY_CLAY",
261
+ SILTY_CLAY: "SILTY_CLAY",
262
+ CLAY: "CLAY"
263
+ };
264
+ var MicroclimateZone = {
265
+ STANDARD: "STANDARD",
266
+ FROST_POCKET: "FROST_POCKET",
267
+ WIND_CORRIDOR: "WIND_CORRIDOR",
268
+ EXPOSED_RIDGE: "EXPOSED_RIDGE",
269
+ HEAT_TRAP: "HEAT_TRAP",
270
+ RIPARIAN: "RIPARIAN"
271
+ };
272
+ var PlantingMethod = {
273
+ SQUARE: "SQUARE",
274
+ RECTANGULAR: "RECTANGULAR",
275
+ HEXAGONAL: "HEXAGONAL",
276
+ QUINCUNX: "QUINCUNX",
277
+ CONTOUR: "CONTOUR"
278
+ };
279
+ var RowOrientation = {
280
+ NORTH_SOUTH: "NORTH_SOUTH",
281
+ EAST_WEST: "EAST_WEST",
282
+ NORTHEAST_SOUTHWEST: "NORTHEAST_SOUTHWEST",
283
+ NORTHWEST_SOUTHEAST: "NORTHWEST_SOUTHEAST"
284
+ };
285
+ var EmitterType = {
286
+ SURFACE_DRIP: "SURFACE_DRIP",
287
+ SUBSURFACE_DRIP: "SUBSURFACE_DRIP",
288
+ MICRO_SPRINKLER: "MICRO_SPRINKLER",
289
+ JET_SPRAY: "JET_SPRAY",
290
+ INLINE_DRIPPER: "INLINE_DRIPPER",
291
+ PRESSURE_COMPENSATED: "PRESSURE_COMPENSATED"
292
+ };
293
+ var TrellisType = {
294
+ NONE: "NONE",
295
+ VERTICAL_AXIS: "VERTICAL_AXIS",
296
+ TWO_D_PLANE: "2D_PLANE",
297
+ V_TRELLIS: "V_TRELLIS",
298
+ T_BAR: "T_BAR",
299
+ PERGOLA: "PERGOLA",
300
+ Y_TRELLIS: "Y_TRELLIS"
301
+ };
302
+ var NettingType = {
303
+ NONE: "NONE",
304
+ OVERHEAD_HAIL: "OVERHEAD_HAIL",
305
+ SIDE_BIRD: "SIDE_BIRD",
306
+ FULL_EXCLUSION: "FULL_EXCLUSION",
307
+ SHADE_30: "SHADE_30",
308
+ SHADE_50: "SHADE_50",
309
+ CROSS_OVER: "CROSS_OVER"
310
+ };
311
+ var HarvestMethod = {
312
+ HAND: "HAND",
313
+ MACHINE: "MACHINE"
314
+ };
315
+ var VigorRating = {
316
+ VERY_LOW: "VERY_LOW",
317
+ LOW: "LOW",
318
+ MODERATE: "MODERATE",
319
+ HIGH: "HIGH",
320
+ VERY_HIGH: "VERY_HIGH"
321
+ };
322
+ var CropCycleStatus = {
323
+ NEW: "NEW",
324
+ CONFIRMED: "CONFIRMED",
325
+ ACTIVE: "ACTIVE",
326
+ COMPLETED: "COMPLETED"
327
+ };
328
+ var WaterSource = {
329
+ BORE_WELL: "BORE_WELL",
330
+ RIVER_STREAM: "RIVER_STREAM",
331
+ ON_FARM_DAM: "ON_FARM_DAM",
332
+ IRRIGATION_SCHEME: "IRRIGATION_SCHEME",
333
+ MUNICIPAL: "MUNICIPAL",
334
+ RECLAIMED_WASTE: "RECLAIMED_WASTE",
335
+ RAINWATER: "RAINWATER"
336
+ };
337
+ var PhysicalState = {
338
+ LIQUID: "LIQUID",
339
+ GAS: "GAS"
340
+ };
341
+ var FORM_REGISTRY = {
342
+ // ── Farm Management ──────────────────────────────────────────────────────
343
+ farmForm: { label: "Farm Profile", menuUrl: "/admin", module: "Farm Management" },
344
+ zoneForm: { label: "Zone Mapping", menuUrl: "/admin", module: "Farm Management" },
345
+ blockForm: { label: "Block Definition", menuUrl: "/admin", module: "Farm Management" },
346
+ // ── Crop & Variety ───────────────────────────────────────────────────────
347
+ cropForm: { label: "Crop Profile", menuUrl: "/admin", module: "Crop Library" },
348
+ varietyForm: { label: "Variety Blueprint", menuUrl: "/admin", module: "Crop Library" },
349
+ // ── Administration ───────────────────────────────────────────────────────
350
+ userAccessForm: { label: "User Access & Roles", menuUrl: "/admin/users", module: "Administration" },
351
+ companySettingsForm: { label: "Company Settings", menuUrl: "/admin/company", module: "Administration" },
352
+ financeTierForm: { label: "Finance Approval Tier", menuUrl: "/admin/company", module: "Administration" },
353
+ // ── Audit & Compliance ───────────────────────────────────────────────────
354
+ auditProjectForm: { label: "Audit Project", menuUrl: "/admin", module: "Audit & Compliance" }
355
+ };
356
+ var TASK_TYPE_REGISTRY = {
357
+ INVOICE_OCR: {
358
+ label: "Invoice / Receipt OCR",
359
+ targetEntity: "FuelInvoice",
360
+ description: "Extract invoice data (supplier, amount, date, line items) using AI.",
361
+ mimeTypes: [MimeType.PDF, MimeType.JPEG, MimeType.PNG],
362
+ icon: "FileText",
363
+ approveAction: "CREATE_FUEL_INVOICE"
364
+ },
365
+ KML_PARSE: {
366
+ label: "KML / Farm Boundary",
367
+ targetEntity: "Zone",
368
+ description: "Parse KML file to extract GPS polygon boundaries for a farm zone.",
369
+ mimeTypes: [MimeType.KML],
370
+ icon: "MapPin",
371
+ approveAction: "UPDATE_ZONE_POLYGON"
372
+ },
373
+ AUDIT_UPLOAD: {
374
+ label: "Audit / Compliance Document",
375
+ targetEntity: "AuditManifest",
376
+ description: "Attach evidence documents to a compliance audit project.",
377
+ mimeTypes: [MimeType.PDF, MimeType.JPEG, MimeType.PNG, MimeType.XLSX],
378
+ icon: "ShieldCheck",
379
+ approveAction: "LINK_AUDIT_MANIFEST"
380
+ },
381
+ REPORT_GEN: {
382
+ label: "Report Generation",
383
+ targetEntity: "AuditProject",
384
+ description: "Upload a completed audit report for storage and linking.",
385
+ mimeTypes: [MimeType.PDF],
386
+ icon: "BarChart2",
387
+ approveAction: "ATTACH_REPORT_FILE"
388
+ }
389
+ };
390
+ var RESOURCE_PATHS = {
391
+ // ── Top-level menu sections ────────────────────────────────────────────────
392
+ dashboard: "dashboard",
393
+ operations: "operations",
394
+ equipment: "equipment",
395
+ safety: "safety",
396
+ team: "team",
397
+ records: "records",
398
+ adminSettings: "adminSettings",
399
+ // ── Records & Reports ──────────────────────────────────────────────────────
400
+ documentHub: "records.documentHub",
401
+ documentHubTemplates: "records.documentHub.templates",
402
+ documentHubFolder: "records.documentHub.companyFolder",
403
+ documentHubExtraction: "records.documentHub.extractionHub",
404
+ documentHubQueue: "records.documentHub.verificationQueue",
405
+ analytics: "records.analytics",
406
+ // ── Admin Settings ─────────────────────────────────────────────────────────
407
+ adminUserRoster: "adminSettings.userRoster",
408
+ adminRolesPermissions: "adminSettings.rolesPermissions",
409
+ adminBlueprintsSites: "adminSettings.blueprintsSites",
410
+ adminCompanySettings: "adminSettings.companySettings",
411
+ // ── Operations ────────────────────────────────────────────────────────────
412
+ farmManagement: "operations.farmManagement",
413
+ packhouse: "operations.packhouse",
414
+ accommodation: "operations.accommodation",
415
+ // ── Equipment & Fleet ──────────────────────────────────────────────────────
416
+ equipPreStart: "equipment.preStart",
417
+ equipMaintenance: "equipment.maintenance",
418
+ equipFuelRegister: "equipment.fuelRegister",
419
+ equipCalibration: "equipment.calibration",
420
+ equipFleet: "equipment.fleetManagement",
421
+ // ── Safety, Quality & Compliance ──────────────────────────────────────────
422
+ safetyAuditing: "safety.auditing",
423
+ safetyFood: "safety.foodSafety",
424
+ safetyWhs: "safety.whs",
425
+ safetyCleaning: "safety.cleaning",
426
+ // ── Team & HR ──────────────────────────────────────────────────────────────
427
+ teamStaff: "team.staff",
428
+ teamTraining: "team.training"
429
+ };
430
+ var ALL_OPERATIONS = [
431
+ EnabledModule.FARM_MANAGEMENT,
432
+ EnabledModule.PACKHOUSE,
433
+ EnabledModule.ACCOMMODATION
434
+ ];
435
+ var AGRI_ONLY = [
436
+ EnabledModule.FARM_MANAGEMENT,
437
+ EnabledModule.PACKHOUSE
438
+ ];
439
+ var RESOURCE_MODULE_MAP = {
440
+ // ── Top-level menu sections ────────────────────────────────────────────────
441
+ [RESOURCE_PATHS.dashboard]: [],
442
+ [RESOURCE_PATHS.operations]: ALL_OPERATIONS,
443
+ [RESOURCE_PATHS.equipment]: ALL_OPERATIONS,
444
+ [RESOURCE_PATHS.safety]: ALL_OPERATIONS,
445
+ [RESOURCE_PATHS.team]: ALL_OPERATIONS,
446
+ [RESOURCE_PATHS.records]: ALL_OPERATIONS,
447
+ [RESOURCE_PATHS.adminSettings]: ALL_OPERATIONS,
448
+ // ── Records & Reports ──────────────────────────────────────────────────────
449
+ [RESOURCE_PATHS.documentHub]: ALL_OPERATIONS,
450
+ [RESOURCE_PATHS.documentHubTemplates]: ALL_OPERATIONS,
451
+ [RESOURCE_PATHS.documentHubFolder]: ALL_OPERATIONS,
452
+ [RESOURCE_PATHS.documentHubExtraction]: ALL_OPERATIONS,
453
+ [RESOURCE_PATHS.documentHubQueue]: ALL_OPERATIONS,
454
+ [RESOURCE_PATHS.analytics]: ALL_OPERATIONS,
455
+ // ── Admin Settings ─────────────────────────────────────────────────────────
456
+ [RESOURCE_PATHS.adminUserRoster]: ALL_OPERATIONS,
457
+ [RESOURCE_PATHS.adminBlueprintsSites]: ALL_OPERATIONS,
458
+ [RESOURCE_PATHS.adminRolesPermissions]: ALL_OPERATIONS,
459
+ [RESOURCE_PATHS.adminCompanySettings]: ALL_OPERATIONS,
460
+ // ── Operations ────────────────────────────────────────────────────────────
461
+ [RESOURCE_PATHS.farmManagement]: [EnabledModule.FARM_MANAGEMENT],
462
+ [RESOURCE_PATHS.packhouse]: [EnabledModule.PACKHOUSE],
463
+ [RESOURCE_PATHS.accommodation]: [EnabledModule.ACCOMMODATION],
464
+ // ── Equipment & Fleet ──────────────────────────────────────────────────────
465
+ [RESOURCE_PATHS.equipPreStart]: ALL_OPERATIONS,
466
+ [RESOURCE_PATHS.equipMaintenance]: ALL_OPERATIONS,
467
+ [RESOURCE_PATHS.equipFuelRegister]: ALL_OPERATIONS,
468
+ [RESOURCE_PATHS.equipCalibration]: AGRI_ONLY,
469
+ [RESOURCE_PATHS.equipFleet]: ALL_OPERATIONS,
470
+ // ── Safety, Quality & Compliance ──────────────────────────────────────────
471
+ [RESOURCE_PATHS.safetyAuditing]: ALL_OPERATIONS,
472
+ [RESOURCE_PATHS.safetyFood]: AGRI_ONLY,
473
+ [RESOURCE_PATHS.safetyWhs]: ALL_OPERATIONS,
474
+ [RESOURCE_PATHS.safetyCleaning]: ALL_OPERATIONS,
475
+ // ── Team & HR ──────────────────────────────────────────────────────────────
476
+ [RESOURCE_PATHS.teamStaff]: ALL_OPERATIONS,
477
+ [RESOURCE_PATHS.teamTraining]: ALL_OPERATIONS
478
+ };
479
+ var ACCESS_RANK = {
480
+ NONE: 0,
481
+ READ: 1,
482
+ WRITE: 2
483
+ };
484
+ var ROLE_SECTIONS_BY_KEY = {
485
+ dashboard: [UserRole.OWNER, UserRole.MANAGER, UserRole.SUPERVISOR, UserRole.LEADING_HAND, UserRole.WORKER],
486
+ operations: [UserRole.OWNER, UserRole.MANAGER, UserRole.SUPERVISOR, UserRole.LEADING_HAND, UserRole.WORKER],
487
+ equipment: [UserRole.OWNER, UserRole.MANAGER, UserRole.SUPERVISOR, UserRole.LEADING_HAND, UserRole.WORKER],
488
+ safety: [UserRole.OWNER, UserRole.MANAGER, UserRole.SUPERVISOR],
489
+ team: [UserRole.OWNER, UserRole.MANAGER],
490
+ records: [UserRole.OWNER, UserRole.MANAGER],
491
+ adminSettings: []
492
+ };
493
+ var EVERYONE = Object.values(UserRole);
494
+ var RESOURCE_REQUIREMENTS = {
495
+ [RESOURCE_PATHS.dashboard]: { allowedRoles: EVERYONE },
496
+ [RESOURCE_PATHS.operations]: { allowedRoles: EVERYONE },
497
+ // ── Records & Reports ──────────────────────────────────────────────────────
498
+ [RESOURCE_PATHS.documentHub]: {
499
+ allowedRoles: [UserRole.OWNER, UserRole.MANAGER, UserRole.SUPERVISOR],
500
+ requiredPrivileges: [UserPrivilege.ADMIN, UserPrivilege.AUDIT_COMPLIANCE, UserPrivilege.FINANCE, UserPrivilege.HR]
501
+ },
502
+ [RESOURCE_PATHS.documentHubTemplates]: {
503
+ allowedRoles: [UserRole.OWNER, UserRole.MANAGER, UserRole.SUPERVISOR],
504
+ requiredPrivileges: [UserPrivilege.ADMIN, UserPrivilege.AUDIT_COMPLIANCE, UserPrivilege.FINANCE, UserPrivilege.HR]
505
+ },
506
+ [RESOURCE_PATHS.documentHubFolder]: {
507
+ allowedRoles: [UserRole.OWNER, UserRole.MANAGER, UserRole.SUPERVISOR],
508
+ requiredPrivileges: [UserPrivilege.ADMIN, UserPrivilege.AUDIT_COMPLIANCE, UserPrivilege.FINANCE, UserPrivilege.HR]
509
+ },
510
+ [RESOURCE_PATHS.documentHubExtraction]: {
511
+ allowedRoles: [UserRole.OWNER, UserRole.MANAGER, UserRole.SUPERVISOR],
512
+ requiredPrivileges: [UserPrivilege.ADMIN, UserPrivilege.AUDIT_COMPLIANCE, UserPrivilege.FINANCE, UserPrivilege.HR]
513
+ },
514
+ [RESOURCE_PATHS.documentHubQueue]: {
515
+ allowedRoles: [UserRole.OWNER, UserRole.MANAGER, UserRole.SUPERVISOR],
516
+ requiredPrivileges: [UserPrivilege.ADMIN, UserPrivilege.AUDIT_COMPLIANCE, UserPrivilege.FINANCE, UserPrivilege.HR]
517
+ },
518
+ // ── Admin Settings ─────────────────────────────────────────────────────────
519
+ [RESOURCE_PATHS.adminUserRoster]: {
520
+ allowedRoles: [UserRole.OWNER],
521
+ requiredPrivileges: [UserPrivilege.ADMIN]
522
+ },
523
+ [RESOURCE_PATHS.adminBlueprintsSites]: {
524
+ allowedRoles: [UserRole.OWNER],
525
+ requiredPrivileges: [UserPrivilege.ADMIN]
526
+ },
527
+ [RESOURCE_PATHS.adminRolesPermissions]: {
528
+ allowedRoles: [UserRole.OWNER],
529
+ requiredPrivileges: [UserPrivilege.ADMIN]
530
+ },
531
+ [RESOURCE_PATHS.adminCompanySettings]: {
532
+ allowedRoles: [UserRole.OWNER]
533
+ }
534
+ };
535
+ var DocumentType = /* @__PURE__ */ ((DocumentType2) => {
536
+ DocumentType2["SPRAY_RECORD"] = "SPRAY_RECORD";
537
+ DocumentType2["FERTIGATION_RECORD"] = "FERTIGATION_RECORD";
538
+ DocumentType2["FERTILIZER_RECORD"] = "FERTILIZER_RECORD";
539
+ DocumentType2["QA"] = "QA";
540
+ DocumentType2["CLEANING"] = "CLEANING";
541
+ DocumentType2["PEST"] = "PEST";
542
+ DocumentType2["EQUIPMENT_CALIBRATION_RECORD"] = "EQUIPMENT_CALIBRATION_RECORD";
543
+ DocumentType2["INVENTORY_CONSUMABLES"] = "INVENTORY_CONSUMABLES";
544
+ DocumentType2["INVENTORY_BOX_CARTON"] = "INVENTORY_BOX_CARTON";
545
+ DocumentType2["INVENTORY_CHEMICALS"] = "INVENTORY_CHEMICALS";
546
+ DocumentType2["STOCKTAKE"] = "STOCKTAKE";
547
+ DocumentType2["STOCKTAKE_MSDS"] = "STOCKTAKE_MSDS";
548
+ DocumentType2["MAPPING_FARM_MAPS"] = "MAPPING_FARM_MAPS";
549
+ DocumentType2["MAPPING_TRAFIC_MANAGEMENT"] = "MAPPING_TRAFIC_MANAGEMENT";
550
+ DocumentType2["MAPPING_EMERGENCY"] = "MAPPING_EMERGENCY";
551
+ DocumentType2["INCIDENT_REPORT"] = "INCIDENT_REPORT";
552
+ DocumentType2["TRAINING_RECORDS"] = "TRAINING_RECORDS";
553
+ DocumentType2["SOPS"] = "SOPS";
554
+ DocumentType2["RISK_ASSESSMENTS"] = "RISK_ASSESSMENTS";
555
+ DocumentType2["SERVICING_MAINTENANCE"] = "SERVICING_MAINTENANCE";
556
+ DocumentType2["SOIL_TEST"] = "SOIL_TEST";
557
+ DocumentType2["LEAF_TEST"] = "LEAF_TEST";
558
+ DocumentType2["WATER_TEST"] = "WATER_TEST";
559
+ DocumentType2["MRL_TESTING"] = "MRL_TESTING";
560
+ DocumentType2["HEAVY_METAL"] = "HEAVY_METAL";
561
+ DocumentType2["MICROBIAL"] = "MICROBIAL";
562
+ DocumentType2["HARVEST_LOG"] = "HARVEST_LOG";
563
+ DocumentType2["PACKHOUSE_INSPECTION"] = "PACKHOUSE_INSPECTION";
564
+ DocumentType2["TRAINING_CERTIFICATE"] = "TRAINING_CERTIFICATE";
565
+ DocumentType2["INVOICE"] = "INVOICE";
566
+ DocumentType2["LEGAL_CONTRACT"] = "LEGAL_CONTRACT";
567
+ DocumentType2["AUDIT_REPORT"] = "AUDIT_REPORT";
568
+ DocumentType2["SENSITIVE_IDENTITY"] = "SENSITIVE_IDENTITY";
569
+ return DocumentType2;
570
+ })(DocumentType || {});
571
+ var DOCUMENT_MENU_MAP = {
572
+ ["SPRAY_RECORD" /* SPRAY_RECORD */]: [RESOURCE_PATHS.farmManagement],
573
+ ["FERTIGATION_RECORD" /* FERTIGATION_RECORD */]: [RESOURCE_PATHS.farmManagement],
574
+ ["FERTILIZER_RECORD" /* FERTILIZER_RECORD */]: [RESOURCE_PATHS.farmManagement],
575
+ ["QA" /* QA */]: [RESOURCE_PATHS.safetyAuditing],
576
+ ["CLEANING" /* CLEANING */]: [RESOURCE_PATHS.safetyCleaning],
577
+ ["PEST" /* PEST */]: [RESOURCE_PATHS.farmManagement],
578
+ ["EQUIPMENT_CALIBRATION_RECORD" /* EQUIPMENT_CALIBRATION_RECORD */]: [RESOURCE_PATHS.equipCalibration],
579
+ ["SERVICING_MAINTENANCE" /* SERVICING_MAINTENANCE */]: [RESOURCE_PATHS.equipMaintenance],
580
+ ["INVENTORY_CONSUMABLES" /* INVENTORY_CONSUMABLES */]: [RESOURCE_PATHS.packhouse],
581
+ ["INVENTORY_BOX_CARTON" /* INVENTORY_BOX_CARTON */]: [RESOURCE_PATHS.packhouse],
582
+ ["INVENTORY_CHEMICALS" /* INVENTORY_CHEMICALS */]: [RESOURCE_PATHS.packhouse, RESOURCE_PATHS.farmManagement],
583
+ ["STOCKTAKE" /* STOCKTAKE */]: [RESOURCE_PATHS.packhouse],
584
+ ["STOCKTAKE_MSDS" /* STOCKTAKE_MSDS */]: [RESOURCE_PATHS.safetyWhs],
585
+ ["MAPPING_FARM_MAPS" /* MAPPING_FARM_MAPS */]: [RESOURCE_PATHS.adminBlueprintsSites],
586
+ ["MAPPING_TRAFIC_MANAGEMENT" /* MAPPING_TRAFIC_MANAGEMENT */]: [RESOURCE_PATHS.adminBlueprintsSites],
587
+ ["MAPPING_EMERGENCY" /* MAPPING_EMERGENCY */]: [RESOURCE_PATHS.adminBlueprintsSites],
588
+ ["INCIDENT_REPORT" /* INCIDENT_REPORT */]: [RESOURCE_PATHS.safetyWhs],
589
+ ["RISK_ASSESSMENTS" /* RISK_ASSESSMENTS */]: [RESOURCE_PATHS.safetyWhs],
590
+ ["TRAINING_RECORDS" /* TRAINING_RECORDS */]: [RESOURCE_PATHS.teamTraining],
591
+ ["TRAINING_CERTIFICATE" /* TRAINING_CERTIFICATE */]: [RESOURCE_PATHS.teamTraining],
592
+ ["SOPS" /* SOPS */]: [RESOURCE_PATHS.documentHubTemplates],
593
+ ["SOIL_TEST" /* SOIL_TEST */]: [RESOURCE_PATHS.farmManagement],
594
+ ["LEAF_TEST" /* LEAF_TEST */]: [RESOURCE_PATHS.farmManagement],
595
+ ["WATER_TEST" /* WATER_TEST */]: [RESOURCE_PATHS.farmManagement, RESOURCE_PATHS.safetyFood],
596
+ ["MRL_TESTING" /* MRL_TESTING */]: [RESOURCE_PATHS.safetyFood],
597
+ ["HEAVY_METAL" /* HEAVY_METAL */]: [RESOURCE_PATHS.safetyFood],
598
+ ["MICROBIAL" /* MICROBIAL */]: [RESOURCE_PATHS.safetyFood],
599
+ ["HARVEST_LOG" /* HARVEST_LOG */]: [RESOURCE_PATHS.farmManagement],
600
+ ["PACKHOUSE_INSPECTION" /* PACKHOUSE_INSPECTION */]: [RESOURCE_PATHS.packhouse],
601
+ ["INVOICE" /* INVOICE */]: [RESOURCE_PATHS.documentHub],
602
+ ["LEGAL_CONTRACT" /* LEGAL_CONTRACT */]: [RESOURCE_PATHS.documentHub],
603
+ ["AUDIT_REPORT" /* AUDIT_REPORT */]: [RESOURCE_PATHS.safetyAuditing, RESOURCE_PATHS.dashboard],
604
+ ["SENSITIVE_IDENTITY" /* SENSITIVE_IDENTITY */]: [RESOURCE_PATHS.adminUserRoster]
605
+ };
606
+ // Annotate the CommonJS export names for ESM import in node:
607
+ 0 && (module.exports = {
608
+ ACCESS_RANK,
609
+ ACT,
610
+ AccessLevel,
611
+ ApprovalStatus,
612
+ ApprovalType,
613
+ AuditStatus,
614
+ AuditType,
615
+ CAT,
616
+ CropCycleStatus,
617
+ DOCUMENT_MENU_MAP,
618
+ DocumentType,
619
+ ERROR_DICTIONARY,
620
+ EVERYONE,
621
+ EmitterType,
622
+ EnabledModule,
623
+ FORM_REGISTRY,
624
+ FacilityType,
625
+ HarvestMethod,
626
+ LinkedStatus,
627
+ MOD,
628
+ MODULE_LABELS,
629
+ MicroclimateZone,
630
+ MimeType,
631
+ NettingType,
632
+ NotificationMode,
633
+ OrderStatus,
634
+ PhysicalState,
635
+ PlantingMethod,
636
+ RESOURCE_MODULE_MAP,
637
+ RESOURCE_PATHS,
638
+ RESOURCE_REQUIREMENTS,
639
+ ROLE_SECTIONS_BY_KEY,
640
+ RelationshipType,
641
+ RowOrientation,
642
+ SENTINEL_UUID,
643
+ SoilTexture,
644
+ TASK_TYPE_REGISTRY,
645
+ TargetEntityType,
646
+ TaskStatus,
647
+ TaskType,
648
+ TransactionType,
649
+ TrellisType,
650
+ UserPrivilege,
651
+ UserRole,
652
+ VigorRating,
653
+ WaterSource
654
+ });