@onecx/accelerator 7.11.0 → 7.12.0

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onecx/accelerator",
3
- "version": "7.11.0",
3
+ "version": "7.12.0",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
package/src/index.d.ts CHANGED
@@ -11,3 +11,4 @@ export * from './lib/utils/get-normalized-browser-locales.utils';
11
11
  export * from './lib/utils/gatherer';
12
12
  export * from './lib/utils/ensure-property.utils';
13
13
  export * from './lib/utils/get-onecx-shared-recommendations';
14
+ export * from './lib/utils/get-onecx-shared-library-config';
package/src/index.js CHANGED
@@ -14,4 +14,5 @@ tslib_1.__exportStar(require("./lib/utils/get-normalized-browser-locales.utils")
14
14
  tslib_1.__exportStar(require("./lib/utils/gatherer"), exports);
15
15
  tslib_1.__exportStar(require("./lib/utils/ensure-property.utils"), exports);
16
16
  tslib_1.__exportStar(require("./lib/utils/get-onecx-shared-recommendations"), exports);
17
+ tslib_1.__exportStar(require("./lib/utils/get-onecx-shared-library-config"), exports);
17
18
  //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/accelerator/src/index.ts"],"names":[],"mappings":";;;AAAA,4DAAiC;AACjC,uEAA4C;AAC5C,mFAAwD;AACxD,qEAA0C;AAC1C,sEAA2C;AAC3C,iEAAsC;AACtC,iEAAsC;AACtC,oEAAyC;AACzC,8EAAmD;AACnD,2FAAgE;AAChE,+DAAoC;AACpC,4EAAiD;AACjD,uFAA4D"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/accelerator/src/index.ts"],"names":[],"mappings":";;;AAAA,4DAAiC;AACjC,uEAA4C;AAC5C,mFAAwD;AACxD,qEAA0C;AAC1C,sEAA2C;AAC3C,iEAAsC;AACtC,iEAAsC;AACtC,oEAAyC;AACzC,8EAAmD;AACnD,2FAAgE;AAChE,+DAAoC;AACpC,4EAAiD;AACjD,uFAA4D;AAC5D,sFAA2D"}
@@ -0,0 +1,101 @@
1
+ import { SharedLibraryConfig } from "./get-onecx-shared-recommendations";
2
+ /**
3
+ * @deprecated This interface is deprecated and will be moved to `@onecx/build-utils` in v9.
4
+ *
5
+ * Callbacks that can be passed to the SharedLibraryConfigOptions function to customize its behavior.
6
+ * @property {function} configCallback - A function that receives the package name and current shared configuration, returning a modified configuration. Must return a SharedLibraryConfig object.
7
+ * @property {function} packageFilterCallback - A function that takes a package name and returns a boolean. Return true to EXCLUDE the package, false to INCLUDE it, use onecxPackageFilter to use default blacklist.
8
+ */
9
+ export interface SharedLibraryConfigOptions {
10
+ configCallback?: (packageName: string, currentConfig: SharedLibraryConfig) => SharedLibraryConfig;
11
+ packageFilterCallback?: (packageName: string) => boolean | undefined;
12
+ }
13
+ /**
14
+ * @deprecated This helper is deprecated and will be moved to `@onecx/build-utils` in v9.
15
+ *
16
+ * onecxPackageFilter is the default OneCX package filter.
17
+ * @param {string} packageName - The full package name to check against the default blacklist.
18
+ * @returns {boolean} - Returns `true` if the package is on the default blacklist, `false` otherwise.
19
+ */
20
+ export declare function onecxPackageFilter(packageName: string): boolean;
21
+ /**
22
+ * @deprecated This helper is deprecated and will be moved to `@onecx/build-utils` in v9.
23
+ *
24
+ * Generates a shared library configuration object for all dependencies (main + subpackages if needed).
25
+ * @param {Record<string, string>} dependencies - Map of dependency names to versions
26
+ * @param {boolean} shouldGenerateSubDeps - Flag indicating whether to include subpackages based on exports
27
+ * @param {SharedLibraryConfigOptions} options - Optional callbacks for customizing the configuration generation process. Includes:
28
+ * - configCallback: A function that receives the package name and current shared configuration, returning a modified configuration.
29
+ * configCallback?: (packageName: string, currentConfig: SharedLibraryConfig) => SharedLibraryConfig;
30
+ * - packageFilterCallback: A function that takes a package name and returns a boolean. Return true to EXCLUDE the package, false to INCLUDE it.
31
+ * packageFilterCallback?: (packageName: string) => boolean | undefined;
32
+ * @returns {Record<string, SharedLibraryConfig>} A map of package names to their shared library configuration
33
+ *
34
+ * @example
35
+ * **Recommended usage for @module-federation/enhanced:**
36
+ * ```js
37
+ * const sharedEntries = getOneCXSharedLibraryConfig(dependencies, true);
38
+ * const config = {
39
+ * name: 'onecx-test-project-ui',
40
+ * filename: 'remoteEntry.js',
41
+ * shared: sharedEntries,
42
+ * shareScope: 'angular_21'
43
+ * }
44
+ * ```
45
+ *
46
+ * **Recommended usage for @angular-architects/module-federation:**
47
+ * The share function is from @angular-architects/module-federation.
48
+ * ```js
49
+ * function customConfigCallback(packageName: string, currentConfig: SharedLibraryConfig): SharedLibraryConfig {
50
+ * currentConfig[includeSecondaries]=true
51
+ * currentConfig[requiredVersion]='auto'
52
+ * return currentConfig
53
+ * }
54
+ *
55
+ * const sharedEntries = getOneCXSharedLibraryConfig(dependencies, false, { configCallback: customConfigCallback });
56
+ * const config = withModuleFederationPlugin({
57
+ * name: 'onecx-<%= remoteModuleFileName %>-ui',
58
+ * filename: 'remoteEntryOneCX.js',
59
+ * exposes: {
60
+ * './OneCX<%= remoteModuleName %>Module': './src/main.ts'
61
+ * },
62
+ * shared: share(sharedEntries),
63
+ * });
64
+ * ```
65
+ * \
66
+ * **With options (custom filter and config override) you can customize the behavior as follows:**
67
+ * ```js
68
+ * const sharedEntries = getOneCXSharedLibraryConfig(dependencies, true, {
69
+ * packageFilterCallback: customPackageFilter,
70
+ * configCallback: customConfigCallback,
71
+ * });
72
+ * ```
73
+ * \
74
+ * Following are some Custom Implementation:
75
+ * 1. Adding Custom Config or overiding default config
76
+ *```js
77
+ * function customConfigCallback(packageName: string, currentConfig: SharedLibraryConfig): SharedLibraryConfig {
78
+ * currentConfig[singleton]=true
79
+ * return currentConfig
80
+ * }
81
+ * ```
82
+ *
83
+ * 2. Custom Package without using onecxPckageFilter
84
+ * ```js
85
+ * function customPackageFilter(packageName: string): boolean {
86
+ * if (packageName.startsWith('@internal/')) return true;
87
+ * return false;
88
+ * }
89
+ * ```
90
+ *
91
+ * 3. Custom Package using onecxPckageFilter as defaut:
92
+ * ```js
93
+ * function customPackageFilter(packageName: string): boolean {
94
+ * if (packageName.startsWith('@internal/')) return true;
95
+ * return onecxPackageFilter(packageName);
96
+ * }
97
+ *
98
+ * ```
99
+ *
100
+ */
101
+ export declare function getOneCXSharedLibraryConfig(dependencies: Record<string, string>, shouldGenerateSubDeps: boolean, options?: SharedLibraryConfigOptions): Record<string, SharedLibraryConfig>;
@@ -0,0 +1,270 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.onecxPackageFilter = onecxPackageFilter;
4
+ exports.getOneCXSharedLibraryConfig = getOneCXSharedLibraryConfig;
5
+ const get_onecx_shared_recommendations_1 = require("./get-onecx-shared-recommendations");
6
+ const angularCore = '@angular/core';
7
+ /**
8
+ * As we have { platform: 'browser'} in accelerator's & integration-interface project.json.
9
+ * We use dynamic require (provided by Node.js) to read package.json of dependencies, which is not supported in browser environment.
10
+ * Resolved lazily on first call so that merely importing this module from a browser bundle does not throw.
11
+ * Only `getOneCXSharedLibraryConfig` (build-time webpack config) calls into the file system helpers below.
12
+ */
13
+ function getNodeRequire() {
14
+ try {
15
+ if (typeof process !== 'undefined' && process?.versions?.node) {
16
+ return eval('require');
17
+ }
18
+ }
19
+ catch {
20
+ console.log(`Node require is not available.`);
21
+ }
22
+ return null;
23
+ }
24
+ /**
25
+ * Blacklist of export paths to exclude when generating subpackage entries.
26
+ */
27
+ const EXPORTS_BLACKLIST = ['.', './package.json'];
28
+ /**
29
+ * Patterns for identifying dependencies that should be blacklisted.
30
+ */
31
+ const DEFAULT_DEPENDENCY_BLACKLIST = [
32
+ /^@nx(\/.*)?$/,
33
+ /^@module-federation(\/.*)?$/,
34
+ /^@onecx\/build-utils(\/.*)?$/,
35
+ ];
36
+ /**
37
+ * For identifying full package paths that should be blacklisted.
38
+ */
39
+ const DEFAULT_FULL_PACKAGE_BLACKLIST = [
40
+ '@angular/common/locales/global/*',
41
+ '@angular/common/locales/*',
42
+ '@angular/common/upgrade',
43
+ '@angular/core/schematics/*',
44
+ '@angular/core/event-dispatch-contract.min.js',
45
+ '@angular/service-worker/ngsw-worker.js',
46
+ '@angular/service-worker/safety-worker.js',
47
+ '@angular/service-worker/config/schema.json',
48
+ '@angular/router/upgrade',
49
+ '@angular/localize/tools',
50
+ 'rxjs/internal/*',
51
+ 'primeng/resources/',
52
+ 'primeng/editor',
53
+ '@onecx/angular-accelerator/testing',
54
+ '@onecx/angular-accelerator/migrations.json',
55
+ ];
56
+ /**
57
+ * Removes the './' prefix from a string, typically used for export paths in package.json files.
58
+ * @param {string} str - The string from which to remove the './' prefix.
59
+ * @returns {string} The string without the './' prefix.
60
+ */
61
+ function removeExportPrefix(str) {
62
+ return str.replace('./', '');
63
+ }
64
+ /**
65
+ * @deprecated This helper is deprecated and will be moved to `@onecx/build-utils` in v9.
66
+ *
67
+ * onecxPackageFilter is the default OneCX package filter.
68
+ * @param {string} packageName - The full package name to check against the default blacklist.
69
+ * @returns {boolean} - Returns `true` if the package is on the default blacklist, `false` otherwise.
70
+ */
71
+ function onecxPackageFilter(packageName) {
72
+ if (isDependencyBlacklisted(packageName)) {
73
+ return true;
74
+ }
75
+ return DEFAULT_FULL_PACKAGE_BLACKLIST.includes(packageName);
76
+ }
77
+ /**
78
+ * Check whether a dependency matches any blacklist entry. Supports RegExp entries and exact string matches.
79
+ */
80
+ function isDependencyBlacklisted(dependency) {
81
+ return DEFAULT_DEPENDENCY_BLACKLIST.some((entry) => {
82
+ if (entry instanceof RegExp) {
83
+ return entry.test(dependency);
84
+ }
85
+ return entry === dependency;
86
+ });
87
+ }
88
+ /**
89
+ * Resolves and reads a dependency's package.json file.
90
+ * Handles module resolution across npm/yarn/pnpm layouts.
91
+ * @param {string} dependency - Package name to resolve
92
+ * @returns {Object|null} Parsed package.json or null if not found
93
+ */
94
+ function readDependencyPackageJson(dependency) {
95
+ const nodeRequire = getNodeRequire();
96
+ if (!nodeRequire)
97
+ return null;
98
+ let packagePath;
99
+ try {
100
+ packagePath = nodeRequire.resolve(`${dependency}/package.json`);
101
+ }
102
+ catch {
103
+ return null;
104
+ }
105
+ const fs = nodeRequire('fs');
106
+ if (!fs.existsSync(packagePath)) {
107
+ return null;
108
+ }
109
+ const packageContent = fs.readFileSync(packagePath, 'utf-8');
110
+ return JSON.parse(packageContent);
111
+ }
112
+ /**
113
+ * Generates subpackages from a dependency's export entries. Reads the dependency's package.json to find all exported subpackages
114
+ * and creates fully qualified package names.
115
+ * @param {string} dependency - Package name
116
+ * @param {string} version - Package version
117
+ * @param {function} packageFilterCallback - Optional callback to filter out specific subpackages. Should return true to exclude a package, false to include it.
118
+ * @returns {Array} Array of subpackage objects with name and version
119
+ */
120
+ function generateSubPackageConfig(dependency, version, packageFilterCallback) {
121
+ const subpackages = [];
122
+ const dependencyPackage = readDependencyPackageJson(dependency);
123
+ if (!dependencyPackage?.exports) {
124
+ return subpackages;
125
+ }
126
+ const exportKeys = Object.keys(dependencyPackage.exports);
127
+ for (const exportKey of exportKeys) {
128
+ if (EXPORTS_BLACKLIST.includes(exportKey))
129
+ continue;
130
+ const subpackageName = `${dependency}/${removeExportPrefix(exportKey)}`;
131
+ if (packageFilterCallback?.(subpackageName))
132
+ continue;
133
+ subpackages.push({ name: subpackageName, requiredVersion: version });
134
+ }
135
+ return subpackages;
136
+ }
137
+ /**
138
+ * Generates all shared packages (main + subpackages) for a given dependency.
139
+ * Includes the main package plus all exported subpackages.
140
+ * @param {Object} versionMap - Map of dependency names to versions
141
+ * @param {string} dependency - Package name to generate packages for
142
+ * @param {boolean} shouldGenerateSubDeps - Flag indicating whether to include subpackages based on exports
143
+ * @param {function} packageFilterCallback - Optional callback to filter out specific packages. Should return true to exclude a package, false to include it.
144
+ * @returns {Array} Array of all packages (main + subpackages)
145
+ */
146
+ function generatePackageConfig(versionMap, dependency, shouldGenerateSubDeps, packageFilterCallback = onecxPackageFilter) {
147
+ if (packageFilterCallback(dependency)) {
148
+ return [];
149
+ }
150
+ const allPackages = [];
151
+ const version = versionMap[dependency];
152
+ allPackages.push({ name: dependency, requiredVersion: version });
153
+ if (shouldGenerateSubDeps) {
154
+ const subpackages = generateSubPackageConfig(dependency, version, packageFilterCallback);
155
+ allPackages.push(...subpackages);
156
+ }
157
+ return allPackages;
158
+ }
159
+ /**
160
+ * @deprecated This helper is deprecated and will be moved to `@onecx/build-utils` in v9.
161
+ *
162
+ * Generates a shared library configuration object for all dependencies (main + subpackages if needed).
163
+ * @param {Record<string, string>} dependencies - Map of dependency names to versions
164
+ * @param {boolean} shouldGenerateSubDeps - Flag indicating whether to include subpackages based on exports
165
+ * @param {SharedLibraryConfigOptions} options - Optional callbacks for customizing the configuration generation process. Includes:
166
+ * - configCallback: A function that receives the package name and current shared configuration, returning a modified configuration.
167
+ * configCallback?: (packageName: string, currentConfig: SharedLibraryConfig) => SharedLibraryConfig;
168
+ * - packageFilterCallback: A function that takes a package name and returns a boolean. Return true to EXCLUDE the package, false to INCLUDE it.
169
+ * packageFilterCallback?: (packageName: string) => boolean | undefined;
170
+ * @returns {Record<string, SharedLibraryConfig>} A map of package names to their shared library configuration
171
+ *
172
+ * @example
173
+ * **Recommended usage for @module-federation/enhanced:**
174
+ * ```js
175
+ * const sharedEntries = getOneCXSharedLibraryConfig(dependencies, true);
176
+ * const config = {
177
+ * name: 'onecx-test-project-ui',
178
+ * filename: 'remoteEntry.js',
179
+ * shared: sharedEntries,
180
+ * shareScope: 'angular_21'
181
+ * }
182
+ * ```
183
+ *
184
+ * **Recommended usage for @angular-architects/module-federation:**
185
+ * The share function is from @angular-architects/module-federation.
186
+ * ```js
187
+ * function customConfigCallback(packageName: string, currentConfig: SharedLibraryConfig): SharedLibraryConfig {
188
+ * currentConfig[includeSecondaries]=true
189
+ * currentConfig[requiredVersion]='auto'
190
+ * return currentConfig
191
+ * }
192
+ *
193
+ * const sharedEntries = getOneCXSharedLibraryConfig(dependencies, false, { configCallback: customConfigCallback });
194
+ * const config = withModuleFederationPlugin({
195
+ * name: 'onecx-<%= remoteModuleFileName %>-ui',
196
+ * filename: 'remoteEntryOneCX.js',
197
+ * exposes: {
198
+ * './OneCX<%= remoteModuleName %>Module': './src/main.ts'
199
+ * },
200
+ * shared: share(sharedEntries),
201
+ * });
202
+ * ```
203
+ * \
204
+ * **With options (custom filter and config override) you can customize the behavior as follows:**
205
+ * ```js
206
+ * const sharedEntries = getOneCXSharedLibraryConfig(dependencies, true, {
207
+ * packageFilterCallback: customPackageFilter,
208
+ * configCallback: customConfigCallback,
209
+ * });
210
+ * ```
211
+ * \
212
+ * Following are some Custom Implementation:
213
+ * 1. Adding Custom Config or overiding default config
214
+ *```js
215
+ * function customConfigCallback(packageName: string, currentConfig: SharedLibraryConfig): SharedLibraryConfig {
216
+ * currentConfig[singleton]=true
217
+ * return currentConfig
218
+ * }
219
+ * ```
220
+ *
221
+ * 2. Custom Package without using onecxPckageFilter
222
+ * ```js
223
+ * function customPackageFilter(packageName: string): boolean {
224
+ * if (packageName.startsWith('@internal/')) return true;
225
+ * return false;
226
+ * }
227
+ * ```
228
+ *
229
+ * 3. Custom Package using onecxPckageFilter as defaut:
230
+ * ```js
231
+ * function customPackageFilter(packageName: string): boolean {
232
+ * if (packageName.startsWith('@internal/')) return true;
233
+ * return onecxPackageFilter(packageName);
234
+ * }
235
+ *
236
+ * ```
237
+ *
238
+ */
239
+ function getOneCXSharedLibraryConfig(dependencies, shouldGenerateSubDeps, options) {
240
+ const allDependencies = Object.keys(dependencies).flatMap((dependency) => {
241
+ return generatePackageConfig(dependencies, dependency, shouldGenerateSubDeps, options?.packageFilterCallback);
242
+ });
243
+ const sharedEntries = allDependencies.reduce((acc, packageEntry) => {
244
+ const sharedLibConfig = {};
245
+ sharedLibConfig['requiredVersion'] = packageEntry.requiredVersion;
246
+ sharedLibConfig['shareScope'] = 'default';
247
+ const angularCoreVersion = (dependencies[angularCore] || '').split('.')[0].replace('^', '');
248
+ if (angularCoreVersion && Number.parseInt(angularCoreVersion, 10) >= 21) {
249
+ const shareScope = ('angular_').concat(angularCoreVersion);
250
+ sharedLibConfig['shareScope'] = shareScope;
251
+ }
252
+ const onecxRecommendation = (0, get_onecx_shared_recommendations_1.getOneCXSharedRecommendations)(packageEntry.name, sharedLibConfig);
253
+ if (!onecxRecommendation) {
254
+ return acc;
255
+ }
256
+ // Apply configCallback if provided to current config overriding the recommendation
257
+ const configFromCallback = options?.configCallback ? options.configCallback(packageEntry.name, onecxRecommendation) : undefined;
258
+ if (configFromCallback && typeof configFromCallback === 'object') {
259
+ Object.assign(onecxRecommendation, configFromCallback);
260
+ }
261
+ return {
262
+ ...acc,
263
+ [packageEntry.name]: {
264
+ ...onecxRecommendation,
265
+ },
266
+ };
267
+ }, {});
268
+ return sharedEntries;
269
+ }
270
+ //# sourceMappingURL=get-onecx-shared-library-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-onecx-shared-library-config.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/utils/get-onecx-shared-library-config.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,16 @@ export interface SharedLibraryConfig {
5
5
  requiredVersion?: string | false;
6
6
  version?: string;
7
7
  includeSecondaries?: boolean;
8
+ shareScope?: string;
8
9
  }
10
+ /**
11
+ * @deprecated This helper is deprecated and will be moved to `@onecx/build-utils` in v9. Use `getOneCXSharedLibraryConfig` to generate the shared config instead.
12
+ *
13
+ * Provides recommendations for shared library configurations for specific OneCX-related libraries.
14
+ * If the library name matches certain patterns (e.g., Angular, OneCX, RxJS, PrimeNG, ngx-translate, ngrx), it modifies the shared configuration to set singleton, strictVersion, and eager to false.
15
+ * For non-matching libraries, it returns false and does not modify the configuration.
16
+ * @param {string} libraryName - The name of the library being shared.
17
+ * @param {SharedLibraryConfig} sharedConfig - The existing shared configuration for the library, which may be modified if recommendations are applied.
18
+ * @returns {false | SharedLibraryConfig} - Returns the modified shared configuration if recommendations are applied, or false if no recommendations are applicable.
19
+ */
9
20
  export declare function getOneCXSharedRecommendations(libraryName: string, sharedConfig: SharedLibraryConfig): false | SharedLibraryConfig;
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getOneCXSharedRecommendations = getOneCXSharedRecommendations;
4
+ /**
5
+ * Patterns for identifying shared libraries that should have specific configuration recommendations.
6
+ */
4
7
  const sharedLibraryPatterns = [
5
8
  /^@angular.*$/,
6
9
  /^@onecx.*$/,
@@ -9,6 +12,16 @@ const sharedLibraryPatterns = [
9
12
  /^@ngx-translate.*$/,
10
13
  /^@ngrx.*$/,
11
14
  ];
15
+ /**
16
+ * @deprecated This helper is deprecated and will be moved to `@onecx/build-utils` in v9. Use `getOneCXSharedLibraryConfig` to generate the shared config instead.
17
+ *
18
+ * Provides recommendations for shared library configurations for specific OneCX-related libraries.
19
+ * If the library name matches certain patterns (e.g., Angular, OneCX, RxJS, PrimeNG, ngx-translate, ngrx), it modifies the shared configuration to set singleton, strictVersion, and eager to false.
20
+ * For non-matching libraries, it returns false and does not modify the configuration.
21
+ * @param {string} libraryName - The name of the library being shared.
22
+ * @param {SharedLibraryConfig} sharedConfig - The existing shared configuration for the library, which may be modified if recommendations are applied.
23
+ * @returns {false | SharedLibraryConfig} - Returns the modified shared configuration if recommendations are applied, or false if no recommendations are applicable.
24
+ */
12
25
  function getOneCXSharedRecommendations(libraryName, sharedConfig) {
13
26
  if (!sharedLibraryPatterns.some((pattern) => pattern.test(libraryName))) {
14
27
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"get-onecx-shared-recommendations.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/utils/get-onecx-shared-recommendations.ts"],"names":[],"mappings":";;AAkBA,sEAYC;AArBD,MAAM,qBAAqB,GAAa;IACtC,cAAc;IACd,YAAY;IACZ,UAAU;IACV,aAAa;IACb,oBAAoB;IACpB,WAAW;CACZ,CAAA;AAED,SAAgB,6BAA6B,CAC3C,WAAmB,EACnB,YAAiC;IAEjC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,YAAY,CAAC,SAAS,GAAG,KAAK,CAAA;IAC9B,YAAY,CAAC,aAAa,GAAG,KAAK,CAAA;IAClC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAA;IAC1B,OAAO,YAAY,CAAA;AACrB,CAAC"}
1
+ {"version":3,"file":"get-onecx-shared-recommendations.js","sourceRoot":"","sources":["../../../../../../libs/accelerator/src/lib/utils/get-onecx-shared-recommendations.ts"],"names":[],"mappings":";;AAgCA,sEAYC;AAlCD;;GAEG;AACH,MAAM,qBAAqB,GAAa;IACtC,cAAc;IACd,YAAY;IACZ,UAAU;IACV,aAAa;IACb,oBAAoB;IACpB,WAAW;CACZ,CAAA;AAED;;;;;;;;;GASG;AACH,SAAgB,6BAA6B,CAC3C,WAAmB,EACnB,YAAiC;IAEjC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,YAAY,CAAC,SAAS,GAAG,KAAK,CAAA;IAC9B,YAAY,CAAC,aAAa,GAAG,KAAK,CAAA;IAClC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAA;IAC1B,OAAO,YAAY,CAAA;AACrB,CAAC"}