@smartive/graphql-magic 9.1.2 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/.eslintrc +2 -10
  2. package/.github/workflows/release.yml +1 -1
  3. package/.gqmrc.json +6 -0
  4. package/CHANGELOG.md +2 -2
  5. package/README.md +1 -1
  6. package/dist/bin/gqm.cjs +684 -330
  7. package/dist/cjs/index.cjs +998 -554
  8. package/dist/esm/api/execute.js +1 -1
  9. package/dist/esm/api/execute.js.map +1 -1
  10. package/dist/esm/client/mutations.d.ts +2 -2
  11. package/dist/esm/client/mutations.js +5 -4
  12. package/dist/esm/client/mutations.js.map +1 -1
  13. package/dist/esm/client/queries.d.ts +12 -17
  14. package/dist/esm/client/queries.js +30 -50
  15. package/dist/esm/client/queries.js.map +1 -1
  16. package/dist/esm/context.d.ts +1 -2
  17. package/dist/esm/db/generate.d.ts +3 -3
  18. package/dist/esm/db/generate.js +31 -29
  19. package/dist/esm/db/generate.js.map +1 -1
  20. package/dist/esm/migrations/generate.d.ts +3 -4
  21. package/dist/esm/migrations/generate.js +114 -107
  22. package/dist/esm/migrations/generate.js.map +1 -1
  23. package/dist/esm/models/index.d.ts +1 -0
  24. package/dist/esm/models/index.js +1 -0
  25. package/dist/esm/models/index.js.map +1 -1
  26. package/dist/esm/models/model-definitions.d.ts +189 -0
  27. package/dist/esm/models/model-definitions.js +2 -0
  28. package/dist/esm/models/model-definitions.js.map +1 -0
  29. package/dist/esm/models/models.d.ts +128 -174
  30. package/dist/esm/models/models.js +411 -1
  31. package/dist/esm/models/models.js.map +1 -1
  32. package/dist/esm/models/mutation-hook.d.ts +2 -2
  33. package/dist/esm/models/utils.d.ts +35 -497
  34. package/dist/esm/models/utils.js +21 -144
  35. package/dist/esm/models/utils.js.map +1 -1
  36. package/dist/esm/permissions/check.d.ts +3 -3
  37. package/dist/esm/permissions/check.js +14 -7
  38. package/dist/esm/permissions/check.js.map +1 -1
  39. package/dist/esm/permissions/generate.js +6 -6
  40. package/dist/esm/permissions/generate.js.map +1 -1
  41. package/dist/esm/resolvers/filters.d.ts +8 -0
  42. package/dist/esm/resolvers/filters.js +28 -25
  43. package/dist/esm/resolvers/filters.js.map +1 -1
  44. package/dist/esm/resolvers/index.d.ts +1 -0
  45. package/dist/esm/resolvers/index.js +1 -0
  46. package/dist/esm/resolvers/index.js.map +1 -1
  47. package/dist/esm/resolvers/mutations.js +85 -21
  48. package/dist/esm/resolvers/mutations.js.map +1 -1
  49. package/dist/esm/resolvers/node.d.ts +13 -15
  50. package/dist/esm/resolvers/node.js +41 -36
  51. package/dist/esm/resolvers/node.js.map +1 -1
  52. package/dist/esm/resolvers/resolver.js +19 -49
  53. package/dist/esm/resolvers/resolver.js.map +1 -1
  54. package/dist/esm/resolvers/resolvers.d.ts +1 -8
  55. package/dist/esm/resolvers/resolvers.js +15 -7
  56. package/dist/esm/resolvers/resolvers.js.map +1 -1
  57. package/dist/esm/resolvers/selects.d.ts +3 -0
  58. package/dist/esm/resolvers/selects.js +50 -0
  59. package/dist/esm/resolvers/selects.js.map +1 -0
  60. package/dist/esm/resolvers/utils.d.ts +12 -4
  61. package/dist/esm/resolvers/utils.js +30 -22
  62. package/dist/esm/resolvers/utils.js.map +1 -1
  63. package/dist/esm/schema/generate.d.ts +4 -4
  64. package/dist/esm/schema/generate.js +122 -131
  65. package/dist/esm/schema/generate.js.map +1 -1
  66. package/dist/esm/schema/utils.d.ts +1 -1
  67. package/dist/esm/schema/utils.js +2 -1
  68. package/dist/esm/schema/utils.js.map +1 -1
  69. package/knexfile.ts +31 -0
  70. package/migrations/20230912185644_setup.ts +127 -0
  71. package/package.json +16 -14
  72. package/src/api/execute.ts +1 -1
  73. package/src/bin/gqm/gqm.ts +25 -23
  74. package/src/bin/gqm/parse-models.ts +5 -5
  75. package/src/bin/gqm/settings.ts +13 -4
  76. package/src/bin/gqm/static-eval.ts +5 -0
  77. package/src/bin/gqm/templates.ts +23 -3
  78. package/src/client/mutations.ts +11 -5
  79. package/src/client/queries.ts +43 -80
  80. package/src/context.ts +1 -2
  81. package/src/db/generate.ts +41 -41
  82. package/src/migrations/generate.ts +165 -146
  83. package/src/models/index.ts +1 -0
  84. package/src/models/model-definitions.ts +168 -0
  85. package/src/models/models.ts +510 -166
  86. package/src/models/mutation-hook.ts +2 -2
  87. package/src/models/utils.ts +53 -187
  88. package/src/permissions/check.ts +19 -11
  89. package/src/permissions/generate.ts +6 -6
  90. package/src/resolvers/filters.ts +44 -28
  91. package/src/resolvers/index.ts +1 -0
  92. package/src/resolvers/mutations.ts +98 -36
  93. package/src/resolvers/node.ts +79 -51
  94. package/src/resolvers/resolver.ts +20 -74
  95. package/src/resolvers/resolvers.ts +18 -7
  96. package/src/resolvers/selects.ts +77 -0
  97. package/src/resolvers/utils.ts +41 -25
  98. package/src/schema/generate.ts +106 -127
  99. package/src/schema/utils.ts +2 -1
  100. package/tests/api/__snapshots__/inheritance.spec.ts.snap +83 -0
  101. package/tests/api/inheritance.spec.ts +130 -0
  102. package/tests/generated/api/index.ts +1174 -0
  103. package/tests/generated/client/index.ts +1163 -0
  104. package/tests/generated/client/mutations.ts +109 -0
  105. package/tests/generated/db/index.ts +291 -0
  106. package/tests/generated/db/knex.ts +14 -0
  107. package/tests/generated/models.json +675 -0
  108. package/tests/generated/schema.graphql +325 -0
  109. package/tests/unit/__snapshots__/resolve.spec.ts.snap +23 -0
  110. package/tests/unit/queries.spec.ts +5 -5
  111. package/tests/unit/resolve.spec.ts +8 -8
  112. package/tests/utils/database/knex.ts +5 -13
  113. package/tests/utils/database/seed.ts +57 -18
  114. package/tests/utils/models.ts +62 -7
  115. package/tests/utils/server.ts +5 -5
  116. package/tsconfig.eslint.json +1 -0
  117. package/tests/unit/__snapshots__/generate.spec.ts.snap +0 -128
  118. package/tests/unit/generate.spec.ts +0 -8
  119. package/tests/utils/database/schema.ts +0 -64
  120. package/tests/utils/generate-migration.ts +0 -24
@@ -1,370 +1,28 @@
1
- import { EntityModel, Model, ModelField, Models, PrimitiveField, RawModel, RawModels } from './models';
1
+ import { EntityField, EntityModel, EnumModel, InputModel, InterfaceModel, Model, ObjectModel, RawEnumModel, RelationField, ScalarModel } from './models';
2
2
  export declare const merge: <T>(objects: (false | {
3
3
  [name: string]: T;
4
4
  })[]) => {
5
5
  [name: string]: T;
6
6
  };
7
7
  export declare const typeToField: (type: string) => string;
8
- export declare const getModelPlural: (model: EntityModel | Model) => string;
9
- export declare const getModelPluralField: (model: Model) => string;
10
- export declare const getModelSlug: (model: Model) => string;
11
- export declare const getModelLabelPlural: (model: Model) => string;
12
- export declare const getModelLabel: (model: Model) => string;
13
8
  export declare const getLabel: (s: string) => string;
14
- export declare const isEntityModel: (model: RawModel) => model is {
15
- name: string;
16
- plural?: string;
17
- description?: string;
18
- } & {
19
- kind: "entity";
20
- interfaces?: string[];
21
- queriable?: boolean;
22
- listQueriable?: boolean;
23
- creatable?: boolean | {
24
- createdBy?: Partial<{
25
- name: string;
26
- description?: string;
27
- directives?: import("..").Directive[];
28
- defaultValue?: any;
29
- args?: import("..").Field[];
30
- list?: boolean;
31
- nonNull?: boolean;
32
- } & {
33
- kind: "relation";
34
- type: string;
35
- toOne?: boolean;
36
- reverse?: string;
37
- foreignKey?: string;
38
- onDelete?: "cascade" | "set-null";
39
- } & {
40
- primary?: boolean;
41
- unique?: boolean;
42
- filterable?: boolean | {
43
- default?: any;
44
- };
45
- searchable?: boolean;
46
- orderable?: boolean;
47
- comparable?: boolean;
48
- queriable?: boolean | {
49
- roles?: string[];
50
- };
51
- creatable?: boolean | {
52
- roles?: string[];
53
- };
54
- updatable?: boolean | {
55
- roles?: string[];
56
- };
57
- generated?: boolean;
58
- tooltip?: string;
59
- required?: boolean;
60
- indent?: boolean;
61
- hidden?: boolean;
62
- deleted?: true;
63
- oldName?: string;
64
- meta?: Record<string, unknown>;
65
- }>;
66
- createdAt?: Partial<{
67
- name: string;
68
- description?: string;
69
- directives?: import("..").Directive[];
70
- defaultValue?: any;
71
- args?: import("..").Field[];
72
- list?: boolean;
73
- nonNull?: boolean;
74
- } & {
75
- kind?: "primitive";
76
- } & {
77
- type: "DateTime";
78
- dateTimeType?: "year" | "date" | "datetime" | "year_and_month";
79
- endOfDay?: boolean;
80
- } & {
81
- primary?: boolean;
82
- unique?: boolean;
83
- filterable?: boolean | {
84
- default?: any;
85
- };
86
- searchable?: boolean;
87
- orderable?: boolean;
88
- comparable?: boolean;
89
- queriable?: boolean | {
90
- roles?: string[];
91
- };
92
- creatable?: boolean | {
93
- roles?: string[];
94
- };
95
- updatable?: boolean | {
96
- roles?: string[];
97
- };
98
- generated?: boolean;
99
- tooltip?: string;
100
- required?: boolean;
101
- indent?: boolean;
102
- hidden?: boolean;
103
- deleted?: true;
104
- oldName?: string;
105
- meta?: Record<string, unknown>;
106
- }>;
107
- };
108
- updatable?: boolean | {
109
- updatedBy?: Partial<{
110
- name: string;
111
- description?: string;
112
- directives?: import("..").Directive[];
113
- defaultValue?: any;
114
- args?: import("..").Field[];
115
- list?: boolean;
116
- nonNull?: boolean;
117
- } & {
118
- kind: "relation";
119
- type: string;
120
- toOne?: boolean;
121
- reverse?: string;
122
- foreignKey?: string;
123
- onDelete?: "cascade" | "set-null";
124
- } & {
125
- primary?: boolean;
126
- unique?: boolean;
127
- filterable?: boolean | {
128
- default?: any;
129
- };
130
- searchable?: boolean;
131
- orderable?: boolean;
132
- comparable?: boolean;
133
- queriable?: boolean | {
134
- roles?: string[];
135
- };
136
- creatable?: boolean | {
137
- roles?: string[];
138
- };
139
- updatable?: boolean | {
140
- roles?: string[];
141
- };
142
- generated?: boolean;
143
- tooltip?: string;
144
- required?: boolean;
145
- indent?: boolean;
146
- hidden?: boolean;
147
- deleted?: true;
148
- oldName?: string;
149
- meta?: Record<string, unknown>;
150
- }>;
151
- updatedAt?: Partial<{
152
- name: string;
153
- description?: string;
154
- directives?: import("..").Directive[];
155
- defaultValue?: any;
156
- args?: import("..").Field[];
157
- list?: boolean;
158
- nonNull?: boolean;
159
- } & {
160
- kind?: "primitive";
161
- } & {
162
- type: "DateTime";
163
- dateTimeType?: "year" | "date" | "datetime" | "year_and_month";
164
- endOfDay?: boolean;
165
- } & {
166
- primary?: boolean;
167
- unique?: boolean;
168
- filterable?: boolean | {
169
- default?: any;
170
- };
171
- searchable?: boolean;
172
- orderable?: boolean;
173
- comparable?: boolean;
174
- queriable?: boolean | {
175
- roles?: string[];
176
- };
177
- creatable?: boolean | {
178
- roles?: string[];
179
- };
180
- updatable?: boolean | {
181
- roles?: string[];
182
- };
183
- generated?: boolean;
184
- tooltip?: string;
185
- required?: boolean;
186
- indent?: boolean;
187
- hidden?: boolean;
188
- deleted?: true;
189
- oldName?: string;
190
- meta?: Record<string, unknown>;
191
- }>;
192
- };
193
- deletable?: boolean | {
194
- deleted?: Partial<{
195
- name: string;
196
- description?: string;
197
- directives?: import("..").Directive[];
198
- defaultValue?: any;
199
- args?: import("..").Field[];
200
- list?: boolean;
201
- nonNull?: boolean;
202
- } & {
203
- kind?: "primitive";
204
- } & {
205
- type: "Boolean";
206
- } & {
207
- primary?: boolean;
208
- unique?: boolean;
209
- filterable?: boolean | {
210
- default?: any;
211
- };
212
- searchable?: boolean;
213
- orderable?: boolean;
214
- comparable?: boolean;
215
- queriable?: boolean | {
216
- roles?: string[];
217
- };
218
- creatable?: boolean | {
219
- roles?: string[];
220
- };
221
- updatable?: boolean | {
222
- roles?: string[];
223
- };
224
- generated?: boolean;
225
- tooltip?: string;
226
- required?: boolean;
227
- indent?: boolean;
228
- hidden?: boolean;
229
- deleted?: true;
230
- oldName?: string;
231
- meta?: Record<string, unknown>;
232
- }>;
233
- deletedBy?: Partial<{
234
- name: string;
235
- description?: string;
236
- directives?: import("..").Directive[];
237
- defaultValue?: any;
238
- args?: import("..").Field[];
239
- list?: boolean;
240
- nonNull?: boolean;
241
- } & {
242
- kind: "relation";
243
- type: string;
244
- toOne?: boolean;
245
- reverse?: string;
246
- foreignKey?: string;
247
- onDelete?: "cascade" | "set-null";
248
- } & {
249
- primary?: boolean;
250
- unique?: boolean;
251
- filterable?: boolean | {
252
- default?: any;
253
- };
254
- searchable?: boolean;
255
- orderable?: boolean;
256
- comparable?: boolean;
257
- queriable?: boolean | {
258
- roles?: string[];
259
- };
260
- creatable?: boolean | {
261
- roles?: string[];
262
- };
263
- updatable?: boolean | {
264
- roles?: string[];
265
- };
266
- generated?: boolean;
267
- tooltip?: string;
268
- required?: boolean;
269
- indent?: boolean;
270
- hidden?: boolean;
271
- deleted?: true;
272
- oldName?: string;
273
- meta?: Record<string, unknown>;
274
- }>;
275
- deletedAt?: Partial<{
276
- name: string;
277
- description?: string;
278
- directives?: import("..").Directive[];
279
- defaultValue?: any;
280
- args?: import("..").Field[];
281
- list?: boolean;
282
- nonNull?: boolean;
283
- } & {
284
- kind?: "primitive";
285
- } & {
286
- type: "DateTime";
287
- dateTimeType?: "year" | "date" | "datetime" | "year_and_month";
288
- endOfDay?: boolean;
289
- } & {
290
- primary?: boolean;
291
- unique?: boolean;
292
- filterable?: boolean | {
293
- default?: any;
294
- };
295
- searchable?: boolean;
296
- orderable?: boolean;
297
- comparable?: boolean;
298
- queriable?: boolean | {
299
- roles?: string[];
300
- };
301
- creatable?: boolean | {
302
- roles?: string[];
303
- };
304
- updatable?: boolean | {
305
- roles?: string[];
306
- };
307
- generated?: boolean;
308
- tooltip?: string;
309
- required?: boolean;
310
- indent?: boolean;
311
- hidden?: boolean;
312
- deleted?: true;
313
- oldName?: string;
314
- meta?: Record<string, unknown>;
315
- }>;
316
- };
317
- displayField?: string;
318
- defaultOrderBy?: import("..").OrderBy;
319
- fields: ModelField[];
320
- deleted?: true;
321
- oldName?: string;
322
- };
323
- export declare const isEnumModel: (model: RawModel) => model is {
324
- name: string;
325
- plural?: string;
326
- description?: string;
327
- } & {
328
- kind: "enum";
329
- values: string[];
330
- deleted?: true;
331
- };
332
- export declare const isRawEnumModel: (model: RawModel) => model is {
333
- name: string;
334
- plural?: string;
335
- description?: string;
336
- } & {
337
- kind: "raw-enum";
338
- values: string[];
339
- };
340
- export declare const isScalarModel: (model: RawModel) => model is {
341
- name: string;
342
- plural?: string;
343
- description?: string;
344
- } & {
345
- kind: "scalar";
346
- };
347
- export declare const isObjectModel: (model: RawModel) => model is {
348
- name: string;
349
- plural?: string;
350
- description?: string;
351
- } & {
352
- kind: "object";
353
- fields: import("./models").ObjectField[];
354
- };
355
- export declare const isInputModel: (model: RawModel) => model is {
356
- name: string;
357
- plural?: string;
358
- description?: string;
359
- } & {
360
- kind: "input";
361
- fields: import("./models").ObjectField[];
362
- };
363
- export declare const isEnumList: (models: RawModels, field: ModelField) => boolean;
364
- export declare const and: (...predicates: ((field: ModelField) => boolean)[]) => (field: ModelField) => boolean;
365
- export declare const not: (predicate: (field: ModelField) => boolean) => (field: ModelField) => boolean;
366
- export declare const isPrimitive: (field: ModelField) => field is PrimitiveField;
367
- export declare const isEnum: (field: ModelField) => field is {
9
+ export declare const or: <T>(...predicates: ((field: T) => boolean)[]) => (field: T) => boolean;
10
+ export declare const and: <T>(...predicates: ((field: T) => boolean)[]) => (field: T) => boolean;
11
+ export declare const not: <T>(predicate: (field: T) => boolean) => (field: T) => boolean;
12
+ export declare const isRootModel: (model: EntityModel) => boolean;
13
+ export declare const isEntityModel: (model: Model) => model is EntityModel;
14
+ export declare const isEnumModel: (model: Model) => model is EnumModel;
15
+ export declare const isRawEnumModel: (model: Model) => model is RawEnumModel;
16
+ export declare const isScalarModel: (model: Model) => model is ScalarModel;
17
+ export declare const isObjectModel: (model: Model) => model is ObjectModel;
18
+ export declare const isInputModel: (model: Model) => model is InputModel;
19
+ export declare const isInterfaceModel: (model: Model) => model is InterfaceModel;
20
+ export declare const isUpdatableModel: (model: EntityModel) => boolean;
21
+ export declare const isUpdatableField: (field: EntityField) => boolean;
22
+ export declare const modelNeedsTable: (model: EntityModel) => boolean;
23
+ export declare const hasName: (name: string) => (field: EntityField) => boolean;
24
+ export declare const isPrimitive: (field: EntityField) => field is import("./model-definitions").PrimitiveFieldDefinition;
25
+ export declare const isEnum: (field: EntityField) => field is {
368
26
  name: string;
369
27
  description?: string;
370
28
  directives?: import("..").Directive[];
@@ -394,7 +52,6 @@ export declare const isEnum: (field: ModelField) => field is {
394
52
  updatable?: boolean | {
395
53
  roles?: string[];
396
54
  };
397
- generated?: boolean;
398
55
  tooltip?: string;
399
56
  required?: boolean;
400
57
  indent?: boolean;
@@ -402,93 +59,15 @@ export declare const isEnum: (field: ModelField) => field is {
402
59
  deleted?: true;
403
60
  oldName?: string;
404
61
  meta?: Record<string, unknown>;
405
- };
406
- export declare const isRelation: (field: ModelField) => field is {
407
- name: string;
408
- description?: string;
409
- directives?: import("..").Directive[];
410
- defaultValue?: any;
411
- args?: import("..").Field[];
412
- list?: boolean;
413
- nonNull?: boolean;
414
- } & {
415
- kind: "relation";
416
- type: string;
417
- toOne?: boolean;
418
- reverse?: string;
419
- foreignKey?: string;
420
- onDelete?: "cascade" | "set-null";
421
- } & {
422
- primary?: boolean;
423
- unique?: boolean;
424
- filterable?: boolean | {
425
- default?: any;
426
- };
427
- searchable?: boolean;
428
- orderable?: boolean;
429
- comparable?: boolean;
430
- queriable?: boolean | {
431
- roles?: string[];
432
- };
433
- creatable?: boolean | {
434
- roles?: string[];
435
- };
436
- updatable?: boolean | {
437
- roles?: string[];
438
- };
439
- generated?: boolean;
440
- tooltip?: string;
441
- required?: boolean;
442
- indent?: boolean;
443
- hidden?: boolean;
444
- deleted?: true;
445
- oldName?: string;
446
- meta?: Record<string, unknown>;
447
- };
448
- export declare const isToOneRelation: (field: ModelField) => field is {
449
- name: string;
450
- description?: string;
451
- directives?: import("..").Directive[];
452
- defaultValue?: any;
453
- args?: import("..").Field[];
454
- list?: boolean;
455
- nonNull?: boolean;
456
- } & {
457
- kind: "relation";
458
- type: string;
459
- toOne?: boolean;
460
- reverse?: string;
461
- foreignKey?: string;
462
- onDelete?: "cascade" | "set-null";
463
- } & {
464
- primary?: boolean;
465
- unique?: boolean;
466
- filterable?: boolean | {
467
- default?: any;
468
- };
469
- searchable?: boolean;
470
- orderable?: boolean;
471
- comparable?: boolean;
472
- queriable?: boolean | {
473
- roles?: string[];
474
- };
475
- creatable?: boolean | {
476
- roles?: string[];
477
- };
478
- updatable?: boolean | {
479
- roles?: string[];
480
- };
481
62
  generated?: boolean;
482
- tooltip?: string;
483
- required?: boolean;
484
- indent?: boolean;
485
- hidden?: boolean;
486
- deleted?: true;
487
- oldName?: string;
488
- meta?: Record<string, unknown>;
63
+ inherited?: boolean;
489
64
  };
490
- export declare const isQueriableField: ({ queriable }: ModelField) => boolean;
491
- export declare const isCustomField: (field: ModelField) => field is {
65
+ export declare const isRelation: (field: EntityField) => field is RelationField;
66
+ export declare const isInherited: (field: EntityField) => boolean;
67
+ export declare const isInTable: (field: EntityField) => boolean;
68
+ export declare const isToOneRelation: (field: EntityField) => field is RelationField;
69
+ export declare const isQueriableField: ({ queriable }: EntityField) => boolean;
70
+ export declare const isCustomField: (field: EntityField) => field is {
492
71
  name: string;
493
72
  description?: string;
494
73
  directives?: import("..").Directive[];
@@ -517,7 +96,6 @@ export declare const isCustomField: (field: ModelField) => field is {
517
96
  updatable?: boolean | {
518
97
  roles?: string[];
519
98
  };
520
- generated?: boolean;
521
99
  tooltip?: string;
522
100
  required?: boolean;
523
101
  indent?: boolean;
@@ -525,57 +103,17 @@ export declare const isCustomField: (field: ModelField) => field is {
525
103
  deleted?: true;
526
104
  oldName?: string;
527
105
  meta?: Record<string, unknown>;
528
- };
529
- export declare const isVisible: ({ hidden }: ModelField) => boolean;
530
- export declare const isSimpleField: (field: ModelField) => boolean;
531
- export declare const isUpdatable: ({ updatable }: ModelField) => boolean;
532
- export declare const isCreatable: ({ creatable }: ModelField) => boolean;
533
- export declare const isQueriableBy: (role: string) => (field: ModelField) => boolean;
534
- export declare const isUpdatableBy: (role: string) => (field: ModelField) => boolean;
535
- export declare const isCreatableBy: (role: string) => (field: ModelField) => boolean;
536
- export declare const actionableRelations: (model: Model, action: 'create' | 'update' | 'filter') => ({
537
- name: string;
538
- description?: string;
539
- directives?: import("..").Directive[];
540
- defaultValue?: any;
541
- args?: import("..").Field[];
542
- list?: boolean;
543
- nonNull?: boolean;
544
- } & {
545
- kind: "relation";
546
- type: string;
547
- toOne?: boolean;
548
- reverse?: string;
549
- foreignKey?: string;
550
- onDelete?: "cascade" | "set-null";
551
- } & {
552
- primary?: boolean;
553
- unique?: boolean;
554
- filterable?: boolean | {
555
- default?: any;
556
- };
557
- searchable?: boolean;
558
- orderable?: boolean;
559
- comparable?: boolean;
560
- queriable?: boolean | {
561
- roles?: string[];
562
- };
563
- creatable?: boolean | {
564
- roles?: string[];
565
- };
566
- updatable?: boolean | {
567
- roles?: string[];
568
- };
569
106
  generated?: boolean;
570
- tooltip?: string;
571
- required?: boolean;
572
- indent?: boolean;
573
- hidden?: boolean;
574
- deleted?: true;
575
- oldName?: string;
576
- meta?: Record<string, unknown>;
577
- })[];
578
- export declare const getModels: (rawModels: RawModels) => Models;
107
+ inherited?: boolean;
108
+ };
109
+ export declare const isVisible: ({ hidden }: EntityField) => boolean;
110
+ export declare const isSimpleField: (field: import("./model-definitions").EntityFieldDefinition) => boolean;
111
+ export declare const isUpdatable: ({ updatable }: EntityField) => boolean;
112
+ export declare const isCreatable: ({ creatable }: EntityField) => boolean;
113
+ export declare const isQueriableBy: (role: string) => (field: EntityField) => boolean;
114
+ export declare const isUpdatableBy: (role: string) => (field: EntityField) => boolean;
115
+ export declare const isCreatableBy: (role: string) => (field: EntityField) => boolean;
116
+ export declare const actionableRelations: (model: EntityModel, action: 'create' | 'update' | 'filter') => import("./models").NormalRelation[];
579
117
  export declare const summonByName: <T extends {
580
118
  name: string;
581
119
  }>(array: T[], value: string) => T;