@flightloop/sdk-frontend 0.0.0-stage → 1.0.0-qa.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 (134) hide show
  1. package/README.md +145 -2
  2. package/dist/cjs/core/airspace/index.js +14 -0
  3. package/dist/cjs/core/airspace/index.js.map +1 -0
  4. package/dist/cjs/core/airspace/validation-client.js +112 -0
  5. package/dist/cjs/core/airspace/validation-client.js.map +1 -0
  6. package/dist/cjs/core/formatters/index.js +41 -0
  7. package/dist/cjs/core/formatters/index.js.map +1 -0
  8. package/dist/cjs/core/geometry/circle.js +137 -0
  9. package/dist/cjs/core/geometry/circle.js.map +1 -0
  10. package/dist/cjs/core/geometry/index.js +26 -0
  11. package/dist/cjs/core/geometry/index.js.map +1 -0
  12. package/dist/cjs/core/geometry/operations.js +169 -0
  13. package/dist/cjs/core/geometry/operations.js.map +1 -0
  14. package/dist/cjs/core/geometry/polygon.js +183 -0
  15. package/dist/cjs/core/geometry/polygon.js.map +1 -0
  16. package/dist/cjs/core/index.js +29 -0
  17. package/dist/cjs/core/index.js.map +1 -0
  18. package/dist/cjs/core/transformers/index.js +33 -0
  19. package/dist/cjs/core/transformers/index.js.map +1 -0
  20. package/dist/cjs/core/utils/constants.js +124 -0
  21. package/dist/cjs/core/utils/constants.js.map +1 -0
  22. package/dist/cjs/core/utils/helpers.js +98 -0
  23. package/dist/cjs/core/utils/helpers.js.map +1 -0
  24. package/dist/cjs/core/utils/index.js +35 -0
  25. package/dist/cjs/core/utils/index.js.map +1 -0
  26. package/dist/cjs/core/utils/timezone.js +52 -0
  27. package/dist/cjs/core/utils/timezone.js.map +1 -0
  28. package/dist/cjs/core/validation/index.js +26 -0
  29. package/dist/cjs/core/validation/index.js.map +1 -0
  30. package/dist/cjs/core/validation/operator.validator.js +156 -0
  31. package/dist/cjs/core/validation/operator.validator.js.map +1 -0
  32. package/dist/cjs/index.js +32 -0
  33. package/dist/cjs/index.js.map +1 -0
  34. package/dist/cjs/react/hooks/index.js +41 -0
  35. package/dist/cjs/react/hooks/index.js.map +1 -0
  36. package/dist/cjs/react/index.js +20 -0
  37. package/dist/cjs/react/index.js.map +1 -0
  38. package/dist/cjs/types/airspace.types.js +22 -0
  39. package/dist/cjs/types/airspace.types.js.map +1 -0
  40. package/dist/cjs/types/authorization.types.js +3 -0
  41. package/dist/cjs/types/authorization.types.js.map +1 -0
  42. package/dist/cjs/types/geometry.types.js +4 -0
  43. package/dist/cjs/types/geometry.types.js.map +1 -0
  44. package/dist/cjs/types/index.js +7 -0
  45. package/dist/cjs/types/index.js.map +1 -0
  46. package/dist/esm/core/airspace/index.js +9 -0
  47. package/dist/esm/core/airspace/index.js.map +1 -0
  48. package/dist/esm/core/airspace/validation-client.js +107 -0
  49. package/dist/esm/core/airspace/validation-client.js.map +1 -0
  50. package/dist/esm/core/formatters/index.js +35 -0
  51. package/dist/esm/core/formatters/index.js.map +1 -0
  52. package/dist/esm/core/geometry/circle.js +98 -0
  53. package/dist/esm/core/geometry/circle.js.map +1 -0
  54. package/dist/esm/core/geometry/index.js +7 -0
  55. package/dist/esm/core/geometry/index.js.map +1 -0
  56. package/dist/esm/core/geometry/operations.js +125 -0
  57. package/dist/esm/core/geometry/operations.js.map +1 -0
  58. package/dist/esm/core/geometry/polygon.js +145 -0
  59. package/dist/esm/core/geometry/polygon.js.map +1 -0
  60. package/dist/esm/core/index.js +13 -0
  61. package/dist/esm/core/index.js.map +1 -0
  62. package/dist/esm/core/transformers/index.js +28 -0
  63. package/dist/esm/core/transformers/index.js.map +1 -0
  64. package/dist/esm/core/utils/constants.js +121 -0
  65. package/dist/esm/core/utils/constants.js.map +1 -0
  66. package/dist/esm/core/utils/helpers.js +83 -0
  67. package/dist/esm/core/utils/helpers.js.map +1 -0
  68. package/dist/esm/core/utils/index.js +7 -0
  69. package/dist/esm/core/utils/index.js.map +1 -0
  70. package/dist/esm/core/utils/timezone.js +47 -0
  71. package/dist/esm/core/utils/timezone.js.map +1 -0
  72. package/dist/esm/core/validation/index.js +10 -0
  73. package/dist/esm/core/validation/index.js.map +1 -0
  74. package/dist/esm/core/validation/operator.validator.js +150 -0
  75. package/dist/esm/core/validation/operator.validator.js.map +1 -0
  76. package/dist/esm/index.js +15 -0
  77. package/dist/esm/index.js.map +1 -0
  78. package/dist/esm/react/hooks/index.js +35 -0
  79. package/dist/esm/react/hooks/index.js.map +1 -0
  80. package/dist/esm/react/index.js +4 -0
  81. package/dist/esm/react/index.js.map +1 -0
  82. package/dist/esm/types/airspace.types.js +19 -0
  83. package/dist/esm/types/airspace.types.js.map +1 -0
  84. package/dist/esm/types/authorization.types.js +2 -0
  85. package/dist/esm/types/authorization.types.js.map +1 -0
  86. package/dist/esm/types/geometry.types.js +3 -0
  87. package/dist/esm/types/geometry.types.js.map +1 -0
  88. package/dist/esm/types/index.js +3 -0
  89. package/dist/esm/types/index.js.map +1 -0
  90. package/dist/types/core/airspace/index.d.ts +8 -0
  91. package/dist/types/core/airspace/index.d.ts.map +1 -0
  92. package/dist/types/core/airspace/validation-client.d.ts +86 -0
  93. package/dist/types/core/airspace/validation-client.d.ts.map +1 -0
  94. package/dist/types/core/formatters/index.d.ts +28 -0
  95. package/dist/types/core/formatters/index.d.ts.map +1 -0
  96. package/dist/types/core/geometry/circle.d.ts +33 -0
  97. package/dist/types/core/geometry/circle.d.ts.map +1 -0
  98. package/dist/types/core/geometry/index.d.ts +4 -0
  99. package/dist/types/core/geometry/index.d.ts.map +1 -0
  100. package/dist/types/core/geometry/operations.d.ts +72 -0
  101. package/dist/types/core/geometry/operations.d.ts.map +1 -0
  102. package/dist/types/core/geometry/polygon.d.ts +25 -0
  103. package/dist/types/core/geometry/polygon.d.ts.map +1 -0
  104. package/dist/types/core/index.d.ts +7 -0
  105. package/dist/types/core/index.d.ts.map +1 -0
  106. package/dist/types/core/transformers/index.d.ts +26 -0
  107. package/dist/types/core/transformers/index.d.ts.map +1 -0
  108. package/dist/types/core/utils/constants.d.ts +116 -0
  109. package/dist/types/core/utils/constants.d.ts.map +1 -0
  110. package/dist/types/core/utils/helpers.d.ts +53 -0
  111. package/dist/types/core/utils/helpers.d.ts.map +1 -0
  112. package/dist/types/core/utils/index.d.ts +4 -0
  113. package/dist/types/core/utils/index.d.ts.map +1 -0
  114. package/dist/types/core/utils/timezone.d.ts +23 -0
  115. package/dist/types/core/utils/timezone.d.ts.map +1 -0
  116. package/dist/types/core/validation/index.d.ts +9 -0
  117. package/dist/types/core/validation/index.d.ts.map +1 -0
  118. package/dist/types/core/validation/operator.validator.d.ts +35 -0
  119. package/dist/types/core/validation/operator.validator.d.ts.map +1 -0
  120. package/dist/types/index.d.ts +12 -0
  121. package/dist/types/index.d.ts.map +1 -0
  122. package/dist/types/react/hooks/index.d.ts +27 -0
  123. package/dist/types/react/hooks/index.d.ts.map +1 -0
  124. package/dist/types/react/index.d.ts +2 -0
  125. package/dist/types/react/index.d.ts.map +1 -0
  126. package/dist/types/types/airspace.types.d.ts +109 -0
  127. package/dist/types/types/airspace.types.d.ts.map +1 -0
  128. package/dist/types/types/authorization.types.d.ts +124 -0
  129. package/dist/types/types/authorization.types.d.ts.map +1 -0
  130. package/dist/types/types/geometry.types.d.ts +77 -0
  131. package/dist/types/types/geometry.types.d.ts.map +1 -0
  132. package/dist/types/types/index.d.ts +5 -0
  133. package/dist/types/types/index.d.ts.map +1 -0
  134. package/package.json +84 -4
@@ -0,0 +1,116 @@
1
+ /**
2
+ * LAANC authorization constraints and constants
3
+ */
4
+ /**
5
+ * Altitude constraints (feet AGL)
6
+ */
7
+ export declare const ALTITUDE_CONSTRAINTS: {
8
+ /** Maximum altitude for Part 107 operations */
9
+ readonly MAX_PART_107: 400;
10
+ /** Maximum altitude for 44809 recreational operations */
11
+ readonly MAX_44809: 400;
12
+ /** Minimum altitude */
13
+ readonly MIN: 0;
14
+ };
15
+ /**
16
+ * Circle geometry constraints (feet)
17
+ */
18
+ export declare const CIRCLE_CONSTRAINTS: {
19
+ /** Minimum circle radius */
20
+ readonly MIN_RADIUS: 10;
21
+ /** Maximum circle radius */
22
+ readonly MAX_RADIUS: 3000;
23
+ /** Default number of steps for circle approximation */
24
+ readonly DEFAULT_STEPS: 64;
25
+ };
26
+ /**
27
+ * Polygon geometry constraints
28
+ */
29
+ export declare const POLYGON_CONSTRAINTS: {
30
+ /** Minimum number of polygon points */
31
+ readonly MIN_POINTS: 3;
32
+ /** Maximum number of polygon points */
33
+ readonly MAX_POINTS: 100;
34
+ /** Maximum polygon area (square feet) - TBD based on requirements */
35
+ readonly MAX_AREA: 100000000;
36
+ };
37
+ /**
38
+ * Further Coordination (FC) timing constraints
39
+ */
40
+ export declare const FC_CONSTRAINTS: {
41
+ /** Minimum lead time for FC requests (hours) */
42
+ readonly MIN_HOURS: 72;
43
+ /** Maximum advance time for FC requests (days) */
44
+ readonly MAX_DAYS: 90;
45
+ };
46
+ /**
47
+ * Proximity search constraints
48
+ */
49
+ export declare const PROXIMITY_CONSTRAINTS: {
50
+ /** Proximity radius for nearby airspace (nautical miles) */
51
+ readonly RADIUS_NM: 2;
52
+ };
53
+ /**
54
+ * Unit conversion constants
55
+ */
56
+ export declare const UNIT_CONVERSIONS: {
57
+ /** Feet to meters */
58
+ readonly FEET_TO_METERS: 0.3048;
59
+ /** Meters to feet */
60
+ readonly METERS_TO_FEET: 3.28084;
61
+ /** Nautical miles to meters */
62
+ readonly NM_TO_METERS: 1852;
63
+ /** Meters to nautical miles */
64
+ readonly METERS_TO_NM: number;
65
+ /** Miles to meters */
66
+ readonly MILES_TO_METERS: 1609.34;
67
+ /** Meters to miles */
68
+ readonly METERS_TO_MILES: number;
69
+ };
70
+ /**
71
+ * Validation error codes
72
+ */
73
+ export declare const ERROR_CODES: {
74
+ readonly CIRCLE_RADIUS_TOO_SMALL: "CIRCLE_RADIUS_TOO_SMALL";
75
+ readonly CIRCLE_RADIUS_TOO_LARGE: "CIRCLE_RADIUS_TOO_LARGE";
76
+ readonly POLYGON_TOO_FEW_POINTS: "POLYGON_TOO_FEW_POINTS";
77
+ readonly POLYGON_TOO_MANY_POINTS: "POLYGON_TOO_MANY_POINTS";
78
+ readonly POLYGON_TOO_LARGE: "POLYGON_TOO_LARGE";
79
+ readonly POLYGON_SELF_INTERSECTING: "POLYGON_SELF_INTERSECTING";
80
+ readonly INVALID_COORDINATES: "INVALID_COORDINATES";
81
+ readonly ALTITUDE_TOO_LOW: "ALTITUDE_TOO_LOW";
82
+ readonly ALTITUDE_TOO_HIGH: "ALTITUDE_TOO_HIGH";
83
+ readonly ALTITUDE_EXCEEDS_CEILING: "ALTITUDE_EXCEEDS_CEILING";
84
+ readonly INVALID_DATETIME: "INVALID_DATETIME";
85
+ readonly INVALID_TIMEZONE: "INVALID_TIMEZONE";
86
+ readonly OPERATION_IN_PAST: "OPERATION_IN_PAST";
87
+ readonly FC_INSUFFICIENT_LEAD_TIME: "FC_INSUFFICIENT_LEAD_TIME";
88
+ readonly FC_TOO_FAR_IN_FUTURE: "FC_TOO_FAR_IN_FUTURE";
89
+ readonly DURATION_INVALID: "DURATION_INVALID";
90
+ readonly INVALID_EMAIL: "INVALID_EMAIL";
91
+ readonly INVALID_PHONE: "INVALID_PHONE";
92
+ readonly INVALID_FAA_ID: "INVALID_FAA_ID";
93
+ readonly REQUIRED_FIELD_MISSING: "REQUIRED_FIELD_MISSING";
94
+ readonly INVALID_OPERATION_TYPE: "INVALID_OPERATION_TYPE";
95
+ };
96
+ /**
97
+ * Advisory priority weights (higher = more critical)
98
+ */
99
+ export declare const ADVISORY_PRIORITY_WEIGHTS: {
100
+ readonly critical: 5;
101
+ readonly high: 4;
102
+ readonly medium: 3;
103
+ readonly low: 2;
104
+ readonly info: 1;
105
+ };
106
+ /**
107
+ * Authorization status priority (for determining overall status)
108
+ */
109
+ export declare const STATUS_PRIORITY: {
110
+ readonly DNF: 5;
111
+ readonly NOK: 4;
112
+ readonly ALERT: 3;
113
+ readonly CAUTION: 2;
114
+ readonly OK: 1;
115
+ };
116
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;IAC/B,+CAA+C;;IAE/C,yDAAyD;;IAEzD,uBAAuB;;CAEf,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB;IAC7B,4BAA4B;;IAE5B,4BAA4B;;IAE5B,uDAAuD;;CAE/C,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B,uCAAuC;;IAEvC,uCAAuC;;IAEvC,qEAAqE;;CAE7D,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB,gDAAgD;;IAEhD,kDAAkD;;CAE1C,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,qBAAqB;IAChC,4DAA4D;;CAEpD,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB;IAC3B,qBAAqB;;IAErB,qBAAqB;;IAErB,+BAA+B;;IAE/B,+BAA+B;;IAE/B,sBAAsB;;IAEtB,sBAAsB;;CAEd,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;CA+Bd,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;;;;CAM5B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Convert feet to meters
3
+ */
4
+ export declare function feetToMeters(feet: number): number;
5
+ /**
6
+ * Convert meters to feet
7
+ */
8
+ export declare function metersToFeet(meters: number): number;
9
+ /**
10
+ * Convert nautical miles to meters
11
+ */
12
+ export declare function nauticalMilesToMeters(nm: number): number;
13
+ /**
14
+ * Convert meters to nautical miles
15
+ */
16
+ export declare function metersToNauticalMiles(meters: number): number;
17
+ /**
18
+ * Convert miles to meters
19
+ */
20
+ export declare function milesToMeters(miles: number): number;
21
+ /**
22
+ * Convert meters to miles
23
+ */
24
+ export declare function metersToMiles(meters: number): number;
25
+ /**
26
+ * Check if a value is a valid finite number
27
+ */
28
+ export declare function isValidNumber(value: unknown): value is number;
29
+ /**
30
+ * Check if a string is non-empty
31
+ */
32
+ export declare function isNonEmptyString(value: unknown): value is string;
33
+ /**
34
+ * Generate a unique ID
35
+ */
36
+ export declare function generateId(prefix?: string): string;
37
+ /**
38
+ * Deep clone an object (simple implementation for GeoJSON)
39
+ */
40
+ export declare function deepClone<T>(obj: T): T;
41
+ /**
42
+ * Round a number to a specified number of decimal places
43
+ */
44
+ export declare function roundTo(value: number, decimals: number): number;
45
+ /**
46
+ * Format a number as a string with commas
47
+ */
48
+ export declare function formatNumber(value: number, decimals?: number): string;
49
+ /**
50
+ * Clamp a value between min and max
51
+ */
52
+ export declare function clamp(value: number, min: number, max: number): number;
53
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/helpers.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,SAAK,GAAG,MAAM,CAI9C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAEtC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,MAAM,CAEhE;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAErE"}
@@ -0,0 +1,4 @@
1
+ export { ALTITUDE_CONSTRAINTS, CIRCLE_CONSTRAINTS, POLYGON_CONSTRAINTS, FC_CONSTRAINTS, PROXIMITY_CONSTRAINTS, UNIT_CONVERSIONS, ERROR_CODES, ADVISORY_PRIORITY_WEIGHTS, STATUS_PRIORITY, } from './constants';
2
+ export { feetToMeters, metersToFeet, nauticalMilesToMeters, metersToNauticalMiles, milesToMeters, metersToMiles, isValidNumber, isNonEmptyString, generateId, deepClone, roundTo, formatNumber, clamp, } from './helpers';
3
+ export { detectTimezone, isValidTimezone, getCurrentTimeInTimezone, } from './timezone';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,yBAAyB,EACzB,eAAe,GAChB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,OAAO,EACP,YAAY,EACZ,KAAK,GACN,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,cAAc,EACd,eAAe,EACf,wBAAwB,GACzB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Detect timezone from latitude/longitude coordinates
3
+ *
4
+ * @param lat - Latitude
5
+ * @param lng - Longitude
6
+ * @returns IANA timezone identifier (e.g., "America/New_York")
7
+ */
8
+ export declare function detectTimezone(lat: number, lng: number): string;
9
+ /**
10
+ * Validate IANA timezone identifier
11
+ *
12
+ * @param timezone - IANA timezone identifier
13
+ * @returns true if valid, false otherwise
14
+ */
15
+ export declare function isValidTimezone(timezone: string): boolean;
16
+ /**
17
+ * Get current time in a specific timezone
18
+ *
19
+ * @param timezone - IANA timezone identifier
20
+ * @returns ISO datetime string
21
+ */
22
+ export declare function getCurrentTimeInTimezone(timezone: string): string;
23
+ //# sourceMappingURL=timezone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timezone.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/timezone.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAY/D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOzD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjE"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Validation utilities for LAANC authorization
3
+ *
4
+ * This module provides basic format validation functions for operator information.
5
+ * Complex business logic validation (altitude, datetime, airspace) is now handled
6
+ * by the backend API.
7
+ */
8
+ export * from './operator.validator';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { ValidationResult } from '../../types';
2
+ /**
3
+ * Validate email address
4
+ *
5
+ * @param email - Email address
6
+ * @returns Validation result
7
+ */
8
+ export declare function validateEmail(email: string): ValidationResult;
9
+ /**
10
+ * Validate phone number
11
+ *
12
+ * @param phone - Phone number
13
+ * @returns Validation result
14
+ */
15
+ export declare function validatePhone(phone: string): ValidationResult;
16
+ /**
17
+ * Validate FAA registration ID
18
+ *
19
+ * @param faaId - FAA registration ID
20
+ * @returns Validation result
21
+ */
22
+ export declare function validateFAAId(faaId: string): ValidationResult;
23
+ /**
24
+ * Validate operator information
25
+ *
26
+ * @param operator - Operator information
27
+ * @returns Validation result
28
+ */
29
+ export declare function validateOperator(operator: {
30
+ name?: string;
31
+ email?: string;
32
+ phone?: string;
33
+ faaId?: string;
34
+ }): ValidationResult;
35
+ //# sourceMappingURL=operator.validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator.validator.d.ts","sourceRoot":"","sources":["../../../../src/core/validation/operator.validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CA0B7D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CA4B7D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,CA0B7D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,gBAAgB,CAoDnB"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @flyzone/sdk-frontend
3
+ *
4
+ * Frontend SDK for LAANC authorization - provides UI components and business
5
+ * logic for drone flight authorization.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ export * from './core';
10
+ export * from './types';
11
+ export declare const VERSION = "1.0.0";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,cAAc,QAAQ,CAAC;AAGvB,cAAc,SAAS,CAAC;AAGxB,eAAO,MAAM,OAAO,UAAU,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * React hooks for LAANC authorization
3
+ *
4
+ * These hooks will be implemented in future iterations to provide
5
+ * React-specific state management for the SDK.
6
+ */
7
+ /**
8
+ * Hook for managing geometry state (circle/polygon)
9
+ * TODO: Implement useGeometry hook
10
+ */
11
+ export declare function useGeometry(): void;
12
+ /**
13
+ * Hook for processing authorization
14
+ * TODO: Implement useAuthorization hook
15
+ */
16
+ export declare function useAuthorization(): void;
17
+ /**
18
+ * Hook for managing operation parameters
19
+ * TODO: Implement useOperationParams hook
20
+ */
21
+ export declare function useOperationParams(): void;
22
+ /**
23
+ * Hook for timezone detection
24
+ * TODO: Implement useTimezone hook
25
+ */
26
+ export declare function useTimezone(): void;
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/react/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,wBAAgB,WAAW,SAE1B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,SAE/B;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,SAEjC;AAED;;;GAGG;AACH,wBAAgB,WAAW,SAE1B"}
@@ -0,0 +1,2 @@
1
+ export * from './hooks';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,109 @@
1
+ import type { Feature, Geometry } from 'geojson';
2
+ /**
3
+ * Airspace feature type classifications
4
+ */
5
+ export declare enum AirspaceFeatureType {
6
+ UASFM = "UASFM",
7
+ CLASS_B = "CLASS_B",
8
+ CLASS_C = "CLASS_C",
9
+ CLASS_D = "CLASS_D",
10
+ CLASS_E = "CLASS_E",
11
+ DC_FRZ = "DC_FRZ",
12
+ NSUFR = "NSUFR",
13
+ PNSUFR = "PNSUFR",
14
+ SPECIAL_USE = "SPECIAL_USE",
15
+ TFR = "TFR",
16
+ SEAM = "SEAM",
17
+ B4UFLY = "B4UFLY"
18
+ }
19
+ /**
20
+ * Schedule type for airspace restrictions
21
+ */
22
+ export type ScheduleType = 'always' | 'scheduled' | 'notam';
23
+ /**
24
+ * Airspace schedule timesheet
25
+ */
26
+ export interface AirspaceScheduleTimesheet {
27
+ startTime?: string;
28
+ endTime?: string;
29
+ daysOfWeek?: number[];
30
+ }
31
+ /**
32
+ * Airspace schedule
33
+ */
34
+ export interface AirspaceSchedule {
35
+ type: ScheduleType;
36
+ timesheet?: AirspaceScheduleTimesheet;
37
+ }
38
+ /**
39
+ * Standard airspace feature properties
40
+ */
41
+ export interface StandardAirspaceFeatureProperties {
42
+ name?: string;
43
+ class?: string;
44
+ airportIdentifier?: string;
45
+ ceiling?: number;
46
+ floorAltitude?: number;
47
+ schedule?: AirspaceSchedule;
48
+ lowerLimit?: number;
49
+ upperLimit?: number;
50
+ effectiveStart?: string;
51
+ effectiveEnd?: string;
52
+ notamNumber?: string;
53
+ eventStart?: string;
54
+ eventEnd?: string;
55
+ stadiumName?: string;
56
+ [key: string]: unknown;
57
+ }
58
+ /**
59
+ * Standardized airspace feature
60
+ */
61
+ export interface StandardAirspaceFeature extends Feature {
62
+ id: string;
63
+ type: 'Feature';
64
+ geometry: Geometry;
65
+ properties: StandardAirspaceFeatureProperties & {
66
+ featureType: AirspaceFeatureType;
67
+ };
68
+ }
69
+ /**
70
+ * Categorized airspace features
71
+ */
72
+ export interface CategorizedFeatures {
73
+ uasfm: StandardAirspaceFeature[];
74
+ classB: StandardAirspaceFeature[];
75
+ classC: StandardAirspaceFeature[];
76
+ classD: StandardAirspaceFeature[];
77
+ classE: StandardAirspaceFeature[];
78
+ dc: StandardAirspaceFeature[];
79
+ nsufr: StandardAirspaceFeature[];
80
+ pnsufr: StandardAirspaceFeature[];
81
+ specialUse: StandardAirspaceFeature[];
82
+ tfr: StandardAirspaceFeature[];
83
+ seams: StandardAirspaceFeature[];
84
+ b4ufly: StandardAirspaceFeature[];
85
+ other: StandardAirspaceFeature[];
86
+ }
87
+ /**
88
+ * TFR feature (Temporary Flight Restriction)
89
+ */
90
+ export interface TFRFeature extends StandardAirspaceFeature {
91
+ properties: StandardAirspaceFeatureProperties & {
92
+ featureType: AirspaceFeatureType.TFR;
93
+ effectiveStart: string;
94
+ effectiveEnd: string;
95
+ notamNumber: string;
96
+ };
97
+ }
98
+ /**
99
+ * SEAM feature (Stadium TFR)
100
+ */
101
+ export interface SEAMFeature extends StandardAirspaceFeature {
102
+ properties: StandardAirspaceFeatureProperties & {
103
+ featureType: AirspaceFeatureType.SEAM;
104
+ eventStart: string;
105
+ eventEnd: string;
106
+ stadiumName: string;
107
+ };
108
+ }
109
+ //# sourceMappingURL=airspace.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"airspace.types.d.ts","sourceRoot":"","sources":["../../../src/types/airspace.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ import type { Feature, FeatureCollection, Geometry } from 'geojson';
2
+ import type { StandardAirspaceFeature } from './airspace.types';
3
+ /**
4
+ * Authorization status
5
+ */
6
+ export type AuthorizationStatus = 'OK' | 'ALERT' | 'CAUTION' | 'DNF' | 'NOK';
7
+ /**
8
+ * Operation type
9
+ */
10
+ export type OperationType = 'Part 107' | '44809';
11
+ /**
12
+ * Advisory priority level
13
+ */
14
+ export type AdvisoryPriority = 'critical' | 'high' | 'medium' | 'low' | 'info';
15
+ /**
16
+ * Advisory object
17
+ */
18
+ export interface Advisory {
19
+ id: string;
20
+ layerId: string;
21
+ title: string;
22
+ description: string;
23
+ status: AuthorizationStatus;
24
+ priority: AdvisoryPriority;
25
+ properties: Record<string, unknown>;
26
+ geometry?: Geometry;
27
+ isTFR?: boolean;
28
+ }
29
+ /**
30
+ * Authorization summary
31
+ */
32
+ export interface AuthorizationSummary {
33
+ title: string;
34
+ subtitle: string;
35
+ status: AuthorizationStatus;
36
+ canProceed: boolean;
37
+ }
38
+ /**
39
+ * Authorization requirement
40
+ */
41
+ export interface AuthorizationRequirement {
42
+ airportIdentifier: string;
43
+ airspaceClass: string;
44
+ ceiling: number;
45
+ requestedAltitude: number;
46
+ geometry: Geometry;
47
+ requiresFurtherCoordination: boolean;
48
+ }
49
+ /**
50
+ * Process authorization input
51
+ */
52
+ export interface ProcessAuthorizationInput {
53
+ /** Operation area geometry (circle or polygon) */
54
+ operationArea: Feature;
55
+ /** Standardized airspace features from user's map query */
56
+ features: StandardAirspaceFeature[];
57
+ /** Requested altitude in feet AGL */
58
+ altitude: number;
59
+ /** Operation start date/time (ISO string) */
60
+ startDateTime: string;
61
+ /** Operation end date/time (ISO string) */
62
+ endDateTime: string;
63
+ /** IANA timezone identifier (e.g., "America/New_York") */
64
+ timezone: string;
65
+ /** Operation type */
66
+ operationType: OperationType;
67
+ /** Optional TFR features (user-fetched) */
68
+ tfrs?: StandardAirspaceFeature[];
69
+ /** Optional SEAM features (user-fetched) */
70
+ seams?: StandardAirspaceFeature[];
71
+ /** Optional proximity features (within 2 NM) */
72
+ proximityFeatures?: StandardAirspaceFeature[];
73
+ }
74
+ /**
75
+ * Process authorization result
76
+ */
77
+ export interface ProcessAuthorizationResult {
78
+ /** Authorization summary */
79
+ summary: AuthorizationSummary;
80
+ /** List of advisories for intersecting layers */
81
+ advisories: Advisory[];
82
+ /** List of advisories for proximity layers (within 2 NM) */
83
+ proximityAdvisories: Advisory[];
84
+ /** Maximum approved altitude in feet AGL */
85
+ maxAltitude: number;
86
+ /** Whether further coordination is required */
87
+ fcRequired: boolean;
88
+ /** GeoJSON collection of FC overlay geometries (for map rendering) */
89
+ fcOverlays: FeatureCollection;
90
+ /** GeoJSON collection of scheduled airspace boundaries (for map rendering) */
91
+ scheduledBoundaries: FeatureCollection;
92
+ /** List of authorization requirements */
93
+ authorizations: AuthorizationRequirement[];
94
+ /** Processing metadata */
95
+ metadata: {
96
+ processingTime: number;
97
+ featureCount: number;
98
+ categorizedCounts: Record<string, number>;
99
+ };
100
+ }
101
+ /**
102
+ * Operation payload for backend API submission
103
+ */
104
+ export interface OperationPayload {
105
+ selected_date_time: string;
106
+ op_end_datetime: string;
107
+ selected_timezone: string;
108
+ duration: number;
109
+ operator_name: string;
110
+ operator_faa_id: string;
111
+ operator_email: string;
112
+ operator_phone: string;
113
+ operation_type: OperationType;
114
+ boundary_polygon_geojson: Geometry;
115
+ point_location_geojson: Geometry;
116
+ operation_metadata: {
117
+ authorizations: AuthorizationRequirement[];
118
+ altitude: number;
119
+ fc_required: boolean;
120
+ [key: string]: unknown;
121
+ };
122
+ organizationId?: string | null;
123
+ }
124
+ //# sourceMappingURL=authorization.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authorization.types.d.ts","sourceRoot":"","sources":["../../../src/types/authorization.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Latitude/Longitude coordinate pair
3
+ */
4
+ export interface LatLng {
5
+ lat: number;
6
+ lng: number;
7
+ }
8
+ /**
9
+ * Geometry type for operation areas
10
+ */
11
+ export type GeometryType = 'circle' | 'polygon';
12
+ /**
13
+ * Circle geometry specification
14
+ */
15
+ export interface CircleSpecification {
16
+ center: LatLng;
17
+ radiusFeet: number;
18
+ }
19
+ /**
20
+ * Polygon geometry specification
21
+ */
22
+ export interface PolygonSpecification {
23
+ points: LatLng[];
24
+ }
25
+ /**
26
+ * Options for circle creation
27
+ */
28
+ export interface CircleOptions {
29
+ /** Number of points to approximate the circle (default: 64) */
30
+ steps?: number;
31
+ }
32
+ /**
33
+ * Options for polygon creation
34
+ */
35
+ export interface PolygonOptions {
36
+ /** Automatically close the polygon (default: true) */
37
+ close?: boolean;
38
+ }
39
+ /**
40
+ * Validation result
41
+ */
42
+ export interface ValidationResult {
43
+ valid: boolean;
44
+ errors: ValidationError[];
45
+ warnings?: ValidationWarning[];
46
+ }
47
+ /**
48
+ * Validation error
49
+ */
50
+ export interface ValidationError {
51
+ field: string;
52
+ message: string;
53
+ code: string;
54
+ }
55
+ /**
56
+ * Validation warning
57
+ */
58
+ export interface ValidationWarning {
59
+ field: string;
60
+ message: string;
61
+ code: string;
62
+ }
63
+ /**
64
+ * Geometry constraints
65
+ */
66
+ export interface GeometryConstraints {
67
+ circle: {
68
+ minRadiusFeet: number;
69
+ maxRadiusFeet: number;
70
+ };
71
+ polygon: {
72
+ minPoints: number;
73
+ maxPoints?: number;
74
+ maxAreaSquareFeet?: number;
75
+ };
76
+ }
77
+ //# sourceMappingURL=geometry.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry.types.d.ts","sourceRoot":"","sources":["../../../src/types/geometry.types.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC;CACH"}
@@ -0,0 +1,5 @@
1
+ export type { LatLng, GeometryType, CircleSpecification, PolygonSpecification, CircleOptions, PolygonOptions, ValidationResult, ValidationError, ValidationWarning, GeometryConstraints, } from './geometry.types';
2
+ export { AirspaceFeatureType, } from './airspace.types';
3
+ export type { ScheduleType, AirspaceScheduleTimesheet, AirspaceSchedule, StandardAirspaceFeatureProperties, StandardAirspaceFeature, CategorizedFeatures, TFRFeature, SEAMFeature, } from './airspace.types';
4
+ export type { AuthorizationStatus, OperationType, AdvisoryPriority, Advisory, AuthorizationSummary, AuthorizationRequirement, ProcessAuthorizationInput, ProcessAuthorizationResult, OperationPayload, } from './authorization.types';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,MAAM,EACN,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,YAAY,EACZ,yBAAyB,EACzB,gBAAgB,EAChB,iCAAiC,EACjC,uBAAuB,EACvB,mBAAmB,EACnB,UAAU,EACV,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,QAAQ,EACR,oBAAoB,EACpB,wBAAwB,EACxB,yBAAyB,EACzB,0BAA0B,EAC1B,gBAAgB,GACjB,MAAM,uBAAuB,CAAC"}