@common-stack/components-pro 7.0.4-alpha.28 → 7.1.1-alpha.14
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/lib/plugin/context.d.ts +2 -1
- package/lib/plugin/context.js.map +1 -1
- package/lib/plugin/loader.d.ts +1 -1
- package/lib/plugin/loader.js.map +1 -1
- package/lib/plugin/plugin-render.d.ts +8 -1
- package/lib/plugin/plugin-render.js +8 -6
- package/lib/plugin/plugin-render.js.map +1 -1
- package/lib/plugin/provider.js +3 -2
- package/lib/plugin/provider.js.map +1 -1
- package/lib/slot-fill/__tests__/filler-slot.test.d.ts +1 -1
- package/lib/slot-fill/__tests__/slot-features.test.d.ts +1 -1
- package/lib/slot-fill/__tests__/slot-fill-provider.test.d.ts +1 -0
- package/lib/slot-fill/base/context.js +2 -1
- package/lib/slot-fill/base/context.js.map +1 -1
- package/lib/slot-fill/base/provider.js.map +1 -1
- package/lib/slot-fill/base/slot.js +74 -51
- package/lib/slot-fill/base/slot.js.map +1 -1
- package/lib/slot-fill/interfaces/index.d.ts +6 -0
- package/lib/slot-fill/utils/isEmptyElement.d.ts +1 -1
- package/lib/slot-fill/utils/isEmptyElement.js +18 -0
- package/lib/slot-fill/utils/isEmptyElement.js.map +1 -0
- package/package.json +5 -5
- package/lib/index.server.d.ts +0 -1
- package/lib/index.server.js +0 -1
- package/lib/index.server.js.map +0 -1
- package/lib/plugin/middleware.d.ts +0 -3
- package/lib/plugin/middleware.js +0 -19
- package/lib/plugin/middleware.js.map +0 -1
package/lib/plugin/context.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { ILoadedPlugin } from '../slot-fill/interfaces';
|
|
2
3
|
export interface IFillRenderContext {
|
|
3
|
-
loadedPlugins:
|
|
4
|
+
loadedPlugins: ILoadedPlugin[];
|
|
4
5
|
}
|
|
5
6
|
declare const FillRenderContext: React.Context<IFillRenderContext>;
|
|
6
7
|
export default FillRenderContext;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sources":["../../src/plugin/context.tsx"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../src/plugin/context.tsx"],"sourcesContent":[null],"names":[],"mappings":"4BAOM,MAAA,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAA4B,IAAI"}
|
package/lib/plugin/loader.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IAppLoadContext, IResourceParams } from
|
|
1
|
+
import { IAppLoadContext, IResourceParams } from '@common-stack/client-core';
|
|
2
2
|
export declare function PluginsLoader(plugins: any[], loaderContext: {
|
|
3
3
|
request: Request;
|
|
4
4
|
context: IAppLoadContext;
|
package/lib/plugin/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sources":["../../src/plugin/loader.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEO,eAAe,aAAa,
|
|
1
|
+
{"version":3,"file":"loader.js","sources":["../../src/plugin/loader.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEO,eAAe,aAAa,CAC/B,OAAc,EACd,aAAsF,EAAA;AAEtF,IAAA,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,OAAO,CAAC,GAAG,CAAC,OAAO,MAAW,KAAI;AAC9B,QAAA,IAAI;AACA,YAAA,IAAI,MAAM,CAAC,cAAc,EAAE;AACvB,gBAAA,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;AAC7C,gBAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC;;;;;gBAMzC,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;aACtD;SACJ;QAAC,OAAO,KAAK,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;SAClD;AACD,QAAA,OAAO,MAAM,CAAC;KACjB,CAAC,CACL,CAAC;AACF,IAAA,OAAO,aAAa,CAAC;AACzB"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { ILoadedPlugin, Name } from '../slot-fill/interfaces';
|
|
3
|
+
interface IPluginRenderProps {
|
|
4
|
+
fills: ILoadedPlugin[];
|
|
5
|
+
name: Name;
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
}
|
|
2
8
|
export declare const ChildrenRender: ({ children, ...props }: {
|
|
3
9
|
[x: string]: any;
|
|
4
10
|
children: any;
|
|
5
11
|
}) => React.JSX.Element;
|
|
6
|
-
export declare const PluginRender: (props:
|
|
12
|
+
export declare const PluginRender: (props: IPluginRenderProps) => React.JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -3,13 +3,12 @@ import React__default,{useContext}from'react';import {DynamicRender}from'./dynam
|
|
|
3
3
|
};
|
|
4
4
|
const PluginRender = (props) => {
|
|
5
5
|
const context = useContext(FillRenderContext);
|
|
6
|
-
if (!context) {
|
|
6
|
+
if (!context?.loadedPlugins) {
|
|
7
7
|
throw new Error('PluginRender must be used within a FillRenderContext.Provider');
|
|
8
8
|
}
|
|
9
|
-
const { loadedPlugins } = context;
|
|
10
9
|
const FillRender = ({ fill, ...props }) => {
|
|
11
|
-
const plugin = loadedPlugins.find((plugin) => plugin.index === fill.index);
|
|
12
|
-
const loaderData = plugin
|
|
10
|
+
const plugin = context.loadedPlugins.find((plugin) => plugin.index === fill.index);
|
|
11
|
+
const loaderData = plugin?.loaderData || {};
|
|
13
12
|
if (plugin?.Component) {
|
|
14
13
|
return React__default.createElement(plugin.Component, { ...props, loaderData: loaderData });
|
|
15
14
|
}
|
|
@@ -19,8 +18,11 @@ const PluginRender = (props) => {
|
|
|
19
18
|
else if (plugin?.render) {
|
|
20
19
|
let children = null;
|
|
21
20
|
try {
|
|
22
|
-
const FillComponent = plugin.render();
|
|
23
|
-
|
|
21
|
+
const FillComponent = plugin.render(props);
|
|
22
|
+
if (React__default.isValidElement(FillComponent)) {
|
|
23
|
+
const element = FillComponent;
|
|
24
|
+
children = element.props?.children;
|
|
25
|
+
}
|
|
24
26
|
}
|
|
25
27
|
catch (error) {
|
|
26
28
|
console.error('Error in PluginRender', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-render.js","sources":["../../src/plugin/plugin-render.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"+
|
|
1
|
+
{"version":3,"file":"plugin-render.js","sources":["../../src/plugin/plugin-render.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
|
package/lib/plugin/provider.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React__default from'react';import {useLoaderData}from'@remix-run/react';import FillRenderContext from'./context.js';const FillRenderProvider = ({ children }) => {
|
|
2
|
-
const
|
|
3
|
-
|
|
2
|
+
const loaderData = useLoaderData();
|
|
3
|
+
const loadedPlugins = loaderData?.loadedPlugins || [];
|
|
4
|
+
return React__default.createElement(FillRenderContext.Provider, { value: { loadedPlugins } }, children);
|
|
4
5
|
};export{FillRenderProvider as default};//# sourceMappingURL=provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sources":["../../src/plugin/provider.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"2HAQA,MAAM,kBAAkB,GAAsC,CAAC,EAAE,QAAQ,EAAE,KAAI;AAC3E,IAAA,MAAM,
|
|
1
|
+
{"version":3,"file":"provider.js","sources":["../../src/plugin/provider.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"2HAQA,MAAM,kBAAkB,GAAsC,CAAC,EAAE,QAAQ,EAAE,KAAI;AAC3E,IAAA,MAAM,UAAU,GAAQ,aAAa,EAAE,CAAC;AACxC,IAAA,MAAM,aAAa,GAAG,UAAU,EAAE,aAAa,IAAI,EAAE,CAAC;AAEtD,IAAA,OAAOA,cAAC,CAAA,aAAA,CAAA,iBAAiB,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,EAAE,aAAa,EAAE,EAAG,EAAA,QAAQ,CAA8B,CAAC;AACzG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import 'jest';
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import 'jest';
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import*as React from'react';const SlotFillContext = React.createContext({
|
|
2
|
+
// need to add default value otherwise it will fail
|
|
2
3
|
registerSlot: () => { },
|
|
3
4
|
unregisterSlot: () => { },
|
|
4
5
|
registerFill: () => { },
|
|
5
6
|
unregisterFill: () => { },
|
|
6
7
|
getSlot: () => ({}),
|
|
7
|
-
getFills: () =>
|
|
8
|
+
getFills: () => [],
|
|
8
9
|
hasFills: () => false,
|
|
9
10
|
subscribe: () => { },
|
|
10
11
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sources":["../../../src/slot-fill/base/context.tsx"],"sourcesContent":[null],"names":[],"mappings":"4BAGA,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAkB
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../../src/slot-fill/base/context.tsx"],"sourcesContent":[null],"names":[],"mappings":"4BAGA,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAkB;;AAEzD,IAAA,YAAY,EAAE,MAAK,GAAG;AACtB,IAAA,cAAc,EAAE,MAAK,GAAG;AACxB,IAAA,YAAY,EAAE,MAAK,GAAG;AACtB,IAAA,cAAc,EAAE,MAAK,GAAG;AACxB,IAAA,OAAO,EAAE,OAAO,EAAE,CAAQ;AAC1B,IAAA,QAAQ,EAAE,MAAM,EAAE;AAClB,IAAA,QAAQ,EAAE,MAAM,KAAK;AACrB,IAAA,SAAS,EAAE,MAAK,GAAG;AACtB,CAAA,EAAE;AACH,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sources":["../../../src/slot-fill/base/provider.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"yHAUM,MAAA,gBAAgB,GAAoC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAI;AAChF,IAAA,MAAM,KAAK,GAAG,MAAM,CAA2B,EAAE,CAAC,CAAC;AACnD,IAAA,MAAM,KAAK,GAAG,MAAM,CAA6B,EAAE,CAAC,CAAC;AACrD,IAAA,MAAM,SAAS,GAAG,MAAM,CAAiB,EAAE,CAAC,CAAC;AAC7C,IAAA,MAAM,WAAW,GAAG,MAAM,CAAM,OAAO,CAAC,CAAC;AAEzC,IAAA,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,IAAY,KAAI;QACjD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;YAChD,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;KACJ,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAK;AACtC,QAAA,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC,CAAC;KACvD,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"provider.js","sources":["../../../src/slot-fill/base/provider.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
|
|
@@ -1,62 +1,85 @@
|
|
|
1
|
-
import React__default,{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import React__default,{Component,Children,cloneElement}from'react';import {Consumer}from'./context.js';import {isFunction}from'../utils/index.js';import {PluginRender}from'../../plugin/plugin-render.js';import {isEmptyElement}from'../utils/isEmptyElement.js';class SlotComponent extends Component {
|
|
2
|
+
node;
|
|
3
|
+
isUnmounted;
|
|
4
|
+
constructor(props) {
|
|
5
|
+
super(props);
|
|
6
|
+
this.isUnmounted = false;
|
|
7
|
+
this.bindNode = this.bindNode.bind(this);
|
|
8
|
+
}
|
|
9
|
+
componentDidMount() {
|
|
10
|
+
const { registerSlot, serverMode } = this.props;
|
|
7
11
|
if (!serverMode) {
|
|
8
|
-
registerSlot(name,
|
|
12
|
+
registerSlot(this.props.name, this);
|
|
9
13
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
}
|
|
15
|
+
componentWillUnmount() {
|
|
16
|
+
const { unregisterSlot } = this.props;
|
|
17
|
+
this.isUnmounted = true;
|
|
18
|
+
unregisterSlot(this.props.name, this);
|
|
19
|
+
}
|
|
20
|
+
componentDidUpdate(prevProps) {
|
|
21
|
+
this.props;
|
|
22
|
+
// Commented following as we need the Slot to render at multiple places
|
|
23
|
+
// if (prevProps.name !== name) {
|
|
24
|
+
// unregisterSlot(prevProps.name);
|
|
25
|
+
// registerSlot(name, this);
|
|
26
|
+
// }
|
|
27
|
+
}
|
|
28
|
+
bindNode(node) {
|
|
29
|
+
this.node = node;
|
|
30
|
+
}
|
|
31
|
+
forceUpdate() {
|
|
32
|
+
if (this.isUnmounted) {
|
|
17
33
|
return;
|
|
18
34
|
}
|
|
19
|
-
if (!serverMode) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
35
|
+
if (!this.props.serverMode) {
|
|
36
|
+
super.forceUpdate();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
render() {
|
|
40
|
+
const { children, name, fillProps = {}, getFills, serverMode } = this.props;
|
|
41
|
+
const fills = getFills(name).filter((element) => !isEmptyElement(element));
|
|
42
|
+
if (fills.length > 0) {
|
|
43
|
+
if (isFunction(children)) {
|
|
44
|
+
const childrenFills = fills.map((fill) => {
|
|
45
|
+
const fillChildren = isFunction(fill.children)
|
|
46
|
+
? fill.children(fillProps)
|
|
47
|
+
: fill.children;
|
|
48
|
+
return Children.map(fillChildren, (child, childIndex) => {
|
|
49
|
+
if (!child || typeof child === 'string') {
|
|
50
|
+
return child;
|
|
51
|
+
}
|
|
52
|
+
const childKey = child.key || childIndex;
|
|
53
|
+
return cloneElement(child, { key: childKey });
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
return React__default.createElement(React__default.Fragment, null, children(childrenFills));
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
return React__default.createElement(PluginRender, { ...fillProps, name: name, fills: fills });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/*
|
|
63
|
+
if (serverMode) {
|
|
64
|
+
const fills = (getFills(name, this) ?? [])
|
|
65
|
+
.map((fill: any, i) => {
|
|
66
|
+
// unregisterFill(name, fill);
|
|
67
|
+
if (typeof fill === 'function') {
|
|
68
|
+
const child = fill({...fillProps, key: i});
|
|
69
|
+
return <div data-slot-name={`slot-${name}`}>{child}</div>;
|
|
70
|
+
}
|
|
71
|
+
return null;
|
|
72
|
+
});
|
|
73
|
+
return fills;
|
|
23
74
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
// .map((fill: any, i) => {
|
|
27
|
-
// if (serverMode) {
|
|
28
|
-
// if (typeof fill === 'function') {
|
|
29
|
-
// const child = fill({...fillProps, key: i});
|
|
30
|
-
// return <div data-slot-name={`slot-${name}`}>{child}</div>;
|
|
31
|
-
// }
|
|
32
|
-
// return null;
|
|
33
|
-
// } else {
|
|
34
|
-
// const fillChildren: ReactElement = isFunction(fill.children) ? fill.children(fillProps) : fill.children;
|
|
35
|
-
// return Children.map(fillChildren, (child, childIndex) => {
|
|
36
|
-
// if (!child || typeof child === 'string') {
|
|
37
|
-
// return child;
|
|
38
|
-
// }
|
|
39
|
-
// const childKey = child.key || childIndex;
|
|
40
|
-
// return cloneElement(child, { key: childKey });
|
|
41
|
-
// });
|
|
42
|
-
// }
|
|
43
|
-
// })
|
|
44
|
-
// .filter(
|
|
45
|
-
// // In some cases fills are rendered only when some conditions apply.
|
|
46
|
-
// // This ensures that we only use non-empty fills when rendering, i.e.,
|
|
47
|
-
// // it allows us to render wrappers only when the fills are actually present.
|
|
48
|
-
// (element) => !isEmptyElement(element),
|
|
49
|
-
// );
|
|
50
|
-
const fills = getFills(name);
|
|
51
|
-
if (fills.length > 0) {
|
|
52
|
-
return React__default.createElement(PluginRender, { ...fillProps, name: name, fills: fills });
|
|
75
|
+
*/
|
|
76
|
+
return null;
|
|
53
77
|
}
|
|
54
|
-
|
|
55
|
-
};
|
|
78
|
+
}
|
|
56
79
|
const Slot = (props) => {
|
|
57
|
-
const serverMode =
|
|
80
|
+
const serverMode = typeof window === 'undefined';
|
|
58
81
|
return (React__default.createElement(Consumer, null, ({ registerSlot, unregisterSlot, getFills }) => (React__default.createElement(SlotComponent, { ...props,
|
|
59
|
-
// We need to add id to fillProps with slot name,
|
|
82
|
+
// We need to add id to fillProps with slot name,
|
|
60
83
|
// so that we can use it when remove the component during hydration.
|
|
61
84
|
getFills: getFills, registerSlot: registerSlot, unregisterSlot: unregisterSlot, serverMode: serverMode }))));
|
|
62
85
|
};export{Slot as default};//# sourceMappingURL=slot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slot.js","sources":["../../../src/slot-fill/base/slot.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"
|
|
1
|
+
{"version":3,"file":"slot.js","sources":["../../../src/slot-fill/base/slot.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ReactNode, Component } from 'react';
|
|
2
|
+
import { IPlugin } from '@common-stack/client-core';
|
|
2
3
|
export type Name = string | Symbol;
|
|
3
4
|
export interface IFillProps {
|
|
4
5
|
name: Name;
|
|
@@ -82,3 +83,8 @@ export interface ISlotProps {
|
|
|
82
83
|
*/
|
|
83
84
|
serverMode?: boolean;
|
|
84
85
|
}
|
|
86
|
+
export interface ILoadedPlugin extends IPlugin {
|
|
87
|
+
index?: number;
|
|
88
|
+
Component?: React.ComponentType<any>;
|
|
89
|
+
loaderData?: Record<string, any>;
|
|
90
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if the provided element to check.
|
|
3
|
+
*
|
|
4
|
+
* @param element React Component to check.
|
|
5
|
+
* @returns True when an element is considered empty.
|
|
6
|
+
*/
|
|
7
|
+
const isEmptyElement = (element) => {
|
|
8
|
+
if (typeof element === 'number') {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
if (typeof element?.valueOf() === 'string' || Array.isArray(element)) {
|
|
12
|
+
return !element.length;
|
|
13
|
+
}
|
|
14
|
+
if (typeof element === 'object' && element !== null) {
|
|
15
|
+
return Object.keys(element).length === 0 || Object.values(element).every((value) => isEmptyElement(value));
|
|
16
|
+
}
|
|
17
|
+
return !element;
|
|
18
|
+
};export{isEmptyElement};//# sourceMappingURL=isEmptyElement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isEmptyElement.js","sources":["../../../src/slot-fill/utils/isEmptyElement.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;;AAKG;AAEU,MAAA,cAAc,GAAG,CAAC,OAAO,KAAI;AACtC,IAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC7B,QAAA,OAAO,KAAK,CAAC;KAChB;AAED,IAAA,IAAI,OAAO,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;AAClE,QAAA,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;KAC1B;IAED,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE;AACjD,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;KAC9G;IAED,OAAO,CAAC,OAAO,CAAC;AACpB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@common-stack/components-pro",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.1.1-alpha.14",
|
|
4
4
|
"description": "browser plugin for git",
|
|
5
5
|
"homepage": "https://github.com/cdmbase/fullstack-pro#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
"build:lib:watch": "npm run build:lib -- --watch",
|
|
25
25
|
"jest": "./node_modules/.bin/jest",
|
|
26
26
|
"prepublish": "npm run build",
|
|
27
|
-
"test": "
|
|
27
|
+
"test": "vitest",
|
|
28
28
|
"test:debug": "npm test -- --runInBand",
|
|
29
29
|
"test:watch": "npm test -- --watch",
|
|
30
30
|
"watch": "npm run build:lib:watch"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@common-stack/client-core": "7.
|
|
33
|
+
"@common-stack/client-core": "7.1.1-alpha.14",
|
|
34
34
|
"@wordpress/element": "^5.30.0",
|
|
35
35
|
"@wordpress/hooks": "^3.53.0",
|
|
36
36
|
"@wordpress/is-shallow-equal": "^4.53.0",
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
"publishConfig": {
|
|
51
51
|
"access": "public"
|
|
52
52
|
},
|
|
53
|
+
"gitHead": "7786ecfaab0098f0bbd2f0ee6979ae1cb2da89e1",
|
|
53
54
|
"typescript": {
|
|
54
55
|
"definition": "lib/index.d.ts"
|
|
55
|
-
}
|
|
56
|
-
"gitHead": "cd5e2a90eada6a941cead717336f4184cf432b01"
|
|
56
|
+
}
|
|
57
57
|
}
|
package/lib/index.server.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './plugin/middleware';
|
package/lib/index.server.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{middleware}from'./plugin/middleware.js';//# sourceMappingURL=index.server.js.map
|
package/lib/index.server.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.server.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/lib/plugin/middleware.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
const middleware = async ({ context }, dataLoader, next) => {
|
|
2
|
-
const { modules } = context;
|
|
3
|
-
try {
|
|
4
|
-
const plugins = modules.getComponentFillPlugins();
|
|
5
|
-
const loadedPlugins = await Promise.all(plugins.map(async (plugin) => {
|
|
6
|
-
if (plugin.renderImporter) {
|
|
7
|
-
const module = await plugin.renderImporter();
|
|
8
|
-
const ImportedComponent = module.default;
|
|
9
|
-
return { ...plugin, Component: ImportedComponent };
|
|
10
|
-
}
|
|
11
|
-
return plugin;
|
|
12
|
-
}));
|
|
13
|
-
dataLoader.loadedPlugins = loadedPlugins;
|
|
14
|
-
}
|
|
15
|
-
catch (error) {
|
|
16
|
-
console.error(error, 'Error with plugin middleware');
|
|
17
|
-
}
|
|
18
|
-
await next();
|
|
19
|
-
};export{middleware};//# sourceMappingURL=middleware.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.js","sources":["../../src/plugin/middleware.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEO,MAAM,UAAU,GAAG,OAAO,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,KAAI;AAC9D,IAAA,MAAM,EAAE,OAAO,EAAE,GAAG,OAA0B,CAAC;AAE/C,IAAA,IAAI;AACA,QAAA,MAAM,OAAO,GAAI,OAAe,CAAC,uBAAuB,EAAE,CAAC;AAC3D,QAAA,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,OAAO,CAAC,GAAG,CAAC,OAAO,MAAW,KAAI;AAC9B,YAAA,IAAI,MAAM,CAAC,cAAc,EAAE;AACvB,gBAAA,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;AAC7C,gBAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC;gBACzC,OAAO,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;aACtD;AACD,YAAA,OAAO,MAAM,CAAC;SACjB,CAAC,CACL,CAAC;AACF,QAAA,UAAU,CAAC,aAAa,GAAG,aAAa,CAAC;KAC5C;IAAC,OAAO,KAAK,EAAE;AACZ,QAAA,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC;KACxD;IACD,MAAM,IAAI,EAAE,CAAC;AACjB"}
|