@layer-drone/protocol 2.0.0 → 2.2.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/dist/index.js CHANGED
@@ -80,6 +80,7 @@ __export(index_exports, {
80
80
  flightPlansControllerCreate0V1: () => flightPlansControllerCreate0V1,
81
81
  flightPlansControllerCreate1: () => flightPlansControllerCreate1,
82
82
  flightPlansControllerCreateV2V2: () => flightPlansControllerCreateV2V2,
83
+ flightPlansControllerExpandV2V2: () => flightPlansControllerExpandV2V2,
83
84
  flightPlansControllerGet0V1: () => flightPlansControllerGet0V1,
84
85
  flightPlansControllerGet1: () => flightPlansControllerGet1,
85
86
  flightPlansControllerGetMany0V1: () => flightPlansControllerGetMany0V1,
@@ -3387,6 +3388,22 @@ var flightPlansControllerUpdateV2V2 = /* @__PURE__ */ __name((options) => {
3387
3388
  }
3388
3389
  });
3389
3390
  }, "flightPlansControllerUpdateV2V2");
3391
+ var flightPlansControllerExpandV2V2 = /* @__PURE__ */ __name((options) => {
3392
+ return (options.client ?? client).post({
3393
+ security: [
3394
+ {
3395
+ name: "x-api-token",
3396
+ type: "apiKey"
3397
+ }
3398
+ ],
3399
+ url: "/v2/flight-plans/{id}/expand",
3400
+ ...options,
3401
+ headers: {
3402
+ "Content-Type": "application/json",
3403
+ ...options.headers
3404
+ }
3405
+ });
3406
+ }, "flightPlansControllerExpandV2V2");
3390
3407
  var flightsControllerGetFlightsV2V2 = /* @__PURE__ */ __name((options) => {
3391
3408
  return (options?.client ?? client).get({
3392
3409
  security: [
@@ -3709,7 +3726,17 @@ var Event = import_zod.z.union([
3709
3726
  requestor: import_zod.z.string().regex(new RegExp("^0x[a-fA-F0-9]{40}$")),
3710
3727
  collateralTokenAddress: import_zod.z.string().regex(new RegExp("^0x[a-fA-F0-9]{40}$")),
3711
3728
  chainId: import_zod.z.number(),
3712
- tags: import_zod.z.record(import_zod.z.string())
3729
+ tags: import_zod.z.record(import_zod.z.string()),
3730
+ isOpen: import_zod.z.boolean().optional(),
3731
+ closedAt: import_zod.z.string().datetime({
3732
+ offset: true
3733
+ }).optional(),
3734
+ createdAt: import_zod.z.string().datetime({
3735
+ offset: true
3736
+ }).optional(),
3737
+ vaultCreatedAt: import_zod.z.string().datetime({
3738
+ offset: true
3739
+ }).optional()
3713
3740
  }).catchall(import_zod.z.any())
3714
3741
  }).catchall(import_zod.z.any()),
3715
3742
  import_zod.z.object({
@@ -3790,7 +3817,10 @@ var Event = import_zod.z.union([
3790
3817
  missionId: import_zod.z.object({
3791
3818
  __type: import_zod.z.literal("bigint"),
3792
3819
  value: import_zod.z.string()
3793
- }).transform((wire) => BigInt(wire.value))
3820
+ }).transform((wire) => BigInt(wire.value)),
3821
+ createdAt: import_zod.z.string().datetime({
3822
+ offset: true
3823
+ }).optional()
3794
3824
  }).catchall(import_zod.z.any())
3795
3825
  }).catchall(import_zod.z.any()),
3796
3826
  import_zod.z.object({
@@ -3805,6 +3835,9 @@ var Event = import_zod.z.union([
3805
3835
  is_flyable: import_zod.z.boolean(),
3806
3836
  deleted_at: import_zod.z.string().datetime({
3807
3837
  offset: true
3838
+ }).optional(),
3839
+ created_at: import_zod.z.string().datetime({
3840
+ offset: true
3808
3841
  }).optional()
3809
3842
  }).catchall(import_zod.z.any()),
3810
3843
  changes: import_zod.z.object({
@@ -3812,6 +3845,9 @@ var Event = import_zod.z.union([
3812
3845
  is_flyable: import_zod.z.boolean().optional(),
3813
3846
  deleted_at: import_zod.z.string().datetime({
3814
3847
  offset: true
3848
+ }).optional(),
3849
+ created_at: import_zod.z.string().datetime({
3850
+ offset: true
3815
3851
  }).optional()
3816
3852
  }).catchall(import_zod.z.any()).optional()
3817
3853
  }).catchall(import_zod.z.any())
@@ -3921,6 +3957,7 @@ __name(getFirstHeader, "getFirstHeader");
3921
3957
  flightPlansControllerCreate0V1,
3922
3958
  flightPlansControllerCreate1,
3923
3959
  flightPlansControllerCreateV2V2,
3960
+ flightPlansControllerExpandV2V2,
3924
3961
  flightPlansControllerGet0V1,
3925
3962
  flightPlansControllerGet1,
3926
3963
  flightPlansControllerGetMany0V1,
package/dist/index.mjs CHANGED
@@ -3201,6 +3201,22 @@ var flightPlansControllerUpdateV2V2 = /* @__PURE__ */ __name((options) => {
3201
3201
  }
3202
3202
  });
3203
3203
  }, "flightPlansControllerUpdateV2V2");
3204
+ var flightPlansControllerExpandV2V2 = /* @__PURE__ */ __name((options) => {
3205
+ return (options.client ?? client).post({
3206
+ security: [
3207
+ {
3208
+ name: "x-api-token",
3209
+ type: "apiKey"
3210
+ }
3211
+ ],
3212
+ url: "/v2/flight-plans/{id}/expand",
3213
+ ...options,
3214
+ headers: {
3215
+ "Content-Type": "application/json",
3216
+ ...options.headers
3217
+ }
3218
+ });
3219
+ }, "flightPlansControllerExpandV2V2");
3204
3220
  var flightsControllerGetFlightsV2V2 = /* @__PURE__ */ __name((options) => {
3205
3221
  return (options?.client ?? client).get({
3206
3222
  security: [
@@ -3523,7 +3539,17 @@ var Event = z.union([
3523
3539
  requestor: z.string().regex(new RegExp("^0x[a-fA-F0-9]{40}$")),
3524
3540
  collateralTokenAddress: z.string().regex(new RegExp("^0x[a-fA-F0-9]{40}$")),
3525
3541
  chainId: z.number(),
3526
- tags: z.record(z.string())
3542
+ tags: z.record(z.string()),
3543
+ isOpen: z.boolean().optional(),
3544
+ closedAt: z.string().datetime({
3545
+ offset: true
3546
+ }).optional(),
3547
+ createdAt: z.string().datetime({
3548
+ offset: true
3549
+ }).optional(),
3550
+ vaultCreatedAt: z.string().datetime({
3551
+ offset: true
3552
+ }).optional()
3527
3553
  }).catchall(z.any())
3528
3554
  }).catchall(z.any()),
3529
3555
  z.object({
@@ -3604,7 +3630,10 @@ var Event = z.union([
3604
3630
  missionId: z.object({
3605
3631
  __type: z.literal("bigint"),
3606
3632
  value: z.string()
3607
- }).transform((wire) => BigInt(wire.value))
3633
+ }).transform((wire) => BigInt(wire.value)),
3634
+ createdAt: z.string().datetime({
3635
+ offset: true
3636
+ }).optional()
3608
3637
  }).catchall(z.any())
3609
3638
  }).catchall(z.any()),
3610
3639
  z.object({
@@ -3619,6 +3648,9 @@ var Event = z.union([
3619
3648
  is_flyable: z.boolean(),
3620
3649
  deleted_at: z.string().datetime({
3621
3650
  offset: true
3651
+ }).optional(),
3652
+ created_at: z.string().datetime({
3653
+ offset: true
3622
3654
  }).optional()
3623
3655
  }).catchall(z.any()),
3624
3656
  changes: z.object({
@@ -3626,6 +3658,9 @@ var Event = z.union([
3626
3658
  is_flyable: z.boolean().optional(),
3627
3659
  deleted_at: z.string().datetime({
3628
3660
  offset: true
3661
+ }).optional(),
3662
+ created_at: z.string().datetime({
3663
+ offset: true
3629
3664
  }).optional()
3630
3665
  }).catchall(z.any()).optional()
3631
3666
  }).catchall(z.any())
@@ -3734,6 +3769,7 @@ export {
3734
3769
  flightPlansControllerCreate0V1,
3735
3770
  flightPlansControllerCreate1,
3736
3771
  flightPlansControllerCreateV2V2,
3772
+ flightPlansControllerExpandV2V2,
3737
3773
  flightPlansControllerGet0V1,
3738
3774
  flightPlansControllerGet1,
3739
3775
  flightPlansControllerGetMany0V1,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@layer-drone/protocol",
3
3
  "description": "Layer Drone protocol SDK with typed API client and event parsing",
4
- "version": "2.0.0",
4
+ "version": "2.2.0",
5
5
  "license": "MIT",
6
6
  "files": [
7
7
  "dist",
@@ -33,8 +33,8 @@
33
33
  "typescript": "5.5.4",
34
34
  "zod": "^3.24.2",
35
35
  "zod-to-json-schema": "^3.24.5",
36
- "@layer-drone/event-schema": "0.0.0",
37
36
  "@layer-drone/eslint-config": "0.0.0",
37
+ "@layer-drone/event-schema": "0.0.0",
38
38
  "@layer-drone/typescript-config": "0.0.0"
39
39
  },
40
40
  "peerDependencies": {
@@ -229,6 +229,9 @@ import type {
229
229
  FlightPlansControllerCreateV2V2Data,
230
230
  FlightPlansControllerCreateV2V2Errors,
231
231
  FlightPlansControllerCreateV2V2Responses,
232
+ FlightPlansControllerExpandV2V2Data,
233
+ FlightPlansControllerExpandV2V2Errors,
234
+ FlightPlansControllerExpandV2V2Responses,
232
235
  FlightPlansControllerGet0V1Data,
233
236
  FlightPlansControllerGet0V1Errors,
234
237
  FlightPlansControllerGet0V1Responses,
@@ -3986,6 +3989,35 @@ export const flightPlansControllerUpdateV2V2 = <
3986
3989
  });
3987
3990
  };
3988
3991
 
3992
+ /**
3993
+ * Expand a flight plan into a FlightPathIntended
3994
+ * Forwards to mission-fulfillment. Loads the stored template, resolves zone geometry, and returns a FlightPathIntended for the given camera specs. Path only, not the template. Stateless: nothing is persisted.
3995
+ */
3996
+ export const flightPlansControllerExpandV2V2 = <
3997
+ ThrowOnError extends boolean = true,
3998
+ >(
3999
+ options: Options<FlightPlansControllerExpandV2V2Data, ThrowOnError>,
4000
+ ) => {
4001
+ return (options.client ?? _heyApiClient).post<
4002
+ FlightPlansControllerExpandV2V2Responses,
4003
+ FlightPlansControllerExpandV2V2Errors,
4004
+ ThrowOnError
4005
+ >({
4006
+ security: [
4007
+ {
4008
+ name: "x-api-token",
4009
+ type: "apiKey",
4010
+ },
4011
+ ],
4012
+ url: "/v2/flight-plans/{id}/expand",
4013
+ ...options,
4014
+ headers: {
4015
+ "Content-Type": "application/json",
4016
+ ...options.headers,
4017
+ },
4018
+ });
4019
+ };
4020
+
3989
4021
  /**
3990
4022
  * List flights (mission-fulfillment)
3991
4023
  * Returns flights from mission-fulfillment.
@@ -1293,6 +1293,7 @@ export type MissionFulfillmentGetFlightPlansResponse = {
1293
1293
  data: Array<{
1294
1294
  id: string;
1295
1295
  name: string;
1296
+ slug: string | null;
1296
1297
  description: string | null;
1297
1298
  base_energy_usage: number;
1298
1299
  base_duration: number;
@@ -1340,6 +1341,7 @@ export type MissionFulfillmentGetFlightPlansResponse = {
1340
1341
  export type FlightPlanResponse = {
1341
1342
  id: string;
1342
1343
  name: string;
1344
+ slug: string | null;
1343
1345
  description: string | null;
1344
1346
  base_energy_usage: number;
1345
1347
  base_duration: number;
@@ -1385,6 +1387,7 @@ export type FlightPlanResponse = {
1385
1387
 
1386
1388
  export type MissionFulfillmentCreateFlightPlanBody = {
1387
1389
  name: string;
1390
+ slug: string;
1388
1391
  description?: string | null;
1389
1392
  base_energy_usage: number;
1390
1393
  base_duration: number;
@@ -1423,8 +1426,37 @@ export type MissionFulfillmentCreateFlightPlanBody = {
1423
1426
  };
1424
1427
  };
1425
1428
 
1429
+ export type ExpandFlightPlanBody = {
1430
+ zone_id: string;
1431
+ camera_specs: {
1432
+ pixelPitchInMeters: number;
1433
+ sensorWidthInMeters: number;
1434
+ sensorHeightInMeters: number;
1435
+ focalLengthInMeters: number;
1436
+ hFovInDegrees: number;
1437
+ };
1438
+ };
1439
+
1440
+ export type FlightPathIntendedResponse = {
1441
+ type: "FeatureCollection";
1442
+ features: Array<unknown>;
1443
+ metadata: {
1444
+ flightPlanType: string;
1445
+ flightPlanId: number;
1446
+ zoneHash: string;
1447
+ imageCount: number;
1448
+ pathVersion: number;
1449
+ sections?: Array<{
1450
+ index: number;
1451
+ type: "map" | "panorama";
1452
+ waypointCount: number;
1453
+ }>;
1454
+ };
1455
+ };
1456
+
1426
1457
  export type UpdateFlightPlanBody = {
1427
1458
  name: string;
1459
+ slug: string;
1428
1460
  description?: string | null;
1429
1461
  base_energy_usage: number;
1430
1462
  base_duration: number;
@@ -1518,6 +1550,7 @@ export type CreateMissionsBody = {
1518
1550
  capture_start_time: Date;
1519
1551
  capture_end_time: Date;
1520
1552
  holding_period_seconds?: number | null;
1553
+ reservable?: boolean;
1521
1554
  tags?: {
1522
1555
  [key: string]: string;
1523
1556
  };
@@ -1558,6 +1591,7 @@ export type CreateMissionsResponse = {
1558
1591
  capture_start_time: Date;
1559
1592
  capture_end_time: Date;
1560
1593
  holding_period_seconds: number;
1594
+ reservable: boolean;
1561
1595
  tags: {
1562
1596
  [key: string]: string;
1563
1597
  };
@@ -1629,6 +1663,7 @@ export type ListMissionsResponse = {
1629
1663
  capture_start_time: Date;
1630
1664
  capture_end_time: Date;
1631
1665
  holding_period_seconds: number;
1666
+ reservable: boolean;
1632
1667
  tags: {
1633
1668
  [key: string]: string;
1634
1669
  };
@@ -1685,6 +1720,7 @@ export type MissionResponse = {
1685
1720
  capture_start_time: Date;
1686
1721
  capture_end_time: Date;
1687
1722
  holding_period_seconds: number;
1723
+ reservable: boolean;
1688
1724
  tags: {
1689
1725
  [key: string]: string;
1690
1726
  };
@@ -1722,6 +1758,7 @@ export type UpdateMissionBody = {
1722
1758
  }>;
1723
1759
  flight_plan_id?: string;
1724
1760
  campaign_ids?: Array<string>;
1761
+ reservable?: boolean;
1725
1762
  };
1726
1763
 
1727
1764
  export type CreateFlightBody = {
@@ -1836,7 +1873,10 @@ export type FlightReviewResponse = {
1836
1873
  };
1837
1874
 
1838
1875
  export type ImageUploadUrlsBody = {
1839
- filenames: Array<string>;
1876
+ files: Array<{
1877
+ filename: string;
1878
+ checksum: string;
1879
+ }>;
1840
1880
  };
1841
1881
 
1842
1882
  export type ImageUploadUrlsResponse = {
@@ -4837,6 +4877,7 @@ export type FlightPlansControllerGetManyV2V2Data = {
4837
4877
  query?: {
4838
4878
  include_inactive?: "true" | "false";
4839
4879
  legacy_id?: number;
4880
+ slug?: string;
4840
4881
  };
4841
4882
  url: "/v2/flight-plans";
4842
4883
  };
@@ -4914,6 +4955,27 @@ export type FlightPlansControllerUpdateV2V2Responses = {
4914
4955
  export type FlightPlansControllerUpdateV2V2Response =
4915
4956
  FlightPlansControllerUpdateV2V2Responses[keyof FlightPlansControllerUpdateV2V2Responses];
4916
4957
 
4958
+ export type FlightPlansControllerExpandV2V2Data = {
4959
+ body: ExpandFlightPlanBody;
4960
+ path: {
4961
+ id: string;
4962
+ };
4963
+ query?: never;
4964
+ url: "/v2/flight-plans/{id}/expand";
4965
+ };
4966
+
4967
+ export type FlightPlansControllerExpandV2V2Errors = {
4968
+ 401: unknown;
4969
+ 403: unknown;
4970
+ };
4971
+
4972
+ export type FlightPlansControllerExpandV2V2Responses = {
4973
+ 200: FlightPathIntendedResponse;
4974
+ };
4975
+
4976
+ export type FlightPlansControllerExpandV2V2Response =
4977
+ FlightPlansControllerExpandV2V2Responses[keyof FlightPlansControllerExpandV2V2Responses];
4978
+
4917
4979
  export type FlightsControllerGetFlightsV2V2Data = {
4918
4980
  body?: never;
4919
4981
  path?: never;
@@ -39,6 +39,10 @@ export const Event = z.union([
39
39
  .regex(new RegExp("^0x[a-fA-F0-9]{40}$")),
40
40
  chainId: z.number(),
41
41
  tags: z.record(z.string()),
42
+ isOpen: z.boolean().optional(),
43
+ closedAt: z.string().datetime({ offset: true }).optional(),
44
+ createdAt: z.string().datetime({ offset: true }).optional(),
45
+ vaultCreatedAt: z.string().datetime({ offset: true }).optional(),
42
46
  })
43
47
  .catchall(z.any()),
44
48
  })
@@ -128,6 +132,7 @@ export const Event = z.union([
128
132
  missionId: z
129
133
  .object({ __type: z.literal("bigint"), value: z.string() })
130
134
  .transform((wire) => BigInt(wire.value)),
135
+ createdAt: z.string().datetime({ offset: true }).optional(),
131
136
  })
132
137
  .catchall(z.any()),
133
138
  })
@@ -146,6 +151,7 @@ export const Event = z.union([
146
151
  region_id: z.number(),
147
152
  is_flyable: z.boolean(),
148
153
  deleted_at: z.string().datetime({ offset: true }).optional(),
154
+ created_at: z.string().datetime({ offset: true }).optional(),
149
155
  })
150
156
  .catchall(z.any()),
151
157
  changes: z
@@ -153,6 +159,7 @@ export const Event = z.union([
153
159
  region_id: z.number().optional(),
154
160
  is_flyable: z.boolean().optional(),
155
161
  deleted_at: z.string().datetime({ offset: true }).optional(),
162
+ created_at: z.string().datetime({ offset: true }).optional(),
156
163
  })
157
164
  .catchall(z.any())
158
165
  .optional(),