@c-rex/utils 0.1.1 → 0.1.2

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 CHANGED
@@ -1,4 +1,4 @@
1
- import { TreeOfContent, DirectoryNodes } from '@c-rex/interfaces';
1
+ import { TreeOfContent, DirectoryNodes, SidebarAvailableVersionsInterface } from '@c-rex/interfaces';
2
2
  import { ClassValue } from 'clsx';
3
3
  import { QueryParams } from '@c-rex/types';
4
4
 
@@ -21,4 +21,13 @@ declare const createParams: (fieldsList: string[], key?: string) => {
21
21
  }[];
22
22
  declare const generateQueryParams: (params: QueryParams[]) => string;
23
23
 
24
- export { call, cn, createParams, generateBreadcrumbItems, generateQueryParams, generateTreeOfContent, getCountryCodeByLang, getFromMemory, isBrowser, saveInMemory };
24
+ declare const loadArticleData: (id: string) => Promise<{
25
+ htmlContent: string;
26
+ treeOfContent: TreeOfContent[];
27
+ breadcrumbItems: TreeOfContent[];
28
+ availableVersions: Omit<SidebarAvailableVersionsInterface, "link">[];
29
+ documentURL: string;
30
+ title: string;
31
+ }>;
32
+
33
+ export { call, cn, createParams, generateBreadcrumbItems, generateQueryParams, generateTreeOfContent, getCountryCodeByLang, getFromMemory, isBrowser, loadArticleData, saveInMemory };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { TreeOfContent, DirectoryNodes } from '@c-rex/interfaces';
1
+ import { TreeOfContent, DirectoryNodes, SidebarAvailableVersionsInterface } from '@c-rex/interfaces';
2
2
  import { ClassValue } from 'clsx';
3
3
  import { QueryParams } from '@c-rex/types';
4
4
 
@@ -21,4 +21,13 @@ declare const createParams: (fieldsList: string[], key?: string) => {
21
21
  }[];
22
22
  declare const generateQueryParams: (params: QueryParams[]) => string;
23
23
 
24
- export { call, cn, createParams, generateBreadcrumbItems, generateQueryParams, generateTreeOfContent, getCountryCodeByLang, getFromMemory, isBrowser, saveInMemory };
24
+ declare const loadArticleData: (id: string) => Promise<{
25
+ htmlContent: string;
26
+ treeOfContent: TreeOfContent[];
27
+ breadcrumbItems: TreeOfContent[];
28
+ availableVersions: Omit<SidebarAvailableVersionsInterface, "link">[];
29
+ documentURL: string;
30
+ title: string;
31
+ }>;
32
+
33
+ export { call, cn, createParams, generateBreadcrumbItems, generateQueryParams, generateTreeOfContent, getCountryCodeByLang, getFromMemory, isBrowser, loadArticleData, saveInMemory };
package/dist/index.js CHANGED
@@ -29,6 +29,7 @@ __export(index_exports, {
29
29
  getCountryCodeByLang: () => getCountryCodeByLang,
30
30
  getFromMemory: () => getFromMemory,
31
31
  isBrowser: () => isBrowser,
32
+ loadArticleData: () => loadArticleData,
32
33
  saveInMemory: () => saveInMemory
33
34
  });
34
35
  module.exports = __toCommonJS(index_exports);
@@ -170,6 +171,66 @@ var generateQueryParams = (params) => {
170
171
  ).join("&");
171
172
  return queryParams;
172
173
  };
174
+
175
+ // src/articles.ts
176
+ var import_services2 = require("@c-rex/services");
177
+ var loadArticleData = async (id) => {
178
+ const renditionService = new import_services2.RenditionsService();
179
+ const informationService = new import_services2.InformationUnitsService();
180
+ const informationUnitsItem = await informationService.getItem({ id });
181
+ let title = "";
182
+ let versionOf = "";
183
+ let documentURL = "";
184
+ let htmlContent = "";
185
+ let treeOfContent = [];
186
+ let breadcrumbItems = [];
187
+ let availableVersions = [];
188
+ if (informationUnitsItem != null) {
189
+ if (informationUnitsItem.versionOf != void 0) {
190
+ versionOf = informationUnitsItem.versionOf.shortId;
191
+ }
192
+ if (informationUnitsItem.titles != void 0 && informationUnitsItem.titles[0] != void 0) {
193
+ title = informationUnitsItem.titles[0].value;
194
+ }
195
+ }
196
+ if (versionOf != void 0) {
197
+ const versions = await informationService.getList({
198
+ filters: [`versionOf.shortId=${versionOf}`],
199
+ fields: ["labels"]
200
+ });
201
+ availableVersions = versions.items.map((item) => {
202
+ return {
203
+ shortId: item.shortId,
204
+ lang: item.labels[0]?.language,
205
+ country: item.labels[0]?.language.split("-")[1]
206
+ };
207
+ }).sort((a, b) => {
208
+ if (a.lang < b.lang) {
209
+ return -1;
210
+ }
211
+ if (a.lang > b.lang) {
212
+ return 1;
213
+ }
214
+ return 0;
215
+ });
216
+ }
217
+ if (informationUnitsItem?.renditions != void 0) {
218
+ htmlContent = await renditionService.getHTMLRendition(informationUnitsItem.renditions);
219
+ documentURL = await renditionService.getDocumentRendition(informationUnitsItem.renditions, "pdf");
220
+ if (informationUnitsItem?.directoryNodes != void 0) {
221
+ treeOfContent = await generateTreeOfContent(informationUnitsItem.directoryNodes);
222
+ breadcrumbItems = generateBreadcrumbItems(treeOfContent);
223
+ }
224
+ }
225
+ return {
226
+ htmlContent,
227
+ treeOfContent,
228
+ breadcrumbItems,
229
+ availableVersions,
230
+ documentURL,
231
+ title
232
+ };
233
+ };
173
234
  // Annotate the CommonJS export names for ESM import in node:
174
235
  0 && (module.exports = {
175
236
  call,
@@ -181,6 +242,7 @@ var generateQueryParams = (params) => {
181
242
  getCountryCodeByLang,
182
243
  getFromMemory,
183
244
  isBrowser,
245
+ loadArticleData,
184
246
  saveInMemory
185
247
  });
186
248
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../../constants/src/index.ts","../src/utils.ts","../src/memory.ts","../src/breadcrumbs.ts","../src/classMerge.ts","../src/treeOfContent.ts","../src/params.ts"],"sourcesContent":["export * from './utils';\nexport * from './memory';\nexport * from './breadcrumbs';\nexport * from './classMerge';\nexport * from './treeOfContent';\nexport * from './params';","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(`${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 { TreeOfContent } from \"@c-rex/interfaces\";\n\nexport const generateBreadcrumbItems = (\n treeOfContent: TreeOfContent[],\n): TreeOfContent[] => {\n const result: TreeOfContent[] = [];\n\n treeOfContent.forEach((item) => {\n if (item.active) {\n const filteredChildren = generateBreadcrumbItems(item.children);\n result.push(item, ...filteredChildren);\n }\n });\n\n return result;\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 { DirectoryNodesService } from \"@c-rex/services\";\nimport { DirectoryNodes, informationUnitsDirectories, TreeOfContent } from \"@c-rex/interfaces\";\n\nexport const generateTreeOfContent = async (\n directoryNodes: DirectoryNodes[],\n): Promise<TreeOfContent[]> => {\n\n const service = new DirectoryNodesService();\n\n if (directoryNodes.length == 0) return [];\n if (directoryNodes[0] == undefined) return [];\n\n let id = directoryNodes[0].shortId;\n let response = await service.getItem(id);\n const childList = await getChildrenInfo(response.childNodes);\n let result: TreeOfContent[] = childList;\n\n while (response.parents != undefined) {\n if (response.informationUnits[0] == undefined) return result;\n if (response.labels[0] == undefined) return result;\n if (response.parents[0] == undefined) return result;\n\n const infoId = response.informationUnits[0].shortId;\n const aux = {\n active: true,\n label: response.labels[0].value,\n id: response.shortId,\n link: `/info/${infoId}`,\n children: [...result],\n };\n id = response.parents[0].shortId;\n response = await service.getItem(id);\n\n const tree = await getChildrenInfo(response.childNodes, aux);\n\n result = [...tree];\n }\n\n return result;\n};\n\nconst getChildrenInfo = async (\n childNodes: informationUnitsDirectories[],\n childItem?: TreeOfContent,\n): Promise<TreeOfContent[]> => {\n const result: TreeOfContent[] = [];\n if (childNodes == undefined) return result;\n\n for (const item of childNodes) {\n if (item.labels[0] == undefined) break;\n\n const infoId = await getLink(item.shortId);\n let resultItem: TreeOfContent = {\n active: false,\n label: item.labels[0].value,\n link: `/info/${infoId}`,\n id: item.shortId,\n children: [],\n };\n\n if (childItem?.id == item.shortId) {\n resultItem = childItem;\n }\n result.push(resultItem);\n }\n\n return result;\n};\n\nconst getLink = async (id: string): Promise<string> => {\n const service = new DirectoryNodesService();\n const response = await service.getItem(id);\n\n if (response.informationUnits == undefined) return \"\";\n if (response.informationUnits[0] == undefined) return \"\";\n\n return response.informationUnits[0].shortId;\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"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../../constants/src/index.ts","../src/utils.ts","../src/memory.ts","../src/breadcrumbs.ts","../src/classMerge.ts","../src/treeOfContent.ts","../src/params.ts","../src/articles.ts"],"sourcesContent":["export * from './utils';\nexport * from './memory';\nexport * from './breadcrumbs';\nexport * from './classMerge';\nexport * from './treeOfContent';\nexport * from './params';\nexport * from './articles';","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 { TreeOfContent } from \"@c-rex/interfaces\";\n\nexport const generateBreadcrumbItems = (\n treeOfContent: TreeOfContent[],\n): TreeOfContent[] => {\n const result: TreeOfContent[] = [];\n\n treeOfContent.forEach((item) => {\n if (item.active) {\n const filteredChildren = generateBreadcrumbItems(item.children);\n result.push(item, ...filteredChildren);\n }\n });\n\n return result;\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 { DirectoryNodesService } from \"@c-rex/services\";\nimport { DirectoryNodes, informationUnitsDirectories, TreeOfContent } from \"@c-rex/interfaces\";\n\nexport const generateTreeOfContent = async (\n directoryNodes: DirectoryNodes[],\n): Promise<TreeOfContent[]> => {\n\n const service = new DirectoryNodesService();\n\n if (directoryNodes.length == 0) return [];\n if (directoryNodes[0] == undefined) return [];\n\n let id = directoryNodes[0].shortId;\n let response = await service.getItem(id);\n const childList = await getChildrenInfo(response.childNodes);\n let result: TreeOfContent[] = childList;\n\n while (response.parents != undefined) {\n if (response.informationUnits[0] == undefined) return result;\n if (response.labels[0] == undefined) return result;\n if (response.parents[0] == undefined) return result;\n\n const infoId = response.informationUnits[0].shortId;\n const aux = {\n active: true,\n label: response.labels[0].value,\n id: response.shortId,\n link: `/info/${infoId}`,\n children: [...result],\n };\n id = response.parents[0].shortId;\n response = await service.getItem(id);\n\n const tree = await getChildrenInfo(response.childNodes, aux);\n\n result = [...tree];\n }\n\n return result;\n};\n\nconst getChildrenInfo = async (\n childNodes: informationUnitsDirectories[],\n childItem?: TreeOfContent,\n): Promise<TreeOfContent[]> => {\n const result: TreeOfContent[] = [];\n if (childNodes == undefined) return result;\n\n for (const item of childNodes) {\n if (item.labels[0] == undefined) break;\n\n const infoId = await getLink(item.shortId);\n let resultItem: TreeOfContent = {\n active: false,\n label: item.labels[0].value,\n link: `/info/${infoId}`,\n id: item.shortId,\n children: [],\n };\n\n if (childItem?.id == item.shortId) {\n resultItem = childItem;\n }\n result.push(resultItem);\n }\n\n return result;\n};\n\nconst getLink = async (id: string): Promise<string> => {\n const service = new DirectoryNodesService();\n const response = await service.getItem(id);\n\n if (response.informationUnits == undefined) return \"\";\n if (response.informationUnits[0] == undefined) return \"\";\n\n return response.informationUnits[0].shortId;\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 { InformationUnitsService, RenditionsService } from \"@c-rex/services\";\nimport { generateBreadcrumbItems, generateTreeOfContent } from \"@c-rex/utils\";\nimport { SidebarAvailableVersionsInterface, TreeOfContent } from \"@c-rex/interfaces\";\n\nexport const loadArticleData = async (id: string) => {\n const renditionService = new RenditionsService();\n const informationService = new InformationUnitsService();\n const informationUnitsItem = await informationService.getItem({ id });\n\n let title = \"\";\n let versionOf = \"\";\n let documentURL = \"\";\n let htmlContent = \"\";\n let treeOfContent: TreeOfContent[] = [];\n let breadcrumbItems: TreeOfContent[] = [];\n let availableVersions: Omit<SidebarAvailableVersionsInterface, \"link\">[] = [];\n\n if (informationUnitsItem != null) {\n if (informationUnitsItem.versionOf != undefined) {\n versionOf = informationUnitsItem.versionOf.shortId\n }\n if (informationUnitsItem.titles != undefined && informationUnitsItem.titles[0] != undefined) {\n title = informationUnitsItem.titles[0].value\n }\n }\n\n if (versionOf != undefined) {\n const versions = await informationService.getList({\n filters: [`versionOf.shortId=${versionOf}`],\n fields: [\"labels\"],\n })\n\n availableVersions = versions.items.map((item) => {\n return {\n shortId: item.shortId,\n lang: item.labels[0]?.language as string,\n country: item.labels[0]?.language.split(\"-\")[1] as string,\n }\n }).sort((a, b) => {\n if (a.lang < b.lang) {\n return -1;\n }\n if (a.lang > b.lang) {\n return 1;\n }\n return 0;\n })\n }\n\n if (informationUnitsItem?.renditions != undefined) {\n htmlContent = await renditionService.getHTMLRendition(informationUnitsItem.renditions)\n documentURL = await renditionService.getDocumentRendition(informationUnitsItem.renditions, \"pdf\")\n\n if (informationUnitsItem?.directoryNodes != undefined) {\n treeOfContent = await generateTreeOfContent(informationUnitsItem.directoryNodes);\n breadcrumbItems = generateBreadcrumbItems(treeOfContent);\n }\n }\n\n return {\n htmlContent,\n treeOfContent,\n breadcrumbItems,\n availableVersions,\n documentURL,\n title\n }\n};"],"mappings":"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","names":["import_services"]}
package/dist/index.mjs CHANGED
@@ -135,6 +135,66 @@ var generateQueryParams = (params) => {
135
135
  ).join("&");
136
136
  return queryParams;
137
137
  };
138
+
139
+ // src/articles.ts
140
+ import { InformationUnitsService, RenditionsService } from "@c-rex/services";
141
+ var loadArticleData = async (id) => {
142
+ const renditionService = new RenditionsService();
143
+ const informationService = new InformationUnitsService();
144
+ const informationUnitsItem = await informationService.getItem({ id });
145
+ let title = "";
146
+ let versionOf = "";
147
+ let documentURL = "";
148
+ let htmlContent = "";
149
+ let treeOfContent = [];
150
+ let breadcrumbItems = [];
151
+ let availableVersions = [];
152
+ if (informationUnitsItem != null) {
153
+ if (informationUnitsItem.versionOf != void 0) {
154
+ versionOf = informationUnitsItem.versionOf.shortId;
155
+ }
156
+ if (informationUnitsItem.titles != void 0 && informationUnitsItem.titles[0] != void 0) {
157
+ title = informationUnitsItem.titles[0].value;
158
+ }
159
+ }
160
+ if (versionOf != void 0) {
161
+ const versions = await informationService.getList({
162
+ filters: [`versionOf.shortId=${versionOf}`],
163
+ fields: ["labels"]
164
+ });
165
+ availableVersions = versions.items.map((item) => {
166
+ return {
167
+ shortId: item.shortId,
168
+ lang: item.labels[0]?.language,
169
+ country: item.labels[0]?.language.split("-")[1]
170
+ };
171
+ }).sort((a, b) => {
172
+ if (a.lang < b.lang) {
173
+ return -1;
174
+ }
175
+ if (a.lang > b.lang) {
176
+ return 1;
177
+ }
178
+ return 0;
179
+ });
180
+ }
181
+ if (informationUnitsItem?.renditions != void 0) {
182
+ htmlContent = await renditionService.getHTMLRendition(informationUnitsItem.renditions);
183
+ documentURL = await renditionService.getDocumentRendition(informationUnitsItem.renditions, "pdf");
184
+ if (informationUnitsItem?.directoryNodes != void 0) {
185
+ treeOfContent = await generateTreeOfContent(informationUnitsItem.directoryNodes);
186
+ breadcrumbItems = generateBreadcrumbItems(treeOfContent);
187
+ }
188
+ }
189
+ return {
190
+ htmlContent,
191
+ treeOfContent,
192
+ breadcrumbItems,
193
+ availableVersions,
194
+ documentURL,
195
+ title
196
+ };
197
+ };
138
198
  export {
139
199
  call,
140
200
  cn,
@@ -145,6 +205,7 @@ export {
145
205
  getCountryCodeByLang,
146
206
  getFromMemory,
147
207
  isBrowser,
208
+ loadArticleData,
148
209
  saveInMemory
149
210
  };
150
211
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../constants/src/index.ts","../src/utils.ts","../src/memory.ts","../src/breadcrumbs.ts","../src/classMerge.ts","../src/treeOfContent.ts","../src/params.ts"],"sourcesContent":["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(`${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 { TreeOfContent } from \"@c-rex/interfaces\";\n\nexport const generateBreadcrumbItems = (\n treeOfContent: TreeOfContent[],\n): TreeOfContent[] => {\n const result: TreeOfContent[] = [];\n\n treeOfContent.forEach((item) => {\n if (item.active) {\n const filteredChildren = generateBreadcrumbItems(item.children);\n result.push(item, ...filteredChildren);\n }\n });\n\n return result;\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 { DirectoryNodesService } from \"@c-rex/services\";\nimport { DirectoryNodes, informationUnitsDirectories, TreeOfContent } from \"@c-rex/interfaces\";\n\nexport const generateTreeOfContent = async (\n directoryNodes: DirectoryNodes[],\n): Promise<TreeOfContent[]> => {\n\n const service = new DirectoryNodesService();\n\n if (directoryNodes.length == 0) return [];\n if (directoryNodes[0] == undefined) return [];\n\n let id = directoryNodes[0].shortId;\n let response = await service.getItem(id);\n const childList = await getChildrenInfo(response.childNodes);\n let result: TreeOfContent[] = childList;\n\n while (response.parents != undefined) {\n if (response.informationUnits[0] == undefined) return result;\n if (response.labels[0] == undefined) return result;\n if (response.parents[0] == undefined) return result;\n\n const infoId = response.informationUnits[0].shortId;\n const aux = {\n active: true,\n label: response.labels[0].value,\n id: response.shortId,\n link: `/info/${infoId}`,\n children: [...result],\n };\n id = response.parents[0].shortId;\n response = await service.getItem(id);\n\n const tree = await getChildrenInfo(response.childNodes, aux);\n\n result = [...tree];\n }\n\n return result;\n};\n\nconst getChildrenInfo = async (\n childNodes: informationUnitsDirectories[],\n childItem?: TreeOfContent,\n): Promise<TreeOfContent[]> => {\n const result: TreeOfContent[] = [];\n if (childNodes == undefined) return result;\n\n for (const item of childNodes) {\n if (item.labels[0] == undefined) break;\n\n const infoId = await getLink(item.shortId);\n let resultItem: TreeOfContent = {\n active: false,\n label: item.labels[0].value,\n link: `/info/${infoId}`,\n id: item.shortId,\n children: [],\n };\n\n if (childItem?.id == item.shortId) {\n resultItem = childItem;\n }\n result.push(resultItem);\n }\n\n return result;\n};\n\nconst getLink = async (id: string): Promise<string> => {\n const service = new DirectoryNodesService();\n const response = await service.getItem(id);\n\n if (response.informationUnits == undefined) return \"\";\n if (response.informationUnits[0] == undefined) return \"\";\n\n return response.informationUnits[0].shortId;\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"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../constants/src/index.ts","../src/utils.ts","../src/memory.ts","../src/breadcrumbs.ts","../src/classMerge.ts","../src/treeOfContent.ts","../src/params.ts","../src/articles.ts"],"sourcesContent":["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 { TreeOfContent } from \"@c-rex/interfaces\";\n\nexport const generateBreadcrumbItems = (\n treeOfContent: TreeOfContent[],\n): TreeOfContent[] => {\n const result: TreeOfContent[] = [];\n\n treeOfContent.forEach((item) => {\n if (item.active) {\n const filteredChildren = generateBreadcrumbItems(item.children);\n result.push(item, ...filteredChildren);\n }\n });\n\n return result;\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 { DirectoryNodesService } from \"@c-rex/services\";\nimport { DirectoryNodes, informationUnitsDirectories, TreeOfContent } from \"@c-rex/interfaces\";\n\nexport const generateTreeOfContent = async (\n directoryNodes: DirectoryNodes[],\n): Promise<TreeOfContent[]> => {\n\n const service = new DirectoryNodesService();\n\n if (directoryNodes.length == 0) return [];\n if (directoryNodes[0] == undefined) return [];\n\n let id = directoryNodes[0].shortId;\n let response = await service.getItem(id);\n const childList = await getChildrenInfo(response.childNodes);\n let result: TreeOfContent[] = childList;\n\n while (response.parents != undefined) {\n if (response.informationUnits[0] == undefined) return result;\n if (response.labels[0] == undefined) return result;\n if (response.parents[0] == undefined) return result;\n\n const infoId = response.informationUnits[0].shortId;\n const aux = {\n active: true,\n label: response.labels[0].value,\n id: response.shortId,\n link: `/info/${infoId}`,\n children: [...result],\n };\n id = response.parents[0].shortId;\n response = await service.getItem(id);\n\n const tree = await getChildrenInfo(response.childNodes, aux);\n\n result = [...tree];\n }\n\n return result;\n};\n\nconst getChildrenInfo = async (\n childNodes: informationUnitsDirectories[],\n childItem?: TreeOfContent,\n): Promise<TreeOfContent[]> => {\n const result: TreeOfContent[] = [];\n if (childNodes == undefined) return result;\n\n for (const item of childNodes) {\n if (item.labels[0] == undefined) break;\n\n const infoId = await getLink(item.shortId);\n let resultItem: TreeOfContent = {\n active: false,\n label: item.labels[0].value,\n link: `/info/${infoId}`,\n id: item.shortId,\n children: [],\n };\n\n if (childItem?.id == item.shortId) {\n resultItem = childItem;\n }\n result.push(resultItem);\n }\n\n return result;\n};\n\nconst getLink = async (id: string): Promise<string> => {\n const service = new DirectoryNodesService();\n const response = await service.getItem(id);\n\n if (response.informationUnits == undefined) return \"\";\n if (response.informationUnits[0] == undefined) return \"\";\n\n return response.informationUnits[0].shortId;\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 { InformationUnitsService, RenditionsService } from \"@c-rex/services\";\nimport { generateBreadcrumbItems, generateTreeOfContent } from \"@c-rex/utils\";\nimport { SidebarAvailableVersionsInterface, TreeOfContent } from \"@c-rex/interfaces\";\n\nexport const loadArticleData = async (id: string) => {\n const renditionService = new RenditionsService();\n const informationService = new InformationUnitsService();\n const informationUnitsItem = await informationService.getItem({ id });\n\n let title = \"\";\n let versionOf = \"\";\n let documentURL = \"\";\n let htmlContent = \"\";\n let treeOfContent: TreeOfContent[] = [];\n let breadcrumbItems: TreeOfContent[] = [];\n let availableVersions: Omit<SidebarAvailableVersionsInterface, \"link\">[] = [];\n\n if (informationUnitsItem != null) {\n if (informationUnitsItem.versionOf != undefined) {\n versionOf = informationUnitsItem.versionOf.shortId\n }\n if (informationUnitsItem.titles != undefined && informationUnitsItem.titles[0] != undefined) {\n title = informationUnitsItem.titles[0].value\n }\n }\n\n if (versionOf != undefined) {\n const versions = await informationService.getList({\n filters: [`versionOf.shortId=${versionOf}`],\n fields: [\"labels\"],\n })\n\n availableVersions = versions.items.map((item) => {\n return {\n shortId: item.shortId,\n lang: item.labels[0]?.language as string,\n country: item.labels[0]?.language.split(\"-\")[1] as string,\n }\n }).sort((a, b) => {\n if (a.lang < b.lang) {\n return -1;\n }\n if (a.lang > b.lang) {\n return 1;\n }\n return 0;\n })\n }\n\n if (informationUnitsItem?.renditions != undefined) {\n htmlContent = await renditionService.getHTMLRendition(informationUnitsItem.renditions)\n documentURL = await renditionService.getDocumentRendition(informationUnitsItem.renditions, \"pdf\")\n\n if (informationUnitsItem?.directoryNodes != undefined) {\n treeOfContent = await generateTreeOfContent(informationUnitsItem.directoryNodes);\n breadcrumbItems = generateBreadcrumbItems(treeOfContent);\n }\n }\n\n return {\n htmlContent,\n treeOfContent,\n breadcrumbItems,\n availableVersions,\n documentURL,\n title\n }\n};"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/next-cookies.ts","../../constants/src/index.ts"],"sourcesContent":["'use server';\n\nimport { SDK_CONFIG_KEY } from '@c-rex/constants';\nimport { ConfigInterface } from '@c-rex/interfaces';\nimport { cookies } from 'next/headers';\n\nexport const getCookie = async (key: string): Promise<string | undefined> => {\n return (await cookies()).get(key)?.value;\n}\n\nexport const setCookie = async (key: string, value: string) => {\n (await cookies()).set(key, value);\n}\n\n\nexport const getConfigs = async (): Promise<ConfigInterface> => {\n const jsonConfigs = await getCookie(SDK_CONFIG_KEY);\n if (!jsonConfigs) {\n throw new Error('Configs not found');\n }\n\n const configs: ConfigInterface = JSON.parse(jsonConfigs);\n\n return configs;\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\"];"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AC+BO,IAAM,iBAAiB;;;AD3B9B,qBAAwB;AAEjB,IAAM,YAAY,OAAO,QAA6C;AACzE,UAAQ,UAAM,wBAAQ,GAAG,IAAI,GAAG,GAAG;AACvC;AAEO,IAAM,YAAY,OAAO,KAAa,UAAkB;AAC3D,GAAC,UAAM,wBAAQ,GAAG,IAAI,KAAK,KAAK;AACpC;AAGO,IAAM,aAAa,YAAsC;AAC5D,QAAM,cAAc,MAAM,UAAU,cAAc;AAClD,MAAI,CAAC,aAAa;AACd,UAAM,IAAI,MAAM,mBAAmB;AAAA,EACvC;AAEA,QAAM,UAA2B,KAAK,MAAM,WAAW;AAEvD,SAAO;AACX;","names":[]}
1
+ {"version":3,"sources":["../src/next-cookies.ts","../../constants/src/index.ts"],"sourcesContent":["'use server';\n\nimport { SDK_CONFIG_KEY } from '@c-rex/constants';\nimport { ConfigInterface } from '@c-rex/interfaces';\nimport { cookies } from 'next/headers';\n\nexport const getCookie = async (key: string): Promise<string | undefined> => {\n return (await cookies()).get(key)?.value;\n}\n\nexport const setCookie = async (key: string, value: string) => {\n (await cookies()).set(key, value);\n}\n\n\nexport const getConfigs = async (): Promise<ConfigInterface> => {\n const jsonConfigs = await getCookie(SDK_CONFIG_KEY);\n if (!jsonConfigs) {\n throw new Error('Configs not found');\n }\n\n const configs: ConfigInterface = JSON.parse(jsonConfigs);\n\n return configs;\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;"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACoCO,IAAM,iBAAiB;;;ADhC9B,qBAAwB;AAEjB,IAAM,YAAY,OAAO,QAA6C;AACzE,UAAQ,UAAM,wBAAQ,GAAG,IAAI,GAAG,GAAG;AACvC;AAEO,IAAM,YAAY,OAAO,KAAa,UAAkB;AAC3D,GAAC,UAAM,wBAAQ,GAAG,IAAI,KAAK,KAAK;AACpC;AAGO,IAAM,aAAa,YAAsC;AAC5D,QAAM,cAAc,MAAM,UAAU,cAAc;AAClD,MAAI,CAAC,aAAa;AACd,UAAM,IAAI,MAAM,mBAAmB;AAAA,EACvC;AAEA,QAAM,UAA2B,KAAK,MAAM,WAAW;AAEvD,SAAO;AACX;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../constants/src/index.ts","../src/next-cookies.ts"],"sourcesContent":["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\"];","'use server';\n\nimport { SDK_CONFIG_KEY } from '@c-rex/constants';\nimport { ConfigInterface } from '@c-rex/interfaces';\nimport { cookies } from 'next/headers';\n\nexport const getCookie = async (key: string): Promise<string | undefined> => {\n return (await cookies()).get(key)?.value;\n}\n\nexport const setCookie = async (key: string, value: string) => {\n (await cookies()).set(key, value);\n}\n\n\nexport const getConfigs = async (): Promise<ConfigInterface> => {\n const jsonConfigs = await getCookie(SDK_CONFIG_KEY);\n if (!jsonConfigs) {\n throw new Error('Configs not found');\n }\n\n const configs: ConfigInterface = JSON.parse(jsonConfigs);\n\n return configs;\n}"],"mappings":";;;AA+BO,IAAM,iBAAiB;;;AC3B9B,SAAS,eAAe;AAEjB,IAAM,YAAY,OAAO,QAA6C;AACzE,UAAQ,MAAM,QAAQ,GAAG,IAAI,GAAG,GAAG;AACvC;AAEO,IAAM,YAAY,OAAO,KAAa,UAAkB;AAC3D,GAAC,MAAM,QAAQ,GAAG,IAAI,KAAK,KAAK;AACpC;AAGO,IAAM,aAAa,YAAsC;AAC5D,QAAM,cAAc,MAAM,UAAU,cAAc;AAClD,MAAI,CAAC,aAAa;AACd,UAAM,IAAI,MAAM,mBAAmB;AAAA,EACvC;AAEA,QAAM,UAA2B,KAAK,MAAM,WAAW;AAEvD,SAAO;AACX;","names":[]}
1
+ {"version":3,"sources":["../../constants/src/index.ts","../src/next-cookies.ts"],"sourcesContent":["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;","'use server';\n\nimport { SDK_CONFIG_KEY } from '@c-rex/constants';\nimport { ConfigInterface } from '@c-rex/interfaces';\nimport { cookies } from 'next/headers';\n\nexport const getCookie = async (key: string): Promise<string | undefined> => {\n return (await cookies()).get(key)?.value;\n}\n\nexport const setCookie = async (key: string, value: string) => {\n (await cookies()).set(key, value);\n}\n\n\nexport const getConfigs = async (): Promise<ConfigInterface> => {\n const jsonConfigs = await getCookie(SDK_CONFIG_KEY);\n if (!jsonConfigs) {\n throw new Error('Configs not found');\n }\n\n const configs: ConfigInterface = JSON.parse(jsonConfigs);\n\n return configs;\n}"],"mappings":";;;AAoCO,IAAM,iBAAiB;;;AChC9B,SAAS,eAAe;AAEjB,IAAM,YAAY,OAAO,QAA6C;AACzE,UAAQ,MAAM,QAAQ,GAAG,IAAI,GAAG,GAAG;AACvC;AAEO,IAAM,YAAY,OAAO,KAAa,UAAkB;AAC3D,GAAC,MAAM,QAAQ,GAAG,IAAI,KAAK,KAAK;AACpC;AAGO,IAAM,aAAa,YAAsC;AAC5D,QAAM,cAAc,MAAM,UAAU,cAAc;AAClD,MAAI,CAAC,aAAa;AACd,UAAM,IAAI,MAAM,mBAAmB;AAAA,EACvC;AAEA,QAAM,UAA2B,KAAK,MAAM,WAAW;AAEvD,SAAO;AACX;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c-rex/utils",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
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
  "exports": {
20
22
  ".": {