@memberjunction/react-runtime 2.91.0 → 2.92.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 +7 -7
- package/CHANGELOG.md +16 -0
- package/dist/compiler/component-compiler.d.ts.map +1 -1
- package/dist/compiler/component-compiler.js +13 -8
- package/dist/compiler/component-compiler.js.map +1 -1
- package/dist/runtime/component-hierarchy.d.ts.map +1 -1
- package/dist/runtime/component-hierarchy.js +1 -0
- package/dist/runtime/component-hierarchy.js.map +1 -1
- package/dist/runtime.umd.js +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +5 -5
- package/src/compiler/component-compiler.ts +18 -8
- package/src/runtime/component-hierarchy.ts +1 -0
- package/src/types/index.ts +3 -0
- package/tsconfig.tsbuildinfo +1 -1
package/dist/types/index.d.ts
CHANGED
|
@@ -15,6 +15,10 @@ export interface CompileOptions {
|
|
|
15
15
|
babelPlugins?: string[];
|
|
16
16
|
babelPresets?: string[];
|
|
17
17
|
libraries?: ComponentLibraryDependency[];
|
|
18
|
+
dependencies?: Array<{
|
|
19
|
+
name: string;
|
|
20
|
+
code?: string;
|
|
21
|
+
}>;
|
|
18
22
|
allLibraries: ComponentLibraryEntity[];
|
|
19
23
|
}
|
|
20
24
|
export interface RegistryEntry {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAK1G,MAAM,WAAW,iBAAiB;IAEhC,SAAS,EAAE,GAAG,CAAC;IAEf,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,EAAE,MAAM,CAAC;IAEb,UAAU,EAAE,IAAI,CAAC;IAEjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAKD,MAAM,WAAW,cAAc;IAE7B,aAAa,EAAE,MAAM,CAAC;IAEtB,aAAa,EAAE,MAAM,CAAC;IAEtB,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAGxB,SAAS,CAAC,EAAE,0BAA0B,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA0OA,mDAAiC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/react-runtime",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.92.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",
|
|
@@ -28,10 +28,10 @@
|
|
|
28
28
|
},
|
|
29
29
|
"homepage": "https://github.com/MemberJunction/MJ#readme",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@memberjunction/core": "2.
|
|
32
|
-
"@memberjunction/global": "2.
|
|
33
|
-
"@memberjunction/interactive-component-types": "2.
|
|
34
|
-
"@memberjunction/core-entities": "2.
|
|
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",
|
|
35
35
|
"@babel/standalone": "^7.23.5",
|
|
36
36
|
"rxjs": "^7.8.1"
|
|
37
37
|
},
|
|
@@ -144,7 +144,7 @@ export class ComponentCompiler {
|
|
|
144
144
|
throw new Error('Babel instance not set. Call setBabelInstance() first.');
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
const wrappedCode = this.wrapComponentCode(code, componentName, options.libraries);
|
|
147
|
+
const wrappedCode = this.wrapComponentCode(code, componentName, options.libraries, options.dependencies);
|
|
148
148
|
|
|
149
149
|
try {
|
|
150
150
|
const result = this.babelInstance.transform(wrappedCode, {
|
|
@@ -166,9 +166,10 @@ export class ComponentCompiler {
|
|
|
166
166
|
* @param componentCode - Raw component code
|
|
167
167
|
* @param componentName - Name of the component
|
|
168
168
|
* @param libraries - Optional library dependencies
|
|
169
|
+
* @param dependencies - Optional child component dependencies
|
|
169
170
|
* @returns Wrapped component code
|
|
170
171
|
*/
|
|
171
|
-
private wrapComponentCode(componentCode: string, componentName: string, libraries?: any[]): string {
|
|
172
|
+
private wrapComponentCode(componentCode: string, componentName: string, libraries?: any[], dependencies?: Array<{ name: string }>): string {
|
|
172
173
|
// Generate library declarations if libraries are provided
|
|
173
174
|
const libraryDeclarations = libraries && libraries.length > 0
|
|
174
175
|
? libraries
|
|
@@ -176,14 +177,21 @@ export class ComponentCompiler {
|
|
|
176
177
|
.map(lib => `const ${lib.globalVariable} = libraries['${lib.globalVariable}'];`)
|
|
177
178
|
.join('\n ')
|
|
178
179
|
: '';
|
|
180
|
+
|
|
181
|
+
// Generate component declarations if dependencies are provided
|
|
182
|
+
const componentDeclarations = dependencies && dependencies.length > 0
|
|
183
|
+
? dependencies
|
|
184
|
+
.map(dep => `const ${dep.name} = components['${dep.name}'];`)
|
|
185
|
+
.join('\n ')
|
|
186
|
+
: '';
|
|
179
187
|
|
|
180
188
|
return `
|
|
181
189
|
function createComponent(
|
|
182
190
|
React, ReactDOM,
|
|
183
191
|
useState, useEffect, useCallback, useMemo, useRef, useContext, useReducer, useLayoutEffect,
|
|
184
|
-
libraries, styles, console
|
|
192
|
+
libraries, styles, console, components
|
|
185
193
|
) {
|
|
186
|
-
${libraryDeclarations ? libraryDeclarations + '\n ' : ''}${componentCode}
|
|
194
|
+
${libraryDeclarations ? libraryDeclarations + '\n ' : ''}${componentDeclarations ? componentDeclarations + '\n ' : ''}${componentCode}
|
|
187
195
|
|
|
188
196
|
// Ensure the component exists
|
|
189
197
|
if (typeof ${componentName} === 'undefined') {
|
|
@@ -424,12 +432,12 @@ export class ComponentCompiler {
|
|
|
424
432
|
const factoryCreator = new Function(
|
|
425
433
|
'React', 'ReactDOM',
|
|
426
434
|
'useState', 'useEffect', 'useCallback', 'useMemo', 'useRef', 'useContext', 'useReducer', 'useLayoutEffect',
|
|
427
|
-
'libraries', 'styles', 'console',
|
|
435
|
+
'libraries', 'styles', 'console', 'components',
|
|
428
436
|
`${transpiledCode}; return createComponent;`
|
|
429
437
|
);
|
|
430
438
|
|
|
431
439
|
// Return a function that executes the factory with runtime context
|
|
432
|
-
return (context: RuntimeContext, styles: any = {}) => {
|
|
440
|
+
return (context: RuntimeContext, styles: any = {}, components: Record<string, any> = {}) => {
|
|
433
441
|
const { React, ReactDOM, libraries = {} } = context;
|
|
434
442
|
|
|
435
443
|
// Merge loaded libraries with context libraries
|
|
@@ -452,7 +460,8 @@ export class ComponentCompiler {
|
|
|
452
460
|
React.useLayoutEffect,
|
|
453
461
|
mergedLibraries,
|
|
454
462
|
styles,
|
|
455
|
-
console
|
|
463
|
+
console,
|
|
464
|
+
components
|
|
456
465
|
);
|
|
457
466
|
|
|
458
467
|
// Call createComponent to get the actual component
|
|
@@ -469,7 +478,8 @@ export class ComponentCompiler {
|
|
|
469
478
|
React.useLayoutEffect,
|
|
470
479
|
mergedLibraries,
|
|
471
480
|
styles,
|
|
472
|
-
console
|
|
481
|
+
console,
|
|
482
|
+
components
|
|
473
483
|
);
|
|
474
484
|
|
|
475
485
|
// Return the component directly
|
|
@@ -175,6 +175,7 @@ export class ComponentHierarchyRegistrar {
|
|
|
175
175
|
componentCode: spec.code,
|
|
176
176
|
styles,
|
|
177
177
|
libraries: spec.libraries, // Pass along library dependencies from the spec
|
|
178
|
+
dependencies: spec.dependencies, // Pass along child component dependencies
|
|
178
179
|
allLibraries: options.allLibraries
|
|
179
180
|
};
|
|
180
181
|
|
package/src/types/index.ts
CHANGED
|
@@ -43,6 +43,9 @@ export interface CompileOptions {
|
|
|
43
43
|
|
|
44
44
|
/** Library dependencies that the component requires */
|
|
45
45
|
libraries?: ComponentLibraryDependency[];
|
|
46
|
+
|
|
47
|
+
/** Child component dependencies that the component requires */
|
|
48
|
+
dependencies?: Array<{ name: string; code?: string }>;
|
|
46
49
|
|
|
47
50
|
/**
|
|
48
51
|
* Required, metadata for all possible libraries allowed by the system
|