@memberjunction/react-runtime 2.92.0 → 2.94.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.
Files changed (87) hide show
  1. package/.turbo/turbo-build.log +14 -16
  2. package/CHANGELOG.md +31 -0
  3. package/README.md +180 -2
  4. package/dist/compiler/babel-config.js.map +1 -1
  5. package/dist/compiler/component-compiler.d.ts.map +1 -1
  6. package/dist/compiler/component-compiler.js +206 -57
  7. package/dist/compiler/component-compiler.js.map +1 -1
  8. package/dist/compiler/index.js.map +1 -1
  9. package/dist/index.d.ts +2 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +14 -5
  12. package/dist/index.js.map +1 -1
  13. package/dist/registry/component-registry-service.d.ts +37 -0
  14. package/dist/registry/component-registry-service.d.ts.map +1 -0
  15. package/dist/registry/component-registry-service.js +319 -0
  16. package/dist/registry/component-registry-service.js.map +1 -0
  17. package/dist/registry/component-registry.d.ts +4 -3
  18. package/dist/registry/component-registry.d.ts.map +1 -1
  19. package/dist/registry/component-registry.js.map +1 -1
  20. package/dist/registry/component-resolver.d.ts +12 -2
  21. package/dist/registry/component-resolver.d.ts.map +1 -1
  22. package/dist/registry/component-resolver.js +96 -12
  23. package/dist/registry/component-resolver.js.map +1 -1
  24. package/dist/registry/index.d.ts +2 -0
  25. package/dist/registry/index.d.ts.map +1 -1
  26. package/dist/registry/index.js +3 -1
  27. package/dist/registry/index.js.map +1 -1
  28. package/dist/registry/registry-provider.d.ts +54 -0
  29. package/dist/registry/registry-provider.d.ts.map +1 -0
  30. package/dist/registry/registry-provider.js +3 -0
  31. package/dist/registry/registry-provider.js.map +1 -0
  32. package/dist/runtime/component-hierarchy.d.ts.map +1 -1
  33. package/dist/runtime/component-hierarchy.js +8 -2
  34. package/dist/runtime/component-hierarchy.js.map +1 -1
  35. package/dist/runtime/error-boundary.js.map +1 -1
  36. package/dist/runtime/index.js.map +1 -1
  37. package/dist/runtime/prop-builder.d.ts +2 -2
  38. package/dist/runtime/prop-builder.d.ts.map +1 -1
  39. package/dist/runtime/prop-builder.js +32 -14
  40. package/dist/runtime/prop-builder.js.map +1 -1
  41. package/dist/runtime/react-root-manager.js.map +1 -1
  42. package/dist/runtime.umd.js +1 -1
  43. package/dist/types/dependency-types.d.ts +62 -0
  44. package/dist/types/dependency-types.d.ts.map +1 -0
  45. package/dist/types/dependency-types.js +3 -0
  46. package/dist/types/dependency-types.js.map +1 -0
  47. package/dist/types/index.d.ts +8 -10
  48. package/dist/types/index.d.ts.map +1 -1
  49. package/dist/types/index.js +1 -0
  50. package/dist/types/index.js.map +1 -1
  51. package/dist/types/library-config.js.map +1 -1
  52. package/dist/utilities/cache-manager.js.map +1 -1
  53. package/dist/utilities/component-error-analyzer.js.map +1 -1
  54. package/dist/utilities/component-styles.js.map +1 -1
  55. package/dist/utilities/core-libraries.js.map +1 -1
  56. package/dist/utilities/index.d.ts +1 -0
  57. package/dist/utilities/index.d.ts.map +1 -1
  58. package/dist/utilities/index.js +1 -0
  59. package/dist/utilities/index.js.map +1 -1
  60. package/dist/utilities/library-dependency-resolver.d.ts +19 -0
  61. package/dist/utilities/library-dependency-resolver.d.ts.map +1 -0
  62. package/dist/utilities/library-dependency-resolver.js +410 -0
  63. package/dist/utilities/library-dependency-resolver.js.map +1 -0
  64. package/dist/utilities/library-loader.d.ts +9 -0
  65. package/dist/utilities/library-loader.d.ts.map +1 -1
  66. package/dist/utilities/library-loader.js +143 -0
  67. package/dist/utilities/library-loader.js.map +1 -1
  68. package/dist/utilities/library-registry.js.map +1 -1
  69. package/dist/utilities/resource-manager.js.map +1 -1
  70. package/dist/utilities/standard-libraries.js.map +1 -1
  71. package/package.json +5 -6
  72. package/src/compiler/component-compiler.ts +227 -77
  73. package/src/index.ts +21 -5
  74. package/src/registry/component-registry-service.ts +578 -0
  75. package/src/registry/component-registry.ts +8 -7
  76. package/src/registry/component-resolver.ts +146 -16
  77. package/src/registry/index.ts +9 -0
  78. package/src/registry/registry-provider.ts +119 -0
  79. package/src/runtime/component-hierarchy.ts +13 -5
  80. package/src/runtime/prop-builder.ts +38 -18
  81. package/src/types/dependency-types.ts +110 -0
  82. package/src/types/index.ts +17 -21
  83. package/src/utilities/index.ts +1 -0
  84. package/src/utilities/library-dependency-resolver.ts +603 -0
  85. package/src/utilities/library-loader.ts +252 -0
  86. package/tsconfig.json +2 -1
  87. package/tsconfig.tsbuildinfo +0 -1
@@ -4,6 +4,7 @@ exports.LibraryLoader = void 0;
4
4
  const standard_libraries_1 = require("./standard-libraries");
5
5
  const core_libraries_1 = require("./core-libraries");
6
6
  const resource_manager_1 = require("./resource-manager");
7
+ const library_dependency_resolver_1 = require("./library-dependency-resolver");
7
8
  const LIBRARY_LOADER_COMPONENT_ID = 'mj-react-runtime-library-loader-singleton';
8
9
  class LibraryLoader {
9
10
  static async loadAllLibraries(config, additionalLibraries) {
@@ -206,9 +207,151 @@ class LibraryLoader {
206
207
  }
207
208
  });
208
209
  this.loadedResources.clear();
210
+ this.loadedLibraryStates.clear();
209
211
  resource_manager_1.resourceManager.cleanupComponent(LIBRARY_LOADER_COMPONENT_ID);
210
212
  }
213
+ static async loadLibraryWithDependencies(libraryName, allLibraries, requestedBy = 'user', options) {
214
+ const debug = options?.debug || false;
215
+ if (debug) {
216
+ console.log(`📚 Loading library '${libraryName}' with dependencies`);
217
+ }
218
+ const existingState = this.loadedLibraryStates.get(libraryName);
219
+ if (existingState) {
220
+ if (debug) {
221
+ console.log(`✅ Library '${libraryName}' already loaded (version: ${existingState.version})`);
222
+ }
223
+ if (!existingState.requestedBy.includes(requestedBy)) {
224
+ existingState.requestedBy.push(requestedBy);
225
+ }
226
+ return window[existingState.globalVariable];
227
+ }
228
+ const loadOrderResult = this.dependencyResolver.getLoadOrder([libraryName], allLibraries, options);
229
+ if (!loadOrderResult.success) {
230
+ const errors = loadOrderResult.errors?.join(', ') || 'Unknown error';
231
+ throw new Error(`Failed to resolve dependencies for '${libraryName}': ${errors}`);
232
+ }
233
+ if (loadOrderResult.warnings && debug) {
234
+ console.warn(`⚠️ Warnings for '${libraryName}':`, loadOrderResult.warnings);
235
+ }
236
+ const loadOrder = loadOrderResult.order || [];
237
+ if (debug) {
238
+ console.log(`📋 Load order for '${libraryName}':`, loadOrder.map(lib => `${lib.Name}@${lib.Version}`));
239
+ }
240
+ for (const library of loadOrder) {
241
+ if (this.loadedLibraryStates.has(library.Name)) {
242
+ if (debug) {
243
+ console.log(`⏭️ Skipping '${library.Name}' (already loaded)`);
244
+ }
245
+ continue;
246
+ }
247
+ if (debug) {
248
+ console.log(`📥 Loading '${library.Name}@${library.Version}'`);
249
+ }
250
+ if (!library.CDNUrl || !library.GlobalVariable) {
251
+ throw new Error(`Library '${library.Name}' missing CDN URL or global variable`);
252
+ }
253
+ if (library.CDNCssUrl) {
254
+ const cssUrls = library.CDNCssUrl.split(',').map(url => url.trim());
255
+ for (const cssUrl of cssUrls) {
256
+ if (cssUrl) {
257
+ this.loadCSS(cssUrl);
258
+ }
259
+ }
260
+ }
261
+ const loadedGlobal = await this.loadScript(library.CDNUrl, library.GlobalVariable);
262
+ const dependencies = Array.from(this.dependencyResolver.getDirectDependencies(library).keys());
263
+ this.loadedLibraryStates.set(library.Name, {
264
+ name: library.Name,
265
+ version: library.Version || 'unknown',
266
+ globalVariable: library.GlobalVariable,
267
+ loadedAt: new Date(),
268
+ requestedBy: library.Name === libraryName ? [requestedBy] : [],
269
+ dependencies
270
+ });
271
+ if (debug) {
272
+ console.log(`✅ Loaded '${library.Name}@${library.Version}'`);
273
+ }
274
+ }
275
+ const targetLibrary = loadOrder.find(lib => lib.Name === libraryName);
276
+ if (!targetLibrary || !targetLibrary.GlobalVariable) {
277
+ throw new Error(`Failed to load library '${libraryName}'`);
278
+ }
279
+ return window[targetLibrary.GlobalVariable];
280
+ }
281
+ static async loadLibrariesWithDependencies(libraryNames, allLibraries, requestedBy = 'user', options) {
282
+ const debug = options?.debug || false;
283
+ const result = new Map();
284
+ if (debug) {
285
+ console.log(`📚 Loading libraries with dependencies:`, libraryNames);
286
+ }
287
+ const loadOrderResult = this.dependencyResolver.getLoadOrder(libraryNames, allLibraries, options);
288
+ if (!loadOrderResult.success) {
289
+ const errors = loadOrderResult.errors?.join(', ') || 'Unknown error';
290
+ throw new Error(`Failed to resolve dependencies: ${errors}`);
291
+ }
292
+ if (loadOrderResult.warnings && debug) {
293
+ console.warn(`⚠️ Warnings:`, loadOrderResult.warnings);
294
+ }
295
+ const loadOrder = loadOrderResult.order || [];
296
+ if (debug) {
297
+ console.log(`📋 Combined load order:`, loadOrder.map(lib => `${lib.Name}@${lib.Version}`));
298
+ }
299
+ for (const library of loadOrder) {
300
+ if (this.loadedLibraryStates.has(library.Name)) {
301
+ if (debug) {
302
+ console.log(`⏭️ Skipping '${library.Name}' (already loaded)`);
303
+ }
304
+ const state = this.loadedLibraryStates.get(library.Name);
305
+ if (libraryNames.includes(library.Name)) {
306
+ result.set(library.Name, window[state.globalVariable]);
307
+ }
308
+ continue;
309
+ }
310
+ if (debug) {
311
+ console.log(`📥 Loading '${library.Name}@${library.Version}'`);
312
+ }
313
+ if (!library.CDNUrl || !library.GlobalVariable) {
314
+ throw new Error(`Library '${library.Name}' missing CDN URL or global variable`);
315
+ }
316
+ if (library.CDNCssUrl) {
317
+ const cssUrls = library.CDNCssUrl.split(',').map(url => url.trim());
318
+ for (const cssUrl of cssUrls) {
319
+ if (cssUrl) {
320
+ this.loadCSS(cssUrl);
321
+ }
322
+ }
323
+ }
324
+ const loadedGlobal = await this.loadScript(library.CDNUrl, library.GlobalVariable);
325
+ const dependencies = Array.from(this.dependencyResolver.getDirectDependencies(library).keys());
326
+ this.loadedLibraryStates.set(library.Name, {
327
+ name: library.Name,
328
+ version: library.Version || 'unknown',
329
+ globalVariable: library.GlobalVariable,
330
+ loadedAt: new Date(),
331
+ requestedBy: libraryNames.includes(library.Name) ? [requestedBy] : [],
332
+ dependencies
333
+ });
334
+ if (libraryNames.includes(library.Name)) {
335
+ result.set(library.Name, loadedGlobal);
336
+ }
337
+ if (debug) {
338
+ console.log(`✅ Loaded '${library.Name}@${library.Version}'`);
339
+ }
340
+ }
341
+ return result;
342
+ }
343
+ static getLoadedLibraryStates() {
344
+ return new Map(this.loadedLibraryStates);
345
+ }
346
+ static isLibraryLoaded(libraryName) {
347
+ return this.loadedLibraryStates.has(libraryName);
348
+ }
349
+ static getLoadedLibraryVersion(libraryName) {
350
+ return this.loadedLibraryStates.get(libraryName)?.version;
351
+ }
211
352
  }
212
353
  exports.LibraryLoader = LibraryLoader;
213
354
  LibraryLoader.loadedResources = new Map();
355
+ LibraryLoader.loadedLibraryStates = new Map();
356
+ LibraryLoader.dependencyResolver = new library_dependency_resolver_1.LibraryDependencyResolver({ debug: false });
214
357
  //# sourceMappingURL=library-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"library-loader.js","sourceRoot":"","sources":["../../src/utilities/library-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"library-loader.js","sourceRoot":"","sources":["../../src/utilities/library-loader.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Library loading utilities for React runtime\n * Provides methods to load and manage external JavaScript libraries and CSS\n * @module @memberjunction/react-runtime/utilities\n */\n\nimport { \n StandardLibraries,\n StandardLibraryManager\n} from './standard-libraries';\nimport { LibraryConfiguration, ExternalLibraryConfig, LibraryLoadOptions as ConfigLoadOptions } from '../types/library-config';\nimport { getCoreRuntimeLibraries, isCoreRuntimeLibrary } from './core-libraries';\nimport { resourceManager } from './resource-manager';\nimport { ComponentLibraryEntity } from '@memberjunction/core-entities';\nimport { LibraryDependencyResolver } from './library-dependency-resolver';\nimport { LoadedLibraryState, DependencyResolutionOptions } from '../types/dependency-types';\nimport { LibraryRegistry } from './library-registry';\n\n// Unique component ID for resource tracking\nconst LIBRARY_LOADER_COMPONENT_ID = 'mj-react-runtime-library-loader-singleton';\n\n/**\n * Represents a loaded script or CSS resource\n */\ninterface LoadedResource {\n element: HTMLScriptElement | HTMLLinkElement;\n promise: Promise<any>;\n}\n\n/**\n * Options for loading libraries\n * @deprecated Use LibraryLoadOptions from library-config instead\n */\nexport interface LibraryLoadOptions {\n /** Load core libraries (lodash, d3, Chart.js, dayjs) */\n loadCore?: boolean;\n /** Load UI libraries (antd, React Bootstrap) */\n loadUI?: boolean;\n /** Load CSS files for UI libraries */\n loadCSS?: boolean;\n /** Custom library URLs to load */\n customLibraries?: { url: string; globalName: string }[];\n}\n\n/**\n * Result of loading libraries\n */\nexport interface LibraryLoadResult {\n React: any;\n ReactDOM: any;\n Babel: any;\n libraries: StandardLibraries;\n}\n\n/**\n * Library loader class for managing external script loading\n */\nexport class LibraryLoader {\n private static loadedResources = new Map<string, LoadedResource>();\n private static loadedLibraryStates = new Map<string, LoadedLibraryState>();\n private static dependencyResolver = new LibraryDependencyResolver({ debug: false });\n\n /**\n * Load all standard libraries (core + UI + CSS)\n * This is the main method that should be used by test harness and Angular wrapper\n * @param config Optional full library configuration to replace the default\n * @param additionalLibraries Optional additional libraries to merge with the configuration\n */\n static async loadAllLibraries(\n config?: LibraryConfiguration, \n additionalLibraries?: ExternalLibraryConfig[]\n ): Promise<LibraryLoadResult> {\n if (config) {\n StandardLibraryManager.setConfiguration(config);\n }\n \n // If additional libraries are provided, merge them with the current configuration\n if (additionalLibraries && additionalLibraries.length > 0) {\n const currentConfig = StandardLibraryManager.getConfiguration();\n const mergedConfig: LibraryConfiguration = {\n libraries: [...currentConfig.libraries, ...additionalLibraries],\n metadata: {\n ...currentConfig.metadata,\n lastUpdated: new Date().toISOString()\n }\n };\n StandardLibraryManager.setConfiguration(mergedConfig);\n }\n \n return this.loadLibrariesFromConfig();\n }\n\n /**\n * Load libraries based on the current configuration\n */\n static async loadLibrariesFromConfig(options?: ConfigLoadOptions): Promise<LibraryLoadResult> {\n // Always load core runtime libraries first\n const coreLibraries = getCoreRuntimeLibraries();\n const corePromises = coreLibraries.map(lib => \n this.loadScript(lib.cdnUrl, lib.globalVariable)\n );\n \n const coreResults = await Promise.all(corePromises);\n const React = coreResults.find((_, i) => coreLibraries[i].globalVariable === 'React');\n const ReactDOM = coreResults.find((_, i) => coreLibraries[i].globalVariable === 'ReactDOM');\n const Babel = coreResults.find((_, i) => coreLibraries[i].globalVariable === 'Babel');\n \n // Expose React and ReactDOM as globals for UMD libraries that expect them\n // Many React component libraries (Recharts, Victory, etc.) expect these as globals\n if (typeof window !== 'undefined') {\n if (React && !(window as any).React) {\n (window as any).React = React;\n console.log('✓ Exposed React as window.React for UMD compatibility');\n }\n if (ReactDOM && !(window as any).ReactDOM) {\n (window as any).ReactDOM = ReactDOM;\n console.log('✓ Exposed ReactDOM as window.ReactDOM for UMD compatibility');\n }\n // Also expose PropTypes as empty object if not present (for older libraries)\n if (!(window as any).PropTypes) {\n (window as any).PropTypes = {};\n console.log('✓ Exposed empty PropTypes as window.PropTypes for UMD compatibility');\n }\n }\n \n // Now load plugin libraries from configuration\n const config = StandardLibraryManager.getConfiguration();\n const enabledLibraries = StandardLibraryManager.getEnabledLibraries();\n \n // Filter out any core runtime libraries from plugin configuration\n let pluginLibraries = enabledLibraries.filter(lib => !isCoreRuntimeLibrary(lib.id));\n \n // Apply options filters if provided\n if (options) {\n if (options.categories) {\n pluginLibraries = pluginLibraries.filter(lib => \n options.categories!.includes(lib.category)\n );\n }\n if (options.excludeRuntimeOnly) {\n pluginLibraries = pluginLibraries.filter(lib => !lib.isRuntimeOnly);\n }\n }\n \n // Load CSS files for plugin libraries (non-blocking)\n pluginLibraries.forEach(lib => {\n if (lib.cdnCssUrl) {\n this.loadCSS(lib.cdnCssUrl);\n }\n });\n \n // Load plugin libraries\n const pluginPromises = pluginLibraries.map(lib => \n this.loadScript(lib.cdnUrl, lib.globalVariable)\n );\n \n const pluginResults = await Promise.all(pluginPromises);\n \n // Build libraries object (only contains plugin libraries)\n const libraries: StandardLibraries = {};\n \n pluginLibraries.forEach((lib, index) => {\n libraries[lib.globalVariable] = pluginResults[index];\n });\n \n return {\n React: React || (window as any).React,\n ReactDOM: ReactDOM || (window as any).ReactDOM,\n Babel: Babel || (window as any).Babel,\n libraries\n };\n }\n\n /**\n * Load libraries with specific options (backward compatibility)\n * @deprecated Use loadLibrariesFromConfig instead\n */\n static async loadLibraries(options: LibraryLoadOptions): Promise<LibraryLoadResult> {\n const {\n loadCore = true,\n loadUI = true,\n loadCSS = true,\n customLibraries = []\n } = options;\n\n // Map old options to new configuration approach\n const categoriesToLoad: Array<ExternalLibraryConfig['category']> = ['runtime'];\n if (loadCore) {\n categoriesToLoad.push('utility', 'charting');\n }\n if (loadUI) {\n categoriesToLoad.push('ui');\n }\n \n const result = await this.loadLibrariesFromConfig({\n categories: categoriesToLoad\n });\n \n // Load custom libraries if provided\n if (customLibraries.length > 0) {\n const customPromises = customLibraries.map(({ url, globalName }) =>\n this.loadScript(url, globalName)\n );\n \n const customResults = await Promise.all(customPromises);\n customLibraries.forEach(({ globalName }, index) => {\n result.libraries[globalName] = customResults[index];\n });\n }\n \n return result;\n }\n\n /**\n * Load a script from URL\n */\n private static async loadScript(url: string, globalName: string): Promise<any> {\n // Check if already loaded\n const existing = this.loadedResources.get(url);\n if (existing) {\n return existing.promise;\n }\n\n const promise = new Promise((resolve, reject) => {\n // Check if global already exists\n const existingGlobal = (window as any)[globalName];\n if (existingGlobal) {\n resolve(existingGlobal);\n return;\n }\n\n // Check if script tag exists\n const existingScript = document.querySelector(`script[src=\"${url}\"]`);\n if (existingScript) {\n this.waitForScriptLoad(existingScript as HTMLScriptElement, globalName, resolve, reject);\n return;\n }\n\n // Create new script\n const script = document.createElement('script');\n script.src = url;\n script.async = true;\n script.crossOrigin = 'anonymous';\n\n const cleanup = () => {\n script.removeEventListener('load', onLoad);\n script.removeEventListener('error', onError);\n };\n\n const onLoad = () => {\n cleanup();\n const global = (window as any)[globalName];\n if (global) {\n resolve(global);\n } else {\n // Some libraries may take a moment to initialize\n const timeoutId = resourceManager.setTimeout(\n LIBRARY_LOADER_COMPONENT_ID,\n () => {\n const delayedGlobal = (window as any)[globalName];\n if (delayedGlobal) {\n resolve(delayedGlobal);\n } else {\n reject(new Error(`${globalName} not found after script load`));\n }\n },\n 100,\n { url, globalName }\n );\n }\n };\n\n const onError = () => {\n cleanup();\n reject(new Error(`Failed to load script: ${url}`));\n };\n\n script.addEventListener('load', onLoad);\n script.addEventListener('error', onError);\n\n document.head.appendChild(script);\n \n // Register the script element for cleanup\n resourceManager.registerDOMElement(LIBRARY_LOADER_COMPONENT_ID, script);\n });\n\n this.loadedResources.set(url, { \n element: document.querySelector(`script[src=\"${url}\"]`)!, \n promise \n });\n\n return promise;\n }\n\n /**\n * Load CSS from URL\n */\n private static loadCSS(url: string): void {\n if (this.loadedResources.has(url)) {\n return;\n }\n\n const existingLink = document.querySelector(`link[href=\"${url}\"]`);\n if (existingLink) {\n return;\n }\n\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = url;\n document.head.appendChild(link);\n \n // Register the link element for cleanup\n resourceManager.registerDOMElement(LIBRARY_LOADER_COMPONENT_ID, link);\n\n this.loadedResources.set(url, {\n element: link,\n promise: Promise.resolve()\n });\n }\n\n /**\n * Wait for existing script to load\n */\n private static waitForScriptLoad(\n script: HTMLScriptElement,\n globalName: string,\n resolve: (value: any) => void,\n reject: (reason: any) => void\n ): void {\n const checkGlobal = () => {\n const global = (window as any)[globalName];\n if (global) {\n resolve(global);\n } else {\n // Retry after a short delay\n resourceManager.setTimeout(\n LIBRARY_LOADER_COMPONENT_ID,\n () => {\n const delayedGlobal = (window as any)[globalName];\n if (delayedGlobal) {\n resolve(delayedGlobal);\n } else {\n reject(new Error(`${globalName} not found after script load`));\n }\n },\n 100,\n { context: 'waitForScriptLoad', globalName }\n );\n }\n };\n\n // Check if already loaded\n if ((script as any).complete || (script as any).readyState === 'complete') {\n checkGlobal();\n return;\n }\n\n // Wait for load\n const loadHandler = () => {\n checkGlobal();\n };\n resourceManager.addEventListener(\n LIBRARY_LOADER_COMPONENT_ID,\n script,\n 'load',\n loadHandler,\n { once: true }\n );\n }\n\n\n /**\n * Get all loaded resources (for cleanup)\n */\n static getLoadedResources(): Map<string, LoadedResource> {\n return this.loadedResources;\n }\n\n /**\n * Clear loaded resources cache and cleanup DOM elements\n */\n static clearCache(): void {\n // Remove all script and link elements we added\n this.loadedResources.forEach((resource, url) => {\n if (resource.element && resource.element.parentNode) {\n resource.element.parentNode.removeChild(resource.element);\n }\n });\n \n this.loadedResources.clear();\n this.loadedLibraryStates.clear();\n \n // Clean up any resources managed by resource manager\n resourceManager.cleanupComponent(LIBRARY_LOADER_COMPONENT_ID);\n }\n\n /**\n * Load a library with its dependencies\n * @param libraryName - Name of the library to load\n * @param allLibraries - All available libraries for dependency resolution\n * @param requestedBy - Name of the component/library requesting this load\n * @param options - Dependency resolution options\n * @returns Promise resolving to the loaded library global object\n */\n static async loadLibraryWithDependencies(\n libraryName: string,\n allLibraries: ComponentLibraryEntity[],\n requestedBy: string = 'user',\n options?: DependencyResolutionOptions\n ): Promise<any> {\n const debug = options?.debug || false;\n \n if (debug) {\n console.log(`📚 Loading library '${libraryName}' with dependencies`);\n }\n\n // Check if already loaded\n const existingState = this.loadedLibraryStates.get(libraryName);\n if (existingState) {\n if (debug) {\n console.log(`✅ Library '${libraryName}' already loaded (version: ${existingState.version})`);\n }\n // Track who requested it\n if (!existingState.requestedBy.includes(requestedBy)) {\n existingState.requestedBy.push(requestedBy);\n }\n return (window as any)[existingState.globalVariable];\n }\n\n // Get load order including dependencies\n const loadOrderResult = this.dependencyResolver.getLoadOrder(\n [libraryName],\n allLibraries,\n options\n );\n\n if (!loadOrderResult.success) {\n const errors = loadOrderResult.errors?.join(', ') || 'Unknown error';\n throw new Error(`Failed to resolve dependencies for '${libraryName}': ${errors}`);\n }\n\n if (loadOrderResult.warnings && debug) {\n console.warn(`⚠️ Warnings for '${libraryName}':`, loadOrderResult.warnings);\n }\n\n const loadOrder = loadOrderResult.order || [];\n if (debug) {\n console.log(`📋 Load order for '${libraryName}':`, loadOrder.map(lib => `${lib.Name}@${lib.Version}`));\n }\n\n // Load libraries in order\n for (const library of loadOrder) {\n // Skip if already loaded\n if (this.loadedLibraryStates.has(library.Name)) {\n if (debug) {\n console.log(`⏭️ Skipping '${library.Name}' (already loaded)`);\n }\n continue;\n }\n\n if (debug) {\n console.log(`📥 Loading '${library.Name}@${library.Version}'`);\n }\n\n // Load the library\n if (!library.CDNUrl || !library.GlobalVariable) {\n throw new Error(`Library '${library.Name}' missing CDN URL or global variable`);\n }\n\n // Load CSS if available\n if (library.CDNCssUrl) {\n const cssUrls = library.CDNCssUrl.split(',').map(url => url.trim());\n for (const cssUrl of cssUrls) {\n if (cssUrl) {\n this.loadCSS(cssUrl);\n }\n }\n }\n\n // Load the script\n const loadedGlobal = await this.loadScript(library.CDNUrl, library.GlobalVariable);\n\n // Track the loaded state\n const dependencies = Array.from(\n this.dependencyResolver.getDirectDependencies(library).keys()\n );\n\n this.loadedLibraryStates.set(library.Name, {\n name: library.Name,\n version: library.Version || 'unknown',\n globalVariable: library.GlobalVariable,\n loadedAt: new Date(),\n requestedBy: library.Name === libraryName ? [requestedBy] : [],\n dependencies\n });\n\n if (debug) {\n console.log(`✅ Loaded '${library.Name}@${library.Version}'`);\n }\n }\n\n // Return the originally requested library's global\n const targetLibrary = loadOrder.find(lib => lib.Name === libraryName);\n if (!targetLibrary || !targetLibrary.GlobalVariable) {\n throw new Error(`Failed to load library '${libraryName}'`);\n }\n\n return (window as any)[targetLibrary.GlobalVariable];\n }\n\n /**\n * Load multiple libraries with dependency resolution\n * @param libraryNames - Names of libraries to load\n * @param allLibraries - All available libraries for dependency resolution\n * @param requestedBy - Name of the component requesting these libraries\n * @param options - Dependency resolution options\n * @returns Map of library names to their loaded global objects\n */\n static async loadLibrariesWithDependencies(\n libraryNames: string[],\n allLibraries: ComponentLibraryEntity[],\n requestedBy: string = 'user',\n options?: DependencyResolutionOptions\n ): Promise<Map<string, any>> {\n const debug = options?.debug || false;\n const result = new Map<string, any>();\n \n if (debug) {\n console.log(`📚 Loading libraries with dependencies:`, libraryNames);\n }\n\n // Get combined load order for all requested libraries\n const loadOrderResult = this.dependencyResolver.getLoadOrder(\n libraryNames,\n allLibraries,\n options\n );\n\n if (!loadOrderResult.success) {\n const errors = loadOrderResult.errors?.join(', ') || 'Unknown error';\n throw new Error(`Failed to resolve dependencies: ${errors}`);\n }\n\n if (loadOrderResult.warnings && debug) {\n console.warn(`⚠️ Warnings:`, loadOrderResult.warnings);\n }\n\n const loadOrder = loadOrderResult.order || [];\n if (debug) {\n console.log(`📋 Combined load order:`, loadOrder.map(lib => `${lib.Name}@${lib.Version}`));\n }\n\n // Load all libraries in order\n for (const library of loadOrder) {\n // Skip if already loaded\n if (this.loadedLibraryStates.has(library.Name)) {\n if (debug) {\n console.log(`⏭️ Skipping '${library.Name}' (already loaded)`);\n }\n const state = this.loadedLibraryStates.get(library.Name)!;\n if (libraryNames.includes(library.Name)) {\n result.set(library.Name, (window as any)[state.globalVariable]);\n }\n continue;\n }\n\n if (debug) {\n console.log(`📥 Loading '${library.Name}@${library.Version}'`);\n }\n\n // Load the library\n if (!library.CDNUrl || !library.GlobalVariable) {\n throw new Error(`Library '${library.Name}' missing CDN URL or global variable`);\n }\n\n // Load CSS if available\n if (library.CDNCssUrl) {\n const cssUrls = library.CDNCssUrl.split(',').map(url => url.trim());\n for (const cssUrl of cssUrls) {\n if (cssUrl) {\n this.loadCSS(cssUrl);\n }\n }\n }\n\n // Load the script\n const loadedGlobal = await this.loadScript(library.CDNUrl, library.GlobalVariable);\n\n // Track the loaded state\n const dependencies = Array.from(\n this.dependencyResolver.getDirectDependencies(library).keys()\n );\n\n this.loadedLibraryStates.set(library.Name, {\n name: library.Name,\n version: library.Version || 'unknown',\n globalVariable: library.GlobalVariable,\n loadedAt: new Date(),\n requestedBy: libraryNames.includes(library.Name) ? [requestedBy] : [],\n dependencies\n });\n\n // Add to result if it was directly requested\n if (libraryNames.includes(library.Name)) {\n result.set(library.Name, loadedGlobal);\n }\n\n if (debug) {\n console.log(`✅ Loaded '${library.Name}@${library.Version}'`);\n }\n }\n\n return result;\n }\n\n /**\n * Get information about loaded libraries\n * @returns Map of loaded library states\n */\n static getLoadedLibraryStates(): Map<string, LoadedLibraryState> {\n return new Map(this.loadedLibraryStates);\n }\n\n /**\n * Check if a library is loaded\n * @param libraryName - Name of the library\n * @returns True if the library is loaded\n */\n static isLibraryLoaded(libraryName: string): boolean {\n return this.loadedLibraryStates.has(libraryName);\n }\n\n /**\n * Get the version of a loaded library\n * @param libraryName - Name of the library\n * @returns Version string or undefined if not loaded\n */\n static getLoadedLibraryVersion(libraryName: string): string | undefined {\n return this.loadedLibraryStates.get(libraryName)?.version;\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"library-registry.js","sourceRoot":"","sources":["../../src/utilities/library-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"library-registry.js","sourceRoot":"","sources":["../../src/utilities/library-registry.ts"],"names":[],"mappings":";;;AAmCA,MAAa,eAAe;IAGnB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAwB,KAAK,EAAE,kBAA4C;QACpG,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,YAAY,EAAE,CAAC;YAKtC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAoC,CAAC;YAClE,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;gBACrC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBAC/C,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;gBAChD,CAAC;gBACD,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvD,CAAC;YAID,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,aAAa,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAsB;oBAChC,IAAI;oBACJ,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE;oBAChD,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE;oBACpC,QAAQ,EAAE,EAAE;oBACZ,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE;iBAC1C,CAAC;gBACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAQ,CAAC,GAAG;wBAClC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;wBAC5B,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;qBAC7C,CAAC;gBACJ,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACnC,CAAC;YAGD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAKD,MAAM,CAAC,UAAU,CAAC,IAAY;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW;YACnB,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QAEpG,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACxD,CAAC;IAQD,MAAM,CAAC,SAAS,CAAC,IAAY,EAAE,OAAgB;QAC7C,IAAI,CAAC,IAAI,CAAC,WAAW;YACnB,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QAEpG,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,MAAM,aAAa,GAAG,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;QACxD,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IACjD,CAAC;IAKD,MAAM,CAAC,UAAU,CAAC,IAAY;QAC5B,IAAI,CAAC,IAAI,CAAC,WAAW;YACnB,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QAEpG,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;IACxD,CAAC;IAOD,MAAM,CAAC,cAAc,CAAC,IAAY,EAAE,cAAuB;QACzD,IAAI,CAAC,IAAI,CAAC,WAAW;YACnB,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QAEpG,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAE/B,IAAI,CAAC,cAAc;YAAE,OAAO,OAAO,CAAC,cAAc,CAAC;QAInD,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACrC,OAAO,cAAc,CAAC;QACxB,CAAC;QAGD,OAAO,OAAO,CAAC,cAAc,CAAC;IAChC,CAAC;IAOD,MAAM,CAAC,eAAe,CAAC,UAA6B;QAClD,IAAI,CAAC,IAAI,CAAC,WAAW;YACnB,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;QAEpG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CAAC;IACxE,CAAC;;AAhHH,0CAiHC;AAhHgB,yBAAS,GAAmC,IAAI,GAAG,EAAE,CAAC;AACtD,2BAAW,GAAY,KAAK,CAAC","sourcesContent":["/**\n * @fileoverview Library registry for approved third-party libraries\n * Maintains a secure registry of libraries that components can use\n * @module @memberjunction/react-runtime/utilities\n */\n\nimport { UserInfo } from \"@memberjunction/core\";\nimport { ComponentLibraryEntity, ComponentMetadataEngine } from \"@memberjunction/core-entities\";\n\n/**\n * Library definition in the registry\n */\nexport interface LibraryDefinition {\n /** Library name (e.g., \"Chart.js\", \"lodash\") */\n name: string;\n /** Global variable name when loaded (e.g., \"Chart\", \"_\") */\n globalVariable: string;\n /** Category path for organization (e.g., \"charting/advanced\", \"utility/date\") */\n category: string;\n /** Available versions with their CDN URLs */\n versions: {\n [version: string]: {\n cdnUrl: string;\n /** Optional CSS URLs for UI libraries */\n cssUrls?: string[];\n };\n };\n /** Default version to use if not specified */\n defaultVersion: string;\n}\n\n/**\n * Registry of approved libraries that components can use\n * This is the security boundary - only libraries defined here can be loaded\n */\nexport class LibraryRegistry {\n private static libraries: Map<string, LibraryDefinition> = new Map();\n private static _configured: boolean = false;\n public static async Config(forceRefresh: boolean = false, componentLibraries: ComponentLibraryEntity[]) {\n if (!this._configured || forceRefresh) {\n // next up, we need to map the component metadata to the library definitions \n // with two steps - first step is that we need to group the libraries in the engine\n // by name and then we'll have all the versions for that particular library we can break\n // into versions in our structure\n const libraryGroups = new Map<string, ComponentLibraryEntity[]>();\n for (const lib of componentLibraries) {\n if (!libraryGroups.has(lib.Name.toLowerCase())) {\n libraryGroups.set(lib.Name.toLowerCase(), []);\n }\n libraryGroups.get(lib.Name.toLowerCase())!.push(lib);\n }\n\n // now we have grouped libraries using the ComponentLibraryEntity type, and next up\n // we can map this to our internal structure of LibraryDefinition\n for (const [name, versions] of libraryGroups) {\n const libDef: LibraryDefinition = {\n name,\n globalVariable: versions[0].GlobalVariable || \"\",\n category: versions[0].Category || \"\",\n versions: {},\n defaultVersion: versions[0].Version || \"\"\n };\n for (const version of versions) {\n libDef.versions[version.Version!] = {\n cdnUrl: version.CDNUrl || \"\",\n cssUrls: version.CDNCssUrl?.split(\",\") || []\n };\n }\n this.libraries.set(name, libDef);\n }\n\n // at this point, our library registry is fully populated\n this._configured = true;\n }\n }\n\n /**\n * Get library definition by name\n */\n static getLibrary(name: string): LibraryDefinition | undefined {\n if (!this._configured)\n throw new Error(\"LibraryRegistry is not configured, call LibraryRegistry.Config() before using!\");\n\n return this.libraries.get(name?.trim().toLowerCase());\n }\n\n /**\n * Get CDN URL for a library\n * @param name Library name\n * @param version Optional version (uses default if not specified)\n * @returns CDN URL or undefined if library/version not found\n */\n static getCdnUrl(name: string, version?: string): string | undefined {\n if (!this._configured)\n throw new Error(\"LibraryRegistry is not configured, call LibraryRegistry.Config() before using!\");\n\n const library = this.libraries.get(name?.trim().toLowerCase());\n if (!library) return undefined;\n\n const targetVersion = version || library.defaultVersion;\n return library.versions[targetVersion]?.cdnUrl;\n }\n\n /**\n * Check if a library is approved\n */\n static isApproved(name: string): boolean {\n if (!this._configured)\n throw new Error(\"LibraryRegistry is not configured, call LibraryRegistry.Config() before using!\");\n\n return this.libraries.has(name?.trim().toLowerCase());\n }\n\n /**\n * Resolve library version based on semver-like pattern\n * For now, just returns exact match or default\n * TODO: Implement proper semver resolution\n */\n static resolveVersion(name: string, versionPattern?: string): string | undefined {\n if (!this._configured)\n throw new Error(\"LibraryRegistry is not configured, call LibraryRegistry.Config() before using!\");\n\n const library = this.libraries.get(name?.trim().toLowerCase());\n if (!library) return undefined;\n\n if (!versionPattern) return library.defaultVersion;\n\n // For now, just check exact match\n // TODO: Implement proper semver resolution for patterns like \"^4.0.0\"\n if (library.versions[versionPattern]) {\n return versionPattern;\n }\n\n // If no exact match, return default\n return library.defaultVersion;\n }\n\n /**\n * Add a library to the registry (for future extensibility)\n * This would typically be called during app initialization\n * with libraries loaded from a database\n */\n static registerLibrary(definition: LibraryDefinition): void {\n if (!this._configured)\n throw new Error(\"LibraryRegistry is not configured, call LibraryRegistry.Config() before using!\");\n\n this.libraries.set(definition.name?.trim().toLowerCase(), definition);\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"resource-manager.js","sourceRoot":"","sources":["../../src/utilities/resource-manager.ts"],"names":[],"mappings":";;;AAmBA,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAE7B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACvD,OAAO;YACL,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;YAC1C,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;YAC9C,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;YAC5C,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;YAChD,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC;YACjE,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,CAAC;SAChE,CAAC;IACJ,CAAC;SAEI,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC5D,OAAO;YACL,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,qBAAqB,EAAE,SAAS;YAChC,oBAAoB,EAAE,SAAS;SAChC,CAAC;IACJ,CAAC;SAEI,CAAC;QACJ,MAAM,IAAI,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QACtB,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAC/B,OAAO;YACL,UAAU,EAAE,cAAc;YAC1B,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,cAAc;YAC3B,aAAa,EAAE,IAAI;YACnB,qBAAqB,EAAE,SAAS;YAChC,oBAAoB,EAAE,SAAS;SAChC,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;AAMnC,MAAa,eAAe;IAA5B;QACU,cAAS,GAAG,IAAI,GAAG,EAAgC,CAAC;QACpD,oBAAe,GAAG,IAAI,GAAG,EAAmB,CAAC;QAC7C,qBAAgB,GAAG,IAAI,GAAG,EAA0B,CAAC;IA6S/D,CAAC;IAxSC,UAAU,CACR,WAAmB,EACnB,QAAoB,EACpB,KAAa,EACb,QAA8B;QAE9B,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;YAC9C,QAAQ,EAAE,CAAC;QACb,CAAC,EAAE,KAAK,CAAC,CAAC;QAEV,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;YAC5B,IAAI,EAAE,OAAO;YACb,EAAE;YACF,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO,EAAS,CAAC;IACnB,CAAC;IAKD,WAAW,CACT,WAAmB,EACnB,QAAoB,EACpB,KAAa,EACb,QAA8B;QAE9B,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE/C,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;YAC5B,IAAI,EAAE,UAAU;YAChB,EAAE;YACF,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YACvC,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO,EAAS,CAAC;IACnB,CAAC;IAKD,qBAAqB,CACnB,WAAmB,EACnB,QAA8B,EAC9B,QAA8B;QAE9B,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAElC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/C,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;YACvD,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;YAC5B,IAAI,EAAE,gBAAgB;YACtB,EAAE;YACF,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,EAAE,CAAC;YAChD,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO,EAAS,CAAC;IACnB,CAAC;IAKD,YAAY,CAAC,WAAmB,EAAE,EAAU;QAC1C,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAKD,aAAa,CAAC,WAAmB,EAAE,EAAU;QAC3C,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAKD,oBAAoB,CAAC,WAAmB,EAAE,EAAW;QACnD,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAChC,MAAM,CAAC,oBAAoB,CAAC,EAAY,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YAEN,MAAM,CAAC,YAAY,CAAC,EAAS,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;IAKD,gBAAgB,CACd,WAAmB,EACnB,MAAmB,EACnB,IAAY,EACZ,QAAuB,EACvB,OAAiC;QAGjC,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;YAC5D,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEjD,MAAM,UAAU,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5D,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;gBAC5B,IAAI,EAAE,eAAe;gBACrB,EAAE,EAAE,UAAU;gBACd,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,mBAAmB,KAAK,UAAU,EAAE,CAAC;wBAC/D,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;oBACtD,CAAC;gBACH,CAAC;gBACD,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAKD,kBAAkB,CAChB,WAAmB,EACnB,OAAY,EACZ,OAAoB;QAGpB,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACrE,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACxD,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;gBAC5B,IAAI,EAAE,YAAY;gBAClB,EAAE,EAAE,UAAU;gBACd,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,EAAE,CAAC;oBACZ,CAAC;oBACD,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,OAAO,CAAC,UAAU,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;wBAC1F,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC1C,CAAC;gBACH,CAAC;gBACD,QAAQ,EAAE,EAAE,OAAO,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAKD,iBAAiB,CACf,WAAmB,EACnB,IAAS,EACT,SAAqB;QAErB,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;YAC5B,IAAI,EAAE,WAAW;YACjB,EAAE,EAAE,cAAc,WAAW,EAAE;YAC/B,OAAO,EAAE,SAAS;YAClB,QAAQ,EAAE,EAAE,IAAI,EAAE;SACnB,CAAC,CAAC;IACL,CAAC;IAKD,eAAe,CAAC,WAAmB,EAAE,OAAmB;QACtD,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxD,CAAC;IAKD,sBAAsB,CAAC,QAAyB;QAC9C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAKO,WAAW,CAAC,WAAmB,EAAE,QAAyB;QAChE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAKO,cAAc,CACpB,WAAmB,EACnB,IAA6B,EAC7B,EAAoC;QAEpC,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAClD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CACpC,CAAC;YACF,IAAI,QAAQ,EAAE,CAAC;gBACb,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAKD,gBAAgB,CAAC,WAAmB;QAElC,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,kBAAkB,EAAE,CAAC;YACvB,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBACpC,IAAI,CAAC;oBACH,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,QAAQ,CAAC,IAAI,YAAY,EAAE,KAAK,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC;QAGD,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC3B,IAAI,CAAC;oBACH,QAAQ,EAAE,CAAC;gBACb,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAKD,aAAa;QACX,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YACtC,IAAI,CAAC;gBACH,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,QAAQ,CAAC,IAAI,YAAY,EAAE,KAAK,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAKD,UAAU;QAER,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACrC,CAAC;QAGD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAKD,QAAQ;QAKN,MAAM,cAAc,GAA2B,EAAE,CAAC;QAElD,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAChD,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC3B,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;YACnC,cAAc;YACd,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI;SAC/C,CAAC;IACJ,CAAC;CACF;AAhTD,0CAgTC;AAGY,QAAA,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"resource-manager.js","sourceRoot":"","sources":["../../src/utilities/resource-manager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Centralized resource management for React Runtime\n * Handles timers, DOM elements, event listeners, and other resources that need cleanup\n * @module @memberjunction/react-runtime/utilities\n */\n\n// Type alias for timer IDs that works in both browser and Node.js\nexport type TimerId = number | NodeJS.Timeout;\n\nexport interface ManagedResource {\n type: 'timer' | 'interval' | 'animationFrame' | 'eventListener' | 'domElement' | 'observable' | 'reactRoot';\n id: string | TimerId;\n cleanup: () => void;\n metadata?: Record<string, any>;\n}\n\n/**\n * Environment-agnostic timer functions that work in both browser and Node.js\n */\nconst getTimerFunctions = () => {\n // Check if we're in a browser environment\n if (typeof window !== 'undefined' && window.setTimeout) {\n return {\n setTimeout: window.setTimeout.bind(window),\n clearTimeout: window.clearTimeout.bind(window),\n setInterval: window.setInterval.bind(window),\n clearInterval: window.clearInterval.bind(window),\n requestAnimationFrame: window.requestAnimationFrame?.bind(window),\n cancelAnimationFrame: window.cancelAnimationFrame?.bind(window)\n };\n }\n // Node.js environment\n else if (typeof global !== 'undefined' && global.setTimeout) {\n return {\n setTimeout: global.setTimeout,\n clearTimeout: global.clearTimeout,\n setInterval: global.setInterval,\n clearInterval: global.clearInterval,\n requestAnimationFrame: undefined, // Not available in Node.js\n cancelAnimationFrame: undefined\n };\n }\n // Fallback - return no-op functions\n else {\n const noop = () => {};\n const noopWithReturn = () => 0;\n return {\n setTimeout: noopWithReturn,\n clearTimeout: noop,\n setInterval: noopWithReturn,\n clearInterval: noop,\n requestAnimationFrame: undefined,\n cancelAnimationFrame: undefined\n };\n }\n};\n\nconst timers = getTimerFunctions();\n\n/**\n * ResourceManager provides centralized management of resources that need cleanup.\n * This prevents memory leaks by ensuring all resources are properly disposed.\n */\nexport class ResourceManager {\n private resources = new Map<string, Set<ManagedResource>>();\n private globalResources = new Set<ManagedResource>();\n private cleanupCallbacks = new Map<string, (() => void)[]>();\n\n /**\n * Register a timeout with automatic cleanup\n */\n setTimeout(\n componentId: string,\n callback: () => void,\n delay: number,\n metadata?: Record<string, any>\n ): number {\n const id = timers.setTimeout(() => {\n this.removeResource(componentId, 'timer', id);\n callback();\n }, delay);\n\n this.addResource(componentId, {\n type: 'timer',\n id,\n cleanup: () => timers.clearTimeout(id),\n metadata\n });\n\n return id as any;\n }\n\n /**\n * Register an interval with automatic cleanup\n */\n setInterval(\n componentId: string,\n callback: () => void,\n delay: number,\n metadata?: Record<string, any>\n ): number {\n const id = timers.setInterval(callback, delay);\n\n this.addResource(componentId, {\n type: 'interval',\n id,\n cleanup: () => timers.clearInterval(id),\n metadata\n });\n\n return id as any;\n }\n\n /**\n * Register an animation frame with automatic cleanup\n */\n requestAnimationFrame(\n componentId: string,\n callback: FrameRequestCallback,\n metadata?: Record<string, any>\n ): TimerId {\n if (!timers.requestAnimationFrame) {\n // Fallback to setTimeout in non-browser environments\n return this.setTimeout(componentId, () => callback(Date.now()), 16, metadata);\n }\n\n const id = timers.requestAnimationFrame((time) => {\n this.removeResource(componentId, 'animationFrame', id);\n callback(time);\n });\n\n this.addResource(componentId, {\n type: 'animationFrame',\n id,\n cleanup: () => timers.cancelAnimationFrame?.(id),\n metadata\n });\n\n return id as any;\n }\n\n /**\n * Clear a specific timeout\n */\n clearTimeout(componentId: string, id: number): void {\n timers.clearTimeout(id);\n this.removeResource(componentId, 'timer', id);\n }\n\n /**\n * Clear a specific interval\n */\n clearInterval(componentId: string, id: number): void {\n timers.clearInterval(id);\n this.removeResource(componentId, 'interval', id);\n }\n\n /**\n * Cancel a specific animation frame\n */\n cancelAnimationFrame(componentId: string, id: TimerId): void {\n if (timers.cancelAnimationFrame) {\n timers.cancelAnimationFrame(id as number);\n } else {\n // If we fell back to setTimeout, use clearTimeout\n timers.clearTimeout(id as any);\n }\n this.removeResource(componentId, 'animationFrame', id);\n }\n\n /**\n * Register an event listener with automatic cleanup\n */\n addEventListener(\n componentId: string,\n target: EventTarget,\n type: string,\n listener: EventListener,\n options?: AddEventListenerOptions\n ): void {\n // Only add event listeners if we have a valid EventTarget (browser environment)\n if (target && typeof target.addEventListener === 'function') {\n target.addEventListener(type, listener, options);\n \n const resourceId = `${type}-${Date.now()}-${Math.random()}`;\n this.addResource(componentId, {\n type: 'eventListener',\n id: resourceId,\n cleanup: () => {\n if (target && typeof target.removeEventListener === 'function') {\n target.removeEventListener(type, listener, options);\n }\n },\n metadata: { target, type, options }\n });\n }\n }\n\n /**\n * Register a DOM element that needs cleanup\n */\n registerDOMElement(\n componentId: string,\n element: any, // Use 'any' to avoid HTMLElement type in Node.js\n cleanup?: () => void\n ): void {\n // Only register if we're in a browser environment with DOM support\n if (typeof document !== 'undefined' && element && element.parentNode) {\n const resourceId = `dom-${Date.now()}-${Math.random()}`;\n this.addResource(componentId, {\n type: 'domElement',\n id: resourceId,\n cleanup: () => {\n if (cleanup) {\n cleanup();\n }\n if (element && element.parentNode && typeof element.parentNode.removeChild === 'function') {\n element.parentNode.removeChild(element);\n }\n },\n metadata: { element }\n });\n }\n }\n\n /**\n * Register a React root for cleanup\n */\n registerReactRoot(\n componentId: string,\n root: any,\n unmountFn: () => void\n ): void {\n this.addResource(componentId, {\n type: 'reactRoot',\n id: `react-root-${componentId}`,\n cleanup: unmountFn,\n metadata: { root }\n });\n }\n\n /**\n * Register a generic cleanup callback for a component\n */\n registerCleanup(componentId: string, cleanup: () => void): void {\n if (!this.cleanupCallbacks.has(componentId)) {\n this.cleanupCallbacks.set(componentId, []);\n }\n this.cleanupCallbacks.get(componentId)!.push(cleanup);\n }\n\n /**\n * Register a global resource (not tied to a specific component)\n */\n registerGlobalResource(resource: ManagedResource): void {\n this.globalResources.add(resource);\n }\n\n /**\n * Add a resource to be managed\n */\n private addResource(componentId: string, resource: ManagedResource): void {\n if (!this.resources.has(componentId)) {\n this.resources.set(componentId, new Set());\n }\n this.resources.get(componentId)!.add(resource);\n }\n\n /**\n * Remove a specific resource\n */\n private removeResource(\n componentId: string,\n type: ManagedResource['type'],\n id: string | number | NodeJS.Timeout\n ): void {\n const componentResources = this.resources.get(componentId);\n if (componentResources) {\n const toRemove = Array.from(componentResources).find(\n r => r.type === type && r.id === id\n );\n if (toRemove) {\n componentResources.delete(toRemove);\n }\n }\n }\n\n /**\n * Clean up all resources for a specific component\n */\n cleanupComponent(componentId: string): void {\n // Clean up tracked resources\n const componentResources = this.resources.get(componentId);\n if (componentResources) {\n componentResources.forEach(resource => {\n try {\n resource.cleanup();\n } catch (error) {\n console.error(`Error cleaning up ${resource.type} resource:`, error);\n }\n });\n this.resources.delete(componentId);\n }\n\n // Execute cleanup callbacks\n const callbacks = this.cleanupCallbacks.get(componentId);\n if (callbacks) {\n callbacks.forEach(callback => {\n try {\n callback();\n } catch (error) {\n console.error('Error executing cleanup callback:', error);\n }\n });\n this.cleanupCallbacks.delete(componentId);\n }\n }\n\n /**\n * Clean up all global resources\n */\n cleanupGlobal(): void {\n this.globalResources.forEach(resource => {\n try {\n resource.cleanup();\n } catch (error) {\n console.error(`Error cleaning up global ${resource.type} resource:`, error);\n }\n });\n this.globalResources.clear();\n }\n\n /**\n * Clean up all resources (components and global)\n */\n cleanupAll(): void {\n // Clean up all component resources\n for (const componentId of this.resources.keys()) {\n this.cleanupComponent(componentId);\n }\n\n // Clean up global resources\n this.cleanupGlobal();\n }\n\n /**\n * Get resource statistics for debugging\n */\n getStats(): {\n componentCount: number;\n resourceCounts: Record<string, number>;\n globalResourceCount: number;\n } {\n const resourceCounts: Record<string, number> = {};\n \n for (const resources of this.resources.values()) {\n resources.forEach(resource => {\n resourceCounts[resource.type] = (resourceCounts[resource.type] || 0) + 1;\n });\n }\n\n return {\n componentCount: this.resources.size,\n resourceCounts,\n globalResourceCount: this.globalResources.size\n };\n }\n}\n\n// Singleton instance\nexport const resourceManager = new ResourceManager();"]}
@@ -1 +1 @@
1
- {"version":3,"file":"standard-libraries.js","sourceRoot":"","sources":["../../src/utilities/standard-libraries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standard-libraries.js","sourceRoot":"","sources":["../../src/utilities/standard-libraries.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Standard libraries configuration for React components\n * @module @memberjunction/react-runtime/utilities\n */\n\nimport { LibraryConfiguration, ExternalLibraryConfig } from '../types/library-config';\n\n\n/**\n * Type for dynamically loaded libraries available to React components\n */\nexport type StandardLibraries = Record<string, any>;\n\n/**\n * Default empty library configuration\n * Libraries should be configured dynamically at runtime\n */\nconst DEFAULT_LIBRARY_CONFIG: LibraryConfiguration = {\n libraries: [],\n metadata: {\n version: '1.0.0',\n lastUpdated: new Date().toISOString(),\n description: 'Empty default configuration - libraries should be configured at runtime'\n }\n};\n\n/**\n * Manages standard library configurations with dynamic loading support\n */\nexport class StandardLibraryManager {\n private static configuration: LibraryConfiguration = DEFAULT_LIBRARY_CONFIG;\n \n /**\n * Set a custom library configuration\n */\n static setConfiguration(config: LibraryConfiguration): void {\n this.configuration = config;\n }\n \n /**\n * Get the current library configuration\n */\n static getConfiguration(): LibraryConfiguration {\n return this.configuration;\n }\n \n /**\n * Get all enabled libraries\n */\n static getEnabledLibraries(): ExternalLibraryConfig[] {\n return this.configuration.libraries.filter(lib => lib.isEnabled);\n }\n \n /**\n * Get libraries by category\n */\n static getLibrariesByCategory(category: ExternalLibraryConfig['category']): ExternalLibraryConfig[] {\n return this.configuration.libraries.filter(lib => lib.category === category && lib.isEnabled);\n }\n \n /**\n * Get core libraries (runtime essentials)\n */\n static getCoreLibraries(): ExternalLibraryConfig[] {\n return this.configuration.libraries.filter(lib => lib.isCore && lib.isEnabled);\n }\n \n /**\n * Get component libraries (non-runtime)\n */\n static getComponentLibraries(): ExternalLibraryConfig[] {\n return this.configuration.libraries.filter(lib => !lib.isRuntimeOnly && lib.isEnabled);\n }\n \n /**\n * Get library by ID\n */\n static getLibraryById(id: string): ExternalLibraryConfig | undefined {\n return this.configuration.libraries.find(lib => lib.id === id);\n }\n \n /**\n * Get library URLs as a simple object (for backward compatibility)\n */\n static getLibraryUrls(): Record<string, string> {\n const urls: Record<string, string> = {};\n this.configuration.libraries\n .filter(lib => lib.isEnabled)\n .forEach(lib => {\n // Use uppercase key for backward compatibility\n const key = lib.id.replace(/-/g, '_').toUpperCase();\n urls[key] = lib.cdnUrl;\n if (lib.cdnCssUrl) {\n urls[`${key}_CSS`] = lib.cdnCssUrl;\n }\n });\n return urls;\n }\n \n /**\n * Reset to default configuration\n */\n static resetToDefault(): void {\n this.configuration = DEFAULT_LIBRARY_CONFIG;\n }\n}\n\n\n/**\n * Creates a standard libraries object for browser environments\n * Dynamically collects all libraries based on current configuration\n */\nexport function createStandardLibraries(): StandardLibraries {\n if (typeof window === 'undefined') {\n // Return empty object in Node.js environments\n return {};\n }\n \n const libs: StandardLibraries = {};\n \n // Add all component libraries as globals based on configuration\n StandardLibraryManager.getComponentLibraries().forEach(lib => {\n const globalValue = (window as any)[lib.globalVariable];\n if (globalValue !== undefined) {\n libs[lib.globalVariable] = globalValue;\n }\n });\n \n return libs;\n}"]}
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "@memberjunction/react-runtime",
3
- "version": "2.92.0",
3
+ "version": "2.94.0",
4
4
  "description": "Platform-agnostic React component runtime for MemberJunction. Provides core compilation, registry, and execution capabilities for React components in any JavaScript environment.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
- "browser": "dist/runtime.umd.js",
8
7
  "scripts": {
9
8
  "build": "npm run build:node && npm run build:umd",
10
9
  "build:node": "tsc",
@@ -28,10 +27,10 @@
28
27
  },
29
28
  "homepage": "https://github.com/MemberJunction/MJ#readme",
30
29
  "dependencies": {
31
- "@memberjunction/core": "2.92.0",
32
- "@memberjunction/global": "2.92.0",
33
- "@memberjunction/interactive-component-types": "2.92.0",
34
- "@memberjunction/core-entities": "2.92.0",
30
+ "@memberjunction/core": "2.94.0",
31
+ "@memberjunction/global": "2.94.0",
32
+ "@memberjunction/interactive-component-types": "2.94.0",
33
+ "@memberjunction/core-entities": "2.94.0",
35
34
  "@babel/standalone": "^7.23.5",
36
35
  "rxjs": "^7.8.1"
37
36
  },