@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.
- package/.turbo/turbo-build.log +14 -16
- package/CHANGELOG.md +31 -0
- package/README.md +180 -2
- package/dist/compiler/babel-config.js.map +1 -1
- package/dist/compiler/component-compiler.d.ts.map +1 -1
- package/dist/compiler/component-compiler.js +206 -57
- package/dist/compiler/component-compiler.js.map +1 -1
- package/dist/compiler/index.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -5
- package/dist/index.js.map +1 -1
- package/dist/registry/component-registry-service.d.ts +37 -0
- package/dist/registry/component-registry-service.d.ts.map +1 -0
- package/dist/registry/component-registry-service.js +319 -0
- package/dist/registry/component-registry-service.js.map +1 -0
- package/dist/registry/component-registry.d.ts +4 -3
- package/dist/registry/component-registry.d.ts.map +1 -1
- package/dist/registry/component-registry.js.map +1 -1
- package/dist/registry/component-resolver.d.ts +12 -2
- package/dist/registry/component-resolver.d.ts.map +1 -1
- package/dist/registry/component-resolver.js +96 -12
- package/dist/registry/component-resolver.js.map +1 -1
- package/dist/registry/index.d.ts +2 -0
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +3 -1
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/registry-provider.d.ts +54 -0
- package/dist/registry/registry-provider.d.ts.map +1 -0
- package/dist/registry/registry-provider.js +3 -0
- package/dist/registry/registry-provider.js.map +1 -0
- package/dist/runtime/component-hierarchy.d.ts.map +1 -1
- package/dist/runtime/component-hierarchy.js +8 -2
- package/dist/runtime/component-hierarchy.js.map +1 -1
- package/dist/runtime/error-boundary.js.map +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/prop-builder.d.ts +2 -2
- package/dist/runtime/prop-builder.d.ts.map +1 -1
- package/dist/runtime/prop-builder.js +32 -14
- package/dist/runtime/prop-builder.js.map +1 -1
- package/dist/runtime/react-root-manager.js.map +1 -1
- package/dist/runtime.umd.js +1 -1
- package/dist/types/dependency-types.d.ts +62 -0
- package/dist/types/dependency-types.d.ts.map +1 -0
- package/dist/types/dependency-types.js +3 -0
- package/dist/types/dependency-types.js.map +1 -0
- package/dist/types/index.d.ts +8 -10
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/library-config.js.map +1 -1
- package/dist/utilities/cache-manager.js.map +1 -1
- package/dist/utilities/component-error-analyzer.js.map +1 -1
- package/dist/utilities/component-styles.js.map +1 -1
- package/dist/utilities/core-libraries.js.map +1 -1
- package/dist/utilities/index.d.ts +1 -0
- package/dist/utilities/index.d.ts.map +1 -1
- package/dist/utilities/index.js +1 -0
- package/dist/utilities/index.js.map +1 -1
- package/dist/utilities/library-dependency-resolver.d.ts +19 -0
- package/dist/utilities/library-dependency-resolver.d.ts.map +1 -0
- package/dist/utilities/library-dependency-resolver.js +410 -0
- package/dist/utilities/library-dependency-resolver.js.map +1 -0
- package/dist/utilities/library-loader.d.ts +9 -0
- package/dist/utilities/library-loader.d.ts.map +1 -1
- package/dist/utilities/library-loader.js +143 -0
- package/dist/utilities/library-loader.js.map +1 -1
- package/dist/utilities/library-registry.js.map +1 -1
- package/dist/utilities/resource-manager.js.map +1 -1
- package/dist/utilities/standard-libraries.js.map +1 -1
- package/package.json +5 -6
- package/src/compiler/component-compiler.ts +227 -77
- package/src/index.ts +21 -5
- package/src/registry/component-registry-service.ts +578 -0
- package/src/registry/component-registry.ts +8 -7
- package/src/registry/component-resolver.ts +146 -16
- package/src/registry/index.ts +9 -0
- package/src/registry/registry-provider.ts +119 -0
- package/src/runtime/component-hierarchy.ts +13 -5
- package/src/runtime/prop-builder.ts +38 -18
- package/src/types/dependency-types.ts +110 -0
- package/src/types/index.ts +17 -21
- package/src/utilities/index.ts +1 -0
- package/src/utilities/library-dependency-resolver.ts +603 -0
- package/src/utilities/library-loader.ts +252 -0
- package/tsconfig.json +2 -1
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-compiler.js","sourceRoot":"","sources":["../../src/compiler/component-compiler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"component-compiler.js","sourceRoot":"","sources":["../../src/compiler/component-compiler.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Platform-agnostic React component compiler.\n * Compiles React component source code into executable components using Babel.\n * @module @memberjunction/react-runtime/compiler\n */\n\nimport { UserInfo } from '@memberjunction/core';\nimport { \n CompileOptions, \n CompiledComponent, \n CompilationResult,\n CompilerConfig,\n ComponentError,\n RuntimeContext\n} from '../types';\nimport { ComponentStyles, ComponentObject } from '@memberjunction/interactive-component-types';\nimport { LibraryRegistry } from '../utilities/library-registry';\nimport { LibraryLoader } from '../utilities/library-loader';\nimport { ComponentLibraryEntity } from '@memberjunction/core-entities';\n\n/**\n * Default compiler configuration\n */\nconst DEFAULT_COMPILER_CONFIG: CompilerConfig = {\n babel: {\n presets: ['react'],\n plugins: []\n },\n minify: false,\n sourceMaps: false,\n cache: true,\n maxCacheSize: 100,\n debug: false\n};\n\n/**\n * Platform-agnostic React component compiler.\n * Transforms JSX/React component source code into executable JavaScript.\n */\nexport class ComponentCompiler {\n private config: CompilerConfig;\n private compilationCache: Map<string, CompiledComponent>;\n private cacheAccessOrder: string[]; // Track access order for LRU\n private babelInstance: any;\n\n /**\n * Creates a new ComponentCompiler instance\n * @param config - Optional compiler configuration\n */\n constructor(config?: Partial<CompilerConfig>) {\n this.config = { ...DEFAULT_COMPILER_CONFIG, ...config };\n this.compilationCache = new Map();\n }\n\n /**\n * Sets the Babel instance to use for compilation\n * @param babel - The Babel standalone instance\n */\n setBabelInstance(babel: any): void {\n this.babelInstance = babel;\n }\n\n /**\n * Compiles a React component from source code\n * @param options - Compilation options\n * @returns Promise resolving to compilation result\n */\n async compile(options: CompileOptions): Promise<CompilationResult> {\n const startTime = Date.now();\n\n try {\n // Check cache first if enabled\n if (this.config.cache) {\n const cached = this.getCachedComponent(options.componentName, options.componentCode);\n if (cached) {\n return {\n success: true,\n component: cached,\n duration: Date.now() - startTime\n };\n }\n }\n\n // Validate inputs\n this.validateCompileOptions(options);\n\n // Load required libraries if specified\n const loadedLibraries = await this.loadRequiredLibraries(options.libraries!, options.allLibraries);\n\n // Transpile the component code\n const transpiledCode = this.transpileComponent(\n options.componentCode,\n options.componentName,\n options\n );\n\n // Create the component factory with loaded libraries\n const componentFactory = this.createComponentFactory(\n transpiledCode,\n options.componentName,\n loadedLibraries\n );\n\n // Build the compiled component\n const compiledComponent: CompiledComponent = {\n factory: componentFactory,\n id: this.generateComponentId(options.componentName),\n name: options.componentName,\n compiledAt: new Date(),\n warnings: []\n };\n\n // Cache if enabled\n if (this.config.cache) {\n this.cacheComponent(compiledComponent, options.componentCode);\n }\n\n return {\n success: true,\n component: compiledComponent,\n duration: Date.now() - startTime,\n size: transpiledCode.length\n };\n\n } catch (error) {\n return {\n success: false,\n error: this.createCompilationError(error, options.componentName),\n duration: Date.now() - startTime\n };\n }\n }\n\n /**\n * Transpiles JSX/React code to JavaScript\n * @param code - Source code to transpile\n * @param componentName - Name of the component\n * @param options - Compilation options\n * @returns Transpiled JavaScript code\n */\n private transpileComponent(\n code: string,\n componentName: string,\n options: CompileOptions\n ): string {\n if (!this.babelInstance) {\n throw new Error('Babel instance not set. Call setBabelInstance() first.');\n }\n\n const wrappedCode = this.wrapComponentCode(code, componentName, options.libraries, options.dependencies);\n\n try {\n const result = this.babelInstance.transform(wrappedCode, {\n presets: options.babelPresets || this.config.babel.presets,\n plugins: options.babelPlugins || this.config.babel.plugins,\n filename: `${componentName}.jsx`,\n sourceMaps: this.config.sourceMaps,\n minified: this.config.minify\n });\n\n return result.code;\n } catch (error: any) {\n throw new Error(`Transpilation failed: ${error.message}`);\n }\n }\n\n /**\n * Wraps component code in a factory function for execution\n * @param componentCode - Raw component code\n * @param componentName - Name of the component\n * @param libraries - Optional library dependencies\n * @param dependencies - Optional child component dependencies\n * @returns Wrapped component code\n */\n private wrapComponentCode(componentCode: string, componentName: string, libraries?: any[], dependencies?: Array<{ name: string }>): string {\n // Generate library declarations if libraries are provided\n const libraryDeclarations = libraries && libraries.length > 0\n ? libraries\n .filter(lib => lib.globalVariable) // Only include libraries with globalVariable\n .map(lib => `const ${lib.globalVariable} = libraries['${lib.globalVariable}'];`)\n .join('\\n ')\n : '';\n \n // Generate component declarations if dependencies are provided\n const componentDeclarations = dependencies && dependencies.length > 0\n ? dependencies\n .map(dep => `const ${dep.name} = components['${dep.name}'];`)\n .join('\\n ')\n : '';\n\n return `\n function createComponent(\n React, ReactDOM, \n useState, useEffect, useCallback, useMemo, useRef, useContext, useReducer, useLayoutEffect,\n libraries, styles, console, components\n ) {\n // Parse the component code once to get the component definition\n ${libraryDeclarations ? libraryDeclarations + '\\n ' : ''}${componentDeclarations ? componentDeclarations + '\\n ' : ''}${componentCode}\n \n // Ensure the component exists\n if (typeof ${componentName} === 'undefined') {\n throw new Error('Component \"${componentName}\" is not defined in the provided code');\n }\n \n // Store the component in a variable so we don't lose it\n const UserComponent = ${componentName};\n \n // Debug logging to understand what we're getting\n console.log('Component ${componentName} type:', typeof UserComponent);\n if (typeof UserComponent === 'object' && UserComponent !== null) {\n console.log('Component ${componentName} keys:', Object.keys(UserComponent));\n console.log('Component ${componentName} has .component:', 'component' in UserComponent);\n if ('component' in UserComponent) {\n console.log('Component ${componentName}.component type:', typeof UserComponent.component);\n }\n }\n \n // Check if the component is already a ComponentObject (has a .component property)\n // If so, extract the actual React component\n const ActualComponent = (typeof UserComponent === 'object' && UserComponent !== null && 'component' in UserComponent)\n ? UserComponent.component\n : UserComponent;\n \n // Validate that we have a function (React component)\n if (typeof ActualComponent !== 'function') {\n console.error('Invalid component type for ${componentName}:', typeof ActualComponent);\n console.error('ActualComponent value:', ActualComponent);\n console.error('Original UserComponent value:', UserComponent);\n throw new Error('Component \"${componentName}\" must be a function (React component) or an object with a .component property that is a function. Got: ' + typeof ActualComponent);\n }\n \n // Create a fresh method registry for each factory call\n const methodRegistry = new Map();\n \n // Create a wrapper component that provides RegisterMethod in callbacks\n const ComponentWithMethodRegistry = React.forwardRef((props, ref) => {\n // Register methods on mount\n React.useEffect(() => {\n // Clear previous methods\n methodRegistry.clear();\n \n // Provide RegisterMethod callback if callbacks exist\n if (props.callbacks && typeof props.callbacks.RegisterMethod === 'function') {\n // Component can now register its methods\n // This will be called from within the component\n }\n }, [props.callbacks]);\n \n // Create enhanced callbacks with RegisterMethod\n const enhancedCallbacks = React.useMemo(() => {\n if (!props.callbacks) return {};\n \n return {\n ...props.callbacks,\n RegisterMethod: (methodName, handler) => {\n if (methodName && handler) {\n methodRegistry.set(methodName, handler);\n }\n }\n };\n }, [props.callbacks]);\n \n // Render the original component with enhanced callbacks\n return React.createElement(ActualComponent, {\n ...props,\n callbacks: enhancedCallbacks\n });\n });\n \n ComponentWithMethodRegistry.displayName = '${componentName}WithMethods';\n \n // Return the component object with method access\n return {\n component: ComponentWithMethodRegistry,\n \n // Legacy methods for backward compatibility\n print: function() { \n const printMethod = methodRegistry.get('print');\n if (printMethod) {\n printMethod();\n } else if (typeof window !== 'undefined' && window.print) {\n window.print(); \n }\n },\n refresh: function(data) { \n const refreshMethod = methodRegistry.get('refresh');\n if (refreshMethod) {\n refreshMethod(data);\n }\n // Refresh functionality is handled by the host environment\n },\n \n // Standard method accessors with type safety\n getCurrentDataState: function() {\n const method = methodRegistry.get('getCurrentDataState');\n return method ? method() : undefined;\n },\n getDataStateHistory: function() {\n const method = methodRegistry.get('getDataStateHistory');\n return method ? method() : [];\n },\n validate: function() {\n const method = methodRegistry.get('validate');\n return method ? method() : true;\n },\n isDirty: function() {\n const method = methodRegistry.get('isDirty');\n return method ? method() : false;\n },\n reset: function() {\n const method = methodRegistry.get('reset');\n if (method) method();\n },\n scrollTo: function(target) {\n const method = methodRegistry.get('scrollTo');\n if (method) method(target);\n },\n focus: function(target) {\n const method = methodRegistry.get('focus');\n if (method) method(target);\n },\n \n // Generic method invoker for custom methods\n invokeMethod: function(methodName, ...args) {\n const method = methodRegistry.get(methodName);\n if (method) {\n return method(...args);\n }\n console.warn(\\`Method '\\${methodName}' is not registered on component ${componentName}\\`);\n return undefined;\n },\n \n // Check if a method exists\n hasMethod: function(methodName) {\n return methodRegistry.has(methodName);\n }\n };\n }\n `;\n }\n\n /**\n * Load required libraries from the registry with dependency resolution\n * @param libraries - Array of library dependencies\n * @param componentLibraries - All available component libraries for dependency resolution\n * @returns Map of loaded libraries\n */\n private async loadRequiredLibraries(libraries: any[], componentLibraries: ComponentLibraryEntity[]): Promise<Map<string, any>> {\n const loadedLibraries = new Map<string, any>();\n \n if (this.config.debug) {\n console.log('๐ loadRequiredLibraries called with:', {\n librariesCount: libraries?.length || 0,\n libraries: libraries?.map(l => ({ name: l.name, version: l.version, globalVariable: l.globalVariable }))\n });\n }\n \n if (!libraries || libraries.length === 0) {\n if (this.config.debug) {\n console.log('๐ No libraries to load, returning empty map');\n }\n return loadedLibraries;\n }\n\n // Only works in browser environment\n if (typeof window === 'undefined') {\n console.warn('Library loading is only supported in browser environments');\n return loadedLibraries;\n }\n\n // Initialize LibraryRegistry with componentLibraries if provided\n if (componentLibraries) {\n await LibraryRegistry.Config(false, componentLibraries);\n } else {\n console.warn('โ ๏ธ No componentLibraries provided for LibraryRegistry initialization');\n }\n\n // Extract library names from the requested libraries\n const libraryNames = libraries.map(lib => lib.name);\n \n if (this.config.debug) {\n console.log('๐ฆ Using dependency-aware loading for libraries:', libraryNames);\n }\n\n try {\n // Use the new dependency-aware loading\n const loadedLibraryMap = await LibraryLoader.loadLibrariesWithDependencies(\n libraryNames,\n componentLibraries,\n 'component-compiler',\n { debug: this.config.debug }\n );\n\n // Map the results to match the expected format\n // We need to map from library name to global variable\n for (const lib of libraries) {\n // Check if library is approved first\n const isApproved = LibraryRegistry.isApproved(lib.name);\n if (!isApproved) {\n console.error(`โ Library '${lib.name}' is not approved`);\n throw new Error(`Library '${lib.name}' is not approved. Only approved libraries can be used.`);\n }\n\n // Get the loaded library from the map\n const loadedValue = loadedLibraryMap.get(lib.name);\n \n if (loadedValue) {\n // Store by global variable name for component access\n loadedLibraries.set(lib.globalVariable, loadedValue);\n if (this.config.debug) {\n console.log(`โ
Mapped ${lib.name} to global variable ${lib.globalVariable}`);\n }\n } else {\n // Fallback: check if it's already globally available (might be a dependency)\n const globalValue = (window as any)[lib.globalVariable];\n if (globalValue) {\n loadedLibraries.set(lib.globalVariable, globalValue);\n if (this.config.debug) {\n console.log(`โ
Found ${lib.name} already loaded as ${lib.globalVariable}`);\n }\n } else {\n console.error(`โ Library '${lib.name}' failed to load`);\n throw new Error(`Library '${lib.name}' failed to load or did not expose '${lib.globalVariable}'`);\n }\n }\n }\n } catch (error: any) {\n console.error('Failed to load libraries with dependencies:', error);\n \n // Fallback to old loading method if dependency resolution fails\n if (this.config.debug) {\n console.warn('โ ๏ธ Falling back to non-dependency-aware loading due to error');\n }\n \n // Load each library independently (old method)\n for (const lib of libraries) {\n if ((window as any)[lib.globalVariable]) {\n loadedLibraries.set(lib.globalVariable, (window as any)[lib.globalVariable]);\n } else {\n // Try to load using LibraryRegistry\n const libraryDef = LibraryRegistry.getLibrary(lib.name);\n if (libraryDef) {\n const resolvedVersion = LibraryRegistry.resolveVersion(lib.name, lib.version);\n const cdnUrl = LibraryRegistry.getCdnUrl(lib.name, resolvedVersion);\n \n if (cdnUrl) {\n await this.loadScript(cdnUrl, lib.globalVariable);\n const libraryValue = (window as any)[lib.globalVariable];\n if (libraryValue) {\n loadedLibraries.set(lib.globalVariable, libraryValue);\n }\n }\n }\n }\n }\n }\n \n if (this.config.debug) {\n console.log(`โ
All libraries loaded successfully. Total: ${loadedLibraries.size}`);\n console.log('๐ Loaded libraries map:', Array.from(loadedLibraries.keys()));\n }\n \n return loadedLibraries;\n }\n\n /**\n * Load CSS stylesheets dynamically\n * @param urls - Array of CSS URLs to load\n * @returns Promise that resolves when all stylesheets are loaded\n */\n private async loadStyles(urls: string[]): Promise<void> {\n const loadPromises = urls.map(url => {\n return new Promise<void>((resolve) => {\n // Check if stylesheet already exists\n const existingLink = document.querySelector(`link[href=\"${url}\"]`);\n if (existingLink) {\n resolve();\n return;\n }\n\n // Create new link element\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = url;\n \n // CSS load events are not reliable cross-browser, so resolve immediately\n // The CSS will load asynchronously but won't block component rendering\n document.head.appendChild(link);\n resolve();\n });\n });\n\n await Promise.all(loadPromises);\n }\n\n /**\n * Load a script dynamically\n * @param url - Script URL\n * @param globalName - Expected global variable name\n * @returns Promise that resolves when script is loaded\n */\n private loadScript(url: string, globalName: string): Promise<void> {\n return new Promise((resolve, reject) => {\n // Check if script already exists\n const existingScript = document.querySelector(`script[src=\"${url}\"]`);\n if (existingScript) {\n // Wait for it to finish loading with exponential backoff\n let attempts = 0;\n const maxAttempts = 50; // 5 seconds total with 100ms intervals\n const checkLoaded = () => {\n if ((window as any)[globalName]) {\n resolve();\n } else if (attempts >= maxAttempts) {\n reject(new Error(`${globalName} not found after ${maxAttempts * 100}ms waiting for existing script`));\n } else {\n attempts++;\n setTimeout(checkLoaded, 100);\n }\n };\n checkLoaded();\n return;\n }\n\n // Create new script element\n const script = document.createElement('script');\n script.src = url;\n script.async = true;\n \n script.onload = () => {\n // More robust checking with multiple attempts\n let attempts = 0;\n const maxAttempts = 20; // 2 seconds total\n const checkInterval = 100; // Check every 100ms\n \n const checkGlobal = () => {\n if ((window as any)[globalName]) {\n if (this.config.debug) {\n console.log(` โ Global variable ${globalName} found after ${attempts * checkInterval}ms`);\n }\n resolve();\n } else if (attempts >= maxAttempts) {\n // Final check - some libraries might use a different global name pattern\n if (this.config.debug) {\n console.error(` โ ${globalName} not found after ${attempts * checkInterval}ms`);\n // Only log matching property names, not the entire window object\n const matchingKeys = Object.keys(window).filter(k => k.toLowerCase().includes(globalName.toLowerCase()));\n console.log(` โน๏ธ Matching window properties: ${matchingKeys.join(', ') || 'none'}`);\n }\n reject(new Error(`${globalName} not found after loading script from ${url}`));\n } else {\n attempts++;\n setTimeout(checkGlobal, checkInterval);\n }\n };\n \n // Start checking immediately (don't wait 100ms first)\n checkGlobal();\n };\n \n script.onerror = () => {\n reject(new Error(`Failed to load script: ${url}`));\n };\n \n document.head.appendChild(script);\n });\n }\n\n /**\n * Creates a component factory function from transpiled code\n * @param transpiledCode - Transpiled JavaScript code\n * @param componentName - Name of the component\n * @param loadedLibraries - Map of loaded libraries\n * @returns Component factory function\n */\n private createComponentFactory(\n transpiledCode: string, \n componentName: string,\n loadedLibraries: Map<string, any>\n ): (context: RuntimeContext, styles?: ComponentStyles) => ComponentObject {\n try {\n // Create the factory function with all React hooks\n const factoryCreator = new Function(\n 'React', 'ReactDOM',\n 'useState', 'useEffect', 'useCallback', 'useMemo', 'useRef', 'useContext', 'useReducer', 'useLayoutEffect',\n 'libraries', 'styles', 'console', 'components',\n `${transpiledCode}; return createComponent;`\n );\n\n // Return a function that executes the factory with runtime context\n return (context: RuntimeContext, styles: any = {}, components: Record<string, any> = {}) => {\n const { React, ReactDOM, libraries = {} } = context;\n \n // Merge loaded libraries with context libraries\n const mergedLibraries = { ...libraries };\n loadedLibraries.forEach((value, key) => {\n mergedLibraries[key] = value;\n });\n\n // Execute the factory creator to get the createComponent function\n const createComponentFn = factoryCreator(\n React,\n ReactDOM,\n React.useState,\n React.useEffect,\n React.useCallback,\n React.useMemo,\n React.useRef,\n React.useContext,\n React.useReducer,\n React.useLayoutEffect,\n mergedLibraries,\n styles,\n console,\n components\n );\n\n // Call createComponent to get the actual component\n const Component = createComponentFn(\n React,\n ReactDOM,\n React.useState,\n React.useEffect,\n React.useCallback,\n React.useMemo,\n React.useRef,\n React.useContext,\n React.useReducer,\n React.useLayoutEffect,\n mergedLibraries,\n styles,\n console,\n components\n );\n\n // Return the component directly\n return Component;\n };\n } catch (error: any) {\n throw new Error(`Failed to create component factory: ${error.message}`);\n }\n }\n\n\n /**\n * Validates compilation options\n * @param options - Options to validate\n * @throws Error if validation fails\n */\n private validateCompileOptions(options: CompileOptions): void {\n // Check if options object exists\n if (!options) {\n throw new Error(\n 'Component compilation failed: No options provided.\\n' +\n 'Expected an object with componentName and componentCode properties.\\n' +\n 'Example: { componentName: \"MyComponent\", componentCode: \"function MyComponent() { ... }\" }'\n );\n }\n\n // Check component name\n if (!options.componentName) {\n const providedKeys = Object.keys(options).join(', ');\n throw new Error(\n 'Component compilation failed: Component name is required.\\n' +\n `Received options with keys: [${providedKeys}]\\n` +\n 'Please ensure your component spec includes a \"name\" property.\\n' +\n 'Example: { name: \"MyComponent\", code: \"...\" }'\n );\n }\n\n // Check component code\n if (!options.componentCode) {\n throw new Error(\n `Component compilation failed: Component code is required for \"${options.componentName}\".\\n` +\n 'Please ensure your component spec includes a \"code\" property with the component source code.\\n' +\n 'Example: { name: \"MyComponent\", code: \"function MyComponent() { return <div>Hello</div>; }\" }'\n );\n }\n\n // Check code type\n if (typeof options.componentCode !== 'string') {\n const actualType = typeof options.componentCode;\n throw new Error(\n `Component compilation failed: Component code must be a string for \"${options.componentName}\".\\n` +\n `Received type: ${actualType}\\n` +\n `Received value: ${JSON.stringify(options.componentCode).substring(0, 100)}...\\n` +\n 'Please ensure the code property contains a string of JavaScript/JSX code.'\n );\n }\n\n // Check if code is empty or whitespace only\n if (options.componentCode.trim().length === 0) {\n throw new Error(\n `Component compilation failed: Component code is empty for \"${options.componentName}\".\\n` +\n 'The code property must contain valid JavaScript/JSX code defining a React component.'\n );\n }\n\n // Basic syntax check\n if (!options.componentCode.includes(options.componentName)) {\n throw new Error(\n `Component compilation failed: Component code must define a component named \"${options.componentName}\".\\n` +\n 'The function/component name in the code must match the componentName property.\\n' +\n `Expected to find: function ${options.componentName}(...) or const ${options.componentName} = ...\\n` +\n 'Code preview: ' + options.componentCode.substring(0, 200) + '...'\n );\n }\n }\n\n /**\n * Generates a unique component ID\n * @param componentName - Name of the component\n * @returns Unique component ID\n */\n private generateComponentId(componentName: string): string {\n return `${componentName}_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n }\n\n /**\n * Gets a cached component if available\n * @param componentName - Name of the component\n * @param code - Component source code\n * @returns Cached component or undefined\n */\n private getCachedComponent(componentName: string, code: string): CompiledComponent | undefined {\n // Create cache key based on name AND content hash\n const cacheKey = this.createCacheKey(componentName, code);\n return this.compilationCache.get(cacheKey);\n }\n\n /**\n * Creates a cache key based on component name and code content\n * @param componentName - Name of the component\n * @param code - Component source code\n * @returns Cache key\n */\n private createCacheKey(componentName: string, code: string): string {\n // Simple hash function for code content\n let hash = 0;\n for (let i = 0; i < code.length; i++) {\n const char = code.charCodeAt(i);\n hash = ((hash << 5) - hash) + char;\n hash = hash & hash; // Convert to 32-bit integer\n }\n return `${componentName}_${hash.toString(36)}`;\n }\n\n /**\n * Caches a compiled component\n * @param component - Component to cache\n * @param code - Original source code\n */\n private cacheComponent(component: CompiledComponent, code: string): void {\n // Enforce cache size limit\n if (this.compilationCache.size >= this.config.maxCacheSize) {\n // Remove oldest entry (first in map)\n const firstKey = this.compilationCache.keys().next().value;\n if (firstKey)\n this.compilationCache.delete(firstKey);\n }\n\n const cacheKey = this.createCacheKey(component.name, code);\n this.compilationCache.set(cacheKey, component);\n }\n\n /**\n * Creates a standardized compilation error\n * @param error - Original error\n * @param componentName - Name of the component\n * @returns Formatted component error\n */\n private createCompilationError(error: any, componentName: string): ComponentError {\n return {\n message: error.message || 'Unknown compilation error',\n stack: error.stack,\n componentName,\n phase: 'compilation',\n details: error\n };\n }\n\n /**\n * Clears the compilation cache\n */\n clearCache(): void {\n this.compilationCache.clear();\n }\n\n /**\n * Gets current cache size\n * @returns Number of cached components\n */\n getCacheSize(): number {\n return this.compilationCache.size;\n }\n\n /**\n * Updates compiler configuration\n * @param config - New configuration options\n */\n updateConfig(config: Partial<CompilerConfig>): void {\n this.config = { ...this.config, ...config };\n }\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compiler/index.ts"],"names":[],"mappings":";;;AAKA,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAC1B,+CAQwB;AAPtB,+GAAA,eAAe,OAAA;AACf,+GAAA,eAAe,OAAA;AACf,iHAAA,iBAAiB,OAAA;AACjB,kHAAA,kBAAkB,OAAA;AAClB,8GAAA,cAAc,OAAA;AACd,oHAAA,oBAAoB,OAAA;AACpB,4GAAA,YAAY,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compiler/index.ts"],"names":[],"mappings":";;;AAKA,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAC1B,+CAQwB;AAPtB,+GAAA,eAAe,OAAA;AACf,+GAAA,eAAe,OAAA;AACf,iHAAA,iBAAiB,OAAA;AACjB,kHAAA,kBAAkB,OAAA;AAClB,8GAAA,cAAc,OAAA;AACd,oHAAA,oBAAoB,OAAA;AACpB,4GAAA,YAAY,OAAA","sourcesContent":["/**\n * @fileoverview Compiler module exports\n * @module @memberjunction/react-runtime/compiler\n */\n\nexport { ComponentCompiler } from './component-compiler';\nexport { \n DEFAULT_PRESETS,\n DEFAULT_PLUGINS,\n PRODUCTION_CONFIG,\n DEVELOPMENT_CONFIG,\n getBabelConfig,\n validateBabelPresets,\n getJSXConfig\n} from './babel-config';"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -39,10 +39,11 @@ export declare const DEFAULT_CONFIGS: {
|
|
|
39
39
|
export declare function createReactRuntime(babelInstance: any, config?: {
|
|
40
40
|
compiler?: Partial<import('./types').CompilerConfig>;
|
|
41
41
|
registry?: Partial<import('./types').RegistryConfig>;
|
|
42
|
-
}): {
|
|
42
|
+
}, runtimeContext?: import('./types').RuntimeContext, debug?: boolean): {
|
|
43
43
|
compiler: ComponentCompiler;
|
|
44
44
|
registry: ComponentRegistry;
|
|
45
45
|
resolver: ComponentResolver;
|
|
46
46
|
version: string;
|
|
47
|
+
debug: boolean;
|
|
47
48
|
};
|
|
48
49
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC7B,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,WAAW,CAAC;AAInB,OAAO,EACL,WAAW,EACX,4BAA4B,EAC7B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,eAAe,EACf,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACb,MAAM,2BAA2B,CAAC;AAGnC,eAAO,MAAM,OAAO,WAAW,CAAC;AAGhC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;CAiB3B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,YAAY,EACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,0BAA0B,EAC1B,4BAA4B,EAC7B,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,WAAW,CAAC;AAInB,OAAO,EACL,WAAW,EACX,4BAA4B,EAC7B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,eAAe,EACf,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EACL,eAAe,EACf,eAAe,EACf,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACb,MAAM,2BAA2B,CAAC;AAGnC,eAAO,MAAM,OAAO,WAAW,CAAC;AAGhC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;CAiB3B,CAAC;AAUF,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,GAAG,EAClB,MAAM,CAAC,EAAE;IACP,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,SAAS,EAAE,cAAc,CAAC,CAAC;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,SAAS,EAAE,cAAc,CAAC,CAAC;CACtD,EACD,cAAc,CAAC,EAAE,OAAO,SAAS,EAAE,cAAc,EACjD,KAAK,GAAE,OAAe;;;;;;EA0BvB"}
|
package/dist/index.js
CHANGED
|
@@ -93,16 +93,25 @@ exports.DEFAULT_CONFIGS = {
|
|
|
93
93
|
enableNamespaces: true
|
|
94
94
|
}
|
|
95
95
|
};
|
|
96
|
-
function createReactRuntime(babelInstance, config) {
|
|
97
|
-
const
|
|
96
|
+
function createReactRuntime(babelInstance, config, runtimeContext, debug = false) {
|
|
97
|
+
const compilerConfig = {
|
|
98
|
+
...config?.compiler,
|
|
99
|
+
debug: config?.compiler?.debug ?? debug
|
|
100
|
+
};
|
|
101
|
+
const registryConfig = {
|
|
102
|
+
...config?.registry,
|
|
103
|
+
debug: config?.registry?.debug ?? debug
|
|
104
|
+
};
|
|
105
|
+
const compiler = new compiler_1.ComponentCompiler(compilerConfig);
|
|
98
106
|
compiler.setBabelInstance(babelInstance);
|
|
99
|
-
const registry = new registry_1.ComponentRegistry(
|
|
100
|
-
const resolver = new registry_2.ComponentResolver(registry);
|
|
107
|
+
const registry = new registry_1.ComponentRegistry(registryConfig);
|
|
108
|
+
const resolver = new registry_2.ComponentResolver(registry, compiler, runtimeContext);
|
|
101
109
|
return {
|
|
102
110
|
compiler,
|
|
103
111
|
registry,
|
|
104
112
|
resolver,
|
|
105
|
-
version: exports.VERSION
|
|
113
|
+
version: exports.VERSION,
|
|
114
|
+
debug
|
|
106
115
|
};
|
|
107
116
|
}
|
|
108
117
|
exports.createReactRuntime = createReactRuntime;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAOA,yCAA+C;AAC/C,yCAA+C;AAC/C,yCAA+C;AAG/C,0CAAwB;AAGxB,uCAA+C;AAAtC,6GAAA,iBAAiB,OAAA;AAC1B,uCAQoB;AAPlB,2GAAA,eAAe,OAAA;AACf,2GAAA,eAAe,OAAA;AACf,6GAAA,iBAAiB,OAAA;AACjB,8GAAA,kBAAkB,OAAA;AAClB,0GAAA,cAAc,OAAA;AACd,gHAAA,oBAAoB,OAAA;AACpB,wGAAA,YAAY,OAAA;AAId,uCAA+C;AAAtC,6GAAA,iBAAiB,OAAA;AAC1B,uCAIoB;AAHlB,6GAAA,iBAAiB,OAAA;AACjB,yGAAA,aAAa,OAAA;AAKf,qCAKmB;AAJjB,8GAAA,mBAAmB,OAAA;AACnB,4GAAA,iBAAiB,OAAA;AACjB,+GAAA,oBAAoB,OAAA;AACpB,4GAAA,iBAAiB,OAAA;AAInB,qCAUmB;AATjB,8GAAA,mBAAmB,OAAA;AACnB,6GAAA,kBAAkB,OAAA;AAClB,0GAAA,eAAe,OAAA;AACf,iHAAA,sBAAsB,OAAA;AACtB,qGAAA,UAAU,OAAA;AACV,iHAAA,sBAAsB,OAAA;AACtB,mHAAA,wBAAwB,OAAA;AACxB,2GAAA,gBAAgB,OAAA;AAIlB,qCASmB;AARjB,sHAAA,2BAA2B,OAAA;AAC3B,qHAAA,0BAA0B,OAAA;AAC1B,gHAAA,qBAAqB,OAAA;AACrB,oHAAA,yBAAyB,OAAA;AACzB,qHAAA,0BAA0B,OAAA;AAM5B,qCAImB;AAHjB,2GAAA,gBAAgB,OAAA;AAChB,2GAAA,gBAAgB,OAAA;AAMlB,iEAGsC;AAFpC,+GAAA,WAAW,OAAA;AACX,gIAAA,4BAA4B,OAAA;AAG9B,qEAIwC;AAFtC,4HAAA,sBAAsB,OAAA;AACtB,6HAAA,uBAAuB,OAAA;AAGzB,6DAIoC;AAHlC,+GAAA,aAAa,OAAA;AAKf,iEAGsC;AAFpC,mHAAA,eAAe,OAAA;AAIjB,iFAG8C;AAF5C,kIAAA,sBAAsB,OAAA;AAIxB,iEAIsC;AAHpC,mHAAA,eAAe,OAAA;AACf,mHAAA,eAAe,OAAA;AAIjB,2DAImC;AAHjC,6GAAA,YAAY,OAAA;AAMD,QAAA,OAAO,GAAG,QAAQ,CAAC;AAGnB,QAAA,eAAe,GAAG;IAC7B,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,OAAO,EAAE,CAAC,OAAO,CAAC;YAClB,OAAO,EAAE,EAAE;SACZ;QACD,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,KAAK;QACjB,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,GAAG;KAClB;IACD,QAAQ,EAAE;QACR,aAAa,EAAE,IAAI;QACnB,eAAe,EAAE,KAAK;QACtB,MAAM,EAAE,IAAI;QACZ,gBAAgB,EAAE,IAAI;KACvB;CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Main entry point for the MemberJunction React Runtime.\n * Exports all public APIs for platform-agnostic React component compilation and execution.\n * @module @memberjunction/react-runtime\n */\n\n// Import necessary classes for createReactRuntime function\nimport { ComponentCompiler } from './compiler';\nimport { ComponentRegistry } from './registry';\nimport { ComponentResolver } from './registry';\n\n// Export all types\nexport * from './types';\n\n// Export compiler APIs\nexport { ComponentCompiler } from './compiler';\nexport { \n DEFAULT_PRESETS,\n DEFAULT_PLUGINS,\n PRODUCTION_CONFIG,\n DEVELOPMENT_CONFIG,\n getBabelConfig,\n validateBabelPresets,\n getJSXConfig\n} from './compiler';\n\n// Export registry APIs\nexport { ComponentRegistry } from './registry';\nexport { \n ComponentResolver,\n ComponentSpec,\n ResolvedComponents\n} from './registry';\n\n// Export runtime APIs\nexport {\n createErrorBoundary,\n withErrorBoundary,\n formatComponentError,\n createErrorLogger\n} from './runtime';\n\n\nexport {\n buildComponentProps,\n normalizeCallbacks,\n normalizeStyles,\n validateComponentProps,\n mergeProps,\n createPropsTransformer,\n wrapCallbacksWithLogging,\n extractPropPaths,\n PropBuilderOptions\n} from './runtime';\n\nexport {\n ComponentHierarchyRegistrar,\n registerComponentHierarchy,\n validateComponentSpec,\n flattenComponentHierarchy,\n countComponentsInHierarchy,\n HierarchyRegistrationResult,\n ComponentRegistrationError,\n HierarchyRegistrationOptions\n} from './runtime';\n\nexport {\n ReactRootManager,\n reactRootManager,\n ManagedReactRoot\n} from './runtime';\n\n// Export utilities\n\nexport { \n SetupStyles,\n createDefaultComponentStyles \n} from './utilities/component-styles';\n\nexport {\n StandardLibraries,\n StandardLibraryManager,\n createStandardLibraries\n} from './utilities/standard-libraries';\n\nexport {\n LibraryLoader,\n LibraryLoadOptions,\n LibraryLoadResult\n} from './utilities/library-loader';\n\nexport {\n LibraryRegistry,\n LibraryDefinition\n} from './utilities/library-registry';\n\nexport {\n ComponentErrorAnalyzer,\n FailedComponentInfo\n} from './utilities/component-error-analyzer';\n\nexport {\n ResourceManager,\n resourceManager,\n ManagedResource\n} from './utilities/resource-manager';\n\nexport {\n CacheManager,\n CacheEntry,\n CacheOptions\n} from './utilities/cache-manager';\n\n// Version information\nexport const VERSION = '2.69.1';\n\n// Default configurations\nexport const DEFAULT_CONFIGS = {\n compiler: {\n babel: {\n presets: ['react'],\n plugins: []\n },\n minify: false,\n sourceMaps: false,\n cache: true,\n maxCacheSize: 100\n },\n registry: {\n maxComponents: 1000,\n cleanupInterval: 60000,\n useLRU: true,\n enableNamespaces: true\n }\n};\n\n/**\n * Creates a complete React runtime instance with all necessary components\n * @param babelInstance - Babel standalone instance for compilation\n * @param config - Optional configuration overrides\n * @param runtimeContext - Optional runtime context for registry-based components\n * @param debug - Enable debug logging (defaults to false)\n * @returns Object containing compiler, registry, and resolver instances\n */\nexport function createReactRuntime(\n babelInstance: any,\n config?: {\n compiler?: Partial<import('./types').CompilerConfig>;\n registry?: Partial<import('./types').RegistryConfig>;\n },\n runtimeContext?: import('./types').RuntimeContext,\n debug: boolean = false\n) {\n // Merge debug flag into configs\n const compilerConfig = {\n ...config?.compiler,\n debug: config?.compiler?.debug ?? debug\n };\n \n const registryConfig = {\n ...config?.registry,\n debug: config?.registry?.debug ?? debug\n };\n \n const compiler = new ComponentCompiler(compilerConfig);\n compiler.setBabelInstance(babelInstance);\n \n const registry = new ComponentRegistry(registryConfig);\n const resolver = new ComponentResolver(registry, compiler, runtimeContext);\n\n return {\n compiler,\n registry,\n resolver,\n version: VERSION,\n debug\n };\n}"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ComponentSpec, ComponentObject } from '@memberjunction/interactive-component-types';
|
|
2
|
+
import { ComponentCompiler } from '../compiler';
|
|
3
|
+
import { RuntimeContext } from '../types';
|
|
4
|
+
import { ComponentDependencyInfo, DependencyTree } from './registry-provider';
|
|
5
|
+
import { UserInfo } from '@memberjunction/core';
|
|
6
|
+
export declare class ComponentRegistryService {
|
|
7
|
+
private static instance;
|
|
8
|
+
private compiledComponentCache;
|
|
9
|
+
private componentReferences;
|
|
10
|
+
private compiler;
|
|
11
|
+
private runtimeContext;
|
|
12
|
+
private componentEngine;
|
|
13
|
+
private registryProviders;
|
|
14
|
+
private debug;
|
|
15
|
+
private constructor();
|
|
16
|
+
static getInstance(compiler: ComponentCompiler, context: RuntimeContext, debug?: boolean): ComponentRegistryService;
|
|
17
|
+
initialize(contextUser?: UserInfo): Promise<void>;
|
|
18
|
+
getCompiledComponent(componentId: string, referenceId?: string, contextUser?: UserInfo): Promise<ComponentObject>;
|
|
19
|
+
getComponentSpec(componentId: string, contextUser?: UserInfo): Promise<ComponentSpec>;
|
|
20
|
+
private fetchFromExternalRegistry;
|
|
21
|
+
private cacheExternalComponent;
|
|
22
|
+
loadDependencies(componentId: string, contextUser?: UserInfo): Promise<ComponentDependencyInfo[]>;
|
|
23
|
+
resolveDependencyTree(componentId: string, contextUser?: UserInfo, visited?: Set<string>): Promise<DependencyTree>;
|
|
24
|
+
getComponentsToLoad(rootComponentId: string, contextUser?: UserInfo): Promise<string[]>;
|
|
25
|
+
private addComponentReference;
|
|
26
|
+
removeComponentReference(componentKey: string, referenceId: string): void;
|
|
27
|
+
private considerCacheEviction;
|
|
28
|
+
private getRegistryApiKey;
|
|
29
|
+
getCacheStats(): {
|
|
30
|
+
compiledComponents: number;
|
|
31
|
+
totalUseCount: number;
|
|
32
|
+
memoryEstimate: string;
|
|
33
|
+
};
|
|
34
|
+
clearCache(): void;
|
|
35
|
+
private getComponentKey;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=component-registry-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-registry-service.d.ts","sourceRoot":"","sources":["../../src/registry/component-registry-service.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAGL,uBAAuB,EACvB,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAY,MAAM,sBAAsB,CAAC;AAuB1D,qBAAa,wBAAwB;IACnC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAyC;IAGhE,OAAO,CAAC,sBAAsB,CAA8C;IAC5E,OAAO,CAAC,mBAAmB,CAAkC;IAG7D,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAoC;IAC3D,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,KAAK,CAAkB;IAE/B,OAAO;IAaP,MAAM,CAAC,WAAW,CAChB,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,cAAc,EACvB,KAAK,GAAE,OAAe,GACrB,wBAAwB;IAUrB,UAAU,CAAC,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjD,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,EACpB,WAAW,CAAC,EAAE,QAAQ,GACrB,OAAO,CAAC,eAAe,CAAC;IA2FrB,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,QAAQ,GACrB,OAAO,CAAC,aAAa,CAAC;YAuDX,yBAAyB;YAkCzB,sBAAsB;IA0F9B,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,QAAQ,GACrB,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAkC/B,qBAAqB,CACzB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,QAAQ,EACtB,OAAO,cAAoB,GAC1B,OAAO,CAAC,cAAc,CAAC;IAmDpB,mBAAmB,CACvB,eAAe,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,QAAQ,GACrB,OAAO,CAAC,MAAM,EAAE,CAAC;IAqBpB,OAAO,CAAC,qBAAqB;IAU7B,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAezE,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,iBAAiB;IAWzB,aAAa,IAAI;QACf,kBAAkB,EAAE,MAAM,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;KACxB;IAgBD,UAAU,IAAI,IAAI;IAWlB,OAAO,CAAC,eAAe;CAUxB"}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ComponentRegistryService = void 0;
|
|
4
|
+
const core_1 = require("@memberjunction/core");
|
|
5
|
+
const core_entities_1 = require("@memberjunction/core-entities");
|
|
6
|
+
class ComponentRegistryService {
|
|
7
|
+
constructor(compiler, runtimeContext, debug = false) {
|
|
8
|
+
this.compiledComponentCache = new Map();
|
|
9
|
+
this.componentReferences = new Map();
|
|
10
|
+
this.componentEngine = core_entities_1.ComponentMetadataEngine.Instance;
|
|
11
|
+
this.registryProviders = new Map();
|
|
12
|
+
this.debug = false;
|
|
13
|
+
this.compiler = compiler;
|
|
14
|
+
this.runtimeContext = runtimeContext;
|
|
15
|
+
this.debug = debug;
|
|
16
|
+
}
|
|
17
|
+
static getInstance(compiler, context, debug = false) {
|
|
18
|
+
if (!ComponentRegistryService.instance) {
|
|
19
|
+
ComponentRegistryService.instance = new ComponentRegistryService(compiler, context, debug);
|
|
20
|
+
}
|
|
21
|
+
return ComponentRegistryService.instance;
|
|
22
|
+
}
|
|
23
|
+
async initialize(contextUser) {
|
|
24
|
+
await this.componentEngine.Config(false, contextUser);
|
|
25
|
+
}
|
|
26
|
+
async getCompiledComponent(componentId, referenceId, contextUser) {
|
|
27
|
+
await this.initialize(contextUser);
|
|
28
|
+
const component = this.componentEngine.Components.find((c) => c.ID === componentId);
|
|
29
|
+
if (!component) {
|
|
30
|
+
throw new Error(`Component not found: ${componentId}`);
|
|
31
|
+
}
|
|
32
|
+
const key = this.getComponentKey(component.Name, component.Namespace, component.Version, component.SourceRegistryID);
|
|
33
|
+
if (this.compiledComponentCache.has(key)) {
|
|
34
|
+
const cached = this.compiledComponentCache.get(key);
|
|
35
|
+
cached.lastUsed = new Date();
|
|
36
|
+
cached.useCount++;
|
|
37
|
+
if (referenceId) {
|
|
38
|
+
this.addComponentReference(key, referenceId);
|
|
39
|
+
}
|
|
40
|
+
if (this.debug) {
|
|
41
|
+
console.log(`โ
Reusing compiled component from cache: ${key} (use count: ${cached.useCount})`);
|
|
42
|
+
}
|
|
43
|
+
return cached.component;
|
|
44
|
+
}
|
|
45
|
+
if (this.debug) {
|
|
46
|
+
console.log(`๐ Loading and compiling component: ${key}`);
|
|
47
|
+
}
|
|
48
|
+
const spec = await this.getComponentSpec(componentId, contextUser);
|
|
49
|
+
const allLibraries = this.componentEngine.ComponentLibraries || [];
|
|
50
|
+
const compilationResult = await this.compiler.compile({
|
|
51
|
+
componentName: component.Name,
|
|
52
|
+
componentCode: spec.code,
|
|
53
|
+
libraries: spec.libraries,
|
|
54
|
+
allLibraries
|
|
55
|
+
});
|
|
56
|
+
if (!compilationResult.success) {
|
|
57
|
+
throw new Error(`Failed to compile component ${component.Name}: ${compilationResult.error}`);
|
|
58
|
+
}
|
|
59
|
+
const metadata = {
|
|
60
|
+
name: component.Name,
|
|
61
|
+
namespace: component.Namespace || '',
|
|
62
|
+
version: component.Version,
|
|
63
|
+
description: component.Description || '',
|
|
64
|
+
title: component.Title || undefined,
|
|
65
|
+
type: component.Type || undefined,
|
|
66
|
+
status: component.Status || undefined,
|
|
67
|
+
properties: spec.properties,
|
|
68
|
+
events: spec.events,
|
|
69
|
+
libraries: spec.libraries,
|
|
70
|
+
dependencies: spec.dependencies,
|
|
71
|
+
sourceRegistryID: component.SourceRegistryID,
|
|
72
|
+
isLocal: !component.SourceRegistryID
|
|
73
|
+
};
|
|
74
|
+
if (!compilationResult.component) {
|
|
75
|
+
throw new Error(`Component compilation succeeded but no component returned`);
|
|
76
|
+
}
|
|
77
|
+
const compiledComponent = compilationResult.component.factory(this.runtimeContext);
|
|
78
|
+
this.compiledComponentCache.set(key, {
|
|
79
|
+
component: compiledComponent,
|
|
80
|
+
metadata,
|
|
81
|
+
compiledAt: new Date(),
|
|
82
|
+
lastUsed: new Date(),
|
|
83
|
+
useCount: 1
|
|
84
|
+
});
|
|
85
|
+
if (referenceId) {
|
|
86
|
+
this.addComponentReference(key, referenceId);
|
|
87
|
+
}
|
|
88
|
+
return compiledComponent;
|
|
89
|
+
}
|
|
90
|
+
async getComponentSpec(componentId, contextUser) {
|
|
91
|
+
await this.initialize(contextUser);
|
|
92
|
+
const component = this.componentEngine.Components.find((c) => c.ID === componentId);
|
|
93
|
+
if (!component) {
|
|
94
|
+
throw new Error(`Component not found: ${componentId}`);
|
|
95
|
+
}
|
|
96
|
+
if (!component.SourceRegistryID) {
|
|
97
|
+
if (!component.Specification) {
|
|
98
|
+
throw new Error(`Local component ${component.Name} has no specification`);
|
|
99
|
+
}
|
|
100
|
+
return JSON.parse(component.Specification);
|
|
101
|
+
}
|
|
102
|
+
if (component.Specification && component.LastSyncedAt) {
|
|
103
|
+
if (this.debug) {
|
|
104
|
+
console.log(`Using cached external component: ${component.Name} (synced: ${component.LastSyncedAt})`);
|
|
105
|
+
}
|
|
106
|
+
return JSON.parse(component.Specification);
|
|
107
|
+
}
|
|
108
|
+
const registry = this.componentEngine.ComponentRegistries?.find(r => r.ID === component.SourceRegistryID);
|
|
109
|
+
if (!registry) {
|
|
110
|
+
throw new Error(`Registry not found: ${component.SourceRegistryID}`);
|
|
111
|
+
}
|
|
112
|
+
if (!registry) {
|
|
113
|
+
throw new Error(`Registry not found: ${component.SourceRegistryID}`);
|
|
114
|
+
}
|
|
115
|
+
const spec = await this.fetchFromExternalRegistry(registry.URI || '', component.Name, component.Namespace || '', component.Version, this.getRegistryApiKey(registry.ID));
|
|
116
|
+
await this.cacheExternalComponent(componentId, spec, contextUser);
|
|
117
|
+
return spec;
|
|
118
|
+
}
|
|
119
|
+
async fetchFromExternalRegistry(uri, name, namespace, version, apiKey) {
|
|
120
|
+
const url = `${uri}/components/${encodeURIComponent(namespace)}/${encodeURIComponent(name)}/${version}`;
|
|
121
|
+
const headers = {
|
|
122
|
+
'Accept': 'application/json'
|
|
123
|
+
};
|
|
124
|
+
if (apiKey) {
|
|
125
|
+
headers['Authorization'] = `Bearer ${apiKey}`;
|
|
126
|
+
}
|
|
127
|
+
if (this.debug) {
|
|
128
|
+
console.log(`Fetching from external registry: ${url}`);
|
|
129
|
+
}
|
|
130
|
+
const response = await fetch(url, { headers });
|
|
131
|
+
if (!response.ok) {
|
|
132
|
+
throw new Error(`Registry fetch failed: ${response.status} ${response.statusText}`);
|
|
133
|
+
}
|
|
134
|
+
const spec = await response.json();
|
|
135
|
+
return spec;
|
|
136
|
+
}
|
|
137
|
+
async cacheExternalComponent(componentId, spec, contextUser) {
|
|
138
|
+
const md = new core_1.Metadata();
|
|
139
|
+
const componentEntity = await md.GetEntityObject('MJ: Components', contextUser);
|
|
140
|
+
if (!await componentEntity.Load(componentId)) {
|
|
141
|
+
throw new Error(`Failed to load component entity: ${componentId}`);
|
|
142
|
+
}
|
|
143
|
+
componentEntity.Specification = JSON.stringify(spec);
|
|
144
|
+
componentEntity.LastSyncedAt = new Date();
|
|
145
|
+
if (!componentEntity.ReplicatedAt) {
|
|
146
|
+
componentEntity.ReplicatedAt = new Date();
|
|
147
|
+
}
|
|
148
|
+
if (spec.name) {
|
|
149
|
+
componentEntity.Name = spec.name;
|
|
150
|
+
}
|
|
151
|
+
if (spec.namespace) {
|
|
152
|
+
componentEntity.Namespace = spec.namespace;
|
|
153
|
+
}
|
|
154
|
+
if (spec.version) {
|
|
155
|
+
componentEntity.Version = spec.version;
|
|
156
|
+
}
|
|
157
|
+
if (spec.title) {
|
|
158
|
+
componentEntity.Title = spec.title;
|
|
159
|
+
}
|
|
160
|
+
if (spec.description) {
|
|
161
|
+
componentEntity.Description = spec.description;
|
|
162
|
+
}
|
|
163
|
+
if (spec.type) {
|
|
164
|
+
const typeMap = {
|
|
165
|
+
'report': 'Report',
|
|
166
|
+
'dashboard': 'Dashboard',
|
|
167
|
+
'form': 'Form',
|
|
168
|
+
'table': 'Table',
|
|
169
|
+
'chart': 'Chart',
|
|
170
|
+
'navigation': 'Navigation',
|
|
171
|
+
'search': 'Search',
|
|
172
|
+
'widget': 'Widget',
|
|
173
|
+
'utility': 'Utility',
|
|
174
|
+
'other': 'Other'
|
|
175
|
+
};
|
|
176
|
+
const mappedType = typeMap[spec.type.toLowerCase()];
|
|
177
|
+
if (mappedType) {
|
|
178
|
+
componentEntity.Type = mappedType;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
if (spec.functionalRequirements) {
|
|
182
|
+
componentEntity.FunctionalRequirements = spec.functionalRequirements;
|
|
183
|
+
}
|
|
184
|
+
if (spec.technicalDesign) {
|
|
185
|
+
componentEntity.TechnicalDesign = spec.technicalDesign;
|
|
186
|
+
}
|
|
187
|
+
const result = await componentEntity.Save();
|
|
188
|
+
if (!result) {
|
|
189
|
+
throw new Error(`Failed to save cached component: ${componentEntity.Name}\n${componentEntity.LatestResult.Message || componentEntity.LatestResult.Error || componentEntity.LatestResult.Errors?.join(',')}`);
|
|
190
|
+
}
|
|
191
|
+
if (this.debug) {
|
|
192
|
+
console.log(`Cached external component: ${componentEntity.Name} at ${componentEntity.LastSyncedAt}`);
|
|
193
|
+
}
|
|
194
|
+
await this.componentEngine.Config(true, contextUser);
|
|
195
|
+
}
|
|
196
|
+
async loadDependencies(componentId, contextUser) {
|
|
197
|
+
await this.initialize(contextUser);
|
|
198
|
+
const dependencies = this.componentEngine.ComponentDependencies?.filter(d => d.ComponentID === componentId) || [];
|
|
199
|
+
const result = [];
|
|
200
|
+
for (const dep of dependencies) {
|
|
201
|
+
const depComponent = this.componentEngine.Components.find((c) => c.ID === dep.DependencyComponentID);
|
|
202
|
+
if (depComponent) {
|
|
203
|
+
result.push({
|
|
204
|
+
name: depComponent.Name,
|
|
205
|
+
namespace: depComponent.Namespace || '',
|
|
206
|
+
version: depComponent.Version,
|
|
207
|
+
isRequired: true,
|
|
208
|
+
location: depComponent.SourceRegistryID ? 'registry' : 'embedded',
|
|
209
|
+
sourceRegistryID: depComponent.SourceRegistryID
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return result;
|
|
214
|
+
}
|
|
215
|
+
async resolveDependencyTree(componentId, contextUser, visited = new Set()) {
|
|
216
|
+
if (visited.has(componentId)) {
|
|
217
|
+
return {
|
|
218
|
+
componentId,
|
|
219
|
+
circular: true
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
visited.add(componentId);
|
|
223
|
+
await this.initialize(contextUser);
|
|
224
|
+
const component = this.componentEngine.Components.find((c) => c.ID === componentId);
|
|
225
|
+
if (!component) {
|
|
226
|
+
return { componentId, dependencies: [] };
|
|
227
|
+
}
|
|
228
|
+
const directDeps = await this.loadDependencies(componentId, contextUser);
|
|
229
|
+
const dependencies = [];
|
|
230
|
+
for (const dep of directDeps) {
|
|
231
|
+
const depComponent = this.componentEngine.Components.find(c => c.Name.trim().toLowerCase() === dep.name.trim().toLowerCase() &&
|
|
232
|
+
c.Namespace?.trim().toLowerCase() === dep.namespace?.trim().toLowerCase());
|
|
233
|
+
if (depComponent) {
|
|
234
|
+
const subTree = await this.resolveDependencyTree(depComponent.ID, contextUser, visited);
|
|
235
|
+
dependencies.push(subTree);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return {
|
|
239
|
+
componentId,
|
|
240
|
+
name: component.Name,
|
|
241
|
+
namespace: component.Namespace || undefined,
|
|
242
|
+
version: component.Version,
|
|
243
|
+
dependencies,
|
|
244
|
+
totalCount: dependencies.reduce((sum, d) => sum + (d.totalCount || 1), 1)
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
async getComponentsToLoad(rootComponentId, contextUser) {
|
|
248
|
+
const tree = await this.resolveDependencyTree(rootComponentId, contextUser);
|
|
249
|
+
const ordered = [];
|
|
250
|
+
const processNode = (node) => {
|
|
251
|
+
if (node.dependencies) {
|
|
252
|
+
node.dependencies.forEach(processNode);
|
|
253
|
+
}
|
|
254
|
+
if (!ordered.includes(node.componentId)) {
|
|
255
|
+
ordered.push(node.componentId);
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
processNode(tree);
|
|
259
|
+
return ordered;
|
|
260
|
+
}
|
|
261
|
+
addComponentReference(componentKey, referenceId) {
|
|
262
|
+
if (!this.componentReferences.has(componentKey)) {
|
|
263
|
+
this.componentReferences.set(componentKey, new Set());
|
|
264
|
+
}
|
|
265
|
+
this.componentReferences.get(componentKey).add(referenceId);
|
|
266
|
+
}
|
|
267
|
+
removeComponentReference(componentKey, referenceId) {
|
|
268
|
+
const refs = this.componentReferences.get(componentKey);
|
|
269
|
+
if (refs) {
|
|
270
|
+
refs.delete(referenceId);
|
|
271
|
+
if (refs.size === 0) {
|
|
272
|
+
this.considerCacheEviction(componentKey);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
considerCacheEviction(componentKey) {
|
|
277
|
+
const cached = this.compiledComponentCache.get(componentKey);
|
|
278
|
+
if (cached) {
|
|
279
|
+
const timeSinceLastUse = Date.now() - cached.lastUsed.getTime();
|
|
280
|
+
const evictionThreshold = 5 * 60 * 1000;
|
|
281
|
+
if (timeSinceLastUse > evictionThreshold) {
|
|
282
|
+
if (this.debug) {
|
|
283
|
+
console.log(`๐๏ธ Evicting unused component from cache: ${componentKey}`);
|
|
284
|
+
}
|
|
285
|
+
this.compiledComponentCache.delete(componentKey);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
getRegistryApiKey(registryId) {
|
|
290
|
+
const envKey = `REGISTRY_API_KEY_${registryId.replace(/-/g, '_').toUpperCase()}`;
|
|
291
|
+
return process.env[envKey];
|
|
292
|
+
}
|
|
293
|
+
getCacheStats() {
|
|
294
|
+
let totalUseCount = 0;
|
|
295
|
+
this.compiledComponentCache.forEach(cached => {
|
|
296
|
+
totalUseCount += cached.useCount;
|
|
297
|
+
});
|
|
298
|
+
return {
|
|
299
|
+
compiledComponents: this.compiledComponentCache.size,
|
|
300
|
+
totalUseCount,
|
|
301
|
+
memoryEstimate: `~${(this.compiledComponentCache.size * 50)}KB`
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
clearCache() {
|
|
305
|
+
if (this.debug) {
|
|
306
|
+
console.log('๐งน Clearing all component caches');
|
|
307
|
+
}
|
|
308
|
+
this.compiledComponentCache.clear();
|
|
309
|
+
this.componentReferences.clear();
|
|
310
|
+
}
|
|
311
|
+
getComponentKey(name, namespace, version, sourceRegistryId) {
|
|
312
|
+
const registryPart = sourceRegistryId || 'local';
|
|
313
|
+
const namespacePart = namespace || 'global';
|
|
314
|
+
return `${registryPart}/${namespacePart}/${name}@${version}`;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
exports.ComponentRegistryService = ComponentRegistryService;
|
|
318
|
+
ComponentRegistryService.instance = null;
|
|
319
|
+
//# sourceMappingURL=component-registry-service.js.map
|