@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,31 +1,32 @@
1
1
  import assert from 'assert';
2
- import { pluralize } from 'inflection';
3
- import camelCase from 'lodash/camelCase';
2
+ import { camelCase, startCase } from 'lodash';
4
3
  import lodashGet from 'lodash/get';
5
- import kebabCase from 'lodash/kebabCase';
6
- import startCase from 'lodash/startCase';
4
+ import { EntityModel, EnumModel, InputModel, InterfaceModel, ObjectModel, RawEnumModel, ScalarModel, } from './models';
7
5
  const isNotFalsy = (v) => typeof v !== 'undefined' && v !== null && v !== false;
8
6
  export const merge = (objects) => (objects || []).filter(isNotFalsy).reduce((i, acc) => ({ ...acc, ...i }), {});
9
7
  // Target -> target
10
8
  export const typeToField = (type) => type.substr(0, 1).toLowerCase() + type.substr(1);
11
- export const getModelPlural = (model) => model.plural || pluralize(model.name);
12
- export const getModelPluralField = (model) => typeToField(getModelPlural(model));
13
- export const getModelSlug = (model) => kebabCase(getModelPlural(model));
14
- export const getModelLabelPlural = (model) => getLabel(getModelPlural(model));
15
- export const getModelLabel = (model) => getLabel(model.name);
16
9
  export const getLabel = (s) => startCase(camelCase(s));
17
- export const isEntityModel = (model) => model.kind === 'entity';
18
- export const isEnumModel = (model) => model.kind === 'enum';
19
- export const isRawEnumModel = (model) => model.kind === 'raw-enum';
20
- export const isScalarModel = (model) => model.kind === 'scalar';
21
- export const isObjectModel = (model) => model.kind === 'object';
22
- export const isInputModel = (model) => model.kind === 'input';
23
- export const isEnumList = (models, field) => field?.list === true && models.find(({ name }) => name === field.kind)?.kind === 'enum';
10
+ export const or = (...predicates) => (field) => predicates.some((predicate) => predicate(field));
24
11
  export const and = (...predicates) => (field) => predicates.every((predicate) => predicate(field));
25
12
  export const not = (predicate) => (field) => !predicate(field);
13
+ export const isRootModel = (model) => model.root;
14
+ export const isEntityModel = (model) => model instanceof EntityModel;
15
+ export const isEnumModel = (model) => model instanceof EnumModel;
16
+ export const isRawEnumModel = (model) => model instanceof RawEnumModel;
17
+ export const isScalarModel = (model) => model instanceof ScalarModel;
18
+ export const isObjectModel = (model) => model instanceof ObjectModel;
19
+ export const isInputModel = (model) => model instanceof InputModel;
20
+ export const isInterfaceModel = (model) => model instanceof InterfaceModel;
21
+ export const isUpdatableModel = (model) => model.updatable && model.fields.some(isUpdatableField);
22
+ export const isUpdatableField = (field) => !field.inherited && !!field.updatable;
23
+ export const modelNeedsTable = (model) => model.fields.some((field) => !field.inherited);
24
+ export const hasName = (name) => (field) => field.name == name;
26
25
  export const isPrimitive = (field) => field.kind === undefined || field.kind === 'primitive';
27
26
  export const isEnum = (field) => field.kind === 'enum';
28
27
  export const isRelation = (field) => field.kind === 'relation';
28
+ export const isInherited = (field) => field.inherited;
29
+ export const isInTable = (field) => field.name === 'id' || !field.inherited;
29
30
  export const isToOneRelation = (field) => isRelation(field) && !!field.toOne;
30
31
  export const isQueriableField = ({ queriable }) => queriable !== false;
31
32
  export const isCustomField = (field) => field.kind === 'custom';
@@ -40,132 +41,7 @@ export const isQueriableBy = (role) => (field) => field.queriable !== false &&
40
41
  field.queriable.roles.includes(role));
41
42
  export const isUpdatableBy = (role) => (field) => field.updatable && (field.updatable === true || !field.updatable.roles || field.updatable.roles.includes(role));
42
43
  export const isCreatableBy = (role) => (field) => field.creatable && (field.creatable === true || !field.creatable.roles || field.creatable.roles.includes(role));
43
- export const actionableRelations = (model, action) => model.fields
44
- .filter(isRelation)
45
- .filter((field) => field[`${action === 'filter' ? action : action.slice(0, -1)}able`]);
46
- export const getModels = (rawModels) => {
47
- const models = rawModels.filter(isEntityModel).map((model) => {
48
- const objectModel = {
49
- ...model,
50
- fieldsByName: {},
51
- relations: [],
52
- relationsByName: {},
53
- reverseRelations: [],
54
- reverseRelationsByName: {},
55
- fields: ([
56
- { name: 'id', type: 'ID', nonNull: true, unique: true, primary: true, generated: true },
57
- ...model.fields,
58
- ...(model.creatable
59
- ? [
60
- {
61
- name: 'createdAt',
62
- type: 'DateTime',
63
- nonNull: true,
64
- orderable: true,
65
- generated: true,
66
- ...(typeof model.creatable === 'object' && model.creatable.createdAt),
67
- },
68
- {
69
- name: 'createdBy',
70
- kind: 'relation',
71
- type: 'User',
72
- nonNull: true,
73
- reverse: `created${getModelPlural(model)}`,
74
- generated: true,
75
- ...(typeof model.creatable === 'object' && model.creatable.createdBy),
76
- },
77
- ]
78
- : []),
79
- ...(model.updatable
80
- ? [
81
- {
82
- name: 'updatedAt',
83
- type: 'DateTime',
84
- nonNull: true,
85
- orderable: true,
86
- generated: true,
87
- ...(typeof model.updatable === 'object' && model.updatable.updatedAt),
88
- },
89
- {
90
- name: 'updatedBy',
91
- kind: 'relation',
92
- type: 'User',
93
- nonNull: true,
94
- reverse: `updated${getModelPlural(model)}`,
95
- generated: true,
96
- ...(typeof model.updatable === 'object' && model.updatable.updatedBy),
97
- },
98
- ]
99
- : []),
100
- ...(model.deletable
101
- ? [
102
- {
103
- name: 'deleted',
104
- type: 'Boolean',
105
- nonNull: true,
106
- defaultValue: false,
107
- filterable: { default: false },
108
- generated: true,
109
- ...(typeof model.deletable === 'object' && model.deletable.deleted),
110
- },
111
- {
112
- name: 'deletedAt',
113
- type: 'DateTime',
114
- orderable: true,
115
- generated: true,
116
- ...(typeof model.deletable === 'object' && model.deletable.deletedAt),
117
- },
118
- {
119
- name: 'deletedBy',
120
- kind: 'relation',
121
- type: 'User',
122
- reverse: `deleted${getModelPlural(model)}`,
123
- generated: true,
124
- ...(typeof model.deletable === 'object' && model.deletable.deletedBy),
125
- },
126
- ]
127
- : []),
128
- ]).map((field) => ({
129
- ...field,
130
- ...(field.kind === 'relation' && {
131
- foreignKey: field.foreignKey || `${field.name}Id`,
132
- }),
133
- })),
134
- };
135
- for (const field of objectModel.fields) {
136
- objectModel.fieldsByName[field.name] = field;
137
- }
138
- return objectModel;
139
- });
140
- for (const model of models) {
141
- for (const field of model.fields) {
142
- if (field.kind !== 'relation') {
143
- continue;
144
- }
145
- const fieldModel = summonByName(models, field.type);
146
- const reverseRelation = {
147
- kind: 'relation',
148
- name: field.reverse || (field.toOne ? typeToField(model.name) : getModelPluralField(model)),
149
- foreignKey: get(field, 'foreignKey'),
150
- type: model.name,
151
- toOne: !!field.toOne,
152
- fieldModel,
153
- field,
154
- model,
155
- };
156
- const relation = {
157
- field,
158
- model: fieldModel,
159
- reverseRelation,
160
- };
161
- model.relations.push(relation);
162
- model.relationsByName[relation.field.name] = relation;
163
- fieldModel.reverseRelations.push(reverseRelation);
164
- fieldModel.reverseRelationsByName[reverseRelation.name] = reverseRelation;
165
- }
166
- }
167
- return models;
168
- };
44
+ export const actionableRelations = (model, action) => model.relations.filter((relation) => relation.field[`${action === 'filter' ? action : action.slice(0, -1)}able`]);
169
45
  export const summonByName = (array, value) => summonByKey(array, 'name', value);
170
46
  export const summonByKey = (array, key, value) => summon(array, (element) => lodashGet(element, key) === value, `No element found with ${key} ${value}`);
171
47
  export const summon = (array, cb, errorMessage) => {
@@ -190,8 +66,9 @@ export const it = (object) => {
190
66
  export const get = (object, key) => {
191
67
  const value = it(object)[key];
192
68
  if (value === undefined || value === null) {
193
- console.trace();
194
- throw new Error(`Object doesn't have ${String(key)}`);
69
+ const error = new Error(`Object doesn't have ${String(key)}`);
70
+ console.warn(error);
71
+ throw error;
195
72
  }
196
73
  return value;
197
74
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/models/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/models/utils.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Knex } from 'knex';
2
2
  import { FullContext } from '../context';
3
- import { Model } from '../models/models';
3
+ import { EntityModel } from '../models/models';
4
4
  import { BasicValue } from '../values';
5
5
  import { PermissionAction, PermissionStack } from './generate';
6
6
  export declare const getPermissionStack: (ctx: Pick<FullContext, 'permissions' | 'user'>, type: string, action: PermissionAction) => boolean | PermissionStack;
@@ -8,8 +8,8 @@ export declare const applyPermissions: (ctx: Pick<FullContext, 'models' | 'permi
8
8
  /**
9
9
  * Check whether entity as currently in db can be mutated (update or delete)
10
10
  */
11
- export declare const getEntityToMutate: (ctx: Pick<FullContext, 'models' | 'permissions' | 'user' | 'knex'>, model: Model, where: Record<string, BasicValue>, action: 'UPDATE' | 'DELETE' | 'RESTORE') => Promise<any>;
11
+ export declare const getEntityToMutate: (ctx: Pick<FullContext, 'models' | 'permissions' | 'user' | 'knex'>, model: EntityModel, where: Record<string, BasicValue>, action: 'UPDATE' | 'DELETE' | 'RESTORE') => Promise<any>;
12
12
  /**
13
13
  * Check whether given data can be written to db (insert or update)
14
14
  */
15
- export declare const checkCanWrite: (ctx: Pick<FullContext, 'models' | 'permissions' | 'user' | 'knex'>, model: Model, data: Record<string, BasicValue>, action: 'CREATE' | 'UPDATE') => Promise<void>;
15
+ export declare const checkCanWrite: (ctx: Pick<FullContext, 'models' | 'permissions' | 'user' | 'knex'>, model: EntityModel, data: Record<string, BasicValue>, action: 'CREATE' | 'UPDATE') => Promise<void>;
@@ -1,5 +1,5 @@
1
1
  import { NotFoundError, PermissionError } from '../errors';
2
- import { get, getModelPlural, isRelation, summonByName } from '../models/utils';
2
+ import { get, isRelation } from '../models/utils';
3
3
  import { AliasGenerator, hash, ors } from '../resolvers/utils';
4
4
  export const getPermissionStack = (ctx, type, action) => {
5
5
  const rolePermissions = ctx.permissions[ctx.user.role];
@@ -45,7 +45,10 @@ export const applyPermissions = (ctx, type, tableAlias, query, action, verifiedP
45
45
  * Check whether entity as currently in db can be mutated (update or delete)
46
46
  */
47
47
  export const getEntityToMutate = async (ctx, model, where, action) => {
48
- const query = ctx.knex(model.name).where(where).first();
48
+ const query = ctx
49
+ .knex(model.parent || model.name)
50
+ .where(where)
51
+ .first();
49
52
  let entity = await query.clone();
50
53
  if (!entity) {
51
54
  console.error(`Not found: ${Object.entries(where)
@@ -61,6 +64,10 @@ export const getEntityToMutate = async (ctx, model, where, action) => {
61
64
  .join(', ')}`);
62
65
  throw new PermissionError(action, `this ${model.name}`, 'no available permissions applied');
63
66
  }
67
+ if (model.parent) {
68
+ const subEntity = await ctx.knex(model.name).where({ id: entity.id }).first();
69
+ Object.assign(entity, subEntity);
70
+ }
64
71
  return entity;
65
72
  };
66
73
  /**
@@ -72,7 +79,7 @@ export const checkCanWrite = async (ctx, model, data, action) => {
72
79
  return;
73
80
  }
74
81
  if (permissionStack === false) {
75
- throw new PermissionError(action, getModelPlural(model), 'no applicable permissions');
82
+ throw new PermissionError(action, model.plural, 'no applicable permissions');
76
83
  }
77
84
  // eslint-disable-next-line @typescript-eslint/no-explicit-any -- using `select(1 as any)` to instantiate an "empty" query builder
78
85
  const query = ctx.knex.select(1).first();
@@ -124,10 +131,10 @@ const permissionLinkQuery = (ctx, subQuery, links, id) => {
124
131
  subQuery.where({ [`${alias}.id`]: ctx.user.id });
125
132
  }
126
133
  if (where) {
127
- applyWhere(summonByName(ctx.models, type), subQuery, alias, where, aliases);
134
+ applyWhere(ctx.models.getModel(type, 'entity'), subQuery, alias, where, aliases);
128
135
  }
129
136
  for (const { type, foreignKey, reverse, where } of links) {
130
- const model = summonByName(ctx.models, type);
137
+ const model = ctx.models.getModel(type, 'entity');
131
138
  const subAlias = aliases.getShort();
132
139
  if (reverse) {
133
140
  // eslint-disable-next-line @typescript-eslint/no-floating-promises -- we do not need to await knex here
@@ -153,8 +160,8 @@ const applyWhere = (model, query, alias, where, aliases) => {
153
160
  if (relation) {
154
161
  const subAlias = aliases.getShort();
155
162
  // eslint-disable-next-line @typescript-eslint/no-floating-promises -- we do not need to await knex here
156
- query.leftJoin(`${relation.model.name} as ${subAlias}`, `${alias}.${relation.field.foreignKey || `${relation.field.name}Id`}`, `${subAlias}.id`);
157
- applyWhere(relation.model, query, subAlias, value, aliases);
163
+ query.leftJoin(`${relation.targetModel.name} as ${subAlias}`, `${alias}.${relation.field.foreignKey || `${relation.field.name}Id`}`, `${subAlias}.id`);
164
+ applyWhere(relation.targetModel, query, subAlias, value, aliases);
158
165
  }
159
166
  else if (Array.isArray(value)) {
160
167
  // eslint-disable-next-line @typescript-eslint/no-floating-promises -- we do not need to await knex here
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/permissions/check.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE3D,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAI/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,GAA8C,EAC9C,IAAY,EACZ,MAAwB,EACG,EAAE;IAC7B,MAAM,eAAe,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,OAAO,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,SAAS,EAAE;QACzE,OAAO,CAAC,CAAC,eAAe,CAAC;KAC1B;IAED,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,OAAO,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,SAAS,EAAE;QACzE,OAAO,CAAC,CAAC,eAAe,CAAC;KAC1B;IAED,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,OAAO,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS,EAAE;QAC3E,OAAO,CAAC,CAAC,gBAAgB,CAAC;KAC3B;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,GAAkE,EAClE,IAAY,EACZ,UAAkB,EAClB,KAAwB,EACxB,MAAwB,EACxB,uBAAyC,EACd,EAAE;IAC7B,MAAM,eAAe,GAAG,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAE9D,IAAI,eAAe,KAAK,IAAI,EAAE;QAC5B,OAAO,eAAe,CAAC;KACxB;IAED,IAAI,eAAe,KAAK,KAAK,EAAE;QAC7B,OAAO,CAAC,KAAK,CAAC,uCAAuC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC;QACzF,wGAAwG;QACxG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO,eAAe,CAAC;KACxB;IAED,IACE,uBAAuB,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAC7C,eAAe,CAAC,IAAI,CAClB,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,8EAA8E;QAC9E,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAC1C,CACF,EACD;QACA,yHAAyH;QACzH,gCAAgC;QAChC,OAAO,eAAe,CAAC;KACxB;IAED,wGAAwG;IACxG,GAAG,CACD,KAAK,EACL,eAAe,CAAC,GAAG,CACjB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CACnB,KAAK;SACF,SAAS,CAAC,GAAG,UAAU,KAAK,CAAC;SAC7B,aAAa,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,UAAU,MAAM,CAAC,CAAC,CAAC,CAChH,CACF,CAAC;IAEF,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EACpC,GAAkE,EAClE,KAAY,EACZ,KAAiC,EACjC,MAAuC,EACvC,EAAE;IACF,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;IACxD,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IAEjC,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,CAAC,KAAK,CACX,cAAc,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aAChC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,KAAK,EAAE,CAAC;aACzC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;QACF,MAAM,IAAI,aAAa,CAAC,aAAa,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;KAC9D;IAED,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,GAAG,MAAM,KAAK,CAAC;IACrB,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,CAAC,KAAK,CACX,qBAAqB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aACvC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,KAAK,EAAE,CAAC;aACzC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChB,CAAC;QACF,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,QAAQ,KAAK,CAAC,IAAI,EAAE,EAAE,kCAAkC,CAAC,CAAC;KAC7F;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,GAAkE,EAClE,KAAY,EACZ,IAAgC,EAChC,MAA2B,EAC3B,EAAE;IACF,MAAM,eAAe,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEpE,IAAI,eAAe,KAAK,IAAI,EAAE;QAC5B,OAAO;KACR;IACD,IAAI,eAAe,KAAK,KAAK,EAAE;QAC7B,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,2BAA2B,CAAC,CAAC;KACvF;IAED,kIAAkI;IAClI,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;IAChD,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM;SAC7B,MAAM,CAAC,UAAU,CAAC;SAClB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE;QAClG,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAW,CAAC;QAC7C,IAAI,CAAC,SAAS,EAAE;YACd,SAAS;SACV;QAED,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QAChF,IAAI,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChH,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,QAAQ,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,gCAAgC,CAAC,CAAC;SAC3G;QAED,MAAM,GAAG,IAAI,CAAC;QAEd,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAEzE,IAAI,oBAAoB,KAAK,IAAI,EAAE;YACjC,wEAAwE;YACxE,wGAAwG;YACxG,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;YACrG,SAAS;SACV;QAED,IAAI,oBAAoB,KAAK,KAAK,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE;YAClE,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,QAAQ,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,2CAA2C,CAAC,CAAC;SACtH;QAED,wGAAwG;QACxG,GAAG,CACD,KAAK,EACL,oBAAoB,CAAC,GAAG,CACtB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAC5G,CACF,CAAC;KACH;IAED,IAAI,MAAM,EAAE;QACV,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC;QAC9B,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,QAAQ,KAAK,CAAC,IAAI,EAAE,EAAE,sBAAsB,CAAC,CAAC;SACjF;KACF;SAAM,IAAI,MAAM,KAAK,QAAQ,EAAE;QAC9B,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,QAAQ,KAAK,CAAC,IAAI,EAAE,EAAE,sBAAsB,CAAC,CAAC;KACjF;AACH,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAC1B,GAAyC,EACzC,QAA2B,EAC3B,KAAuB,EACvB,EAAoC,EACpC,EAAE;IACF,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;IACrC,IAAI,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC/B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACrC,wGAAwG;IACxG,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC;IACrC,IAAI,EAAE,EAAE;QACN,wGAAwG;QACxG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;KAClD;IACD,IAAI,KAAK,EAAE;QACT,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;KAC7E;IAED,KAAK,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,KAAK,EAAE;QACxD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,OAAO,EAAE;YACX,wGAAwG;YACxG,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,OAAO,QAAQ,EAAE,EAAE,GAAG,KAAK,IAAI,UAAU,IAAI,IAAI,EAAE,EAAE,GAAG,QAAQ,KAAK,CAAC,CAAC;SACjG;aAAM;YACL,wGAAwG;YACxG,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,OAAO,QAAQ,EAAE,EAAE,GAAG,KAAK,KAAK,EAAE,GAAG,QAAQ,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC,CAAC;SAClG;QACD,wGAAwG;QACxG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,QAAQ,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACnD,IAAI,KAAK,EAAE;YACT,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;SACvD;QACD,KAAK,GAAG,QAAQ,CAAC;KAClB;IACD,wGAAwG;IACxG,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAY,EAAE,KAAwB,EAAE,KAAa,EAAE,KAAU,EAAE,OAAuB,EAAE,EAAE;IAChH,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAE5C,IAAI,QAAQ,EAAE;YACZ,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YACpC,wGAAwG;YACxG,KAAK,CAAC,QAAQ,CACZ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,QAAQ,EAAE,EACvC,GAAG,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,UAAU,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EACrE,GAAG,QAAQ,KAAK,CACjB,CAAC;YACF,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;SAC7D;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC/B,wGAAwG;YACxG,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;SACzC;aAAM;YACL,wGAAwG;YACxG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;SAC7C;KACF;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/permissions/check.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { isRelation, summonByName } from '../models/utils';
1
+ import { isRelation } from '../models/utils';
2
2
  const ACTIONS = ['READ', 'CREATE', 'UPDATE', 'DELETE', 'RESTORE', 'LINK'];
3
3
  export const generatePermissions = (models, config) => {
4
4
  const permissions = {};
@@ -32,7 +32,7 @@ export const generatePermissions = (models, config) => {
32
32
  };
33
33
  const addPermissions = (models, permissions, links, block) => {
34
34
  const { type } = links[links.length - 1];
35
- const model = summonByName(models, type);
35
+ const model = models.getModel(type, 'entity');
36
36
  for (const action of ACTIONS) {
37
37
  if (action === 'READ' || action in block) {
38
38
  if (!permissions[type]) {
@@ -58,13 +58,13 @@ const addPermissions = (models, permissions, links, block) => {
58
58
  };
59
59
  }
60
60
  else {
61
- const field = model.reverseRelationsByName[relation];
62
- if (!field) {
61
+ const reverseRelation = model.reverseRelationsByName[relation];
62
+ if (!reverseRelation) {
63
63
  throw new Error(`Relation ${relation} in model ${model.name} does not exist.`);
64
64
  }
65
65
  link = {
66
- type: field.model.name,
67
- foreignKey: field.foreignKey,
66
+ type: reverseRelation.targetModel.name,
67
+ foreignKey: reverseRelation.field.foreignKey,
68
68
  };
69
69
  }
70
70
  if (subBlock.WHERE) {
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/permissions/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/permissions/generate.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,13 @@
1
1
  import { Knex } from 'knex';
2
+ import { EntityModel, FullContext } from '..';
2
3
  import { FieldResolverNode } from './node';
3
4
  import { Joins } from './utils';
4
5
  export declare const SPECIAL_FILTERS: Record<string, string>;
6
+ export type WhereNode = {
7
+ ctx: FullContext;
8
+ rootModel: EntityModel;
9
+ rootTableAlias: string;
10
+ model: EntityModel;
11
+ tableAlias: string;
12
+ };
5
13
  export declare const applyFilters: (node: FieldResolverNode, query: Knex.QueryBuilder, joins: Joins) => void;
@@ -1,7 +1,6 @@
1
1
  import { ForbiddenError, UserInputError } from '../errors';
2
- import { get, summonByName } from '../models/utils';
3
2
  import { normalizeArguments } from './arguments';
4
- import { addJoin, apply, ors } from './utils';
3
+ import { addJoin, apply, getColumn, ors } from './utils';
5
4
  export const SPECIAL_FILTERS = {
6
5
  GT: '?? > ?',
7
6
  GTE: '?? >= ?',
@@ -44,15 +43,18 @@ export const applyFilters = (node, query, joins) => {
44
43
  if (orderBy) {
45
44
  applyOrderBy(node, orderBy, query);
46
45
  }
46
+ if (node.model.parent) {
47
+ void query.where({
48
+ [getColumn(node, 'type')]: node.model.name,
49
+ });
50
+ }
47
51
  if (where) {
48
52
  const ops = [];
49
53
  applyWhere(node, where, ops, joins);
50
- // eslint-disable-next-line @typescript-eslint/no-floating-promises -- we do not need to await knex here
51
- apply(query, ops);
54
+ void apply(query, ops);
52
55
  }
53
56
  if (search) {
54
- // eslint-disable-next-line @typescript-eslint/no-floating-promises -- we do not need to await knex here
55
- applySearch(node, search, query);
57
+ void applySearch(node, search, query);
56
58
  }
57
59
  };
58
60
  const applyWhere = (node, where, ops, joins) => {
@@ -65,51 +67,53 @@ const applyWhere = (node, where, ops, joins) => {
65
67
  // Should not happen
66
68
  throw new Error(`Invalid filter ${key}.`);
67
69
  }
68
- ops.push((query) => query.whereRaw(SPECIAL_FILTERS[filter], [`${node.shortTableAlias}.${actualKey}`, value]));
70
+ ops.push((query) => query.whereRaw(SPECIAL_FILTERS[filter], [getColumn(node, actualKey), value]));
69
71
  continue;
70
72
  }
71
- const field = summonByName(node.model.fields, key);
72
- const fullKey = `${node.shortTableAlias}.${key}`;
73
+ const field = node.model.getField(key);
73
74
  if (field.kind === 'relation') {
74
- const relation = get(node.model.relationsByName, field.name);
75
- const tableAlias = `${node.model.name}__W__${key}`;
75
+ const relation = node.model.getRelation(field.name);
76
+ const targetModel = relation.targetModel;
77
+ const rootModel = targetModel.parentModel || targetModel;
78
+ const rootTableAlias = `${node.model.name}__W__${key}`;
79
+ const tableAlias = targetModel === rootModel ? rootTableAlias : `${node.model.name}__WS__${key}`;
76
80
  const subNode = {
77
81
  ctx: node.ctx,
78
- model: relation.model,
79
- tableName: relation.model.name,
82
+ rootModel,
83
+ rootTableAlias,
84
+ model: targetModel,
80
85
  tableAlias,
81
- shortTableAlias: node.ctx.aliases.getShort(tableAlias),
82
- foreignKey: relation.field.foreignKey,
83
86
  };
84
- addJoin(joins, node.tableAlias, subNode.tableName, subNode.tableAlias, get(subNode, 'foreignKey'), 'id');
87
+ addJoin(joins, node.tableAlias, subNode.model.name, subNode.tableAlias, relation.field.foreignKey, 'id');
85
88
  applyWhere(subNode, value, ops, joins);
86
89
  continue;
87
90
  }
91
+ const column = getColumn(node, key);
88
92
  if (Array.isArray(value)) {
89
93
  if (field && field.list) {
90
- ops.push((query) => ors(query, value.map((v) => (subQuery) => subQuery.whereRaw('? = ANY(??)', [v, fullKey]))));
94
+ ops.push((query) => ors(query, value.map((v) => (subQuery) => subQuery.whereRaw('? = ANY(??)', [v, column]))));
91
95
  continue;
92
96
  }
93
97
  if (value.some((v) => v === null)) {
94
98
  if (value.some((v) => v !== null)) {
95
99
  ops.push((query) => ors(query, [
96
- (subQuery) => subQuery.whereIn(fullKey, value.filter((v) => v !== null)),
97
- (subQuery) => subQuery.whereNull(fullKey),
100
+ (subQuery) => subQuery.whereIn(column, value.filter((v) => v !== null)),
101
+ (subQuery) => subQuery.whereNull(column),
98
102
  ]));
99
103
  continue;
100
104
  }
101
- ops.push((query) => query.whereNull(fullKey));
105
+ ops.push((query) => query.whereNull(column));
102
106
  continue;
103
107
  }
104
- ops.push((query) => query.whereIn(fullKey, value));
108
+ ops.push((query) => query.whereIn(column, value));
105
109
  continue;
106
110
  }
107
- ops.push((query) => query.where({ [fullKey]: value }));
111
+ ops.push((query) => query.where({ [column]: value }));
108
112
  }
109
113
  };
110
114
  const applySearch = (node, search, query) => ors(query, node.model.fields
111
115
  .filter(({ searchable }) => searchable)
112
- .map(({ name }) => (query) => query.whereILike(`${node.shortTableAlias}.${name}`, `%${search}%`)));
116
+ .map(({ name }) => (query) => query.whereILike(getColumn(node, name), `%${search}%`)));
113
117
  const applyOrderBy = (node, orderBy, query) => {
114
118
  for (const vals of orderBy) {
115
119
  const keys = Object.keys(vals);
@@ -119,8 +123,7 @@ const applyOrderBy = (node, orderBy, query) => {
119
123
  const key = keys[0];
120
124
  const value = vals[key];
121
125
  // Simple field
122
- // eslint-disable-next-line @typescript-eslint/no-floating-promises -- we do not need to await knex here
123
- query.orderBy(`${node.shortTableAlias}.${key}`, value);
126
+ void query.orderBy(getColumn(node, key), value);
124
127
  }
125
128
  };
126
129
  //# sourceMappingURL=filters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../src/resolvers/filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../src/resolvers/filters.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,5 @@ export * from './mutations';
4
4
  export * from './node';
5
5
  export * from './resolver';
6
6
  export * from './resolvers';
7
+ export * from './selects';
7
8
  export * from './utils';
@@ -5,5 +5,6 @@ export * from './mutations';
5
5
  export * from './node';
6
6
  export * from './resolver';
7
7
  export * from './resolvers';
8
+ export * from './selects';
8
9
  export * from './utils';
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/resolvers/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/resolvers/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}