@envoy/envoy-integrations-sdk 2.2.0 → 2.2.3

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.
@@ -1,3 +1,4 @@
1
+ import JSONAPIData from '../util/json-api/JSONAPIData';
1
2
  import JSONAPIModel from '../util/json-api/JSONAPIModel';
2
3
  /**
3
4
  * @category API Resource
@@ -82,5 +83,25 @@ export declare type InviteModel = JSONAPIModel<InviteAttributes, InviteRelations
82
83
  /**
83
84
  * @category API Resource
84
85
  */
85
- export declare type InviteCreationModel = JSONAPIModel<InviteCreationAttributes, InviteRelationships, 'invites', undefined>;
86
+ declare type InviteCreationRequiredRelationships = 'location';
87
+ declare type InviteCreationProhibitedRelationships = 'creator';
88
+ declare type InviteCreationOptionalRelationships = Exclude<InviteRelationships, InviteCreationRequiredRelationships | InviteCreationProhibitedRelationships>;
89
+ /**
90
+ * Here we are going to do a little surgery on JSONAPIModel to allow us to specify required and optional relationships.
91
+ * We do this by first omitting the relationships field from JSONAPIModel, then adding it back in with modified type.
92
+ */
93
+ export declare type InviteCreationModel = Omit<JSONAPIModel<InviteCreationAttributes, InviteRelationships, 'invites', undefined>, 'relationships'> & {
94
+ relationships: {
95
+ [key in InviteCreationRequiredRelationships]: {
96
+ data: JSONAPIData | Array<JSONAPIData>;
97
+ };
98
+ } & {
99
+ [key in InviteCreationOptionalRelationships]?: {
100
+ data: JSONAPIData | Array<JSONAPIData> | null;
101
+ };
102
+ } & {
103
+ [key in InviteCreationProhibitedRelationships]?: never;
104
+ };
105
+ };
106
+ export {};
86
107
  //# sourceMappingURL=InviteResource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InviteResource.d.ts","sourceRoot":"","sources":["../../src/resources/InviteResource.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,+BAA+B,CAAC;AAEzD;;GAEG;AACH,oBAAY,gBAAgB,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,GAAG,aAAa,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,eAAe,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE;QAClB,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;QACrD,aAAa,EAAE,OAAO,CAAC;QACvB,MAAM,EAAE,KAAK,CAAC;YACZ,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;YACpC,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE;gBACR,OAAO,CAAC,EAAE;oBACR,IAAI,EAAE,MAAM,CAAC;oBACb,MAAM,EAAE,MAAM,CAAC;iBAChB,CAAA;aACF,CAAA;SACF,CAAC,CAAA;KACH,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,oBAAY,mBAAmB,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtG;;GAEG;AACH,oBAAY,WAAW,GAAG,YAAY,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;AAEzF;;GAEG;AACH,oBAAY,mBAAmB,GAAG,YAAY,CAAC,wBAAwB,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"InviteResource.d.ts","sourceRoot":"","sources":["../../src/resources/InviteResource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import JSONAPIModel from "../util/json-api/JSONAPIModel";
2
+ export interface ReservationAttributes {
3
+ 'is-partial-day': boolean;
4
+ 'updated-at': number;
5
+ 'is-assignable': boolean;
6
+ 'name': string;
7
+ 'assigned-to': string | null;
8
+ 'neighborhood-id': number;
9
+ 'created-at': number;
10
+ 'neighborhood': number | null;
11
+ 'parent-desk-id': string | null;
12
+ 'availability': string | null;
13
+ 'enabled': boolean;
14
+ 'x-pos': number | null;
15
+ 'y-pos': number | null;
16
+ }
17
+ export interface ReservationCreationAttributes {
18
+ userId: number;
19
+ deskId?: number | null;
20
+ locationId?: number | null;
21
+ inviteId?: number | null;
22
+ entryId?: number | null;
23
+ startTime?: number | null;
24
+ endTime?: number | null;
25
+ meta?: {
26
+ autoAssignDesk?: boolean;
27
+ };
28
+ }
29
+ export declare type ReservationRelationships = 'location' | 'desk' | 'company' | 'floor' | 'employee' | 'entry' | 'invite' | 'user';
30
+ export declare type ReservationModel = JSONAPIModel<ReservationAttributes, ReservationRelationships, 'reservations'>;
31
+ //# sourceMappingURL=ReservationResource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReservationResource.d.ts","sourceRoot":"","sources":["../../src/resources/ReservationResource.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,+BAA+B,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IAClC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,6BAA6B;IAE5C,MAAM,EAAE,MAAM,CAAC;IAGf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB,IAAI,CAAC,EAAE;QACL,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH;AAED,oBAAY,wBAAwB,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE5H,oBAAY,gBAAgB,GAAG,YAAY,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,cAAc,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -11,6 +11,7 @@ import JSONAPIPaginationParams from '../util/json-api/JSONAPIPaginationParams';
11
11
  import { InviteCreationModel, InviteFilterFields, InviteModel, InviteSortFields } from '../resources/InviteResource';
12
12
  import { UserModel } from '../resources/UserResource';
13
13
  import { EnvoyMetaAuth } from './EnvoyMeta';
14
+ import { ReservationCreationAttributes, ReservationModel } from "../resources/ReservationResource";
14
15
  export declare type EnvoyUserAPIScope = 'flows.read' | 'entries.read' | 'entries.write' | 'invites.read' | 'invites.write' | 'invites.attest' | 'locations.read' | 'companies.read' | 'agreements.read' | 'agreements.write' | 'sign-in-field-pages.read' | 'sign-in-fields.read' | 'sign-in-fields.write' | 'employees.read' | 'employees.write' | 'badges.read' | 'blacklist-filters.read' | 'blacklist-filters.write' | 'tickets.read' | 'tickets.write' | 'spaces.read' | 'reservations.read' | 'reservations.write' | string;
15
16
  /**
16
17
  * API endpoints for *user-scoped* tokens.
@@ -83,6 +84,7 @@ export default class EnvoyUserAPI extends EnvoyAPI {
83
84
  * May also require `invites.attest` scope if setting `attested: true`.
84
85
  */
85
86
  createInvite(invite: InviteCreationModel): Promise<InviteModel>;
87
+ createReservation(reservationDetails: ReservationCreationAttributes): Promise<ReservationModel>;
86
88
  /**
87
89
  * Requires `invites.write` scope.
88
90
  */
@@ -1 +1 @@
1
- {"version":3,"file":"EnvoyUserAPI.d.ts","sourceRoot":"","sources":["../../src/sdk/EnvoyUserAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EnvoyUserAPI.d.ts","sourceRoot":"","sources":["../../src/sdk/EnvoyUserAPI.ts"],"names":[],"mappings":"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"}
@@ -303,6 +303,44 @@ var EnvoyUserAPI = /** @class */ (function (_super) {
303
303
  });
304
304
  });
305
305
  };
306
+ EnvoyUserAPI.prototype.createReservation = function (reservationDetails) {
307
+ return __awaiter(this, void 0, void 0, function () {
308
+ var createReservationBody, data;
309
+ return __generator(this, function (_a) {
310
+ switch (_a.label) {
311
+ case 0:
312
+ createReservationBody = {
313
+ data: {
314
+ relationships: __assign({ user: {
315
+ data: {
316
+ type: 'users',
317
+ id: reservationDetails.userId
318
+ }
319
+ } }, (reservationDetails.locationId && {
320
+ location: {
321
+ data: {
322
+ type: 'locations',
323
+ id: reservationDetails.locationId
324
+ }
325
+ }
326
+ })),
327
+ attributes: __assign(__assign({ 'start-time': reservationDetails.startTime }, (reservationDetails.endTime && {
328
+ 'end-time': reservationDetails.endTime
329
+ })), { 'booking-source': 'EXTERNAL_API', 'booking-type': 'visitor' })
330
+ }
331
+ };
332
+ return [4 /*yield*/, this.axios({
333
+ method: 'POST',
334
+ url: '/a/rms/reservations',
335
+ data: createReservationBody,
336
+ })];
337
+ case 1:
338
+ data = (_a.sent()).data;
339
+ return [2 /*return*/, data.data];
340
+ }
341
+ });
342
+ });
343
+ };
306
344
  /**
307
345
  * Requires `invites.write` scope.
308
346
  */
@@ -3,7 +3,7 @@ export default interface JSONAPIModel<Attributes, Relationships extends string,
3
3
  attributes: Attributes;
4
4
  relationships: {
5
5
  [key in Relationships]: {
6
- data: JSONAPIData & Array<JSONAPIData>;
6
+ data: JSONAPIData | Array<JSONAPIData> | null;
7
7
  };
8
8
  };
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"JSONAPIModel.d.ts","sourceRoot":"","sources":["../../../src/util/json-api/JSONAPIModel.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,OAAO,WAAW,YAAY,CAAC,UAAU,EAAE,aAAa,SAAS,MAAM,EAAE,IAAI,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,CAAE,SAAQ,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;IACvI,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE;SACZ,GAAG,IAAI,aAAa,GAAG;YACtB,IAAI,EAAE,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAA;SACvC;KACF,CAAA;CACF"}
1
+ {"version":3,"file":"JSONAPIModel.d.ts","sourceRoot":"","sources":["../../../src/util/json-api/JSONAPIModel.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,MAAM,CAAC,OAAO,WAAW,YAAY,CAAC,UAAU,EAAE,aAAa,SAAS,MAAM,EAAE,IAAI,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,CACxG,SAAQ,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE;SACZ,GAAG,IAAI,aAAa,GAAG;YACtB,IAAI,EAAE,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;SAC/C;KACF,CAAC;CACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@envoy/envoy-integrations-sdk",
3
- "version": "2.2.0",
3
+ "version": "2.2.3",
4
4
  "description": "SDK for building Envoy integrations.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,3 +1,4 @@
1
+ import JSONAPIData from '../util/json-api/JSONAPIData';
1
2
  import JSONAPIModel from '../util/json-api/JSONAPIModel';
2
3
 
3
4
  /**
@@ -32,15 +33,15 @@ export interface InviteAttributes {
32
33
  auto_approved: boolean;
33
34
  report: Array<{
34
35
  reason: string;
35
- result: 'pass' | 'fail' | 'pending',
36
- source: string,
36
+ result: 'pass' | 'fail' | 'pending';
37
+ source: string;
37
38
  messages: {
38
39
  failure?: {
39
- text: string,
40
- header: string,
41
- }
42
- }
43
- }>
40
+ text: string;
41
+ header: string;
42
+ };
43
+ };
44
+ }>;
44
45
  };
45
46
  email?: string;
46
47
  'expected-arrival-time'?: string;
@@ -89,4 +90,30 @@ export type InviteModel = JSONAPIModel<InviteAttributes, InviteRelationships, 'i
89
90
  /**
90
91
  * @category API Resource
91
92
  */
92
- export type InviteCreationModel = JSONAPIModel<InviteCreationAttributes, InviteRelationships, 'invites', undefined>;
93
+ type InviteCreationRequiredRelationships = 'location'; // surprising, but flow is not required. if not provided, it will be defaulted
94
+ type InviteCreationProhibitedRelationships = 'creator';
95
+ type InviteCreationOptionalRelationships = Exclude<
96
+ InviteRelationships,
97
+ InviteCreationRequiredRelationships | InviteCreationProhibitedRelationships
98
+ >;
99
+
100
+ /**
101
+ * Here we are going to do a little surgery on JSONAPIModel to allow us to specify required and optional relationships.
102
+ * We do this by first omitting the relationships field from JSONAPIModel, then adding it back in with modified type.
103
+ */
104
+ export type InviteCreationModel = Omit<
105
+ JSONAPIModel<InviteCreationAttributes, InviteRelationships, 'invites', undefined>,
106
+ 'relationships'
107
+ > & {
108
+ relationships: {
109
+ [key in InviteCreationRequiredRelationships]: {
110
+ data: JSONAPIData | Array<JSONAPIData>;
111
+ };
112
+ } & {
113
+ [key in InviteCreationOptionalRelationships]?: {
114
+ data: JSONAPIData | Array<JSONAPIData> | null;
115
+ };
116
+ } & {
117
+ [key in InviteCreationProhibitedRelationships]?: never;
118
+ };
119
+ };
@@ -0,0 +1,40 @@
1
+ import JSONAPIModel from "../util/json-api/JSONAPIModel";
2
+
3
+ export interface ReservationAttributes {
4
+ 'is-partial-day': boolean;
5
+ 'updated-at': number;
6
+ 'is-assignable': boolean;
7
+ 'name': string;
8
+ 'assigned-to': string | null;
9
+ 'neighborhood-id': number;
10
+ 'created-at': number;
11
+ 'neighborhood': number | null;
12
+ 'parent-desk-id': string | null;
13
+ 'availability': string | null;
14
+ 'enabled': boolean;
15
+ 'x-pos': number | null;
16
+ 'y-pos': number | null;
17
+ }
18
+
19
+ export interface ReservationCreationAttributes {
20
+ // Required fields
21
+ userId: number;
22
+
23
+ // Optional fields
24
+ deskId?: number | null;
25
+ locationId?: number | null;
26
+ inviteId?: number | null;
27
+ entryId?: number | null;
28
+ startTime?: number | null; // Unix timestamp
29
+ endTime?: number | null; // Unix timestamp
30
+
31
+ meta?: {
32
+ autoAssignDesk?: boolean;
33
+ };
34
+ }
35
+
36
+ export type ReservationRelationships = 'location' | 'desk' | 'company' | 'floor' | 'employee' | 'entry' | 'invite' | 'user';
37
+
38
+ export type ReservationModel = JSONAPIModel<ReservationAttributes, ReservationRelationships, 'reservations'>
39
+
40
+
@@ -17,6 +17,7 @@ import { UserModel } from '../resources/UserResource';
17
17
  import { envoyBaseURL, envoyClientId, envoyClientSecret } from '../constants';
18
18
  import { EnvoyMetaAuth } from './EnvoyMeta';
19
19
  import { sanitizeAxiosError } from '../util/axiosConstructor';
20
+ import { ReservationCreationAttributes, ReservationModel } from "../resources/ReservationResource";
20
21
 
21
22
  export type EnvoyUserAPIScope =
22
23
  'flows.read' |
@@ -195,6 +196,43 @@ export default class EnvoyUserAPI extends EnvoyAPI {
195
196
  return data.data;
196
197
  }
197
198
 
199
+ async createReservation(reservationDetails: ReservationCreationAttributes): Promise<ReservationModel> {
200
+ let createReservationBody = {
201
+ data: {
202
+ relationships: {
203
+ user: {
204
+ data: {
205
+ type: 'users',
206
+ id: reservationDetails.userId
207
+ }},
208
+ ...(reservationDetails.locationId && {
209
+ location: {
210
+ data: {
211
+ type: 'locations',
212
+ id: reservationDetails.locationId
213
+ }
214
+ }
215
+ }
216
+ )
217
+ },
218
+ attributes: {
219
+ 'start-time': reservationDetails.startTime,
220
+ ...(reservationDetails.endTime && {
221
+ 'end-time': reservationDetails.endTime
222
+ }),
223
+ 'booking-source': 'EXTERNAL_API',
224
+ 'booking-type': 'visitor'
225
+ }
226
+ }
227
+ }
228
+ const { data } = await this.axios({
229
+ method: 'POST',
230
+ url: '/a/rms/reservations',
231
+ data: createReservationBody,
232
+ });
233
+ return data.data;
234
+ }
235
+
198
236
  /**
199
237
  * Requires `invites.write` scope.
200
238
  */
@@ -305,7 +343,7 @@ export default class EnvoyUserAPI extends EnvoyAPI {
305
343
  });
306
344
  return data;
307
345
  } catch (error) {
308
- throw sanitizeAxiosError(error);
346
+ throw sanitizeAxiosError(error);
309
347
  }
310
348
  }
311
349
 
@@ -333,7 +371,7 @@ export default class EnvoyUserAPI extends EnvoyAPI {
333
371
  });
334
372
  return data;
335
373
  } catch (error) {
336
- throw sanitizeAxiosError(error);
374
+ throw sanitizeAxiosError(error);
337
375
  }
338
376
  }
339
377
  }
@@ -1,10 +1,11 @@
1
1
  import JSONAPIData from './JSONAPIData';
2
2
 
3
- export default interface JSONAPIModel<Attributes, Relationships extends string, Type = string, ID = string> extends JSONAPIData<Type, ID> {
3
+ export default interface JSONAPIModel<Attributes, Relationships extends string, Type = string, ID = string>
4
+ extends JSONAPIData<Type, ID> {
4
5
  attributes: Attributes;
5
6
  relationships: {
6
7
  [key in Relationships]: {
7
- data: JSONAPIData & Array<JSONAPIData>
8
+ data: JSONAPIData | Array<JSONAPIData> | null;
8
9
  };
9
- }
10
+ };
10
11
  }