@linagora/linid-im-front-corelib 0.0.6 → 0.0.8
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/README.md +3 -3
- package/dist/core-lib.es.js +3 -2
- package/dist/core-lib.umd.js +3 -3
- package/dist/package.json +13 -9
- package/dist/tsconfig.lib.tsbuildinfo +1 -0
- package/dist/types/src/index.d.ts +2 -1
- package/package.json +13 -9
- package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -83
- package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -90
- package/.github/ISSUE_TEMPLATE/question.yml +0 -31
- package/.github/ISSUE_TEMPLATE/security.yml +0 -69
- package/.github/actions/setup-node-pnpm/action.yml +0 -29
- package/.github/workflows/pull-request.yml +0 -147
- package/.github/workflows/release.yml +0 -90
- package/.prettierignore +0 -7
- package/.prettierrc.json +0 -5
- package/.vscode/extensions.json +0 -3
- package/.vscode/settings.json +0 -9
- package/CHANGELOG.md +0 -51
- package/CONTRIBUTING.md +0 -269
- package/COPYRIGHT +0 -23
- package/docs/components-plugin-zones.md +0 -168
- package/docs/helpers.md +0 -188
- package/docs/module-lifecycle.md +0 -717
- package/docs/services.md +0 -39
- package/docs/types-and-interfaces.md +0 -139
- package/eslint.config.js +0 -136
- package/src/components/LinidZoneRenderer.vue +0 -77
- package/src/index.ts +0 -62
- package/src/lifecycle/skeleton.ts +0 -147
- package/src/services/federationService.ts +0 -44
- package/src/services/httpClientService.ts +0 -61
- package/src/services/linIdConfigurationService.ts +0 -73
- package/src/stores/linIdConfigurationStore.ts +0 -116
- package/src/stores/linidZoneStore.ts +0 -62
- package/src/types/linidConfiguration.ts +0 -70
- package/src/types/linidZone.ts +0 -48
- package/src/types/module.ts +0 -96
- package/src/types/moduleLifecycle.ts +0 -154
- package/tests/unit/components/LinidZoneRenderer.spec.js +0 -135
- package/tests/unit/lifecycle/skeleton.spec.js +0 -138
- package/tests/unit/services/federationService.spec.js +0 -146
- package/tests/unit/services/httpClientService.spec.js +0 -49
- package/tests/unit/services/linIdConfigurationService.spec.js +0 -113
- package/tests/unit/stores/linIdConfigurationStore.spec.js +0 -171
- package/tests/unit/stores/linidZoneStore.spec.js +0 -94
- package/tsconfig.json +0 -14
- package/tsconfig.lib.json +0 -20
- package/tsconfig.node.json +0 -9
- package/tsconfig.spec.json +0 -16
- package/vite.config.ts +0 -37
- package/vitest.config.ts +0 -19
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2025 Linagora
|
|
3
|
-
*
|
|
4
|
-
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
|
|
5
|
-
* Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option)
|
|
6
|
-
* any later version, provided you comply with the Additional Terms applicable for LinID Identity Manager software by
|
|
7
|
-
* LINAGORA pursuant to Section 7 of the GNU Affero General Public License, subsections (b), (c), and (e), pursuant to
|
|
8
|
-
* which these Appropriate Legal Notices must notably (i) retain the display of the "LinID™" trademark/logo at the top
|
|
9
|
-
* of the interface window, the display of the “You are using the Open Source and free version of LinID™, powered by
|
|
10
|
-
* Linagora © 2009–2013. Contribute to LinID R&D by subscribing to an Enterprise offer!” infobox and in the e-mails
|
|
11
|
-
* sent with the Program, notice appended to any type of outbound messages (e.g. e-mail and meeting requests) as well
|
|
12
|
-
* as in the LinID Identity Manager user interface, (ii) retain all hypertext links between LinID Identity Manager
|
|
13
|
-
* and https://linid.org/, as well as between LINAGORA and LINAGORA.com, and (iii) refrain from infringing LINAGORA
|
|
14
|
-
* intellectual property rights over its trademarks and commercial brands. Other Additional Terms apply, see
|
|
15
|
-
* <http://www.linagora.com/licenses/> for more details.
|
|
16
|
-
*
|
|
17
|
-
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
18
|
-
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
19
|
-
* details.
|
|
20
|
-
*
|
|
21
|
-
* You should have received a copy of the GNU Affero General Public License and its applicable Additional Terms for
|
|
22
|
-
* LinID Identity Manager along with this program. If not, see <http://www.gnu.org/licenses/> for the GNU Affero
|
|
23
|
-
* General Public License version 3 and <http://www.linagora.com/licenses/> for the Additional Terms applicable to the
|
|
24
|
-
* LinID Identity Manager software.
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
import type { AxiosInstance } from 'axios';
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Singleton HTTP client instance shared across all modules.
|
|
31
|
-
*/
|
|
32
|
-
let httpClient: AxiosInstance | null = null;
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Initializes the shared HTTP client instance.
|
|
36
|
-
* Should be called once by the host application during boot.
|
|
37
|
-
* @param client - The Axios instance to use as the shared HTTP client.
|
|
38
|
-
*/
|
|
39
|
-
export function setHttpClient(client: AxiosInstance): void {
|
|
40
|
-
if (httpClient !== null) {
|
|
41
|
-
console.warn(
|
|
42
|
-
'[LinID CoreLib] HTTP client has already been initialized. Re-initialization is ignored.'
|
|
43
|
-
);
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
httpClient = client;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Returns the shared HTTP client instance.
|
|
51
|
-
* Must be called after initialization via `setHttpClient()`.
|
|
52
|
-
* @returns The shared Axios instance.
|
|
53
|
-
*/
|
|
54
|
-
export function getHttpClient(): AxiosInstance {
|
|
55
|
-
if (httpClient === null) {
|
|
56
|
-
throw new Error(
|
|
57
|
-
'[LinID CoreLib] HTTP client is not initialized. Call setHttpClient() first.'
|
|
58
|
-
);
|
|
59
|
-
}
|
|
60
|
-
return httpClient;
|
|
61
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2025 Linagora
|
|
3
|
-
*
|
|
4
|
-
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
|
|
5
|
-
* Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option)
|
|
6
|
-
* any later version, provided you comply with the Additional Terms applicable for LinID Identity Manager software by
|
|
7
|
-
* LINAGORA pursuant to Section 7 of the GNU Affero General Public License, subsections (b), (c), and (e), pursuant to
|
|
8
|
-
* which these Appropriate Legal Notices must notably (i) retain the display of the "LinID™" trademark/logo at the top
|
|
9
|
-
* of the interface window, the display of the “You are using the Open Source and free version of LinID™, powered by
|
|
10
|
-
* Linagora © 2009–2013. Contribute to LinID R&D by subscribing to an Enterprise offer!” infobox and in the e-mails
|
|
11
|
-
* sent with the Program, notice appended to any type of outbound messages (e.g. e-mail and meeting requests) as well
|
|
12
|
-
* as in the LinID Identity Manager user interface, (ii) retain all hypertext links between LinID Identity Manager
|
|
13
|
-
* and https://linid.org/, as well as between LINAGORA and LINAGORA.com, and (iii) refrain from infringing LINAGORA
|
|
14
|
-
* intellectual property rights over its trademarks and commercial brands. Other Additional Terms apply, see
|
|
15
|
-
* <http://www.linagora.com/licenses/> for more details.
|
|
16
|
-
*
|
|
17
|
-
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
18
|
-
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
19
|
-
* details.
|
|
20
|
-
*
|
|
21
|
-
* You should have received a copy of the GNU Affero General Public License and its applicable Additional Terms for
|
|
22
|
-
* LinID Identity Manager along with this program. If not, see <http://www.gnu.org/licenses/> for the GNU Affero
|
|
23
|
-
* General Public License version 3 and <http://www.linagora.com/licenses/> for the Additional Terms applicable to the
|
|
24
|
-
* LinID Identity Manager software.
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
import type {
|
|
28
|
-
LinIdEntityConfiguration,
|
|
29
|
-
LinIdRouteConfiguration,
|
|
30
|
-
} from '../types/linidConfiguration';
|
|
31
|
-
import { getHttpClient } from './httpClientService';
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Service for managing and exposing LinID entity and route configurations.
|
|
35
|
-
* Fetches metadata from the backend API.
|
|
36
|
-
*/
|
|
37
|
-
/**
|
|
38
|
-
* Fetches all entity configurations from the backend.
|
|
39
|
-
* @returns A promise resolving to an array of entity configurations.
|
|
40
|
-
*/
|
|
41
|
-
export async function getEntitiesConfiguration(): Promise<
|
|
42
|
-
LinIdEntityConfiguration[]
|
|
43
|
-
> {
|
|
44
|
-
const response =
|
|
45
|
-
await getHttpClient().get<LinIdEntityConfiguration[]>('/metadata/entities');
|
|
46
|
-
return response.data;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Fetches a specific entity configuration by name.
|
|
51
|
-
* @param entityId - The name/identifier of the entity.
|
|
52
|
-
* @returns A promise resolving to the entity configuration.
|
|
53
|
-
*/
|
|
54
|
-
export async function getEntityConfiguration(
|
|
55
|
-
entityId: string
|
|
56
|
-
): Promise<LinIdEntityConfiguration> {
|
|
57
|
-
const response = await getHttpClient().get<LinIdEntityConfiguration>(
|
|
58
|
-
`/metadata/entities/${entityId}`
|
|
59
|
-
);
|
|
60
|
-
return response.data;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Fetches all route configurations from the backend.
|
|
65
|
-
* @returns A promise resolving to an array of route configurations.
|
|
66
|
-
*/
|
|
67
|
-
export async function getRoutesConfiguration(): Promise<
|
|
68
|
-
LinIdRouteConfiguration[]
|
|
69
|
-
> {
|
|
70
|
-
const response =
|
|
71
|
-
await getHttpClient().get<LinIdRouteConfiguration[]>('/metadata/routes');
|
|
72
|
-
return response.data;
|
|
73
|
-
}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2025 Linagora
|
|
3
|
-
*
|
|
4
|
-
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
|
|
5
|
-
* Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option)
|
|
6
|
-
* any later version, provided you comply with the Additional Terms applicable for LinID Identity Manager software by
|
|
7
|
-
* LINAGORA pursuant to Section 7 of the GNU Affero General Public License, subsections (b), (c), and (e), pursuant to
|
|
8
|
-
* which these Appropriate Legal Notices must notably (i) retain the display of the "LinID™" trademark/logo at the top
|
|
9
|
-
* of the interface window, the display of the “You are using the Open Source and free version of LinID™, powered by
|
|
10
|
-
* Linagora © 2009–2013. Contribute to LinID R&D by subscribing to an Enterprise offer!” infobox and in the e-mails
|
|
11
|
-
* sent with the Program, notice appended to any type of outbound messages (e.g. e-mail and meeting requests) as well
|
|
12
|
-
* as in the LinID Identity Manager user interface, (ii) retain all hypertext links between LinID Identity Manager
|
|
13
|
-
* and https://linid.org/, as well as between LINAGORA and LINAGORA.com, and (iii) refrain from infringing LINAGORA
|
|
14
|
-
* intellectual property rights over its trademarks and commercial brands. Other Additional Terms apply, see
|
|
15
|
-
* <http://www.linagora.com/licenses/> for more details.
|
|
16
|
-
*
|
|
17
|
-
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
18
|
-
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
19
|
-
* details.
|
|
20
|
-
*
|
|
21
|
-
* You should have received a copy of the GNU Affero General Public License and its applicable Additional Terms for
|
|
22
|
-
* LinID Identity Manager along with this program. If not, see <http://www.gnu.org/licenses/> for the GNU Affero
|
|
23
|
-
* General Public License version 3 and <http://www.linagora.com/licenses/> for the Additional Terms applicable to the
|
|
24
|
-
* LinID Identity Manager software.
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
import { defineStore } from 'pinia';
|
|
28
|
-
import {
|
|
29
|
-
getEntitiesConfiguration,
|
|
30
|
-
getRoutesConfiguration,
|
|
31
|
-
} from '../services/linIdConfigurationService';
|
|
32
|
-
import type {
|
|
33
|
-
LinIdEntityConfiguration,
|
|
34
|
-
LinIdRouteConfiguration,
|
|
35
|
-
} from '../types/linidConfiguration';
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* State interface for the LinId Configuration Store.
|
|
39
|
-
*/
|
|
40
|
-
interface LinIdConfigurationState {
|
|
41
|
-
/** List of entity configurations fetched from the backend. */
|
|
42
|
-
entities: LinIdEntityConfiguration[];
|
|
43
|
-
/** List of route configurations fetched from the backend. */
|
|
44
|
-
routes: LinIdRouteConfiguration[];
|
|
45
|
-
/** Indicates if the configuration is currently being loaded. */
|
|
46
|
-
loading: boolean;
|
|
47
|
-
/** Error message if the configuration fetch failed. */
|
|
48
|
-
error: string | null;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Pinia store managing LinID entity and route configurations.
|
|
53
|
-
*
|
|
54
|
-
* Fetches and stores metadata from the backend API.
|
|
55
|
-
*/
|
|
56
|
-
export const useLinIdConfigurationStore = defineStore(
|
|
57
|
-
'linidConfigurationStore',
|
|
58
|
-
{
|
|
59
|
-
state: (): LinIdConfigurationState => ({
|
|
60
|
-
entities: [],
|
|
61
|
-
routes: [],
|
|
62
|
-
loading: false,
|
|
63
|
-
error: null,
|
|
64
|
-
}),
|
|
65
|
-
|
|
66
|
-
getters: {
|
|
67
|
-
/**
|
|
68
|
-
* Returns an entity configuration by name.
|
|
69
|
-
* @param state - The store state.
|
|
70
|
-
* @returns A function that takes an entity name and returns the configuration.
|
|
71
|
-
*/
|
|
72
|
-
getEntityByName:
|
|
73
|
-
(state) =>
|
|
74
|
-
(name: string): LinIdEntityConfiguration | undefined =>
|
|
75
|
-
state.entities.find((entity) => entity.name === name),
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Returns all routes for a specific entity.
|
|
79
|
-
* @param state - The store state.
|
|
80
|
-
* @returns A function that takes an entity name and returns its routes.
|
|
81
|
-
*/
|
|
82
|
-
getRoutesByEntity:
|
|
83
|
-
(state) =>
|
|
84
|
-
(entityName: string): LinIdRouteConfiguration[] =>
|
|
85
|
-
state.routes.filter((route) => route.entity === entityName),
|
|
86
|
-
},
|
|
87
|
-
|
|
88
|
-
actions: {
|
|
89
|
-
/**
|
|
90
|
-
* Fetches all entity and route configurations from the backend.
|
|
91
|
-
*/
|
|
92
|
-
async fetchConfiguration(): Promise<void> {
|
|
93
|
-
this.loading = true;
|
|
94
|
-
this.error = null;
|
|
95
|
-
|
|
96
|
-
try {
|
|
97
|
-
const [entities, routes] = await Promise.all([
|
|
98
|
-
getEntitiesConfiguration(),
|
|
99
|
-
getRoutesConfiguration(),
|
|
100
|
-
]);
|
|
101
|
-
|
|
102
|
-
this.entities = entities;
|
|
103
|
-
this.routes = routes;
|
|
104
|
-
} catch (err) {
|
|
105
|
-
this.error =
|
|
106
|
-
err instanceof Error
|
|
107
|
-
? err.message
|
|
108
|
-
: 'Failed to fetch configuration';
|
|
109
|
-
console.error('[LinID CoreLib] Failed to fetch configuration:', err);
|
|
110
|
-
} finally {
|
|
111
|
-
this.loading = false;
|
|
112
|
-
}
|
|
113
|
-
},
|
|
114
|
-
},
|
|
115
|
-
}
|
|
116
|
-
);
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2025 Linagora
|
|
3
|
-
*
|
|
4
|
-
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
|
|
5
|
-
* Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option)
|
|
6
|
-
* any later version, provided you comply with the Additional Terms applicable for LinID Identity Manager software by
|
|
7
|
-
* LINAGORA pursuant to Section 7 of the GNU Affero General Public License, subsections (b), (c), and (e), pursuant to
|
|
8
|
-
* which these Appropriate Legal Notices must notably (i) retain the display of the "LinID™" trademark/logo at the top
|
|
9
|
-
* of the interface window, the display of the “You are using the Open Source and free version of LinID™, powered by
|
|
10
|
-
* Linagora © 2009–2013. Contribute to LinID R&D by subscribing to an Enterprise offer!” infobox and in the e-mails
|
|
11
|
-
* sent with the Program, notice appended to any type of outbound messages (e.g. e-mail and meeting requests) as well
|
|
12
|
-
* as in the LinID Identity Manager user interface, (ii) retain all hypertext links between LinID Identity Manager
|
|
13
|
-
* and https://linid.org/, as well as between LINAGORA and LINAGORA.com, and (iii) refrain from infringing LINAGORA
|
|
14
|
-
* intellectual property rights over its trademarks and commercial brands. Other Additional Terms apply, see
|
|
15
|
-
* <http://www.linagora.com/licenses/> for more details.
|
|
16
|
-
*
|
|
17
|
-
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
18
|
-
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
19
|
-
* details.
|
|
20
|
-
*
|
|
21
|
-
* You should have received a copy of the GNU Affero General Public License and its applicable Additional Terms for
|
|
22
|
-
* LinID Identity Manager along with this program. If not, see <http://www.gnu.org/licenses/> for the GNU Affero
|
|
23
|
-
* General Public License version 3 and <http://www.linagora.com/licenses/> for the Additional Terms applicable to the
|
|
24
|
-
* LinID Identity Manager software.
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
import { defineStore } from 'pinia';
|
|
28
|
-
import type { LinidZoneEntry } from '../types/linidZone';
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* State interface for the Linid Zone Store.
|
|
32
|
-
*/
|
|
33
|
-
interface LinidZoneState {
|
|
34
|
-
/** Map of zone names to their registered entries. */
|
|
35
|
-
zones: Record<string, LinidZoneEntry[]>;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Pinia store managing Linid zones and their registered entries.
|
|
40
|
-
*
|
|
41
|
-
* Each zone can contain multiple {@link LinidZoneEntry} objects,
|
|
42
|
-
* and this store provides utilities to register them dynamically.
|
|
43
|
-
*/
|
|
44
|
-
export const useLinidZoneStore = defineStore('linidZoneStore', {
|
|
45
|
-
state: (): LinidZoneState => ({
|
|
46
|
-
zones: {},
|
|
47
|
-
}),
|
|
48
|
-
|
|
49
|
-
actions: {
|
|
50
|
-
/**
|
|
51
|
-
* Register a new entry in a specified zone.
|
|
52
|
-
* @param zone - The name of the zone.
|
|
53
|
-
* @param entry - The entry to register.
|
|
54
|
-
*/
|
|
55
|
-
register(zone: string, entry: LinidZoneEntry): void {
|
|
56
|
-
if (!this.zones[zone]) {
|
|
57
|
-
this.zones[zone] = [];
|
|
58
|
-
}
|
|
59
|
-
this.zones[zone].push(entry);
|
|
60
|
-
},
|
|
61
|
-
},
|
|
62
|
-
});
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2025 Linagora
|
|
3
|
-
*
|
|
4
|
-
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
|
|
5
|
-
* Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option)
|
|
6
|
-
* any later version, provided you comply with the Additional Terms applicable for LinID Identity Manager software by
|
|
7
|
-
* LINAGORA pursuant to Section 7 of the GNU Affero General Public License, subsections (b), (c), and (e), pursuant to
|
|
8
|
-
* which these Appropriate Legal Notices must notably (i) retain the display of the "LinID™" trademark/logo at the top
|
|
9
|
-
* of the interface window, the display of the “You are using the Open Source and free version of LinID™, powered by
|
|
10
|
-
* Linagora © 2009–2013. Contribute to LinID R&D by subscribing to an Enterprise offer!” infobox and in the e-mails
|
|
11
|
-
* sent with the Program, notice appended to any type of outbound messages (e.g. e-mail and meeting requests) as well
|
|
12
|
-
* as in the LinID Identity Manager user interface, (ii) retain all hypertext links between LinID Identity Manager
|
|
13
|
-
* and https://linid.org/, as well as between LINAGORA and LINAGORA.com, and (iii) refrain from infringing LINAGORA
|
|
14
|
-
* intellectual property rights over its trademarks and commercial brands. Other Additional Terms apply, see
|
|
15
|
-
* <http://www.linagora.com/licenses/> for more details.
|
|
16
|
-
*
|
|
17
|
-
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
18
|
-
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
19
|
-
* details.
|
|
20
|
-
*
|
|
21
|
-
* You should have received a copy of the GNU Affero General Public License and its applicable Additional Terms for
|
|
22
|
-
* LinID Identity Manager along with this program. If not, see <http://www.gnu.org/licenses/> for the GNU Affero
|
|
23
|
-
* General Public License version 3 and <http://www.linagora.com/licenses/> for the Additional Terms applicable to the
|
|
24
|
-
* LinID Identity Manager software.
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Describes a single attribute of an entity.
|
|
29
|
-
* Corresponds to `AttributeDescription` from the backend API.
|
|
30
|
-
*/
|
|
31
|
-
export interface LinIdAttributeConfiguration {
|
|
32
|
-
/** The name of the attribute (e.g., "email"). */
|
|
33
|
-
name: string;
|
|
34
|
-
/** The backend type of the attribute (e.g., "string", "integer"). */
|
|
35
|
-
type: string;
|
|
36
|
-
/** Whether the attribute is required. */
|
|
37
|
-
required: boolean;
|
|
38
|
-
/** Whether the attribute has validation rules. */
|
|
39
|
-
hasValidations: boolean;
|
|
40
|
-
/** The UI input type to be used on the front-end (e.g., "text", "select"). */
|
|
41
|
-
input: string;
|
|
42
|
-
/** Settings for the input (e.g., options, placeholder). */
|
|
43
|
-
inputSettings: Record<string, unknown>;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Represents the configuration of an entity declared in the application.
|
|
48
|
-
* Returned by the `/metadata/entities` endpoint.
|
|
49
|
-
*/
|
|
50
|
-
export interface LinIdEntityConfiguration {
|
|
51
|
-
/** The name of the entity (e.g., "user", "group"). */
|
|
52
|
-
name: string;
|
|
53
|
-
/** The list of attributes defined for this entity. */
|
|
54
|
-
attributes: LinIdAttributeConfiguration[];
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Represents a REST route configuration exposed by the application.
|
|
59
|
-
* Returned by the `/metadata/routes` endpoint.
|
|
60
|
-
*/
|
|
61
|
-
export interface LinIdRouteConfiguration {
|
|
62
|
-
/** The HTTP method (e.g., "GET", "POST", "PUT", "DELETE"). */
|
|
63
|
-
method: string;
|
|
64
|
-
/** The full route path (e.g., "/entities/{entity}"). */
|
|
65
|
-
path: string;
|
|
66
|
-
/** The name of the entity this route is related to; may be null for generic routes. */
|
|
67
|
-
entity: string | null;
|
|
68
|
-
/** The list of path variable names used in the route (e.g., ["entity", "id"]). */
|
|
69
|
-
variables: string[];
|
|
70
|
-
}
|
package/src/types/linidZone.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2025 Linagora
|
|
3
|
-
*
|
|
4
|
-
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
|
|
5
|
-
* Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option)
|
|
6
|
-
* any later version, provided you comply with the Additional Terms applicable for LinID Identity Manager software by
|
|
7
|
-
* LINAGORA pursuant to Section 7 of the GNU Affero General Public License, subsections (b), (c), and (e), pursuant to
|
|
8
|
-
* which these Appropriate Legal Notices must notably (i) retain the display of the "LinID™" trademark/logo at the top
|
|
9
|
-
* of the interface window, the display of the “You are using the Open Source and free version of LinID™, powered by
|
|
10
|
-
* Linagora © 2009–2013. Contribute to LinID R&D by subscribing to an Enterprise offer!” infobox and in the e-mails
|
|
11
|
-
* sent with the Program, notice appended to any type of outbound messages (e.g. e-mail and meeting requests) as well
|
|
12
|
-
* as in the LinID Identity Manager user interface, (ii) retain all hypertext links between LinID Identity Manager
|
|
13
|
-
* and https://linid.org/, as well as between LINAGORA and LINAGORA.com, and (iii) refrain from infringing LINAGORA
|
|
14
|
-
* intellectual property rights over its trademarks and commercial brands. Other Additional Terms apply, see
|
|
15
|
-
* <http://www.linagora.com/licenses/> for more details.
|
|
16
|
-
*
|
|
17
|
-
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
18
|
-
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
19
|
-
* details.
|
|
20
|
-
*
|
|
21
|
-
* You should have received a copy of the GNU Affero General Public License and its applicable Additional Terms for
|
|
22
|
-
* LinID Identity Manager along with this program. If not, see <http://www.gnu.org/licenses/> for the GNU Affero
|
|
23
|
-
* General Public License version 3 and <http://www.linagora.com/licenses/> for the Additional Terms applicable to the
|
|
24
|
-
* LinID Identity Manager software.
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Represents a single entry registered within a Linid Zone.
|
|
29
|
-
*
|
|
30
|
-
* Each entry corresponds to a component provided by a plugin,
|
|
31
|
-
* and can optionally define props to configure that component.
|
|
32
|
-
*/
|
|
33
|
-
export interface LinidZoneEntry {
|
|
34
|
-
/**
|
|
35
|
-
* The unique plugin identifier that registered this entry.
|
|
36
|
-
*
|
|
37
|
-
* Typically corresponds to the plugin name or package name.
|
|
38
|
-
*/
|
|
39
|
-
plugin: string;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Optional props to be passed to the rendered component.
|
|
43
|
-
*
|
|
44
|
-
* The keys are prop names, and the values are Vue components or objects
|
|
45
|
-
* compatible with Vue’s component system.
|
|
46
|
-
*/
|
|
47
|
-
props?: Record<string, unknown>;
|
|
48
|
-
}
|
package/src/types/module.ts
DELETED
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (C) 2025 Linagora
|
|
3
|
-
*
|
|
4
|
-
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
|
|
5
|
-
* Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option)
|
|
6
|
-
* any later version, provided you comply with the Additional Terms applicable for LinID Identity Manager software by
|
|
7
|
-
* LINAGORA pursuant to Section 7 of the GNU Affero General Public License, subsections (b), (c), and (e), pursuant to
|
|
8
|
-
* which these Appropriate Legal Notices must notably (i) retain the display of the "LinID™" trademark/logo at the top
|
|
9
|
-
* of the interface window, the display of the “You are using the Open Source and free version of LinID™, powered by
|
|
10
|
-
* Linagora © 2009–2013. Contribute to LinID R&D by subscribing to an Enterprise offer!” infobox and in the e-mails
|
|
11
|
-
* sent with the Program, notice appended to any type of outbound messages (e.g. e-mail and meeting requests) as well
|
|
12
|
-
* as in the LinID Identity Manager user interface, (ii) retain all hypertext links between LinID Identity Manager
|
|
13
|
-
* and https://linid.org/, as well as between LINAGORA and LINAGORA.com, and (iii) refrain from infringing LINAGORA
|
|
14
|
-
* intellectual property rights over its trademarks and commercial brands. Other Additional Terms apply, see
|
|
15
|
-
* <http://www.linagora.com/licenses/> for more details.
|
|
16
|
-
*
|
|
17
|
-
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
18
|
-
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
19
|
-
* details.
|
|
20
|
-
*
|
|
21
|
-
* You should have received a copy of the GNU Affero General Public License and its applicable Additional Terms for
|
|
22
|
-
* LinID Identity Manager along with this program. If not, see <http://www.gnu.org/licenses/> for the GNU Affero
|
|
23
|
-
* General Public License version 3 and <http://www.linagora.com/licenses/> for the Additional Terms applicable to the
|
|
24
|
-
* LinID Identity Manager software.
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
import type { Component } from 'vue';
|
|
28
|
-
import type { ModuleLifecycleHooks } from './moduleLifecycle';
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Remote module interface.
|
|
32
|
-
*
|
|
33
|
-
* All remote modules exposed via Module Federation should implement this interface.
|
|
34
|
-
* This is the contract between the host application and remote modules.
|
|
35
|
-
*/
|
|
36
|
-
export interface RemoteModule extends ModuleLifecycleHooks {
|
|
37
|
-
/**
|
|
38
|
-
* Unique identifier for the module.
|
|
39
|
-
*
|
|
40
|
-
* Should be in kebab-case and match the ID in the module configuration.
|
|
41
|
-
*/
|
|
42
|
-
id: string;
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Human-readable name of the module.
|
|
46
|
-
*/
|
|
47
|
-
name: string;
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Version of the module.
|
|
51
|
-
*
|
|
52
|
-
* Should follow semantic versioning (semver).
|
|
53
|
-
*/
|
|
54
|
-
version: string;
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Optional description of the module.
|
|
58
|
-
*
|
|
59
|
-
* Provide a brief description of what the module does.
|
|
60
|
-
*/
|
|
61
|
-
description?: string;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Module configuration in the host (module-<name>.json).
|
|
66
|
-
*
|
|
67
|
-
* This is what the host provides to each module during the configuration phase.
|
|
68
|
-
* The host reads this from `module-<name>.json` files.
|
|
69
|
-
*/
|
|
70
|
-
export interface ModuleHostConfig {
|
|
71
|
-
/**
|
|
72
|
-
* Unique module identifier (kebab-case).
|
|
73
|
-
*
|
|
74
|
-
* Must match the module's exported `id` field.
|
|
75
|
-
*/
|
|
76
|
-
id: string;
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Module Federation remote name (must match a key in remotes.json).
|
|
80
|
-
*
|
|
81
|
-
* This is the name used to load the remote module via Module Federation.
|
|
82
|
-
*/
|
|
83
|
-
remoteName: string;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Module structure for a Vue component exposed via Module Federation.
|
|
88
|
-
*
|
|
89
|
-
* Remote modules must export a Vue component as their default export.
|
|
90
|
-
*/
|
|
91
|
-
export interface RemoteComponentModule {
|
|
92
|
-
/**
|
|
93
|
-
* The default exported Vue component.
|
|
94
|
-
*/
|
|
95
|
-
default: Component;
|
|
96
|
-
}
|