@contember/schema-utils 1.2.0-alpha.9 → 1.2.0-beta.2

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 (147) hide show
  1. package/dist/src/acl/PredicateDefinitionProcessor.js +2 -2
  2. package/dist/src/acl/PredicateDefinitionProcessor.js.map +1 -1
  3. package/dist/src/definition-generator/TsDefinitionGenerator.d.ts +26 -0
  4. package/dist/src/definition-generator/TsDefinitionGenerator.d.ts.map +1 -0
  5. package/dist/src/definition-generator/TsDefinitionGenerator.js +246 -0
  6. package/dist/src/definition-generator/TsDefinitionGenerator.js.map +1 -0
  7. package/dist/src/definition-generator/index.d.ts +2 -0
  8. package/dist/src/definition-generator/index.d.ts.map +1 -0
  9. package/dist/src/definition-generator/index.js +18 -0
  10. package/dist/src/definition-generator/index.js.map +1 -0
  11. package/dist/src/index.d.ts +2 -0
  12. package/dist/src/index.d.ts.map +1 -1
  13. package/dist/src/index.js +4 -0
  14. package/dist/src/index.js.map +1 -1
  15. package/dist/src/lax/LaxSchemaConverter.d.ts +10 -0
  16. package/dist/src/lax/LaxSchemaConverter.d.ts.map +1 -0
  17. package/dist/src/lax/LaxSchemaConverter.js +204 -0
  18. package/dist/src/lax/LaxSchemaConverter.js.map +1 -0
  19. package/dist/src/lax/index.d.ts +3 -0
  20. package/dist/src/lax/index.d.ts.map +1 -0
  21. package/dist/src/lax/index.js +6 -0
  22. package/dist/src/lax/index.js.map +1 -0
  23. package/dist/src/lax/schema.d.ts +284 -0
  24. package/dist/src/lax/schema.d.ts.map +1 -0
  25. package/dist/src/lax/schema.js +67 -0
  26. package/dist/src/lax/schema.js.map +1 -0
  27. package/dist/src/model/NamingConventions.d.ts +17 -0
  28. package/dist/src/model/NamingConventions.d.ts.map +1 -0
  29. package/dist/src/model/NamingConventions.js +29 -0
  30. package/dist/src/model/NamingConventions.js.map +1 -0
  31. package/dist/src/model/NamingHelper.d.ts +2 -0
  32. package/dist/src/model/NamingHelper.d.ts.map +1 -1
  33. package/dist/src/model/NamingHelper.js +10 -2
  34. package/dist/src/model/NamingHelper.js.map +1 -1
  35. package/dist/src/model/index.d.ts +2 -0
  36. package/dist/src/model/index.d.ts.map +1 -1
  37. package/dist/src/model/index.js +2 -0
  38. package/dist/src/model/index.js.map +1 -1
  39. package/dist/src/model/modelUtils.d.ts +1 -0
  40. package/dist/src/model/modelUtils.d.ts.map +1 -1
  41. package/dist/src/model/modelUtils.js +69 -46
  42. package/dist/src/model/modelUtils.js.map +1 -1
  43. package/dist/src/model/resolveDefaultColumnType.d.ts +3 -0
  44. package/dist/src/model/resolveDefaultColumnType.d.ts.map +1 -0
  45. package/dist/src/model/resolveDefaultColumnType.js +29 -0
  46. package/dist/src/model/resolveDefaultColumnType.js.map +1 -0
  47. package/dist/src/schemaNormalizer.d.ts.map +1 -1
  48. package/dist/src/schemaNormalizer.js +1 -0
  49. package/dist/src/schemaNormalizer.js.map +1 -1
  50. package/dist/src/tsconfig.tsbuildinfo +1 -1
  51. package/dist/src/type-schema/acl.d.ts.map +1 -1
  52. package/dist/src/type-schema/acl.js +15 -4
  53. package/dist/src/type-schema/acl.js.map +1 -1
  54. package/dist/src/type-schema/index.d.ts +1 -0
  55. package/dist/src/type-schema/index.d.ts.map +1 -1
  56. package/dist/src/type-schema/index.js +1 -0
  57. package/dist/src/type-schema/index.js.map +1 -1
  58. package/dist/src/type-schema/model.js +1 -1
  59. package/dist/src/type-schema/model.js.map +1 -1
  60. package/dist/src/type-schema/settings.d.ts +10 -0
  61. package/dist/src/type-schema/settings.d.ts.map +1 -0
  62. package/dist/src/type-schema/settings.js +32 -0
  63. package/dist/src/type-schema/settings.js.map +1 -0
  64. package/dist/src/validation/AclValidator.d.ts.map +1 -1
  65. package/dist/src/validation/AclValidator.js +11 -11
  66. package/dist/src/validation/AclValidator.js.map +1 -1
  67. package/dist/src/validation/MembershipResolver.d.ts.map +1 -1
  68. package/dist/src/validation/MembershipResolver.js +12 -3
  69. package/dist/src/validation/MembershipResolver.js.map +1 -1
  70. package/dist/src/validation/ModelValidator.d.ts.map +1 -1
  71. package/dist/src/validation/ModelValidator.js +77 -43
  72. package/dist/src/validation/ModelValidator.js.map +1 -1
  73. package/dist/src/validation/SchemaValidator.d.ts +6 -2
  74. package/dist/src/validation/SchemaValidator.d.ts.map +1 -1
  75. package/dist/src/validation/SchemaValidator.js +7 -2
  76. package/dist/src/validation/SchemaValidator.js.map +1 -1
  77. package/dist/src/validation/ValidationValidator.js +4 -4
  78. package/dist/src/validation/ValidationValidator.js.map +1 -1
  79. package/dist/src/validation/errors.d.ts +3 -1
  80. package/dist/src/validation/errors.d.ts.map +1 -1
  81. package/dist/src/validation/errors.js +2 -2
  82. package/dist/src/validation/errors.js.map +1 -1
  83. package/dist/tests/cases/unit/laxSchemaConverter.test.d.ts +2 -0
  84. package/dist/tests/cases/unit/laxSchemaConverter.test.d.ts.map +1 -0
  85. package/dist/tests/cases/unit/laxSchemaConverter.test.js +118 -0
  86. package/dist/tests/cases/unit/laxSchemaConverter.test.js.map +1 -0
  87. package/dist/tests/cases/unit/membershipResolver.test.js +19 -0
  88. package/dist/tests/cases/unit/membershipResolver.test.js.map +1 -1
  89. package/dist/tests/cases/unit/modelValidator.test.d.ts +2 -0
  90. package/dist/tests/cases/unit/modelValidator.test.d.ts.map +1 -0
  91. package/dist/tests/cases/unit/modelValidator.test.js +141 -0
  92. package/dist/tests/cases/unit/modelValidator.test.js.map +1 -0
  93. package/dist/tests/cases/unit/schemas/basic.d.ts +5 -0
  94. package/dist/tests/cases/unit/schemas/basic.d.ts.map +1 -0
  95. package/dist/tests/cases/unit/schemas/basic.js +11 -0
  96. package/dist/tests/cases/unit/schemas/basic.js.map +1 -0
  97. package/dist/tests/cases/unit/schemas/enum.d.ts +7 -0
  98. package/dist/tests/cases/unit/schemas/enum.d.ts.map +1 -0
  99. package/dist/tests/cases/unit/schemas/enum.js +13 -0
  100. package/dist/tests/cases/unit/schemas/enum.js.map +1 -0
  101. package/dist/tests/cases/unit/schemas/relations.d.ts +15 -0
  102. package/dist/tests/cases/unit/schemas/relations.d.ts.map +1 -0
  103. package/dist/tests/cases/unit/schemas/relations.js +27 -0
  104. package/dist/tests/cases/unit/schemas/relations.js.map +1 -0
  105. package/dist/tests/cases/unit/schemas/unique.d.ts +5 -0
  106. package/dist/tests/cases/unit/schemas/unique.d.ts.map +1 -0
  107. package/dist/tests/cases/unit/schemas/unique.js +20 -0
  108. package/dist/tests/cases/unit/schemas/unique.js.map +1 -0
  109. package/dist/tests/cases/unit/tsDefinitionGenerator.test.d.ts +2 -0
  110. package/dist/tests/cases/unit/tsDefinitionGenerator.test.d.ts.map +1 -0
  111. package/dist/tests/cases/unit/tsDefinitionGenerator.test.js +56 -0
  112. package/dist/tests/cases/unit/tsDefinitionGenerator.test.js.map +1 -0
  113. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  114. package/package.json +3 -3
  115. package/src/acl/PredicateDefinitionProcessor.ts +2 -2
  116. package/src/definition-generator/TsDefinitionGenerator.ts +275 -0
  117. package/src/definition-generator/index.ts +1 -0
  118. package/src/index.ts +5 -1
  119. package/src/lax/LaxSchemaConverter.ts +213 -0
  120. package/src/lax/index.ts +9 -0
  121. package/src/lax/schema.ts +62 -0
  122. package/src/model/NamingConventions.ts +53 -0
  123. package/src/model/NamingHelper.ts +11 -1
  124. package/src/model/index.ts +2 -0
  125. package/src/model/modelUtils.ts +76 -71
  126. package/src/model/resolveDefaultColumnType.ts +25 -0
  127. package/src/schemaNormalizer.ts +1 -0
  128. package/src/type-schema/acl.ts +30 -11
  129. package/src/type-schema/index.ts +1 -0
  130. package/src/type-schema/model.ts +1 -1
  131. package/src/type-schema/settings.ts +8 -0
  132. package/src/validation/AclValidator.ts +10 -11
  133. package/src/validation/MembershipResolver.ts +10 -3
  134. package/src/validation/ModelValidator.ts +77 -45
  135. package/src/validation/SchemaValidator.ts +17 -4
  136. package/src/validation/ValidationValidator.ts +4 -4
  137. package/src/validation/errors.ts +25 -2
  138. package/tests/cases/unit/__snapshots__/laxSchemaConverter.test.ts.snap +310 -0
  139. package/tests/cases/unit/laxSchemaConverter.test.ts +137 -0
  140. package/tests/cases/unit/membershipResolver.test.ts +22 -0
  141. package/tests/cases/unit/modelValidator.test.ts +143 -0
  142. package/tests/cases/unit/schemas/.eslintignore +1 -0
  143. package/tests/cases/unit/schemas/basic.ts +5 -0
  144. package/tests/cases/unit/schemas/enum.ts +8 -0
  145. package/tests/cases/unit/schemas/relations.ts +17 -0
  146. package/tests/cases/unit/schemas/unique.ts +6 -0
  147. package/tests/cases/unit/tsDefinitionGenerator.test.ts +31 -0
@@ -1 +1 @@
1
- {"version":3,"file":"acl.js","sourceRoot":"","sources":["../../../src/type-schema/acl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acl.js","sourceRoot":"","sources":["../../../src/type-schema/acl.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export * from './acl';
2
2
  export * from './condition';
3
3
  export * from './model';
4
+ export * from './settings';
4
5
  export * from './validation';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/type-schema/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AACrB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/type-schema/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAA;AACrB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA"}
@@ -17,5 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./acl"), exports);
18
18
  __exportStar(require("./condition"), exports);
19
19
  __exportStar(require("./model"), exports);
20
+ __exportStar(require("./settings"), exports);
20
21
  __exportStar(require("./validation"), exports);
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/type-schema/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,8CAA2B;AAC3B,0CAAuB;AACvB,+CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/type-schema/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAqB;AACrB,8CAA2B;AAC3B,0CAAuB;AACvB,6CAA0B;AAC1B,+CAA4B"}
@@ -117,7 +117,7 @@ const columnSchema = Typesafe.intersection(Typesafe.object({
117
117
  sequence: intersectionSchema,
118
118
  }));
119
119
  const columnSchemaCheck = true;
120
- const fieldSchema = Typesafe.discriminatedUnion('type', oneHasOneInverseRelationSchema, oneHasOneOwningRelationSchema, oneHasManyRelationSchema, manyHasOneRelationSchema, manyHasManyInverseRelationSchema, manyHasManyOwningRelationSchema, columnSchema);
120
+ const fieldSchema = Typesafe.partiallyDiscriminatedUnion('type', oneHasOneInverseRelationSchema, oneHasOneOwningRelationSchema, oneHasManyRelationSchema, manyHasOneRelationSchema, manyHasManyInverseRelationSchema, manyHasManyOwningRelationSchema, columnSchema);
121
121
  const viewSchemaInner = Typesafe.intersection(Typesafe.object({
122
122
  sql: Typesafe.string,
123
123
  }), Typesafe.partial({
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/type-schema/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/type-schema/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import * as Typesafe from '@contember/typesafe';
2
+ export declare const settingsSchema: {
3
+ (input: unknown, path?: PropertyKey[] | undefined): {
4
+ readonly useExistsInHasManyFilter?: boolean | undefined;
5
+ };
6
+ inner: {
7
+ useExistsInHasManyFilter: Typesafe.Type<boolean>;
8
+ };
9
+ };
10
+ //# sourceMappingURL=settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/type-schema/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAA;AAG/C,eAAO,MAAM,cAAc;;;;;;;CAEzB,CAAA"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.settingsSchema = void 0;
27
+ const Typesafe = __importStar(require("@contember/typesafe"));
28
+ exports.settingsSchema = Typesafe.partial({
29
+ useExistsInHasManyFilter: Typesafe.boolean,
30
+ });
31
+ const settingSchemaCheck = true;
32
+ //# sourceMappingURL=settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/type-schema/settings.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAA+C;AAGlC,QAAA,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC;IAC9C,wBAAwB,EAAE,QAAQ,CAAC,OAAO;CAC1C,CAAC,CAAA;AAEF,MAAM,kBAAkB,GAAwE,IAAI,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"AclValidator.d.ts","sourceRoot":"","sources":["../../../src/validation/AclValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,EAAgB,eAAe,EAAE,MAAM,UAAU,CAAA;AAKxD,qBAAa,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK,CAAC,MAAM;IAEzC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,eAAe,EAAE;IAMtD,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,2BAA2B;IAmCnC,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,iBAAiB;CAYzB"}
1
+ {"version":3,"file":"AclValidator.d.ts","sourceRoot":"","sources":["../../../src/validation/AclValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAG9C,OAAO,EAAgB,eAAe,EAAE,MAAM,UAAU,CAAA;AAIxD,qBAAa,YAAY;IACZ,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK,CAAC,MAAM;IAEzC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,eAAe,EAAE;IAMtD,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,2BAA2B;IAmCnC,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,iBAAiB;CAYzB"}
@@ -4,7 +4,7 @@ exports.AclValidator = void 0;
4
4
  const acl_1 = require("../acl");
5
5
  const model_1 = require("../model");
6
6
  const errors_1 = require("./errors");
7
- const condition_1 = require("../type-schema/condition");
7
+ const type_schema_1 = require("../type-schema");
8
8
  class AclValidator {
9
9
  constructor(model) {
10
10
  this.model = model;
@@ -34,7 +34,7 @@ class AclValidator {
34
34
  }
35
35
  for (const inheritsFrom of inherits) {
36
36
  if (!roles.includes(inheritsFrom)) {
37
- errorBuilder.for(inheritsFrom).add('Referenced role not exists.');
37
+ errorBuilder.for(inheritsFrom).add('ACL_UNDEFINED_ROLE', 'Referenced role not exists.');
38
38
  }
39
39
  }
40
40
  }
@@ -50,7 +50,7 @@ class AclValidator {
50
50
  switch (variable.type) {
51
51
  case 'entity':
52
52
  if (!this.model.entities[variable.entityName]) {
53
- errorBuilder.add(`Entity "${variable.entityName}" not found`);
53
+ errorBuilder.add('ACL_UNDEFINED_ENTITY', `Entity "${variable.entityName}" not found`);
54
54
  return;
55
55
  }
56
56
  }
@@ -62,7 +62,7 @@ class AclValidator {
62
62
  continue;
63
63
  }
64
64
  if (!this.model.entities[entityName]) {
65
- errorBuilder.add(`Entity ${entityName} not found`);
65
+ errorBuilder.add('ACL_UNDEFINED_ENTITY', `Entity ${entityName} not found`);
66
66
  continue;
67
67
  }
68
68
  const entity = (0, model_1.getEntity)(this.model, entityName);
@@ -87,27 +87,27 @@ class AclValidator {
87
87
  handleColumn: ctx => {
88
88
  if (typeof ctx.value === 'string') {
89
89
  if (!variables[ctx.value]) {
90
- errorBuilder.for(...ctx.path).add(`Undefined variable ${ctx.value}`);
90
+ errorBuilder.for(...ctx.path).add('ACL_UNDEFINED_VARIABLE', `Undefined variable ${ctx.value}`);
91
91
  }
92
92
  }
93
93
  else {
94
94
  try {
95
- (0, condition_1.conditionSchema)(ctx.column.type)(ctx.value);
95
+ (0, type_schema_1.conditionSchema)(ctx.column.type)(ctx.value);
96
96
  }
97
97
  catch (e) {
98
- errorBuilder.for(...ctx.path).add(`Invalid condition (${e.message}): ${JSON.stringify(ctx.value)}`);
98
+ errorBuilder.for(...ctx.path).add('ACL_INVALID_CONDITION', `Invalid condition (${e.message}): ${JSON.stringify(ctx.value)}`);
99
99
  }
100
100
  }
101
101
  return ctx.value;
102
102
  },
103
103
  handleRelation: ctx => {
104
104
  if (typeof ctx.value === 'string' && !variables[ctx.value]) {
105
- errorBuilder.for(...ctx.path).add(`Undefined variable ${ctx.value}`);
105
+ errorBuilder.for(...ctx.path).add('ACL_UNDEFINED_VARIABLE', `Undefined variable ${ctx.value}`);
106
106
  }
107
107
  return ctx.value;
108
108
  },
109
109
  handleUndefinedField: ctx => {
110
- errorBuilder.for(...ctx.path).add(`Undefined field ${ctx.name} on entity ${ctx.entity.name}`);
110
+ errorBuilder.for(...ctx.path).add('ACL_UNDEFINED_FIELD', `Undefined field ${ctx.name} on entity ${ctx.entity.name}`);
111
111
  return ctx.value;
112
112
  },
113
113
  });
@@ -129,7 +129,7 @@ class AclValidator {
129
129
  continue;
130
130
  }
131
131
  if (!entity.fields[field]) {
132
- errorBuilder.add(`Field ${field} not found on entity ${entity.name}`);
132
+ errorBuilder.add('ACL_UNDEFINED_FIELD', `Field ${field} not found on entity ${entity.name}`);
133
133
  }
134
134
  this.validatePredicate(permissions[field], predicates, errorBuilder.for(field));
135
135
  }
@@ -139,7 +139,7 @@ class AclValidator {
139
139
  return;
140
140
  }
141
141
  if (!predicates[predicate]) {
142
- errorBuilder.add(`Predicate ${predicate} not found`);
142
+ errorBuilder.add('ACL_UNDEFINED_PREDICATE', `Predicate ${predicate} not found`);
143
143
  }
144
144
  }
145
145
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AclValidator.js","sourceRoot":"","sources":["../../../src/validation/AclValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AclValidator.js","sourceRoot":"","sources":["../../../src/validation/AclValidator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MembershipResolver.d.ts","sourceRoot":"","sources":["../../../src/validation/MembershipResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAK9C,qBAAa,kBAAkB;IAC9B,OAAc,eAAe;;MAAyD;IAEtF,OAAO,CACN,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,WAAW,EAAE,SAAS,GAAG,CAAC,UAAU,EAAE,EACtC,QAAQ,EAAE;QACT,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;KACjB,GACC,oBAAoB;IA+BvB,OAAO,CAAC,uBAAuB;CAmD/B;AAED,qBAAa,oBAAoB;aAEf,MAAM,EAAE,yBAAyB,EAAE;aACnC,WAAW,EAAE,gBAAgB,EAAE;gBAD/B,MAAM,EAAE,yBAAyB,EAAE,EACnC,WAAW,EAAE,gBAAgB,EAAE;CAGhD;AAED,qBAAa,yBAAyB;aAEpB,IAAI,EAAE,MAAM;aACZ,KAAK,EAAE,6BAA6B;aACpC,QAAQ,CAAC;gBAFT,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,6BAA6B,EACpC,QAAQ,CAAC,oBAAQ;CAGlC;AAED,oBAAY,6BAA6B;IACxC,cAAc,iBAAiB;IAC/B,kBAAkB,qBAAqB;IACvC,cAAc,kBAAkB;IAChC,gBAAgB,oBAAoB;CACpC;AAGD,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,SAAS,wBAAwB,EAAE,CAAA;CACvD"}
1
+ {"version":3,"file":"MembershipResolver.d.ts","sourceRoot":"","sources":["../../../src/validation/MembershipResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAM9C,qBAAa,kBAAkB;IAC9B,OAAc,eAAe;;MAAyD;IAEtF,OAAO,CACN,GAAG,EAAE,GAAG,CAAC,MAAM,EACf,WAAW,EAAE,SAAS,GAAG,CAAC,UAAU,EAAE,EACtC,QAAQ,EAAE;QACT,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;KACjB,GACC,oBAAoB;IA+BvB,OAAO,CAAC,uBAAuB;CAyD/B;AAED,qBAAa,oBAAoB;aAEf,MAAM,EAAE,yBAAyB,EAAE;aACnC,WAAW,EAAE,gBAAgB,EAAE;gBAD/B,MAAM,EAAE,yBAAyB,EAAE,EACnC,WAAW,EAAE,gBAAgB,EAAE;CAGhD;AAED,qBAAa,yBAAyB;aAEpB,IAAI,EAAE,MAAM;aACZ,KAAK,EAAE,6BAA6B;aACpC,QAAQ,CAAC;gBAFT,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,6BAA6B,EACpC,QAAQ,CAAC,oBAAQ;CAGlC;AAED,oBAAY,6BAA6B;IACxC,cAAc,iBAAiB;IAC/B,kBAAkB,qBAAqB;IACvC,cAAc,kBAAkB;IAChC,gBAAgB,oBAAoB;CACpC;AAGD,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,SAAS,wBAAwB,EAAE,CAAA;CACvD"}
@@ -4,6 +4,7 @@ exports.MembershipValidationErrorType = exports.MembershipValidationError = expo
4
4
  const schema_1 = require("@contember/schema");
5
5
  const acl_1 = require("../acl");
6
6
  const type_schema_1 = require("../type-schema");
7
+ const utils_1 = require("../utils");
7
8
  class MembershipResolver {
8
9
  resolve(acl, memberships, identity) {
9
10
  const errors = [];
@@ -33,7 +34,6 @@ class MembershipResolver {
33
34
  const errors = [];
34
35
  const parsedVariables = [];
35
36
  for (const [name, variable] of Object.entries(roleVariables)) {
36
- const inputVariable = membership.variables.find(it => it.name === name);
37
37
  if (variable.type === schema_1.Acl.VariableType.predefined) {
38
38
  switch (variable.value) {
39
39
  case 'identityID':
@@ -52,9 +52,15 @@ class MembershipResolver {
52
52
  }
53
53
  continue;
54
54
  }
55
+ const inputVariable = membership.variables.find(it => it.name === name);
55
56
  if (!inputVariable) {
56
- errors.push(new MembershipValidationError(membership.role, MembershipValidationErrorType.VARIABLE_EMPTY, name));
57
- parsedVariables.push({ name, condition: { never: true } });
57
+ if (variable.fallback) {
58
+ parsedVariables.push({ name, condition: variable.fallback });
59
+ }
60
+ else {
61
+ errors.push(new MembershipValidationError(membership.role, MembershipValidationErrorType.VARIABLE_EMPTY, name));
62
+ parsedVariables.push({ name, condition: { never: true } });
63
+ }
58
64
  continue;
59
65
  }
60
66
  if (variable.type === schema_1.Acl.VariableType.entity) {
@@ -73,6 +79,9 @@ class MembershipResolver {
73
79
  parsedVariables.push({ name, condition: { never: true } });
74
80
  }
75
81
  }
82
+ else {
83
+ (0, utils_1.assertNever)(variable);
84
+ }
76
85
  }
77
86
  return [errors, parsedVariables];
78
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MembershipResolver.js","sourceRoot":"","sources":["../../../src/validation/MembershipResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MembershipResolver.js","sourceRoot":"","sources":["../../../src/validation/MembershipResolver.ts"],"names":[],"mappings":";;;AAAA,8CAA8C;AAC9C,gCAAyC;AACzC,gDAAgD;AAChD,oCAAsC;AAGtC,MAAa,kBAAkB;IAG9B,OAAO,CACN,GAAe,EACf,WAAsC,EACtC,QAGC;QAED,MAAM,MAAM,GAAgC,EAAE,CAAA;QAC9C,MAAM,MAAM,GAAuB,EAAE,CAAA;QACrC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;QACvB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBAC5B,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,UAAU,CAAC,IAAI,EAAE,6BAA6B,CAAC,cAAc,CAAC,CAAC,CAAA;gBACzG,SAAQ;aACR;YACD,MAAM,aAAa,GAAG,IAAA,sBAAgB,EAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;YAC5D,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,SAAS,EAAE;gBAC5C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,YAAG,CAAC,YAAY,CAAC,UAAU,EAAE;oBACvG,MAAM,CAAC,IAAI,CACV,IAAI,yBAAyB,CAC5B,UAAU,CAAC,IAAI,EACf,6BAA6B,CAAC,kBAAkB,EAChD,QAAQ,CAAC,IAAI,CACb,CACD,CAAA;iBACD;aACD;YACD,MAAM,CAAC,gBAAgB,EAAE,eAAe,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAA;YAC7G,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAA;YAChC,MAAM,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,SAAS,EAAE,eAAe;aAC1B,CAAC,CAAA;SACF;QACD,OAAO,IAAI,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,CAAC;IAEO,uBAAuB,CAAC,aAA4B,EAAE,UAA0B,EAAE,QAGzF;QACA,MAAM,MAAM,GAAgC,EAAE,CAAA;QAC9C,MAAM,eAAe,GAA+B,EAAE,CAAA;QACtD,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;YAC7D,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAG,CAAC,YAAY,CAAC,UAAU,EAAE;gBAClD,QAAQ,QAAQ,CAAC,KAAK,EAAE;oBACvB,KAAK,YAAY;wBAChB,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAA;wBACxE,MAAK;oBACN,KAAK,UAAU;wBACd,eAAe,CAAC,IAAI,CAAC;4BACpB,IAAI;4BACJ,SAAS,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;yBAC/D,CAAC,CAAA;wBACF,MAAK;oBACN;wBACC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;wBAC1D,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,UAAU,CAAC,IAAI,EAAE,6BAA6B,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAA;wBACjH,MAAK;iBACN;gBACD,SAAQ;aACR;YAED,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;YACvE,IAAI,CAAC,aAAa,EAAE;gBACnB,IAAI,QAAQ,CAAC,QAAQ,EAAE;oBACtB,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;iBAC5D;qBAAM;oBACN,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,UAAU,CAAC,IAAI,EAAE,6BAA6B,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAA;oBAC/G,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;iBAC1D;gBACD,SAAQ;aACR;YAED,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAG,CAAC,YAAY,CAAC,MAAM,EAAE;gBAC9C,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA,CAAC,yCAAyC;aAEjH;iBAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAG,CAAC,YAAY,CAAC,SAAS,EAAE;gBACxD,IAAI;oBACH,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAA,6BAAe,GAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;oBACpF,eAAe,CAAC,IAAI,CAAC;wBACpB,IAAI;wBACJ,SAAS,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE;qBACvE,CAAC,CAAA;iBACF;gBAAC,WAAM;oBACP,MAAM,CAAC,IAAI,CAAC,IAAI,yBAAyB,CAAC,UAAU,CAAC,IAAI,EAAE,6BAA6B,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAA;oBACjH,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;iBAC1D;aACD;iBAAM;gBACN,IAAA,mBAAW,EAAC,QAAQ,CAAC,CAAA;aACrB;SACD;QACD,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IACjC,CAAC;;AAjGF,gDAkGC;AAjGc,kCAAe,GAAG,EAAE,UAAU,EAAE,sCAAsC,EAAE,CAAA;AAmGvF,MAAa,oBAAoB;IAChC,YACiB,MAAmC,EACnC,WAA+B;QAD/B,WAAM,GAAN,MAAM,CAA6B;QACnC,gBAAW,GAAX,WAAW,CAAoB;IAEhD,CAAC;CACD;AAND,oDAMC;AAED,MAAa,yBAAyB;IACrC,YACiB,IAAY,EACZ,KAAoC,EACpC,QAAiB;QAFjB,SAAI,GAAJ,IAAI,CAAQ;QACZ,UAAK,GAAL,KAAK,CAA+B;QACpC,aAAQ,GAAR,QAAQ,CAAS;IAElC,CAAC;CACD;AAPD,8DAOC;AAED,IAAY,6BAKX;AALD,WAAY,6BAA6B;IACxC,gEAA+B,CAAA;IAC/B,wEAAuC,CAAA;IACvC,iEAAgC,CAAA;IAChC,qEAAoC,CAAA;AACrC,CAAC,EALW,6BAA6B,GAA7B,qCAA6B,KAA7B,qCAA6B,QAKxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModelValidator.d.ts","sourceRoot":"","sources":["../../../src/validation/ModelValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAgB,eAAe,EAAE,MAAM,UAAU,CAAA;AAOxD,qBAAa,cAAc;IACd,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK,CAAC,MAAM;IAEzC,QAAQ,IAAI,eAAe,EAAE;IAQpC,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,gBAAgB;IAyHxB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,kBAAkB;CAiD1B"}
1
+ {"version":3,"file":"ModelValidator.d.ts","sourceRoot":"","sources":["../../../src/validation/ModelValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAgB,eAAe,EAAE,MAAM,UAAU,CAAA;AAOxD,qBAAa,cAAc;IACd,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK,CAAC,MAAM;IAEzC,QAAQ,IAAI,eAAe,EAAE;IAQpC,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,gBAAgB;IAyHxB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,kBAAkB;CA6E1B"}
@@ -29,7 +29,7 @@ class ModelValidator {
29
29
  for (const [entityName, entity] of Object.entries(entities)) {
30
30
  const entityErrors = errors.for(entityName);
31
31
  if (entity.name !== entityName) {
32
- entityErrors.add(`Entity name "${entity.name}" does not match the name in a map "${entityName}"`);
32
+ entityErrors.add('MODEL_NAME_MISMATCH', `Entity name "${entity.name}" does not match the name in a map "${entityName}"`);
33
33
  }
34
34
  this.validateEntity(entity, entityErrors);
35
35
  }
@@ -40,7 +40,7 @@ class ModelValidator {
40
40
  const fieldErrors = errors.for(fieldName);
41
41
  this.validateField(entity, field, fieldErrors);
42
42
  if (field.name !== fieldName) {
43
- fieldErrors.add(`Field name "${field.name}" does not match the name in a map "${fieldName}"`);
43
+ fieldErrors.add('MODEL_NAME_MISMATCH', `Field name "${field.name}" does not match the name in a map "${fieldName}"`);
44
44
  }
45
45
  }
46
46
  this.validateUniqueConstraints(entity.unique, new Set(Object.keys(entity.fields)), errors.for('unique'));
@@ -49,12 +49,12 @@ class ModelValidator {
49
49
  for (const [constraintName, constraint] of Object.entries(uniqueConstraints)) {
50
50
  const uniqueErrors = errors.for(constraintName);
51
51
  if (constraint.name !== constraintName) {
52
- uniqueErrors.add(`Constraint name ${constraint.name} does not match the name in a map "${constraintName}"`);
52
+ uniqueErrors.add('MODEL_NAME_MISMATCH', `Constraint name ${constraint.name} does not match the name in a map "${constraintName}"`);
53
53
  continue;
54
54
  }
55
55
  for (const field of constraint.fields) {
56
56
  if (!fields.has(field)) {
57
- uniqueErrors.add(`Referenced field ${field} in a constraint does not exists`);
57
+ uniqueErrors.add('MODEL_UNDEFINED_FIELD', `Referenced field ${field} in a constraint does not exists`);
58
58
  }
59
59
  }
60
60
  }
@@ -64,6 +64,11 @@ class ModelValidator {
64
64
  if (isRelation(field)) {
65
65
  this.validateRelation(partialEntity, field, errors);
66
66
  }
67
+ else {
68
+ if (field.sequence && field.nullable) {
69
+ errors.add('MODEL_INVALID_COLUMN_DEFINITION', 'Column with sequence cannot be nullable.');
70
+ }
71
+ }
67
72
  }
68
73
  validateRelation(partialEntity, field, errors) {
69
74
  var _a;
@@ -71,7 +76,7 @@ class ModelValidator {
71
76
  const targetEntityName = field.target;
72
77
  const targetEntity = this.model.entities[targetEntityName] || undefined;
73
78
  if (!targetEntity) {
74
- return errors.add(`Target entity ${targetEntityName} not found`);
79
+ return errors.add('MODEL_UNDEFINED_ENTITY', `Target entity ${targetEntityName} not found`);
75
80
  }
76
81
  if (((it) => 'orderBy' in it)(field)) {
77
82
  (_a = field.orderBy) === null || _a === void 0 ? void 0 : _a.forEach(it => {
@@ -80,13 +85,13 @@ class ModelValidator {
80
85
  const orderByField = entity.fields[it.path[i]];
81
86
  const pathStr = it.path.slice(0, i + 1).join('.');
82
87
  if (!orderByField) {
83
- errors.add(`Invalid orderBy of ${entityName}::${field.name}: field ${pathStr} is not defined`);
88
+ errors.add('ACL_UNDEFINED_FIELD', `Invalid orderBy of ${entityName}::${field.name}: field ${pathStr} is not defined`);
84
89
  return;
85
90
  }
86
91
  if (i + 1 < it.path.length) {
87
92
  const targetEntity = (0, model_1.getTargetEntity)(this.model, entity, orderByField.name);
88
93
  if (!targetEntity) {
89
- errors.add(`Invalid orderBy of ${entityName}::${field.name}: field ${pathStr} is not a relation`);
94
+ errors.add('MODEL_RELATION_REQUIRED', `Invalid orderBy of ${entityName}::${field.name}: field ${pathStr} is not a relation`);
90
95
  return;
91
96
  }
92
97
  entity = targetEntity;
@@ -96,16 +101,16 @@ class ModelValidator {
96
101
  }
97
102
  if (partialEntity.view) {
98
103
  if (field.type === schema_1.Model.RelationType.ManyHasMany) {
99
- return errors.add('Many-has-many relation is not allowed on a view entity.');
104
+ return errors.add('MODEL_INVALID_VIEW_USAGE', 'Many-has-many relation is not allowed on a view entity.');
100
105
  }
101
106
  if (!targetEntity.view &&
102
107
  field.type === schema_1.Model.RelationType.OneHasMany) {
103
- return errors.add('One-has-many relation fields on views must point to a view entity.');
108
+ return errors.add('MODEL_INVALID_VIEW_USAGE', 'One-has-many relation fields on views must point to a view entity.');
104
109
  }
105
110
  if (!targetEntity.view &&
106
111
  field.type === schema_1.Model.RelationType.OneHasOne &&
107
112
  !('joiningColumn' in field)) {
108
- return errors.add('One-has-one relation fields on views must be owning or point to a view entity.');
113
+ return errors.add('MODEL_INVALID_VIEW_USAGE', 'One-has-one relation fields on views must be owning or point to a view entity.');
109
114
  }
110
115
  }
111
116
  if ((0, model_1.isInverseRelation)(field)) {
@@ -113,120 +118,128 @@ class ModelValidator {
113
118
  const targetField = targetEntity.fields[ownedBy];
114
119
  const relationDescription = `Target relation ${targetEntityName}::${ownedBy}:`;
115
120
  if (!targetField) {
116
- return errors.add(`${relationDescription} not exists`);
121
+ return errors.add('MODEL_UNDEFINED_FIELD', `${relationDescription} not exists`);
117
122
  }
118
123
  if (!isRelation(targetField)) {
119
- return errors.add(`${relationDescription} not a relation`);
124
+ return errors.add('MODEL_RELATION_REQUIRED', `${relationDescription} not a relation`);
120
125
  }
121
126
  if (targetField.target !== entityName) {
122
- return errors.add(`${relationDescription} back reference to entity ${entityName} expected, but ${targetField.target} given`);
127
+ return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} back reference to entity ${entityName} expected, but ${targetField.target} given`);
123
128
  }
124
129
  if (!(0, model_1.isOwningRelation)(targetField)) {
125
- errors.add(`${relationDescription} not an owning relation`);
130
+ errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} not an owning relation`);
126
131
  return;
127
132
  }
128
133
  if (!targetField.inversedBy) {
129
- return errors.add(`${relationDescription} inverse relation is not set`);
134
+ return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} inverse relation is not set`);
130
135
  }
131
136
  if (targetField.inversedBy !== field.name) {
132
- return errors.add(`${relationDescription} back reference ${entityName}::${field.name} exepcted, ${targetField.target}::${targetField.inversedBy} given`);
137
+ return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} back reference ${entityName}::${field.name} exepcted, ${targetField.target}::${targetField.inversedBy} given`);
133
138
  }
134
139
  if (field.type === schema_1.Model.RelationType.OneHasOne && targetField.type !== schema_1.Model.RelationType.OneHasOne) {
135
- return errors.add(`${relationDescription} "OneHasOne" type expected, "${targetField.type}" given`);
140
+ return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "OneHasOne" type expected, "${targetField.type}" given`);
136
141
  }
137
142
  if (field.type === schema_1.Model.RelationType.OneHasMany && targetField.type !== schema_1.Model.RelationType.ManyHasOne) {
138
- return errors.add(`${relationDescription} "ManyHasOne" type expected, "${targetField.type}" given`);
143
+ return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "ManyHasOne" type expected, "${targetField.type}" given`);
139
144
  }
140
145
  if (field.type === schema_1.Model.RelationType.ManyHasMany && targetField.type !== schema_1.Model.RelationType.ManyHasMany) {
141
- return errors.add(`${relationDescription} "ManyHasMany" type expected, "${targetField.type}" given`);
146
+ return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "ManyHasMany" type expected, "${targetField.type}" given`);
142
147
  }
143
148
  }
144
149
  else {
145
150
  const inversedBy = field.inversedBy;
146
151
  if (targetEntity.view) {
147
152
  if ('joiningColumn' in field) {
148
- return errors.add(`View entity ${targetEntity.name} cannot be referenced from an owning relation. Try switching the owning side.`);
153
+ return errors.add('MODEL_INVALID_VIEW_USAGE', `View entity ${targetEntity.name} cannot be referenced from an owning relation. Try switching the owning side.`);
149
154
  }
150
155
  }
151
156
  if (inversedBy) {
152
157
  const targetField = targetEntity.fields[inversedBy];
153
158
  const relationDescription = `Target relation ${targetEntityName}::${inversedBy}:`;
154
159
  if (!targetField) {
155
- return errors.add(`${relationDescription} not exists`);
160
+ return errors.add('MODEL_UNDEFINED_FIELD', `${relationDescription} not exists`);
156
161
  }
157
162
  if (!isRelation(targetField)) {
158
- return errors.add(`${relationDescription} not a relation`);
163
+ return errors.add('MODEL_RELATION_REQUIRED', `${relationDescription} not a relation`);
159
164
  }
160
165
  if (targetField.target !== entityName) {
161
- return errors.add(`${relationDescription} back reference to entity ${entityName} expected, but ${targetField.target} given`);
166
+ return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} back reference to entity ${entityName} expected, but ${targetField.target} given`);
162
167
  }
163
168
  if (!(0, model_1.isInverseRelation)(targetField)) {
164
- return errors.add(`${relationDescription} not an inverse relation`);
169
+ return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} not an inverse relation`);
165
170
  }
166
171
  if (!targetField.ownedBy) {
167
- return errors.add(`${relationDescription} owning relation is not set`);
172
+ return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} owning relation is not set`);
168
173
  }
169
174
  if (targetField.ownedBy !== field.name) {
170
- return errors.add(`${relationDescription} back reference ${entityName}::${field.name} exepcted, ${targetField.target}::${targetField.ownedBy} given`);
175
+ return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} back reference ${entityName}::${field.name} exepcted, ${targetField.target}::${targetField.ownedBy} given`);
171
176
  }
172
177
  if (field.type === schema_1.Model.RelationType.OneHasOne && targetField.type !== schema_1.Model.RelationType.OneHasOne) {
173
- return errors.add(`${relationDescription} "OneHasOne" type expected, "${targetField.type}" given`);
178
+ return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "OneHasOne" type expected, "${targetField.type}" given`);
174
179
  }
175
180
  if (field.type === schema_1.Model.RelationType.ManyHasOne && targetField.type !== schema_1.Model.RelationType.OneHasMany) {
176
- return errors.add(`${relationDescription} "ManyHasOne" type expected, "${targetField.type}" given`);
181
+ return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "ManyHasOne" type expected, "${targetField.type}" given`);
177
182
  }
178
183
  if (field.type === schema_1.Model.RelationType.ManyHasMany && targetField.type !== schema_1.Model.RelationType.ManyHasMany) {
179
- return errors.add(`${relationDescription} "ManyHasMany" type expected, "${targetField.type}" given`);
184
+ return errors.add('MODEL_INVALID_RELATION_DEFINITION', `${relationDescription} "ManyHasMany" type expected, "${targetField.type}" given`);
180
185
  }
181
186
  }
182
187
  }
183
188
  }
184
189
  validateIdentifier(value, errorBuilder) {
185
190
  if (!value.match(IDENTIFIER_PATTERN)) {
186
- return errorBuilder.add(`${value} must match pattern ${IDENTIFIER_PATTERN.source}`);
191
+ return errorBuilder.add('MODEL_INVALID_IDENTIFIER', `${value} must match pattern ${IDENTIFIER_PATTERN.source}`);
187
192
  }
188
193
  if (RESERVED_WORDS.includes(value)) {
189
- errorBuilder.add(`${value} is reserved word`);
194
+ errorBuilder.add('MODEL_INVALID_IDENTIFIER', `${value} is reserved word`);
190
195
  }
191
196
  }
192
197
  validateCollisions(entities, errorBuilder) {
193
- const tableNames = {};
198
+ const relationNames = {};
194
199
  const aliasedTypes = new Map();
200
+ const entityNames = new Set(entities.map(it => it.name));
195
201
  for (const entity of entities) {
196
- const description = `entity ${entity.name}`;
197
- if (tableNames[entity.tableName]) {
202
+ const description = `table name ${entity.tableName} of entity ${entity.name}`;
203
+ if (relationNames[entity.tableName]) {
198
204
  errorBuilder
199
205
  .for(entity.name)
200
- .add(`Table name ${entity.tableName} of ${description} collides with a table name of ${tableNames[entity.tableName]}`);
206
+ .add('MODEL_NAME_COLLISION', `${description} collides with a ${relationNames[entity.tableName]}`);
201
207
  }
202
208
  else {
203
- tableNames[entity.tableName] = description;
209
+ relationNames[entity.tableName] = description;
210
+ }
211
+ if (entity.name.endsWith('Meta')) {
212
+ const baseName = entity.name.substring(0, entity.name.length - 4);
213
+ if (entityNames.has(baseName)) {
214
+ errorBuilder.for(entity.name)
215
+ .add('MODEL_NAME_COLLISION', `entity ${entity.name} collides with entity ${baseName}, because a GraphQL type with "Meta" suffix is created for every entity`);
216
+ }
204
217
  }
205
218
  }
206
219
  for (const entity of entities) {
207
220
  const entityErrorBuilder = errorBuilder.for(entity.name);
208
221
  (0, model_1.acceptEveryFieldVisitor)(this.model, entity, {
209
- visitManyHasManyOwning: (entity, relation) => {
222
+ visitManyHasManyOwning: ({ entity, relation }) => {
210
223
  const joiningTable = relation.joiningTable;
211
- const description = `relation ${entity.name}::${relation.name}`;
212
- if (tableNames[joiningTable.tableName]) {
224
+ const description = `joining table name ${joiningTable.tableName} of relation ${entity.name}::${relation.name}`;
225
+ if (relationNames[joiningTable.tableName]) {
213
226
  entityErrorBuilder
214
227
  .for(relation.name)
215
- .add(`Joining table name ${joiningTable.tableName} of ${description} collides with a table name of ${tableNames[joiningTable.tableName]}.` +
228
+ .add('MODEL_NAME_COLLISION', `${description} collides with a ${relationNames[joiningTable.tableName]}.` +
216
229
  'Consider using plural for a relation name or change the joining table name using .joiningTable(...) in schema definition.');
217
230
  }
218
231
  else {
219
- tableNames[joiningTable.tableName] = description;
232
+ relationNames[joiningTable.tableName] = description;
220
233
  }
221
234
  },
222
- visitColumn: (entity, column) => {
235
+ visitColumn: ({ entity, column }) => {
223
236
  if (!column.typeAlias) {
224
237
  return;
225
238
  }
226
239
  if (aliasedTypes.has(column.typeAlias) && aliasedTypes.get(column.typeAlias) !== column.type) {
227
240
  errorBuilder
228
241
  .for(column.name)
229
- .add(`Type alias ${column.typeAlias} already exists for base type ${column.type}`);
242
+ .add('MODEL_NAME_COLLISION', `Type alias ${column.typeAlias} already exists for base type ${column.type}`);
230
243
  }
231
244
  aliasedTypes.set(column.typeAlias, column.type);
232
245
  },
@@ -237,6 +250,27 @@ class ModelValidator {
237
250
  visitManyHasOne: () => { },
238
251
  });
239
252
  }
253
+ for (const entity of entities) {
254
+ const entityErrorBuilder = errorBuilder.for(entity.name);
255
+ for (const index of Object.values(entity.indexes)) {
256
+ const description = `index name ${index.name} of entity ${entity.name}`;
257
+ if (relationNames[index.name]) {
258
+ entityErrorBuilder.add('MODEL_NAME_COLLISION', `${description} collides with ${relationNames[index.name]}`);
259
+ }
260
+ else {
261
+ relationNames[index.name] = description;
262
+ }
263
+ }
264
+ for (const unique of Object.values(entity.unique)) {
265
+ const description = `unique index name ${unique.name} of entity ${entity.name}`;
266
+ if (relationNames[unique.name]) {
267
+ entityErrorBuilder.add('MODEL_NAME_COLLISION', `${description} collides with ${relationNames[unique.name]}`);
268
+ }
269
+ else {
270
+ relationNames[unique.name] = description;
271
+ }
272
+ }
273
+ }
240
274
  }
241
275
  }
242
276
  exports.ModelValidator = ModelValidator;