@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.
- package/README.md +145 -2
- package/dist/cjs/core/airspace/index.js +14 -0
- package/dist/cjs/core/airspace/index.js.map +1 -0
- package/dist/cjs/core/airspace/validation-client.js +112 -0
- package/dist/cjs/core/airspace/validation-client.js.map +1 -0
- package/dist/cjs/core/formatters/index.js +41 -0
- package/dist/cjs/core/formatters/index.js.map +1 -0
- package/dist/cjs/core/geometry/circle.js +137 -0
- package/dist/cjs/core/geometry/circle.js.map +1 -0
- package/dist/cjs/core/geometry/index.js +26 -0
- package/dist/cjs/core/geometry/index.js.map +1 -0
- package/dist/cjs/core/geometry/operations.js +169 -0
- package/dist/cjs/core/geometry/operations.js.map +1 -0
- package/dist/cjs/core/geometry/polygon.js +183 -0
- package/dist/cjs/core/geometry/polygon.js.map +1 -0
- package/dist/cjs/core/index.js +29 -0
- package/dist/cjs/core/index.js.map +1 -0
- package/dist/cjs/core/transformers/index.js +33 -0
- package/dist/cjs/core/transformers/index.js.map +1 -0
- package/dist/cjs/core/utils/constants.js +124 -0
- package/dist/cjs/core/utils/constants.js.map +1 -0
- package/dist/cjs/core/utils/helpers.js +98 -0
- package/dist/cjs/core/utils/helpers.js.map +1 -0
- package/dist/cjs/core/utils/index.js +35 -0
- package/dist/cjs/core/utils/index.js.map +1 -0
- package/dist/cjs/core/utils/timezone.js +52 -0
- package/dist/cjs/core/utils/timezone.js.map +1 -0
- package/dist/cjs/core/validation/index.js +26 -0
- package/dist/cjs/core/validation/index.js.map +1 -0
- package/dist/cjs/core/validation/operator.validator.js +156 -0
- package/dist/cjs/core/validation/operator.validator.js.map +1 -0
- package/dist/cjs/index.js +32 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/react/hooks/index.js +41 -0
- package/dist/cjs/react/hooks/index.js.map +1 -0
- package/dist/cjs/react/index.js +20 -0
- package/dist/cjs/react/index.js.map +1 -0
- package/dist/cjs/types/airspace.types.js +22 -0
- package/dist/cjs/types/airspace.types.js.map +1 -0
- package/dist/cjs/types/authorization.types.js +3 -0
- package/dist/cjs/types/authorization.types.js.map +1 -0
- package/dist/cjs/types/geometry.types.js +4 -0
- package/dist/cjs/types/geometry.types.js.map +1 -0
- package/dist/cjs/types/index.js +7 -0
- package/dist/cjs/types/index.js.map +1 -0
- package/dist/esm/core/airspace/index.js +9 -0
- package/dist/esm/core/airspace/index.js.map +1 -0
- package/dist/esm/core/airspace/validation-client.js +107 -0
- package/dist/esm/core/airspace/validation-client.js.map +1 -0
- package/dist/esm/core/formatters/index.js +35 -0
- package/dist/esm/core/formatters/index.js.map +1 -0
- package/dist/esm/core/geometry/circle.js +98 -0
- package/dist/esm/core/geometry/circle.js.map +1 -0
- package/dist/esm/core/geometry/index.js +7 -0
- package/dist/esm/core/geometry/index.js.map +1 -0
- package/dist/esm/core/geometry/operations.js +125 -0
- package/dist/esm/core/geometry/operations.js.map +1 -0
- package/dist/esm/core/geometry/polygon.js +145 -0
- package/dist/esm/core/geometry/polygon.js.map +1 -0
- package/dist/esm/core/index.js +13 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/core/transformers/index.js +28 -0
- package/dist/esm/core/transformers/index.js.map +1 -0
- package/dist/esm/core/utils/constants.js +121 -0
- package/dist/esm/core/utils/constants.js.map +1 -0
- package/dist/esm/core/utils/helpers.js +83 -0
- package/dist/esm/core/utils/helpers.js.map +1 -0
- package/dist/esm/core/utils/index.js +7 -0
- package/dist/esm/core/utils/index.js.map +1 -0
- package/dist/esm/core/utils/timezone.js +47 -0
- package/dist/esm/core/utils/timezone.js.map +1 -0
- package/dist/esm/core/validation/index.js +10 -0
- package/dist/esm/core/validation/index.js.map +1 -0
- package/dist/esm/core/validation/operator.validator.js +150 -0
- package/dist/esm/core/validation/operator.validator.js.map +1 -0
- package/dist/esm/index.js +15 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/react/hooks/index.js +35 -0
- package/dist/esm/react/hooks/index.js.map +1 -0
- package/dist/esm/react/index.js +4 -0
- package/dist/esm/react/index.js.map +1 -0
- package/dist/esm/types/airspace.types.js +19 -0
- package/dist/esm/types/airspace.types.js.map +1 -0
- package/dist/esm/types/authorization.types.js +2 -0
- package/dist/esm/types/authorization.types.js.map +1 -0
- package/dist/esm/types/geometry.types.js +3 -0
- package/dist/esm/types/geometry.types.js.map +1 -0
- package/dist/esm/types/index.js +3 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/types/core/airspace/index.d.ts +8 -0
- package/dist/types/core/airspace/index.d.ts.map +1 -0
- package/dist/types/core/airspace/validation-client.d.ts +86 -0
- package/dist/types/core/airspace/validation-client.d.ts.map +1 -0
- package/dist/types/core/formatters/index.d.ts +28 -0
- package/dist/types/core/formatters/index.d.ts.map +1 -0
- package/dist/types/core/geometry/circle.d.ts +33 -0
- package/dist/types/core/geometry/circle.d.ts.map +1 -0
- package/dist/types/core/geometry/index.d.ts +4 -0
- package/dist/types/core/geometry/index.d.ts.map +1 -0
- package/dist/types/core/geometry/operations.d.ts +72 -0
- package/dist/types/core/geometry/operations.d.ts.map +1 -0
- package/dist/types/core/geometry/polygon.d.ts +25 -0
- package/dist/types/core/geometry/polygon.d.ts.map +1 -0
- package/dist/types/core/index.d.ts +7 -0
- package/dist/types/core/index.d.ts.map +1 -0
- package/dist/types/core/transformers/index.d.ts +26 -0
- package/dist/types/core/transformers/index.d.ts.map +1 -0
- package/dist/types/core/utils/constants.d.ts +116 -0
- package/dist/types/core/utils/constants.d.ts.map +1 -0
- package/dist/types/core/utils/helpers.d.ts +53 -0
- package/dist/types/core/utils/helpers.d.ts.map +1 -0
- package/dist/types/core/utils/index.d.ts +4 -0
- package/dist/types/core/utils/index.d.ts.map +1 -0
- package/dist/types/core/utils/timezone.d.ts +23 -0
- package/dist/types/core/utils/timezone.d.ts.map +1 -0
- package/dist/types/core/validation/index.d.ts +9 -0
- package/dist/types/core/validation/index.d.ts.map +1 -0
- package/dist/types/core/validation/operator.validator.d.ts +35 -0
- package/dist/types/core/validation/operator.validator.d.ts.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/react/hooks/index.d.ts +27 -0
- package/dist/types/react/hooks/index.d.ts.map +1 -0
- package/dist/types/react/index.d.ts +2 -0
- package/dist/types/react/index.d.ts.map +1 -0
- package/dist/types/types/airspace.types.d.ts +109 -0
- package/dist/types/types/airspace.types.d.ts.map +1 -0
- package/dist/types/types/authorization.types.d.ts +124 -0
- package/dist/types/types/authorization.types.d.ts.map +1 -0
- package/dist/types/types/geometry.types.d.ts +77 -0
- package/dist/types/types/geometry.types.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +5 -0
- package/dist/types/types/index.d.ts.map +1 -0
- 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 @@
|
|
|
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"}
|