@c-rex/services 0.1.0 → 0.1.1
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 +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +17 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +17 -6
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -2
package/dist/index.d.mts
CHANGED
|
@@ -23,6 +23,7 @@ declare class BaseService {
|
|
|
23
23
|
declare class RenditionsService extends BaseService {
|
|
24
24
|
constructor();
|
|
25
25
|
getHTMLRendition(renditions: informationUnitsRenditions[]): Promise<string>;
|
|
26
|
+
getDocumentRendition(renditions: informationUnitsRenditions[], type: string): Promise<string>;
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
declare class DirectoryNodesService extends BaseService {
|
package/dist/index.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ declare class BaseService {
|
|
|
23
23
|
declare class RenditionsService extends BaseService {
|
|
24
24
|
constructor();
|
|
25
25
|
getHTMLRendition(renditions: informationUnitsRenditions[]): Promise<string>;
|
|
26
|
+
getDocumentRendition(renditions: informationUnitsRenditions[], type: string): Promise<string>;
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
declare class DirectoryNodesService extends BaseService {
|
package/dist/index.js
CHANGED
|
@@ -61,7 +61,7 @@ var import_openid_client = require("openid-client");
|
|
|
61
61
|
// ../utils/src/utils.ts
|
|
62
62
|
var call = async (method, params) => {
|
|
63
63
|
try {
|
|
64
|
-
const res = await fetch(
|
|
64
|
+
const res = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/api/rpc`, {
|
|
65
65
|
method: "POST",
|
|
66
66
|
headers: { "Content-Type": "application/json" },
|
|
67
67
|
body: JSON.stringify({ method, params })
|
|
@@ -154,6 +154,7 @@ var CrexApi = class {
|
|
|
154
154
|
const tokenSet = await client.grant({ grant_type: "client_credentials" });
|
|
155
155
|
token = tokenSet.access_token;
|
|
156
156
|
tokenExpiry = now + tokenSet.expires_at;
|
|
157
|
+
console.log("token", token);
|
|
157
158
|
} catch (error) {
|
|
158
159
|
call("CrexLogger.log", {
|
|
159
160
|
level: "error",
|
|
@@ -265,12 +266,10 @@ var RenditionsService = class extends BaseService {
|
|
|
265
266
|
const filteredRenditions = renditions.filter(
|
|
266
267
|
(item2) => item2.format == "application/xhtml+xml"
|
|
267
268
|
);
|
|
268
|
-
if (filteredRenditions.length == 0) return "";
|
|
269
|
-
if (filteredRenditions[0] == void 0) return "";
|
|
269
|
+
if (filteredRenditions.length == 0 || filteredRenditions[0] == void 0) return "";
|
|
270
270
|
const item = filteredRenditions[0];
|
|
271
271
|
const filteredLinks = item.links.filter((item2) => item2.rel == "view");
|
|
272
|
-
if (filteredLinks.length == 0) return "";
|
|
273
|
-
if (filteredLinks[0] == void 0) return "";
|
|
272
|
+
if (filteredLinks.length == 0 || filteredLinks[0] == void 0) return "";
|
|
274
273
|
const url = filteredLinks[0].href;
|
|
275
274
|
const response = await this.api.execute({
|
|
276
275
|
url,
|
|
@@ -281,6 +280,17 @@ var RenditionsService = class extends BaseService {
|
|
|
281
280
|
});
|
|
282
281
|
return response;
|
|
283
282
|
}
|
|
283
|
+
async getDocumentRendition(renditions, type) {
|
|
284
|
+
const filteredRenditions = renditions.filter(
|
|
285
|
+
(item2) => item2.format == `application/${type}`
|
|
286
|
+
);
|
|
287
|
+
if (filteredRenditions.length == 0 || filteredRenditions[0] == void 0) return "";
|
|
288
|
+
const item = filteredRenditions[0];
|
|
289
|
+
const filteredLinks = item.links.filter((item2) => item2.rel == "view");
|
|
290
|
+
if (filteredLinks.length == 0 || filteredLinks[0] == void 0) return "";
|
|
291
|
+
const url = filteredLinks[0].href;
|
|
292
|
+
return url;
|
|
293
|
+
}
|
|
284
294
|
};
|
|
285
295
|
|
|
286
296
|
// src/directoryNodes.ts
|
|
@@ -374,7 +384,8 @@ var InformationUnitsService = class extends BaseService {
|
|
|
374
384
|
const params = [
|
|
375
385
|
{ key: "Fields", value: "renditions" },
|
|
376
386
|
{ key: "Fields", value: "directoryNodes" },
|
|
377
|
-
{ key: "Fields", value: "versionOf" }
|
|
387
|
+
{ key: "Fields", value: "versionOf" },
|
|
388
|
+
{ key: "Fields", value: "titles" }
|
|
378
389
|
];
|
|
379
390
|
return await this.request({
|
|
380
391
|
path: id,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../../core/src/requests.ts","../../constants/src/index.ts","../../utils/src/utils.ts","../../utils/src/memory.ts","../../utils/src/classMerge.ts","../../utils/src/params.ts","../src/baseService.ts","../src/renditions.ts","../src/directoryNodes.ts","../src/transforms/documentTypes.ts","../src/documentTypes.ts","../src/transforms/information.ts","../src/informationUnits.ts","../src/language.ts"],"sourcesContent":["export * from \"./renditions\"\nexport * from \"./directoryNodes\"\nexport * from \"./documentTypes\"\nexport * from \"./informationUnits\"\nexport * from \"./language\"\n","import axios, { AxiosResponse, Method, AxiosInstance } from \"axios\";\nimport { API, SDK_CONFIG_KEY } from \"@c-rex/constants\";\nimport { Issuer } from \"openid-client\";\nimport { ConfigInterface } from \"@c-rex/interfaces\";\nimport { call, getFromMemory, saveInMemory } from \"@c-rex/utils\";\nimport { getCookie } from \"@c-rex/utils/next-cookies\";\n\nconst CREX_TOKEN_HEADER_KEY = \"crex-token\";\nconst CREX_TOKEN_EXPIRY_HEADER_KEY = \"crex-token-expiry\";\n\ninterface APIGenericResponse<T> extends AxiosResponse {\n data: T;\n statusCode: number;\n}\n\ninterface CallParams {\n url: string;\n method: Method;\n body?: any;\n headers?: any;\n params?: any;\n}\n\nexport class CrexApi {\n private customerConfig!: ConfigInterface;\n private apiClient!: AxiosInstance;\n\n private async manageToken() {\n const headersAux: Record<string, string> = {};\n\n if (this.customerConfig.OIDC.client.enabled) {\n let token = getFromMemory(CREX_TOKEN_HEADER_KEY);\n let tokenExpiry = getFromMemory(CREX_TOKEN_EXPIRY_HEADER_KEY);\n\n const now = Math.floor(Date.now() / 1000);\n\n if (!(token && tokenExpiry > now + 60)) {\n const { token: tokenAux, tokenExpiry: tokenExpiryAux } = await this.getToken();\n\n token = tokenAux;\n\n saveInMemory(token, CREX_TOKEN_HEADER_KEY);\n saveInMemory(tokenExpiryAux, CREX_TOKEN_EXPIRY_HEADER_KEY);\n }\n\n headersAux['Authorization'] = `Bearer ${token}`;\n }\n\n return headersAux;\n }\n\n private async getToken(): Promise<{\n token: string;\n tokenExpiry: number;\n }> {\n let token = \"\";\n let tokenExpiry = 0;\n\n try {\n const now = Math.floor(Date.now() / 1000);\n const issuer = await Issuer.discover(this.customerConfig.OIDC.client.issuer);\n const client = new issuer.Client({\n client_id: this.customerConfig.OIDC.client.id,\n client_secret: this.customerConfig.OIDC.client.secret,\n });\n const tokenSet = await client.grant({ grant_type: 'client_credentials' });\n\n token = tokenSet.access_token!;\n tokenExpiry = now + tokenSet.expires_at!;\n } catch (error) {\n call(\"CrexLogger.log\", {\n level: \"error\",\n message: `API.getToken error when request ${this.customerConfig.OIDC.client.issuer}. Error: ${error}`\n });\n }\n\n return {\n token,\n tokenExpiry\n };\n }\n\n private async initAPI() {\n if (!this.customerConfig) {\n const jsonConfigs = await getCookie(SDK_CONFIG_KEY);\n if (!jsonConfigs) {\n throw new Error(\"SDK not initialized\");\n }\n this.customerConfig = JSON.parse(jsonConfigs) as ConfigInterface;\n }\n if (!this.apiClient) {\n this.apiClient = axios.create({\n baseURL: this.customerConfig.baseUrl,\n })\n }\n }\n\n async execute<T>({\n url,\n method,\n params,\n body,\n headers = {},\n }: CallParams): Promise<T> {\n\n await this.initAPI();\n\n let response: APIGenericResponse<T> | undefined = undefined;\n\n headers = {\n ...headers,\n ...await this.manageToken(),\n };\n\n for (let retry = 0; retry < API.MAX_RETRY; retry++) {\n try {\n response = await this.apiClient.request({\n url,\n method,\n data: body,\n params,\n headers,\n });\n\n break;\n } catch (error) {\n //TODO: add logger\n console.log(\n \"error\",\n `API.execute ${retry + 1}º error when request ${url}. Error: ${error}`\n );\n\n if (retry === API.MAX_RETRY - 1) {\n throw error;\n }\n }\n }\n\n if (response) {\n return response.data;\n }\n\n throw new Error(\"API.execute error: Failed to retrieve a valid response\");\n }\n}","export const ALL = \"*\"\n\nexport const LOG_CATEGORIES = [\n \"NoLicense\",\n \"Scenario\",\n \"Favorites\",\n \"Subscription\",\n \"Share\",\n \"Document\",\n \"Search\",\n \"History\",\n \"Notification\",\n \"UserProfile\",\n] as const;\n\nexport const LOG_LEVELS = {\n critical: 2,\n error: 3,\n warning: 4,\n info: 6,\n debug: 7,\n} as const;\n\nexport const API = {\n MAX_RETRY: 3,\n API_TIMEOUT: 10000,\n API_HEADERS: {\n \"content-Type\": \"application/json\",\n },\n};\n\nexport const SDK_CONFIG_KEY = \"crex-sdk-config\";\n\nexport const CONTENT_LANG_KEY = \"CONTENT_LANG_KEY\";\n\nexport const UI_LANG_KEY = \"UI_LANG_KEY\";\n\nexport const FLAGS_BY_LANG = {\n \"en\": \"US\",\n \"de\": \"DE\",\n};\n\nexport const DEFAULT_UI_LANG = \"en\";\nexport const UI_LANG_OPTIONS = [\"en\", \"de\"];","import { FLAGS_BY_LANG } from \"@c-rex/constants\";\n\nexport const call = async<T = unknown>(method: string, params?: any): Promise<T> => {\n try {\n const res = await fetch(`/api/rpc`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ method, params }),\n });\n\n const json = await res.json();\n\n if (!res.ok) throw new Error(json.error || 'Unknown error');\n\n return json.data;\n } catch (error) {\n console.error(error);\n return null as any;\n }\n}\n\nexport const getCountryCodeByLang = (lang: string): string => {\n const mappedKeys = Object.keys(FLAGS_BY_LANG);\n\n if (!mappedKeys.includes(lang)) {\n return lang\n }\n\n type LangKey = keyof typeof FLAGS_BY_LANG;\n const country = FLAGS_BY_LANG[lang as LangKey]\n\n return country\n}","export function isBrowser() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\nexport function saveInMemory(value: any, key: string) {\n if (isBrowser()) throw new Error(\"saveInMemory is not supported in browser\");\n\n if (typeof global !== 'undefined' && !(key in global)) {\n (global as any)[key] = null;\n }\n\n const globalConfig = (global as any)[key] as any;\n\n if (globalConfig === null) {\n (global as any)[key] = value;\n }\n}\n\nexport function getFromMemory(key: string): any {\n if (isBrowser()) throw new Error(\"getFromMemory is not supported in browser\");\n\n return (global as any)[key];\n}\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { QueryParams } from '@c-rex/types';\n\nexport const createParams = (fieldsList: string[], key: string = \"Fields\") =>\n fieldsList.map((item) => ({\n key: key,\n value: item,\n }));\n\nexport const generateQueryParams = (params: QueryParams[]): string => {\n const queryParams = params\n .map(\n (param) =>\n `${encodeURIComponent(param.key)}=${encodeURIComponent(param.value)}`,\n )\n .join(\"&\");\n return queryParams;\n};\n","import { CrexApi } from \"@c-rex/core\";\nimport { QueryParams } from \"@c-rex/types\";\nimport { call, generateQueryParams } from \"@c-rex/utils\";\nimport { Method } from \"axios\";\n\nexport class BaseService {\n protected api: CrexApi;\n private endpoint: string;\n\n constructor(endpoint: string) {\n this.api = new CrexApi();\n this.endpoint = endpoint;\n }\n\n protected async request<T>(\n {\n path = \"\",\n method = \"get\",\n params = [],\n headers = {},\n transformer = (response: any) => response,\n }: {\n path?: string,\n method?: Method,\n params?: QueryParams[],\n headers?: any,\n transformer?: (data: any) => T,\n }\n ): Promise<T> {\n try {\n let url = `${this.endpoint}${path}`;\n\n const queryParams = generateQueryParams(params);\n if (queryParams.length > 0) {\n url += `?${queryParams}`;\n }\n\n const response = await this.api.execute({\n url,\n method,\n headers,\n })\n\n return await transformer(response);\n\n } catch (error) {\n call(\"CrexLogger.log\", {\n level: \"error\",\n message: `BaseService.request error when request ${path}. Error: ${error}`\n });\n\n throw error;\n }\n }\n}\n\n","import { BaseService } from \"./baseService\";\nimport { informationUnitsRenditions } from \"@c-rex/interfaces\";\n\n\nexport class RenditionsService extends BaseService {\n constructor() {\n super(\"Renditions/\");\n }\n\n public async getHTMLRendition(renditions: informationUnitsRenditions[]): Promise<string> {\n const filteredRenditions = renditions.filter(\n (item) => item.format == \"application/xhtml+xml\",\n );\n\n if (filteredRenditions.length == 0) return \"\";\n if (filteredRenditions[0] == undefined) return \"\";\n\n const item = filteredRenditions[0];\n\n const filteredLinks = item.links.filter((item) => item.rel == \"view\");\n\n if (filteredLinks.length == 0) return \"\";\n if (filteredLinks[0] == undefined) return \"\";\n\n\n const url = filteredLinks[0].href;\n\n const response = await this.api.execute({\n url,\n method: \"get\",\n headers: {\n Accept: \"application/xhtml+xml\",\n },\n })\n\n return response as string;\n }\n}","import { BaseService } from \"./baseService\";\nimport { DirectoryNodes } from \"@c-rex/interfaces\";\n\n\nexport class DirectoryNodesService extends BaseService {\n constructor() {\n super(\"DirectoryNodes/\");\n }\n\n public async getItem(id: string): Promise<DirectoryNodes> {\n return await this.request({\n path: id,\n });\n }\n}\n","import { DefaultRequest } from \"@c-rex/interfaces\";\nimport { DocumentTypesItem } from \"@c-rex/interfaces\";\n\nexport const transformDocumentTypes = (data: DefaultRequest<DocumentTypesItem>) => {\n const labels: string[] = [];\n\n data.items.forEach((documentItem: DocumentTypesItem) => {\n const aux = documentItem.labels.flatMap((item) => item);\n\n aux.forEach((item) => {\n if (item.language == \"en\") labels.push(item.value);\n });\n });\n\n return labels;\n};\n","import { createParams } from \"@c-rex/utils\";\nimport { transformDocumentTypes } from \"./transforms/documentTypes\";\nimport { BaseService } from \"./baseService\";\n\nexport class DocumentTypesService extends BaseService {\n constructor() {\n super(\"DocumentTypes/\");\n }\n public async getLabels(fields: string[]): Promise<string[]> {\n const params = [\n {\n key: \"Restrict\",\n value: `languages~EN-us`,\n },\n ...createParams(fields, \"Fields\"),\n ];\n\n return await this.request({\n params,\n transformer: transformDocumentTypes,\n });\n }\n}\n","import { DefaultRequest } from \"@c-rex/interfaces\";\nimport {\n informationUnits,\n informationUnitsItems,\n} from \"@c-rex/interfaces\";\n\nexport const transformInformationUnits = (\n data: DefaultRequest<informationUnitsItems>,\n): informationUnits => {\n return {\n items: data.items.map((item) => item),\n pageInfo: data.pageInfo,\n };\n};\n","import {\n AutocompleteSuggestion,\n informationUnits,\n informationUnitsItems,\n} from \"@c-rex/interfaces\";\nimport { transformInformationUnits } from \"./transforms/information\";\nimport { createParams } from \"@c-rex/utils\";\nimport { BaseService } from \"./baseService\";\n\nexport class InformationUnitsService extends BaseService {\n constructor() {\n super(\"InformationUnits/\");\n }\n\n public async getList({\n queries = \"\",\n page = 1,\n fields = [],\n filters = [],\n languages = []\n }: {\n queries?: string,\n page?: number,\n filters?: string[],\n fields?: string[],\n languages?: string[]\n }): Promise<informationUnits> {\n const remainFields = createParams(fields, \"Fields\");\n const remainFilters = createParams(filters, \"Filter\");\n const languageParams = createParams(\n languages.map(item => `languages=${item}`),\n \"Filter\"\n );\n /*\n const languageParams = createParams(\n languages.map(item => `?s iirds:language ${item}`),\n \"sparqlWhere\"\n );\n */\n\n const params = [\n { key: \"pageSize\", value: \"9\" },\n { key: \"PageNumber\", value: (page - 1).toString() },\n ...remainFields,\n ...languageParams,\n ...remainFilters\n ];\n\n if (queries.length > 0) {\n params.push(\n { key: \"Query\", value: queries },\n );\n }\n\n return await this.request({\n params: params,\n transformer: transformInformationUnits\n });\n }\n\n public async getItem({ id }: { id: string }): Promise<informationUnitsItems> {\n const params = [\n { key: \"Fields\", value: \"renditions\" },\n { key: \"Fields\", value: \"directoryNodes\" },\n { key: \"Fields\", value: \"versionOf\" },\n ];\n\n return await this.request({\n path: id,\n params,\n });\n }\n\n public async getSuggestions({ query }: { query: string }): Promise<string[]> {\n return await this.request({\n path: `Suggestions`,\n params: [{ key: \"prefix\", value: query }],\n transformer: (data: AutocompleteSuggestion) => {\n return data.suggestions.map((item) => item.value);\n },\n });\n }\n}\n","import { LanguageAndCountries } from \"@c-rex/interfaces\";\nimport { BaseService } from \"./baseService\";\nimport { FLAGS_BY_LANG } from \"@c-rex/constants\";\nimport { getCountryCodeByLang } from \"@c-rex/utils\";\n\nexport class LanguageService extends BaseService {\n constructor(endpoint: string) {\n super(endpoint);\n }\n\n /*\n public static async getInstance(): Promise<LanguageService> {\n const jsonConfigs = await getCookie(SDK_CONFIG_KEY);\n if (!jsonConfigs) {\n throw new Error(\"SDK not initialized\");\n }\n\n const customerConfig = JSON.parse(jsonConfigs) as ConfigInterface;\n\n if (!LanguageService.instance) {\n LanguageService.instance = new LanguageService(customerConfig.languageSwitcher.endpoint);\n }\n return LanguageService.instance;\n }\n */\n\n public async getLanguagesAndCountries(): Promise<LanguageAndCountries[]> {\n return await this.request({\n transformer: (data: { value: string; score: number }[]) => {\n const countryCodeList = data.map((item) => {\n //should be abble to handle this items: en-US, en, pt, pt-PT, pt-BR \n\n const splittedValue = item.value.split(\"-\")\n const lang = splittedValue[0]\n let country = splittedValue[0]\n\n if (splittedValue.length > 1) {\n country = splittedValue[1]\n } else {\n country = getCountryCodeByLang(lang)\n }\n\n return {\n country: country,\n lang: lang,\n value: item.value,\n }\n })\n\n return countryCodeList.sort((a, b) => {\n return a.value.localeCompare(b.value)\n })\n },\n });\n }\n}\n"],"mappings":"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","names":["axios","item"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../../core/src/requests.ts","../../constants/src/index.ts","../../utils/src/utils.ts","../../utils/src/memory.ts","../../utils/src/classMerge.ts","../../utils/src/params.ts","../src/baseService.ts","../src/renditions.ts","../src/directoryNodes.ts","../src/transforms/documentTypes.ts","../src/documentTypes.ts","../src/transforms/information.ts","../src/informationUnits.ts","../src/language.ts"],"sourcesContent":["export * from \"./renditions\"\nexport * from \"./directoryNodes\"\nexport * from \"./documentTypes\"\nexport * from \"./informationUnits\"\nexport * from \"./language\"\n","import axios, { AxiosResponse, Method, AxiosInstance } from \"axios\";\nimport { API, SDK_CONFIG_KEY } from \"@c-rex/constants\";\nimport { Issuer } from \"openid-client\";\nimport { ConfigInterface } from \"@c-rex/interfaces\";\nimport { call, getFromMemory, saveInMemory } from \"@c-rex/utils\";\nimport { getCookie } from \"@c-rex/utils/next-cookies\";\n\nconst CREX_TOKEN_HEADER_KEY = \"crex-token\";\nconst CREX_TOKEN_EXPIRY_HEADER_KEY = \"crex-token-expiry\";\n\ninterface APIGenericResponse<T> extends AxiosResponse {\n data: T;\n statusCode: number;\n}\n\ninterface CallParams {\n url: string;\n method: Method;\n body?: any;\n headers?: any;\n params?: any;\n}\n\nexport class CrexApi {\n private customerConfig!: ConfigInterface;\n private apiClient!: AxiosInstance;\n\n private async manageToken() {\n const headersAux: Record<string, string> = {};\n\n if (this.customerConfig.OIDC.client.enabled) {\n let token = getFromMemory(CREX_TOKEN_HEADER_KEY);\n let tokenExpiry = getFromMemory(CREX_TOKEN_EXPIRY_HEADER_KEY);\n\n const now = Math.floor(Date.now() / 1000);\n\n if (!(token && tokenExpiry > now + 60)) {\n const { token: tokenAux, tokenExpiry: tokenExpiryAux } = await this.getToken();\n\n token = tokenAux;\n\n saveInMemory(token, CREX_TOKEN_HEADER_KEY);\n saveInMemory(tokenExpiryAux, CREX_TOKEN_EXPIRY_HEADER_KEY);\n }\n\n headersAux['Authorization'] = `Bearer ${token}`;\n }\n\n return headersAux;\n }\n\n private async getToken(): Promise<{\n token: string;\n tokenExpiry: number;\n }> {\n let token = \"\";\n let tokenExpiry = 0;\n\n try {\n const now = Math.floor(Date.now() / 1000);\n const issuer = await Issuer.discover(this.customerConfig.OIDC.client.issuer);\n const client = new issuer.Client({\n client_id: this.customerConfig.OIDC.client.id,\n client_secret: this.customerConfig.OIDC.client.secret,\n });\n const tokenSet = await client.grant({ grant_type: 'client_credentials' });\n\n token = tokenSet.access_token!;\n tokenExpiry = now + tokenSet.expires_at!;\n\n console.log('token', token);\n\n } catch (error) {\n call(\"CrexLogger.log\", {\n level: \"error\",\n message: `API.getToken error when request ${this.customerConfig.OIDC.client.issuer}. Error: ${error}`\n });\n }\n\n return {\n token,\n tokenExpiry\n };\n }\n\n private async initAPI() {\n if (!this.customerConfig) {\n const jsonConfigs = await getCookie(SDK_CONFIG_KEY);\n if (!jsonConfigs) {\n throw new Error(\"SDK not initialized\");\n }\n this.customerConfig = JSON.parse(jsonConfigs) as ConfigInterface;\n }\n if (!this.apiClient) {\n this.apiClient = axios.create({\n baseURL: this.customerConfig.baseUrl,\n })\n }\n }\n\n async execute<T>({\n url,\n method,\n params,\n body,\n headers = {},\n }: CallParams): Promise<T> {\n\n await this.initAPI();\n\n let response: APIGenericResponse<T> | undefined = undefined;\n\n headers = {\n ...headers,\n ...await this.manageToken(),\n };\n\n for (let retry = 0; retry < API.MAX_RETRY; retry++) {\n try {\n response = await this.apiClient.request({\n url,\n method,\n data: body,\n params,\n headers,\n });\n\n break;\n } catch (error) {\n //TODO: add logger\n console.log(\n \"error\",\n `API.execute ${retry + 1}º error when request ${url}. Error: ${error}`\n );\n\n if (retry === API.MAX_RETRY - 1) {\n throw error;\n }\n }\n }\n\n if (response) {\n return response.data;\n }\n\n throw new Error(\"API.execute error: Failed to retrieve a valid response\");\n }\n}","export const ALL = \"*\"\n\nexport const LOG_CATEGORIES = [\n \"NoLicense\",\n \"Scenario\",\n \"Favorites\",\n \"Subscription\",\n \"Share\",\n \"Document\",\n \"Search\",\n \"History\",\n \"Notification\",\n \"UserProfile\",\n] as const;\n\nexport const LOG_LEVELS = {\n critical: 2,\n error: 3,\n warning: 4,\n info: 6,\n debug: 7,\n} as const;\n\nexport const RESULT_VIEW_STYLES = [\n \"cards\",\n \"table\",\n] as const;\n\nexport const API = {\n MAX_RETRY: 3,\n API_TIMEOUT: 10000,\n API_HEADERS: {\n \"content-Type\": \"application/json\",\n },\n};\n\nexport const SDK_CONFIG_KEY = \"crex-sdk-config\";\n\nexport const CONTENT_LANG_KEY = \"CONTENT_LANG_KEY\";\n\nexport const AVAILABLE_CONTENT_LANG_KEY = \"AVAILABLE_CONTENT_LANG_KEY\";\n\nexport const UI_LANG_KEY = \"UI_LANG_KEY\";\n\nexport const FLAGS_BY_LANG = {\n \"en\": \"US\",\n \"de\": \"DE\",\n};\n\nexport const DEFAULT_UI_LANG = \"en\";\n\nexport const UI_LANG_OPTIONS = [\"en\", \"de\"];\n\nexport const RESULT_TYPES = {\n TOPIC: \"TOPIC\",\n DOCUMENT: \"DOCUMENT\",\n PACKAGE: \"PACKAGE\",\n} as const;","import { FLAGS_BY_LANG } from \"@c-rex/constants\";\n\nexport const call = async<T = unknown>(method: string, params?: any): Promise<T> => {\n try {\n const res = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/api/rpc`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ method, params }),\n });\n\n const json = await res.json();\n\n if (!res.ok) throw new Error(json.error || 'Unknown error');\n\n return json.data;\n } catch (error) {\n console.error(error);\n return null as any;\n }\n}\n\nexport const getCountryCodeByLang = (lang: string): string => {\n const mappedKeys = Object.keys(FLAGS_BY_LANG);\n\n if (!mappedKeys.includes(lang)) {\n return lang\n }\n\n type LangKey = keyof typeof FLAGS_BY_LANG;\n const country = FLAGS_BY_LANG[lang as LangKey]\n\n return country\n}","export function isBrowser() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\nexport function saveInMemory(value: any, key: string) {\n if (isBrowser()) throw new Error(\"saveInMemory is not supported in browser\");\n\n if (typeof global !== 'undefined' && !(key in global)) {\n (global as any)[key] = null;\n }\n\n const globalConfig = (global as any)[key] as any;\n\n if (globalConfig === null) {\n (global as any)[key] = value;\n }\n}\n\nexport function getFromMemory(key: string): any {\n if (isBrowser()) throw new Error(\"getFromMemory is not supported in browser\");\n\n return (global as any)[key];\n}\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { QueryParams } from '@c-rex/types';\n\nexport const createParams = (fieldsList: string[], key: string = \"Fields\") =>\n fieldsList.map((item) => ({\n key: key,\n value: item,\n }));\n\nexport const generateQueryParams = (params: QueryParams[]): string => {\n const queryParams = params\n .map(\n (param) =>\n `${encodeURIComponent(param.key)}=${encodeURIComponent(param.value)}`,\n )\n .join(\"&\");\n return queryParams;\n};\n","import { CrexApi } from \"@c-rex/core\";\nimport { QueryParams } from \"@c-rex/types\";\nimport { call, generateQueryParams } from \"@c-rex/utils\";\nimport { Method } from \"axios\";\n\nexport class BaseService {\n protected api: CrexApi;\n private endpoint: string;\n\n constructor(endpoint: string) {\n this.api = new CrexApi();\n this.endpoint = endpoint;\n }\n\n protected async request<T>(\n {\n path = \"\",\n method = \"get\",\n params = [],\n headers = {},\n transformer = (response: any) => response,\n }: {\n path?: string,\n method?: Method,\n params?: QueryParams[],\n headers?: any,\n transformer?: (data: any) => T,\n }\n ): Promise<T> {\n try {\n let url = `${this.endpoint}${path}`;\n\n const queryParams = generateQueryParams(params);\n if (queryParams.length > 0) {\n url += `?${queryParams}`;\n }\n\n const response = await this.api.execute({\n url,\n method,\n headers,\n })\n\n return await transformer(response);\n\n } catch (error) {\n call(\"CrexLogger.log\", {\n level: \"error\",\n message: `BaseService.request error when request ${path}. Error: ${error}`\n });\n\n throw error;\n }\n }\n}\n\n","import { BaseService } from \"./baseService\";\nimport { informationUnitsRenditions } from \"@c-rex/interfaces\";\n\n\nexport class RenditionsService extends BaseService {\n constructor() {\n super(\"Renditions/\");\n }\n\n public async getHTMLRendition(renditions: informationUnitsRenditions[]): Promise<string> {\n const filteredRenditions = renditions.filter(\n (item) => item.format == \"application/xhtml+xml\",\n );\n\n if (filteredRenditions.length == 0 || filteredRenditions[0] == undefined) return \"\";\n const item = filteredRenditions[0];\n const filteredLinks = item.links.filter((item) => item.rel == \"view\");\n\n if (filteredLinks.length == 0 || filteredLinks[0] == undefined) return \"\";\n const url = filteredLinks[0].href;\n const response = await this.api.execute({\n url,\n method: \"get\",\n headers: {\n Accept: \"application/xhtml+xml\",\n },\n })\n\n return response as string;\n }\n\n public async getDocumentRendition(renditions: informationUnitsRenditions[], type: string): Promise<string> {\n const filteredRenditions = renditions.filter(\n (item) => item.format == `application/${type}`,\n );\n\n if (filteredRenditions.length == 0 || filteredRenditions[0] == undefined) return \"\";\n\n const item = filteredRenditions[0];\n const filteredLinks = item.links.filter((item) => item.rel == \"view\");\n\n if (filteredLinks.length == 0 || filteredLinks[0] == undefined) return \"\";\n const url = filteredLinks[0].href;\n\n return url;\n }\n}","import { BaseService } from \"./baseService\";\nimport { DirectoryNodes } from \"@c-rex/interfaces\";\n\n\nexport class DirectoryNodesService extends BaseService {\n constructor() {\n super(\"DirectoryNodes/\");\n }\n\n public async getItem(id: string): Promise<DirectoryNodes> {\n return await this.request({\n path: id,\n });\n }\n}\n","import { DefaultRequest } from \"@c-rex/interfaces\";\nimport { DocumentTypesItem } from \"@c-rex/interfaces\";\n\nexport const transformDocumentTypes = (data: DefaultRequest<DocumentTypesItem>) => {\n const labels: string[] = [];\n\n data.items.forEach((documentItem: DocumentTypesItem) => {\n const aux = documentItem.labels.flatMap((item) => item);\n\n aux.forEach((item) => {\n if (item.language == \"en\") labels.push(item.value);\n });\n });\n\n return labels;\n};\n","import { createParams } from \"@c-rex/utils\";\nimport { transformDocumentTypes } from \"./transforms/documentTypes\";\nimport { BaseService } from \"./baseService\";\n\nexport class DocumentTypesService extends BaseService {\n constructor() {\n super(\"DocumentTypes/\");\n }\n public async getLabels(fields: string[]): Promise<string[]> {\n const params = [\n {\n key: \"Restrict\",\n value: `languages~EN-us`,\n },\n ...createParams(fields, \"Fields\"),\n ];\n\n return await this.request({\n params,\n transformer: transformDocumentTypes,\n });\n }\n}\n","import { DefaultRequest } from \"@c-rex/interfaces\";\nimport {\n informationUnits,\n informationUnitsItems,\n} from \"@c-rex/interfaces\";\n\nexport const transformInformationUnits = (\n data: DefaultRequest<informationUnitsItems>,\n): informationUnits => {\n return {\n items: data.items.map((item) => item),\n pageInfo: data.pageInfo,\n };\n};\n","import {\n AutocompleteSuggestion,\n informationUnits,\n informationUnitsItems,\n} from \"@c-rex/interfaces\";\nimport { transformInformationUnits } from \"./transforms/information\";\nimport { createParams } from \"@c-rex/utils\";\nimport { BaseService } from \"./baseService\";\n\nexport class InformationUnitsService extends BaseService {\n constructor() {\n super(\"InformationUnits/\");\n }\n\n public async getList({\n queries = \"\",\n page = 1,\n fields = [],\n filters = [],\n languages = []\n }: {\n queries?: string,\n page?: number,\n filters?: string[],\n fields?: string[],\n languages?: string[]\n }): Promise<informationUnits> {\n const remainFields = createParams(fields, \"Fields\");\n const remainFilters = createParams(filters, \"Filter\");\n const languageParams = createParams(\n languages.map(item => `languages=${item}`),\n \"Filter\"\n );\n /*\n const languageParams = createParams(\n languages.map(item => `?s iirds:language ${item}`),\n \"sparqlWhere\"\n );\n */\n\n const params = [\n { key: \"pageSize\", value: \"9\" },\n { key: \"PageNumber\", value: (page - 1).toString() },\n ...remainFields,\n ...languageParams,\n ...remainFilters\n ];\n\n if (queries.length > 0) {\n params.push(\n { key: \"Query\", value: queries },\n );\n }\n\n return await this.request({\n params: params,\n transformer: transformInformationUnits\n });\n }\n\n public async getItem({ id }: { id: string }): Promise<informationUnitsItems> {\n const params = [\n { key: \"Fields\", value: \"renditions\" },\n { key: \"Fields\", value: \"directoryNodes\" },\n { key: \"Fields\", value: \"versionOf\" },\n { key: \"Fields\", value: \"titles\" },\n ];\n\n return await this.request({\n path: id,\n params,\n });\n }\n\n public async getSuggestions({ query }: { query: string }): Promise<string[]> {\n return await this.request({\n path: `Suggestions`,\n params: [{ key: \"prefix\", value: query }],\n transformer: (data: AutocompleteSuggestion) => {\n return data.suggestions.map((item) => item.value);\n },\n });\n }\n}\n","import { LanguageAndCountries } from \"@c-rex/interfaces\";\nimport { BaseService } from \"./baseService\";\nimport { getCountryCodeByLang } from \"@c-rex/utils\";\n\nexport class LanguageService extends BaseService {\n constructor(endpoint: string) {\n super(endpoint);\n }\n\n /*\n public static async getInstance(): Promise<LanguageService> {\n const jsonConfigs = await getCookie(SDK_CONFIG_KEY);\n if (!jsonConfigs) {\n throw new Error(\"SDK not initialized\");\n }\n\n const customerConfig = JSON.parse(jsonConfigs) as ConfigInterface;\n\n if (!LanguageService.instance) {\n LanguageService.instance = new LanguageService(customerConfig.languageSwitcher.endpoint);\n }\n return LanguageService.instance;\n }\n */\n\n public async getLanguagesAndCountries(): Promise<LanguageAndCountries[]> {\n return await this.request({\n transformer: (data: { value: string; score: number }[]) => {\n const countryCodeList = data.map((item) => {\n //should be abble to handle this items: en-US, en, pt, pt-PT, pt-BR \n\n const splittedValue = item.value.split(\"-\")\n const lang = splittedValue[0]\n let country = splittedValue[0]\n\n if (splittedValue.length > 1) {\n country = splittedValue[1]\n } else {\n country = getCountryCodeByLang(lang)\n }\n\n return {\n country: country,\n lang: lang,\n value: item.value,\n }\n })\n\n return countryCodeList.sort((a, b) => {\n return a.value.localeCompare(b.value)\n })\n },\n });\n }\n}\n"],"mappings":"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","names":["axios","item"]}
|
package/dist/index.mjs
CHANGED
|
@@ -21,7 +21,7 @@ import { Issuer } from "openid-client";
|
|
|
21
21
|
// ../utils/src/utils.ts
|
|
22
22
|
var call = async (method, params) => {
|
|
23
23
|
try {
|
|
24
|
-
const res = await fetch(
|
|
24
|
+
const res = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/api/rpc`, {
|
|
25
25
|
method: "POST",
|
|
26
26
|
headers: { "Content-Type": "application/json" },
|
|
27
27
|
body: JSON.stringify({ method, params })
|
|
@@ -114,6 +114,7 @@ var CrexApi = class {
|
|
|
114
114
|
const tokenSet = await client.grant({ grant_type: "client_credentials" });
|
|
115
115
|
token = tokenSet.access_token;
|
|
116
116
|
tokenExpiry = now + tokenSet.expires_at;
|
|
117
|
+
console.log("token", token);
|
|
117
118
|
} catch (error) {
|
|
118
119
|
call("CrexLogger.log", {
|
|
119
120
|
level: "error",
|
|
@@ -225,12 +226,10 @@ var RenditionsService = class extends BaseService {
|
|
|
225
226
|
const filteredRenditions = renditions.filter(
|
|
226
227
|
(item2) => item2.format == "application/xhtml+xml"
|
|
227
228
|
);
|
|
228
|
-
if (filteredRenditions.length == 0) return "";
|
|
229
|
-
if (filteredRenditions[0] == void 0) return "";
|
|
229
|
+
if (filteredRenditions.length == 0 || filteredRenditions[0] == void 0) return "";
|
|
230
230
|
const item = filteredRenditions[0];
|
|
231
231
|
const filteredLinks = item.links.filter((item2) => item2.rel == "view");
|
|
232
|
-
if (filteredLinks.length == 0) return "";
|
|
233
|
-
if (filteredLinks[0] == void 0) return "";
|
|
232
|
+
if (filteredLinks.length == 0 || filteredLinks[0] == void 0) return "";
|
|
234
233
|
const url = filteredLinks[0].href;
|
|
235
234
|
const response = await this.api.execute({
|
|
236
235
|
url,
|
|
@@ -241,6 +240,17 @@ var RenditionsService = class extends BaseService {
|
|
|
241
240
|
});
|
|
242
241
|
return response;
|
|
243
242
|
}
|
|
243
|
+
async getDocumentRendition(renditions, type) {
|
|
244
|
+
const filteredRenditions = renditions.filter(
|
|
245
|
+
(item2) => item2.format == `application/${type}`
|
|
246
|
+
);
|
|
247
|
+
if (filteredRenditions.length == 0 || filteredRenditions[0] == void 0) return "";
|
|
248
|
+
const item = filteredRenditions[0];
|
|
249
|
+
const filteredLinks = item.links.filter((item2) => item2.rel == "view");
|
|
250
|
+
if (filteredLinks.length == 0 || filteredLinks[0] == void 0) return "";
|
|
251
|
+
const url = filteredLinks[0].href;
|
|
252
|
+
return url;
|
|
253
|
+
}
|
|
244
254
|
};
|
|
245
255
|
|
|
246
256
|
// src/directoryNodes.ts
|
|
@@ -334,7 +344,8 @@ var InformationUnitsService = class extends BaseService {
|
|
|
334
344
|
const params = [
|
|
335
345
|
{ key: "Fields", value: "renditions" },
|
|
336
346
|
{ key: "Fields", value: "directoryNodes" },
|
|
337
|
-
{ key: "Fields", value: "versionOf" }
|
|
347
|
+
{ key: "Fields", value: "versionOf" },
|
|
348
|
+
{ key: "Fields", value: "titles" }
|
|
338
349
|
];
|
|
339
350
|
return await this.request({
|
|
340
351
|
path: id,
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../core/src/requests.ts","../../constants/src/index.ts","../../utils/src/utils.ts","../../utils/src/memory.ts","../../utils/src/classMerge.ts","../../utils/src/params.ts","../src/baseService.ts","../src/renditions.ts","../src/directoryNodes.ts","../src/transforms/documentTypes.ts","../src/documentTypes.ts","../src/transforms/information.ts","../src/informationUnits.ts","../src/language.ts"],"sourcesContent":["import axios, { AxiosResponse, Method, AxiosInstance } from \"axios\";\nimport { API, SDK_CONFIG_KEY } from \"@c-rex/constants\";\nimport { Issuer } from \"openid-client\";\nimport { ConfigInterface } from \"@c-rex/interfaces\";\nimport { call, getFromMemory, saveInMemory } from \"@c-rex/utils\";\nimport { getCookie } from \"@c-rex/utils/next-cookies\";\n\nconst CREX_TOKEN_HEADER_KEY = \"crex-token\";\nconst CREX_TOKEN_EXPIRY_HEADER_KEY = \"crex-token-expiry\";\n\ninterface APIGenericResponse<T> extends AxiosResponse {\n data: T;\n statusCode: number;\n}\n\ninterface CallParams {\n url: string;\n method: Method;\n body?: any;\n headers?: any;\n params?: any;\n}\n\nexport class CrexApi {\n private customerConfig!: ConfigInterface;\n private apiClient!: AxiosInstance;\n\n private async manageToken() {\n const headersAux: Record<string, string> = {};\n\n if (this.customerConfig.OIDC.client.enabled) {\n let token = getFromMemory(CREX_TOKEN_HEADER_KEY);\n let tokenExpiry = getFromMemory(CREX_TOKEN_EXPIRY_HEADER_KEY);\n\n const now = Math.floor(Date.now() / 1000);\n\n if (!(token && tokenExpiry > now + 60)) {\n const { token: tokenAux, tokenExpiry: tokenExpiryAux } = await this.getToken();\n\n token = tokenAux;\n\n saveInMemory(token, CREX_TOKEN_HEADER_KEY);\n saveInMemory(tokenExpiryAux, CREX_TOKEN_EXPIRY_HEADER_KEY);\n }\n\n headersAux['Authorization'] = `Bearer ${token}`;\n }\n\n return headersAux;\n }\n\n private async getToken(): Promise<{\n token: string;\n tokenExpiry: number;\n }> {\n let token = \"\";\n let tokenExpiry = 0;\n\n try {\n const now = Math.floor(Date.now() / 1000);\n const issuer = await Issuer.discover(this.customerConfig.OIDC.client.issuer);\n const client = new issuer.Client({\n client_id: this.customerConfig.OIDC.client.id,\n client_secret: this.customerConfig.OIDC.client.secret,\n });\n const tokenSet = await client.grant({ grant_type: 'client_credentials' });\n\n token = tokenSet.access_token!;\n tokenExpiry = now + tokenSet.expires_at!;\n } catch (error) {\n call(\"CrexLogger.log\", {\n level: \"error\",\n message: `API.getToken error when request ${this.customerConfig.OIDC.client.issuer}. Error: ${error}`\n });\n }\n\n return {\n token,\n tokenExpiry\n };\n }\n\n private async initAPI() {\n if (!this.customerConfig) {\n const jsonConfigs = await getCookie(SDK_CONFIG_KEY);\n if (!jsonConfigs) {\n throw new Error(\"SDK not initialized\");\n }\n this.customerConfig = JSON.parse(jsonConfigs) as ConfigInterface;\n }\n if (!this.apiClient) {\n this.apiClient = axios.create({\n baseURL: this.customerConfig.baseUrl,\n })\n }\n }\n\n async execute<T>({\n url,\n method,\n params,\n body,\n headers = {},\n }: CallParams): Promise<T> {\n\n await this.initAPI();\n\n let response: APIGenericResponse<T> | undefined = undefined;\n\n headers = {\n ...headers,\n ...await this.manageToken(),\n };\n\n for (let retry = 0; retry < API.MAX_RETRY; retry++) {\n try {\n response = await this.apiClient.request({\n url,\n method,\n data: body,\n params,\n headers,\n });\n\n break;\n } catch (error) {\n //TODO: add logger\n console.log(\n \"error\",\n `API.execute ${retry + 1}º error when request ${url}. Error: ${error}`\n );\n\n if (retry === API.MAX_RETRY - 1) {\n throw error;\n }\n }\n }\n\n if (response) {\n return response.data;\n }\n\n throw new Error(\"API.execute error: Failed to retrieve a valid response\");\n }\n}","export const ALL = \"*\"\n\nexport const LOG_CATEGORIES = [\n \"NoLicense\",\n \"Scenario\",\n \"Favorites\",\n \"Subscription\",\n \"Share\",\n \"Document\",\n \"Search\",\n \"History\",\n \"Notification\",\n \"UserProfile\",\n] as const;\n\nexport const LOG_LEVELS = {\n critical: 2,\n error: 3,\n warning: 4,\n info: 6,\n debug: 7,\n} as const;\n\nexport const API = {\n MAX_RETRY: 3,\n API_TIMEOUT: 10000,\n API_HEADERS: {\n \"content-Type\": \"application/json\",\n },\n};\n\nexport const SDK_CONFIG_KEY = \"crex-sdk-config\";\n\nexport const CONTENT_LANG_KEY = \"CONTENT_LANG_KEY\";\n\nexport const UI_LANG_KEY = \"UI_LANG_KEY\";\n\nexport const FLAGS_BY_LANG = {\n \"en\": \"US\",\n \"de\": \"DE\",\n};\n\nexport const DEFAULT_UI_LANG = \"en\";\nexport const UI_LANG_OPTIONS = [\"en\", \"de\"];","import { FLAGS_BY_LANG } from \"@c-rex/constants\";\n\nexport const call = async<T = unknown>(method: string, params?: any): Promise<T> => {\n try {\n const res = await fetch(`/api/rpc`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ method, params }),\n });\n\n const json = await res.json();\n\n if (!res.ok) throw new Error(json.error || 'Unknown error');\n\n return json.data;\n } catch (error) {\n console.error(error);\n return null as any;\n }\n}\n\nexport const getCountryCodeByLang = (lang: string): string => {\n const mappedKeys = Object.keys(FLAGS_BY_LANG);\n\n if (!mappedKeys.includes(lang)) {\n return lang\n }\n\n type LangKey = keyof typeof FLAGS_BY_LANG;\n const country = FLAGS_BY_LANG[lang as LangKey]\n\n return country\n}","export function isBrowser() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\nexport function saveInMemory(value: any, key: string) {\n if (isBrowser()) throw new Error(\"saveInMemory is not supported in browser\");\n\n if (typeof global !== 'undefined' && !(key in global)) {\n (global as any)[key] = null;\n }\n\n const globalConfig = (global as any)[key] as any;\n\n if (globalConfig === null) {\n (global as any)[key] = value;\n }\n}\n\nexport function getFromMemory(key: string): any {\n if (isBrowser()) throw new Error(\"getFromMemory is not supported in browser\");\n\n return (global as any)[key];\n}\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { QueryParams } from '@c-rex/types';\n\nexport const createParams = (fieldsList: string[], key: string = \"Fields\") =>\n fieldsList.map((item) => ({\n key: key,\n value: item,\n }));\n\nexport const generateQueryParams = (params: QueryParams[]): string => {\n const queryParams = params\n .map(\n (param) =>\n `${encodeURIComponent(param.key)}=${encodeURIComponent(param.value)}`,\n )\n .join(\"&\");\n return queryParams;\n};\n","import { CrexApi } from \"@c-rex/core\";\nimport { QueryParams } from \"@c-rex/types\";\nimport { call, generateQueryParams } from \"@c-rex/utils\";\nimport { Method } from \"axios\";\n\nexport class BaseService {\n protected api: CrexApi;\n private endpoint: string;\n\n constructor(endpoint: string) {\n this.api = new CrexApi();\n this.endpoint = endpoint;\n }\n\n protected async request<T>(\n {\n path = \"\",\n method = \"get\",\n params = [],\n headers = {},\n transformer = (response: any) => response,\n }: {\n path?: string,\n method?: Method,\n params?: QueryParams[],\n headers?: any,\n transformer?: (data: any) => T,\n }\n ): Promise<T> {\n try {\n let url = `${this.endpoint}${path}`;\n\n const queryParams = generateQueryParams(params);\n if (queryParams.length > 0) {\n url += `?${queryParams}`;\n }\n\n const response = await this.api.execute({\n url,\n method,\n headers,\n })\n\n return await transformer(response);\n\n } catch (error) {\n call(\"CrexLogger.log\", {\n level: \"error\",\n message: `BaseService.request error when request ${path}. Error: ${error}`\n });\n\n throw error;\n }\n }\n}\n\n","import { BaseService } from \"./baseService\";\nimport { informationUnitsRenditions } from \"@c-rex/interfaces\";\n\n\nexport class RenditionsService extends BaseService {\n constructor() {\n super(\"Renditions/\");\n }\n\n public async getHTMLRendition(renditions: informationUnitsRenditions[]): Promise<string> {\n const filteredRenditions = renditions.filter(\n (item) => item.format == \"application/xhtml+xml\",\n );\n\n if (filteredRenditions.length == 0) return \"\";\n if (filteredRenditions[0] == undefined) return \"\";\n\n const item = filteredRenditions[0];\n\n const filteredLinks = item.links.filter((item) => item.rel == \"view\");\n\n if (filteredLinks.length == 0) return \"\";\n if (filteredLinks[0] == undefined) return \"\";\n\n\n const url = filteredLinks[0].href;\n\n const response = await this.api.execute({\n url,\n method: \"get\",\n headers: {\n Accept: \"application/xhtml+xml\",\n },\n })\n\n return response as string;\n }\n}","import { BaseService } from \"./baseService\";\nimport { DirectoryNodes } from \"@c-rex/interfaces\";\n\n\nexport class DirectoryNodesService extends BaseService {\n constructor() {\n super(\"DirectoryNodes/\");\n }\n\n public async getItem(id: string): Promise<DirectoryNodes> {\n return await this.request({\n path: id,\n });\n }\n}\n","import { DefaultRequest } from \"@c-rex/interfaces\";\nimport { DocumentTypesItem } from \"@c-rex/interfaces\";\n\nexport const transformDocumentTypes = (data: DefaultRequest<DocumentTypesItem>) => {\n const labels: string[] = [];\n\n data.items.forEach((documentItem: DocumentTypesItem) => {\n const aux = documentItem.labels.flatMap((item) => item);\n\n aux.forEach((item) => {\n if (item.language == \"en\") labels.push(item.value);\n });\n });\n\n return labels;\n};\n","import { createParams } from \"@c-rex/utils\";\nimport { transformDocumentTypes } from \"./transforms/documentTypes\";\nimport { BaseService } from \"./baseService\";\n\nexport class DocumentTypesService extends BaseService {\n constructor() {\n super(\"DocumentTypes/\");\n }\n public async getLabels(fields: string[]): Promise<string[]> {\n const params = [\n {\n key: \"Restrict\",\n value: `languages~EN-us`,\n },\n ...createParams(fields, \"Fields\"),\n ];\n\n return await this.request({\n params,\n transformer: transformDocumentTypes,\n });\n }\n}\n","import { DefaultRequest } from \"@c-rex/interfaces\";\nimport {\n informationUnits,\n informationUnitsItems,\n} from \"@c-rex/interfaces\";\n\nexport const transformInformationUnits = (\n data: DefaultRequest<informationUnitsItems>,\n): informationUnits => {\n return {\n items: data.items.map((item) => item),\n pageInfo: data.pageInfo,\n };\n};\n","import {\n AutocompleteSuggestion,\n informationUnits,\n informationUnitsItems,\n} from \"@c-rex/interfaces\";\nimport { transformInformationUnits } from \"./transforms/information\";\nimport { createParams } from \"@c-rex/utils\";\nimport { BaseService } from \"./baseService\";\n\nexport class InformationUnitsService extends BaseService {\n constructor() {\n super(\"InformationUnits/\");\n }\n\n public async getList({\n queries = \"\",\n page = 1,\n fields = [],\n filters = [],\n languages = []\n }: {\n queries?: string,\n page?: number,\n filters?: string[],\n fields?: string[],\n languages?: string[]\n }): Promise<informationUnits> {\n const remainFields = createParams(fields, \"Fields\");\n const remainFilters = createParams(filters, \"Filter\");\n const languageParams = createParams(\n languages.map(item => `languages=${item}`),\n \"Filter\"\n );\n /*\n const languageParams = createParams(\n languages.map(item => `?s iirds:language ${item}`),\n \"sparqlWhere\"\n );\n */\n\n const params = [\n { key: \"pageSize\", value: \"9\" },\n { key: \"PageNumber\", value: (page - 1).toString() },\n ...remainFields,\n ...languageParams,\n ...remainFilters\n ];\n\n if (queries.length > 0) {\n params.push(\n { key: \"Query\", value: queries },\n );\n }\n\n return await this.request({\n params: params,\n transformer: transformInformationUnits\n });\n }\n\n public async getItem({ id }: { id: string }): Promise<informationUnitsItems> {\n const params = [\n { key: \"Fields\", value: \"renditions\" },\n { key: \"Fields\", value: \"directoryNodes\" },\n { key: \"Fields\", value: \"versionOf\" },\n ];\n\n return await this.request({\n path: id,\n params,\n });\n }\n\n public async getSuggestions({ query }: { query: string }): Promise<string[]> {\n return await this.request({\n path: `Suggestions`,\n params: [{ key: \"prefix\", value: query }],\n transformer: (data: AutocompleteSuggestion) => {\n return data.suggestions.map((item) => item.value);\n },\n });\n }\n}\n","import { LanguageAndCountries } from \"@c-rex/interfaces\";\nimport { BaseService } from \"./baseService\";\nimport { FLAGS_BY_LANG } from \"@c-rex/constants\";\nimport { getCountryCodeByLang } from \"@c-rex/utils\";\n\nexport class LanguageService extends BaseService {\n constructor(endpoint: string) {\n super(endpoint);\n }\n\n /*\n public static async getInstance(): Promise<LanguageService> {\n const jsonConfigs = await getCookie(SDK_CONFIG_KEY);\n if (!jsonConfigs) {\n throw new Error(\"SDK not initialized\");\n }\n\n const customerConfig = JSON.parse(jsonConfigs) as ConfigInterface;\n\n if (!LanguageService.instance) {\n LanguageService.instance = new LanguageService(customerConfig.languageSwitcher.endpoint);\n }\n return LanguageService.instance;\n }\n */\n\n public async getLanguagesAndCountries(): Promise<LanguageAndCountries[]> {\n return await this.request({\n transformer: (data: { value: string; score: number }[]) => {\n const countryCodeList = data.map((item) => {\n //should be abble to handle this items: en-US, en, pt, pt-PT, pt-BR \n\n const splittedValue = item.value.split(\"-\")\n const lang = splittedValue[0]\n let country = splittedValue[0]\n\n if (splittedValue.length > 1) {\n country = splittedValue[1]\n } else {\n country = getCountryCodeByLang(lang)\n }\n\n return {\n country: country,\n lang: lang,\n value: item.value,\n }\n })\n\n return countryCodeList.sort((a, b) => {\n return a.value.localeCompare(b.value)\n })\n },\n });\n }\n}\n"],"mappings":"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","names":["item"]}
|
|
1
|
+
{"version":3,"sources":["../../core/src/requests.ts","../../constants/src/index.ts","../../utils/src/utils.ts","../../utils/src/memory.ts","../../utils/src/classMerge.ts","../../utils/src/params.ts","../src/baseService.ts","../src/renditions.ts","../src/directoryNodes.ts","../src/transforms/documentTypes.ts","../src/documentTypes.ts","../src/transforms/information.ts","../src/informationUnits.ts","../src/language.ts"],"sourcesContent":["import axios, { AxiosResponse, Method, AxiosInstance } from \"axios\";\nimport { API, SDK_CONFIG_KEY } from \"@c-rex/constants\";\nimport { Issuer } from \"openid-client\";\nimport { ConfigInterface } from \"@c-rex/interfaces\";\nimport { call, getFromMemory, saveInMemory } from \"@c-rex/utils\";\nimport { getCookie } from \"@c-rex/utils/next-cookies\";\n\nconst CREX_TOKEN_HEADER_KEY = \"crex-token\";\nconst CREX_TOKEN_EXPIRY_HEADER_KEY = \"crex-token-expiry\";\n\ninterface APIGenericResponse<T> extends AxiosResponse {\n data: T;\n statusCode: number;\n}\n\ninterface CallParams {\n url: string;\n method: Method;\n body?: any;\n headers?: any;\n params?: any;\n}\n\nexport class CrexApi {\n private customerConfig!: ConfigInterface;\n private apiClient!: AxiosInstance;\n\n private async manageToken() {\n const headersAux: Record<string, string> = {};\n\n if (this.customerConfig.OIDC.client.enabled) {\n let token = getFromMemory(CREX_TOKEN_HEADER_KEY);\n let tokenExpiry = getFromMemory(CREX_TOKEN_EXPIRY_HEADER_KEY);\n\n const now = Math.floor(Date.now() / 1000);\n\n if (!(token && tokenExpiry > now + 60)) {\n const { token: tokenAux, tokenExpiry: tokenExpiryAux } = await this.getToken();\n\n token = tokenAux;\n\n saveInMemory(token, CREX_TOKEN_HEADER_KEY);\n saveInMemory(tokenExpiryAux, CREX_TOKEN_EXPIRY_HEADER_KEY);\n }\n\n headersAux['Authorization'] = `Bearer ${token}`;\n }\n\n return headersAux;\n }\n\n private async getToken(): Promise<{\n token: string;\n tokenExpiry: number;\n }> {\n let token = \"\";\n let tokenExpiry = 0;\n\n try {\n const now = Math.floor(Date.now() / 1000);\n const issuer = await Issuer.discover(this.customerConfig.OIDC.client.issuer);\n const client = new issuer.Client({\n client_id: this.customerConfig.OIDC.client.id,\n client_secret: this.customerConfig.OIDC.client.secret,\n });\n const tokenSet = await client.grant({ grant_type: 'client_credentials' });\n\n token = tokenSet.access_token!;\n tokenExpiry = now + tokenSet.expires_at!;\n\n console.log('token', token);\n\n } catch (error) {\n call(\"CrexLogger.log\", {\n level: \"error\",\n message: `API.getToken error when request ${this.customerConfig.OIDC.client.issuer}. Error: ${error}`\n });\n }\n\n return {\n token,\n tokenExpiry\n };\n }\n\n private async initAPI() {\n if (!this.customerConfig) {\n const jsonConfigs = await getCookie(SDK_CONFIG_KEY);\n if (!jsonConfigs) {\n throw new Error(\"SDK not initialized\");\n }\n this.customerConfig = JSON.parse(jsonConfigs) as ConfigInterface;\n }\n if (!this.apiClient) {\n this.apiClient = axios.create({\n baseURL: this.customerConfig.baseUrl,\n })\n }\n }\n\n async execute<T>({\n url,\n method,\n params,\n body,\n headers = {},\n }: CallParams): Promise<T> {\n\n await this.initAPI();\n\n let response: APIGenericResponse<T> | undefined = undefined;\n\n headers = {\n ...headers,\n ...await this.manageToken(),\n };\n\n for (let retry = 0; retry < API.MAX_RETRY; retry++) {\n try {\n response = await this.apiClient.request({\n url,\n method,\n data: body,\n params,\n headers,\n });\n\n break;\n } catch (error) {\n //TODO: add logger\n console.log(\n \"error\",\n `API.execute ${retry + 1}º error when request ${url}. Error: ${error}`\n );\n\n if (retry === API.MAX_RETRY - 1) {\n throw error;\n }\n }\n }\n\n if (response) {\n return response.data;\n }\n\n throw new Error(\"API.execute error: Failed to retrieve a valid response\");\n }\n}","export const ALL = \"*\"\n\nexport const LOG_CATEGORIES = [\n \"NoLicense\",\n \"Scenario\",\n \"Favorites\",\n \"Subscription\",\n \"Share\",\n \"Document\",\n \"Search\",\n \"History\",\n \"Notification\",\n \"UserProfile\",\n] as const;\n\nexport const LOG_LEVELS = {\n critical: 2,\n error: 3,\n warning: 4,\n info: 6,\n debug: 7,\n} as const;\n\nexport const RESULT_VIEW_STYLES = [\n \"cards\",\n \"table\",\n] as const;\n\nexport const API = {\n MAX_RETRY: 3,\n API_TIMEOUT: 10000,\n API_HEADERS: {\n \"content-Type\": \"application/json\",\n },\n};\n\nexport const SDK_CONFIG_KEY = \"crex-sdk-config\";\n\nexport const CONTENT_LANG_KEY = \"CONTENT_LANG_KEY\";\n\nexport const AVAILABLE_CONTENT_LANG_KEY = \"AVAILABLE_CONTENT_LANG_KEY\";\n\nexport const UI_LANG_KEY = \"UI_LANG_KEY\";\n\nexport const FLAGS_BY_LANG = {\n \"en\": \"US\",\n \"de\": \"DE\",\n};\n\nexport const DEFAULT_UI_LANG = \"en\";\n\nexport const UI_LANG_OPTIONS = [\"en\", \"de\"];\n\nexport const RESULT_TYPES = {\n TOPIC: \"TOPIC\",\n DOCUMENT: \"DOCUMENT\",\n PACKAGE: \"PACKAGE\",\n} as const;","import { FLAGS_BY_LANG } from \"@c-rex/constants\";\n\nexport const call = async<T = unknown>(method: string, params?: any): Promise<T> => {\n try {\n const res = await fetch(`${process.env.NEXT_PUBLIC_API_URL}/api/rpc`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ method, params }),\n });\n\n const json = await res.json();\n\n if (!res.ok) throw new Error(json.error || 'Unknown error');\n\n return json.data;\n } catch (error) {\n console.error(error);\n return null as any;\n }\n}\n\nexport const getCountryCodeByLang = (lang: string): string => {\n const mappedKeys = Object.keys(FLAGS_BY_LANG);\n\n if (!mappedKeys.includes(lang)) {\n return lang\n }\n\n type LangKey = keyof typeof FLAGS_BY_LANG;\n const country = FLAGS_BY_LANG[lang as LangKey]\n\n return country\n}","export function isBrowser() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\nexport function saveInMemory(value: any, key: string) {\n if (isBrowser()) throw new Error(\"saveInMemory is not supported in browser\");\n\n if (typeof global !== 'undefined' && !(key in global)) {\n (global as any)[key] = null;\n }\n\n const globalConfig = (global as any)[key] as any;\n\n if (globalConfig === null) {\n (global as any)[key] = value;\n }\n}\n\nexport function getFromMemory(key: string): any {\n if (isBrowser()) throw new Error(\"getFromMemory is not supported in browser\");\n\n return (global as any)[key];\n}\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { QueryParams } from '@c-rex/types';\n\nexport const createParams = (fieldsList: string[], key: string = \"Fields\") =>\n fieldsList.map((item) => ({\n key: key,\n value: item,\n }));\n\nexport const generateQueryParams = (params: QueryParams[]): string => {\n const queryParams = params\n .map(\n (param) =>\n `${encodeURIComponent(param.key)}=${encodeURIComponent(param.value)}`,\n )\n .join(\"&\");\n return queryParams;\n};\n","import { CrexApi } from \"@c-rex/core\";\nimport { QueryParams } from \"@c-rex/types\";\nimport { call, generateQueryParams } from \"@c-rex/utils\";\nimport { Method } from \"axios\";\n\nexport class BaseService {\n protected api: CrexApi;\n private endpoint: string;\n\n constructor(endpoint: string) {\n this.api = new CrexApi();\n this.endpoint = endpoint;\n }\n\n protected async request<T>(\n {\n path = \"\",\n method = \"get\",\n params = [],\n headers = {},\n transformer = (response: any) => response,\n }: {\n path?: string,\n method?: Method,\n params?: QueryParams[],\n headers?: any,\n transformer?: (data: any) => T,\n }\n ): Promise<T> {\n try {\n let url = `${this.endpoint}${path}`;\n\n const queryParams = generateQueryParams(params);\n if (queryParams.length > 0) {\n url += `?${queryParams}`;\n }\n\n const response = await this.api.execute({\n url,\n method,\n headers,\n })\n\n return await transformer(response);\n\n } catch (error) {\n call(\"CrexLogger.log\", {\n level: \"error\",\n message: `BaseService.request error when request ${path}. Error: ${error}`\n });\n\n throw error;\n }\n }\n}\n\n","import { BaseService } from \"./baseService\";\nimport { informationUnitsRenditions } from \"@c-rex/interfaces\";\n\n\nexport class RenditionsService extends BaseService {\n constructor() {\n super(\"Renditions/\");\n }\n\n public async getHTMLRendition(renditions: informationUnitsRenditions[]): Promise<string> {\n const filteredRenditions = renditions.filter(\n (item) => item.format == \"application/xhtml+xml\",\n );\n\n if (filteredRenditions.length == 0 || filteredRenditions[0] == undefined) return \"\";\n const item = filteredRenditions[0];\n const filteredLinks = item.links.filter((item) => item.rel == \"view\");\n\n if (filteredLinks.length == 0 || filteredLinks[0] == undefined) return \"\";\n const url = filteredLinks[0].href;\n const response = await this.api.execute({\n url,\n method: \"get\",\n headers: {\n Accept: \"application/xhtml+xml\",\n },\n })\n\n return response as string;\n }\n\n public async getDocumentRendition(renditions: informationUnitsRenditions[], type: string): Promise<string> {\n const filteredRenditions = renditions.filter(\n (item) => item.format == `application/${type}`,\n );\n\n if (filteredRenditions.length == 0 || filteredRenditions[0] == undefined) return \"\";\n\n const item = filteredRenditions[0];\n const filteredLinks = item.links.filter((item) => item.rel == \"view\");\n\n if (filteredLinks.length == 0 || filteredLinks[0] == undefined) return \"\";\n const url = filteredLinks[0].href;\n\n return url;\n }\n}","import { BaseService } from \"./baseService\";\nimport { DirectoryNodes } from \"@c-rex/interfaces\";\n\n\nexport class DirectoryNodesService extends BaseService {\n constructor() {\n super(\"DirectoryNodes/\");\n }\n\n public async getItem(id: string): Promise<DirectoryNodes> {\n return await this.request({\n path: id,\n });\n }\n}\n","import { DefaultRequest } from \"@c-rex/interfaces\";\nimport { DocumentTypesItem } from \"@c-rex/interfaces\";\n\nexport const transformDocumentTypes = (data: DefaultRequest<DocumentTypesItem>) => {\n const labels: string[] = [];\n\n data.items.forEach((documentItem: DocumentTypesItem) => {\n const aux = documentItem.labels.flatMap((item) => item);\n\n aux.forEach((item) => {\n if (item.language == \"en\") labels.push(item.value);\n });\n });\n\n return labels;\n};\n","import { createParams } from \"@c-rex/utils\";\nimport { transformDocumentTypes } from \"./transforms/documentTypes\";\nimport { BaseService } from \"./baseService\";\n\nexport class DocumentTypesService extends BaseService {\n constructor() {\n super(\"DocumentTypes/\");\n }\n public async getLabels(fields: string[]): Promise<string[]> {\n const params = [\n {\n key: \"Restrict\",\n value: `languages~EN-us`,\n },\n ...createParams(fields, \"Fields\"),\n ];\n\n return await this.request({\n params,\n transformer: transformDocumentTypes,\n });\n }\n}\n","import { DefaultRequest } from \"@c-rex/interfaces\";\nimport {\n informationUnits,\n informationUnitsItems,\n} from \"@c-rex/interfaces\";\n\nexport const transformInformationUnits = (\n data: DefaultRequest<informationUnitsItems>,\n): informationUnits => {\n return {\n items: data.items.map((item) => item),\n pageInfo: data.pageInfo,\n };\n};\n","import {\n AutocompleteSuggestion,\n informationUnits,\n informationUnitsItems,\n} from \"@c-rex/interfaces\";\nimport { transformInformationUnits } from \"./transforms/information\";\nimport { createParams } from \"@c-rex/utils\";\nimport { BaseService } from \"./baseService\";\n\nexport class InformationUnitsService extends BaseService {\n constructor() {\n super(\"InformationUnits/\");\n }\n\n public async getList({\n queries = \"\",\n page = 1,\n fields = [],\n filters = [],\n languages = []\n }: {\n queries?: string,\n page?: number,\n filters?: string[],\n fields?: string[],\n languages?: string[]\n }): Promise<informationUnits> {\n const remainFields = createParams(fields, \"Fields\");\n const remainFilters = createParams(filters, \"Filter\");\n const languageParams = createParams(\n languages.map(item => `languages=${item}`),\n \"Filter\"\n );\n /*\n const languageParams = createParams(\n languages.map(item => `?s iirds:language ${item}`),\n \"sparqlWhere\"\n );\n */\n\n const params = [\n { key: \"pageSize\", value: \"9\" },\n { key: \"PageNumber\", value: (page - 1).toString() },\n ...remainFields,\n ...languageParams,\n ...remainFilters\n ];\n\n if (queries.length > 0) {\n params.push(\n { key: \"Query\", value: queries },\n );\n }\n\n return await this.request({\n params: params,\n transformer: transformInformationUnits\n });\n }\n\n public async getItem({ id }: { id: string }): Promise<informationUnitsItems> {\n const params = [\n { key: \"Fields\", value: \"renditions\" },\n { key: \"Fields\", value: \"directoryNodes\" },\n { key: \"Fields\", value: \"versionOf\" },\n { key: \"Fields\", value: \"titles\" },\n ];\n\n return await this.request({\n path: id,\n params,\n });\n }\n\n public async getSuggestions({ query }: { query: string }): Promise<string[]> {\n return await this.request({\n path: `Suggestions`,\n params: [{ key: \"prefix\", value: query }],\n transformer: (data: AutocompleteSuggestion) => {\n return data.suggestions.map((item) => item.value);\n },\n });\n }\n}\n","import { LanguageAndCountries } from \"@c-rex/interfaces\";\nimport { BaseService } from \"./baseService\";\nimport { getCountryCodeByLang } from \"@c-rex/utils\";\n\nexport class LanguageService extends BaseService {\n constructor(endpoint: string) {\n super(endpoint);\n }\n\n /*\n public static async getInstance(): Promise<LanguageService> {\n const jsonConfigs = await getCookie(SDK_CONFIG_KEY);\n if (!jsonConfigs) {\n throw new Error(\"SDK not initialized\");\n }\n\n const customerConfig = JSON.parse(jsonConfigs) as ConfigInterface;\n\n if (!LanguageService.instance) {\n LanguageService.instance = new LanguageService(customerConfig.languageSwitcher.endpoint);\n }\n return LanguageService.instance;\n }\n */\n\n public async getLanguagesAndCountries(): Promise<LanguageAndCountries[]> {\n return await this.request({\n transformer: (data: { value: string; score: number }[]) => {\n const countryCodeList = data.map((item) => {\n //should be abble to handle this items: en-US, en, pt, pt-PT, pt-BR \n\n const splittedValue = item.value.split(\"-\")\n const lang = splittedValue[0]\n let country = splittedValue[0]\n\n if (splittedValue.length > 1) {\n country = splittedValue[1]\n } else {\n country = getCountryCodeByLang(lang)\n }\n\n return {\n country: country,\n lang: lang,\n value: item.value,\n }\n })\n\n return countryCodeList.sort((a, b) => {\n return a.value.localeCompare(b.value)\n })\n },\n });\n }\n}\n"],"mappings":"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","names":["item"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@c-rex/services",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -14,7 +14,9 @@
|
|
|
14
14
|
"dev": "tsup --watch",
|
|
15
15
|
"build": "tsup",
|
|
16
16
|
"test:watch": "jest --watch",
|
|
17
|
-
"test": "jest"
|
|
17
|
+
"test": "jest",
|
|
18
|
+
"lint": "eslint .",
|
|
19
|
+
"lint:fix": "eslint . --fix"
|
|
18
20
|
},
|
|
19
21
|
"devDependencies": {
|
|
20
22
|
"@c-rex/eslint-config": "*",
|