@c-rex/services 0.1.11 → 0.1.13
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/index.d.mts +8 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +148 -115
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +144 -111
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -122,7 +122,8 @@ declare class DocumentTypesService extends BaseService {
|
|
|
122
122
|
* Provides methods to retrieve and search information units.
|
|
123
123
|
*/
|
|
124
124
|
declare class InformationUnitsService extends BaseService {
|
|
125
|
-
|
|
125
|
+
private directoryNodesService;
|
|
126
|
+
constructor(directoryNodesService?: DirectoryNodesService);
|
|
126
127
|
/**
|
|
127
128
|
* Retrieves a list of information units based on specified criteria.
|
|
128
129
|
*
|
|
@@ -173,6 +174,12 @@ declare class InformationUnitsService extends BaseService {
|
|
|
173
174
|
query: string;
|
|
174
175
|
language: string;
|
|
175
176
|
}): Promise<string[]>;
|
|
177
|
+
getDocumentInfo({ shortId }: {
|
|
178
|
+
shortId: string;
|
|
179
|
+
}): Promise<{
|
|
180
|
+
documentId?: string;
|
|
181
|
+
label?: string;
|
|
182
|
+
}>;
|
|
176
183
|
}
|
|
177
184
|
|
|
178
185
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -122,7 +122,8 @@ declare class DocumentTypesService extends BaseService {
|
|
|
122
122
|
* Provides methods to retrieve and search information units.
|
|
123
123
|
*/
|
|
124
124
|
declare class InformationUnitsService extends BaseService {
|
|
125
|
-
|
|
125
|
+
private directoryNodesService;
|
|
126
|
+
constructor(directoryNodesService?: DirectoryNodesService);
|
|
126
127
|
/**
|
|
127
128
|
* Retrieves a list of information units based on specified criteria.
|
|
128
129
|
*
|
|
@@ -173,6 +174,12 @@ declare class InformationUnitsService extends BaseService {
|
|
|
173
174
|
query: string;
|
|
174
175
|
language: string;
|
|
175
176
|
}): Promise<string[]>;
|
|
177
|
+
getDocumentInfo({ shortId }: {
|
|
178
|
+
shortId: string;
|
|
179
|
+
}): Promise<{
|
|
180
|
+
documentId?: string;
|
|
181
|
+
label?: string;
|
|
182
|
+
}>;
|
|
176
183
|
}
|
|
177
184
|
|
|
178
185
|
/**
|
package/dist/index.js
CHANGED
|
@@ -51,14 +51,7 @@ var LOG_LEVELS = {
|
|
|
51
51
|
info: 6,
|
|
52
52
|
debug: 7
|
|
53
53
|
};
|
|
54
|
-
var
|
|
55
|
-
MAX_RETRY: 3,
|
|
56
|
-
API_TIMEOUT: 1e4,
|
|
57
|
-
RETRY_DELAY: 500,
|
|
58
|
-
API_HEADERS: {
|
|
59
|
-
"content-Type": "application/json"
|
|
60
|
-
}
|
|
61
|
-
};
|
|
54
|
+
var SDK_CONFIG_KEY = "crex-sdk-config";
|
|
62
55
|
var CONTENT_LANG_KEY = "CONTENT_LANG_KEY";
|
|
63
56
|
var UI_LANG_KEY = "UI_LANG_KEY";
|
|
64
57
|
var FLAGS_BY_LANG = {
|
|
@@ -90,7 +83,7 @@ var OPERATOR_OPTIONS = {
|
|
|
90
83
|
};
|
|
91
84
|
|
|
92
85
|
// ../core/src/requests.ts
|
|
93
|
-
var
|
|
86
|
+
var import_headers2 = require("next/headers");
|
|
94
87
|
|
|
95
88
|
// ../core/src/logger.ts
|
|
96
89
|
var import_winston = __toESM(require("winston"));
|
|
@@ -153,7 +146,6 @@ var GraylogTransport = class extends import_winston_transport2.default {
|
|
|
153
146
|
handleExceptions: false,
|
|
154
147
|
graylog: {
|
|
155
148
|
servers: [
|
|
156
|
-
{ host: "localhost", port: 12201 },
|
|
157
149
|
{ host: configs.logs.graylog.hostname, port: configs.logs.graylog.port }
|
|
158
150
|
]
|
|
159
151
|
}
|
|
@@ -173,8 +165,24 @@ var GraylogTransport = class extends import_winston_transport2.default {
|
|
|
173
165
|
}
|
|
174
166
|
};
|
|
175
167
|
|
|
168
|
+
// ../core/src/config.ts
|
|
169
|
+
var import_headers = require("next/headers");
|
|
170
|
+
var getClientConfig = () => {
|
|
171
|
+
const jsonConfigs = (0, import_headers.cookies)().get(SDK_CONFIG_KEY)?.value;
|
|
172
|
+
if (!jsonConfigs) {
|
|
173
|
+
throw new Error("Configs not found");
|
|
174
|
+
}
|
|
175
|
+
const configs = JSON.parse(jsonConfigs);
|
|
176
|
+
return configs;
|
|
177
|
+
};
|
|
178
|
+
function getServerConfig() {
|
|
179
|
+
if (!global.__GLOBAL_CONFIG__) {
|
|
180
|
+
throw new Error("Server config not initialized");
|
|
181
|
+
}
|
|
182
|
+
return global.__GLOBAL_CONFIG__;
|
|
183
|
+
}
|
|
184
|
+
|
|
176
185
|
// ../core/src/logger.ts
|
|
177
|
-
var import_next_cookies = require("@c-rex/utils/next-cookies");
|
|
178
186
|
var CrexLogger = class {
|
|
179
187
|
customerConfig;
|
|
180
188
|
logger;
|
|
@@ -187,13 +195,13 @@ var CrexLogger = class {
|
|
|
187
195
|
async initLogger() {
|
|
188
196
|
try {
|
|
189
197
|
if (!this.customerConfig) {
|
|
190
|
-
this.customerConfig =
|
|
198
|
+
this.customerConfig = getServerConfig();
|
|
191
199
|
}
|
|
192
200
|
if (!this.logger) {
|
|
193
201
|
this.logger = this.createLogger();
|
|
194
202
|
}
|
|
195
203
|
} catch (error) {
|
|
196
|
-
console.
|
|
204
|
+
console.log("Error initializing logger:", error);
|
|
197
205
|
}
|
|
198
206
|
}
|
|
199
207
|
/**
|
|
@@ -206,7 +214,9 @@ var CrexLogger = class {
|
|
|
206
214
|
*/
|
|
207
215
|
async log({ level, message, category }) {
|
|
208
216
|
await this.initLogger();
|
|
209
|
-
|
|
217
|
+
const timestamp = (/* @__PURE__ */ new Date()).toISOString();
|
|
218
|
+
const newMessage = `[${timestamp}] ${message}`;
|
|
219
|
+
this.logger.log(level, newMessage, category);
|
|
210
220
|
}
|
|
211
221
|
/**
|
|
212
222
|
* Creates a new Winston logger instance with configured transports.
|
|
@@ -229,13 +239,35 @@ var CrexLogger = class {
|
|
|
229
239
|
}
|
|
230
240
|
};
|
|
231
241
|
|
|
242
|
+
// ../core/src/OIDC.ts
|
|
243
|
+
var import_openid_client = require("openid-client");
|
|
244
|
+
var getToken = async () => {
|
|
245
|
+
try {
|
|
246
|
+
const config = getServerConfig();
|
|
247
|
+
const issuer = await import_openid_client.Issuer.discover(config.OIDC.client.issuer);
|
|
248
|
+
const client = new issuer.Client({
|
|
249
|
+
client_id: config.OIDC.client.id,
|
|
250
|
+
client_secret: config.OIDC.client.secret
|
|
251
|
+
});
|
|
252
|
+
const tokenSet = await client.grant({ grant_type: "client_credentials" });
|
|
253
|
+
const token = tokenSet.access_token;
|
|
254
|
+
const expiresAt = tokenSet.expires_at;
|
|
255
|
+
return { token, expiresAt };
|
|
256
|
+
} catch (error) {
|
|
257
|
+
const logger = new CrexLogger();
|
|
258
|
+
logger.log({
|
|
259
|
+
level: "error",
|
|
260
|
+
message: `getToken error: ${error}`
|
|
261
|
+
});
|
|
262
|
+
return { token: "", expiresAt: 0, error: JSON.stringify(error) };
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
|
|
232
266
|
// ../core/src/requests.ts
|
|
233
|
-
var import_next_cookies2 = require("@c-rex/utils/next-cookies");
|
|
234
267
|
var CrexApi = class {
|
|
235
268
|
customerConfig;
|
|
236
269
|
apiClient;
|
|
237
270
|
logger;
|
|
238
|
-
publicNextApiUrl;
|
|
239
271
|
/**
|
|
240
272
|
* Initializes the API client if it hasn't been initialized yet.
|
|
241
273
|
* Loads customer configuration, creates the axios instance, and initializes the logger.
|
|
@@ -245,10 +277,7 @@ var CrexApi = class {
|
|
|
245
277
|
async initAPI() {
|
|
246
278
|
this.logger = new CrexLogger();
|
|
247
279
|
if (!this.customerConfig) {
|
|
248
|
-
this.customerConfig =
|
|
249
|
-
}
|
|
250
|
-
if (!this.publicNextApiUrl) {
|
|
251
|
-
this.publicNextApiUrl = await (0, import_next_cookies2.getClientConfigs)().publicNextApiUrl;
|
|
280
|
+
this.customerConfig = getServerConfig();
|
|
252
281
|
}
|
|
253
282
|
if (!this.apiClient) {
|
|
254
283
|
this.apiClient = import_axios.default.create({
|
|
@@ -256,34 +285,13 @@ var CrexApi = class {
|
|
|
256
285
|
});
|
|
257
286
|
}
|
|
258
287
|
}
|
|
259
|
-
async getToken() {
|
|
260
|
-
for (let retry = 0; retry < API.MAX_RETRY; retry++) {
|
|
261
|
-
try {
|
|
262
|
-
const response = await fetch(`${this.publicNextApiUrl}/api/token`, {
|
|
263
|
-
method: "POST",
|
|
264
|
-
credentials: "include"
|
|
265
|
-
});
|
|
266
|
-
const { token } = await response.json();
|
|
267
|
-
return token;
|
|
268
|
-
} catch (error) {
|
|
269
|
-
this.logger.log({
|
|
270
|
-
level: "error",
|
|
271
|
-
message: `utils.getToken ${retry + 1}\xBA error when request token. Error: ${error}`
|
|
272
|
-
});
|
|
273
|
-
await new Promise((resolve) => setTimeout(resolve, API.RETRY_DELAY));
|
|
274
|
-
if (retry === API.MAX_RETRY) {
|
|
275
|
-
throw error;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
288
|
async manageToken() {
|
|
281
289
|
try {
|
|
282
290
|
let token = "";
|
|
283
|
-
const hasToken = (0,
|
|
291
|
+
const hasToken = (0, import_headers2.cookies)().get(CREX_TOKEN_HEADER_KEY);
|
|
284
292
|
if (hasToken == void 0 || hasToken.value === null) {
|
|
285
|
-
const tokenResult = await
|
|
286
|
-
if (tokenResult ===
|
|
293
|
+
const { token: tokenResult } = await getToken();
|
|
294
|
+
if (tokenResult.length === 0) throw new Error("Token is undefined");
|
|
287
295
|
token = tokenResult;
|
|
288
296
|
} else {
|
|
289
297
|
token = hasToken.value;
|
|
@@ -316,40 +324,35 @@ var CrexApi = class {
|
|
|
316
324
|
body,
|
|
317
325
|
headers = {}
|
|
318
326
|
}) {
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
for (let retry = 0; retry < API.MAX_RETRY; retry++) {
|
|
330
|
-
try {
|
|
331
|
-
response = await this.apiClient.request({
|
|
332
|
-
url,
|
|
333
|
-
method,
|
|
334
|
-
data: body,
|
|
335
|
-
params,
|
|
336
|
-
headers
|
|
337
|
-
});
|
|
338
|
-
break;
|
|
339
|
-
} catch (error) {
|
|
340
|
-
this.logger.log({
|
|
341
|
-
level: "error",
|
|
342
|
-
message: `API.execute ${retry + 1}\xBA error when request ${url}. Error: ${error}`
|
|
343
|
-
});
|
|
344
|
-
if (retry === API.MAX_RETRY - 1) {
|
|
345
|
-
throw error;
|
|
346
|
-
}
|
|
327
|
+
try {
|
|
328
|
+
await this.initAPI();
|
|
329
|
+
let response = void 0;
|
|
330
|
+
if (this.customerConfig.OIDC.client.enabled) {
|
|
331
|
+
const token = await this.manageToken();
|
|
332
|
+
headers = {
|
|
333
|
+
...headers,
|
|
334
|
+
Authorization: `Bearer ${token}`
|
|
335
|
+
};
|
|
336
|
+
this.apiClient.defaults.headers.common["Authorization"] = `Bearer ${token}`;
|
|
347
337
|
}
|
|
338
|
+
response = await this.apiClient.request({
|
|
339
|
+
url,
|
|
340
|
+
method,
|
|
341
|
+
data: body,
|
|
342
|
+
params,
|
|
343
|
+
headers
|
|
344
|
+
});
|
|
345
|
+
if (response) {
|
|
346
|
+
return response.data;
|
|
347
|
+
}
|
|
348
|
+
throw new Error("API.execute error: Failed to retrieve a valid response");
|
|
349
|
+
} catch (error) {
|
|
350
|
+
this.logger.log({
|
|
351
|
+
level: "error",
|
|
352
|
+
message: `CrexAPI.execute error: ${error}`
|
|
353
|
+
});
|
|
354
|
+
throw error;
|
|
348
355
|
}
|
|
349
|
-
if (response) {
|
|
350
|
-
return response.data;
|
|
351
|
-
}
|
|
352
|
-
throw new Error("API.execute error: Failed to retrieve a valid response");
|
|
353
356
|
}
|
|
354
357
|
};
|
|
355
358
|
|
|
@@ -379,10 +382,15 @@ var import_clsx = require("clsx");
|
|
|
379
382
|
var import_tailwind_merge = require("tailwind-merge");
|
|
380
383
|
|
|
381
384
|
// ../utils/src/params.ts
|
|
382
|
-
var createParams = (fieldsList, key = "Fields") =>
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
}
|
|
385
|
+
var createParams = (fieldsList, key = "Fields") => {
|
|
386
|
+
if (!fieldsList || fieldsList.length === 0) {
|
|
387
|
+
return [];
|
|
388
|
+
}
|
|
389
|
+
return fieldsList.map((item) => ({
|
|
390
|
+
key,
|
|
391
|
+
value: item
|
|
392
|
+
}));
|
|
393
|
+
};
|
|
386
394
|
var generateQueryParams = (params) => {
|
|
387
395
|
const queryParams = params.map((param) => `${encodeURIComponent(param.key)}=${encodeURIComponent(param.value)}`).join("&");
|
|
388
396
|
return queryParams;
|
|
@@ -530,12 +538,11 @@ var DirectoryNodesService = class extends BaseService {
|
|
|
530
538
|
};
|
|
531
539
|
|
|
532
540
|
// src/transforms/documentTypes.ts
|
|
533
|
-
var
|
|
534
|
-
var
|
|
535
|
-
var transformDocumentTypes = (data) => {
|
|
541
|
+
var import_headers3 = require("next/headers");
|
|
542
|
+
var transformDocumentTypes = async (data) => {
|
|
536
543
|
const labels = [];
|
|
537
|
-
const config = (
|
|
538
|
-
const contentLanguage = (0,
|
|
544
|
+
const config = getClientConfig();
|
|
545
|
+
const contentLanguage = (0, import_headers3.cookies)().get(CONTENT_LANG_KEY)?.value || config.languageSwitcher.default;
|
|
539
546
|
const language = contentLanguage.split("-")[0];
|
|
540
547
|
data.items.forEach((documentItem) => {
|
|
541
548
|
const label = documentItem.labels.find((item) => item.language.toLowerCase() === language.toLowerCase());
|
|
@@ -570,13 +577,12 @@ var DocumentTypesService = class extends BaseService {
|
|
|
570
577
|
};
|
|
571
578
|
|
|
572
579
|
// src/transforms/information.ts
|
|
573
|
-
var
|
|
574
|
-
var
|
|
575
|
-
var import_logger2 = require("@c-rex/core/logger");
|
|
580
|
+
var import_headers4 = require("next/headers");
|
|
581
|
+
var import_logger3 = require("@c-rex/core/logger");
|
|
576
582
|
var transformInformationUnits = async (data) => {
|
|
577
|
-
const logger = new
|
|
578
|
-
const frontEndConfig =
|
|
579
|
-
const backEndConfig =
|
|
583
|
+
const logger = new import_logger3.CrexLogger();
|
|
584
|
+
const frontEndConfig = getClientConfig();
|
|
585
|
+
const backEndConfig = getServerConfig();
|
|
580
586
|
const filteredTags = {};
|
|
581
587
|
const items = data.items.map((item) => {
|
|
582
588
|
const type = item.class.labels.filter((item2) => item2.language === EN_LANG)[0].value.toUpperCase();
|
|
@@ -588,34 +594,34 @@ var transformInformationUnits = async (data) => {
|
|
|
588
594
|
link = `/documents/${item.shortId}`;
|
|
589
595
|
}
|
|
590
596
|
let title = "NO TITLE";
|
|
597
|
+
if (item.titles) {
|
|
598
|
+
title = item.titles[0].value;
|
|
599
|
+
} else if (item.labels) {
|
|
600
|
+
title = item.labels[0].value;
|
|
601
|
+
}
|
|
591
602
|
let language = "NO LANGUAGE";
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
language = item.labels[0].language;
|
|
599
|
-
}
|
|
600
|
-
} catch {
|
|
601
|
-
logger.log({
|
|
602
|
-
level: "error",
|
|
603
|
-
message: `No label or title on item ${item.shortId}`
|
|
604
|
-
});
|
|
603
|
+
if (item.languages.length > 0) {
|
|
604
|
+
language = item.languages[0];
|
|
605
|
+
}
|
|
606
|
+
let versionOf = [];
|
|
607
|
+
if (item?.versionOf && item.versionOf?.labels) {
|
|
608
|
+
versionOf = item.versionOf.labels.map((item2) => item2.language).filter((value) => value !== void 0);
|
|
605
609
|
}
|
|
606
610
|
return {
|
|
607
611
|
language,
|
|
608
612
|
title,
|
|
609
613
|
type,
|
|
610
614
|
localeType: "",
|
|
615
|
+
revision: item.revision,
|
|
611
616
|
shortId: item.shortId,
|
|
617
|
+
multipleVersions: versionOf,
|
|
612
618
|
disabled: frontEndConfig.results.disabledResults.includes(type),
|
|
613
619
|
link,
|
|
614
620
|
files
|
|
615
621
|
};
|
|
616
622
|
});
|
|
617
623
|
if (data.tags) {
|
|
618
|
-
const contentLang = ((0,
|
|
624
|
+
const contentLang = ((0, import_headers4.cookies)().get(CONTENT_LANG_KEY)?.value || EN_LANG).toLowerCase();
|
|
619
625
|
const splittedContentLang = contentLang.split("-")[0];
|
|
620
626
|
for (const [key, value] of Object.entries(data.tags)) {
|
|
621
627
|
if (!value || !value.items || value.items.length === 0) {
|
|
@@ -685,8 +691,10 @@ var transformSuggestions = (data, query) => {
|
|
|
685
691
|
|
|
686
692
|
// src/informationUnits.ts
|
|
687
693
|
var InformationUnitsService = class extends BaseService {
|
|
688
|
-
|
|
694
|
+
directoryNodesService;
|
|
695
|
+
constructor(directoryNodesService) {
|
|
689
696
|
super("InformationUnits/");
|
|
697
|
+
this.directoryNodesService = directoryNodesService || new DirectoryNodesService();
|
|
690
698
|
}
|
|
691
699
|
/**
|
|
692
700
|
* Retrieves a list of information units based on specified criteria.
|
|
@@ -716,7 +724,6 @@ var InformationUnitsService = class extends BaseService {
|
|
|
716
724
|
const remainFilters = createParams(filters, "Filter");
|
|
717
725
|
const restrictions = createParams(restrict, "Restrict");
|
|
718
726
|
const remainTags = createParams(tags, "Tags");
|
|
719
|
-
const languageParam = `VALUES ?lang { ${languages.map((lang) => `"${lang}"`).join(" ")} } ?s iirds:language ?lang .`;
|
|
720
727
|
const params = [
|
|
721
728
|
{ key: "pageSize", value: "12" },
|
|
722
729
|
{ key: "wildcard", value: wildcard.toLowerCase() },
|
|
@@ -729,6 +736,7 @@ var InformationUnitsService = class extends BaseService {
|
|
|
729
736
|
...restrictions
|
|
730
737
|
];
|
|
731
738
|
if (languages.length > 0) {
|
|
739
|
+
const languageParam = `VALUES ?lang { ${languages.map((lang) => `"${lang}"`).join(" ")} } ?s iirds:language ?lang .`;
|
|
732
740
|
params.push({ key: "sparqlWhere", value: languageParam });
|
|
733
741
|
}
|
|
734
742
|
if (queries.length > 0) {
|
|
@@ -789,13 +797,39 @@ var InformationUnitsService = class extends BaseService {
|
|
|
789
797
|
transformer: (data) => transformSuggestions(data, query)
|
|
790
798
|
});
|
|
791
799
|
}
|
|
800
|
+
async getDocumentInfo({ shortId }) {
|
|
801
|
+
const response = await this.getItem({
|
|
802
|
+
id: shortId,
|
|
803
|
+
shouldGetAllFields: true
|
|
804
|
+
});
|
|
805
|
+
const directoryNodes = response.directoryNodes;
|
|
806
|
+
if (directoryNodes.length === 0 || !directoryNodes[0]) {
|
|
807
|
+
return {};
|
|
808
|
+
}
|
|
809
|
+
let id = directoryNodes[0].shortId;
|
|
810
|
+
let node = await this.directoryNodesService.getItem(id);
|
|
811
|
+
if (!node.ancestors || node.ancestors.length === 0) return {};
|
|
812
|
+
const hasInfo = node.informationUnits?.[0];
|
|
813
|
+
const hasLabel = node.labels?.[0];
|
|
814
|
+
if (!hasInfo || !hasLabel) return {};
|
|
815
|
+
const lastIndex = node.ancestors[0]?.length - 1;
|
|
816
|
+
const ancestorNode = node.ancestors[0][lastIndex];
|
|
817
|
+
if (!ancestorNode?.shortId) return {};
|
|
818
|
+
id = ancestorNode.shortId;
|
|
819
|
+
node = await this.directoryNodesService.getItem(id);
|
|
820
|
+
const ancestorInfoUnit = node.informationUnits?.[0];
|
|
821
|
+
const ancestorLabel = ancestorInfoUnit?.labels?.[0];
|
|
822
|
+
return {
|
|
823
|
+
documentId: ancestorInfoUnit?.shortId,
|
|
824
|
+
label: ancestorLabel?.value || ""
|
|
825
|
+
};
|
|
826
|
+
}
|
|
792
827
|
};
|
|
793
828
|
|
|
794
829
|
// src/language.ts
|
|
795
|
-
var import_next_cookies5 = require("@c-rex/utils/next-cookies");
|
|
796
830
|
var LanguageService = class extends BaseService {
|
|
797
831
|
constructor() {
|
|
798
|
-
const configs = (
|
|
832
|
+
const configs = getClientConfig();
|
|
799
833
|
super(configs.languageSwitcher.endpoint);
|
|
800
834
|
}
|
|
801
835
|
/**
|
|
@@ -832,13 +866,12 @@ var LanguageService = class extends BaseService {
|
|
|
832
866
|
};
|
|
833
867
|
|
|
834
868
|
// src/transforms/topics.ts
|
|
835
|
-
var
|
|
836
|
-
var
|
|
837
|
-
var import_logger3 = require("@c-rex/core/logger");
|
|
869
|
+
var import_headers5 = require("next/headers");
|
|
870
|
+
var import_logger4 = require("@c-rex/core/logger");
|
|
838
871
|
var transformTopics = async (data) => {
|
|
839
|
-
const logger = new
|
|
840
|
-
const config = (
|
|
841
|
-
const uiLang = ((0,
|
|
872
|
+
const logger = new import_logger4.CrexLogger();
|
|
873
|
+
const config = getClientConfig();
|
|
874
|
+
const uiLang = ((0, import_headers5.cookies)().get(UI_LANG_KEY)?.value || config.languageSwitcher.default).toLowerCase();
|
|
842
875
|
const items = data.items.map((item) => {
|
|
843
876
|
const type = item.class.labels.filter((item2) => item2.language === EN_LANG)[0].value.toUpperCase();
|
|
844
877
|
let link = `/topics/${item.shortId}`;
|