@contember/schema-definition 1.3.6 → 1.4.0-alpha.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 (72) hide show
  1. package/dist/src/createSchema.d.ts +4 -1
  2. package/dist/src/createSchema.d.ts.map +1 -1
  3. package/dist/src/createSchema.js +8 -2
  4. package/dist/src/createSchema.js.map +1 -1
  5. package/dist/src/model/definition/UniqueDefinition.d.ts +4 -2
  6. package/dist/src/model/definition/UniqueDefinition.d.ts.map +1 -1
  7. package/dist/src/model/definition/UniqueDefinition.js +4 -2
  8. package/dist/src/model/definition/UniqueDefinition.js.map +1 -1
  9. package/dist/src/model/definition/context.d.ts +10 -0
  10. package/dist/src/model/definition/context.d.ts.map +1 -0
  11. package/dist/src/model/definition/context.js +3 -0
  12. package/dist/src/model/definition/context.js.map +1 -0
  13. package/dist/src/model/definition/extensions.d.ts +4 -8
  14. package/dist/src/model/definition/extensions.d.ts.map +1 -1
  15. package/dist/src/model/definition/extensions.js.map +1 -1
  16. package/dist/src/model/definition/fieldDefinitions/ColumnDefinition.d.ts +6 -2
  17. package/dist/src/model/definition/fieldDefinitions/ColumnDefinition.d.ts.map +1 -1
  18. package/dist/src/model/definition/fieldDefinitions/ColumnDefinition.js +2 -2
  19. package/dist/src/model/definition/fieldDefinitions/ColumnDefinition.js.map +1 -1
  20. package/dist/src/model/definition/fieldDefinitions/FieldDefinition.d.ts +3 -7
  21. package/dist/src/model/definition/fieldDefinitions/FieldDefinition.d.ts.map +1 -1
  22. package/dist/src/model/definition/fieldDefinitions/FieldDefinition.js.map +1 -1
  23. package/dist/src/model/definition/fieldDefinitions/ManyHasManyDefinition.d.ts +1 -1
  24. package/dist/src/model/definition/fieldDefinitions/ManyHasManyDefinition.d.ts.map +1 -1
  25. package/dist/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js +2 -1
  26. package/dist/src/model/definition/fieldDefinitions/ManyHasManyDefinition.js.map +1 -1
  27. package/dist/src/model/definition/fieldDefinitions/ManyHasOneDefinition.d.ts +3 -3
  28. package/dist/src/model/definition/fieldDefinitions/ManyHasOneDefinition.d.ts.map +1 -1
  29. package/dist/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js +6 -1
  30. package/dist/src/model/definition/fieldDefinitions/ManyHasOneDefinition.js.map +1 -1
  31. package/dist/src/model/definition/fieldDefinitions/OneHasOneDefinition.d.ts +2 -1
  32. package/dist/src/model/definition/fieldDefinitions/OneHasOneDefinition.d.ts.map +1 -1
  33. package/dist/src/model/definition/fieldDefinitions/OneHasOneDefinition.js +6 -1
  34. package/dist/src/model/definition/fieldDefinitions/OneHasOneDefinition.js.map +1 -1
  35. package/dist/src/model/definition/index.d.ts +4 -1
  36. package/dist/src/model/definition/index.d.ts.map +1 -1
  37. package/dist/src/model/definition/index.js +2 -2
  38. package/dist/src/model/definition/index.js.map +1 -1
  39. package/dist/src/model/definition/internal/SchemaBuilder.d.ts +3 -1
  40. package/dist/src/model/definition/internal/SchemaBuilder.d.ts.map +1 -1
  41. package/dist/src/model/definition/internal/SchemaBuilder.js +6 -2
  42. package/dist/src/model/definition/internal/SchemaBuilder.js.map +1 -1
  43. package/dist/src/presets.d.ts +1 -0
  44. package/dist/src/presets.d.ts.map +1 -1
  45. package/dist/src/presets.js +10 -0
  46. package/dist/src/presets.js.map +1 -1
  47. package/dist/src/strict.d.ts +22 -0
  48. package/dist/src/strict.d.ts.map +1 -0
  49. package/dist/src/strict.js +28 -0
  50. package/dist/src/strict.js.map +1 -0
  51. package/dist/src/tsconfig.tsbuildinfo +1 -1
  52. package/dist/tests/cases/unit/createSchema.test.js +25 -0
  53. package/dist/tests/cases/unit/createSchema.test.js.map +1 -1
  54. package/dist/tests/cases/unit/extendEntity.test.js +2 -4
  55. package/dist/tests/cases/unit/extendEntity.test.js.map +1 -1
  56. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  57. package/package.json +3 -3
  58. package/src/createSchema.ts +13 -2
  59. package/src/model/definition/UniqueDefinition.ts +11 -5
  60. package/src/model/definition/context.ts +10 -0
  61. package/src/model/definition/extensions.ts +10 -12
  62. package/src/model/definition/fieldDefinitions/ColumnDefinition.ts +3 -3
  63. package/src/model/definition/fieldDefinitions/FieldDefinition.ts +8 -9
  64. package/src/model/definition/fieldDefinitions/ManyHasManyDefinition.ts +3 -1
  65. package/src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts +9 -3
  66. package/src/model/definition/fieldDefinitions/OneHasOneDefinition.ts +8 -1
  67. package/src/model/definition/index.ts +8 -2
  68. package/src/model/definition/internal/SchemaBuilder.ts +8 -2
  69. package/src/presets.ts +13 -0
  70. package/src/strict.ts +40 -0
  71. package/tests/cases/unit/createSchema.test.ts +23 -0
  72. package/tests/cases/unit/extendEntity.test.ts +2 -4
@@ -1,3 +1,6 @@
1
1
  import { Schema } from '@contember/schema';
2
- export declare const createSchema: (definitions: Record<string, any>, modifyCallback?: ((schema: Schema) => Schema) | undefined) => Schema;
2
+ import { StrictOptions } from './strict';
3
+ export declare const createSchema: (definitions: Record<string, any>, modifyCallback?: ((schema: Schema) => Schema) | undefined, options?: {
4
+ strict?: boolean | StrictOptions;
5
+ }) => Schema;
3
6
  //# sourceMappingURL=createSchema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createSchema.d.ts","sourceRoot":"","sources":["../../src/createSchema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG1C,eAAO,MAAM,YAAY,gBAAiB,OAAO,MAAM,EAAE,GAAG,CAAC,6BAA4B,MAAM,KAAK,MAAM,kBAAG,MAO5G,CAAA"}
1
+ {"version":3,"file":"createSchema.d.ts","sourceRoot":"","sources":["../../src/createSchema.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAa,aAAa,EAA6B,MAAM,UAAU,CAAA;AAE9E,eAAO,MAAM,YAAY,gBAAiB,OAAO,MAAM,EAAE,GAAG,CAAC,6BAA4B,MAAM,KAAK,MAAM,yBAAY;IACrH,MAAM,CAAC,EAAE,OAAO,GAAG,aAAa,CAAA;CAChC,KAAG,MAeH,CAAA"}
@@ -6,12 +6,18 @@ const InputValidation = require("./validation");
6
6
  const AclDefinition = require("./acl/definition");
7
7
  const ActionsDefinition = require("./actions/definition");
8
8
  const schema_utils_1 = require("@contember/schema-utils");
9
- const createSchema = (definitions, modifyCallback) => {
10
- const model = model_1.SchemaDefinition.createModel(definitions);
9
+ const strict_1 = require("./strict");
10
+ const createSchema = (definitions, modifyCallback, options) => {
11
+ const strictOptions = (options === null || options === void 0 ? void 0 : options.strict) === true ? strict_1.allStrict : ((options === null || options === void 0 ? void 0 : options.strict) || {});
12
+ const strictDefinitionValidator = new strict_1.StrictDefinitionValidator(strictOptions);
13
+ const model = model_1.SchemaDefinition.createModel(definitions, { strictDefinitionValidator: strictDefinitionValidator });
11
14
  const validation = InputValidation.parseDefinition(definitions);
12
15
  const acl = AclDefinition.createAcl(definitions, model);
13
16
  const actions = ActionsDefinition.createActions(definitions);
14
17
  const schema = { ...schema_utils_1.emptySchema, model, validation, acl, actions };
18
+ if (strictDefinitionValidator.warnings.length > 0) {
19
+ throw `Strict schema validation failed: \n${strictDefinitionValidator.warnings.map(it => `- ${it.message}`).join('\n')}`;
20
+ }
15
21
  return modifyCallback ? modifyCallback(schema) : schema;
16
22
  };
17
23
  exports.createSchema = createSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"createSchema.js","sourceRoot":"","sources":["../../src/createSchema.ts"],"names":[],"mappings":";;;AAAA,mCAA0C;AAC1C,gDAA+C;AAC/C,kDAAiD;AACjD,0DAAyD;AAEzD,0DAAqD;AAE9C,MAAM,YAAY,GAAG,CAAC,WAAgC,EAAE,cAA2C,EAAU,EAAE;IACrH,MAAM,KAAK,GAAG,wBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;IACvD,MAAM,UAAU,GAAG,eAAe,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;IAC/D,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IACvD,MAAM,OAAO,GAAG,iBAAiB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;IAC5D,MAAM,MAAM,GAAG,EAAE,GAAG,0BAAW,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,CAAA;IAClE,OAAO,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACxD,CAAC,CAAA;AAPY,QAAA,YAAY,gBAOxB"}
1
+ {"version":3,"file":"createSchema.js","sourceRoot":"","sources":["../../src/createSchema.ts"],"names":[],"mappings":";;;AAAA,mCAA0C;AAC1C,gDAA+C;AAC/C,kDAAiD;AACjD,0DAAyD;AAEzD,0DAAqD;AACrD,qCAA8E;AAEvE,MAAM,YAAY,GAAG,CAAC,WAAgC,EAAE,cAA2C,EAAE,OAE3G,EAAU,EAAE;IACZ,MAAM,aAAa,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,MAAK,IAAI,CAAC,CAAC,CAAC,kBAAS,CAAC,CAAC,CAAC,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,KAAI,EAAE,CAAC,CAAA;IACpF,MAAM,yBAAyB,GAAG,IAAI,kCAAyB,CAAC,aAAa,CAAC,CAAA;IAE9E,MAAM,KAAK,GAAG,wBAAgB,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,CAAC,CAAA;IACjH,MAAM,UAAU,GAAG,eAAe,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;IAC/D,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IACvD,MAAM,OAAO,GAAG,iBAAiB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;IAC5D,MAAM,MAAM,GAAG,EAAE,GAAG,0BAAW,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,CAAA;IAElE,IAAI,yBAAyB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;QAClD,MAAM,sCAAsC,yBAAyB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;KACxH;IAED,OAAO,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACxD,CAAC,CAAA;AAjBY,QAAA,YAAY,gBAiBxB"}
@@ -1,7 +1,9 @@
1
1
  import { DecoratorFunction } from '../../utils';
2
+ import { Model } from '@contember/schema';
2
3
  export type UniqueOptions<T> = {
3
- fields: (keyof T)[];
4
+ fields: (keyof T & string)[];
5
+ timing?: Model.ConstraintTiming;
4
6
  };
5
7
  export declare function Unique<T>(options: UniqueOptions<T>): DecoratorFunction<T>;
6
- export declare function Unique<T>(...fields: (keyof T)[]): DecoratorFunction<T>;
8
+ export declare function Unique<T>(...fields: (keyof T & string)[]): DecoratorFunction<T>;
7
9
  //# sourceMappingURL=UniqueDefinition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UniqueDefinition.d.ts","sourceRoot":"","sources":["../../../../src/model/definition/UniqueDefinition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAAE,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAA;CAAE,CAAA;AACtD,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAC1E,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"UniqueDefinition.d.ts","sourceRoot":"","sources":["../../../../src/model/definition/UniqueDefinition.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;IAC9B,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAA;IAC5B,MAAM,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAA;CAC/B,CAAA;AACD,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAC1E,wBAAgB,MAAM,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAA"}
@@ -4,12 +4,14 @@ exports.Unique = void 0;
4
4
  const extensions_1 = require("./extensions");
5
5
  function Unique(options, ...args) {
6
6
  return (0, extensions_1.extendEntity)(({ entity }) => {
7
- const fields = (typeof options !== 'object' ? [options, ...args] : options.fields);
7
+ const unique = typeof options !== 'object'
8
+ ? { fields: [options, ...args] }
9
+ : options;
8
10
  return {
9
11
  ...entity,
10
12
  unique: [
11
13
  ...entity.unique,
12
- { fields },
14
+ unique,
13
15
  ],
14
16
  };
15
17
  });
@@ -1 +1 @@
1
- {"version":3,"file":"UniqueDefinition.js","sourceRoot":"","sources":["../../../../src/model/definition/UniqueDefinition.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAM3C,SAAgB,MAAM,CAAI,OAAmC,EAAE,GAAG,IAAiB;IAClF,OAAO,IAAA,yBAAY,EAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAa,CAAA;QAC9F,OAAO;YACN,GAAG,MAAM;YACT,MAAM,EAAE;gBACP,GAAG,MAAM,CAAC,MAAM;gBAChB,EAAG,MAAM,EAAE;aACX;SACD,CAAA;IACF,CAAC,CAAC,CAAA;AACH,CAAC;AAXD,wBAWC"}
1
+ {"version":3,"file":"UniqueDefinition.js","sourceRoot":"","sources":["../../../../src/model/definition/UniqueDefinition.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAU3C,SAAgB,MAAM,CAAI,OAA4C,EAAE,GAAG,IAA0B;IACpG,OAAO,IAAA,yBAAY,EAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;QAClC,MAAM,MAAM,GAAG,OAAO,OAAO,KAAK,QAAQ;YACzC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE;YAChC,CAAC,CAAC,OAAO,CAAA;QACV,OAAO;YACN,GAAG,MAAM;YACT,MAAM,EAAE;gBACP,GAAG,MAAM,CAAC,MAAM;gBAChB,MAAM;aACN;SACD,CAAA;IACF,CAAC,CAAC,CAAA;AACH,CAAC;AAbD,wBAaC"}
@@ -0,0 +1,10 @@
1
+ import { EntityRegistry, EnumRegistry } from './internal';
2
+ import { StrictDefinitionValidator } from '../../strict';
3
+ import { NamingConventions } from '@contember/schema-utils';
4
+ export type CommonContext = {
5
+ conventions: NamingConventions;
6
+ enumRegistry: EnumRegistry;
7
+ entityRegistry: EntityRegistry;
8
+ strictDefinitionValidator: StrictDefinitionValidator;
9
+ };
10
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/model/definition/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D,MAAM,MAAM,aAAa,GAAG;IAC3B,WAAW,EAAE,iBAAiB,CAAA;IAC9B,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,cAAc,CAAA;IAC9B,yBAAyB,EAAE,yBAAyB,CAAA;CACpD,CAAA"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../src/model/definition/context.ts"],"names":[],"mappings":""}
@@ -1,19 +1,15 @@
1
1
  import { Model } from '@contember/schema';
2
2
  import { EntityConstructor, FieldsDefinition } from './types';
3
- import { EntityRegistry, EnumRegistry } from './internal';
4
- import { NamingConventions } from '@contember/schema-utils';
3
+ import { EntityRegistry } from './internal';
5
4
  import { DecoratorFunction } from '../../utils';
6
- interface EntityExtensionArgs {
5
+ import { CommonContext } from './context';
6
+ export type EntityExtensionArgs = {
7
7
  entity: Model.Entity;
8
8
  definition: FieldsDefinition;
9
- conventions: NamingConventions;
10
- enumRegistry: EnumRegistry;
11
- entityRegistry: EntityRegistry;
12
9
  /** @deprecated use entityRegistry */
13
10
  registry: EntityRegistry;
14
- }
11
+ } & CommonContext;
15
12
  export type EntityExtension = (args: EntityExtensionArgs) => Model.Entity;
16
13
  export declare const extendEntity: <T>(extension: EntityExtension) => DecoratorFunction<T>;
17
14
  export declare const applyEntityExtensions: (cls: EntityConstructor, args: EntityExtensionArgs) => Model.Entity;
18
- export {};
19
15
  //# sourceMappingURL=extensions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../../../src/model/definition/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAuB,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpE,UAAU,mBAAmB;IAC5B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAA;IACpB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,WAAW,EAAE,iBAAiB,CAAA;IAC9B,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,cAAc,CAAA;IAE9B,qCAAqC;IACrC,QAAQ,EAAE,cAAc,CAAA;CACxB;AAID,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,mBAAmB,KAAK,KAAK,CAAC,MAAM,CAAA;AACzE,eAAO,MAAM,YAAY,iBAAkB,eAAe,yBAIzD,CAAA;AAED,eAAO,MAAM,qBAAqB,QAC5B,iBAAiB,QAChB,mBAAmB,KACvB,MAAM,MAIP,CAAA"}
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../../../src/model/definition/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAuB,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,MAAM,mBAAmB,GAC5B;IACD,MAAM,EAAE,KAAK,CAAC,MAAM,CAAA;IACpB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,qCAAqC;IACrC,QAAQ,EAAE,cAAc,CAAA;CACxB,GACC,aAAa,CAAA;AAIhB,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,mBAAmB,KAAK,KAAK,CAAC,MAAM,CAAA;AACzE,eAAO,MAAM,YAAY,iBAAkB,eAAe,yBAIzD,CAAA;AAED,eAAO,MAAM,qBAAqB,QAC5B,iBAAiB,QAChB,mBAAmB,KACvB,MAAM,MAIP,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../../src/model/definition/extensions.ts"],"names":[],"mappings":";;;AAIA,uCAAoE;AAapE,MAAM,qBAAqB,GAAG,IAAA,2BAAmB,EAAoB,EAAE,CAAC,CAAA;AAGjE,MAAM,YAAY,GAAG,CAAI,SAA0B,EAAwB,EAAE;IACnF,OAAO,UAAU,GAAsB;QACtC,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;IACtE,CAAC,CAAA;AACF,CAAC,CAAA;AAJY,QAAA,YAAY,gBAIxB;AAEM,MAAM,qBAAqB,GAAG,CACpC,GAAsB,EACtB,IAAyB,EACV,EAAE,CACjB,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CACpC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,EACzC,IAAI,CAAC,MAAM,CACX,CAAA;AAPW,QAAA,qBAAqB,yBAOhC"}
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../../../src/model/definition/extensions.ts"],"names":[],"mappings":";;;AAGA,uCAAoE;AAYpE,MAAM,qBAAqB,GAAG,IAAA,2BAAmB,EAAoB,EAAE,CAAC,CAAA;AAGjE,MAAM,YAAY,GAAG,CAAI,SAA0B,EAAwB,EAAE;IACnF,OAAO,UAAU,GAAsB;QACtC,qBAAqB,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;IACtE,CAAC,CAAA;AACF,CAAC,CAAA;AAJY,QAAA,YAAY,gBAIxB;AAEM,MAAM,qBAAqB,GAAG,CACpC,GAAsB,EACtB,IAAyB,EACV,EAAE,CACjB,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CACpC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,EACzC,IAAI,CAAC,MAAM,CACX,CAAA;AAPW,QAAA,qBAAqB,yBAOhC"}
@@ -10,7 +10,9 @@ export declare class ColumnDefinition extends FieldDefinition<ColumnDefinitionOp
10
10
  nullable(): Interface<ColumnDefinition>;
11
11
  notNull(): Interface<ColumnDefinition>;
12
12
  sequence(options?: Partial<Model.ColumnTypeDefinition['sequence']>): Interface<ColumnDefinition>;
13
- unique(): Interface<ColumnDefinition>;
13
+ unique(options?: {
14
+ timing?: Model.ConstraintTiming;
15
+ }): Interface<ColumnDefinition>;
14
16
  default(value: ColumnDefinition['options']['default']): Interface<ColumnDefinition>;
15
17
  typeAlias(alias: string): Interface<ColumnDefinition>;
16
18
  createField({ name, conventions, enumRegistry, entityName }: CreateFieldContext): Model.AnyField;
@@ -33,7 +35,9 @@ export type ColumnDefinitionOptions = {
33
35
  columnType?: string;
34
36
  typeAlias?: string;
35
37
  columnName?: string;
36
- unique?: boolean;
38
+ unique?: {
39
+ timing?: Model.ConstraintTiming;
40
+ };
37
41
  nullable?: boolean;
38
42
  default?: Model.ColumnTypeDefinition['default'];
39
43
  sequence?: Model.ColumnTypeDefinition['sequence'];
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnDefinition.d.ts","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/ColumnDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGlD,qBAAa,gBAAiB,SAAQ,eAAe,CAAC,uBAAuB,CAAC;IAC7E,IAAI,qBAA8B;WAEpB,MAAM,CACnB,IAAI,EAAE,KAAK,CAAC,UAAU,EACtB,WAAW,GAAE,iBAAsB,GACjC,gBAAgB;IAQZ,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAI3D,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAI3D,QAAQ,IAAI,SAAS,CAAC,gBAAgB,CAAC;IAIvC,OAAO,IAAI,SAAS,CAAC,gBAAgB,CAAC;IAItC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAIhG,MAAM,IAAI,SAAS,CAAC,gBAAgB,CAAC;IAIrC,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAInF,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAI5D,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,QAAQ;CAiChG;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,WAAW,GAAE,iBAAsB,oBAEjF;AAED,wBAAgB,YAAY,qBAE3B;AAED,wBAAgB,SAAS,qBAExB;AAED,wBAAgB,UAAU,qBAEzB;AAED,wBAAgB,YAAY,qBAE3B;AAED,wBAAgB,UAAU,qBAEzB;AAED,wBAAgB,cAAc,qBAE7B;AAED,wBAAgB,UAAU,qBAEzB;AAED,wBAAgB,UAAU,CAAC,cAAc,EAAE,cAAc,oBAExD;AAED,wBAAgB,UAAU,qBAEzB;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAA;CAC/B,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAA;IAC/C,QAAQ,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAA;CACjD,GAAG,iBAAiB,CAAA"}
1
+ {"version":3,"file":"ColumnDefinition.d.ts","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/ColumnDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGlD,qBAAa,gBAAiB,SAAQ,eAAe,CAAC,uBAAuB,CAAC;IAC7E,IAAI,qBAA8B;WAEpB,MAAM,CACnB,IAAI,EAAE,KAAK,CAAC,UAAU,EACtB,WAAW,GAAE,iBAAsB,GACjC,gBAAgB;IAQZ,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAI3D,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAI3D,QAAQ,IAAI,SAAS,CAAC,gBAAgB,CAAC;IAIvC,OAAO,IAAI,SAAS,CAAC,gBAAgB,CAAC;IAItC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAIhG,MAAM,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAA;KAAO,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAItF,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAInF,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAI5D,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,QAAQ;CAiChG;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE,WAAW,GAAE,iBAAsB,oBAEjF;AAED,wBAAgB,YAAY,qBAE3B;AAED,wBAAgB,SAAS,qBAExB;AAED,wBAAgB,UAAU,qBAEzB;AAED,wBAAgB,YAAY,qBAE3B;AAED,wBAAgB,UAAU,qBAEzB;AAED,wBAAgB,cAAc,qBAE7B;AAED,wBAAgB,UAAU,qBAEzB;AAED,wBAAgB,UAAU,CAAC,cAAc,EAAE,cAAc,oBAExD;AAED,wBAAgB,UAAU,qBAEzB;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC/B,cAAc,CAAC,EAAE,cAAc,CAAA;CAC/B,CAAA;AACD,MAAM,MAAM,uBAAuB,GAAG;IACrC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAA;KAAE,CAAA;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAA;IAC/C,QAAQ,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAA;CACjD,GAAG,iBAAiB,CAAA"}
@@ -30,8 +30,8 @@ class ColumnDefinition extends FieldDefinition_1.FieldDefinition {
30
30
  sequence(options) {
31
31
  return this.withOption('sequence', { precedence: 'BY DEFAULT', ...options });
32
32
  }
33
- unique() {
34
- return this.withOption('unique', true);
33
+ unique(options = {}) {
34
+ return this.withOption('unique', options);
35
35
  }
36
36
  default(value) {
37
37
  return this.withOption('default', value);
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnDefinition.js","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/ColumnDefinition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ColumnDefinition.js","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/ColumnDefinition.ts"],"names":[],"mappings":";;;AAAA,8CAAyC;AAEzC,uDAAuE;AAEvE,0DAAkE;AAElE,MAAa,gBAAiB,SAAQ,iCAAwC;IAA9E;;QACC,SAAI,GAAG,kBAA2B,CAAA;IA8EnC,CAAC;IA5EO,MAAM,CAAC,MAAM,CACnB,IAAsB,EACtB,cAAiC,EAAE;QAEnC,OAAO,IAAI,gBAAgB,CAAC;YAC3B,IAAI,EAAE,IAAI;YACV,GAAG,WAAW;SACd,CAAC,CAAA;IACH,CAAC;IAGM,UAAU,CAAC,UAAkB;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACjD,CAAC;IAEM,UAAU,CAAC,UAAkB;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACjD,CAAC;IAEM,QAAQ;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IACzC,CAAC;IAEM,OAAO;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAC1C,CAAC;IAEM,QAAQ,CAAC,OAAyD;QACxE,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;IAC7E,CAAC;IAEM,MAAM,CAAC,UAA+C,EAAE;QAC9D,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC;IAEM,OAAO,CAAC,KAA6C;QAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IACzC,CAAC;IAEM,SAAS,CAAC,KAAa;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC;IAED,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAsB;QAC9E,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAA;QAC3H,MAAM,MAAM,GAAG;YACd,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,UAAU,IAAI,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC;YACzD,QAAQ,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;YAClD,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAA;QACD,IAAI,IAAI,KAAK,cAAK,CAAC,UAAU,CAAC,IAAI,EAAE;YACnC,IAAI,SAAS,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;aACvE;YACD,IAAI,QAAgB,CAAA;YACpB,IAAI,CAAC,cAAc,EAAE;gBACpB,MAAM,IAAI,KAAK,EAAE,CAAA;aACjB;YACD,IAAI,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;gBACrC,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;aAC/C;iBAAM;gBACN,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAC9E,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;aAC/C;YAED,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAA;SACtD;QACD,OAAO;YACN,GAAG,MAAM;YACT,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,UAAU,IAAI,IAAA,uCAAwB,EAAC,IAAI,CAAC;YACxD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjD,CAAA;IACF,CAAC;CACD;AA/ED,4CA+EC;AAED,SAAgB,MAAM,CAAC,IAAsB,EAAE,cAAiC,EAAE;IACjF,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;AAClD,CAAC;AAFD,wBAEC;AAED,SAAgB,YAAY;IAC3B,OAAO,MAAM,CAAC,cAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AACvC,CAAC;AAFD,oCAEC;AAED,SAAgB,SAAS;IACxB,OAAO,MAAM,CAAC,cAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AACpC,CAAC;AAFD,8BAEC;AAED,SAAgB,UAAU;IACzB,OAAO,MAAM,CAAC,cAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AACrC,CAAC;AAFD,gCAEC;AAED,SAAgB,YAAY;IAC3B,OAAO,MAAM,CAAC,cAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AACvC,CAAC;AAFD,oCAEC;AAED,SAAgB,UAAU;IACzB,OAAO,MAAM,CAAC,cAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AACrC,CAAC;AAFD,gCAEC;AAED,SAAgB,cAAc;IAC7B,OAAO,MAAM,CAAC,cAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AACzC,CAAC;AAFD,wCAEC;AAED,SAAgB,UAAU;IACzB,OAAO,MAAM,CAAC,cAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AACrC,CAAC;AAFD,gCAEC;AAED,SAAgB,UAAU,CAAC,cAA8B;IACxD,OAAO,MAAM,CAAC,cAAK,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,CAAC,CAAA;AACzD,CAAC;AAFD,gCAEC;AAED,SAAgB,UAAU;IACzB,OAAO,MAAM,CAAC,cAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AACrC,CAAC;AAFD,gCAEC"}
@@ -1,6 +1,5 @@
1
1
  import { Model } from '@contember/schema';
2
- import { NamingConventions } from '@contember/schema-utils';
3
- import { EntityRegistry, EnumRegistry } from '../internal';
2
+ import { CommonContext } from '../context';
4
3
  export declare abstract class FieldDefinition<O> {
5
4
  readonly options: O;
6
5
  constructor(options: O);
@@ -9,13 +8,10 @@ export declare abstract class FieldDefinition<O> {
9
8
  };
10
9
  abstract createField(context: CreateFieldContext): Model.AnyField;
11
10
  }
12
- export interface CreateFieldContext {
11
+ export type CreateFieldContext = {
13
12
  name: string;
14
13
  entityName: string;
15
- conventions: NamingConventions;
16
- enumRegistry: EnumRegistry;
17
- entityRegistry: EntityRegistry;
18
- }
14
+ } & CommonContext;
19
15
  export type Map = {
20
16
  [name: string]: FieldDefinition<any>;
21
17
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FieldDefinition.d.ts","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/FieldDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1D,8BAAsB,eAAe,CAAC,CAAC;aACV,OAAO,EAAE,CAAC;gBAAV,OAAO,EAAE,CAAC;IAEtC,SAAS,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;SAAG,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;KAAE;IAIvG,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,KAAK,CAAC,QAAQ;CACjE;AAED,MAAM,WAAW,kBAAkB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,iBAAiB,CAAA;IAC9B,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,cAAc,CAAA;CAC9B;AACD,MAAM,MAAM,GAAG,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;CAAE,CAAA"}
1
+ {"version":3,"file":"FieldDefinition.d.ts","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/FieldDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,8BAAsB,eAAe,CAAC,CAAC;aACV,OAAO,EAAE,CAAC;gBAAV,OAAO,EAAE,CAAC;IAEtC,SAAS,CAAC,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG;SAAG,CAAC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;KAAE;IAIvG,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,KAAK,CAAC,QAAQ;CACjE;AAED,MAAM,MAAM,kBAAkB,GAC1B;IACF,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;CAClB,GACC,aAAa,CAAA;AAEhB,MAAM,MAAM,GAAG,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;CAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"FieldDefinition.js","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/FieldDefinition.ts"],"names":[],"mappings":";;;AAIA,MAAsB,eAAe;IACpC,YAA4B,OAAU;QAAV,YAAO,GAAP,OAAO,CAAG;IAAG,CAAC;IAEhC,UAAU,CAA+B,GAAM,EAAE,KAAW;QACrE,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC/D,CAAC;CAGD;AARD,0CAQC"}
1
+ {"version":3,"file":"FieldDefinition.js","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/FieldDefinition.ts"],"names":[],"mappings":";;;AAGA,MAAsB,eAAe;IACpC,YAA4B,OAAU;QAAV,YAAO,GAAP,OAAO,CAAG;IAAG,CAAC;IAEhC,UAAU,CAA+B,GAAM,EAAE,KAAW;QACrE,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC/D,CAAC;CAGD;AARD,0CAQC"}
@@ -6,7 +6,7 @@ export declare class ManyHasManyDefinitionImpl extends FieldDefinition<ManyHasMa
6
6
  inversedBy(inversedBy: string): Interface<ManyHasManyDefinition>;
7
7
  joiningTable(joiningTable: Partial<Model.JoiningTable>): Interface<ManyHasManyDefinition>;
8
8
  orderBy(field: string | string[], direction?: Model.OrderDirection | `${Model.OrderDirection}`): Interface<ManyHasManyDefinition>;
9
- createField({ name, conventions, entityName, entityRegistry }: CreateFieldContext): Model.AnyField;
9
+ createField({ name, conventions, entityName, entityRegistry, strictDefinitionValidator }: CreateFieldContext): Model.AnyField;
10
10
  }
11
11
  export type ManyHasManyDefinition = Interface<ManyHasManyDefinitionImpl>;
12
12
  export declare function manyHasMany(target: EntityConstructor, inversedBy?: string): ManyHasManyDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"ManyHasManyDefinition.d.ts","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/ManyHasManyDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEvE,qBAAa,yBAA0B,SAAQ,eAAe,CAAC,4BAA4B,CAAC;IAC3F,IAAI,0BAAmC;IAEvC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC;IAIhE,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,qBAAqB,CAAC;IAIzF,OAAO,CACN,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,SAAS,GAAE,KAAK,CAAC,cAAc,GAAG,GAAG,KAAK,CAAC,cAAc,EAA6B,GACpF,SAAS,CAAC,qBAAqB,CAAC;IAKnC,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,QAAQ;CAyBlG;AAED,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC,yBAAyB,CAAC,CAAA;AAExE,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAEjG;AAED,MAAM,MAAM,4BAA4B,GAAG;IAC1C,MAAM,EAAE,cAAc,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC1C,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;CACzB,CAAA"}
1
+ {"version":3,"file":"ManyHasManyDefinition.d.ts","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/ManyHasManyDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEvE,qBAAa,yBAA0B,SAAQ,eAAe,CAAC,4BAA4B,CAAC;IAC3F,IAAI,0BAAmC;IAEvC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,qBAAqB,CAAC;IAIhE,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,qBAAqB,CAAC;IAIzF,OAAO,CACN,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EACxB,SAAS,GAAE,KAAK,CAAC,cAAc,GAAG,GAAG,KAAK,CAAC,cAAc,EAA6B,GACpF,SAAS,CAAC,qBAAqB,CAAC;IAKnC,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,yBAAyB,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,QAAQ;CA2B7H;AAED,MAAM,MAAM,qBAAqB,GAAG,SAAS,CAAC,yBAAyB,CAAC,CAAA;AAExE,wBAAgB,WAAW,CAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAEjG;AAED,MAAM,MAAM,4BAA4B,GAAG;IAC1C,MAAM,EAAE,cAAc,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC1C,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;CACzB,CAAA"}
@@ -18,7 +18,7 @@ class ManyHasManyDefinitionImpl extends FieldDefinition_1.FieldDefinition {
18
18
  const path = typeof field === 'string' ? [field] : field;
19
19
  return this.withOption('orderBy', [...(this.options.orderBy || []), { path, direction: direction }]);
20
20
  }
21
- createField({ name, conventions, entityName, entityRegistry }) {
21
+ createField({ name, conventions, entityName, entityRegistry, strictDefinitionValidator }) {
22
22
  const options = this.options;
23
23
  const columnNames = conventions.getJoiningTableColumnNames(entityName, name, entityRegistry.getName(options.target), options.inversedBy);
24
24
  const joiningTable = {
@@ -28,6 +28,7 @@ class ManyHasManyDefinitionImpl extends FieldDefinition_1.FieldDefinition {
28
28
  eventLog: { enabled: true },
29
29
  ...options.joiningTable,
30
30
  };
31
+ strictDefinitionValidator.validateInverseSide(entityName, name, options);
31
32
  return {
32
33
  type: schema_1.Model.RelationType.ManyHasMany,
33
34
  name,
@@ -1 +1 @@
1
- {"version":3,"file":"ManyHasManyDefinition.js","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/ManyHasManyDefinition.ts"],"names":[],"mappings":";;;AAAA,8CAAyC;AAEzC,uDAAuE;AAEvE,MAAa,yBAA0B,SAAQ,iCAA6C;IAA5F;;QACC,SAAI,GAAG,uBAAgC,CAAA;IA2CxC,CAAC;IAzCA,UAAU,CAAC,UAAkB;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACjD,CAAC;IAED,YAAY,CAAC,YAAyC;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IACrD,CAAC;IAED,OAAO,CACN,KAAwB,EACxB,YAA8D,cAAK,CAAC,cAAc,CAAC,GAAG;QAEtF,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAiC,EAAE,CAAC,CAAC,CAAA;IAC7H,CAAC;IAED,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAsB;QAChF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,MAAM,WAAW,GAAG,WAAW,CAAC,0BAA0B,CACzD,UAAU,EACV,IAAI,EACJ,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EACtC,OAAO,CAAC,UAAU,CAClB,CAAA;QACD,MAAM,YAAY,GAAG;YACpB,SAAS,EAAE,WAAW,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC;YAC5D,aAAa,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAK,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC/E,oBAAoB,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAK,CAAC,QAAQ,CAAC,OAAO,EAAE;YACtF,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3B,GAAG,OAAO,CAAC,YAAY;SACvB,CAAA;QAED,OAAO;YACN,IAAI,EAAE,cAAK,CAAC,YAAY,CAAC,WAAW;YACpC,IAAI;YACJ,GAAG,CAAC,OAAO,OAAO,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YACxF,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9C,YAAY,EAAE,YAAY;YAC1B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAA;IACF,CAAC;CACD;AA5CD,8DA4CC;AAID,SAAgB,WAAW,CAAC,MAAyB,EAAE,UAAmB;IACzE,OAAO,IAAI,yBAAyB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;AAC7D,CAAC;AAFD,kCAEC"}
1
+ {"version":3,"file":"ManyHasManyDefinition.js","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/ManyHasManyDefinition.ts"],"names":[],"mappings":";;;AAAA,8CAAyC;AAEzC,uDAAuE;AAEvE,MAAa,yBAA0B,SAAQ,iCAA6C;IAA5F;;QACC,SAAI,GAAG,uBAAgC,CAAA;IA6CxC,CAAC;IA3CA,UAAU,CAAC,UAAkB;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACjD,CAAC;IAED,YAAY,CAAC,YAAyC;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IACrD,CAAC;IAED,OAAO,CACN,KAAwB,EACxB,YAA8D,cAAK,CAAC,cAAc,CAAC,GAAG;QAEtF,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAiC,EAAE,CAAC,CAAC,CAAA;IAC7H,CAAC;IAED,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,yBAAyB,EAAsB;QAC3G,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,MAAM,WAAW,GAAG,WAAW,CAAC,0BAA0B,CACzD,UAAU,EACV,IAAI,EACJ,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EACtC,OAAO,CAAC,UAAU,CAClB,CAAA;QACD,MAAM,YAAY,GAAG;YACpB,SAAS,EAAE,WAAW,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC;YAC5D,aAAa,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAK,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC/E,oBAAoB,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAK,CAAC,QAAQ,CAAC,OAAO,EAAE;YACtF,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;YAC3B,GAAG,OAAO,CAAC,YAAY;SACvB,CAAA;QAED,yBAAyB,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAExE,OAAO;YACN,IAAI,EAAE,cAAK,CAAC,YAAY,CAAC,WAAW;YACpC,IAAI;YACJ,GAAG,CAAC,OAAO,OAAO,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YACxF,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9C,YAAY,EAAE,YAAY;YAC1B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAA;IACF,CAAC;CACD;AA9CD,8DA8CC;AAID,SAAgB,WAAW,CAAC,MAAyB,EAAE,UAAmB;IACzE,OAAO,IAAI,yBAAyB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;AAC7D,CAAC;AAFD,kCAEC"}
@@ -1,7 +1,6 @@
1
- import { EntityConstructor, Interface } from '../types';
1
+ import { EntityConstructor, Interface, RelationTarget } from '../types';
2
2
  import { Model } from '@contember/schema';
3
3
  import { CreateFieldContext, FieldDefinition } from './FieldDefinition';
4
- import { RelationTarget } from '../types';
5
4
  export declare class ManyHasOneDefinitionImpl extends FieldDefinition<ManyHasOneDefinitionOptions> {
6
5
  type: "ManyHasOneDefinition";
7
6
  inversedBy(inversedBy: string): Interface<ManyHasOneDefinition>;
@@ -9,8 +8,9 @@ export declare class ManyHasOneDefinitionImpl extends FieldDefinition<ManyHasOne
9
8
  onDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): Interface<ManyHasOneDefinition>;
10
9
  cascadeOnDelete(): Interface<ManyHasOneDefinition>;
11
10
  setNullOnDelete(): Interface<ManyHasOneDefinition>;
11
+ restrictOnDelete(): Interface<ManyHasOneDefinition>;
12
12
  notNull(): Interface<ManyHasOneDefinition>;
13
- createField({ name, conventions, entityName, entityRegistry }: CreateFieldContext): Model.AnyField;
13
+ createField({ name, conventions, entityName, entityRegistry, strictDefinitionValidator }: CreateFieldContext): Model.AnyField;
14
14
  }
15
15
  export type ManyHasOneDefinition = Interface<ManyHasOneDefinitionImpl>;
16
16
  export declare function manyHasOne(target: EntityConstructor, inversedBy?: string): ManyHasOneDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"ManyHasOneDefinition.d.ts","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAEzC,qBAAa,wBAAyB,SAAQ,eAAe,CAAC,2BAA2B,CAAC;IACzF,IAAI,yBAAkC;IAEtC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,oBAAoB,CAAC;IAI/D,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,oBAAoB,CAAC;IAIlE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,oBAAoB,CAAC;IAIzF,eAAe,IAAI,SAAS,CAAC,oBAAoB,CAAC;IAIlD,eAAe,IAAI,SAAS,CAAC,oBAAoB,CAAC;IAIlD,OAAO,IAAI,SAAS,CAAC,oBAAoB,CAAC;IAI1C,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,QAAQ;CAelG;AAED,MAAM,MAAM,oBAAoB,GAAG,SAAS,CAAC,wBAAwB,CAAC,CAAA;AAEtE,wBAAgB,UAAU,CAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAE/F;AAED,MAAM,MAAM,2BAA2B,GAAG;IACzC,MAAM,EAAE,cAAc,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA"}
1
+ {"version":3,"file":"ManyHasOneDefinition.d.ts","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEvE,qBAAa,wBAAyB,SAAQ,eAAe,CAAC,2BAA2B,CAAC;IACzF,IAAI,yBAAkC;IAEtC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,oBAAoB,CAAC;IAI/D,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,oBAAoB,CAAC;IAIlE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,oBAAoB,CAAC;IAIzF,eAAe,IAAI,SAAS,CAAC,oBAAoB,CAAC;IAIlD,eAAe,IAAI,SAAS,CAAC,oBAAoB,CAAC;IAIlD,gBAAgB,IAAI,SAAS,CAAC,oBAAoB,CAAC;IAInD,OAAO,IAAI,SAAS,CAAC,oBAAoB,CAAC;IAI1C,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,yBAAyB,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,QAAQ;CAkB7H;AAED,MAAM,MAAM,oBAAoB,GAAG,SAAS,CAAC,wBAAwB,CAAC,CAAA;AAEtE,wBAAgB,UAAU,CAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAE/F;AAED,MAAM,MAAM,2BAA2B,GAAG;IACzC,MAAM,EAAE,cAAc,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA"}
@@ -23,12 +23,17 @@ class ManyHasOneDefinitionImpl extends FieldDefinition_1.FieldDefinition {
23
23
  setNullOnDelete() {
24
24
  return this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: schema_1.Model.OnDelete.setNull });
25
25
  }
26
+ restrictOnDelete() {
27
+ return this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: schema_1.Model.OnDelete.restrict });
28
+ }
26
29
  notNull() {
27
30
  return this.withOption('nullable', false);
28
31
  }
29
- createField({ name, conventions, entityName, entityRegistry }) {
32
+ createField({ name, conventions, entityName, entityRegistry, strictDefinitionValidator }) {
30
33
  const options = this.options;
31
34
  const joiningColumn = options.joiningColumn || {};
35
+ strictDefinitionValidator.validateInverseSide(entityName, name, options);
36
+ strictDefinitionValidator.validateOnCascade(entityName, name, joiningColumn);
32
37
  return {
33
38
  name: name,
34
39
  ...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),
@@ -1 +1 @@
1
- {"version":3,"file":"ManyHasOneDefinition.js","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts"],"names":[],"mappings":";;;AACA,8CAAyC;AACzC,uDAAuE;AAGvE,MAAa,wBAAyB,SAAQ,iCAA4C;IAA1F;;QACC,SAAI,GAAG,sBAA+B,CAAA;IAyCvC,CAAC;IAvCA,UAAU,CAAC,UAAkB;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACjD,CAAC;IAED,aAAa,CAAC,UAAkB;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;IACvF,CAAC;IAED,QAAQ,CAAC,QAA8C;QACtD,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,QAA0B,EAAE,CAAC,CAAA;IACjH,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,cAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7G,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,cAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7G,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAsB;QAChF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAA;QACjD,OAAO;YACN,IAAI,EAAE,IAAI;YACV,GAAG,CAAC,OAAO,OAAO,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YACxF,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ;YAClE,IAAI,EAAE,cAAK,CAAC,YAAY,CAAC,UAAU;YACnC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9C,aAAa,EAAE;gBACd,UAAU,EAAE,aAAa,CAAC,UAAU,IAAI,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC;gBAC9E,QAAQ,EAAE,aAAa,CAAC,QAAQ,IAAI,cAAK,CAAC,QAAQ,CAAC,QAAQ;aAC3D;SACD,CAAA;IACF,CAAC;CACD;AA1CD,4DA0CC;AAID,SAAgB,UAAU,CAAC,MAAyB,EAAE,UAAmB;IACxE,OAAO,IAAI,wBAAwB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;AAC5D,CAAC;AAFD,gCAEC"}
1
+ {"version":3,"file":"ManyHasOneDefinition.js","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/ManyHasOneDefinition.ts"],"names":[],"mappings":";;;AACA,8CAAyC;AACzC,uDAAuE;AAEvE,MAAa,wBAAyB,SAAQ,iCAA4C;IAA1F;;QACC,SAAI,GAAG,sBAA+B,CAAA;IAgDvC,CAAC;IA9CA,UAAU,CAAC,UAAkB;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACjD,CAAC;IAED,aAAa,CAAC,UAAkB;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;IACvF,CAAC;IAED,QAAQ,CAAC,QAA8C;QACtD,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,QAA0B,EAAE,CAAC,CAAA;IACjH,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,cAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7G,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,cAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7G,CAAC;IAED,gBAAgB;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,cAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC9G,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,yBAAyB,EAAsB;QAC3G,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAA;QACjD,yBAAyB,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QACxE,yBAAyB,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;QAE5E,OAAO;YACN,IAAI,EAAE,IAAI;YACV,GAAG,CAAC,OAAO,OAAO,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YACxF,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ;YAClE,IAAI,EAAE,cAAK,CAAC,YAAY,CAAC,UAAU;YACnC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9C,aAAa,EAAE;gBACd,UAAU,EAAE,aAAa,CAAC,UAAU,IAAI,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC;gBAC9E,QAAQ,EAAE,aAAa,CAAC,QAAQ,IAAI,cAAK,CAAC,QAAQ,CAAC,QAAQ;aAC3D;SACD,CAAA;IACF,CAAC;CACD;AAjDD,4DAiDC;AAID,SAAgB,UAAU,CAAC,MAAyB,EAAE,UAAmB;IACxE,OAAO,IAAI,wBAAwB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;AAC5D,CAAC;AAFD,gCAEC"}
@@ -8,9 +8,10 @@ export declare class OneHasOneDefinitionImpl extends FieldDefinition<OneHasOneDe
8
8
  onDelete(onDelete: Model.OnDelete | `${Model.OnDelete}`): Interface<OneHasOneDefinition>;
9
9
  cascadeOnDelete(): Interface<OneHasOneDefinition>;
10
10
  setNullOnDelete(): Interface<OneHasOneDefinition>;
11
+ restrictOnDelete(): Interface<OneHasOneDefinition>;
11
12
  notNull(): Interface<OneHasOneDefinition>;
12
13
  removeOrphan(): Interface<OneHasOneDefinition>;
13
- createField({ name, conventions, entityRegistry }: CreateFieldContext): Model.AnyField;
14
+ createField({ name, conventions, entityRegistry, strictDefinitionValidator, entityName }: CreateFieldContext): Model.AnyField;
14
15
  }
15
16
  export type OneHasOneDefinition = Interface<OneHasOneDefinitionImpl>;
16
17
  export declare function oneHasOne(target: EntityConstructor, inversedBy?: string): OneHasOneDefinition;
@@ -1 +1 @@
1
- {"version":3,"file":"OneHasOneDefinition.d.ts","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/OneHasOneDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEvE,qBAAa,uBAAwB,SAAQ,eAAe,CAAC,0BAA0B,CAAC;IACvF,IAAI,wBAAiC;IAErC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,mBAAmB,CAAC;IAI9D,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,mBAAmB,CAAC;IAIjE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,mBAAmB,CAAC;IAIxF,eAAe,IAAI,SAAS,CAAC,mBAAmB,CAAC;IAIjD,eAAe,IAAI,SAAS,CAAC,mBAAmB,CAAC;IAIjD,OAAO,IAAI,SAAS,CAAC,mBAAmB,CAAC;IAIzC,YAAY,IAAI,SAAS,CAAC,mBAAmB,CAAC;IAI9C,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,QAAQ;CAiBtF;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,CAAC,uBAAuB,CAAC,CAAA;AAEpE,wBAAgB,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAE7F;AAED,MAAM,MAAM,0BAA0B,GAAG;IACxC,MAAM,EAAE,cAAc,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,IAAI,CAAA;CACpB,CAAA"}
1
+ {"version":3,"file":"OneHasOneDefinition.d.ts","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/OneHasOneDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACvE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEvE,qBAAa,uBAAwB,SAAQ,eAAe,CAAC,0BAA0B,CAAC;IACvF,IAAI,wBAAiC;IAErC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,mBAAmB,CAAC;IAI9D,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC,mBAAmB,CAAC;IAIjE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAC,mBAAmB,CAAC;IAIxF,eAAe,IAAI,SAAS,CAAC,mBAAmB,CAAC;IAIjD,eAAe,IAAI,SAAS,CAAC,mBAAmB,CAAC;IAIjD,gBAAgB,IAAI,SAAS,CAAC,mBAAmB,CAAC;IAIlD,OAAO,IAAI,SAAS,CAAC,mBAAmB,CAAC;IAIzC,YAAY,IAAI,SAAS,CAAC,mBAAmB,CAAC;IAI9C,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,yBAAyB,EAAE,UAAU,EAAE,EAAE,kBAAkB,GAAG,KAAK,CAAC,QAAQ;CAoB7H;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,CAAC,uBAAuB,CAAC,CAAA;AAEpE,wBAAgB,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAE7F;AAED,MAAM,MAAM,0BAA0B,GAAG;IACxC,MAAM,EAAE,cAAc,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,aAAa,CAAC,EAAE,IAAI,CAAA;CACpB,CAAA"}
@@ -23,15 +23,20 @@ class OneHasOneDefinitionImpl extends FieldDefinition_1.FieldDefinition {
23
23
  setNullOnDelete() {
24
24
  return this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: schema_1.Model.OnDelete.setNull });
25
25
  }
26
+ restrictOnDelete() {
27
+ return this.withOption('joiningColumn', { ...this.options.joiningColumn, onDelete: schema_1.Model.OnDelete.restrict });
28
+ }
26
29
  notNull() {
27
30
  return this.withOption('nullable', false);
28
31
  }
29
32
  removeOrphan() {
30
33
  return this.withOption('orphanRemoval', true);
31
34
  }
32
- createField({ name, conventions, entityRegistry }) {
35
+ createField({ name, conventions, entityRegistry, strictDefinitionValidator, entityName }) {
33
36
  const options = this.options;
34
37
  const joiningColumn = options.joiningColumn || {};
38
+ strictDefinitionValidator.validateInverseSide(entityName, name, options);
39
+ strictDefinitionValidator.validateOnCascade(entityName, name, joiningColumn);
35
40
  return {
36
41
  name: name,
37
42
  ...(typeof options.inversedBy === 'undefined' ? {} : { inversedBy: options.inversedBy }),
@@ -1 +1 @@
1
- {"version":3,"file":"OneHasOneDefinition.js","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/OneHasOneDefinition.ts"],"names":[],"mappings":";;;AAAA,8CAAyC;AAEzC,uDAAuE;AAEvE,MAAa,uBAAwB,SAAQ,iCAA2C;IAAxF;;QACC,SAAI,GAAG,qBAA8B,CAAA;IA+CtC,CAAC;IA7CA,UAAU,CAAC,UAAkB;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACjD,CAAC;IAED,aAAa,CAAC,UAAkB;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;IAC/E,CAAC;IAED,QAAQ,CAAC,QAA8C;QACtD,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,QAA0B,EAAE,CAAC,CAAA;IACzG,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,cAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7G,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,cAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7G,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,YAAY;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAsB;QACpE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,MAAM,aAAa,GAAiC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAA;QAE/E,OAAO;YACN,IAAI,EAAE,IAAI;YACV,GAAG,CAAC,OAAO,OAAO,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YACxF,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ;YAClE,IAAI,EAAE,cAAK,CAAC,YAAY,CAAC,SAAS;YAClC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9C,aAAa,EAAE;gBACd,UAAU,EAAE,aAAa,CAAC,UAAU,IAAI,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC;gBAC9E,QAAQ,EAAE,aAAa,CAAC,QAAQ,IAAI,cAAK,CAAC,QAAQ,CAAC,QAAQ;aAC3D;YACD,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAA;IACF,CAAC;CACD;AAhDD,0DAgDC;AAID,SAAgB,SAAS,CAAC,MAAyB,EAAE,UAAmB;IACvE,OAAO,IAAI,uBAAuB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;AAC3D,CAAC;AAFD,8BAEC"}
1
+ {"version":3,"file":"OneHasOneDefinition.js","sourceRoot":"","sources":["../../../../../src/model/definition/fieldDefinitions/OneHasOneDefinition.ts"],"names":[],"mappings":";;;AAAA,8CAAyC;AAEzC,uDAAuE;AAEvE,MAAa,uBAAwB,SAAQ,iCAA2C;IAAxF;;QACC,SAAI,GAAG,qBAA8B,CAAA;IAsDtC,CAAC;IApDA,UAAU,CAAC,UAAkB;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACjD,CAAC;IAED,aAAa,CAAC,UAAkB;QAC/B,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;IAC/E,CAAC;IAED,QAAQ,CAAC,QAA8C;QACtD,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,EAAE,QAA0B,EAAE,CAAC,CAAA;IACzG,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,cAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7G,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,cAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7G,CAAC;IAED,gBAAgB;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,EAAE,cAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC9G,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,YAAY;QACX,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED,WAAW,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,yBAAyB,EAAE,UAAU,EAAsB;QAC3G,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,MAAM,aAAa,GAAiC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAA;QAE/E,yBAAyB,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QACxE,yBAAyB,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;QAE5E,OAAO;YACN,IAAI,EAAE,IAAI;YACV,GAAG,CAAC,OAAO,OAAO,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;YACxF,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ;YAClE,IAAI,EAAE,cAAK,CAAC,YAAY,CAAC,SAAS;YAClC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9C,aAAa,EAAE;gBACd,UAAU,EAAE,aAAa,CAAC,UAAU,IAAI,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC;gBAC9E,QAAQ,EAAE,aAAa,CAAC,QAAQ,IAAI,cAAK,CAAC,QAAQ,CAAC,QAAQ;aAC3D;YACD,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAA;IACF,CAAC;CACD;AAvDD,0DAuDC;AAID,SAAgB,SAAS,CAAC,MAAyB,EAAE,UAAmB;IACvE,OAAO,IAAI,uBAAuB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;AAC3D,CAAC;AAFD,8BAEC"}
@@ -3,6 +3,7 @@ import { Model } from '@contember/schema';
3
3
  import { EnumDefinition } from './EnumDefinition';
4
4
  import 'reflect-metadata';
5
5
  import { FieldDefinition } from './fieldDefinitions';
6
+ import { StrictDefinitionValidator } from '../../strict';
6
7
  export * from './fieldDefinitions';
7
8
  export * from './EventLogDefinition';
8
9
  export * from './IndexDefinition';
@@ -17,7 +18,9 @@ export declare abstract class Entity {
17
18
  export type ModelDefinition<M> = {
18
19
  [K in keyof M]: unknown;
19
20
  };
20
- export declare function createModel<M extends ModelDefinition<M>>(definitions: M): Model.Schema;
21
+ export declare function createModel<M extends ModelDefinition<M>>(definitions: M, options?: {
22
+ strictDefinitionValidator?: StrictDefinitionValidator;
23
+ }): Model.Schema;
21
24
  export declare const OnDelete: typeof Model.OnDelete;
22
25
  export declare const OrderDirection: typeof Model.OrderDirection;
23
26
  export { EnumDefinition };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/definition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAIpD,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE5D,8BAAsB,MAAM;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAA;CAC1D;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;KAC/B,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO;CACvB,CAAA;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAWtF;AAED,eAAO,MAAM,QAAQ,uBAAiB,CAAA;AACtC,eAAO,MAAM,cAAc,6BAAuB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/definition/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAGpD,OAAO,EAAiB,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAEvE,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE5D,8BAAsB,MAAM;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAA;CAC1D;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;KAC/B,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO;CACvB,CAAA;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,eAAe,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,GAAE;IAClF,yBAAyB,CAAC,EAAE,yBAAyB,CAAA;CAChD,GAAG,KAAK,CAAC,MAAM,CAcpB;AAED,eAAO,MAAM,QAAQ,uBAAiB,CAAA;AACtC,eAAO,MAAM,cAAc,6BAAuB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -34,8 +34,8 @@ Object.defineProperty(exports, "extendEntity", { enumerable: true, get: function
34
34
  class Entity {
35
35
  }
36
36
  exports.Entity = Entity;
37
- function createModel(definitions) {
38
- const schemaBuilder = new internal_1.SchemaBuilder(new schema_utils_1.DefaultNamingConventions());
37
+ function createModel(definitions, options = {}) {
38
+ const schemaBuilder = new internal_1.SchemaBuilder(new schema_utils_1.DefaultNamingConventions(), options.strictDefinitionValidator);
39
39
  for (const [name, definition] of Object.entries(definitions)) {
40
40
  if (definition instanceof EnumDefinition_1.EnumDefinition) {
41
41
  schemaBuilder.addEnum(name, definition);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/model/definition/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,8CAAyC;AACzC,qDAAiD;AAuCxC,+FAvCA,+BAAc,OAuCA;AAtCvB,yCAA0C;AAC1C,4BAAyB;AAEzB,uCAAiD;AACjD,0DAAkE;AAElE,qDAAkC;AAClC,uDAAoC;AACpC,oDAAiC;AACjC,sDAAmC;AACnC,mDAAgC;AAChC,qDAAkC;AAClC,mDAAgC;AAChC,2CAA4D;AAAnD,0GAAA,YAAY,OAAA;AAErB,MAAsB,MAAM;CAE3B;AAFD,wBAEC;AAMD,SAAgB,WAAW,CAA+B,WAAc;IACvE,MAAM,aAAa,GAAG,IAAI,wBAAa,CAAC,IAAI,uCAAwB,EAAE,CAAC,CAAA;IACvE,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAC7D,IAAI,UAAU,YAAY,+BAAc,EAAE;YACzC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;SACvC;aAAM,IAAI,IAAA,2BAAmB,EAAC,UAAU,CAAC,EAAE;YAC3C,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;SACzC;KACD;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,EAAE,CAAA;IAC3C,OAAO,MAAM,CAAA;AACd,CAAC;AAXD,kCAWC;AAEY,QAAA,QAAQ,GAAG,cAAK,CAAC,QAAQ,CAAA;AACzB,QAAA,cAAc,GAAG,cAAK,CAAC,cAAc,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/model/definition/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,8CAAyC;AACzC,qDAAiD;AA6CxC,+FA7CA,+BAAc,OA6CA;AA5CvB,yCAA0C;AAC1C,4BAAyB;AAEzB,uCAAiD;AACjD,0DAAkE;AAGlE,qDAAkC;AAClC,uDAAoC;AACpC,oDAAiC;AACjC,sDAAmC;AACnC,mDAAgC;AAChC,qDAAkC;AAClC,mDAAgC;AAChC,2CAA4D;AAAnD,0GAAA,YAAY,OAAA;AAErB,MAAsB,MAAM;CAE3B;AAFD,wBAEC;AAMD,SAAgB,WAAW,CAA+B,WAAc,EAAE,UAEtE,EAAE;IACL,MAAM,aAAa,GAAG,IAAI,wBAAa,CACtC,IAAI,uCAAwB,EAAE,EAC9B,OAAO,CAAC,yBAAyB,CACjC,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAC7D,IAAI,UAAU,YAAY,+BAAc,EAAE;YACzC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;SACvC;aAAM,IAAI,IAAA,2BAAmB,EAAC,UAAU,CAAC,EAAE;YAC3C,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;SACzC;KACD;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,EAAE,CAAA;IAC3C,OAAO,MAAM,CAAA;AACd,CAAC;AAhBD,kCAgBC;AAEY,QAAA,QAAQ,GAAG,cAAK,CAAC,QAAQ,CAAA;AACzB,QAAA,cAAc,GAAG,cAAK,CAAC,cAAc,CAAA"}
@@ -3,11 +3,13 @@ import { NamingConventions } from '@contember/schema-utils';
3
3
  import 'reflect-metadata';
4
4
  import { EntityConstructor } from '../types';
5
5
  import { EnumDefinition } from '../EnumDefinition';
6
+ import { StrictDefinitionValidator } from '../../../strict';
6
7
  export declare class SchemaBuilder {
7
8
  private readonly conventions;
9
+ private readonly strictDefinitionValidator;
8
10
  private entityRegistry;
9
11
  private enumRegistry;
10
- constructor(conventions: NamingConventions);
12
+ constructor(conventions: NamingConventions, strictDefinitionValidator?: StrictDefinitionValidator);
11
13
  addEntity(name: string, entity: EntityConstructor): void;
12
14
  addEnum(name: string, definition: EnumDefinition): void;
13
15
  createSchema(): Model.Schema;
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/model/definition/internal/SchemaBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,kBAAkB,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAoB,MAAM,UAAU,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAMlD,qBAAa,aAAa;IAKb,OAAO,CAAC,QAAQ,CAAC,WAAW;IAJxC,OAAO,CAAC,cAAc,CAAuB;IAE7C,OAAO,CAAC,YAAY,CAAqB;gBAEZ,WAAW,EAAE,iBAAiB;IAEpD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAIxD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI;IAIvD,YAAY,IAAI,KAAK,CAAC,MAAM;IAoDnC,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,YAAY;CASpB"}
1
+ {"version":3,"file":"SchemaBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/model/definition/internal/SchemaBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,kBAAkB,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAoB,MAAM,UAAU,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAKlD,OAAO,EAAiB,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAE1E,qBAAa,aAAa;IAMxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,yBAAyB;IAN3C,OAAO,CAAC,cAAc,CAAuB;IAE7C,OAAO,CAAC,YAAY,CAAqB;gBAGvB,WAAW,EAAE,iBAAiB,EAC9B,yBAAyB,GAAE,yBAA6D;IAGnG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAIxD,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI;IAIvD,YAAY,IAAI,KAAK,CAAC,MAAM;IAsDnC,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,YAAY;CASpB"}
@@ -8,9 +8,11 @@ const EntityRegistry_1 = require("./EntityRegistry");
8
8
  const EnumRegistry_1 = require("./EnumRegistry");
9
9
  const fieldDefinitions_1 = require("../fieldDefinitions");
10
10
  const extensions_1 = require("../extensions");
11
+ const strict_1 = require("../../../strict");
11
12
  class SchemaBuilder {
12
- constructor(conventions) {
13
+ constructor(conventions, strictDefinitionValidator = new strict_1.StrictDefinitionValidator({})) {
13
14
  this.conventions = conventions;
15
+ this.strictDefinitionValidator = strictDefinitionValidator;
14
16
  this.entityRegistry = new EntityRegistry_1.EntityRegistry();
15
17
  this.enumRegistry = new EnumRegistry_1.EnumRegistry();
16
18
  }
@@ -41,6 +43,7 @@ class SchemaBuilder {
41
43
  conventions: this.conventions,
42
44
  enumRegistry: this.enumRegistry,
43
45
  entityRegistry: this.entityRegistry,
46
+ strictDefinitionValidator: this.strictDefinitionValidator,
44
47
  });
45
48
  })
46
49
  .reduce((acc, field) => {
@@ -61,6 +64,7 @@ class SchemaBuilder {
61
64
  entityRegistry: this.entityRegistry,
62
65
  conventions: this.conventions,
63
66
  enumRegistry: this.enumRegistry,
67
+ strictDefinitionValidator: this.strictDefinitionValidator,
64
68
  });
65
69
  });
66
70
  return {
@@ -78,7 +82,7 @@ class SchemaBuilder {
78
82
  const unique = [];
79
83
  for (const [fieldName, definition] of Object.entries(fieldDefinitions)) {
80
84
  if (definition.options.unique) {
81
- unique.push({ fields: [fieldName] });
85
+ unique.push({ fields: [fieldName], ...definition.options.unique });
82
86
  }
83
87
  }
84
88
  return unique;
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaBuilder.js","sourceRoot":"","sources":["../../../../../src/model/definition/internal/SchemaBuilder.ts"],"names":[],"mappings":";;;AAAA,8CAAyC;AAEzC,4BAAyB;AACzB,0CAAsC;AAGtC,qDAAiD;AACjD,iDAA6C;AAC7C,0DAAsD;AACtD,8CAAqD;AAErD,MAAa,aAAa;IAKzB,YAA6B,WAA8B;QAA9B,gBAAW,GAAX,WAAW,CAAmB;QAJnD,mBAAc,GAAG,IAAI,+BAAc,EAAE,CAAA;QAErC,iBAAY,GAAG,IAAI,2BAAY,EAAE,CAAA;IAEqB,CAAC;IAExD,SAAS,CAAC,IAAY,EAAE,MAAyB;QACvD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC3C,CAAC;IAEM,OAAO,CAAC,IAAY,EAAE,UAA0B;QACtD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IAC7C,CAAC;IAEM,YAAY;QAClB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAgB,EAAE;YAC5G,MAAM,kBAAkB,GAAqB,IAAI,UAAU,EAAE,CAAA;YAE7D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAA;YAEtD,MAAM,MAAM,GAAiB;gBAC5B,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,WAAW;gBACpB,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC;gBAC1D,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,kBAAkB,CAAC;gBACzD,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE;oBACP,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,aAAK,EAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;oBAC1F,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC;iBACrC;qBACC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE;oBAC3B,OAAO,UAAU,CAAC,WAAW,CAAC;wBAC7B,IAAI;wBACJ,UAAU;wBACV,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;wBAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;qBACnC,CAAC,CAAA;gBACH,CAAC,CAAC;qBACD,MAAM,CAAyB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;oBAC9C,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;wBACpB,MAAM,IAAI,KAAK,CAAC,UAAU,UAAU,WAAW,KAAK,CAAC,IAAI,wBAAwB,CAAC,CAAA;qBAClF;oBACD,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAA;gBACvC,CAAC,EAAE,EAAE,CAAC;gBACP,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC;gBACpD,QAAQ,EAAE;oBACT,OAAO,EAAE,IAAI;iBACb;aACD,CAAA;YACD,OAAO,IAAA,kCAAqB,EAAC,UAAU,EAAE;gBACxC,MAAM;gBACN,UAAU,EAAE,kBAAkB;gBAC9B,QAAQ,EAAE,IAAI,CAAC,cAAc;gBAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;aAC/B,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO;YACN,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjH,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;SACnF,CAAA;IACF,CAAC;IAEO,mBAAmB;QAC1B,OAAO,IAAI,mCAAgB,CAAC;YAC3B,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,cAAK,CAAC,UAAU,CAAC,IAAI;SAC3B,CAAC,CAAA;IACH,CAAC;IAEO,YAAY,CAAC,UAAkB,EAAE,gBAAkC;QAC1E,MAAM,MAAM,GAA6B,EAAE,CAAA;QAC3C,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;YACvE,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE;gBAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;aACpC;SACD;QACD,OAAO,MAAM,CAAA;IACd,CAAC;CACD;AAnFD,sCAmFC"}
1
+ {"version":3,"file":"SchemaBuilder.js","sourceRoot":"","sources":["../../../../../src/model/definition/internal/SchemaBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Settings } from '@contember/schema';
2
2
  export declare const settingsPresets: {
3
3
  'v1.3': Settings.Schema;
4
+ 'v1.4': Settings.Schema;
4
5
  };
5
6
  //# sourceMappingURL=presets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAQ5C,eAAO,MAAM,eAAe;;CAE3B,CAAA"}
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAoB5C,eAAO,MAAM,eAAe;;;CAG3B,CAAA"}
@@ -7,7 +7,17 @@ const v1_3preset = {
7
7
  inviteExpirationMinutes: 60 * 24 * 7, // 7 days
8
8
  },
9
9
  };
10
+ const v1_4preset = {
11
+ tenant: {
12
+ inviteExpirationMinutes: 60 * 24 * 7, // 7 days
13
+ },
14
+ content: {
15
+ shortDateResponse: true,
16
+ useExistsInHasManyFilter: true,
17
+ },
18
+ };
10
19
  exports.settingsPresets = {
11
20
  'v1.3': v1_3preset,
21
+ 'v1.4': v1_4preset,
12
22
  };
13
23
  //# sourceMappingURL=presets.js.map