@cplace/test-mcp-server 0.1.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.
@@ -0,0 +1,286 @@
1
+ export function convertSearchFilterToCplaceFormat(simplifiedFilter) {
2
+ const cplaceFilters = [];
3
+ function convertCondition(condition) {
4
+ if (condition.and) {
5
+ return {
6
+ type: "And",
7
+ subFilters: condition.and.map((subCondition) => convertCondition(subCondition))
8
+ };
9
+ }
10
+ if (condition.or) {
11
+ return {
12
+ type: "Or",
13
+ subFilters: condition.or.map((subCondition) => convertCondition(subCondition))
14
+ };
15
+ }
16
+ if (condition.attribute) {
17
+ if (condition.string) {
18
+ return convertStringCondition(condition);
19
+ }
20
+ else if (condition.number) {
21
+ return convertNumberCondition(condition);
22
+ }
23
+ else if (condition.date) {
24
+ return convertDateCondition(condition);
25
+ }
26
+ else if (condition.reference) {
27
+ return convertReferenceCondition(condition);
28
+ }
29
+ else if (condition.boolean) {
30
+ return convertBooleanCondition(condition);
31
+ }
32
+ }
33
+ else if (condition.name) {
34
+ return {
35
+ type: "BuiltinAttributeValue",
36
+ attribute: "name",
37
+ operator: "equals",
38
+ string: condition.name.equals
39
+ };
40
+ }
41
+ else if (condition.creator) {
42
+ return {
43
+ type: "BuiltinAttributeValue",
44
+ attribute: "creator",
45
+ operator: "equals",
46
+ reference: condition.creator.equals
47
+ };
48
+ }
49
+ else if (condition.modifier) {
50
+ return {
51
+ type: "BuiltinAttributeValue",
52
+ attribute: "modifier",
53
+ operator: "equals",
54
+ reference: condition.modifier.equals
55
+ };
56
+ }
57
+ throw new Error(`Unsupported filter condition: ${JSON.stringify(condition)}`);
58
+ }
59
+ function convertStringCondition(condition) {
60
+ const stringFilter = condition.string;
61
+ const attribute = condition.attribute;
62
+ if (stringFilter.equals !== undefined) {
63
+ return {
64
+ type: "CustomAttributeValue",
65
+ attribute,
66
+ operator: "equals",
67
+ string: stringFilter.equals
68
+ };
69
+ }
70
+ else if (stringFilter.contains !== undefined) {
71
+ return {
72
+ type: "CustomAttributeFulltext",
73
+ attribute,
74
+ text: stringFilter.contains
75
+ };
76
+ }
77
+ else if (stringFilter.beginsWith !== undefined) {
78
+ return {
79
+ type: "CustomAttributeValue",
80
+ attribute,
81
+ operator: "begins",
82
+ string: stringFilter.beginsWith
83
+ };
84
+ }
85
+ else if (stringFilter.is_empty === true) {
86
+ return {
87
+ type: "CustomAttributeEmpty",
88
+ attribute,
89
+ };
90
+ }
91
+ else if (stringFilter.is_not_empty === true) {
92
+ return {
93
+ type: "Not",
94
+ subFilters: [{
95
+ type: "CustomAttributeEmpty",
96
+ attribute,
97
+ }]
98
+ };
99
+ }
100
+ throw new Error(`Unsupported string filter: ${JSON.stringify(stringFilter)}`);
101
+ }
102
+ function convertNumberCondition(condition) {
103
+ const numberFilter = condition.number;
104
+ const attribute = condition.attribute;
105
+ if (numberFilter.equals !== undefined) {
106
+ return {
107
+ type: "CustomAttributeValue",
108
+ attribute,
109
+ operator: "equals",
110
+ number: numberFilter.equals
111
+ };
112
+ }
113
+ else if (numberFilter.greater_than !== undefined) {
114
+ return {
115
+ type: "CustomAttributeValue",
116
+ attribute,
117
+ operator: "greaterThan",
118
+ number: numberFilter.greater_than
119
+ };
120
+ }
121
+ else if (numberFilter.greater_than_or_equal_to !== undefined) {
122
+ return {
123
+ type: "CustomAttributeValue",
124
+ attribute,
125
+ operator: "greaterEquals",
126
+ number: numberFilter.greater_than_or_equal_to - 0.001
127
+ };
128
+ }
129
+ else if (numberFilter.less_than !== undefined) {
130
+ return {
131
+ type: "CustomAttributeValue",
132
+ attribute,
133
+ operator: "lessThan",
134
+ number: numberFilter.less_than
135
+ };
136
+ }
137
+ else if (numberFilter.less_than_or_equal_to !== undefined) {
138
+ return {
139
+ type: "CustomAttributeValue",
140
+ attribute,
141
+ operator: "lessEquals",
142
+ number: numberFilter.less_than_or_equal_to + 0.001
143
+ };
144
+ }
145
+ else if (numberFilter.does_not_equal !== undefined) {
146
+ return {
147
+ type: "Not",
148
+ subFilters: [{
149
+ type: "CustomAttributeValue",
150
+ attribute,
151
+ operator: "equals",
152
+ number: numberFilter.does_not_equal
153
+ }]
154
+ };
155
+ }
156
+ else if (numberFilter.is_empty === true) {
157
+ return {
158
+ type: "CustomAttributeEmpty",
159
+ attribute,
160
+ };
161
+ }
162
+ else if (numberFilter.is_not_empty === true) {
163
+ return {
164
+ type: "Not",
165
+ subFilters: [{
166
+ type: "CustomAttributeEmpty",
167
+ attribute,
168
+ }]
169
+ };
170
+ }
171
+ throw new Error(`Unsupported number filter: ${JSON.stringify(numberFilter)}`);
172
+ }
173
+ function convertDateCondition(condition) {
174
+ const dateFilter = condition.date;
175
+ const attribute = condition.attribute;
176
+ if (dateFilter.equals !== undefined) {
177
+ return {
178
+ type: "CustomAttributeValue",
179
+ attribute,
180
+ operator: "equals",
181
+ date: dateFilter.equals
182
+ };
183
+ }
184
+ else if (dateFilter.after !== undefined) {
185
+ return {
186
+ type: "CustomAttributeValue",
187
+ attribute,
188
+ operator: "greaterThan",
189
+ date: dateFilter.after
190
+ };
191
+ }
192
+ else if (dateFilter.before !== undefined) {
193
+ return {
194
+ type: "CustomAttributeValue",
195
+ attribute,
196
+ operator: "lessThan",
197
+ date: dateFilter.before
198
+ };
199
+ }
200
+ else if (dateFilter.on_or_after !== undefined) {
201
+ return {
202
+ type: "CustomAttributeValue",
203
+ attribute,
204
+ operator: "greaterEquals",
205
+ date: dateFilter.on_or_after
206
+ };
207
+ }
208
+ else if (dateFilter.on_or_before !== undefined) {
209
+ return {
210
+ type: "CustomAttributeValue",
211
+ attribute,
212
+ operator: "lessEquals",
213
+ date: dateFilter.on_or_before
214
+ };
215
+ }
216
+ else if (dateFilter.is_empty === true) {
217
+ return {
218
+ type: "CustomAttributeEmpty",
219
+ attribute,
220
+ };
221
+ }
222
+ else if (dateFilter.is_not_empty === true) {
223
+ return {
224
+ type: "Not",
225
+ subFilters: [{
226
+ type: "CustomAttributeEmpty",
227
+ attribute,
228
+ }]
229
+ };
230
+ }
231
+ throw new Error(`Unsupported date filter: ${JSON.stringify(dateFilter)}`);
232
+ }
233
+ function convertReferenceCondition(condition) {
234
+ const referenceFilter = condition.reference;
235
+ const attribute = condition.attribute;
236
+ if (referenceFilter.equals !== undefined) {
237
+ return {
238
+ type: "CustomAttributeValue",
239
+ attribute,
240
+ operator: "equals",
241
+ reference: referenceFilter.equals
242
+ };
243
+ }
244
+ else if (referenceFilter.is_empty === true) {
245
+ return {
246
+ type: "CustomAttributeEmpty",
247
+ attribute,
248
+ };
249
+ }
250
+ else if (referenceFilter.is_not_empty === true) {
251
+ return {
252
+ type: "Not",
253
+ subFilters: [{
254
+ type: "CustomAttributeEmpty",
255
+ attribute,
256
+ }]
257
+ };
258
+ }
259
+ throw new Error(`Unsupported reference filter: ${JSON.stringify(referenceFilter)}`);
260
+ }
261
+ function convertBooleanCondition(condition) {
262
+ const booleanFilter = condition.boolean;
263
+ const attribute = condition.attribute;
264
+ if (booleanFilter.equals !== undefined) {
265
+ return {
266
+ type: "CustomAttributeValue",
267
+ attribute,
268
+ operator: "equals",
269
+ boolean: booleanFilter.equals
270
+ };
271
+ }
272
+ throw new Error(`Unsupported boolean filter: ${JSON.stringify(booleanFilter)}`);
273
+ }
274
+ if (Array.isArray(simplifiedFilter)) {
275
+ for (const filter of simplifiedFilter) {
276
+ cplaceFilters.push(convertCondition(filter));
277
+ }
278
+ }
279
+ else {
280
+ cplaceFilters.push(convertCondition(simplifiedFilter));
281
+ }
282
+ return {
283
+ filters: cplaceFilters
284
+ };
285
+ }
286
+ //# sourceMappingURL=searchConversion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchConversion.js","sourceRoot":"","sources":["../src/searchConversion.ts"],"names":[],"mappings":"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"}