@onecx/integration-interface 8.0.0-rc.10 → 8.0.0-rc.11

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.
Files changed (36) hide show
  1. package/dist/index.cjs +294 -4
  2. package/dist/index.mjs +294 -4
  3. package/package.json +2 -2
  4. package/src/index.d.ts +8 -0
  5. package/src/index.js +8 -0
  6. package/src/index.js.map +1 -1
  7. package/src/lib/services/notification.service.d.ts +7 -0
  8. package/src/lib/services/notification.service.js +15 -0
  9. package/src/lib/services/notification.service.js.map +1 -0
  10. package/src/lib/topics/notification/v1/notification.model.d.ts +21 -0
  11. package/src/lib/topics/notification/v1/notification.model.js +1 -0
  12. package/src/lib/topics/notification/v1/notification.model.js.map +1 -0
  13. package/src/lib/topics/notification/v1/notification.topic.d.ts +5 -0
  14. package/src/lib/topics/notification/v1/notification.topic.js +7 -0
  15. package/src/lib/topics/notification/v1/notification.topic.js.map +1 -0
  16. package/src/lib/topics/remote-components/v1/remote-component.model.d.ts +1 -0
  17. package/src/lib/utils/configuration.utils.d.ts +41 -0
  18. package/src/lib/utils/configuration.utils.js +52 -0
  19. package/src/lib/utils/configuration.utils.js.map +1 -0
  20. package/src/lib/utils/parameters.utils.d.ts +14 -0
  21. package/src/lib/utils/parameters.utils.js +15 -0
  22. package/src/lib/utils/parameters.utils.js.map +1 -0
  23. package/src/lib/utils/portal-message.utils.d.ts +54 -0
  24. package/src/lib/utils/portal-message.utils.js +49 -0
  25. package/src/lib/utils/portal-message.utils.js.map +1 -0
  26. package/src/lib/utils/shell-capability.utils.d.ts +20 -1
  27. package/src/lib/utils/shell-capability.utils.js +29 -3
  28. package/src/lib/utils/shell-capability.utils.js.map +1 -1
  29. package/src/lib/utils/user-language.utils.d.ts +30 -0
  30. package/src/lib/utils/user-language.utils.js +56 -0
  31. package/src/lib/utils/user-language.utils.js.map +1 -0
  32. package/src/lib/utils/workspace.utils.d.ts +76 -0
  33. package/src/lib/utils/workspace.utils.js +199 -0
  34. package/src/lib/utils/workspace.utils.js.map +1 -0
  35. package/src/version.d.ts +1 -1
  36. package/src/version.js +1 -1
@@ -0,0 +1,199 @@
1
+ const aliasStart = '[[';
2
+ const aliasEnd = ']]';
3
+ const paramStart = '{';
4
+ const paramEnd = '}';
5
+ /**
6
+ * Joins base and path segments with a single slash.
7
+ *
8
+ * @param base - Base URL segment.
9
+ * @param path - Path segment to append.
10
+ * @returns Joined URL string.
11
+ */
12
+ const joinWithSlash = (base, path) => {
13
+ let normalizedBase = base;
14
+ let normalizedPath = path;
15
+ if (!normalizedBase.endsWith('/')) {
16
+ normalizedBase += '/';
17
+ }
18
+ if (normalizedPath.startsWith('/')) {
19
+ normalizedPath = normalizedPath.slice(1);
20
+ }
21
+ return normalizedBase + normalizedPath;
22
+ };
23
+ /**
24
+ * Builds the base URL from the workspace, with warnings on missing values.
25
+ *
26
+ * @param workspace - Workspace definition.
27
+ * @returns Base URL string or empty string if missing.
28
+ */
29
+ const constructBaseUrlFromWorkspace = (workspace, warn) => {
30
+ if (workspace.baseUrl === undefined) {
31
+ warn('There was no baseUrl for received workspace.');
32
+ return '';
33
+ }
34
+ return workspace.baseUrl;
35
+ };
36
+ /**
37
+ * Finds a route entry for a product/app pair.
38
+ *
39
+ * @param routes - Available route definitions.
40
+ * @param appId - Application identifier.
41
+ * @param productName - Product name identifier.
42
+ * @returns Matched route or undefined.
43
+ */
44
+ const filterRouteFromList = (routes, appId, productName, warn) => {
45
+ if (!routes) {
46
+ return undefined;
47
+ }
48
+ const productRoutes = routes.filter((route) => route.appId === appId && route.productName === productName);
49
+ if (productRoutes.length === 0) {
50
+ return undefined;
51
+ }
52
+ if (productRoutes.length > 1) {
53
+ warn('There were more than one route. First route has been used.');
54
+ }
55
+ return productRoutes[0];
56
+ };
57
+ /**
58
+ * Resolves endpoint aliases to the final endpoint definition.
59
+ *
60
+ * @param endpointName - Endpoint name or alias.
61
+ * @param endpoints - Available endpoint definitions.
62
+ * @returns Resolved endpoint or undefined.
63
+ */
64
+ const dissolveEndpoint = (endpointName, endpoints) => {
65
+ let endpoint = endpoints.find((ep) => ep.name === endpointName);
66
+ if (!endpoint) {
67
+ return undefined;
68
+ }
69
+ while (endpoint.path?.includes(aliasStart)) {
70
+ const path = endpoint.path;
71
+ const startIdx = path.indexOf(aliasStart) + aliasStart.length;
72
+ const endIdx = path.lastIndexOf(aliasEnd);
73
+ if (endIdx <= startIdx) {
74
+ return undefined;
75
+ }
76
+ const aliasName = path.substring(startIdx, endIdx);
77
+ endpoint = endpoints.find((ep) => ep.name === aliasName);
78
+ if (!endpoint) {
79
+ return undefined;
80
+ }
81
+ }
82
+ return endpoint;
83
+ };
84
+ /**
85
+ * Normalizes parameter values into strings for URL interpolation.
86
+ *
87
+ * @param value - Parameter value to normalize.
88
+ * @returns Normalized string value.
89
+ */
90
+ const getStringFromUnknown = (value) => {
91
+ if (value === null || value === undefined) {
92
+ return '';
93
+ }
94
+ if (typeof value === 'string') {
95
+ return value;
96
+ }
97
+ return String(value);
98
+ };
99
+ /**
100
+ * Replaces path parameters with the provided endpoint parameter values.
101
+ *
102
+ * @param path - Endpoint path template.
103
+ * @param endpointParameters - Parameters to inject.
104
+ * @returns Path with parameters resolved, or empty string on failure.
105
+ */
106
+ const fillParamsForPath = (path, endpointParameters, warn) => {
107
+ while (path.includes(paramStart)) {
108
+ const paramName = path.substring(path.indexOf(paramStart) + paramStart.length, path.indexOf(paramEnd));
109
+ const paramValue = getStringFromUnknown(endpointParameters[paramName]);
110
+ if (paramValue && paramValue.length > 0) {
111
+ path = path.replace(paramStart.concat(paramName).concat(paramEnd), paramValue);
112
+ }
113
+ else {
114
+ warn(`Searched param "${paramName}" was not found in given param list `);
115
+ return '';
116
+ }
117
+ }
118
+ return path;
119
+ };
120
+ /**
121
+ * Constructs a URL path for a concrete endpoint, resolving aliases and params.
122
+ *
123
+ * @param route - Route definition.
124
+ * @param endpointName - Endpoint name or alias.
125
+ * @param endpointParameters - Endpoint parameters for interpolation.
126
+ * @returns Endpoint URL path string.
127
+ */
128
+ const constructEndpointUrl = (route, endpointName, endpointParameters, warn = console.warn) => {
129
+ if (!route.endpoints) {
130
+ return '';
131
+ }
132
+ const finalEndpoint = dissolveEndpoint(endpointName, route.endpoints);
133
+ if (!finalEndpoint?.path) {
134
+ warn('No endpoint or endpoint.path could be found');
135
+ return '';
136
+ }
137
+ const paramsFilled = fillParamsForPath(finalEndpoint.path, endpointParameters ?? {}, warn);
138
+ if (paramsFilled === undefined) {
139
+ warn('Params could not be filled correctly');
140
+ return '';
141
+ }
142
+ return paramsFilled;
143
+ };
144
+ /**
145
+ * Constructs a full route URL for a workspace, app, and optional endpoint.
146
+ *
147
+ * @param workspace - Workspace definition.
148
+ * @param appId - Application identifier.
149
+ * @param productName - Product name identifier.
150
+ * @param endpointName - Optional endpoint name.
151
+ * @param endpointParameters - Optional endpoint parameters.
152
+ * @returns Resolved route URL string.
153
+ */
154
+ const constructRouteUrl = (workspace, appId, productName, endpointName, endpointParameters, warn = console.warn) => {
155
+ const route = filterRouteFromList(workspace.routes, appId, productName, warn);
156
+ let url = constructBaseUrlFromWorkspace(workspace, warn);
157
+ if (!route) {
158
+ warn(`No route.baseUrl could be found for given appId "${appId}" and productName "${productName}"`);
159
+ return url;
160
+ }
161
+ if (route.baseUrl?.length) {
162
+ url = route.baseUrl;
163
+ }
164
+ if (endpointName == undefined) {
165
+ return url;
166
+ }
167
+ const endpointPath = constructEndpointUrl(route, endpointName, endpointParameters, warn);
168
+ if (!endpointPath.length) {
169
+ return url;
170
+ }
171
+ url = joinWithSlash(url, endpointPath);
172
+ return url;
173
+ };
174
+ /**
175
+ * Checks whether a route or endpoint URL exists for the given identifiers.
176
+ *
177
+ * @param workspace - Workspace definition.
178
+ * @param productName - Product name identifier.
179
+ * @param appId - Application identifier.
180
+ * @param endpointName - Optional endpoint name to validate.
181
+ * @returns True if the URL exists.
182
+ */
183
+ const doesUrlExistForWorkspace = (workspace, productName, appId, endpointName, warn = console.warn) => {
184
+ const checkEndpoint = endpointName !== undefined && endpointName.length > 0;
185
+ if (!workspace.routes) {
186
+ return false;
187
+ }
188
+ const route = filterRouteFromList(workspace.routes, appId, productName, warn);
189
+ if (checkEndpoint) {
190
+ if (!route?.endpoints?.length) {
191
+ return false;
192
+ }
193
+ const endpoint = route.endpoints.find((ep) => ep.name === endpointName);
194
+ return !!endpoint?.path?.length;
195
+ }
196
+ return !!route?.baseUrl?.length;
197
+ };
198
+ export { constructBaseUrlFromWorkspace, constructEndpointUrl, constructRouteUrl, doesUrlExistForWorkspace, dissolveEndpoint, fillParamsForPath, filterRouteFromList, getStringFromUnknown, };
199
+ //# sourceMappingURL=workspace.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.utils.js","sourceRoot":"","sources":["../../../../../../libs/integration-interface/src/lib/utils/workspace.utils.ts"],"names":[],"mappings":"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"}
package/src/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export declare const LIB_NAME = "@onecx/integration-interface";
2
- export declare const LIB_VERSION = "8.0.0-rc.10";
2
+ export declare const LIB_VERSION = "8.0.0-rc.11";
package/src/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export const LIB_NAME = '@onecx/integration-interface';
2
- export const LIB_VERSION = '8.0.0-rc.10';
2
+ export const LIB_VERSION = '8.0.0-rc.11';
3
3
  //# sourceMappingURL=version.js.map