@opens/gateways 1.17.4 → 1.17.6
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.
- package/dist/_identification-rule-C7mcbjha.d.mts +64 -0
- package/dist/_identification-rule-C7mcbjha.d.ts +64 -0
- package/dist/chat-config/builders/index.d.mts +107 -3
- package/dist/chat-config/builders/index.d.ts +107 -3
- package/dist/chat-config/builders/index.js +369 -4
- package/dist/chat-config/builders/index.js.map +1 -1
- package/dist/chat-config/builders/index.mjs +366 -3
- package/dist/chat-config/builders/index.mjs.map +1 -1
- package/dist/chat-config/contracts/index.d.mts +32 -4
- package/dist/chat-config/contracts/index.d.ts +32 -4
- package/dist/chat-config/contracts/index.js.map +1 -1
- package/dist/chat-config/value-objects/index.d.mts +46 -2
- package/dist/chat-config/value-objects/index.d.ts +46 -2
- package/dist/chat-config/value-objects/index.js +84 -2
- package/dist/chat-config/value-objects/index.js.map +1 -1
- package/dist/chat-config/value-objects/index.mjs +81 -1
- package/dist/chat-config/value-objects/index.mjs.map +1 -1
- package/dist/index.d.mts +10 -4
- package/dist/index.d.ts +10 -4
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +9 -0
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/_screen-rule-FlIJzVXA.d.mts +0 -20
- package/dist/_screen-rule-FlIJzVXA.d.ts +0 -20
|
@@ -20,7 +20,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/chat-config/builders/index.ts
|
|
21
21
|
var builders_exports = {};
|
|
22
22
|
__export(builders_exports, {
|
|
23
|
-
|
|
23
|
+
IdentificationRuleBuilder: () => IdentificationRuleBuilder,
|
|
24
|
+
ScreenRuleBuilder: () => ScreenRuleBuilder,
|
|
25
|
+
ServiceRuleBuilder: () => ServiceRuleBuilder
|
|
24
26
|
});
|
|
25
27
|
module.exports = __toCommonJS(builders_exports);
|
|
26
28
|
|
|
@@ -60,6 +62,84 @@ var ScreenRuleVO = class _ScreenRuleVO {
|
|
|
60
62
|
}
|
|
61
63
|
};
|
|
62
64
|
|
|
65
|
+
// src/chat-config/value-objects/_service-rule.ts
|
|
66
|
+
var clonePayload2 = (payload) => ({
|
|
67
|
+
name: payload.name,
|
|
68
|
+
action: "service",
|
|
69
|
+
settings: {
|
|
70
|
+
...payload.settings.header !== void 0 ? { header: { ...payload.settings.header } } : {},
|
|
71
|
+
...payload.settings.body !== void 0 ? { body: { ...payload.settings.body } } : {},
|
|
72
|
+
...payload.settings.features !== void 0 ? { features: { ...payload.settings.features } } : {},
|
|
73
|
+
...payload.settings.behavior !== void 0 ? { behavior: payload.settings.behavior } : {}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
var ServiceRuleVO = class _ServiceRuleVO {
|
|
77
|
+
payload;
|
|
78
|
+
/**
|
|
79
|
+
* Creates a service-rule value object from a complete payload.
|
|
80
|
+
* @param payload - The service-rule payload to snapshot.
|
|
81
|
+
*/
|
|
82
|
+
constructor(payload) {
|
|
83
|
+
this.payload = clonePayload2(payload);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Creates a value object from its JSON representation.
|
|
87
|
+
* @param payload - The service-rule JSON payload.
|
|
88
|
+
* @returns A service-rule value object containing a defensive snapshot.
|
|
89
|
+
*/
|
|
90
|
+
static fromJSON(payload) {
|
|
91
|
+
return new _ServiceRuleVO(payload);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Converts a service-rule value object to JSON.
|
|
95
|
+
* @param serviceRuleVO - The service-rule value object to serialize.
|
|
96
|
+
* @returns A defensive copy of the service-rule payload.
|
|
97
|
+
*/
|
|
98
|
+
static toJSON(serviceRuleVO) {
|
|
99
|
+
return clonePayload2(serviceRuleVO.payload);
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
// src/chat-config/value-objects/_identification-rule.ts
|
|
104
|
+
var clonePayload3 = (payload) => ({
|
|
105
|
+
name: payload.name,
|
|
106
|
+
action: "identification",
|
|
107
|
+
settings: {
|
|
108
|
+
...payload.settings.header !== void 0 ? { header: { ...payload.settings.header } } : {},
|
|
109
|
+
...payload.settings.body !== void 0 ? { body: { ...payload.settings.body } } : {},
|
|
110
|
+
form: {
|
|
111
|
+
...payload.settings.form,
|
|
112
|
+
...payload.settings.form.fields !== void 0 ? { fields: payload.settings.form.fields.map((field) => ({ ...field })) } : {}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
var IdentificationRuleVO = class _IdentificationRuleVO {
|
|
117
|
+
payload;
|
|
118
|
+
/**
|
|
119
|
+
* Creates an identification-rule value object from a complete payload.
|
|
120
|
+
* @param payload - The identification-rule payload to snapshot.
|
|
121
|
+
*/
|
|
122
|
+
constructor(payload) {
|
|
123
|
+
this.payload = clonePayload3(payload);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Creates a value object from its JSON representation.
|
|
127
|
+
* @param payload - The identification-rule JSON payload.
|
|
128
|
+
* @returns An identification-rule value object containing a defensive snapshot.
|
|
129
|
+
*/
|
|
130
|
+
static fromJSON(payload) {
|
|
131
|
+
return new _IdentificationRuleVO(payload);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Converts an identification-rule value object to JSON.
|
|
135
|
+
* @param identificationRuleVO - The identification-rule value object to serialize.
|
|
136
|
+
* @returns A defensive copy of the identification-rule payload.
|
|
137
|
+
*/
|
|
138
|
+
static toJSON(identificationRuleVO) {
|
|
139
|
+
return clonePayload3(identificationRuleVO.payload);
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
|
|
63
143
|
// src/chat-config/builders/_screen-rule.ts
|
|
64
144
|
var clonePartialPayload = (payload) => ({
|
|
65
145
|
...payload,
|
|
@@ -161,14 +241,299 @@ var ScreenRuleBuilder = class _ScreenRuleBuilder {
|
|
|
161
241
|
const hasBody = settings?.body !== void 0;
|
|
162
242
|
if (typeof payload.name !== "string" || payload.name.trim().length === 0) invalidFields.push("name");
|
|
163
243
|
if (!hasHeader && !hasBody) invalidFields.push("settings.header or settings.body");
|
|
164
|
-
if (
|
|
165
|
-
invalidFields.push("settings.
|
|
244
|
+
if (hasHeader && (settings?.header === null || typeof settings?.header !== "object"))
|
|
245
|
+
invalidFields.push("settings.header");
|
|
246
|
+
if (hasBody && (settings?.body === null || typeof settings?.body !== "object")) invalidFields.push("settings.body");
|
|
166
247
|
if (invalidFields.length > 0)
|
|
167
248
|
throw new Error(`Cannot build screen rule. Invalid or missing fields: ${invalidFields.join(", ")}`);
|
|
168
249
|
}
|
|
169
250
|
};
|
|
251
|
+
|
|
252
|
+
// src/chat-config/builders/_service-rule.ts
|
|
253
|
+
var clonePartialPayload2 = (payload) => ({
|
|
254
|
+
...payload,
|
|
255
|
+
...payload.settings !== void 0 ? {
|
|
256
|
+
settings: {
|
|
257
|
+
...payload.settings,
|
|
258
|
+
...payload.settings.header !== void 0 ? { header: { ...payload.settings.header } } : {},
|
|
259
|
+
...payload.settings.body !== void 0 ? { body: { ...payload.settings.body } } : {},
|
|
260
|
+
...payload.settings.features !== void 0 ? { features: { ...payload.settings.features } } : {}
|
|
261
|
+
}
|
|
262
|
+
} : {}
|
|
263
|
+
});
|
|
264
|
+
var ServiceRuleBuilder = class _ServiceRuleBuilder {
|
|
265
|
+
payload = {
|
|
266
|
+
action: "service",
|
|
267
|
+
settings: {}
|
|
268
|
+
};
|
|
269
|
+
constructor(payload) {
|
|
270
|
+
if (payload !== void 0) this.withRule(payload);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Creates a service-rule builder.
|
|
274
|
+
* @param payload - Optional initial service-rule values.
|
|
275
|
+
* @returns A new service-rule builder.
|
|
276
|
+
*/
|
|
277
|
+
static create(payload) {
|
|
278
|
+
return new _ServiceRuleBuilder(payload);
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Merges partial service-rule values into the builder.
|
|
282
|
+
* @param payload - Service-rule values to merge.
|
|
283
|
+
* @returns This builder instance.
|
|
284
|
+
*/
|
|
285
|
+
withRule(payload) {
|
|
286
|
+
const snapshot = clonePartialPayload2(payload);
|
|
287
|
+
this.payload = {
|
|
288
|
+
...this.payload,
|
|
289
|
+
...snapshot,
|
|
290
|
+
action: "service",
|
|
291
|
+
settings: {
|
|
292
|
+
...this.payload.settings,
|
|
293
|
+
...snapshot.settings,
|
|
294
|
+
...snapshot.settings?.features !== void 0 ? { features: { ...this.payload.settings?.features, ...snapshot.settings.features } } : {}
|
|
295
|
+
}
|
|
296
|
+
};
|
|
297
|
+
return this;
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Sets the service-rule name.
|
|
301
|
+
* @param name - The service-rule name.
|
|
302
|
+
* @returns This builder instance.
|
|
303
|
+
*/
|
|
304
|
+
withName(name) {
|
|
305
|
+
this.payload.name = name;
|
|
306
|
+
return this;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Sets the service-rule header.
|
|
310
|
+
* @param header - The header component.
|
|
311
|
+
* @returns This builder instance.
|
|
312
|
+
*/
|
|
313
|
+
withHeader(header) {
|
|
314
|
+
this.payload.settings = {
|
|
315
|
+
...this.payload.settings,
|
|
316
|
+
header: { ...header }
|
|
317
|
+
};
|
|
318
|
+
return this;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Sets the service-rule body.
|
|
322
|
+
* @param body - The body component.
|
|
323
|
+
* @returns This builder instance.
|
|
324
|
+
*/
|
|
325
|
+
withBody(body) {
|
|
326
|
+
this.payload.settings = {
|
|
327
|
+
...this.payload.settings,
|
|
328
|
+
body: { ...body }
|
|
329
|
+
};
|
|
330
|
+
return this;
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Sets the feature flags available during the service attendance.
|
|
334
|
+
* @param features - The service feature flags.
|
|
335
|
+
* @returns This builder instance.
|
|
336
|
+
*/
|
|
337
|
+
withFeatures(features) {
|
|
338
|
+
this.payload.settings = {
|
|
339
|
+
...this.payload.settings,
|
|
340
|
+
features: { ...features }
|
|
341
|
+
};
|
|
342
|
+
return this;
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Sets whether the service attendance is chat or voice.
|
|
346
|
+
* @param behavior - The attendance behavior.
|
|
347
|
+
* @returns This builder instance.
|
|
348
|
+
*/
|
|
349
|
+
withBehavior(behavior) {
|
|
350
|
+
this.payload.settings = {
|
|
351
|
+
...this.payload.settings,
|
|
352
|
+
behavior
|
|
353
|
+
};
|
|
354
|
+
return this;
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Builds a validated service-rule value object.
|
|
358
|
+
* @returns The completed service-rule value object.
|
|
359
|
+
* @throws {Error} If required service-rule fields are missing or invalid.
|
|
360
|
+
*/
|
|
361
|
+
build() {
|
|
362
|
+
this.assertValidPayload(this.payload);
|
|
363
|
+
return ServiceRuleVO.fromJSON({
|
|
364
|
+
name: this.payload.name,
|
|
365
|
+
action: "service",
|
|
366
|
+
settings: {
|
|
367
|
+
...this.payload.settings.header !== void 0 ? { header: { ...this.payload.settings.header } } : {},
|
|
368
|
+
...this.payload.settings.body !== void 0 ? { body: { ...this.payload.settings.body } } : {},
|
|
369
|
+
...this.payload.settings.features !== void 0 ? { features: { ...this.payload.settings.features } } : {},
|
|
370
|
+
...this.payload.settings.behavior !== void 0 ? { behavior: this.payload.settings.behavior } : {}
|
|
371
|
+
}
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
assertValidPayload(payload) {
|
|
375
|
+
const invalidFields = [];
|
|
376
|
+
const settings = payload.settings;
|
|
377
|
+
const hasHeader = settings?.header !== void 0;
|
|
378
|
+
const hasBody = settings?.body !== void 0;
|
|
379
|
+
if (typeof payload.name !== "string" || payload.name.trim().length === 0) invalidFields.push("name");
|
|
380
|
+
if (!hasHeader && !hasBody) invalidFields.push("settings.header or settings.body");
|
|
381
|
+
if (hasHeader && (settings?.header === null || typeof settings?.header !== "object"))
|
|
382
|
+
invalidFields.push("settings.header");
|
|
383
|
+
if (hasBody && (settings?.body === null || typeof settings?.body !== "object")) invalidFields.push("settings.body");
|
|
384
|
+
if (invalidFields.length > 0)
|
|
385
|
+
throw new Error(`Cannot build service rule. Invalid or missing fields: ${invalidFields.join(", ")}`);
|
|
386
|
+
}
|
|
387
|
+
};
|
|
388
|
+
|
|
389
|
+
// src/chat-config/builders/_identification-rule.ts
|
|
390
|
+
var clonePartialPayload3 = (payload) => ({
|
|
391
|
+
...payload,
|
|
392
|
+
...payload.settings !== void 0 ? {
|
|
393
|
+
settings: {
|
|
394
|
+
...payload.settings,
|
|
395
|
+
...payload.settings.header !== void 0 ? { header: { ...payload.settings.header } } : {},
|
|
396
|
+
...payload.settings.body !== void 0 ? { body: { ...payload.settings.body } } : {},
|
|
397
|
+
...payload.settings.form !== void 0 ? {
|
|
398
|
+
form: {
|
|
399
|
+
...payload.settings.form,
|
|
400
|
+
...payload.settings.form.fields !== void 0 ? { fields: payload.settings.form.fields.map((field) => ({ ...field })) } : {}
|
|
401
|
+
}
|
|
402
|
+
} : {}
|
|
403
|
+
}
|
|
404
|
+
} : {}
|
|
405
|
+
});
|
|
406
|
+
var IdentificationRuleBuilder = class _IdentificationRuleBuilder {
|
|
407
|
+
payload = {
|
|
408
|
+
action: "identification",
|
|
409
|
+
settings: {
|
|
410
|
+
form: {}
|
|
411
|
+
}
|
|
412
|
+
};
|
|
413
|
+
constructor(payload) {
|
|
414
|
+
if (payload !== void 0) this.withRule(payload);
|
|
415
|
+
}
|
|
416
|
+
/**
|
|
417
|
+
* Creates an identification-rule builder.
|
|
418
|
+
* @param payload - Optional initial identification-rule values.
|
|
419
|
+
* @returns A new identification-rule builder.
|
|
420
|
+
*/
|
|
421
|
+
static create(payload) {
|
|
422
|
+
return new _IdentificationRuleBuilder(payload);
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Merges partial identification-rule values into the builder.
|
|
426
|
+
* @param payload - Identification-rule values to merge.
|
|
427
|
+
* @returns This builder instance.
|
|
428
|
+
*/
|
|
429
|
+
withRule(payload) {
|
|
430
|
+
const snapshot = clonePartialPayload3(payload);
|
|
431
|
+
this.payload = {
|
|
432
|
+
...this.payload,
|
|
433
|
+
...snapshot,
|
|
434
|
+
action: "identification",
|
|
435
|
+
settings: {
|
|
436
|
+
...this.payload.settings,
|
|
437
|
+
...snapshot.settings,
|
|
438
|
+
form: {
|
|
439
|
+
...this.payload.settings?.form,
|
|
440
|
+
...snapshot.settings?.form,
|
|
441
|
+
...snapshot.settings?.form?.fields !== void 0 ? { fields: snapshot.settings.form.fields.map((field) => ({ ...field })) } : {}
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
};
|
|
445
|
+
return this;
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Sets the identification-rule name.
|
|
449
|
+
* @param name - The identification-rule name.
|
|
450
|
+
* @returns This builder instance.
|
|
451
|
+
*/
|
|
452
|
+
withName(name) {
|
|
453
|
+
this.payload.name = name;
|
|
454
|
+
return this;
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Sets the identification-rule header.
|
|
458
|
+
* @param header - The header component.
|
|
459
|
+
* @returns This builder instance.
|
|
460
|
+
*/
|
|
461
|
+
withHeader(header) {
|
|
462
|
+
this.payload.settings = {
|
|
463
|
+
...this.payload.settings,
|
|
464
|
+
header: { ...header },
|
|
465
|
+
form: this.payload.settings?.form ?? {}
|
|
466
|
+
};
|
|
467
|
+
return this;
|
|
468
|
+
}
|
|
469
|
+
/**
|
|
470
|
+
* Sets the identification-rule body.
|
|
471
|
+
* @param body - The body component.
|
|
472
|
+
* @returns This builder instance.
|
|
473
|
+
*/
|
|
474
|
+
withBody(body) {
|
|
475
|
+
this.payload.settings = {
|
|
476
|
+
...this.payload.settings,
|
|
477
|
+
body: { ...body },
|
|
478
|
+
form: this.payload.settings?.form ?? {}
|
|
479
|
+
};
|
|
480
|
+
return this;
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Sets the identification-rule form component.
|
|
484
|
+
* @param form - The form component.
|
|
485
|
+
* @returns This builder instance.
|
|
486
|
+
*/
|
|
487
|
+
withForm(form) {
|
|
488
|
+
this.payload.settings = {
|
|
489
|
+
...this.payload.settings,
|
|
490
|
+
form: {
|
|
491
|
+
...form,
|
|
492
|
+
...form.fields !== void 0 ? { fields: form.fields.map((field) => ({ ...field })) } : {}
|
|
493
|
+
}
|
|
494
|
+
};
|
|
495
|
+
return this;
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* Builds a validated identification-rule value object.
|
|
499
|
+
* @returns The completed identification-rule value object.
|
|
500
|
+
* @throws {Error} If required identification-rule fields are missing or invalid.
|
|
501
|
+
*/
|
|
502
|
+
build() {
|
|
503
|
+
this.assertValidPayload(this.payload);
|
|
504
|
+
return IdentificationRuleVO.fromJSON({
|
|
505
|
+
name: this.payload.name,
|
|
506
|
+
action: "identification",
|
|
507
|
+
settings: {
|
|
508
|
+
...this.payload.settings.header !== void 0 ? { header: { ...this.payload.settings.header } } : {},
|
|
509
|
+
...this.payload.settings.body !== void 0 ? { body: { ...this.payload.settings.body } } : {},
|
|
510
|
+
form: {
|
|
511
|
+
...this.payload.settings.form,
|
|
512
|
+
...this.payload.settings.form.fields !== void 0 ? { fields: this.payload.settings.form.fields.map((field) => ({ ...field })) } : {}
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
});
|
|
516
|
+
}
|
|
517
|
+
assertValidPayload(payload) {
|
|
518
|
+
const invalidFields = [];
|
|
519
|
+
const settings = payload.settings;
|
|
520
|
+
const hasHeader = settings?.header !== void 0;
|
|
521
|
+
const hasBody = settings?.body !== void 0;
|
|
522
|
+
const form = settings?.form;
|
|
523
|
+
if (typeof payload.name !== "string" || payload.name.trim().length === 0) invalidFields.push("name");
|
|
524
|
+
if (!hasHeader && !hasBody) invalidFields.push("settings.header or settings.body");
|
|
525
|
+
if (hasHeader && (settings?.header === null || typeof settings?.header !== "object"))
|
|
526
|
+
invalidFields.push("settings.header");
|
|
527
|
+
if (hasBody && (settings?.body === null || typeof settings?.body !== "object")) invalidFields.push("settings.body");
|
|
528
|
+
if (form === void 0 || form === null || typeof form !== "object") invalidFields.push("settings.form");
|
|
529
|
+
if (invalidFields.length > 0)
|
|
530
|
+
throw new Error(`Cannot build identification rule. Invalid or missing fields: ${invalidFields.join(", ")}`);
|
|
531
|
+
}
|
|
532
|
+
};
|
|
170
533
|
// Annotate the CommonJS export names for ESM import in node:
|
|
171
534
|
0 && (module.exports = {
|
|
172
|
-
|
|
535
|
+
IdentificationRuleBuilder,
|
|
536
|
+
ScreenRuleBuilder,
|
|
537
|
+
ServiceRuleBuilder
|
|
173
538
|
});
|
|
174
539
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/chat-config/builders/index.ts","../../../src/chat-config/value-objects/_screen-rule.ts","../../../src/chat-config/builders/_screen-rule.ts"],"sourcesContent":["export * from './_screen-rule';\n","import type { CreateScreenRuleDTO } from '../contracts';\n\nconst clonePayload = (payload: CreateScreenRuleDTO): CreateScreenRuleDTO => ({\n name: payload.name,\n action: 'screen',\n settings: {\n ...(payload.settings.header !== undefined ? { header: { ...payload.settings.header } } : {}),\n ...(payload.settings.body !== undefined ? { body: { ...payload.settings.body } } : {}),\n },\n});\n\n/** Value object representing a complete screen-rule payload. */\nexport class ScreenRuleVO {\n readonly payload: CreateScreenRuleDTO;\n\n /**\n * Creates a screen-rule value object from a complete payload.\n * @param payload - The screen-rule payload to snapshot.\n */\n constructor(payload: CreateScreenRuleDTO) {\n this.payload = clonePayload(payload);\n }\n\n /**\n * Creates a value object from its JSON representation.\n * @param payload - The screen-rule JSON payload.\n * @returns A screen-rule value object containing a defensive snapshot.\n */\n static fromJSON(payload: CreateScreenRuleDTO): ScreenRuleVO {\n return new ScreenRuleVO(payload);\n }\n\n /**\n * Converts a screen-rule value object to JSON.\n * @param screenRuleVO - The screen-rule value object to serialize.\n * @returns A defensive copy of the screen-rule payload.\n */\n static toJSON(screenRuleVO: ScreenRuleVO): CreateScreenRuleDTO {\n return clonePayload(screenRuleVO.payload);\n }\n}\n","import type { CreateScreenRuleDTO, ScreenRuleBodyComponent, ScreenRuleHeaderComponent } from '../contracts';\nimport { ScreenRuleVO } from '../value-objects';\n\nconst clonePartialPayload = (payload: Partial<CreateScreenRuleDTO>): Partial<CreateScreenRuleDTO> => ({\n ...payload,\n ...(payload.settings !== undefined\n ? {\n settings: {\n ...payload.settings,\n ...(payload.settings.header !== undefined ? { header: { ...payload.settings.header } } : {}),\n ...(payload.settings.body !== undefined ? { body: { ...payload.settings.body } } : {}),\n },\n }\n : {}),\n});\n\n/** Fluent builder for creating validated screen-rule value objects. */\nexport class ScreenRuleBuilder {\n private payload: Partial<CreateScreenRuleDTO> = {\n action: 'screen',\n settings: {},\n };\n\n private constructor(payload?: Partial<CreateScreenRuleDTO>) {\n if (payload !== undefined) this.withRule(payload);\n }\n\n /**\n * Creates a screen-rule builder.\n * @param payload - Optional initial screen-rule values.\n * @returns A new screen-rule builder.\n */\n static create(payload?: Partial<CreateScreenRuleDTO>): ScreenRuleBuilder {\n return new ScreenRuleBuilder(payload);\n }\n\n /**\n * Merges partial screen-rule values into the builder.\n * @param payload - Screen-rule values to merge.\n * @returns This builder instance.\n */\n withRule(payload: Partial<CreateScreenRuleDTO>): this {\n const snapshot = clonePartialPayload(payload);\n\n this.payload = {\n ...this.payload,\n ...snapshot,\n action: 'screen',\n settings: {\n ...this.payload.settings,\n ...snapshot.settings,\n },\n };\n\n return this;\n }\n\n /**\n * Sets the screen-rule name.\n * @param name - The screen-rule name.\n * @returns This builder instance.\n */\n withName(name: string): this {\n this.payload.name = name;\n return this;\n }\n\n /**\n * Sets the screen-rule header.\n * @param header - The header component.\n * @returns This builder instance.\n */\n withHeader(header: ScreenRuleHeaderComponent): this {\n this.payload.settings = {\n ...this.payload.settings,\n header: { ...header },\n };\n return this;\n }\n\n /**\n * Sets the screen-rule body.\n * @param body - The body component.\n * @returns This builder instance.\n */\n withBody(body: ScreenRuleBodyComponent): this {\n this.payload.settings = {\n ...this.payload.settings,\n body: { ...body },\n };\n return this;\n }\n\n /**\n * Builds a validated screen-rule value object.\n * @returns The completed screen-rule value object.\n * @throws {Error} If required screen-rule fields are missing or invalid.\n */\n build(): ScreenRuleVO {\n this.assertValidPayload(this.payload);\n\n return ScreenRuleVO.fromJSON({\n name: this.payload.name,\n action: 'screen',\n settings: {\n ...(this.payload.settings.header !== undefined ? { header: { ...this.payload.settings.header } } : {}),\n ...(this.payload.settings.body !== undefined ? { body: { ...this.payload.settings.body } } : {}),\n },\n });\n }\n\n private assertValidPayload(payload: Partial<CreateScreenRuleDTO>): asserts payload is CreateScreenRuleDTO {\n const invalidFields: string[] = [];\n const settings = payload.settings;\n const hasHeader = settings?.header !== undefined;\n const hasBody = settings?.body !== undefined;\n\n if (typeof payload.name !== 'string' || payload.name.trim().length === 0) invalidFields.push('name');\n if (!hasHeader && !hasBody) invalidFields.push('settings.header or settings.body');\n if (\n hasBody &&\n (settings?.body === null || typeof settings?.body !== 'object' || typeof settings.body.content !== 'string')\n )\n invalidFields.push('settings.body.content');\n\n if (invalidFields.length > 0)\n throw new Error(`Cannot build screen rule. Invalid or missing fields: ${invalidFields.join(', ')}`);\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/chat-config/builders/index.ts","../../../src/chat-config/value-objects/_screen-rule.ts","../../../src/chat-config/value-objects/_service-rule.ts","../../../src/chat-config/value-objects/_identification-rule.ts","../../../src/chat-config/builders/_screen-rule.ts","../../../src/chat-config/builders/_service-rule.ts","../../../src/chat-config/builders/_identification-rule.ts"],"sourcesContent":["export * from './_screen-rule';\nexport * from './_service-rule';\nexport * from './_identification-rule';\n","import type { CreateScreenRuleDTO } from '../contracts';\n\nconst clonePayload = (payload: CreateScreenRuleDTO): CreateScreenRuleDTO => ({\n name: payload.name,\n action: 'screen',\n settings: {\n ...(payload.settings.header !== undefined ? { header: { ...payload.settings.header } } : {}),\n ...(payload.settings.body !== undefined ? { body: { ...payload.settings.body } } : {}),\n },\n});\n\n/** Value object representing a complete screen-rule payload. */\nexport class ScreenRuleVO {\n readonly payload: CreateScreenRuleDTO;\n\n /**\n * Creates a screen-rule value object from a complete payload.\n * @param payload - The screen-rule payload to snapshot.\n */\n constructor(payload: CreateScreenRuleDTO) {\n this.payload = clonePayload(payload);\n }\n\n /**\n * Creates a value object from its JSON representation.\n * @param payload - The screen-rule JSON payload.\n * @returns A screen-rule value object containing a defensive snapshot.\n */\n static fromJSON(payload: CreateScreenRuleDTO): ScreenRuleVO {\n return new ScreenRuleVO(payload);\n }\n\n /**\n * Converts a screen-rule value object to JSON.\n * @param screenRuleVO - The screen-rule value object to serialize.\n * @returns A defensive copy of the screen-rule payload.\n */\n static toJSON(screenRuleVO: ScreenRuleVO): CreateScreenRuleDTO {\n return clonePayload(screenRuleVO.payload);\n }\n}\n","import type { CreateServiceRuleDTO } from '../contracts';\n\nconst clonePayload = (payload: CreateServiceRuleDTO): CreateServiceRuleDTO => ({\n name: payload.name,\n action: 'service',\n settings: {\n ...(payload.settings.header !== undefined ? { header: { ...payload.settings.header } } : {}),\n ...(payload.settings.body !== undefined ? { body: { ...payload.settings.body } } : {}),\n ...(payload.settings.features !== undefined ? { features: { ...payload.settings.features } } : {}),\n ...(payload.settings.behavior !== undefined ? { behavior: payload.settings.behavior } : {}),\n },\n});\n\n/** Value object representing a complete service-rule payload. */\nexport class ServiceRuleVO {\n readonly payload: CreateServiceRuleDTO;\n\n /**\n * Creates a service-rule value object from a complete payload.\n * @param payload - The service-rule payload to snapshot.\n */\n constructor(payload: CreateServiceRuleDTO) {\n this.payload = clonePayload(payload);\n }\n\n /**\n * Creates a value object from its JSON representation.\n * @param payload - The service-rule JSON payload.\n * @returns A service-rule value object containing a defensive snapshot.\n */\n static fromJSON(payload: CreateServiceRuleDTO): ServiceRuleVO {\n return new ServiceRuleVO(payload);\n }\n\n /**\n * Converts a service-rule value object to JSON.\n * @param serviceRuleVO - The service-rule value object to serialize.\n * @returns A defensive copy of the service-rule payload.\n */\n static toJSON(serviceRuleVO: ServiceRuleVO): CreateServiceRuleDTO {\n return clonePayload(serviceRuleVO.payload);\n }\n}\n","import type { CreateIdentificationRuleDTO } from '../contracts';\n\nconst clonePayload = (payload: CreateIdentificationRuleDTO): CreateIdentificationRuleDTO => ({\n name: payload.name,\n action: 'identification',\n settings: {\n ...(payload.settings.header !== undefined ? { header: { ...payload.settings.header } } : {}),\n ...(payload.settings.body !== undefined ? { body: { ...payload.settings.body } } : {}),\n form: {\n ...payload.settings.form,\n ...(payload.settings.form.fields !== undefined\n ? { fields: payload.settings.form.fields.map((field) => ({ ...field })) }\n : {}),\n },\n },\n});\n\n/** Value object representing a complete identification-rule payload. */\nexport class IdentificationRuleVO {\n readonly payload: CreateIdentificationRuleDTO;\n\n /**\n * Creates an identification-rule value object from a complete payload.\n * @param payload - The identification-rule payload to snapshot.\n */\n constructor(payload: CreateIdentificationRuleDTO) {\n this.payload = clonePayload(payload);\n }\n\n /**\n * Creates a value object from its JSON representation.\n * @param payload - The identification-rule JSON payload.\n * @returns An identification-rule value object containing a defensive snapshot.\n */\n static fromJSON(payload: CreateIdentificationRuleDTO): IdentificationRuleVO {\n return new IdentificationRuleVO(payload);\n }\n\n /**\n * Converts an identification-rule value object to JSON.\n * @param identificationRuleVO - The identification-rule value object to serialize.\n * @returns A defensive copy of the identification-rule payload.\n */\n static toJSON(identificationRuleVO: IdentificationRuleVO): CreateIdentificationRuleDTO {\n return clonePayload(identificationRuleVO.payload);\n }\n}\n","import type { CreateScreenRuleDTO, ScreenRuleBodyComponent, ScreenRuleHeaderComponent } from '../contracts';\nimport { ScreenRuleVO } from '../value-objects';\n\nconst clonePartialPayload = (payload: Partial<CreateScreenRuleDTO>): Partial<CreateScreenRuleDTO> => ({\n ...payload,\n ...(payload.settings !== undefined\n ? {\n settings: {\n ...payload.settings,\n ...(payload.settings.header !== undefined ? { header: { ...payload.settings.header } } : {}),\n ...(payload.settings.body !== undefined ? { body: { ...payload.settings.body } } : {}),\n },\n }\n : {}),\n});\n\n/** Fluent builder for creating validated screen-rule value objects. */\nexport class ScreenRuleBuilder {\n private payload: Partial<CreateScreenRuleDTO> = {\n action: 'screen',\n settings: {},\n };\n\n private constructor(payload?: Partial<CreateScreenRuleDTO>) {\n if (payload !== undefined) this.withRule(payload);\n }\n\n /**\n * Creates a screen-rule builder.\n * @param payload - Optional initial screen-rule values.\n * @returns A new screen-rule builder.\n */\n static create(payload?: Partial<CreateScreenRuleDTO>): ScreenRuleBuilder {\n return new ScreenRuleBuilder(payload);\n }\n\n /**\n * Merges partial screen-rule values into the builder.\n * @param payload - Screen-rule values to merge.\n * @returns This builder instance.\n */\n withRule(payload: Partial<CreateScreenRuleDTO>): this {\n const snapshot = clonePartialPayload(payload);\n\n this.payload = {\n ...this.payload,\n ...snapshot,\n action: 'screen',\n settings: {\n ...this.payload.settings,\n ...snapshot.settings,\n },\n };\n\n return this;\n }\n\n /**\n * Sets the screen-rule name.\n * @param name - The screen-rule name.\n * @returns This builder instance.\n */\n withName(name: string): this {\n this.payload.name = name;\n return this;\n }\n\n /**\n * Sets the screen-rule header.\n * @param header - The header component.\n * @returns This builder instance.\n */\n withHeader(header: ScreenRuleHeaderComponent): this {\n this.payload.settings = {\n ...this.payload.settings,\n header: { ...header },\n };\n return this;\n }\n\n /**\n * Sets the screen-rule body.\n * @param body - The body component.\n * @returns This builder instance.\n */\n withBody(body: ScreenRuleBodyComponent): this {\n this.payload.settings = {\n ...this.payload.settings,\n body: { ...body },\n };\n return this;\n }\n\n /**\n * Builds a validated screen-rule value object.\n * @returns The completed screen-rule value object.\n * @throws {Error} If required screen-rule fields are missing or invalid.\n */\n build(): ScreenRuleVO {\n this.assertValidPayload(this.payload);\n\n return ScreenRuleVO.fromJSON({\n name: this.payload.name,\n action: 'screen',\n settings: {\n ...(this.payload.settings.header !== undefined ? { header: { ...this.payload.settings.header } } : {}),\n ...(this.payload.settings.body !== undefined ? { body: { ...this.payload.settings.body } } : {}),\n },\n });\n }\n\n private assertValidPayload(payload: Partial<CreateScreenRuleDTO>): asserts payload is CreateScreenRuleDTO {\n const invalidFields: string[] = [];\n const settings = payload.settings;\n const hasHeader = settings?.header !== undefined;\n const hasBody = settings?.body !== undefined;\n\n if (typeof payload.name !== 'string' || payload.name.trim().length === 0) invalidFields.push('name');\n if (!hasHeader && !hasBody) invalidFields.push('settings.header or settings.body');\n if (hasHeader && (settings?.header === null || typeof settings?.header !== 'object'))\n invalidFields.push('settings.header');\n if (hasBody && (settings?.body === null || typeof settings?.body !== 'object')) invalidFields.push('settings.body');\n\n if (invalidFields.length > 0)\n throw new Error(`Cannot build screen rule. Invalid or missing fields: ${invalidFields.join(', ')}`);\n }\n}\n","import type {\n CreateServiceRuleDTO,\n ScreenRuleBodyComponent,\n ScreenRuleHeaderComponent,\n ServiceRuleBehavior,\n ServiceRuleFeatures,\n} from '../contracts';\nimport { ServiceRuleVO } from '../value-objects';\n\nconst clonePartialPayload = (payload: Partial<CreateServiceRuleDTO>): Partial<CreateServiceRuleDTO> => ({\n ...payload,\n ...(payload.settings !== undefined\n ? {\n settings: {\n ...payload.settings,\n ...(payload.settings.header !== undefined ? { header: { ...payload.settings.header } } : {}),\n ...(payload.settings.body !== undefined ? { body: { ...payload.settings.body } } : {}),\n ...(payload.settings.features !== undefined ? { features: { ...payload.settings.features } } : {}),\n },\n }\n : {}),\n});\n\n/** Fluent builder for creating validated service-rule value objects. */\nexport class ServiceRuleBuilder {\n private payload: Partial<CreateServiceRuleDTO> = {\n action: 'service',\n settings: {},\n };\n\n private constructor(payload?: Partial<CreateServiceRuleDTO>) {\n if (payload !== undefined) this.withRule(payload);\n }\n\n /**\n * Creates a service-rule builder.\n * @param payload - Optional initial service-rule values.\n * @returns A new service-rule builder.\n */\n static create(payload?: Partial<CreateServiceRuleDTO>): ServiceRuleBuilder {\n return new ServiceRuleBuilder(payload);\n }\n\n /**\n * Merges partial service-rule values into the builder.\n * @param payload - Service-rule values to merge.\n * @returns This builder instance.\n */\n withRule(payload: Partial<CreateServiceRuleDTO>): this {\n const snapshot = clonePartialPayload(payload);\n\n this.payload = {\n ...this.payload,\n ...snapshot,\n action: 'service',\n settings: {\n ...this.payload.settings,\n ...snapshot.settings,\n ...(snapshot.settings?.features !== undefined\n ? { features: { ...this.payload.settings?.features, ...snapshot.settings.features } }\n : {}),\n },\n };\n\n return this;\n }\n\n /**\n * Sets the service-rule name.\n * @param name - The service-rule name.\n * @returns This builder instance.\n */\n withName(name: string): this {\n this.payload.name = name;\n return this;\n }\n\n /**\n * Sets the service-rule header.\n * @param header - The header component.\n * @returns This builder instance.\n */\n withHeader(header: ScreenRuleHeaderComponent): this {\n this.payload.settings = {\n ...this.payload.settings,\n header: { ...header },\n };\n return this;\n }\n\n /**\n * Sets the service-rule body.\n * @param body - The body component.\n * @returns This builder instance.\n */\n withBody(body: ScreenRuleBodyComponent): this {\n this.payload.settings = {\n ...this.payload.settings,\n body: { ...body },\n };\n return this;\n }\n\n /**\n * Sets the feature flags available during the service attendance.\n * @param features - The service feature flags.\n * @returns This builder instance.\n */\n withFeatures(features: ServiceRuleFeatures): this {\n this.payload.settings = {\n ...this.payload.settings,\n features: { ...features },\n };\n return this;\n }\n\n /**\n * Sets whether the service attendance is chat or voice.\n * @param behavior - The attendance behavior.\n * @returns This builder instance.\n */\n withBehavior(behavior: ServiceRuleBehavior): this {\n this.payload.settings = {\n ...this.payload.settings,\n behavior,\n };\n return this;\n }\n\n /**\n * Builds a validated service-rule value object.\n * @returns The completed service-rule value object.\n * @throws {Error} If required service-rule fields are missing or invalid.\n */\n build(): ServiceRuleVO {\n this.assertValidPayload(this.payload);\n\n return ServiceRuleVO.fromJSON({\n name: this.payload.name,\n action: 'service',\n settings: {\n ...(this.payload.settings.header !== undefined ? { header: { ...this.payload.settings.header } } : {}),\n ...(this.payload.settings.body !== undefined ? { body: { ...this.payload.settings.body } } : {}),\n ...(this.payload.settings.features !== undefined ? { features: { ...this.payload.settings.features } } : {}),\n ...(this.payload.settings.behavior !== undefined ? { behavior: this.payload.settings.behavior } : {}),\n },\n });\n }\n\n private assertValidPayload(payload: Partial<CreateServiceRuleDTO>): asserts payload is CreateServiceRuleDTO {\n const invalidFields: string[] = [];\n const settings = payload.settings;\n const hasHeader = settings?.header !== undefined;\n const hasBody = settings?.body !== undefined;\n\n if (typeof payload.name !== 'string' || payload.name.trim().length === 0) invalidFields.push('name');\n if (!hasHeader && !hasBody) invalidFields.push('settings.header or settings.body');\n if (hasHeader && (settings?.header === null || typeof settings?.header !== 'object'))\n invalidFields.push('settings.header');\n if (hasBody && (settings?.body === null || typeof settings?.body !== 'object')) invalidFields.push('settings.body');\n\n if (invalidFields.length > 0)\n throw new Error(`Cannot build service rule. Invalid or missing fields: ${invalidFields.join(', ')}`);\n }\n}\n","import type {\n CreateIdentificationRuleDTO,\n IdentificationRuleFormComponent,\n ScreenRuleBodyComponent,\n ScreenRuleHeaderComponent,\n} from '../contracts';\nimport { IdentificationRuleVO } from '../value-objects';\n\nconst clonePartialPayload = (payload: Partial<CreateIdentificationRuleDTO>): Partial<CreateIdentificationRuleDTO> => ({\n ...payload,\n ...(payload.settings !== undefined\n ? {\n settings: {\n ...payload.settings,\n ...(payload.settings.header !== undefined ? { header: { ...payload.settings.header } } : {}),\n ...(payload.settings.body !== undefined ? { body: { ...payload.settings.body } } : {}),\n ...(payload.settings.form !== undefined\n ? {\n form: {\n ...payload.settings.form,\n ...(payload.settings.form.fields !== undefined\n ? { fields: payload.settings.form.fields.map((field) => ({ ...field })) }\n : {}),\n },\n }\n : {}),\n },\n }\n : {}),\n});\n\n/** Fluent builder for creating validated identification-rule value objects. */\nexport class IdentificationRuleBuilder {\n private payload: Partial<CreateIdentificationRuleDTO> = {\n action: 'identification',\n settings: {\n form: {},\n },\n };\n\n private constructor(payload?: Partial<CreateIdentificationRuleDTO>) {\n if (payload !== undefined) this.withRule(payload);\n }\n\n /**\n * Creates an identification-rule builder.\n * @param payload - Optional initial identification-rule values.\n * @returns A new identification-rule builder.\n */\n static create(payload?: Partial<CreateIdentificationRuleDTO>): IdentificationRuleBuilder {\n return new IdentificationRuleBuilder(payload);\n }\n\n /**\n * Merges partial identification-rule values into the builder.\n * @param payload - Identification-rule values to merge.\n * @returns This builder instance.\n */\n withRule(payload: Partial<CreateIdentificationRuleDTO>): this {\n const snapshot = clonePartialPayload(payload);\n\n this.payload = {\n ...this.payload,\n ...snapshot,\n action: 'identification',\n settings: {\n ...this.payload.settings,\n ...snapshot.settings,\n form: {\n ...this.payload.settings?.form,\n ...snapshot.settings?.form,\n ...(snapshot.settings?.form?.fields !== undefined\n ? { fields: snapshot.settings.form.fields.map((field) => ({ ...field })) }\n : {}),\n },\n },\n };\n\n return this;\n }\n\n /**\n * Sets the identification-rule name.\n * @param name - The identification-rule name.\n * @returns This builder instance.\n */\n withName(name: string): this {\n this.payload.name = name;\n return this;\n }\n\n /**\n * Sets the identification-rule header.\n * @param header - The header component.\n * @returns This builder instance.\n */\n withHeader(header: ScreenRuleHeaderComponent): this {\n this.payload.settings = {\n ...this.payload.settings,\n header: { ...header },\n form: this.payload.settings?.form ?? {},\n };\n return this;\n }\n\n /**\n * Sets the identification-rule body.\n * @param body - The body component.\n * @returns This builder instance.\n */\n withBody(body: ScreenRuleBodyComponent): this {\n this.payload.settings = {\n ...this.payload.settings,\n body: { ...body },\n form: this.payload.settings?.form ?? {},\n };\n return this;\n }\n\n /**\n * Sets the identification-rule form component.\n * @param form - The form component.\n * @returns This builder instance.\n */\n withForm(form: IdentificationRuleFormComponent): this {\n this.payload.settings = {\n ...this.payload.settings,\n form: {\n ...form,\n ...(form.fields !== undefined ? { fields: form.fields.map((field) => ({ ...field })) } : {}),\n },\n };\n return this;\n }\n\n /**\n * Builds a validated identification-rule value object.\n * @returns The completed identification-rule value object.\n * @throws {Error} If required identification-rule fields are missing or invalid.\n */\n build(): IdentificationRuleVO {\n this.assertValidPayload(this.payload);\n\n return IdentificationRuleVO.fromJSON({\n name: this.payload.name,\n action: 'identification',\n settings: {\n ...(this.payload.settings.header !== undefined ? { header: { ...this.payload.settings.header } } : {}),\n ...(this.payload.settings.body !== undefined ? { body: { ...this.payload.settings.body } } : {}),\n form: {\n ...this.payload.settings.form,\n ...(this.payload.settings.form.fields !== undefined\n ? { fields: this.payload.settings.form.fields.map((field) => ({ ...field })) }\n : {}),\n },\n },\n });\n }\n\n private assertValidPayload(\n payload: Partial<CreateIdentificationRuleDTO>,\n ): asserts payload is CreateIdentificationRuleDTO {\n const invalidFields: string[] = [];\n const settings = payload.settings;\n const hasHeader = settings?.header !== undefined;\n const hasBody = settings?.body !== undefined;\n const form = settings?.form;\n\n if (typeof payload.name !== 'string' || payload.name.trim().length === 0) invalidFields.push('name');\n if (!hasHeader && !hasBody) invalidFields.push('settings.header or settings.body');\n if (hasHeader && (settings?.header === null || typeof settings?.header !== 'object'))\n invalidFields.push('settings.header');\n if (hasBody && (settings?.body === null || typeof settings?.body !== 'object')) invalidFields.push('settings.body');\n if (form === undefined || form === null || typeof form !== 'object') invalidFields.push('settings.form');\n\n if (invalidFields.length > 0)\n throw new Error(`Cannot build identification rule. Invalid or missing fields: ${invalidFields.join(', ')}`);\n }\n}\n"],"mappings":"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","names":["clonePayload","clonePayload","clonePartialPayload","clonePartialPayload"]}
|