@royalschedule/validators 2.10.50 → 2.10.51

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.
@@ -15,26 +15,50 @@ exports.default = joi_1.default.object({
15
15
  .valid('parallel', 'sequential', 'custom'),
16
16
  anchor: joi_1.default.when('type', {
17
17
  is: 'parallel',
18
- then: joi_1.default.string().valid('start', 'middle', 'end').required(),
19
- otherwise: joi_1.default.forbidden()
18
+ then: joi_1.default.string().valid('start', 'middle', 'end').required()
20
19
  }),
21
20
  gap: joi_1.default.when('type', {
22
21
  is: 'sequential',
23
22
  then: joi_1.default.object({
24
23
  min: joi_1.default.number().required(),
25
24
  max: joi_1.default.number().required()
26
- }).required(),
27
- otherwise: joi_1.default.forbidden()
25
+ }).required()
26
+ }),
27
+ configurations: joi_1.default.when('type', {
28
+ is: 'custom',
29
+ then: joi_1.default.array()
30
+ .items(joi_1.default.array()
31
+ .items(joi_1.default.object({
32
+ eventId: joi_1.default.string().required(),
33
+ offset: joi_1.default.number().required(),
34
+ anchor: joi_1.default.string().valid('start', 'middle', 'end').required()
35
+ }))).required(),
36
+ otherwise: joi_1.default.array()
37
+ .items(joi_1.default.array()
38
+ .items(joi_1.default.object({
39
+ eventId: joi_1.default.string().required(),
40
+ offset: joi_1.default.number().required(),
41
+ anchor: joi_1.default.string().valid('start', 'middle', 'end').required()
42
+ })))
28
43
  }),
29
- configurations: joi_1.default.array()
30
- .items(joi_1.default.array()
31
- .items(joi_1.default.object({
32
- eventId: joi_1.default.string().required(),
33
- offset: joi_1.default.number().required(),
34
- anchor: joi_1.default.string().valid('start', 'middle', 'end').required()
35
- }))),
36
44
  createdAt: date_1.default.isDate(),
37
45
  updatedAt: date_1.default.isDate().allow(null),
38
46
  ORIGIN: joi_1.default.string().allow(null)
47
+ }).custom((value, helpers) => {
48
+ const { events, configurations } = value;
49
+ if (value.type !== 'custom' || !configurations || !events || events.length === 0)
50
+ return value;
51
+ const eventIds = events.map((e) => (typeof e === 'string' ? e : e.id));
52
+ for (let i = 0; i < configurations.length; i++) {
53
+ const config = configurations[i];
54
+ const configIds = config.map((item) => item.eventId);
55
+ const hasDuplicates = new Set(configIds).size !== configIds.length;
56
+ const missing = eventIds.filter((id) => !configIds.includes(id));
57
+ const extra = configIds.filter((id) => !eventIds.includes(id));
58
+ if (hasDuplicates || missing.length > 0 || extra.length > 0) {
59
+ return helpers.error('any.invalid');
60
+ }
61
+ }
62
+ return value;
39
63
  });
40
64
  //# sourceMappingURL=linked-event-sets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"linked-event-sets.js","sourceRoot":"","sources":["../../src/validators/linked-event-sets.ts"],"names":[],"mappings":";;;;;AAAA,8CAAsD;AACtD,mCAAyD;AAGzD,yCAAiE;AACjE,0DAAiE;AAGjE,kBAAe,aAAG,CAAC,MAAM,CAAM;IAC7B,EAAE,EAAW,aAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAA,eAAM,EAAC,CAAC,CAAC,CAAC;IAElD,MAAM,EAAO,aAAG,CAAC,KAAK,EAAE;SACP,KAAK,CACJ,aAAG,CAAC,YAAY,EAAE,CAAC,GAAG,CACpB,aAAG,CAAC,MAAM,EAAE,EACZ,aAAG,CAAC,MAAM,CAAC,WAAI,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CACrE,CACF;IAEjB,IAAI,EAAS,aAAG,CAAC,MAAM,EAAE;SACR,KAAK,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC;IAG1D,MAAM,EAAO,aAAG,CAAC,IAAI,CAAC,MAAM,EAAE;QACd,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;QAC7D,SAAS,EAAE,aAAG,CAAC,SAAS,EAAE;KAC3B,CAAC;IAGhB,GAAG,EAAU,aAAG,CAAC,IAAI,CAAC,MAAM,EAAE;QACd,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,aAAG,CAAC,MAAM,CAAC;YACf,GAAG,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC5B,GAAG,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC7B,CAAC,CAAC,QAAQ,EAAE;QACb,SAAS,EAAE,aAAG,CAAC,SAAS,EAAE;KAC3B,CAAC;IAChB,cAAc,EAAE,aAAG,CAAC,KAAK,EAAE;SACR,KAAK,CACJ,aAAG,CAAC,KAAK,EAAE;SACR,KAAK,CACJ,aAAG,CAAC,MAAM,CAAC;QACT,OAAO,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,MAAM,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,MAAM,EAAE,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE;KAChE,CAAC,CACH,CACJ;IACnB,SAAS,EAAI,cAAQ,CAAC,MAAM,EAAE;IAC9B,SAAS,EAAI,cAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;IAC1C,MAAM,EAAO,aAAG,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;CACtC,CAAC,CAAC"}
1
+ {"version":3,"file":"linked-event-sets.js","sourceRoot":"","sources":["../../src/validators/linked-event-sets.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@royalschedule/validators",
3
- "version": "2.10.50",
3
+ "version": "2.10.51",
4
4
  "description": "validators",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",