@balena/pinejs 17.1.0-build-model-based-typings-a10277597a28577bcb204b378925c9df795a10e8-1 → 17.1.0-build-model-based-typings-69cb06110d937246c834286becb0410a2301f161-1

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,6 +1,6 @@
1
1
  - commits:
2
2
  - subject: Add dev model typings
3
- hash: a10277597a28577bcb204b378925c9df795a10e8
3
+ hash: 69cb06110d937246c834286becb0410a2301f161
4
4
  body: ""
5
5
  footer:
6
6
  Change-type: patch
@@ -8,7 +8,7 @@
8
8
  author: Pagan Gazzard
9
9
  nested: []
10
10
  - subject: Add migration model typings
11
- hash: 891f92255cc1c22c2ea98fa9dca3adbeb4036874
11
+ hash: 7886d039bd20fb42e4c07a8c0e3c37a3380525bf
12
12
  body: ""
13
13
  footer:
14
14
  Change-type: patch
@@ -16,7 +16,7 @@
16
16
  author: Pagan Gazzard
17
17
  nested: []
18
18
  - subject: Add auth model typings
19
- hash: 2ae28ae0ebaa8d9088ed1aefebc708bed4b9e6b5
19
+ hash: e368e7448dcf7704fad3a3507b66d484448d5079
20
20
  body: ""
21
21
  footer:
22
22
  Change-type: patch
@@ -24,7 +24,7 @@
24
24
  author: Pagan Gazzard
25
25
  nested: []
26
26
  - subject: Switch API typings to an interface so it can be overridden/merged
27
- hash: 7c9a4ce272213334b03588e94674c307f99bc496
27
+ hash: cd475dd9f977fbd28b71bb4a5595b227ed6e5d1a
28
28
  body: ""
29
29
  footer:
30
30
  Change-type: minor
@@ -32,7 +32,7 @@
32
32
  author: Pagan Gazzard
33
33
  nested: []
34
34
  - subject: Allow passing model typings when instantiating an internal pinejs client
35
- hash: 699b9d22f1606f0afb70f2417d84be1c97c72683
35
+ hash: 584375be2032f3907b3af3a74116ea57db68089f
36
36
  body: |
37
37
  Update @balena/abstract-sql-compiler from 9.1.4 to 9.2.0
38
38
  Update @balena/abstract-sql-to-typescript 3.1.1 to 3.1.2
@@ -228,9 +228,17 @@
228
228
  version: sbvr-types-7.1.2
229
229
  title: ""
230
230
  date: 2024-06-12T12:19:17.354Z
231
+ - subject: Avoid duplicate types when using sbvr-compiler to generate model types
232
+ hash: fd522e4ae75be1a7c7c927303d631c967d4bd9b9
233
+ body: ""
234
+ footer:
235
+ Change-type: patch
236
+ change-type: patch
237
+ author: Pagan Gazzard
238
+ nested: []
231
239
  version: 17.1.0
232
240
  title: ""
233
- date: 2024-06-14T14:12:55.547Z
241
+ date: 2024-06-14T14:50:09.479Z
234
242
  - commits:
235
243
  - subject: Switch from `Object.prototype.hasOwnProperty.call` to `Object.hasOwn`
236
244
  hash: 1343f0d463bf4271846343ee98de4d8afb9402f3
package/CHANGELOG.md CHANGED
@@ -73,6 +73,8 @@ This project adheres to [Semantic Versioning](http://semver.org/).
73
73
 
74
74
  </details>
75
75
 
76
+ * Avoid duplicate types when using sbvr-compiler to generate model types [Pagan Gazzard]
77
+
76
78
  # v17.0.1
77
79
  ## (2024-06-13)
78
80
 
@@ -49,11 +49,12 @@ const runCompile = async (inputFile, outputFile) => {
49
49
  (0, utils_1.writeSqlModel)(models.sql, outputFile);
50
50
  };
51
51
  const generateTypes = async (inputFile, outputFile) => {
52
- const { generateModels } = await import('../sbvr-api/sbvr-utils.js');
52
+ const { generateLfModel, generateAbstractSqlModel } = await import('../sbvr-api/sbvr-utils.js');
53
53
  const seModel = getSE(inputFile);
54
- const models = generateModels({ apiRoot: 'sbvr-compiler', modelText: seModel }, commander_1.program.opts().engine);
54
+ const lfModel = generateLfModel(seModel);
55
+ const abstractSql = generateAbstractSqlModel(lfModel);
55
56
  const { abstractSqlToTypescriptTypes } = await import('@balena/abstract-sql-to-typescript/generate');
56
- const types = abstractSqlToTypescriptTypes(models.abstractSql);
57
+ const types = abstractSqlToTypescriptTypes(abstractSql);
57
58
  (0, utils_1.writeAll)(types, outputFile);
58
59
  };
59
60
  commander_1.program
@@ -1 +1 @@
1
- {"version":3,"file":"sbvr-compiler.js","sourceRoot":"","sources":["../../src/bin/sbvr-compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sbvr-compiler.js","sourceRoot":"","sources":["../../src/bin/sbvr-compiler.ts"],"names":[],"mappings":"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"}
@@ -51,63 +51,8 @@ export interface MigrationStatus {
51
51
  converged_time: Types['Date Time']['Write'] | null;
52
52
  };
53
53
  }
54
- export interface Migration {
55
- Read: {
56
- created_at: Types['Date Time']['Read'];
57
- modified_at: Types['Date Time']['Read'];
58
- model_name: Types['Short Text']['Read'];
59
- executed_migrations: Types['JSON']['Read'];
60
- };
61
- Write: {
62
- created_at: Types['Date Time']['Write'];
63
- modified_at: Types['Date Time']['Write'];
64
- model_name: Types['Short Text']['Write'];
65
- executed_migrations: Types['JSON']['Write'];
66
- };
67
- }
68
- export interface MigrationLock {
69
- Read: {
70
- created_at: Types['Date Time']['Read'];
71
- modified_at: Types['Date Time']['Read'];
72
- model_name: Types['Short Text']['Read'];
73
- };
74
- Write: {
75
- created_at: Types['Date Time']['Write'];
76
- modified_at: Types['Date Time']['Write'];
77
- model_name: Types['Short Text']['Write'];
78
- };
79
- }
80
- export interface MigrationStatus {
81
- Read: {
82
- created_at: Types['Date Time']['Read'];
83
- modified_at: Types['Date Time']['Read'];
84
- migration_key: Types['Short Text']['Read'];
85
- start_time: Types['Date Time']['Read'] | null;
86
- last_run_time: Types['Date Time']['Read'] | null;
87
- run_count: Types['Integer']['Read'];
88
- migrated_row_count: Types['Integer']['Read'] | null;
89
- error_count: Types['Integer']['Read'] | null;
90
- is_backing_off: Types['Boolean']['Read'];
91
- converged_time: Types['Date Time']['Read'] | null;
92
- };
93
- Write: {
94
- created_at: Types['Date Time']['Write'];
95
- modified_at: Types['Date Time']['Write'];
96
- migration_key: Types['Short Text']['Write'];
97
- start_time: Types['Date Time']['Write'] | null;
98
- last_run_time: Types['Date Time']['Write'] | null;
99
- run_count: Types['Integer']['Write'];
100
- migrated_row_count: Types['Integer']['Write'] | null;
101
- error_count: Types['Integer']['Write'] | null;
102
- is_backing_off: Types['Boolean']['Write'];
103
- converged_time: Types['Date Time']['Write'] | null;
104
- };
105
- }
106
54
  export default interface $Model {
107
55
  migration: Migration;
108
56
  migration_lock: MigrationLock;
109
57
  migration_status: MigrationStatus;
110
- migration$sbvr__compiler: Migration;
111
- migration_lock$sbvr__compiler: MigrationLock;
112
- migration_status$sbvr__compiler: MigrationStatus;
113
58
  }
@@ -17,25 +17,6 @@ export interface Model {
17
17
  model_value: Types['JSON']['Write'];
18
18
  };
19
19
  }
20
- export interface Model {
21
- Read: {
22
- created_at: Types['Date Time']['Read'];
23
- modified_at: Types['Date Time']['Read'];
24
- id: Types['Serial']['Read'];
25
- is_of__vocabulary: Types['Short Text']['Read'];
26
- model_type: Types['Short Text']['Read'];
27
- model_value: Types['JSON']['Read'];
28
- };
29
- Write: {
30
- created_at: Types['Date Time']['Write'];
31
- modified_at: Types['Date Time']['Write'];
32
- id: Types['Serial']['Write'];
33
- is_of__vocabulary: Types['Short Text']['Write'];
34
- model_type: Types['Short Text']['Write'];
35
- model_value: Types['JSON']['Write'];
36
- };
37
- }
38
20
  export default interface $Model {
39
21
  model: Model;
40
- model$sbvr__compiler: Model;
41
22
  }
@@ -220,227 +220,6 @@ export interface ApiKeyHasPermission {
220
220
  id: Types['Serial']['Write'];
221
221
  };
222
222
  }
223
- export interface Permission {
224
- Read: {
225
- created_at: Types['Date Time']['Read'];
226
- modified_at: Types['Date Time']['Read'];
227
- id: Types['Serial']['Read'];
228
- name: Types['Text']['Read'];
229
- is_of__role?: Array<RoleHasPermission['Read']>;
230
- is_of__user?: Array<UserHasPermission['Read']>;
231
- is_of__api_key?: Array<ApiKeyHasPermission['Read']>;
232
- user__has__permission?: Array<UserHasPermission['Read']>;
233
- user_permission?: Array<UserHasPermission['Read']>;
234
- };
235
- Write: {
236
- created_at: Types['Date Time']['Write'];
237
- modified_at: Types['Date Time']['Write'];
238
- id: Types['Serial']['Write'];
239
- name: Types['Text']['Write'];
240
- };
241
- }
242
- export interface Role {
243
- Read: {
244
- created_at: Types['Date Time']['Read'];
245
- modified_at: Types['Date Time']['Read'];
246
- id: Types['Serial']['Read'];
247
- name: Types['Text']['Read'];
248
- role__has__permission?: Array<RoleHasPermission['Read']>;
249
- user__has__role?: Array<UserHasRole['Read']>;
250
- user_role?: Array<UserHasRole['Read']>;
251
- is_of__user?: Array<UserHasRole['Read']>;
252
- is_of__api_key?: Array<ApiKeyHasRole['Read']>;
253
- };
254
- Write: {
255
- created_at: Types['Date Time']['Write'];
256
- modified_at: Types['Date Time']['Write'];
257
- id: Types['Serial']['Write'];
258
- name: Types['Text']['Write'];
259
- };
260
- }
261
- export interface RoleHasPermission {
262
- Read: {
263
- created_at: Types['Date Time']['Read'];
264
- modified_at: Types['Date Time']['Read'];
265
- role: {
266
- __id: Role['Read']['id'];
267
- } | [Role['Read']];
268
- permission: {
269
- __id: Permission['Read']['id'];
270
- } | [Permission['Read']];
271
- id: Types['Serial']['Read'];
272
- is_of__role: {
273
- __id: Role['Read']['id'];
274
- } | [Role['Read']];
275
- };
276
- Write: {
277
- created_at: Types['Date Time']['Write'];
278
- modified_at: Types['Date Time']['Write'];
279
- role: Role['Write']['id'];
280
- permission: Permission['Write']['id'];
281
- id: Types['Serial']['Write'];
282
- };
283
- }
284
- export interface Actor {
285
- Read: {
286
- created_at: Types['Date Time']['Read'];
287
- modified_at: Types['Date Time']['Read'];
288
- id: Types['Serial']['Read'];
289
- is_of__user?: Array<User['Read']>;
290
- api_key?: Array<ApiKey['Read']>;
291
- };
292
- Write: {
293
- created_at: Types['Date Time']['Write'];
294
- modified_at: Types['Date Time']['Write'];
295
- id: Types['Serial']['Write'];
296
- };
297
- }
298
- export interface User {
299
- Read: {
300
- created_at: Types['Date Time']['Read'];
301
- modified_at: Types['Date Time']['Read'];
302
- id: Types['Serial']['Read'];
303
- actor: {
304
- __id: Actor['Read']['id'];
305
- } | [Actor['Read']];
306
- username: Types['Short Text']['Read'];
307
- password: Types['Hashed']['Read'];
308
- user__has__role?: Array<UserHasRole['Read']>;
309
- user_role?: Array<UserHasRole['Read']>;
310
- user__has__permission?: Array<UserHasPermission['Read']>;
311
- user_permission?: Array<UserHasPermission['Read']>;
312
- };
313
- Write: {
314
- created_at: Types['Date Time']['Write'];
315
- modified_at: Types['Date Time']['Write'];
316
- id: Types['Serial']['Write'];
317
- actor: Actor['Write']['id'];
318
- username: Types['Short Text']['Write'];
319
- password: Types['Hashed']['Write'];
320
- };
321
- }
322
- export interface UserHasRole {
323
- Read: {
324
- created_at: Types['Date Time']['Read'];
325
- modified_at: Types['Date Time']['Read'];
326
- user: {
327
- __id: User['Read']['id'];
328
- } | [User['Read']];
329
- role: {
330
- __id: Role['Read']['id'];
331
- } | [Role['Read']];
332
- id: Types['Serial']['Read'];
333
- expiry_date: Types['Date Time']['Read'] | null;
334
- is_of__user: {
335
- __id: User['Read']['id'];
336
- } | [User['Read']];
337
- };
338
- Write: {
339
- created_at: Types['Date Time']['Write'];
340
- modified_at: Types['Date Time']['Write'];
341
- user: User['Write']['id'];
342
- role: Role['Write']['id'];
343
- id: Types['Serial']['Write'];
344
- expiry_date: Types['Date Time']['Write'] | null;
345
- };
346
- }
347
- export interface UserHasPermission {
348
- Read: {
349
- created_at: Types['Date Time']['Read'];
350
- modified_at: Types['Date Time']['Read'];
351
- user: {
352
- __id: User['Read']['id'];
353
- } | [User['Read']];
354
- permission: {
355
- __id: Permission['Read']['id'];
356
- } | [Permission['Read']];
357
- id: Types['Serial']['Read'];
358
- expiry_date: Types['Date Time']['Read'] | null;
359
- is_of__user: {
360
- __id: User['Read']['id'];
361
- } | [User['Read']];
362
- };
363
- Write: {
364
- created_at: Types['Date Time']['Write'];
365
- modified_at: Types['Date Time']['Write'];
366
- user: User['Write']['id'];
367
- permission: Permission['Write']['id'];
368
- id: Types['Serial']['Write'];
369
- expiry_date: Types['Date Time']['Write'] | null;
370
- };
371
- }
372
- export interface ApiKey {
373
- Read: {
374
- created_at: Types['Date Time']['Read'];
375
- modified_at: Types['Date Time']['Read'];
376
- id: Types['Serial']['Read'];
377
- key: Types['Short Text']['Read'];
378
- expiry_date: Types['Date Time']['Read'] | null;
379
- is_of__actor: {
380
- __id: Actor['Read']['id'];
381
- } | [Actor['Read']];
382
- name: Types['Text']['Read'] | null;
383
- description: Types['Text']['Read'] | null;
384
- api_key__has__role?: Array<ApiKeyHasRole['Read']>;
385
- api_key__has__permission?: Array<ApiKeyHasPermission['Read']>;
386
- };
387
- Write: {
388
- created_at: Types['Date Time']['Write'];
389
- modified_at: Types['Date Time']['Write'];
390
- id: Types['Serial']['Write'];
391
- key: Types['Short Text']['Write'];
392
- expiry_date: Types['Date Time']['Write'] | null;
393
- is_of__actor: Actor['Write']['id'];
394
- name: Types['Text']['Write'] | null;
395
- description: Types['Text']['Write'] | null;
396
- };
397
- }
398
- export interface ApiKeyHasRole {
399
- Read: {
400
- created_at: Types['Date Time']['Read'];
401
- modified_at: Types['Date Time']['Read'];
402
- api_key: {
403
- __id: ApiKey['Read']['id'];
404
- } | [ApiKey['Read']];
405
- role: {
406
- __id: Role['Read']['id'];
407
- } | [Role['Read']];
408
- id: Types['Serial']['Read'];
409
- is_of__api_key: {
410
- __id: ApiKey['Read']['id'];
411
- } | [ApiKey['Read']];
412
- };
413
- Write: {
414
- created_at: Types['Date Time']['Write'];
415
- modified_at: Types['Date Time']['Write'];
416
- api_key: ApiKey['Write']['id'];
417
- role: Role['Write']['id'];
418
- id: Types['Serial']['Write'];
419
- };
420
- }
421
- export interface ApiKeyHasPermission {
422
- Read: {
423
- created_at: Types['Date Time']['Read'];
424
- modified_at: Types['Date Time']['Read'];
425
- api_key: {
426
- __id: ApiKey['Read']['id'];
427
- } | [ApiKey['Read']];
428
- permission: {
429
- __id: Permission['Read']['id'];
430
- } | [Permission['Read']];
431
- id: Types['Serial']['Read'];
432
- is_of__api_key: {
433
- __id: ApiKey['Read']['id'];
434
- } | [ApiKey['Read']];
435
- };
436
- Write: {
437
- created_at: Types['Date Time']['Write'];
438
- modified_at: Types['Date Time']['Write'];
439
- api_key: ApiKey['Write']['id'];
440
- permission: Permission['Write']['id'];
441
- id: Types['Serial']['Write'];
442
- };
443
- }
444
223
  export default interface $Model {
445
224
  permission: Permission;
446
225
  role: Role;
@@ -452,16 +231,6 @@ export default interface $Model {
452
231
  api_key: ApiKey;
453
232
  api_key__has__role: ApiKeyHasRole;
454
233
  api_key__has__permission: ApiKeyHasPermission;
455
- permission$sbvr__compiler: Permission;
456
- role$sbvr__compiler: Role;
457
- role__has__permission$sbvr__compiler: RoleHasPermission;
458
- actor$sbvr__compiler: Actor;
459
- user$sbvr__compiler: User;
460
- user__has__role$sbvr__compiler: UserHasRole;
461
- user__has__permission$sbvr__compiler: UserHasPermission;
462
- api_key$sbvr__compiler: ApiKey;
463
- api_key__has__role$sbvr__compiler: ApiKeyHasRole;
464
- api_key__has__permission$sbvr__compiler: ApiKeyHasPermission;
465
234
  user_role: UserHasRole;
466
235
  user_permission: UserHasPermission;
467
236
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@balena/pinejs",
3
- "version": "17.1.0-build-model-based-typings-a10277597a28577bcb204b378925c9df795a10e8-1",
3
+ "version": "17.1.0-build-model-based-typings-69cb06110d937246c834286becb0410a2301f161-1",
4
4
  "main": "out/server-glue/module",
5
5
  "type": "commonjs",
6
6
  "repository": "git@github.com:balena-io/pinejs.git",
@@ -146,6 +146,6 @@
146
146
  "recursive": true
147
147
  },
148
148
  "versionist": {
149
- "publishedAt": "2024-06-14T14:12:57.261Z"
149
+ "publishedAt": "2024-06-14T14:50:11.136Z"
150
150
  }
151
151
  }
@@ -35,16 +35,16 @@ const runCompile = async (inputFile: string, outputFile?: string) => {
35
35
  };
36
36
 
37
37
  const generateTypes = async (inputFile: string, outputFile?: string) => {
38
- const { generateModels } = await import('../sbvr-api/sbvr-utils.js');
39
- const seModel = getSE(inputFile);
40
- const models = generateModels(
41
- { apiRoot: 'sbvr-compiler', modelText: seModel },
42
- program.opts().engine,
38
+ const { generateLfModel, generateAbstractSqlModel } = await import(
39
+ '../sbvr-api/sbvr-utils.js'
43
40
  );
41
+ const seModel = getSE(inputFile);
42
+ const lfModel = generateLfModel(seModel);
43
+ const abstractSql = generateAbstractSqlModel(lfModel);
44
44
  const { abstractSqlToTypescriptTypes } = await import(
45
45
  '@balena/abstract-sql-to-typescript/generate'
46
46
  );
47
- const types = abstractSqlToTypescriptTypes(models.abstractSql);
47
+ const types = abstractSqlToTypescriptTypes(abstractSql);
48
48
 
49
49
  writeAll(types, outputFile);
50
50
  };
@@ -55,66 +55,8 @@ export interface MigrationStatus {
55
55
  };
56
56
  }
57
57
 
58
- export interface Migration {
59
- Read: {
60
- created_at: Types['Date Time']['Read'];
61
- modified_at: Types['Date Time']['Read'];
62
- model_name: Types['Short Text']['Read'];
63
- executed_migrations: Types['JSON']['Read'];
64
- };
65
- Write: {
66
- created_at: Types['Date Time']['Write'];
67
- modified_at: Types['Date Time']['Write'];
68
- model_name: Types['Short Text']['Write'];
69
- executed_migrations: Types['JSON']['Write'];
70
- };
71
- }
72
-
73
- export interface MigrationLock {
74
- Read: {
75
- created_at: Types['Date Time']['Read'];
76
- modified_at: Types['Date Time']['Read'];
77
- model_name: Types['Short Text']['Read'];
78
- };
79
- Write: {
80
- created_at: Types['Date Time']['Write'];
81
- modified_at: Types['Date Time']['Write'];
82
- model_name: Types['Short Text']['Write'];
83
- };
84
- }
85
-
86
- export interface MigrationStatus {
87
- Read: {
88
- created_at: Types['Date Time']['Read'];
89
- modified_at: Types['Date Time']['Read'];
90
- migration_key: Types['Short Text']['Read'];
91
- start_time: Types['Date Time']['Read'] | null;
92
- last_run_time: Types['Date Time']['Read'] | null;
93
- run_count: Types['Integer']['Read'];
94
- migrated_row_count: Types['Integer']['Read'] | null;
95
- error_count: Types['Integer']['Read'] | null;
96
- is_backing_off: Types['Boolean']['Read'];
97
- converged_time: Types['Date Time']['Read'] | null;
98
- };
99
- Write: {
100
- created_at: Types['Date Time']['Write'];
101
- modified_at: Types['Date Time']['Write'];
102
- migration_key: Types['Short Text']['Write'];
103
- start_time: Types['Date Time']['Write'] | null;
104
- last_run_time: Types['Date Time']['Write'] | null;
105
- run_count: Types['Integer']['Write'];
106
- migrated_row_count: Types['Integer']['Write'] | null;
107
- error_count: Types['Integer']['Write'] | null;
108
- is_backing_off: Types['Boolean']['Write'];
109
- converged_time: Types['Date Time']['Write'] | null;
110
- };
111
- }
112
-
113
58
  export default interface $Model {
114
59
  migration: Migration;
115
60
  migration_lock: MigrationLock;
116
61
  migration_status: MigrationStatus;
117
- migration$sbvr__compiler: Migration;
118
- migration_lock$sbvr__compiler: MigrationLock;
119
- migration_status$sbvr__compiler: MigrationStatus;
120
62
  }
@@ -19,26 +19,6 @@ export interface Model {
19
19
  };
20
20
  }
21
21
 
22
- export interface Model {
23
- Read: {
24
- created_at: Types['Date Time']['Read'];
25
- modified_at: Types['Date Time']['Read'];
26
- id: Types['Serial']['Read'];
27
- is_of__vocabulary: Types['Short Text']['Read'];
28
- model_type: Types['Short Text']['Read'];
29
- model_value: Types['JSON']['Read'];
30
- };
31
- Write: {
32
- created_at: Types['Date Time']['Write'];
33
- modified_at: Types['Date Time']['Write'];
34
- id: Types['Serial']['Write'];
35
- is_of__vocabulary: Types['Short Text']['Write'];
36
- model_type: Types['Short Text']['Write'];
37
- model_value: Types['JSON']['Write'];
38
- };
39
- }
40
-
41
22
  export default interface $Model {
42
23
  model: Model;
43
- model$sbvr__compiler: Model;
44
24
  }
@@ -1037,8 +1037,8 @@ export class PinejsClient<
1037
1037
  params: {
1038
1038
  resource: TResource;
1039
1039
  options: Params<M[TResource]>['options'] & { returnResource: false };
1040
- } & Params<M[TResource]>, // TODO: This should use the primary key rather than hardcoding `id`
1041
- ): Promise<Pick<M[TResource]['Read'], 'id'>>;
1040
+ } & Params<M[TResource]>,
1041
+ ): Promise<Pick<M[TResource]['Read'], 'id'>>; // TODO: This should use the primary key rather than hardcoding `id`
1042
1042
  public post<TResource extends keyof M & string>(
1043
1043
  params: {
1044
1044
  resource: TResource;
@@ -197,203 +197,6 @@ export interface ApiKeyHasPermission {
197
197
  };
198
198
  }
199
199
 
200
- export interface Permission {
201
- Read: {
202
- created_at: Types['Date Time']['Read'];
203
- modified_at: Types['Date Time']['Read'];
204
- id: Types['Serial']['Read'];
205
- name: Types['Text']['Read'];
206
- is_of__role?: Array<RoleHasPermission['Read']>;
207
- is_of__user?: Array<UserHasPermission['Read']>;
208
- is_of__api_key?: Array<ApiKeyHasPermission['Read']>;
209
- user__has__permission?: Array<UserHasPermission['Read']>;
210
- user_permission?: Array<UserHasPermission['Read']>;
211
- };
212
- Write: {
213
- created_at: Types['Date Time']['Write'];
214
- modified_at: Types['Date Time']['Write'];
215
- id: Types['Serial']['Write'];
216
- name: Types['Text']['Write'];
217
- };
218
- }
219
-
220
- export interface Role {
221
- Read: {
222
- created_at: Types['Date Time']['Read'];
223
- modified_at: Types['Date Time']['Read'];
224
- id: Types['Serial']['Read'];
225
- name: Types['Text']['Read'];
226
- role__has__permission?: Array<RoleHasPermission['Read']>;
227
- user__has__role?: Array<UserHasRole['Read']>;
228
- user_role?: Array<UserHasRole['Read']>;
229
- is_of__user?: Array<UserHasRole['Read']>;
230
- is_of__api_key?: Array<ApiKeyHasRole['Read']>;
231
- };
232
- Write: {
233
- created_at: Types['Date Time']['Write'];
234
- modified_at: Types['Date Time']['Write'];
235
- id: Types['Serial']['Write'];
236
- name: Types['Text']['Write'];
237
- };
238
- }
239
-
240
- export interface RoleHasPermission {
241
- Read: {
242
- created_at: Types['Date Time']['Read'];
243
- modified_at: Types['Date Time']['Read'];
244
- role: { __id: Role['Read']['id'] } | [Role['Read']];
245
- permission: { __id: Permission['Read']['id'] } | [Permission['Read']];
246
- id: Types['Serial']['Read'];
247
- is_of__role: { __id: Role['Read']['id'] } | [Role['Read']];
248
- };
249
- Write: {
250
- created_at: Types['Date Time']['Write'];
251
- modified_at: Types['Date Time']['Write'];
252
- role: Role['Write']['id'];
253
- permission: Permission['Write']['id'];
254
- id: Types['Serial']['Write'];
255
- };
256
- }
257
-
258
- export interface Actor {
259
- Read: {
260
- created_at: Types['Date Time']['Read'];
261
- modified_at: Types['Date Time']['Read'];
262
- id: Types['Serial']['Read'];
263
- is_of__user?: Array<User['Read']>;
264
- api_key?: Array<ApiKey['Read']>;
265
- };
266
- Write: {
267
- created_at: Types['Date Time']['Write'];
268
- modified_at: Types['Date Time']['Write'];
269
- id: Types['Serial']['Write'];
270
- };
271
- }
272
-
273
- export interface User {
274
- Read: {
275
- created_at: Types['Date Time']['Read'];
276
- modified_at: Types['Date Time']['Read'];
277
- id: Types['Serial']['Read'];
278
- actor: { __id: Actor['Read']['id'] } | [Actor['Read']];
279
- username: Types['Short Text']['Read'];
280
- password: Types['Hashed']['Read'];
281
- user__has__role?: Array<UserHasRole['Read']>;
282
- user_role?: Array<UserHasRole['Read']>;
283
- user__has__permission?: Array<UserHasPermission['Read']>;
284
- user_permission?: Array<UserHasPermission['Read']>;
285
- };
286
- Write: {
287
- created_at: Types['Date Time']['Write'];
288
- modified_at: Types['Date Time']['Write'];
289
- id: Types['Serial']['Write'];
290
- actor: Actor['Write']['id'];
291
- username: Types['Short Text']['Write'];
292
- password: Types['Hashed']['Write'];
293
- };
294
- }
295
-
296
- export interface UserHasRole {
297
- Read: {
298
- created_at: Types['Date Time']['Read'];
299
- modified_at: Types['Date Time']['Read'];
300
- user: { __id: User['Read']['id'] } | [User['Read']];
301
- role: { __id: Role['Read']['id'] } | [Role['Read']];
302
- id: Types['Serial']['Read'];
303
- expiry_date: Types['Date Time']['Read'] | null;
304
- is_of__user: { __id: User['Read']['id'] } | [User['Read']];
305
- };
306
- Write: {
307
- created_at: Types['Date Time']['Write'];
308
- modified_at: Types['Date Time']['Write'];
309
- user: User['Write']['id'];
310
- role: Role['Write']['id'];
311
- id: Types['Serial']['Write'];
312
- expiry_date: Types['Date Time']['Write'] | null;
313
- };
314
- }
315
-
316
- export interface UserHasPermission {
317
- Read: {
318
- created_at: Types['Date Time']['Read'];
319
- modified_at: Types['Date Time']['Read'];
320
- user: { __id: User['Read']['id'] } | [User['Read']];
321
- permission: { __id: Permission['Read']['id'] } | [Permission['Read']];
322
- id: Types['Serial']['Read'];
323
- expiry_date: Types['Date Time']['Read'] | null;
324
- is_of__user: { __id: User['Read']['id'] } | [User['Read']];
325
- };
326
- Write: {
327
- created_at: Types['Date Time']['Write'];
328
- modified_at: Types['Date Time']['Write'];
329
- user: User['Write']['id'];
330
- permission: Permission['Write']['id'];
331
- id: Types['Serial']['Write'];
332
- expiry_date: Types['Date Time']['Write'] | null;
333
- };
334
- }
335
-
336
- export interface ApiKey {
337
- Read: {
338
- created_at: Types['Date Time']['Read'];
339
- modified_at: Types['Date Time']['Read'];
340
- id: Types['Serial']['Read'];
341
- key: Types['Short Text']['Read'];
342
- expiry_date: Types['Date Time']['Read'] | null;
343
- is_of__actor: { __id: Actor['Read']['id'] } | [Actor['Read']];
344
- name: Types['Text']['Read'] | null;
345
- description: Types['Text']['Read'] | null;
346
- api_key__has__role?: Array<ApiKeyHasRole['Read']>;
347
- api_key__has__permission?: Array<ApiKeyHasPermission['Read']>;
348
- };
349
- Write: {
350
- created_at: Types['Date Time']['Write'];
351
- modified_at: Types['Date Time']['Write'];
352
- id: Types['Serial']['Write'];
353
- key: Types['Short Text']['Write'];
354
- expiry_date: Types['Date Time']['Write'] | null;
355
- is_of__actor: Actor['Write']['id'];
356
- name: Types['Text']['Write'] | null;
357
- description: Types['Text']['Write'] | null;
358
- };
359
- }
360
-
361
- export interface ApiKeyHasRole {
362
- Read: {
363
- created_at: Types['Date Time']['Read'];
364
- modified_at: Types['Date Time']['Read'];
365
- api_key: { __id: ApiKey['Read']['id'] } | [ApiKey['Read']];
366
- role: { __id: Role['Read']['id'] } | [Role['Read']];
367
- id: Types['Serial']['Read'];
368
- is_of__api_key: { __id: ApiKey['Read']['id'] } | [ApiKey['Read']];
369
- };
370
- Write: {
371
- created_at: Types['Date Time']['Write'];
372
- modified_at: Types['Date Time']['Write'];
373
- api_key: ApiKey['Write']['id'];
374
- role: Role['Write']['id'];
375
- id: Types['Serial']['Write'];
376
- };
377
- }
378
-
379
- export interface ApiKeyHasPermission {
380
- Read: {
381
- created_at: Types['Date Time']['Read'];
382
- modified_at: Types['Date Time']['Read'];
383
- api_key: { __id: ApiKey['Read']['id'] } | [ApiKey['Read']];
384
- permission: { __id: Permission['Read']['id'] } | [Permission['Read']];
385
- id: Types['Serial']['Read'];
386
- is_of__api_key: { __id: ApiKey['Read']['id'] } | [ApiKey['Read']];
387
- };
388
- Write: {
389
- created_at: Types['Date Time']['Write'];
390
- modified_at: Types['Date Time']['Write'];
391
- api_key: ApiKey['Write']['id'];
392
- permission: Permission['Write']['id'];
393
- id: Types['Serial']['Write'];
394
- };
395
- }
396
-
397
200
  export default interface $Model {
398
201
  permission: Permission;
399
202
  role: Role;
@@ -405,16 +208,6 @@ export default interface $Model {
405
208
  api_key: ApiKey;
406
209
  api_key__has__role: ApiKeyHasRole;
407
210
  api_key__has__permission: ApiKeyHasPermission;
408
- permission$sbvr__compiler: Permission;
409
- role$sbvr__compiler: Role;
410
- role__has__permission$sbvr__compiler: RoleHasPermission;
411
- actor$sbvr__compiler: Actor;
412
- user$sbvr__compiler: User;
413
- user__has__role$sbvr__compiler: UserHasRole;
414
- user__has__permission$sbvr__compiler: UserHasPermission;
415
- api_key$sbvr__compiler: ApiKey;
416
- api_key__has__role$sbvr__compiler: ApiKeyHasRole;
417
- api_key__has__permission$sbvr__compiler: ApiKeyHasPermission;
418
211
  // Synonyms
419
212
  user_role: UserHasRole;
420
213
  user_permission: UserHasPermission;