@c-rex/services 0.0.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.
@@ -0,0 +1,43 @@
1
+ import { CrexApi } from '@c-rex/core';
2
+ import { QueryParams } from '@c-rex/types';
3
+ import { Method } from 'axios';
4
+ import { informationUnitsRenditions, DirectoryNodes, informationUnits, informationUnitsItems } from '@c-rex/interfaces';
5
+
6
+ declare class BaseService {
7
+ protected api: CrexApi;
8
+ private log;
9
+ private endpoint;
10
+ constructor(endpoint: string);
11
+ protected request<T>({ path, method, params, headers, transformer, }: {
12
+ path?: string;
13
+ method?: Method;
14
+ params?: QueryParams[];
15
+ headers?: any;
16
+ transformer?: (data: any) => T;
17
+ }): Promise<T>;
18
+ }
19
+
20
+ declare class RenditionsService extends BaseService {
21
+ constructor();
22
+ getHTMLRendition(renditions: informationUnitsRenditions[]): Promise<string>;
23
+ }
24
+
25
+ declare class DirectoryNodesService extends BaseService {
26
+ constructor();
27
+ getItem(id: string): Promise<DirectoryNodes>;
28
+ }
29
+
30
+ declare class DocumentTypesService extends BaseService {
31
+ constructor();
32
+ getlabels(fields: string[]): Promise<string[]>;
33
+ }
34
+
35
+ declare class InformationUnitsService extends BaseService {
36
+ constructor();
37
+ getList(queries: string, page: number, fields: string[], language: string[] | null): Promise<informationUnits>;
38
+ getItem(id: string): Promise<informationUnitsItems>;
39
+ getLanguages(): Promise<string[]>;
40
+ getSuggestions(query: string): Promise<string[]>;
41
+ }
42
+
43
+ export { DirectoryNodesService, DocumentTypesService, InformationUnitsService, RenditionsService };
@@ -0,0 +1,43 @@
1
+ import { CrexApi } from '@c-rex/core';
2
+ import { QueryParams } from '@c-rex/types';
3
+ import { Method } from 'axios';
4
+ import { informationUnitsRenditions, DirectoryNodes, informationUnits, informationUnitsItems } from '@c-rex/interfaces';
5
+
6
+ declare class BaseService {
7
+ protected api: CrexApi;
8
+ private log;
9
+ private endpoint;
10
+ constructor(endpoint: string);
11
+ protected request<T>({ path, method, params, headers, transformer, }: {
12
+ path?: string;
13
+ method?: Method;
14
+ params?: QueryParams[];
15
+ headers?: any;
16
+ transformer?: (data: any) => T;
17
+ }): Promise<T>;
18
+ }
19
+
20
+ declare class RenditionsService extends BaseService {
21
+ constructor();
22
+ getHTMLRendition(renditions: informationUnitsRenditions[]): Promise<string>;
23
+ }
24
+
25
+ declare class DirectoryNodesService extends BaseService {
26
+ constructor();
27
+ getItem(id: string): Promise<DirectoryNodes>;
28
+ }
29
+
30
+ declare class DocumentTypesService extends BaseService {
31
+ constructor();
32
+ getlabels(fields: string[]): Promise<string[]>;
33
+ }
34
+
35
+ declare class InformationUnitsService extends BaseService {
36
+ constructor();
37
+ getList(queries: string, page: number, fields: string[], language: string[] | null): Promise<informationUnits>;
38
+ getItem(id: string): Promise<informationUnitsItems>;
39
+ getLanguages(): Promise<string[]>;
40
+ getSuggestions(query: string): Promise<string[]>;
41
+ }
42
+
43
+ export { DirectoryNodesService, DocumentTypesService, InformationUnitsService, RenditionsService };
package/dist/index.js ADDED
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ DirectoryNodesService: () => DirectoryNodesService,
24
+ DocumentTypesService: () => DocumentTypesService,
25
+ InformationUnitsService: () => InformationUnitsService,
26
+ RenditionsService: () => RenditionsService
27
+ });
28
+ module.exports = __toCommonJS(index_exports);
29
+
30
+ // src/baseService.ts
31
+ var import_core = require("@c-rex/core");
32
+ var import_utils = require("@c-rex/utils");
33
+ var BaseService = class {
34
+ api;
35
+ log;
36
+ endpoint;
37
+ constructor(endpoint) {
38
+ this.api = import_core.CrexSDK.getInstance().api;
39
+ this.log = import_core.CrexSDK.getInstance().logger.log;
40
+ this.endpoint = endpoint;
41
+ }
42
+ async request({
43
+ path = "",
44
+ method = "get",
45
+ params = [],
46
+ headers = {},
47
+ transformer = (response) => response.data
48
+ }) {
49
+ try {
50
+ let url = `${this.endpoint}${path}`;
51
+ const queryParams = (0, import_utils.generateQueryParams)(params);
52
+ if (queryParams.length > 0) {
53
+ url += `?${queryParams}`;
54
+ }
55
+ const response = await this.api.execute({
56
+ url,
57
+ method,
58
+ headers
59
+ });
60
+ return await transformer(response);
61
+ } catch (error) {
62
+ this.log("error", `BaseService.request error when request ${path}. Error: ${error}`);
63
+ throw error;
64
+ }
65
+ }
66
+ };
67
+
68
+ // src/renditions.ts
69
+ var RenditionsService = class extends BaseService {
70
+ constructor() {
71
+ super("Renditions/");
72
+ }
73
+ async getHTMLRendition(renditions) {
74
+ const filteredRenditions = renditions.filter(
75
+ (item2) => item2.format == "application/xhtml+xml"
76
+ );
77
+ if (filteredRenditions.length == 0) return "";
78
+ if (filteredRenditions[0] == void 0) return "";
79
+ const item = filteredRenditions[0];
80
+ const filteredLinks = item.links.filter((item2) => item2.rel == "view");
81
+ if (filteredLinks.length == 0) return "";
82
+ if (filteredLinks[0] == void 0) return "";
83
+ const url = filteredLinks[0].href;
84
+ const response = await this.api.execute({
85
+ url,
86
+ method: "get",
87
+ headers: {
88
+ Accept: "application/xhtml+xml"
89
+ }
90
+ });
91
+ return response;
92
+ }
93
+ };
94
+
95
+ // src/directoryNodes.ts
96
+ var DirectoryNodesService = class extends BaseService {
97
+ constructor() {
98
+ super("DirectoryNodes/");
99
+ }
100
+ async getItem(id) {
101
+ return await this.request({
102
+ path: id
103
+ });
104
+ }
105
+ };
106
+
107
+ // src/documentTypes.ts
108
+ var import_utils2 = require("@c-rex/utils");
109
+
110
+ // src/transforms/documentTypes.ts
111
+ var transformDocumentTypes = (data) => {
112
+ const labels = [];
113
+ data.items.forEach((item) => {
114
+ const aux = item.labels.flatMap((item2) => item2);
115
+ aux.forEach((item2) => {
116
+ if (item2.language == "en") labels.push(item2.value);
117
+ });
118
+ });
119
+ return labels.slice(0, 4);
120
+ };
121
+
122
+ // src/documentTypes.ts
123
+ var DocumentTypesService = class extends BaseService {
124
+ constructor() {
125
+ super("DocumentTypes/");
126
+ }
127
+ async getlabels(fields) {
128
+ const params = [
129
+ {
130
+ key: "Restrict",
131
+ value: `languages~EN-us`
132
+ },
133
+ ...(0, import_utils2.createParams)(fields, "Fields")
134
+ ];
135
+ return await this.request({
136
+ params,
137
+ transformer: transformDocumentTypes
138
+ });
139
+ }
140
+ };
141
+
142
+ // src/transforms/information.ts
143
+ var transformInformationUnits = (data) => {
144
+ return {
145
+ items: data.items.map((item) => item),
146
+ pageInfo: data.pageInfo
147
+ };
148
+ };
149
+
150
+ // src/informationUnits.ts
151
+ var import_utils3 = require("@c-rex/utils");
152
+ var InformationUnitsService = class extends BaseService {
153
+ constructor() {
154
+ super("InformationUnits/");
155
+ }
156
+ async getList(queries, page, fields, language) {
157
+ const remainFields = (0, import_utils3.createParams)(fields, "Fields");
158
+ const params = [
159
+ { key: "pageSize", value: "8" },
160
+ { key: "PageNumber", value: (page - 1).toString() },
161
+ { key: "Query", value: queries },
162
+ ...remainFields
163
+ ];
164
+ if (language != null) {
165
+ language.forEach((item) => {
166
+ params.push({
167
+ key: "Restrict",
168
+ value: `languages~${item}`
169
+ });
170
+ });
171
+ }
172
+ return await this.request({
173
+ params,
174
+ transformer: transformInformationUnits
175
+ });
176
+ }
177
+ async getItem(id) {
178
+ const params = [
179
+ { key: "Fields", value: "renditions" },
180
+ { key: "Fields", value: "directoryNodes" }
181
+ ];
182
+ return await this.request({
183
+ path: id,
184
+ params
185
+ });
186
+ }
187
+ async getLanguages() {
188
+ return await this.request({
189
+ path: `Languages`,
190
+ transformer: (data) => {
191
+ return data.map((item) => item.value);
192
+ }
193
+ });
194
+ }
195
+ async getSuggestions(query) {
196
+ const params = [
197
+ { key: "prefix", value: query }
198
+ ];
199
+ return await this.request({
200
+ path: `Suggestions`,
201
+ params,
202
+ transformer: (data) => {
203
+ return data.suggestions.map((item) => item.value);
204
+ }
205
+ });
206
+ }
207
+ };
208
+ // Annotate the CommonJS export names for ESM import in node:
209
+ 0 && (module.exports = {
210
+ DirectoryNodesService,
211
+ DocumentTypesService,
212
+ InformationUnitsService,
213
+ RenditionsService
214
+ });
215
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/baseService.ts","../src/renditions.ts","../src/directoryNodes.ts","../src/documentTypes.ts","../src/transforms/documentTypes.ts","../src/transforms/information.ts","../src/informationUnits.ts"],"sourcesContent":["export * from \"./renditions\"\nexport * from \"./directoryNodes\"\nexport * from \"./documentTypes\"\nexport * from \"./informationUnits\"\n","import { CrexSDK, CrexApi } from \"@c-rex/core\";\nimport { LogCategoriesType, LogLevelType, QueryParams } from \"@c-rex/types\";\nimport { generateQueryParams } from \"@c-rex/utils\";\nimport { Method } from \"axios\";\n\nexport class BaseService {\n protected api: CrexApi;\n private log: (level: LogLevelType, message: string, category?: LogCategoriesType) => void;\n private endpoint: string;\n\n constructor(endpoint: string) {\n this.api = CrexSDK.getInstance().api;\n this.log = CrexSDK.getInstance().logger.log;\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.data,\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 this.log(\"error\", `BaseService.request error when request ${path}. Error: ${error}`);\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;\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 { 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 { DocumentTypesItem } from \"@c-rex/interfaces\";\n\nexport const transformDocumentTypes = (\n data: DefaultRequest<DocumentTypesItem>,\n) => {\n const labels: string[] = [];\n\n data.items.forEach((item: DocumentTypesItem) => {\n const aux = item.labels.flatMap((item) => item);\n aux.forEach((item) => {\n if (item.language == \"en\") labels.push(item.value);\n });\n });\n\n return labels.slice(0, 4);\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: string,\n page: number,\n fields: string[],\n language: string[] | null,\n ): Promise<informationUnits> {\n const remainFields = createParams(fields, \"Fields\");\n\n const params = [\n { key: \"pageSize\", value: \"8\" },\n { key: \"PageNumber\", value: (page - 1).toString() },\n { key: \"Query\", value: queries },\n ...remainFields,\n ];\n\n if (language != null) {\n language.forEach((item) => {\n params.push({\n key: \"Restrict\",\n value: `languages~${item}`,\n });\n });\n }\n\n return await this.request({\n params,\n transformer: transformInformationUnits\n });\n }\n\n public async getItem(id: string): Promise<informationUnitsItems> {\n const params = [\n { key: \"Fields\", value: \"renditions\" },\n { key: \"Fields\", value: \"directoryNodes\" },\n ];\n\n return await this.request({\n path: id,\n params,\n });\n }\n\n public async getLanguages(): Promise<string[]> {\n return await this.request({\n path: `Languages`,\n transformer: (data: { value: string; score: number }[]) => {\n return data.map((item) => item.value);\n },\n });\n }\n\n public async getSuggestions(query: string): Promise<string[]> {\n const params = [\n { key: \"prefix\", value: query },\n ];\n return await this.request({\n path: `Suggestions`,\n params,\n transformer: (data: AutocompleteSuggestion) => {\n return data.suggestions.map((item) => item.value);\n },\n });\n }\n}\n"],"mappings":"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","names":["item","import_utils","item","import_utils"]}
package/dist/index.mjs ADDED
@@ -0,0 +1,185 @@
1
+ // src/baseService.ts
2
+ import { CrexSDK } from "@c-rex/core";
3
+ import { generateQueryParams } from "@c-rex/utils";
4
+ var BaseService = class {
5
+ api;
6
+ log;
7
+ endpoint;
8
+ constructor(endpoint) {
9
+ this.api = CrexSDK.getInstance().api;
10
+ this.log = CrexSDK.getInstance().logger.log;
11
+ this.endpoint = endpoint;
12
+ }
13
+ async request({
14
+ path = "",
15
+ method = "get",
16
+ params = [],
17
+ headers = {},
18
+ transformer = (response) => response.data
19
+ }) {
20
+ try {
21
+ let url = `${this.endpoint}${path}`;
22
+ const queryParams = generateQueryParams(params);
23
+ if (queryParams.length > 0) {
24
+ url += `?${queryParams}`;
25
+ }
26
+ const response = await this.api.execute({
27
+ url,
28
+ method,
29
+ headers
30
+ });
31
+ return await transformer(response);
32
+ } catch (error) {
33
+ this.log("error", `BaseService.request error when request ${path}. Error: ${error}`);
34
+ throw error;
35
+ }
36
+ }
37
+ };
38
+
39
+ // src/renditions.ts
40
+ var RenditionsService = class extends BaseService {
41
+ constructor() {
42
+ super("Renditions/");
43
+ }
44
+ async getHTMLRendition(renditions) {
45
+ const filteredRenditions = renditions.filter(
46
+ (item2) => item2.format == "application/xhtml+xml"
47
+ );
48
+ if (filteredRenditions.length == 0) return "";
49
+ if (filteredRenditions[0] == void 0) return "";
50
+ const item = filteredRenditions[0];
51
+ const filteredLinks = item.links.filter((item2) => item2.rel == "view");
52
+ if (filteredLinks.length == 0) return "";
53
+ if (filteredLinks[0] == void 0) return "";
54
+ const url = filteredLinks[0].href;
55
+ const response = await this.api.execute({
56
+ url,
57
+ method: "get",
58
+ headers: {
59
+ Accept: "application/xhtml+xml"
60
+ }
61
+ });
62
+ return response;
63
+ }
64
+ };
65
+
66
+ // src/directoryNodes.ts
67
+ var DirectoryNodesService = class extends BaseService {
68
+ constructor() {
69
+ super("DirectoryNodes/");
70
+ }
71
+ async getItem(id) {
72
+ return await this.request({
73
+ path: id
74
+ });
75
+ }
76
+ };
77
+
78
+ // src/documentTypes.ts
79
+ import { createParams } from "@c-rex/utils";
80
+
81
+ // src/transforms/documentTypes.ts
82
+ var transformDocumentTypes = (data) => {
83
+ const labels = [];
84
+ data.items.forEach((item) => {
85
+ const aux = item.labels.flatMap((item2) => item2);
86
+ aux.forEach((item2) => {
87
+ if (item2.language == "en") labels.push(item2.value);
88
+ });
89
+ });
90
+ return labels.slice(0, 4);
91
+ };
92
+
93
+ // src/documentTypes.ts
94
+ var DocumentTypesService = class extends BaseService {
95
+ constructor() {
96
+ super("DocumentTypes/");
97
+ }
98
+ async getlabels(fields) {
99
+ const params = [
100
+ {
101
+ key: "Restrict",
102
+ value: `languages~EN-us`
103
+ },
104
+ ...createParams(fields, "Fields")
105
+ ];
106
+ return await this.request({
107
+ params,
108
+ transformer: transformDocumentTypes
109
+ });
110
+ }
111
+ };
112
+
113
+ // src/transforms/information.ts
114
+ var transformInformationUnits = (data) => {
115
+ return {
116
+ items: data.items.map((item) => item),
117
+ pageInfo: data.pageInfo
118
+ };
119
+ };
120
+
121
+ // src/informationUnits.ts
122
+ import { createParams as createParams2 } from "@c-rex/utils";
123
+ var InformationUnitsService = class extends BaseService {
124
+ constructor() {
125
+ super("InformationUnits/");
126
+ }
127
+ async getList(queries, page, fields, language) {
128
+ const remainFields = createParams2(fields, "Fields");
129
+ const params = [
130
+ { key: "pageSize", value: "8" },
131
+ { key: "PageNumber", value: (page - 1).toString() },
132
+ { key: "Query", value: queries },
133
+ ...remainFields
134
+ ];
135
+ if (language != null) {
136
+ language.forEach((item) => {
137
+ params.push({
138
+ key: "Restrict",
139
+ value: `languages~${item}`
140
+ });
141
+ });
142
+ }
143
+ return await this.request({
144
+ params,
145
+ transformer: transformInformationUnits
146
+ });
147
+ }
148
+ async getItem(id) {
149
+ const params = [
150
+ { key: "Fields", value: "renditions" },
151
+ { key: "Fields", value: "directoryNodes" }
152
+ ];
153
+ return await this.request({
154
+ path: id,
155
+ params
156
+ });
157
+ }
158
+ async getLanguages() {
159
+ return await this.request({
160
+ path: `Languages`,
161
+ transformer: (data) => {
162
+ return data.map((item) => item.value);
163
+ }
164
+ });
165
+ }
166
+ async getSuggestions(query) {
167
+ const params = [
168
+ { key: "prefix", value: query }
169
+ ];
170
+ return await this.request({
171
+ path: `Suggestions`,
172
+ params,
173
+ transformer: (data) => {
174
+ return data.suggestions.map((item) => item.value);
175
+ }
176
+ });
177
+ }
178
+ };
179
+ export {
180
+ DirectoryNodesService,
181
+ DocumentTypesService,
182
+ InformationUnitsService,
183
+ RenditionsService
184
+ };
185
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/baseService.ts","../src/renditions.ts","../src/directoryNodes.ts","../src/documentTypes.ts","../src/transforms/documentTypes.ts","../src/transforms/information.ts","../src/informationUnits.ts"],"sourcesContent":["import { CrexSDK, CrexApi } from \"@c-rex/core\";\nimport { LogCategoriesType, LogLevelType, QueryParams } from \"@c-rex/types\";\nimport { generateQueryParams } from \"@c-rex/utils\";\nimport { Method } from \"axios\";\n\nexport class BaseService {\n protected api: CrexApi;\n private log: (level: LogLevelType, message: string, category?: LogCategoriesType) => void;\n private endpoint: string;\n\n constructor(endpoint: string) {\n this.api = CrexSDK.getInstance().api;\n this.log = CrexSDK.getInstance().logger.log;\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.data,\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 this.log(\"error\", `BaseService.request error when request ${path}. Error: ${error}`);\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;\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 { 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 { DocumentTypesItem } from \"@c-rex/interfaces\";\n\nexport const transformDocumentTypes = (\n data: DefaultRequest<DocumentTypesItem>,\n) => {\n const labels: string[] = [];\n\n data.items.forEach((item: DocumentTypesItem) => {\n const aux = item.labels.flatMap((item) => item);\n aux.forEach((item) => {\n if (item.language == \"en\") labels.push(item.value);\n });\n });\n\n return labels.slice(0, 4);\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: string,\n page: number,\n fields: string[],\n language: string[] | null,\n ): Promise<informationUnits> {\n const remainFields = createParams(fields, \"Fields\");\n\n const params = [\n { key: \"pageSize\", value: \"8\" },\n { key: \"PageNumber\", value: (page - 1).toString() },\n { key: \"Query\", value: queries },\n ...remainFields,\n ];\n\n if (language != null) {\n language.forEach((item) => {\n params.push({\n key: \"Restrict\",\n value: `languages~${item}`,\n });\n });\n }\n\n return await this.request({\n params,\n transformer: transformInformationUnits\n });\n }\n\n public async getItem(id: string): Promise<informationUnitsItems> {\n const params = [\n { key: \"Fields\", value: \"renditions\" },\n { key: \"Fields\", value: \"directoryNodes\" },\n ];\n\n return await this.request({\n path: id,\n params,\n });\n }\n\n public async getLanguages(): Promise<string[]> {\n return await this.request({\n path: `Languages`,\n transformer: (data: { value: string; score: number }[]) => {\n return data.map((item) => item.value);\n },\n });\n }\n\n public async getSuggestions(query: string): Promise<string[]> {\n const params = [\n { key: \"prefix\", value: query },\n ];\n return await this.request({\n path: `Suggestions`,\n params,\n transformer: (data: AutocompleteSuggestion) => {\n return data.suggestions.map((item) => item.value);\n },\n });\n }\n}\n"],"mappings":"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","names":["item","item","createParams","createParams"]}
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@c-rex/services",
3
+ "version": "0.0.1",
4
+ "main": "dist/index.js",
5
+ "module": "dist/index.mjs",
6
+ "types": "dist/index.d.ts",
7
+ "files": ["dist"],
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.mjs",
12
+ "require": "./dist/index.js",
13
+ "default": "./dist/index.js"
14
+ },
15
+ "./package.json": "./package.json"
16
+ },
17
+ "scripts": {
18
+ "dev": "tsup src/index.ts --format cjs,esm --dts --watch",
19
+ "build": "tsup src/index.ts --format cjs,esm --dts",
20
+ "test:watch": "jest --watch",
21
+ "test": "jest --coverage"
22
+ },
23
+ "devDependencies": {
24
+ "@c-rex/eslint-config": "*",
25
+ "@c-rex/typescript-config": "*",
26
+ "@turbo/gen": "^2.4.4",
27
+ "@types/jest": "^29.5.14",
28
+ "@types/node": "^22.13.10",
29
+ "eslint": "^9.23.0",
30
+ "jest": "^29.7.0",
31
+ "ts-jest": "^29.1.2",
32
+ "typescript": "latest"
33
+ },
34
+ "dependencies": {
35
+ "@c-rex/core": "*",
36
+ "@c-rex/utils": "*",
37
+ "@c-rex/interfaces": "*"
38
+ }
39
+ }