@alauda-fe/plugin-sdk 0.0.1
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/esm2022/alauda-fe-plugin-sdk.mjs +5 -0
- package/esm2022/index.mjs +7 -0
- package/esm2022/lib/app-extensions.mjs +18 -0
- package/esm2022/lib/components/index.mjs +2 -0
- package/esm2022/lib/components/remote-component-outlet/component.mjs +47 -0
- package/esm2022/lib/extensions-loader.mjs +51 -0
- package/esm2022/lib/navigation.mjs +103 -0
- package/esm2022/lib/route.mjs +18 -0
- package/esm2022/lib/utils.mjs +34 -0
- package/index.d.ts +6 -0
- package/lib/app-extensions.d.ts +3 -0
- package/lib/components/index.d.ts +1 -0
- package/lib/components/remote-component-outlet/component.d.ts +15 -0
- package/lib/extensions-loader.d.ts +18 -0
- package/lib/navigation.d.ts +14 -0
- package/lib/route.d.ts +9 -0
- package/lib/utils.d.ts +4 -0
- package/package.json +29 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxhdWRhLWZlLXBsdWdpbi1zZGsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3BsdWdpbi1zZGsvc3JjL2FsYXVkYS1mZS1wbHVnaW4tc2RrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './lib/app-extensions';
|
|
2
|
+
export * from './lib/components';
|
|
3
|
+
export * from './lib/extensions-loader';
|
|
4
|
+
export * from './lib/navigation';
|
|
5
|
+
export * from './lib/route';
|
|
6
|
+
export * from './lib/utils';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3BsdWdpbi1zZGsvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9hcHAtZXh0ZW5zaW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2V4dGVuc2lvbnMtbG9hZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25hdmlnYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcm91dGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbHMnO1xuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { loadExtensions } from './extensions-loader';
|
|
2
|
+
let extensions;
|
|
3
|
+
export function getAppExtensions(type, cluster) {
|
|
4
|
+
if (!extensions) {
|
|
5
|
+
throw new Error('Extensions not loaded');
|
|
6
|
+
}
|
|
7
|
+
return extensions.filter(ext => {
|
|
8
|
+
if (ext.cluster && cluster && ext.cluster !== cluster) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
return ext.type === type;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
export async function setupAppExtensions() {
|
|
15
|
+
extensions = await loadExtensions({ types: ['service'] });
|
|
16
|
+
return extensions;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWV4dGVuc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsdWdpbi1zZGsvc3JjL2xpYi9hcHAtZXh0ZW5zaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWEsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEUsSUFBSSxVQUF1QixDQUFDO0FBRTVCLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsT0FBZ0I7SUFDN0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQzdCLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxPQUFPLElBQUksR0FBRyxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN0RCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCO0lBQ3RDLFVBQVUsR0FBRyxNQUFNLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUUxRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXh0ZW5zaW9uLCBsb2FkRXh0ZW5zaW9ucyB9IGZyb20gJy4vZXh0ZW5zaW9ucy1sb2FkZXInO1xuXG5sZXQgZXh0ZW5zaW9uczogRXh0ZW5zaW9uW107XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcHBFeHRlbnNpb25zKHR5cGU6IHN0cmluZywgY2x1c3Rlcj86IHN0cmluZykge1xuICBpZiAoIWV4dGVuc2lvbnMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4dGVuc2lvbnMgbm90IGxvYWRlZCcpO1xuICB9XG4gIHJldHVybiBleHRlbnNpb25zLmZpbHRlcihleHQgPT4ge1xuICAgIGlmIChleHQuY2x1c3RlciAmJiBjbHVzdGVyICYmIGV4dC5jbHVzdGVyICE9PSBjbHVzdGVyKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV4dC50eXBlID09PSB0eXBlO1xuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNldHVwQXBwRXh0ZW5zaW9ucygpIHtcbiAgZXh0ZW5zaW9ucyA9IGF3YWl0IGxvYWRFeHRlbnNpb25zKHsgdHlwZXM6IFsnc2VydmljZSddIH0pO1xuXG4gIHJldHVybiBleHRlbnNpb25zO1xufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './remote-component-outlet/component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsdWdpbi1zZGsvc3JjL2xpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3JlbW90ZS1jb21wb25lbnQtb3V0bGV0L2NvbXBvbmVudCc7XG4iXX0=
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { NgComponentOutlet } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, computed, effect, input, signal, } from '@angular/core';
|
|
3
|
+
import { loadRemote } from '../../utils';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
const _c0 = ["*"];
|
|
6
|
+
function RemoteComponentOutletComponent_Conditional_0_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
7
|
+
i0.ɵɵelementContainer(0);
|
|
8
|
+
} }
|
|
9
|
+
function RemoteComponentOutletComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
|
|
10
|
+
i0.ɵɵtemplate(0, RemoteComponentOutletComponent_Conditional_0_ng_container_0_Template, 1, 0, "ng-container", 0);
|
|
11
|
+
} if (rf & 2) {
|
|
12
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
13
|
+
i0.ɵɵproperty("ngComponentOutlet", ctx_r0.component())("ngComponentOutletInputs", ctx_r0.inputs())("ngComponentOutletInjector", ctx_r0.injector())("ngComponentOutletContent", ctx_r0.content());
|
|
14
|
+
} }
|
|
15
|
+
function RemoteComponentOutletComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
16
|
+
i0.ɵɵprojection(0);
|
|
17
|
+
} }
|
|
18
|
+
export class RemoteComponentOutletComponent {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.remoteComponents = signal({});
|
|
21
|
+
this.name = input.required();
|
|
22
|
+
this.entrypoint = input.required();
|
|
23
|
+
this.expose = input('./Components');
|
|
24
|
+
this.inputs = input();
|
|
25
|
+
this.injector = input();
|
|
26
|
+
this.content = input();
|
|
27
|
+
this.component = computed(() => this.remoteComponents()[this.name()]);
|
|
28
|
+
effect(async () => {
|
|
29
|
+
if (this.entrypoint()) {
|
|
30
|
+
this.remoteComponents.set((await loadRemote(this.entrypoint(), this.expose())).default);
|
|
31
|
+
}
|
|
32
|
+
}, { allowSignalWrites: true });
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = function RemoteComponentOutletComponent_Factory(t) { return new (t || RemoteComponentOutletComponent)(); }; }
|
|
35
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RemoteComponentOutletComponent, selectors: [["acl-remote-component-outlet"]], inputs: { name: [1, "name"], entrypoint: [1, "entrypoint"], expose: [1, "expose"], inputs: [1, "inputs"], injector: [1, "injector"], content: [1, "content"] }, standalone: true, features: [i0.ɵɵStandaloneFeature], ngContentSelectors: _c0, decls: 2, vars: 1, consts: [[4, "ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent"]], template: function RemoteComponentOutletComponent_Template(rf, ctx) { if (rf & 1) {
|
|
36
|
+
i0.ɵɵprojectionDef();
|
|
37
|
+
i0.ɵɵtemplate(0, RemoteComponentOutletComponent_Conditional_0_Template, 1, 4, "ng-container")(1, RemoteComponentOutletComponent_Conditional_1_Template, 1, 0);
|
|
38
|
+
} if (rf & 2) {
|
|
39
|
+
i0.ɵɵconditional(ctx.component() ? 0 : 1);
|
|
40
|
+
} }, dependencies: [NgComponentOutlet], encapsulation: 2, changeDetection: 0 }); }
|
|
41
|
+
}
|
|
42
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RemoteComponentOutletComponent, [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ selector: 'acl-remote-component-outlet', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgComponentOutlet], template: "@if (component()) {\n <ng-container\n *ngComponentOutlet=\"\n component();\n inputs: inputs();\n injector: injector();\n content: content()\n \"\n ></ng-container>\n} @else {\n <ng-content></ng-content>\n}\n" }]
|
|
45
|
+
}], () => [], null); })();
|
|
46
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RemoteComponentOutletComponent, { className: "RemoteComponentOutletComponent", filePath: "lib/components/remote-component-outlet/component.ts", lineNumber: 21 }); })();
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbHVnaW4tc2RrL3NyYy9saWIvY29tcG9uZW50cy9yZW1vdGUtY29tcG9uZW50LW91dGxldC9jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsdWdpbi1zZGsvc3JjL2xpYi9jb21wb25lbnRzL3JlbW90ZS1jb21wb25lbnQtb3V0bGV0L3RlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7SUNWdkMsd0JBT2dCOzs7SUFQaEIsK0dBT0M7OztJQUZVLEFBREEsQUFEQSxBQUZSLHNEQUVRLDRDQUNBLGdEQUNBLDhDQUViOzs7SUFFRSxrQkFBeUI7O0FEVTNCLE1BQU0sT0FBTyw4QkFBOEI7SUFpQnpDO1FBaEJRLHFCQUFnQixHQUFHLE1BQU0sQ0FBa0MsRUFBRSxDQUFDLENBQUM7UUFFdkUsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztRQUVoQyxlQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBRXRDLFdBQU0sR0FBRyxLQUFLLENBQVMsY0FBYyxDQUFDLENBQUM7UUFFdkMsV0FBTSxHQUFHLEtBQUssRUFBZ0QsQ0FBQztRQUUvRCxhQUFRLEdBQUcsS0FBSyxFQUFrRCxDQUFDO1FBRW5FLFlBQU8sR0FBRyxLQUFLLEVBQWlELENBQUM7UUFFakUsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRy9ELE1BQU0sQ0FDSixLQUFLLElBQUksRUFBRTtZQUNULElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQ3ZCLENBQUMsTUFBTSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUM3RCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUM1QixDQUFDO0lBQ0osQ0FBQzsrRkE1QlUsOEJBQThCO29FQUE5Qiw4QkFBOEI7O1lDWHpDLEFBVEYsNkZBQW1CLGdFQVNWOztZQVRULHlDQVdDOzRCRE9XLGlCQUFpQjs7aUZBRWhCLDhCQUE4QjtjQVAxQyxTQUFTOzJCQUNFLDZCQUE2QixtQkFFdEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsQ0FBQzs7a0ZBRWpCLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ29tcG9uZW50T3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGlucHV0LFxuICBzaWduYWwsXG4gIFR5cGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBsb2FkUmVtb3RlIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhY2wtcmVtb3RlLWNvbXBvbmVudC1vdXRsZXQnLFxuICB0ZW1wbGF0ZVVybDogJ3RlbXBsYXRlLmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ29tcG9uZW50T3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgUmVtb3RlQ29tcG9uZW50T3V0bGV0Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZW1vdGVDb21wb25lbnRzID0gc2lnbmFsPFJlY29yZDxzdHJpbmcsIFR5cGU8Q29tcG9uZW50Pj4+KHt9KTtcblxuICBuYW1lID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuXG4gIGVudHJ5cG9pbnQgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG5cbiAgZXhwb3NlID0gaW5wdXQ8c3RyaW5nPignLi9Db21wb25lbnRzJyk7XG5cbiAgaW5wdXRzID0gaW5wdXQ8TmdDb21wb25lbnRPdXRsZXRbJ25nQ29tcG9uZW50T3V0bGV0SW5wdXRzJ10+KCk7XG5cbiAgaW5qZWN0b3IgPSBpbnB1dDxOZ0NvbXBvbmVudE91dGxldFsnbmdDb21wb25lbnRPdXRsZXRJbmplY3RvciddPigpO1xuXG4gIGNvbnRlbnQgPSBpbnB1dDxOZ0NvbXBvbmVudE91dGxldFsnbmdDb21wb25lbnRPdXRsZXRDb250ZW50J10+KCk7XG5cbiAgY29tcG9uZW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5yZW1vdGVDb21wb25lbnRzKClbdGhpcy5uYW1lKCldKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoXG4gICAgICBhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmVudHJ5cG9pbnQoKSkge1xuICAgICAgICAgIHRoaXMucmVtb3RlQ29tcG9uZW50cy5zZXQoXG4gICAgICAgICAgICAoYXdhaXQgbG9hZFJlbW90ZSh0aGlzLmVudHJ5cG9pbnQoKSwgdGhpcy5leHBvc2UoKSkpLmRlZmF1bHQsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgICApO1xuICB9XG59XG4iLCJAaWYgKGNvbXBvbmVudCgpKSB7XG4gIDxuZy1jb250YWluZXJcbiAgICAqbmdDb21wb25lbnRPdXRsZXQ9XCJcbiAgICAgIGNvbXBvbmVudCgpO1xuICAgICAgaW5wdXRzOiBpbnB1dHMoKTtcbiAgICAgIGluamVjdG9yOiBpbmplY3RvcigpO1xuICAgICAgY29udGVudDogY29udGVudCgpXG4gICAgXCJcbiAgPjwvbmctY29udGFpbmVyPlxufSBAZWxzZSB7XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { attachAuthorizationHeader } from '@alauda-fe/common';
|
|
2
|
+
import { isLocalEnv } from './utils';
|
|
3
|
+
export async function loadExtensions(query = {}) {
|
|
4
|
+
return isLocalEnv()
|
|
5
|
+
? await loadDevExtensions(query)
|
|
6
|
+
: await loadProdExtensions(query);
|
|
7
|
+
}
|
|
8
|
+
async function loadDevExtensions(query = {}) {
|
|
9
|
+
return await fetch(`/dev-plugin/console-plugin.json`)
|
|
10
|
+
.then(res => {
|
|
11
|
+
if (!res.ok) {
|
|
12
|
+
throw new Error('Failed to fetch local dev extensions');
|
|
13
|
+
}
|
|
14
|
+
return res.json();
|
|
15
|
+
})
|
|
16
|
+
.then((plugin) => plugin.extensions.map(ext => ({
|
|
17
|
+
...ext,
|
|
18
|
+
entrypoint: 'http://localhost:5000',
|
|
19
|
+
})))
|
|
20
|
+
.catch(() => {
|
|
21
|
+
console.warn('Failed to fetch local dev extensions, loading prod extensions');
|
|
22
|
+
return loadProdExtensions(query);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
async function loadProdExtensions(query = {}) {
|
|
26
|
+
const reqPrefix = isLocalEnv() ? '/api-gateway' : '';
|
|
27
|
+
const queryString = Object.entries(query)
|
|
28
|
+
.map(([key, value]) => `${key}=${value.join(',')}`)
|
|
29
|
+
.join(';');
|
|
30
|
+
return await fetch(`${reqPrefix}/frontend-plugins/clusters/console-plugins${queryString && '?filter=' + encodeURIComponent(queryString)}`, {
|
|
31
|
+
headers: attachAuthorizationHeader(),
|
|
32
|
+
})
|
|
33
|
+
.then(res => {
|
|
34
|
+
if (!res.ok) {
|
|
35
|
+
throw new Error('Failed to fetch extensions');
|
|
36
|
+
}
|
|
37
|
+
return res.json();
|
|
38
|
+
})
|
|
39
|
+
.then((rawPlugins) => Object.entries(rawPlugins).reduce((acc, [cluster, plugins]) => acc.concat(plugins.flatMap(plugin => JSON.parse(plugin['console-plugin.json']).extensions.map(ext => ({
|
|
40
|
+
...ext,
|
|
41
|
+
cluster,
|
|
42
|
+
operator: plugin.operator,
|
|
43
|
+
version: plugin.version,
|
|
44
|
+
entrypoint: `${reqPrefix}/clusters-rewrite/${cluster}${plugin.path}`,
|
|
45
|
+
})))), []))
|
|
46
|
+
.catch(err => {
|
|
47
|
+
console.error(err);
|
|
48
|
+
return [];
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsdWdpbi1zZGsvc3JjL2xpYi9leHRlbnNpb25zLWxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXJDLE1BQU0sQ0FBQyxLQUFLLFVBQVUsY0FBYyxDQUFDLFFBQXlCLEVBQUU7SUFDOUQsT0FBTyxVQUFVLEVBQUU7UUFDakIsQ0FBQyxDQUFDLE1BQU0saUJBQWlCLENBQUMsS0FBSyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxNQUFNLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxLQUFLLFVBQVUsaUJBQWlCLENBQzlCLFFBQXlCLEVBQUU7SUFFM0IsT0FBTyxNQUFNLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQztTQUNsRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDVixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDLENBQUM7U0FDRCxJQUFJLENBQUMsQ0FBQyxNQUFrQixFQUFFLEVBQUUsQ0FDM0IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLEdBQUcsR0FBRztRQUNOLFVBQVUsRUFBRSx1QkFBdUI7S0FDcEMsQ0FBQyxDQUFDLENBQ0o7U0FDQSxLQUFLLENBQUMsR0FBRyxFQUFFO1FBQ1YsT0FBTyxDQUFDLElBQUksQ0FDViwrREFBK0QsQ0FDaEUsQ0FBQztRQUNGLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsS0FBSyxVQUFVLGtCQUFrQixDQUMvQixRQUF5QixFQUFFO0lBRTNCLE1BQU0sU0FBUyxHQUFHLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNyRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztTQUN0QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1NBQ2xELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUViLE9BQU8sTUFBTSxLQUFLLENBQ2hCLEdBQUcsU0FBUyw2Q0FBNkMsV0FBVyxJQUFJLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUN0SDtRQUNFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRTtLQUNyQyxDQUNGO1NBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDO1NBQ0QsSUFBSSxDQUFDLENBQUMsVUFBc0IsRUFBRSxFQUFFLENBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUMvQixDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQzFCLEdBQUcsQ0FBQyxNQUFNLENBQ1IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUVyQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUN6QyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLEdBQUcsR0FBRztRQUNOLE9BQU87UUFDUCxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVE7UUFDekIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQ3ZCLFVBQVUsRUFBRSxHQUFHLFNBQVMscUJBQXFCLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFO0tBQ3JFLENBQUMsQ0FBQyxDQUNKLENBQ0YsRUFDSCxFQUFpQixDQUNsQixDQUNGO1NBQ0EsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF0dGFjaEF1dGhvcml6YXRpb25IZWFkZXIgfSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5cbmltcG9ydCB7IGlzTG9jYWxFbnYgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRFeHRlbnNpb25zKHF1ZXJ5OiBFeHRlbnNpb25zUXVlcnkgPSB7fSkge1xuICByZXR1cm4gaXNMb2NhbEVudigpXG4gICAgPyBhd2FpdCBsb2FkRGV2RXh0ZW5zaW9ucyhxdWVyeSlcbiAgICA6IGF3YWl0IGxvYWRQcm9kRXh0ZW5zaW9ucyhxdWVyeSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWREZXZFeHRlbnNpb25zKFxuICBxdWVyeTogRXh0ZW5zaW9uc1F1ZXJ5ID0ge30sXG4pOiBQcm9taXNlPEV4dGVuc2lvbltdPiB7XG4gIHJldHVybiBhd2FpdCBmZXRjaChgL2Rldi1wbHVnaW4vY29uc29sZS1wbHVnaW4uanNvbmApXG4gICAgLnRoZW4ocmVzID0+IHtcbiAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGZldGNoIGxvY2FsIGRldiBleHRlbnNpb25zJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzLmpzb24oKTtcbiAgICB9KVxuICAgIC50aGVuKChwbHVnaW46IFBsdWdpbkpTT04pID0+XG4gICAgICBwbHVnaW4uZXh0ZW5zaW9ucy5tYXAoZXh0ID0+ICh7XG4gICAgICAgIC4uLmV4dCxcbiAgICAgICAgZW50cnlwb2ludDogJ2h0dHA6Ly9sb2NhbGhvc3Q6NTAwMCcsXG4gICAgICB9KSksXG4gICAgKVxuICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdGYWlsZWQgdG8gZmV0Y2ggbG9jYWwgZGV2IGV4dGVuc2lvbnMsIGxvYWRpbmcgcHJvZCBleHRlbnNpb25zJyxcbiAgICAgICk7XG4gICAgICByZXR1cm4gbG9hZFByb2RFeHRlbnNpb25zKHF1ZXJ5KTtcbiAgICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gbG9hZFByb2RFeHRlbnNpb25zKFxuICBxdWVyeTogRXh0ZW5zaW9uc1F1ZXJ5ID0ge30sXG4pOiBQcm9taXNlPEV4dGVuc2lvbltdPiB7XG4gIGNvbnN0IHJlcVByZWZpeCA9IGlzTG9jYWxFbnYoKSA/ICcvYXBpLWdhdGV3YXknIDogJyc7XG4gIGNvbnN0IHF1ZXJ5U3RyaW5nID0gT2JqZWN0LmVudHJpZXMocXVlcnkpXG4gICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgJHtrZXl9PSR7dmFsdWUuam9pbignLCcpfWApXG4gICAgLmpvaW4oJzsnKTtcblxuICByZXR1cm4gYXdhaXQgZmV0Y2goXG4gICAgYCR7cmVxUHJlZml4fS9mcm9udGVuZC1wbHVnaW5zL2NsdXN0ZXJzL2NvbnNvbGUtcGx1Z2lucyR7cXVlcnlTdHJpbmcgJiYgJz9maWx0ZXI9JyArIGVuY29kZVVSSUNvbXBvbmVudChxdWVyeVN0cmluZyl9YCxcbiAgICB7XG4gICAgICBoZWFkZXJzOiBhdHRhY2hBdXRob3JpemF0aW9uSGVhZGVyKCksXG4gICAgfSxcbiAgKVxuICAgIC50aGVuKHJlcyA9PiB7XG4gICAgICBpZiAoIXJlcy5vaykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCBleHRlbnNpb25zJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzLmpzb24oKTtcbiAgICB9KVxuICAgIC50aGVuKChyYXdQbHVnaW5zOiBSYXdQbHVnaW5zKSA9PlxuICAgICAgT2JqZWN0LmVudHJpZXMocmF3UGx1Z2lucykucmVkdWNlKFxuICAgICAgICAoYWNjLCBbY2x1c3RlciwgcGx1Z2luc10pID0+XG4gICAgICAgICAgYWNjLmNvbmNhdChcbiAgICAgICAgICAgIHBsdWdpbnMuZmxhdE1hcChwbHVnaW4gPT5cbiAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgIEpTT04ucGFyc2UocGx1Z2luWydjb25zb2xlLXBsdWdpbi5qc29uJ10pIGFzIFBsdWdpbkpTT05cbiAgICAgICAgICAgICAgKS5leHRlbnNpb25zLm1hcChleHQgPT4gKHtcbiAgICAgICAgICAgICAgICAuLi5leHQsXG4gICAgICAgICAgICAgICAgY2x1c3RlcixcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogcGx1Z2luLm9wZXJhdG9yLFxuICAgICAgICAgICAgICAgIHZlcnNpb246IHBsdWdpbi52ZXJzaW9uLFxuICAgICAgICAgICAgICAgIGVudHJ5cG9pbnQ6IGAke3JlcVByZWZpeH0vY2x1c3RlcnMtcmV3cml0ZS8ke2NsdXN0ZXJ9JHtwbHVnaW4ucGF0aH1gLFxuICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICksXG4gICAgICAgIFtdIGFzIEV4dGVuc2lvbltdLFxuICAgICAgKSxcbiAgICApXG4gICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICByZXR1cm4gW107XG4gICAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uc1F1ZXJ5IHtcbiAgdHlwZXM/OiBzdHJpbmdbXTtcbiAgY2x1c3RlcnM/OiBzdHJpbmdbXTtcbiAgb3BlcmF0b3JzPzogc3RyaW5nW107XG4gIGNoYW5uZWxzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0ZW5zaW9uPFQgPSBhbnk+IGV4dGVuZHMgUmF3RXh0ZW5zaW9uPFQ+IHtcbiAgY2x1c3Rlcj86IHN0cmluZztcbiAgb3BlcmF0b3I/OiBzdHJpbmc7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG4gIGVudHJ5cG9pbnQ6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFJhd1BsdWdpbnMge1xuICBbY2x1c3Rlcjogc3RyaW5nXTogQXJyYXk8e1xuICAgIG9wZXJhdG9yOiBzdHJpbmc7XG4gICAgdmVyc2lvbjogc3RyaW5nO1xuICAgIHBhdGg6IHN0cmluZztcbiAgICAnY29uc29sZS1wbHVnaW4uanNvbic6IHN0cmluZztcbiAgfT47XG59XG5cbmludGVyZmFjZSBQbHVnaW5KU09OIHtcbiAgZXh0ZW5zaW9uczogUmF3RXh0ZW5zaW9uW107XG59XG5cbmludGVyZmFjZSBSYXdFeHRlbnNpb248VCA9IGFueT4ge1xuICB0eXBlOiBzdHJpbmc7XG4gIG9wdGlvbnM6IFQ7XG59XG4iXX0=
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { getAppExtensions } from './app-extensions';
|
|
2
|
+
import { filterLatestVersion } from './utils';
|
|
3
|
+
export function getRemoteNavigations(scope, locale) {
|
|
4
|
+
if (!scope) {
|
|
5
|
+
return [];
|
|
6
|
+
}
|
|
7
|
+
const exts = getAppExtensions(scope + '/navigation');
|
|
8
|
+
return filterLatestVersion((options) => options.name)(exts)
|
|
9
|
+
.map(ext => ext.options)
|
|
10
|
+
.map(options => translateLabel(locale, options));
|
|
11
|
+
}
|
|
12
|
+
export function getRemoteNavigationGroups(scope, locale) {
|
|
13
|
+
if (!scope) {
|
|
14
|
+
return [];
|
|
15
|
+
}
|
|
16
|
+
const exts = getAppExtensions(scope + '/navigation/group');
|
|
17
|
+
return filterLatestVersion((options) => options.name)(exts)
|
|
18
|
+
.map(ext => ext.options)
|
|
19
|
+
.map(options => translateLabel(locale, options));
|
|
20
|
+
}
|
|
21
|
+
export function insertNavItem(source, remotes) {
|
|
22
|
+
remotes.forEach(remote => {
|
|
23
|
+
if (remote.insertAfter) {
|
|
24
|
+
const r = insert('after', remote.insertAfter, [], source, remote);
|
|
25
|
+
if (r.matched) {
|
|
26
|
+
source = r.result;
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (remote.insertBefore) {
|
|
31
|
+
const r = insert('before', remote.insertBefore, [], source, remote);
|
|
32
|
+
if (r.matched) {
|
|
33
|
+
source = r.result;
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
source = source.concat({
|
|
38
|
+
...remote,
|
|
39
|
+
key: remote.key ?? remote.name,
|
|
40
|
+
children: remote.children
|
|
41
|
+
? remote.children.map(child => ({
|
|
42
|
+
...child,
|
|
43
|
+
key: child.key ?? child.name,
|
|
44
|
+
}))
|
|
45
|
+
: null,
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
return source;
|
|
49
|
+
}
|
|
50
|
+
export function insertNavGroupItem(source, remotes) {
|
|
51
|
+
return source.map(group => {
|
|
52
|
+
const groupRemotes = remotes.filter(remote => remote.group === group.name);
|
|
53
|
+
return { ...group, items: insertNavItem(group.items, groupRemotes) };
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function translateLabel(locale, item) {
|
|
57
|
+
return {
|
|
58
|
+
...item,
|
|
59
|
+
children: item.children
|
|
60
|
+
? item.children.map(c => translateLabel(locale, c))
|
|
61
|
+
: null,
|
|
62
|
+
label: typeof item.displayName === 'string'
|
|
63
|
+
? item.displayName
|
|
64
|
+
: item.displayName[locale] || item.displayName['en'],
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function insert(position, anchor, namePath, target, item) {
|
|
68
|
+
const offset = position === 'before' ? 0 : 1;
|
|
69
|
+
anchor = Array.isArray(anchor) ? anchor : [anchor];
|
|
70
|
+
for (const currentAnchor of anchor) {
|
|
71
|
+
for (let i = 0; i < target.length; i++) {
|
|
72
|
+
if (target[i].name === currentAnchor) {
|
|
73
|
+
return {
|
|
74
|
+
result: [
|
|
75
|
+
...target.slice(0, i + offset),
|
|
76
|
+
{ ...item, key: namePath.join('/') + item.name },
|
|
77
|
+
...target.slice(i + offset),
|
|
78
|
+
],
|
|
79
|
+
matched: true,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
if (target[i].children) {
|
|
83
|
+
const { result, matched } = insert(position, currentAnchor, namePath.concat(target[i].name), target[i].children, item);
|
|
84
|
+
if (matched) {
|
|
85
|
+
return {
|
|
86
|
+
result: target.map((item, index) => index === i
|
|
87
|
+
? {
|
|
88
|
+
...item,
|
|
89
|
+
children: result,
|
|
90
|
+
}
|
|
91
|
+
: item),
|
|
92
|
+
matched: true,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
result: target,
|
|
100
|
+
matched: false,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGx1Z2luLXNkay9zcmMvbGliL25hdmlnYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTlDLE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsS0FBYSxFQUNiLE1BQWM7SUFFZCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLENBQUM7SUFFckQsT0FBTyxtQkFBbUIsQ0FBQyxDQUFDLE9BQXlCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDMUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQW1DLENBQUM7U0FDbkQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQ3ZDLEtBQWEsRUFDYixNQUFjO0lBRWQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1gsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLG1CQUFtQixDQUFDLENBQUM7SUFFM0QsT0FBTyxtQkFBbUIsQ0FBQyxDQUFDLE9BQXlCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDMUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMs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QUFJLENBQ0wsQ0FBQztnQkFDRixJQUFJLE9BQU8sRUFBRSxDQUFDO29CQUNaLE9BQU87d0JBQ0wsTUFBTSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDakMsS0FBSyxLQUFLLENBQUM7NEJBQ1QsQ0FBQyxDQUFDO2dDQUNFLEdBQUcsSUFBSTtnQ0FDUCxRQUFRLEVBQUUsTUFBTTs2QkFDakI7NEJBQ0gsQ0FBQyxDQUFDLElBQUksQ0FDVDt3QkFDRCxPQUFPLEVBQUUsSUFBSTtxQkFDZCxDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxFQUFFLE1BQU07UUFDZCxPQUFPLEVBQUUsS0FBSztLQUNmLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBOYXZHcm91cENvbmZpZywgTmF2SXRlbUNvbmZpZyB9IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcblxuaW1wb3J0IHsgZ2V0QXBwRXh0ZW5zaW9ucyB9IGZyb20gJy4vYXBwLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgZmlsdGVyTGF0ZXN0VmVyc2lvbiB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVtb3RlTmF2aWdhdGlvbnMoXG4gIHNjb3BlOiBzdHJpbmcsXG4gIGxvY2FsZTogc3RyaW5nLFxuKTogUmVtb3RlTmF2aWdhdGlvbkl0ZW1Sb290W10ge1xuICBpZiAoIXNjb3BlKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY29uc3QgZXh0cyA9IGdldEFwcEV4dGVuc2lvbnMoc2NvcGUgKyAnL25hdmlnYXRpb24nKTtcblxuICByZXR1cm4gZmlsdGVyTGF0ZXN0VmVyc2lvbigob3B0aW9uczogeyBuYW1lOiBzdHJpbmcgfSkgPT4gb3B0aW9ucy5uYW1lKShleHRzKVxuICAgIC5tYXAoZXh0ID0+IGV4dC5vcHRpb25zIGFzIFJlbW90ZU5hdmlnYXRpb25JdGVtUm9vdClcbiAgICAubWFwKG9wdGlvbnMgPT4gdHJhbnNsYXRlTGFiZWwobG9jYWxlLCBvcHRpb25zKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZW1vdGVOYXZpZ2F0aW9uR3JvdXBzKFxuICBzY29wZTogc3RyaW5nLFxuICBsb2NhbGU6IHN0cmluZyxcbik6IFJlbW90ZU5hdmlnYXRpb25JdGVtUm9vdFtdIHtcbiAgaWYgKCFzY29wZSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IGV4dHMgPSBnZXRBcHBFeHRlbnNpb25zKHNjb3BlICsgJy9uYXZpZ2F0aW9uL2dyb3VwJyk7XG5cbiAgcmV0dXJuIGZpbHRlckxhdGVzdFZlcnNpb24oKG9wdGlvbnM6IHsgbmFtZTogc3RyaW5nIH0pID0+IG9wdGlvbnMubmFtZSkoZXh0cylcbiAgICAubWFwKGV4dCA9PiBleHQub3B0aW9ucyBhcyBSZW1vdGVOYXZpZ2F0aW9uSXRlbVJvb3QpXG4gICAgLm1hcChvcHRpb25zID0+IHRyYW5zbGF0ZUxhYmVsKGxvY2FsZSwgb3B0aW9ucykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0TmF2SXRlbShcbiAgc291cmNlOiBOYXZJdGVtQ29uZmlnW10sXG4gIHJlbW90ZXM6IFJlbW90ZU5hdmlnYXRpb25JdGVtUm9vdFtdLFxuKTogTmF2SXRlbUNvbmZpZ1tdIHtcbiAgcmVtb3Rlcy5mb3JFYWNoKHJlbW90ZSA9PiB7XG4gICAgaWYgKHJlbW90ZS5pbnNlcnRBZnRlcikge1xuICAgICAgY29uc3QgciA9IGluc2VydCgnYWZ0ZXInLCByZW1vdGUuaW5zZXJ0QWZ0ZXIsIFtdLCBzb3VyY2UsIHJlbW90ZSk7XG4gICAgICBpZiAoci5tYXRjaGVkKSB7XG4gICAgICAgIHNvdXJjZSA9IHIucmVzdWx0O1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlbW90ZS5pbnNlcnRCZWZvcmUpIHtcbiAgICAgIGNvbnN0IHIgPSBpbnNlcnQoJ2JlZm9yZScsIHJlbW90ZS5pbnNlcnRCZWZvcmUsIFtdLCBzb3VyY2UsIHJlbW90ZSk7XG4gICAgICBpZiAoci5tYXRjaGVkKSB7XG4gICAgICAgIHNvdXJjZSA9IHIucmVzdWx0O1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgc291cmNlID0gc291cmNlLmNvbmNhdCh7XG4gICAgICAuLi5yZW1vdGUsXG4gICAgICBrZXk6IHJlbW90ZS5rZXkgPz8gcmVtb3RlLm5hbWUsXG4gICAgICBjaGlsZHJlbjogcmVtb3RlLmNoaWxkcmVuXG4gICAgICAgID8gcmVtb3RlLmNoaWxkcmVuLm1hcChjaGlsZCA9PiAoe1xuICAgICAgICAgICAgLi4uY2hpbGQsXG4gICAgICAgICAgICBrZXk6IGNoaWxkLmtleSA/PyBjaGlsZC5uYW1lLFxuICAgICAgICAgIH0pKVxuICAgICAgICA6IG51bGwsXG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiBzb3VyY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnNlcnROYXZHcm91cEl0ZW0oXG4gIHNvdXJjZTogTmF2R3JvdXBDb25maWdbXSxcbiAgcmVtb3RlczogUmVtb3RlTmF2aWdhdGlvbkl0ZW1Sb290W10sXG4pOiBOYXZHcm91cENvbmZpZ1tdIHtcbiAgcmV0dXJuIHNvdXJjZS5tYXAoZ3JvdXAgPT4ge1xuICAgIGNvbnN0IGdyb3VwUmVtb3RlcyA9IHJlbW90ZXMuZmlsdGVyKHJlbW90ZSA9PiByZW1vdGUuZ3JvdXAgPT09IGdyb3VwLm5hbWUpO1xuICAgIHJldHVybiB7IC4uLmdyb3VwLCBpdGVtczogaW5zZXJ0TmF2SXRlbShncm91cC5pdGVtcywgZ3JvdXBSZW1vdGVzKSB9O1xuICB9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW1vdGVOYXZpZ2F0aW9uSXRlbSBleHRlbmRzIE5hdkl0ZW1Db25maWcge1xuICBncm91cD86IHN0cmluZztcbiAgZGlzcGxheU5hbWU6IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIGNoaWxkcmVuPzogUmVtb3RlTmF2aWdhdGlvbkl0ZW1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW1vdGVOYXZpZ2F0aW9uSXRlbVJvb3QgZXh0ZW5kcyBSZW1vdGVOYXZpZ2F0aW9uSXRlbSB7XG4gIGluc2VydEFmdGVyPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIGluc2VydEJlZm9yZT86IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG5mdW5jdGlvbiB0cmFuc2xhdGVMYWJlbChcbiAgbG9jYWxlOiBzdHJpbmcsXG4gIGl0ZW06IFJlbW90ZU5hdmlnYXRpb25JdGVtLFxuKTogUmVtb3RlTmF2aWdhdGlvbkl0ZW0ge1xuICByZXR1cm4ge1xuICAgIC4uLml0ZW0sXG4gICAgY2hpbGRyZW46IGl0ZW0uY2hpbGRyZW5cbiAgICAgID8gaXRlbS5jaGlsZHJlbi5tYXAoYyA9PiB0cmFuc2xhdGVMYWJlbChsb2NhbGUsIGMpKVxuICAgICAgOiBudWxsLFxuICAgIGxhYmVsOlxuICAgICAgdHlwZW9mIGl0ZW0uZGlzcGxheU5hbWUgPT09ICdzdHJpbmcnXG4gICAgICAgID8gaXRlbS5kaXNwbGF5TmFtZVxuICAgICAgICA6IGl0ZW0uZGlzcGxheU5hbWVbbG9jYWxlXSB8fCBpdGVtLmRpc3BsYXlOYW1lWydlbiddLFxuICB9O1xufVxuXG5mdW5jdGlvbiBpbnNlcnQoXG4gIHBvc2l0aW9uOiAnYmVmb3JlJyB8ICdhZnRlcicsXG4gIGFuY2hvcjogc3RyaW5nIHwgc3RyaW5nW10sXG4gIG5hbWVQYXRoOiBzdHJpbmdbXSxcbiAgdGFyZ2V0OiBOYXZJdGVtQ29uZmlnW10sXG4gIGl0ZW06IFJlbW90ZU5hdmlnYXRpb25JdGVtUm9vdCxcbik6IHsgcmVzdWx0OiBOYXZJdGVtQ29uZmlnW107IG1hdGNoZWQ6IGJvb2xlYW4gfSB7XG4gIGNvbnN0IG9mZnNldCA9IHBvc2l0aW9uID09PSAnYmVmb3JlJyA/IDAgOiAxO1xuICBhbmNob3IgPSBBcnJheS5pc0FycmF5KGFuY2hvcikgPyBhbmNob3IgOiBbYW5jaG9yXTtcblxuICBmb3IgKGNvbnN0IGN1cnJlbnRBbmNob3Igb2YgYW5jaG9yKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YXJnZXQubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0YXJnZXRbaV0ubmFtZSA9PT0gY3VycmVudEFuY2hvcikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlc3VsdDogW1xuICAgICAgICAgICAgLi4udGFyZ2V0LnNsaWNlKDAsIGkgKyBvZmZzZXQpLFxuICAgICAgICAgICAgeyAuLi5pdGVtLCBrZXk6IG5hbWVQYXRoLmpvaW4oJy8nKSArIGl0ZW0ubmFtZSB9LFxuICAgICAgICAgICAgLi4udGFyZ2V0LnNsaWNlKGkgKyBvZmZzZXQpLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgbWF0Y2hlZDogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRhcmdldFtpXS5jaGlsZHJlbikge1xuICAgICAgICBjb25zdCB7IHJlc3VsdCwgbWF0Y2hlZCB9ID0gaW5zZXJ0KFxuICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgIGN1cnJlbnRBbmNob3IsXG4gICAgICAgICAgbmFtZVBhdGguY29uY2F0KHRhcmdldFtpXS5uYW1lKSxcbiAgICAgICAgICB0YXJnZXRbaV0uY2hpbGRyZW4sXG4gICAgICAgICAgaXRlbSxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKG1hdGNoZWQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVzdWx0OiB0YXJnZXQubWFwKChpdGVtLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgaW5kZXggPT09IGlcbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IGl0ZW0sXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbWF0Y2hlZDogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByZXN1bHQ6IHRhcmdldCxcbiAgICBtYXRjaGVkOiBmYWxzZSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { getAppExtensions } from './app-extensions';
|
|
2
|
+
import { filterLatestVersion, loadRemote } from './utils';
|
|
3
|
+
export function mapToRoute(ext, addition = {}) {
|
|
4
|
+
return {
|
|
5
|
+
path: ext.options.path,
|
|
6
|
+
loadChildren: () => loadRemote(ext.entrypoint, ext.options.expose ?? './Routes').then(m => m.default),
|
|
7
|
+
...addition,
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export function getRootRoutes(scope) {
|
|
11
|
+
const exts = getAppExtensions(scope + '/routes/root');
|
|
12
|
+
return filterLatestVersion((options) => options.path)(exts).map(ext => mapToRoute(ext));
|
|
13
|
+
}
|
|
14
|
+
export function getFeatureRoutes(scope) {
|
|
15
|
+
const exts = getAppExtensions(scope + '/routes/feature');
|
|
16
|
+
return filterLatestVersion((options) => options.path)(exts).map(ext => mapToRoute(ext));
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsdWdpbi1zZGsvc3JjL2xpYi9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTFELE1BQU0sVUFBVSxVQUFVLENBQ3hCLEdBQTRCLEVBQzVCLFdBQTJCLEVBQUU7SUFFN0IsT0FBTztRQUNMLElBQUksRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUk7UUFDdEIsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUNqQixVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQy9ELENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FDZjtRQUNILEdBQUcsUUFBUTtLQUNaLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxLQUFhO0lBQ3pDLE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLEtBQUssR0FBRyxjQUFjLENBQUMsQ0FBQztJQUN0RCxPQUFPLG1CQUFtQixDQUFDLENBQUMsT0FBcUIsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FDM0UsR0FBRyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQ3ZCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEtBQWE7SUFDNUMsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLGlCQUFpQixDQUFDLENBQUM7SUFDekQsT0FBTyxtQkFBbUIsQ0FBQyxDQUFDLE9BQXFCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQzNFLEdBQUcsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUN2QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgZ2V0QXBwRXh0ZW5zaW9ucyB9IGZyb20gJy4vYXBwLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgRXh0ZW5zaW9uIH0gZnJvbSAnLi9leHRlbnNpb25zLWxvYWRlcic7XG5pbXBvcnQgeyBmaWx0ZXJMYXRlc3RWZXJzaW9uLCBsb2FkUmVtb3RlIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXBUb1JvdXRlKFxuICBleHQ6IEV4dGVuc2lvbjxSb3V0ZU9wdGlvbnM+LFxuICBhZGRpdGlvbjogUGFydGlhbDxSb3V0ZT4gPSB7fSxcbik6IFJvdXRlIHtcbiAgcmV0dXJuIHtcbiAgICBwYXRoOiBleHQub3B0aW9ucy5wYXRoLFxuICAgIGxvYWRDaGlsZHJlbjogKCkgPT5cbiAgICAgIGxvYWRSZW1vdGUoZXh0LmVudHJ5cG9pbnQsIGV4dC5vcHRpb25zLmV4cG9zZSA/PyAnLi9Sb3V0ZXMnKS50aGVuKFxuICAgICAgICBtID0+IG0uZGVmYXVsdCxcbiAgICAgICksXG4gICAgLi4uYWRkaXRpb24sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb290Um91dGVzKHNjb3BlOiBzdHJpbmcpIHtcbiAgY29uc3QgZXh0cyA9IGdldEFwcEV4dGVuc2lvbnMoc2NvcGUgKyAnL3JvdXRlcy9yb290Jyk7XG4gIHJldHVybiBmaWx0ZXJMYXRlc3RWZXJzaW9uKChvcHRpb25zOiBSb3V0ZU9wdGlvbnMpID0+IG9wdGlvbnMucGF0aCkoZXh0cykubWFwKFxuICAgIGV4dCA9PiBtYXBUb1JvdXRlKGV4dCksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGZWF0dXJlUm91dGVzKHNjb3BlOiBzdHJpbmcpIHtcbiAgY29uc3QgZXh0cyA9IGdldEFwcEV4dGVuc2lvbnMoc2NvcGUgKyAnL3JvdXRlcy9mZWF0dXJlJyk7XG4gIHJldHVybiBmaWx0ZXJMYXRlc3RWZXJzaW9uKChvcHRpb25zOiBSb3V0ZU9wdGlvbnMpID0+IG9wdGlvbnMucGF0aCkoZXh0cykubWFwKFxuICAgIGV4dCA9PiBtYXBUb1JvdXRlKGV4dCksXG4gICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVPcHRpb25zIHtcbiAgcGF0aDogc3RyaW5nO1xuICBleHBvc2U/OiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { loadRemoteModule, setRemoteDefinitions } from '@nx/angular/mf';
|
|
2
|
+
import { compare } from 'compare-versions';
|
|
3
|
+
const remoteRecord = new Set();
|
|
4
|
+
export function isLocalEnv() {
|
|
5
|
+
return location.hostname === 'localhost';
|
|
6
|
+
}
|
|
7
|
+
export function loadRemote(remote, module) {
|
|
8
|
+
if (!remoteRecord.has(remote)) {
|
|
9
|
+
remoteRecord.add(remote);
|
|
10
|
+
setRemoteDefinitions({ [remote]: remote });
|
|
11
|
+
}
|
|
12
|
+
return loadRemoteModule(remote, module);
|
|
13
|
+
}
|
|
14
|
+
export function filterLatestVersion(identity) {
|
|
15
|
+
return (exts) => exts.reduce((acc, ext) => {
|
|
16
|
+
const existedIndex = acc.findIndex(a => a.operator === ext.operator &&
|
|
17
|
+
identity(a.options) === identity(ext.options));
|
|
18
|
+
if (existedIndex === -1) {
|
|
19
|
+
acc.push(ext);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
try {
|
|
23
|
+
acc[existedIndex] = compare(acc[existedIndex].version, ext.version, '>=')
|
|
24
|
+
? acc[existedIndex]
|
|
25
|
+
: ext;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
console.error(`Error when comparing operator (${acc[existedIndex].operator}) versions (${acc[existedIndex].version}, ${ext.version}). Using ${acc[existedIndex].version} from cluster ${acc[existedIndex].cluster}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return acc;
|
|
32
|
+
}, []);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsdWdpbi1zZGsvc3JjL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJM0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztBQUV2QyxNQUFNLFVBQVUsVUFBVTtJQUN4QixPQUFPLFFBQVEsQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFDO0FBQzNDLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLE1BQWMsRUFBRSxNQUFjO0lBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDOUIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixvQkFBb0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsUUFBNkI7SUFFN0IsT0FBTyxDQUFDLElBQXlCLEVBQUUsRUFBRSxDQUNuQyxJQUFJLENBQUMsTUFBTSxDQUNULENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ1gsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FDaEMsQ0FBQyxDQUFDLEVBQUUsQ0FDRixDQUFDLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxRQUFRO1lBQzNCLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FDaEQsQ0FBQztRQUNGLElBQUksWUFBWSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDeEIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQztnQkFDSCxHQUFHLENBQUMsWUFBWSxDQUFDLEdBQUcsT0FBTyxDQUN6QixHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxFQUN6QixHQUFHLENBQUMsT0FBTyxFQUNYLElBQUksQ0FDTDtvQkFDQyxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQztvQkFDbkIsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNWLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsT0FBTyxDQUFDLEtBQUssQ0FDWCxrQ0FBa0MsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsZUFBZSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxPQUFPLFlBQVksR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8saUJBQWlCLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FDdE0sQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEVBQ0QsRUFBeUIsQ0FDMUIsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb2FkUmVtb3RlTW9kdWxlLCBzZXRSZW1vdGVEZWZpbml0aW9ucyB9IGZyb20gJ0BueC9hbmd1bGFyL21mJztcbmltcG9ydCB7IGNvbXBhcmUgfSBmcm9tICdjb21wYXJlLXZlcnNpb25zJztcblxuaW1wb3J0IHsgRXh0ZW5zaW9uIH0gZnJvbSAnLi9leHRlbnNpb25zLWxvYWRlcic7XG5cbmNvbnN0IHJlbW90ZVJlY29yZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNMb2NhbEVudigpIHtcbiAgcmV0dXJuIGxvY2F0aW9uLmhvc3RuYW1lID09PSAnbG9jYWxob3N0Jztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRSZW1vdGUocmVtb3RlOiBzdHJpbmcsIG1vZHVsZTogc3RyaW5nKSB7XG4gIGlmICghcmVtb3RlUmVjb3JkLmhhcyhyZW1vdGUpKSB7XG4gICAgcmVtb3RlUmVjb3JkLmFkZChyZW1vdGUpO1xuICAgIHNldFJlbW90ZURlZmluaXRpb25zKHsgW3JlbW90ZV06IHJlbW90ZSB9KTtcbiAgfVxuXG4gIHJldHVybiBsb2FkUmVtb3RlTW9kdWxlKHJlbW90ZSwgbW9kdWxlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckxhdGVzdFZlcnNpb248TyA9IGFueT4oXG4gIGlkZW50aXR5OiAoZXh0OiBPKSA9PiB1bmtub3duLFxuKTogKGV4dHM6IEFycmF5PEV4dGVuc2lvbjxPPj4pID0+IEFycmF5PEV4dGVuc2lvbjxPPj4ge1xuICByZXR1cm4gKGV4dHM6IEFycmF5PEV4dGVuc2lvbjxPPj4pID0+XG4gICAgZXh0cy5yZWR1Y2UoXG4gICAgICAoYWNjLCBleHQpID0+IHtcbiAgICAgICAgY29uc3QgZXhpc3RlZEluZGV4ID0gYWNjLmZpbmRJbmRleChcbiAgICAgICAgICBhID0+XG4gICAgICAgICAgICBhLm9wZXJhdG9yID09PSBleHQub3BlcmF0b3IgJiZcbiAgICAgICAgICAgIGlkZW50aXR5KGEub3B0aW9ucykgPT09IGlkZW50aXR5KGV4dC5vcHRpb25zKSxcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGV4aXN0ZWRJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICBhY2MucHVzaChleHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhY2NbZXhpc3RlZEluZGV4XSA9IGNvbXBhcmUoXG4gICAgICAgICAgICAgIGFjY1tleGlzdGVkSW5kZXhdLnZlcnNpb24sXG4gICAgICAgICAgICAgIGV4dC52ZXJzaW9uLFxuICAgICAgICAgICAgICAnPj0nLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICA/IGFjY1tleGlzdGVkSW5kZXhdXG4gICAgICAgICAgICAgIDogZXh0O1xuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgYEVycm9yIHdoZW4gY29tcGFyaW5nIG9wZXJhdG9yICgke2FjY1tleGlzdGVkSW5kZXhdLm9wZXJhdG9yfSkgdmVyc2lvbnMgKCR7YWNjW2V4aXN0ZWRJbmRleF0udmVyc2lvbn0sICR7ZXh0LnZlcnNpb259KS4gVXNpbmcgJHthY2NbZXhpc3RlZEluZGV4XS52ZXJzaW9ufSBmcm9tIGNsdXN0ZXIgJHthY2NbZXhpc3RlZEluZGV4XS5jbHVzdGVyfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSxcbiAgICAgIFtdIGFzIEFycmF5PEV4dGVuc2lvbjxPPj4sXG4gICAgKTtcbn1cbiJdfQ==
|
package/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './remote-component-outlet/component';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Component, Type } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class RemoteComponentOutletComponent {
|
|
4
|
+
private remoteComponents;
|
|
5
|
+
name: import("@angular/core").InputSignal<string>;
|
|
6
|
+
entrypoint: import("@angular/core").InputSignal<string>;
|
|
7
|
+
expose: import("@angular/core").InputSignal<string>;
|
|
8
|
+
inputs: import("@angular/core").InputSignal<Record<string, unknown>>;
|
|
9
|
+
injector: import("@angular/core").InputSignal<import("@angular/core").Injector>;
|
|
10
|
+
content: import("@angular/core").InputSignal<any[][]>;
|
|
11
|
+
component: import("@angular/core").Signal<Type<Component>>;
|
|
12
|
+
constructor();
|
|
13
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RemoteComponentOutletComponent, never>;
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RemoteComponentOutletComponent, "acl-remote-component-outlet", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "entrypoint": { "alias": "entrypoint"; "required": true; "isSignal": true; }; "expose": { "alias": "expose"; "required": false; "isSignal": true; }; "inputs": { "alias": "inputs"; "required": false; "isSignal": true; }; "injector": { "alias": "injector"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare function loadExtensions(query?: ExtensionsQuery): Promise<Extension<any>[]>;
|
|
2
|
+
export interface ExtensionsQuery {
|
|
3
|
+
types?: string[];
|
|
4
|
+
clusters?: string[];
|
|
5
|
+
operators?: string[];
|
|
6
|
+
channels?: string[];
|
|
7
|
+
}
|
|
8
|
+
export interface Extension<T = any> extends RawExtension<T> {
|
|
9
|
+
cluster?: string;
|
|
10
|
+
operator?: string;
|
|
11
|
+
version?: string;
|
|
12
|
+
entrypoint: string;
|
|
13
|
+
}
|
|
14
|
+
interface RawExtension<T = any> {
|
|
15
|
+
type: string;
|
|
16
|
+
options: T;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { NavGroupConfig, NavItemConfig } from '@alauda-fe/common';
|
|
2
|
+
export declare function getRemoteNavigations(scope: string, locale: string): RemoteNavigationItemRoot[];
|
|
3
|
+
export declare function getRemoteNavigationGroups(scope: string, locale: string): RemoteNavigationItemRoot[];
|
|
4
|
+
export declare function insertNavItem(source: NavItemConfig[], remotes: RemoteNavigationItemRoot[]): NavItemConfig[];
|
|
5
|
+
export declare function insertNavGroupItem(source: NavGroupConfig[], remotes: RemoteNavigationItemRoot[]): NavGroupConfig[];
|
|
6
|
+
export interface RemoteNavigationItem extends NavItemConfig {
|
|
7
|
+
group?: string;
|
|
8
|
+
displayName: string | Record<string, string>;
|
|
9
|
+
children?: RemoteNavigationItem[];
|
|
10
|
+
}
|
|
11
|
+
export interface RemoteNavigationItemRoot extends RemoteNavigationItem {
|
|
12
|
+
insertAfter?: string | string[];
|
|
13
|
+
insertBefore?: string | string[];
|
|
14
|
+
}
|
package/lib/route.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Route } from '@angular/router';
|
|
2
|
+
import { Extension } from './extensions-loader';
|
|
3
|
+
export declare function mapToRoute(ext: Extension<RouteOptions>, addition?: Partial<Route>): Route;
|
|
4
|
+
export declare function getRootRoutes(scope: string): Route[];
|
|
5
|
+
export declare function getFeatureRoutes(scope: string): Route[];
|
|
6
|
+
export interface RouteOptions {
|
|
7
|
+
path: string;
|
|
8
|
+
expose?: string;
|
|
9
|
+
}
|
package/lib/utils.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Extension } from './extensions-loader';
|
|
2
|
+
export declare function isLocalEnv(): boolean;
|
|
3
|
+
export declare function loadRemote(remote: string, module: string): Promise<any>;
|
|
4
|
+
export declare function filterLatestVersion<O = any>(identity: (ext: O) => unknown): (exts: Array<Extension<O>>) => Array<Extension<O>>;
|
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@alauda-fe/plugin-sdk",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@nx/angular": "^16.10.0"
|
|
6
|
+
},
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"compare-versions": "^6.1.0",
|
|
9
|
+
"tslib": "^2.3.0"
|
|
10
|
+
},
|
|
11
|
+
"sideEffects": false,
|
|
12
|
+
"private": false,
|
|
13
|
+
"publishConfig": {
|
|
14
|
+
"access": "public"
|
|
15
|
+
},
|
|
16
|
+
"module": "esm2022/alauda-fe-plugin-sdk.mjs",
|
|
17
|
+
"typings": "index.d.ts",
|
|
18
|
+
"exports": {
|
|
19
|
+
"./package.json": {
|
|
20
|
+
"default": "./package.json"
|
|
21
|
+
},
|
|
22
|
+
".": {
|
|
23
|
+
"types": "./index.d.ts",
|
|
24
|
+
"esm2022": "./esm2022/alauda-fe-plugin-sdk.mjs",
|
|
25
|
+
"esm": "./esm2022/alauda-fe-plugin-sdk.mjs",
|
|
26
|
+
"default": "./esm2022/alauda-fe-plugin-sdk.mjs"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|