@opens/gateways 1.16.25 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_screen-rule-FlIJzVXA.d.mts +20 -0
- package/dist/_screen-rule-FlIJzVXA.d.ts +20 -0
- package/dist/chat-config/builders/index.d.mts +47 -0
- package/dist/chat-config/builders/index.d.ts +47 -0
- package/dist/chat-config/builders/index.js +174 -0
- package/dist/chat-config/builders/index.js.map +1 -0
- package/dist/chat-config/builders/index.mjs +147 -0
- package/dist/chat-config/builders/index.mjs.map +1 -0
- package/dist/chat-config/contracts/index.d.mts +2 -0
- package/dist/chat-config/contracts/index.d.ts +2 -0
- package/dist/chat-config/value-objects/index.d.mts +25 -0
- package/dist/chat-config/value-objects/index.d.ts +25 -0
- package/dist/chat-config/value-objects/index.js +66 -0
- package/dist/chat-config/value-objects/index.js.map +1 -0
- package/dist/chat-config/value-objects/index.mjs +39 -0
- package/dist/chat-config/value-objects/index.mjs.map +1 -0
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/package.json +12 -2
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Body content rendered by a screen rule. */
|
|
2
|
+
interface ScreenRuleBodyComponent {
|
|
3
|
+
content: string;
|
|
4
|
+
}
|
|
5
|
+
/** Header content rendered by a screen rule. */
|
|
6
|
+
interface ScreenRuleHeaderComponent {
|
|
7
|
+
content?: string;
|
|
8
|
+
logo?: string;
|
|
9
|
+
}
|
|
10
|
+
/** Payload used to create a screen rule. */
|
|
11
|
+
interface CreateScreenRuleDTO {
|
|
12
|
+
name: string;
|
|
13
|
+
action: 'screen';
|
|
14
|
+
settings: {
|
|
15
|
+
body?: ScreenRuleBodyComponent;
|
|
16
|
+
header?: ScreenRuleHeaderComponent;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export type { CreateScreenRuleDTO as C, ScreenRuleHeaderComponent as S, ScreenRuleBodyComponent as a };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Body content rendered by a screen rule. */
|
|
2
|
+
interface ScreenRuleBodyComponent {
|
|
3
|
+
content: string;
|
|
4
|
+
}
|
|
5
|
+
/** Header content rendered by a screen rule. */
|
|
6
|
+
interface ScreenRuleHeaderComponent {
|
|
7
|
+
content?: string;
|
|
8
|
+
logo?: string;
|
|
9
|
+
}
|
|
10
|
+
/** Payload used to create a screen rule. */
|
|
11
|
+
interface CreateScreenRuleDTO {
|
|
12
|
+
name: string;
|
|
13
|
+
action: 'screen';
|
|
14
|
+
settings: {
|
|
15
|
+
body?: ScreenRuleBodyComponent;
|
|
16
|
+
header?: ScreenRuleHeaderComponent;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export type { CreateScreenRuleDTO as C, ScreenRuleHeaderComponent as S, ScreenRuleBodyComponent as a };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { C as CreateScreenRuleDTO, S as ScreenRuleHeaderComponent, a as ScreenRuleBodyComponent } from '../../_screen-rule-FlIJzVXA.mjs';
|
|
2
|
+
import { ScreenRuleVO } from '../value-objects/index.mjs';
|
|
3
|
+
|
|
4
|
+
/** Fluent builder for creating validated screen-rule value objects. */
|
|
5
|
+
declare class ScreenRuleBuilder {
|
|
6
|
+
private payload;
|
|
7
|
+
private constructor();
|
|
8
|
+
/**
|
|
9
|
+
* Creates a screen-rule builder.
|
|
10
|
+
* @param payload - Optional initial screen-rule values.
|
|
11
|
+
* @returns A new screen-rule builder.
|
|
12
|
+
*/
|
|
13
|
+
static create(payload?: Partial<CreateScreenRuleDTO>): ScreenRuleBuilder;
|
|
14
|
+
/**
|
|
15
|
+
* Merges partial screen-rule values into the builder.
|
|
16
|
+
* @param payload - Screen-rule values to merge.
|
|
17
|
+
* @returns This builder instance.
|
|
18
|
+
*/
|
|
19
|
+
withRule(payload: Partial<CreateScreenRuleDTO>): this;
|
|
20
|
+
/**
|
|
21
|
+
* Sets the screen-rule name.
|
|
22
|
+
* @param name - The screen-rule name.
|
|
23
|
+
* @returns This builder instance.
|
|
24
|
+
*/
|
|
25
|
+
withName(name: string): this;
|
|
26
|
+
/**
|
|
27
|
+
* Sets the screen-rule header.
|
|
28
|
+
* @param header - The header component.
|
|
29
|
+
* @returns This builder instance.
|
|
30
|
+
*/
|
|
31
|
+
withHeader(header: ScreenRuleHeaderComponent): this;
|
|
32
|
+
/**
|
|
33
|
+
* Sets the screen-rule body.
|
|
34
|
+
* @param body - The body component.
|
|
35
|
+
* @returns This builder instance.
|
|
36
|
+
*/
|
|
37
|
+
withBody(body: ScreenRuleBodyComponent): this;
|
|
38
|
+
/**
|
|
39
|
+
* Builds a validated screen-rule value object.
|
|
40
|
+
* @returns The completed screen-rule value object.
|
|
41
|
+
* @throws {Error} If required screen-rule fields are missing or invalid.
|
|
42
|
+
*/
|
|
43
|
+
build(): ScreenRuleVO;
|
|
44
|
+
private assertValidPayload;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { ScreenRuleBuilder };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { C as CreateScreenRuleDTO, S as ScreenRuleHeaderComponent, a as ScreenRuleBodyComponent } from '../../_screen-rule-FlIJzVXA.js';
|
|
2
|
+
import { ScreenRuleVO } from '../value-objects/index.js';
|
|
3
|
+
|
|
4
|
+
/** Fluent builder for creating validated screen-rule value objects. */
|
|
5
|
+
declare class ScreenRuleBuilder {
|
|
6
|
+
private payload;
|
|
7
|
+
private constructor();
|
|
8
|
+
/**
|
|
9
|
+
* Creates a screen-rule builder.
|
|
10
|
+
* @param payload - Optional initial screen-rule values.
|
|
11
|
+
* @returns A new screen-rule builder.
|
|
12
|
+
*/
|
|
13
|
+
static create(payload?: Partial<CreateScreenRuleDTO>): ScreenRuleBuilder;
|
|
14
|
+
/**
|
|
15
|
+
* Merges partial screen-rule values into the builder.
|
|
16
|
+
* @param payload - Screen-rule values to merge.
|
|
17
|
+
* @returns This builder instance.
|
|
18
|
+
*/
|
|
19
|
+
withRule(payload: Partial<CreateScreenRuleDTO>): this;
|
|
20
|
+
/**
|
|
21
|
+
* Sets the screen-rule name.
|
|
22
|
+
* @param name - The screen-rule name.
|
|
23
|
+
* @returns This builder instance.
|
|
24
|
+
*/
|
|
25
|
+
withName(name: string): this;
|
|
26
|
+
/**
|
|
27
|
+
* Sets the screen-rule header.
|
|
28
|
+
* @param header - The header component.
|
|
29
|
+
* @returns This builder instance.
|
|
30
|
+
*/
|
|
31
|
+
withHeader(header: ScreenRuleHeaderComponent): this;
|
|
32
|
+
/**
|
|
33
|
+
* Sets the screen-rule body.
|
|
34
|
+
* @param body - The body component.
|
|
35
|
+
* @returns This builder instance.
|
|
36
|
+
*/
|
|
37
|
+
withBody(body: ScreenRuleBodyComponent): this;
|
|
38
|
+
/**
|
|
39
|
+
* Builds a validated screen-rule value object.
|
|
40
|
+
* @returns The completed screen-rule value object.
|
|
41
|
+
* @throws {Error} If required screen-rule fields are missing or invalid.
|
|
42
|
+
*/
|
|
43
|
+
build(): ScreenRuleVO;
|
|
44
|
+
private assertValidPayload;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { ScreenRuleBuilder };
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/chat-config/builders/index.ts
|
|
21
|
+
var builders_exports = {};
|
|
22
|
+
__export(builders_exports, {
|
|
23
|
+
ScreenRuleBuilder: () => ScreenRuleBuilder
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(builders_exports);
|
|
26
|
+
|
|
27
|
+
// src/chat-config/value-objects/_screen-rule.ts
|
|
28
|
+
var clonePayload = (payload) => ({
|
|
29
|
+
name: payload.name,
|
|
30
|
+
action: "screen",
|
|
31
|
+
settings: {
|
|
32
|
+
...payload.settings.header !== void 0 ? { header: { ...payload.settings.header } } : {},
|
|
33
|
+
...payload.settings.body !== void 0 ? { body: { ...payload.settings.body } } : {}
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
var ScreenRuleVO = class _ScreenRuleVO {
|
|
37
|
+
payload;
|
|
38
|
+
/**
|
|
39
|
+
* Creates a screen-rule value object from a complete payload.
|
|
40
|
+
* @param payload - The screen-rule payload to snapshot.
|
|
41
|
+
*/
|
|
42
|
+
constructor(payload) {
|
|
43
|
+
this.payload = clonePayload(payload);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Creates a value object from its JSON representation.
|
|
47
|
+
* @param payload - The screen-rule JSON payload.
|
|
48
|
+
* @returns A screen-rule value object containing a defensive snapshot.
|
|
49
|
+
*/
|
|
50
|
+
static fromJSON(payload) {
|
|
51
|
+
return new _ScreenRuleVO(payload);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Converts a screen-rule value object to JSON.
|
|
55
|
+
* @param screenRuleVO - The screen-rule value object to serialize.
|
|
56
|
+
* @returns A defensive copy of the screen-rule payload.
|
|
57
|
+
*/
|
|
58
|
+
static toJSON(screenRuleVO) {
|
|
59
|
+
return clonePayload(screenRuleVO.payload);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
// src/chat-config/builders/_screen-rule.ts
|
|
64
|
+
var clonePartialPayload = (payload) => ({
|
|
65
|
+
...payload,
|
|
66
|
+
...payload.settings !== void 0 ? {
|
|
67
|
+
settings: {
|
|
68
|
+
...payload.settings,
|
|
69
|
+
...payload.settings.header !== void 0 ? { header: { ...payload.settings.header } } : {},
|
|
70
|
+
...payload.settings.body !== void 0 ? { body: { ...payload.settings.body } } : {}
|
|
71
|
+
}
|
|
72
|
+
} : {}
|
|
73
|
+
});
|
|
74
|
+
var ScreenRuleBuilder = class _ScreenRuleBuilder {
|
|
75
|
+
payload = {
|
|
76
|
+
action: "screen",
|
|
77
|
+
settings: {}
|
|
78
|
+
};
|
|
79
|
+
constructor(payload) {
|
|
80
|
+
if (payload !== void 0) this.withRule(payload);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Creates a screen-rule builder.
|
|
84
|
+
* @param payload - Optional initial screen-rule values.
|
|
85
|
+
* @returns A new screen-rule builder.
|
|
86
|
+
*/
|
|
87
|
+
static create(payload) {
|
|
88
|
+
return new _ScreenRuleBuilder(payload);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Merges partial screen-rule values into the builder.
|
|
92
|
+
* @param payload - Screen-rule values to merge.
|
|
93
|
+
* @returns This builder instance.
|
|
94
|
+
*/
|
|
95
|
+
withRule(payload) {
|
|
96
|
+
const snapshot = clonePartialPayload(payload);
|
|
97
|
+
this.payload = {
|
|
98
|
+
...this.payload,
|
|
99
|
+
...snapshot,
|
|
100
|
+
action: "screen",
|
|
101
|
+
settings: {
|
|
102
|
+
...this.payload.settings,
|
|
103
|
+
...snapshot.settings
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Sets the screen-rule name.
|
|
110
|
+
* @param name - The screen-rule name.
|
|
111
|
+
* @returns This builder instance.
|
|
112
|
+
*/
|
|
113
|
+
withName(name) {
|
|
114
|
+
this.payload.name = name;
|
|
115
|
+
return this;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Sets the screen-rule header.
|
|
119
|
+
* @param header - The header component.
|
|
120
|
+
* @returns This builder instance.
|
|
121
|
+
*/
|
|
122
|
+
withHeader(header) {
|
|
123
|
+
this.payload.settings = {
|
|
124
|
+
...this.payload.settings,
|
|
125
|
+
header: { ...header }
|
|
126
|
+
};
|
|
127
|
+
return this;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Sets the screen-rule body.
|
|
131
|
+
* @param body - The body component.
|
|
132
|
+
* @returns This builder instance.
|
|
133
|
+
*/
|
|
134
|
+
withBody(body) {
|
|
135
|
+
this.payload.settings = {
|
|
136
|
+
...this.payload.settings,
|
|
137
|
+
body: { ...body }
|
|
138
|
+
};
|
|
139
|
+
return this;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Builds a validated screen-rule value object.
|
|
143
|
+
* @returns The completed screen-rule value object.
|
|
144
|
+
* @throws {Error} If required screen-rule fields are missing or invalid.
|
|
145
|
+
*/
|
|
146
|
+
build() {
|
|
147
|
+
this.assertValidPayload(this.payload);
|
|
148
|
+
return ScreenRuleVO.fromJSON({
|
|
149
|
+
name: this.payload.name,
|
|
150
|
+
action: "screen",
|
|
151
|
+
settings: {
|
|
152
|
+
...this.payload.settings.header !== void 0 ? { header: { ...this.payload.settings.header } } : {},
|
|
153
|
+
...this.payload.settings.body !== void 0 ? { body: { ...this.payload.settings.body } } : {}
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
assertValidPayload(payload) {
|
|
158
|
+
const invalidFields = [];
|
|
159
|
+
const settings = payload.settings;
|
|
160
|
+
const hasHeader = settings?.header !== void 0;
|
|
161
|
+
const hasBody = settings?.body !== void 0;
|
|
162
|
+
if (typeof payload.name !== "string" || payload.name.trim().length === 0) invalidFields.push("name");
|
|
163
|
+
if (!hasHeader && !hasBody) invalidFields.push("settings.header or settings.body");
|
|
164
|
+
if (hasBody && (settings?.body === null || typeof settings?.body !== "object" || typeof settings.body.content !== "string"))
|
|
165
|
+
invalidFields.push("settings.body.content");
|
|
166
|
+
if (invalidFields.length > 0)
|
|
167
|
+
throw new Error(`Cannot build screen rule. Invalid or missing fields: ${invalidFields.join(", ")}`);
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
171
|
+
0 && (module.exports = {
|
|
172
|
+
ScreenRuleBuilder
|
|
173
|
+
});
|
|
174
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEA,IAAM,eAAe,CAAC,aAAuD;AAAA,EAC3E,MAAM,QAAQ;AAAA,EACd,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,GAAI,QAAQ,SAAS,WAAW,SAAY,EAAE,QAAQ,EAAE,GAAG,QAAQ,SAAS,OAAO,EAAE,IAAI,CAAC;AAAA,IAC1F,GAAI,QAAQ,SAAS,SAAS,SAAY,EAAE,MAAM,EAAE,GAAG,QAAQ,SAAS,KAAK,EAAE,IAAI,CAAC;AAAA,EACtF;AACF;AAGO,IAAM,eAAN,MAAM,cAAa;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,YAAY,SAA8B;AACxC,SAAK,UAAU,aAAa,OAAO;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,SAAS,SAA4C;AAC1D,WAAO,IAAI,cAAa,OAAO;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,OAAO,cAAiD;AAC7D,WAAO,aAAa,aAAa,OAAO;AAAA,EAC1C;AACF;;;ACrCA,IAAM,sBAAsB,CAAC,aAAyE;AAAA,EACpG,GAAG;AAAA,EACH,GAAI,QAAQ,aAAa,SACrB;AAAA,IACE,UAAU;AAAA,MACR,GAAG,QAAQ;AAAA,MACX,GAAI,QAAQ,SAAS,WAAW,SAAY,EAAE,QAAQ,EAAE,GAAG,QAAQ,SAAS,OAAO,EAAE,IAAI,CAAC;AAAA,MAC1F,GAAI,QAAQ,SAAS,SAAS,SAAY,EAAE,MAAM,EAAE,GAAG,QAAQ,SAAS,KAAK,EAAE,IAAI,CAAC;AAAA,IACtF;AAAA,EACF,IACA,CAAC;AACP;AAGO,IAAM,oBAAN,MAAM,mBAAkB;AAAA,EACrB,UAAwC;AAAA,IAC9C,QAAQ;AAAA,IACR,UAAU,CAAC;AAAA,EACb;AAAA,EAEQ,YAAY,SAAwC;AAC1D,QAAI,YAAY,OAAW,MAAK,SAAS,OAAO;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,OAAO,SAA2D;AACvE,WAAO,IAAI,mBAAkB,OAAO;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAS,SAA6C;AACpD,UAAM,WAAW,oBAAoB,OAAO;AAE5C,SAAK,UAAU;AAAA,MACb,GAAG,KAAK;AAAA,MACR,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,UAAU;AAAA,QACR,GAAG,KAAK,QAAQ;AAAA,QAChB,GAAG,SAAS;AAAA,MACd;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAS,MAAoB;AAC3B,SAAK,QAAQ,OAAO;AACpB,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,WAAW,QAAyC;AAClD,SAAK,QAAQ,WAAW;AAAA,MACtB,GAAG,KAAK,QAAQ;AAAA,MAChB,QAAQ,EAAE,GAAG,OAAO;AAAA,IACtB;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAS,MAAqC;AAC5C,SAAK,QAAQ,WAAW;AAAA,MACtB,GAAG,KAAK,QAAQ;AAAA,MAChB,MAAM,EAAE,GAAG,KAAK;AAAA,IAClB;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAsB;AACpB,SAAK,mBAAmB,KAAK,OAAO;AAEpC,WAAO,aAAa,SAAS;AAAA,MAC3B,MAAM,KAAK,QAAQ;AAAA,MACnB,QAAQ;AAAA,MACR,UAAU;AAAA,QACR,GAAI,KAAK,QAAQ,SAAS,WAAW,SAAY,EAAE,QAAQ,EAAE,GAAG,KAAK,QAAQ,SAAS,OAAO,EAAE,IAAI,CAAC;AAAA,QACpG,GAAI,KAAK,QAAQ,SAAS,SAAS,SAAY,EAAE,MAAM,EAAE,GAAG,KAAK,QAAQ,SAAS,KAAK,EAAE,IAAI,CAAC;AAAA,MAChG;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEQ,mBAAmB,SAA+E;AACxG,UAAM,gBAA0B,CAAC;AACjC,UAAM,WAAW,QAAQ;AACzB,UAAM,YAAY,UAAU,WAAW;AACvC,UAAM,UAAU,UAAU,SAAS;AAEnC,QAAI,OAAO,QAAQ,SAAS,YAAY,QAAQ,KAAK,KAAK,EAAE,WAAW,EAAG,eAAc,KAAK,MAAM;AACnG,QAAI,CAAC,aAAa,CAAC,QAAS,eAAc,KAAK,kCAAkC;AACjF,QACE,YACC,UAAU,SAAS,QAAQ,OAAO,UAAU,SAAS,YAAY,OAAO,SAAS,KAAK,YAAY;AAEnG,oBAAc,KAAK,uBAAuB;AAE5C,QAAI,cAAc,SAAS;AACzB,YAAM,IAAI,MAAM,wDAAwD,cAAc,KAAK,IAAI,CAAC,EAAE;AAAA,EACtG;AACF;","names":[]}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// src/chat-config/value-objects/_screen-rule.ts
|
|
2
|
+
var clonePayload = (payload) => ({
|
|
3
|
+
name: payload.name,
|
|
4
|
+
action: "screen",
|
|
5
|
+
settings: {
|
|
6
|
+
...payload.settings.header !== void 0 ? { header: { ...payload.settings.header } } : {},
|
|
7
|
+
...payload.settings.body !== void 0 ? { body: { ...payload.settings.body } } : {}
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
var ScreenRuleVO = class _ScreenRuleVO {
|
|
11
|
+
payload;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a screen-rule value object from a complete payload.
|
|
14
|
+
* @param payload - The screen-rule payload to snapshot.
|
|
15
|
+
*/
|
|
16
|
+
constructor(payload) {
|
|
17
|
+
this.payload = clonePayload(payload);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Creates a value object from its JSON representation.
|
|
21
|
+
* @param payload - The screen-rule JSON payload.
|
|
22
|
+
* @returns A screen-rule value object containing a defensive snapshot.
|
|
23
|
+
*/
|
|
24
|
+
static fromJSON(payload) {
|
|
25
|
+
return new _ScreenRuleVO(payload);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Converts a screen-rule value object to JSON.
|
|
29
|
+
* @param screenRuleVO - The screen-rule value object to serialize.
|
|
30
|
+
* @returns A defensive copy of the screen-rule payload.
|
|
31
|
+
*/
|
|
32
|
+
static toJSON(screenRuleVO) {
|
|
33
|
+
return clonePayload(screenRuleVO.payload);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
// src/chat-config/builders/_screen-rule.ts
|
|
38
|
+
var clonePartialPayload = (payload) => ({
|
|
39
|
+
...payload,
|
|
40
|
+
...payload.settings !== void 0 ? {
|
|
41
|
+
settings: {
|
|
42
|
+
...payload.settings,
|
|
43
|
+
...payload.settings.header !== void 0 ? { header: { ...payload.settings.header } } : {},
|
|
44
|
+
...payload.settings.body !== void 0 ? { body: { ...payload.settings.body } } : {}
|
|
45
|
+
}
|
|
46
|
+
} : {}
|
|
47
|
+
});
|
|
48
|
+
var ScreenRuleBuilder = class _ScreenRuleBuilder {
|
|
49
|
+
payload = {
|
|
50
|
+
action: "screen",
|
|
51
|
+
settings: {}
|
|
52
|
+
};
|
|
53
|
+
constructor(payload) {
|
|
54
|
+
if (payload !== void 0) this.withRule(payload);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Creates a screen-rule builder.
|
|
58
|
+
* @param payload - Optional initial screen-rule values.
|
|
59
|
+
* @returns A new screen-rule builder.
|
|
60
|
+
*/
|
|
61
|
+
static create(payload) {
|
|
62
|
+
return new _ScreenRuleBuilder(payload);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Merges partial screen-rule values into the builder.
|
|
66
|
+
* @param payload - Screen-rule values to merge.
|
|
67
|
+
* @returns This builder instance.
|
|
68
|
+
*/
|
|
69
|
+
withRule(payload) {
|
|
70
|
+
const snapshot = clonePartialPayload(payload);
|
|
71
|
+
this.payload = {
|
|
72
|
+
...this.payload,
|
|
73
|
+
...snapshot,
|
|
74
|
+
action: "screen",
|
|
75
|
+
settings: {
|
|
76
|
+
...this.payload.settings,
|
|
77
|
+
...snapshot.settings
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Sets the screen-rule name.
|
|
84
|
+
* @param name - The screen-rule name.
|
|
85
|
+
* @returns This builder instance.
|
|
86
|
+
*/
|
|
87
|
+
withName(name) {
|
|
88
|
+
this.payload.name = name;
|
|
89
|
+
return this;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Sets the screen-rule header.
|
|
93
|
+
* @param header - The header component.
|
|
94
|
+
* @returns This builder instance.
|
|
95
|
+
*/
|
|
96
|
+
withHeader(header) {
|
|
97
|
+
this.payload.settings = {
|
|
98
|
+
...this.payload.settings,
|
|
99
|
+
header: { ...header }
|
|
100
|
+
};
|
|
101
|
+
return this;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Sets the screen-rule body.
|
|
105
|
+
* @param body - The body component.
|
|
106
|
+
* @returns This builder instance.
|
|
107
|
+
*/
|
|
108
|
+
withBody(body) {
|
|
109
|
+
this.payload.settings = {
|
|
110
|
+
...this.payload.settings,
|
|
111
|
+
body: { ...body }
|
|
112
|
+
};
|
|
113
|
+
return this;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Builds a validated screen-rule value object.
|
|
117
|
+
* @returns The completed screen-rule value object.
|
|
118
|
+
* @throws {Error} If required screen-rule fields are missing or invalid.
|
|
119
|
+
*/
|
|
120
|
+
build() {
|
|
121
|
+
this.assertValidPayload(this.payload);
|
|
122
|
+
return ScreenRuleVO.fromJSON({
|
|
123
|
+
name: this.payload.name,
|
|
124
|
+
action: "screen",
|
|
125
|
+
settings: {
|
|
126
|
+
...this.payload.settings.header !== void 0 ? { header: { ...this.payload.settings.header } } : {},
|
|
127
|
+
...this.payload.settings.body !== void 0 ? { body: { ...this.payload.settings.body } } : {}
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
assertValidPayload(payload) {
|
|
132
|
+
const invalidFields = [];
|
|
133
|
+
const settings = payload.settings;
|
|
134
|
+
const hasHeader = settings?.header !== void 0;
|
|
135
|
+
const hasBody = settings?.body !== void 0;
|
|
136
|
+
if (typeof payload.name !== "string" || payload.name.trim().length === 0) invalidFields.push("name");
|
|
137
|
+
if (!hasHeader && !hasBody) invalidFields.push("settings.header or settings.body");
|
|
138
|
+
if (hasBody && (settings?.body === null || typeof settings?.body !== "object" || typeof settings.body.content !== "string"))
|
|
139
|
+
invalidFields.push("settings.body.content");
|
|
140
|
+
if (invalidFields.length > 0)
|
|
141
|
+
throw new Error(`Cannot build screen rule. Invalid or missing fields: ${invalidFields.join(", ")}`);
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
export {
|
|
145
|
+
ScreenRuleBuilder
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/chat-config/value-objects/_screen-rule.ts","../../../src/chat-config/builders/_screen-rule.ts"],"sourcesContent":["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,3 +1,5 @@
|
|
|
1
|
+
export { C as CreateScreenRuleDTO, a as ScreenRuleBodyComponent, S as ScreenRuleHeaderComponent } from '../../_screen-rule-FlIJzVXA.mjs';
|
|
2
|
+
|
|
1
3
|
/** Available provider options in the Chat Config API. */
|
|
2
4
|
type ProviderName = 'whatsapp' | 'gmail' | 'outlook' | 'messenger' | 'direct' | 'yunique';
|
|
3
5
|
interface Provider {
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export { C as CreateScreenRuleDTO, a as ScreenRuleBodyComponent, S as ScreenRuleHeaderComponent } from '../../_screen-rule-FlIJzVXA.js';
|
|
2
|
+
|
|
1
3
|
/** Available provider options in the Chat Config API. */
|
|
2
4
|
type ProviderName = 'whatsapp' | 'gmail' | 'outlook' | 'messenger' | 'direct' | 'yunique';
|
|
3
5
|
interface Provider {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { C as CreateScreenRuleDTO } from '../../_screen-rule-FlIJzVXA.mjs';
|
|
2
|
+
|
|
3
|
+
/** Value object representing a complete screen-rule payload. */
|
|
4
|
+
declare class ScreenRuleVO {
|
|
5
|
+
readonly payload: CreateScreenRuleDTO;
|
|
6
|
+
/**
|
|
7
|
+
* Creates a screen-rule value object from a complete payload.
|
|
8
|
+
* @param payload - The screen-rule payload to snapshot.
|
|
9
|
+
*/
|
|
10
|
+
constructor(payload: CreateScreenRuleDTO);
|
|
11
|
+
/**
|
|
12
|
+
* Creates a value object from its JSON representation.
|
|
13
|
+
* @param payload - The screen-rule JSON payload.
|
|
14
|
+
* @returns A screen-rule value object containing a defensive snapshot.
|
|
15
|
+
*/
|
|
16
|
+
static fromJSON(payload: CreateScreenRuleDTO): ScreenRuleVO;
|
|
17
|
+
/**
|
|
18
|
+
* Converts a screen-rule value object to JSON.
|
|
19
|
+
* @param screenRuleVO - The screen-rule value object to serialize.
|
|
20
|
+
* @returns A defensive copy of the screen-rule payload.
|
|
21
|
+
*/
|
|
22
|
+
static toJSON(screenRuleVO: ScreenRuleVO): CreateScreenRuleDTO;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export { ScreenRuleVO };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { C as CreateScreenRuleDTO } from '../../_screen-rule-FlIJzVXA.js';
|
|
2
|
+
|
|
3
|
+
/** Value object representing a complete screen-rule payload. */
|
|
4
|
+
declare class ScreenRuleVO {
|
|
5
|
+
readonly payload: CreateScreenRuleDTO;
|
|
6
|
+
/**
|
|
7
|
+
* Creates a screen-rule value object from a complete payload.
|
|
8
|
+
* @param payload - The screen-rule payload to snapshot.
|
|
9
|
+
*/
|
|
10
|
+
constructor(payload: CreateScreenRuleDTO);
|
|
11
|
+
/**
|
|
12
|
+
* Creates a value object from its JSON representation.
|
|
13
|
+
* @param payload - The screen-rule JSON payload.
|
|
14
|
+
* @returns A screen-rule value object containing a defensive snapshot.
|
|
15
|
+
*/
|
|
16
|
+
static fromJSON(payload: CreateScreenRuleDTO): ScreenRuleVO;
|
|
17
|
+
/**
|
|
18
|
+
* Converts a screen-rule value object to JSON.
|
|
19
|
+
* @param screenRuleVO - The screen-rule value object to serialize.
|
|
20
|
+
* @returns A defensive copy of the screen-rule payload.
|
|
21
|
+
*/
|
|
22
|
+
static toJSON(screenRuleVO: ScreenRuleVO): CreateScreenRuleDTO;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export { ScreenRuleVO };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/chat-config/value-objects/index.ts
|
|
21
|
+
var value_objects_exports = {};
|
|
22
|
+
__export(value_objects_exports, {
|
|
23
|
+
ScreenRuleVO: () => ScreenRuleVO
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(value_objects_exports);
|
|
26
|
+
|
|
27
|
+
// src/chat-config/value-objects/_screen-rule.ts
|
|
28
|
+
var clonePayload = (payload) => ({
|
|
29
|
+
name: payload.name,
|
|
30
|
+
action: "screen",
|
|
31
|
+
settings: {
|
|
32
|
+
...payload.settings.header !== void 0 ? { header: { ...payload.settings.header } } : {},
|
|
33
|
+
...payload.settings.body !== void 0 ? { body: { ...payload.settings.body } } : {}
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
var ScreenRuleVO = class _ScreenRuleVO {
|
|
37
|
+
payload;
|
|
38
|
+
/**
|
|
39
|
+
* Creates a screen-rule value object from a complete payload.
|
|
40
|
+
* @param payload - The screen-rule payload to snapshot.
|
|
41
|
+
*/
|
|
42
|
+
constructor(payload) {
|
|
43
|
+
this.payload = clonePayload(payload);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Creates a value object from its JSON representation.
|
|
47
|
+
* @param payload - The screen-rule JSON payload.
|
|
48
|
+
* @returns A screen-rule value object containing a defensive snapshot.
|
|
49
|
+
*/
|
|
50
|
+
static fromJSON(payload) {
|
|
51
|
+
return new _ScreenRuleVO(payload);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Converts a screen-rule value object to JSON.
|
|
55
|
+
* @param screenRuleVO - The screen-rule value object to serialize.
|
|
56
|
+
* @returns A defensive copy of the screen-rule payload.
|
|
57
|
+
*/
|
|
58
|
+
static toJSON(screenRuleVO) {
|
|
59
|
+
return clonePayload(screenRuleVO.payload);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
63
|
+
0 && (module.exports = {
|
|
64
|
+
ScreenRuleVO
|
|
65
|
+
});
|
|
66
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/chat-config/value-objects/index.ts","../../../src/chat-config/value-objects/_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"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEA,IAAM,eAAe,CAAC,aAAuD;AAAA,EAC3E,MAAM,QAAQ;AAAA,EACd,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,GAAI,QAAQ,SAAS,WAAW,SAAY,EAAE,QAAQ,EAAE,GAAG,QAAQ,SAAS,OAAO,EAAE,IAAI,CAAC;AAAA,IAC1F,GAAI,QAAQ,SAAS,SAAS,SAAY,EAAE,MAAM,EAAE,GAAG,QAAQ,SAAS,KAAK,EAAE,IAAI,CAAC;AAAA,EACtF;AACF;AAGO,IAAM,eAAN,MAAM,cAAa;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,YAAY,SAA8B;AACxC,SAAK,UAAU,aAAa,OAAO;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,SAAS,SAA4C;AAC1D,WAAO,IAAI,cAAa,OAAO;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,OAAO,cAAiD;AAC7D,WAAO,aAAa,aAAa,OAAO;AAAA,EAC1C;AACF;","names":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// src/chat-config/value-objects/_screen-rule.ts
|
|
2
|
+
var clonePayload = (payload) => ({
|
|
3
|
+
name: payload.name,
|
|
4
|
+
action: "screen",
|
|
5
|
+
settings: {
|
|
6
|
+
...payload.settings.header !== void 0 ? { header: { ...payload.settings.header } } : {},
|
|
7
|
+
...payload.settings.body !== void 0 ? { body: { ...payload.settings.body } } : {}
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
var ScreenRuleVO = class _ScreenRuleVO {
|
|
11
|
+
payload;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a screen-rule value object from a complete payload.
|
|
14
|
+
* @param payload - The screen-rule payload to snapshot.
|
|
15
|
+
*/
|
|
16
|
+
constructor(payload) {
|
|
17
|
+
this.payload = clonePayload(payload);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Creates a value object from its JSON representation.
|
|
21
|
+
* @param payload - The screen-rule JSON payload.
|
|
22
|
+
* @returns A screen-rule value object containing a defensive snapshot.
|
|
23
|
+
*/
|
|
24
|
+
static fromJSON(payload) {
|
|
25
|
+
return new _ScreenRuleVO(payload);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Converts a screen-rule value object to JSON.
|
|
29
|
+
* @param screenRuleVO - The screen-rule value object to serialize.
|
|
30
|
+
* @returns A defensive copy of the screen-rule payload.
|
|
31
|
+
*/
|
|
32
|
+
static toJSON(screenRuleVO) {
|
|
33
|
+
return clonePayload(screenRuleVO.payload);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
export {
|
|
37
|
+
ScreenRuleVO
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/chat-config/value-objects/_screen-rule.ts"],"sourcesContent":["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"],"mappings":";AAEA,IAAM,eAAe,CAAC,aAAuD;AAAA,EAC3E,MAAM,QAAQ;AAAA,EACd,QAAQ;AAAA,EACR,UAAU;AAAA,IACR,GAAI,QAAQ,SAAS,WAAW,SAAY,EAAE,QAAQ,EAAE,GAAG,QAAQ,SAAS,OAAO,EAAE,IAAI,CAAC;AAAA,IAC1F,GAAI,QAAQ,SAAS,SAAS,SAAY,EAAE,MAAM,EAAE,GAAG,QAAQ,SAAS,KAAK,EAAE,IAAI,CAAC;AAAA,EACtF;AACF;AAGO,IAAM,eAAN,MAAM,cAAa;AAAA,EACf;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT,YAAY,SAA8B;AACxC,SAAK,UAAU,aAAa,OAAO;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,SAAS,SAA4C;AAC1D,WAAO,IAAI,cAAa,OAAO;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,OAAO,cAAiD;AAC7D,WAAO,aAAa,aAAa,OAAO;AAAA,EAC1C;AACF;","names":[]}
|
package/dist/index.d.mts
CHANGED
|
@@ -26,6 +26,7 @@ export { AccessGroup, AccessPackageGroup } from './access-hub/contracts/index.mj
|
|
|
26
26
|
import { GetSystemNotificationsParams, GetSystemNotificationsResponse, GetUserDevicesParams, GetUserDevicesResponse, RegisterUserDeviceRequest, RegisterUserDeviceResponse, DeleteUserDeviceResponse, GetUserPreferencesParams, UserPreference, CreateUserPreferenceRequest, DeleteUserPreferenceParams, DeleteUserPreferenceResponse } from './notifications/contracts/index.mjs';
|
|
27
27
|
export { DeviceType, SystemNotification, SystemNotificationType, UserDevice, UserPreferenceDevice, UserPreferenceSystemNotification } from './notifications/contracts/index.mjs';
|
|
28
28
|
export { Event } from './rh/contracts/index.mjs';
|
|
29
|
+
export { C as CreateScreenRuleDTO, a as ScreenRuleBodyComponent, S as ScreenRuleHeaderComponent } from './_screen-rule-FlIJzVXA.mjs';
|
|
29
30
|
|
|
30
31
|
/**
|
|
31
32
|
* Gateway for interacting with the Customer Service API.
|
package/dist/index.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export { AccessGroup, AccessPackageGroup } from './access-hub/contracts/index.js
|
|
|
26
26
|
import { GetSystemNotificationsParams, GetSystemNotificationsResponse, GetUserDevicesParams, GetUserDevicesResponse, RegisterUserDeviceRequest, RegisterUserDeviceResponse, DeleteUserDeviceResponse, GetUserPreferencesParams, UserPreference, CreateUserPreferenceRequest, DeleteUserPreferenceParams, DeleteUserPreferenceResponse } from './notifications/contracts/index.js';
|
|
27
27
|
export { DeviceType, SystemNotification, SystemNotificationType, UserDevice, UserPreferenceDevice, UserPreferenceSystemNotification } from './notifications/contracts/index.js';
|
|
28
28
|
export { Event } from './rh/contracts/index.js';
|
|
29
|
+
export { C as CreateScreenRuleDTO, a as ScreenRuleBodyComponent, S as ScreenRuleHeaderComponent } from './_screen-rule-FlIJzVXA.js';
|
|
29
30
|
|
|
30
31
|
/**
|
|
31
32
|
* Gateway for interacting with the Customer Service API.
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
2
|
+
"version": "1.17.0",
|
|
3
3
|
"description": "A simple package to help with some common tasks",
|
|
4
4
|
"name": "@opens/gateways",
|
|
5
5
|
"private": false,
|
|
@@ -15,6 +15,16 @@
|
|
|
15
15
|
"import": "./dist/index.mjs",
|
|
16
16
|
"require": "./dist/index.js"
|
|
17
17
|
},
|
|
18
|
+
"./*/builders": {
|
|
19
|
+
"types": "./dist/*/builders/index.d.ts",
|
|
20
|
+
"import": "./dist/*/builders/index.mjs",
|
|
21
|
+
"require": "./dist/*/builders/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./*/value-objects": {
|
|
24
|
+
"types": "./dist/*/value-objects/index.d.ts",
|
|
25
|
+
"import": "./dist/*/value-objects/index.mjs",
|
|
26
|
+
"require": "./dist/*/value-objects/index.js"
|
|
27
|
+
},
|
|
18
28
|
"./*": {
|
|
19
29
|
"types": "./dist/*/contracts/index.d.ts",
|
|
20
30
|
"import": "./dist/*/contracts/index.mjs",
|
|
@@ -33,7 +43,7 @@
|
|
|
33
43
|
"tsup": {
|
|
34
44
|
"entry": [
|
|
35
45
|
"src/index.ts",
|
|
36
|
-
"src
|
|
46
|
+
"src/*/*/index.ts"
|
|
37
47
|
],
|
|
38
48
|
"sourcemap": true,
|
|
39
49
|
"splitting": false
|