@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,147 +0,0 @@
|
|
|
1
|
-
name: Pull request
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
pull_request:
|
|
5
|
-
types: [opened, synchronize, reopened]
|
|
6
|
-
|
|
7
|
-
env:
|
|
8
|
-
NODE_VERSION: 22.19
|
|
9
|
-
PNPM_VERSION: 10.25.0
|
|
10
|
-
|
|
11
|
-
jobs:
|
|
12
|
-
delete-comments:
|
|
13
|
-
name: Delete bot comment(s)
|
|
14
|
-
runs-on: ubuntu-latest
|
|
15
|
-
steps:
|
|
16
|
-
- uses: izhangzhihao/delete-comment@master
|
|
17
|
-
with:
|
|
18
|
-
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
19
|
-
delete_user_name: github-actions[bot]
|
|
20
|
-
issue_number: ${{ github.event.number }}
|
|
21
|
-
|
|
22
|
-
branch-naming-rules:
|
|
23
|
-
name: Check branch name
|
|
24
|
-
runs-on: ubuntu-latest
|
|
25
|
-
steps:
|
|
26
|
-
- uses: deepakputhraya/action-branch-name@master
|
|
27
|
-
with:
|
|
28
|
-
regex: '^(feature|bugfix|improvement|release|hotfix)\/[a-z0-9_.-]+$'
|
|
29
|
-
allowed_prefixes: 'feature,bugfix,improvement,release,hotfix'
|
|
30
|
-
ignore: main
|
|
31
|
-
min_length: 5
|
|
32
|
-
max_length: 50
|
|
33
|
-
|
|
34
|
-
build:
|
|
35
|
-
name: Setup app
|
|
36
|
-
runs-on: ubuntu-latest
|
|
37
|
-
steps:
|
|
38
|
-
- uses: actions/checkout@v4
|
|
39
|
-
|
|
40
|
-
- name: Setup Node.js and pnpm
|
|
41
|
-
uses: ./.github/actions/setup-node-pnpm
|
|
42
|
-
with:
|
|
43
|
-
node-version: ${{ env.NODE_VERSION }}
|
|
44
|
-
pnpm-version: ${{ env.PNPM_VERSION }}
|
|
45
|
-
|
|
46
|
-
- name: Build application
|
|
47
|
-
run: pnpm build
|
|
48
|
-
|
|
49
|
-
commit-checks:
|
|
50
|
-
name: Check commit messages
|
|
51
|
-
runs-on: ubuntu-latest
|
|
52
|
-
needs: [build]
|
|
53
|
-
steps:
|
|
54
|
-
- uses: actions/checkout@v4
|
|
55
|
-
with:
|
|
56
|
-
fetch-depth: 0
|
|
57
|
-
|
|
58
|
-
- name: Setup Node.js and pnpm
|
|
59
|
-
uses: ./.github/actions/setup-node-pnpm
|
|
60
|
-
with:
|
|
61
|
-
node-version: ${{ env.NODE_VERSION }}
|
|
62
|
-
pnpm-version: ${{ env.PNPM_VERSION }}
|
|
63
|
-
|
|
64
|
-
- name: Install commitlint
|
|
65
|
-
run: pnpm add -D @commitlint/config-conventional @commitlint/cli
|
|
66
|
-
|
|
67
|
-
- name: Run commitlint
|
|
68
|
-
run: |
|
|
69
|
-
echo "module.exports = { extends: ['@commitlint/config-conventional'] };" > commitlint.config.cjs
|
|
70
|
-
pnpm exec commitlint --from=origin/main --to=HEAD --verbose
|
|
71
|
-
|
|
72
|
-
check-dependencies:
|
|
73
|
-
name: Check dependencies
|
|
74
|
-
runs-on: ubuntu-latest
|
|
75
|
-
needs: [build]
|
|
76
|
-
steps:
|
|
77
|
-
- uses: actions/checkout@v4
|
|
78
|
-
|
|
79
|
-
- name: Setup Node.js and pnpm
|
|
80
|
-
uses: ./.github/actions/setup-node-pnpm
|
|
81
|
-
with:
|
|
82
|
-
node-version: ${{ env.NODE_VERSION }}
|
|
83
|
-
pnpm-version: ${{ env.PNPM_VERSION }}
|
|
84
|
-
|
|
85
|
-
- name: Check outdated dependencies
|
|
86
|
-
run: |
|
|
87
|
-
pnpm add -D npm-check-updates
|
|
88
|
-
echo '```bash' > dependencies.txt
|
|
89
|
-
npx ncu >> dependencies.txt
|
|
90
|
-
echo '```' >> dependencies.txt
|
|
91
|
-
|
|
92
|
-
- name: Comment PR
|
|
93
|
-
uses: JoseThen/comment-pr@v1.2.0
|
|
94
|
-
with:
|
|
95
|
-
file_path: ./dependencies.txt
|
|
96
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
97
|
-
|
|
98
|
-
check-style:
|
|
99
|
-
name: Code style
|
|
100
|
-
runs-on: ubuntu-latest
|
|
101
|
-
needs: [build]
|
|
102
|
-
steps:
|
|
103
|
-
- uses: actions/checkout@v4
|
|
104
|
-
|
|
105
|
-
- name: Setup Node.js and pnpm
|
|
106
|
-
uses: ./.github/actions/setup-node-pnpm
|
|
107
|
-
with:
|
|
108
|
-
node-version: ${{ env.NODE_VERSION }}
|
|
109
|
-
pnpm-version: ${{ env.PNPM_VERSION }}
|
|
110
|
-
|
|
111
|
-
- name: Check style
|
|
112
|
-
run: pnpm validate
|
|
113
|
-
|
|
114
|
-
security-check:
|
|
115
|
-
name: Supply Chain Malware Scan
|
|
116
|
-
runs-on: ubuntu-latest
|
|
117
|
-
steps:
|
|
118
|
-
- uses: actions/checkout@v4
|
|
119
|
-
|
|
120
|
-
- uses: gensecaihq/Shai-Hulud-2.0-Detector@v1
|
|
121
|
-
with:
|
|
122
|
-
fail-on-critical: true
|
|
123
|
-
|
|
124
|
-
unit-tests:
|
|
125
|
-
name: Unit tests
|
|
126
|
-
runs-on: ubuntu-latest
|
|
127
|
-
needs: [build]
|
|
128
|
-
steps:
|
|
129
|
-
- uses: actions/checkout@v4
|
|
130
|
-
|
|
131
|
-
- name: Setup Node.js and pnpm
|
|
132
|
-
uses: ./.github/actions/setup-node-pnpm
|
|
133
|
-
with:
|
|
134
|
-
node-version: ${{ env.NODE_VERSION }}
|
|
135
|
-
pnpm-version: ${{ env.PNPM_VERSION }}
|
|
136
|
-
|
|
137
|
-
- name: Run unit tests
|
|
138
|
-
run: |
|
|
139
|
-
echo '```bash' > coverage.txt
|
|
140
|
-
pnpm test:ci | sed 's/\x1b\[[0-9;]*m//g' >> coverage.txt
|
|
141
|
-
echo '```' >> coverage.txt
|
|
142
|
-
|
|
143
|
-
- name: Comment PR
|
|
144
|
-
uses: JoseThen/comment-pr@v1.2.0
|
|
145
|
-
with:
|
|
146
|
-
file_path: ./coverage.txt
|
|
147
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
name: Release
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches:
|
|
6
|
-
- main
|
|
7
|
-
|
|
8
|
-
env:
|
|
9
|
-
NODE_VERSION: 22.19
|
|
10
|
-
PNPM_VERSION: 10.25.0
|
|
11
|
-
|
|
12
|
-
permissions:
|
|
13
|
-
contents: write
|
|
14
|
-
issues: write
|
|
15
|
-
pull-requests: write
|
|
16
|
-
|
|
17
|
-
jobs:
|
|
18
|
-
release:
|
|
19
|
-
name: Release with Release Please
|
|
20
|
-
runs-on: ubuntu-latest
|
|
21
|
-
outputs:
|
|
22
|
-
release_created: ${{ steps.set_output.outputs.release_created }}
|
|
23
|
-
steps:
|
|
24
|
-
- name: Checkout repository
|
|
25
|
-
uses: actions/checkout@v4
|
|
26
|
-
with:
|
|
27
|
-
fetch-depth: 0
|
|
28
|
-
|
|
29
|
-
- name: Setup Node.js and pnpm
|
|
30
|
-
uses: ./.github/actions/setup-node-pnpm
|
|
31
|
-
with:
|
|
32
|
-
node-version: ${{ env.NODE_VERSION }}
|
|
33
|
-
pnpm-version: ${{ env.PNPM_VERSION }}
|
|
34
|
-
|
|
35
|
-
- name: Run release
|
|
36
|
-
run: |
|
|
37
|
-
git config user.name "github-actions[bot]"
|
|
38
|
-
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
39
|
-
pnpx standard-version
|
|
40
|
-
|
|
41
|
-
- name: Push changes and tags
|
|
42
|
-
run: |
|
|
43
|
-
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
|
|
44
|
-
git push origin main
|
|
45
|
-
git push origin --tags
|
|
46
|
-
|
|
47
|
-
- name: Set release_created output
|
|
48
|
-
id: set_output
|
|
49
|
-
run: |
|
|
50
|
-
TAG=$(git describe --tags --abbrev=0)
|
|
51
|
-
PREV_TAG=$(git describe --tags --abbrev=0 $(git rev-list --tags --skip=1 --max-count=1))
|
|
52
|
-
if [ "$TAG" != "$PREV_TAG" ]; then
|
|
53
|
-
echo "release_created=true" >> $GITHUB_OUTPUT
|
|
54
|
-
else
|
|
55
|
-
echo "release_created=false" >> $GITHUB_OUTPUT
|
|
56
|
-
fi
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
publish-npm:
|
|
60
|
-
name: Publish to npm
|
|
61
|
-
runs-on: ubuntu-latest
|
|
62
|
-
needs: [release]
|
|
63
|
-
if: ${{ needs.release.outputs.release_created == 'true' }}
|
|
64
|
-
steps:
|
|
65
|
-
- name: Checkout repository
|
|
66
|
-
uses: actions/checkout@v4
|
|
67
|
-
with:
|
|
68
|
-
fetch-depth: 0
|
|
69
|
-
|
|
70
|
-
- name: Fetch all tags
|
|
71
|
-
run: git fetch --tags --force
|
|
72
|
-
|
|
73
|
-
- name: Checkout latest tag
|
|
74
|
-
run: |
|
|
75
|
-
LATEST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
|
|
76
|
-
git checkout $LATEST_TAG
|
|
77
|
-
|
|
78
|
-
- name: Setup Node.js and pnpm
|
|
79
|
-
uses: ./.github/actions/setup-node-pnpm
|
|
80
|
-
with:
|
|
81
|
-
node-version: ${{ env.NODE_VERSION }}
|
|
82
|
-
pnpm-version: ${{ env.PNPM_VERSION }}
|
|
83
|
-
|
|
84
|
-
- name: Build library
|
|
85
|
-
run: pnpm build
|
|
86
|
-
|
|
87
|
-
- name: Publish to npm
|
|
88
|
-
run: pnpm publish --access public --no-git-checks
|
|
89
|
-
env:
|
|
90
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN_IN_VAULT }}
|
package/.prettierignore
DELETED
package/.prettierrc.json
DELETED
package/.vscode/extensions.json
DELETED
package/.vscode/settings.json
DELETED
package/CHANGELOG.md
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
|
-
|
|
5
|
-
### [0.0.6](https://github.com/linagora/linid-im-front-corelib/compare/v0.0.5...v0.0.6) (2025-12-10)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
### Features
|
|
9
|
-
|
|
10
|
-
* **exports:** expose configuration store, services and types ([7a4aed0](https://github.com/linagora/linid-im-front-corelib/commit/7a4aed0c586e9a695979a748293381c5127bbe43))
|
|
11
|
-
* **services:** add LinIdConfigurationService for metadata API calls ([6668028](https://github.com/linagora/linid-im-front-corelib/commit/66680287ee87b380419760244fc7aad126eeca74))
|
|
12
|
-
* **services:** add singleton HTTP client wrapper ([5cf56fe](https://github.com/linagora/linid-im-front-corelib/commit/5cf56fef21ba2226ba02eaaf1f66b1679ad27b6d))
|
|
13
|
-
* **stores:** add LinIdConfigurationStore for entity and route metadata ([e706fee](https://github.com/linagora/linid-im-front-corelib/commit/e706fee22552612c63131c8c2dd4f32604a2005b))
|
|
14
|
-
* **types:** add LinId entity and route configuration interfaces ([e9e874b](https://github.com/linagora/linid-im-front-corelib/commit/e9e874b055160943ba711c9b5b1ae3f21f37f11c))
|
|
15
|
-
|
|
16
|
-
### [0.0.5](https://github.com/linagora/linid-im-front-corelib/compare/v0.0.4...v0.0.5) (2025-12-03)
|
|
17
|
-
|
|
18
|
-
### [0.0.4](https://github.com/linagora/linid-im-front-corelib/compare/v0.0.3...v0.0.4) (2025-12-01)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
### Features
|
|
22
|
-
|
|
23
|
-
* add lifecycle in RemoteModule and remove app usage ([04d0163](https://github.com/linagora/linid-im-front-corelib/commit/04d01635a3711168daa50c58e7a0c6dba7abdeaa))
|
|
24
|
-
|
|
25
|
-
### [0.0.3](https://github.com/linagora/linid-im-front-corelib/compare/v0.0.2...v0.0.3) (2025-11-28)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
### Bug Fixes
|
|
29
|
-
|
|
30
|
-
* retrieve valid tag for npm release ([f295e3c](https://github.com/linagora/linid-im-front-corelib/commit/f295e3c54d27b6f42970b50ccb6fd856966aa776))
|
|
31
|
-
|
|
32
|
-
### [0.0.2](https://github.com/linagora/linid-im-front-corelib/compare/v0.0.1...v0.0.2) (2025-11-28)
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
### Features
|
|
36
|
-
|
|
37
|
-
* add module lifecycle skeleton class ([c2332e2](https://github.com/linagora/linid-im-front-corelib/commit/c2332e25fee58a148faaf63ec5c1ebf2b9ea7b17))
|
|
38
|
-
* add module lifecycle type definitions ([6c6beb3](https://github.com/linagora/linid-im-front-corelib/commit/6c6beb3675f6810f2f7d106f1572d98111df4af2))
|
|
39
|
-
* export module lifecycle types and utilities ([691a2ec](https://github.com/linagora/linid-im-front-corelib/commit/691a2ec86f472cadd3cb1cbe80525de25f4bb995))
|
|
40
|
-
* expose source files via exports field ([cf87a3d](https://github.com/linagora/linid-im-front-corelib/commit/cf87a3d8626f399675c52419c2bff7d46b0e3521))
|
|
41
|
-
* load zone component with module-federation/enhanced ([858ffce](https://github.com/linagora/linid-im-front-corelib/commit/858ffce1f91aca52506559b5eb070a96e0a42fad))
|
|
42
|
-
* migrate project to use pnpm ([d00cb63](https://github.com/linagora/linid-im-front-corelib/commit/d00cb638c311058ff5bf1dadeac799df1d2ebc45))
|
|
43
|
-
* setup library ([774e827](https://github.com/linagora/linid-im-front-corelib/commit/774e8279334c087407615ff4e1217edbc206eeda))
|
|
44
|
-
* setup pull-request workflow ([1094c6a](https://github.com/linagora/linid-im-front-corelib/commit/1094c6a3340fc3e8d57b2b6f94dcf938cdecca46))
|
|
45
|
-
* setup release workflow ([18a9c0b](https://github.com/linagora/linid-im-front-corelib/commit/18a9c0bc98f9cdb9e2c007a71e0ea500c684f83b))
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
### Bug Fixes
|
|
49
|
-
|
|
50
|
-
* **lint:** warning message of missing jsdoc in ArrowFunctionExpression ([a95b065](https://github.com/linagora/linid-im-front-corelib/commit/a95b0657d9afe69ccf08a8d9da22cdd1007262ae))
|
|
51
|
-
* remove redundant config with the modules.json file ([f3614cc](https://github.com/linagora/linid-im-front-corelib/commit/f3614cc6bb4a97574ccf09543b46fb5b25fcdc24))
|
package/CONTRIBUTING.md
DELETED
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
# **CONTRIBUTING 🤝**
|
|
2
|
-
|
|
3
|
-
Thank you for contributing to **linid-im-front-corelib**, the core front-end library of the LinID Identity Manager platform.
|
|
4
|
-
This document explains the conventions, workflows, and best practices to follow when contributing.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# **📌 Git Conventions**
|
|
9
|
-
|
|
10
|
-
## **🌿 Branch Naming**
|
|
11
|
-
|
|
12
|
-
All branches must follow one of the following naming patterns:
|
|
13
|
-
|
|
14
|
-
| Type | Pattern | Example |
|
|
15
|
-
| --------------- | --------------------------------- | --------------------------------- |
|
|
16
|
-
| **Main** | `main` or `dev` | `main` |
|
|
17
|
-
| **Feature** | `feature/<short-description>` | `feature/plugin-zone-support` |
|
|
18
|
-
| **Bugfix** | `bugfix/<short-description>` | `bugfix/fix-null-validation` |
|
|
19
|
-
| **Improvement** | `improvement/<short-description>` | `improvement/refactor-core-types` |
|
|
20
|
-
| **Release** | `release/<version>` | `release/1.2.0` |
|
|
21
|
-
| **Hotfix** | `hotfix/<short-description>` | `hotfix/fix-critical-crash` |
|
|
22
|
-
|
|
23
|
-
### **Rules**
|
|
24
|
-
|
|
25
|
-
- ✔ Allowed characters: lowercase letters, numbers, dashes (`-`), underscores (`_`), and dots (`.`)
|
|
26
|
-
- ✔ Names must be concise and descriptive
|
|
27
|
-
- ✔ Use English keywords and descriptions
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## **📝 Commit Message Format (Conventional Commits)**
|
|
32
|
-
|
|
33
|
-
We follow the **Conventional Commits** specification:
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
<type>(<scope>): <short summary>
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### **Accepted types**
|
|
40
|
-
|
|
41
|
-
* **feat** – Introduces, updates, or removes a feature in the API or UI
|
|
42
|
-
* **fix** – Resolves a bug in the API or UI originating from a previous feature
|
|
43
|
-
* **refactor** – Rewrites or restructures code without changing API or UI behavior
|
|
44
|
-
* **perf** – A specialized refactor focused on improving performance
|
|
45
|
-
* **style** – Addresses code style issues (e.g., whitespace, formatting, missing semicolons) without affecting behavior
|
|
46
|
-
* **test** – Adds missing tests or updates existing tests
|
|
47
|
-
* **docs** – Documentation-only changes
|
|
48
|
-
* **build** – Modifies build-related components (tooling, dependencies, versioning, CI/CD, etc.)
|
|
49
|
-
* **ops** – Changes to operational or infrastructure components (deployment, backup, recovery, etc.)
|
|
50
|
-
* **chore** – Miscellaneous maintenance tasks (e.g., updating `.gitignore`)
|
|
51
|
-
|
|
52
|
-
### **Examples**
|
|
53
|
-
|
|
54
|
-
```
|
|
55
|
-
feat(core): add identity validation helpers
|
|
56
|
-
fix(plugins): prevent crash on remote loading
|
|
57
|
-
docs(contributing): add commit format rules
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
## **🔏 Commit Signing (GPG)**
|
|
63
|
-
|
|
64
|
-
All commits **must be GPG-signed**:
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
git commit -S -m "feat(core): add new service"
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
Unsigned commits will be rejected.
|
|
71
|
-
If you need help setting up GPG signing, refer to your Git hosting provider’s documentation.
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
# **📚 Documentation Guidelines**
|
|
76
|
-
|
|
77
|
-
## **📁 Documentation Directory**
|
|
78
|
-
|
|
79
|
-
All functional or technical documentation must be placed inside:
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
/docs
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
Please keep this folder organized and up to date.
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## **📊 Diagrams with Mermaid**
|
|
90
|
-
|
|
91
|
-
We use **Mermaid** for architecture diagrams, flowcharts, sequence diagrams, etc.
|
|
92
|
-
|
|
93
|
-
* Source files must be `.md` or `.mmd`
|
|
94
|
-
* They must be stored in the `docs` directory
|
|
95
|
-
* Generated images must be committed together with source files
|
|
96
|
-
|
|
97
|
-
### **Install Mermaid CLI**
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
npm install -g @mermaid-js/mermaid-cli
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### **Generate a PNG**
|
|
104
|
-
|
|
105
|
-
```bash
|
|
106
|
-
mmdc -i docs/diagram.mmd -o docs/diagram.png
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
💡 Any modification to a Mermaid diagram **must include** regeneration of the corresponding PNG.
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
# **🚀 Development**
|
|
114
|
-
|
|
115
|
-
This project uses **pnpm** as the preferred package manager.
|
|
116
|
-
Node.js **22.19+** is recommended.
|
|
117
|
-
|
|
118
|
-
## **📦 Installation**
|
|
119
|
-
|
|
120
|
-
### ⭐ Quick Start
|
|
121
|
-
|
|
122
|
-
```sh
|
|
123
|
-
corepack enable
|
|
124
|
-
pnpm install
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
### Using pnpm (recommended)
|
|
128
|
-
|
|
129
|
-
```sh
|
|
130
|
-
pnpm install
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
### Using npm (legacy support and not recommended by the dev team)
|
|
134
|
-
|
|
135
|
-
```sh
|
|
136
|
-
npm install
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## **🛠️ Build the Library**
|
|
142
|
-
|
|
143
|
-
```sh
|
|
144
|
-
pnpm build
|
|
145
|
-
# or (not recommended by the dev team)
|
|
146
|
-
npm run build
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
---
|
|
150
|
-
|
|
151
|
-
## **🔧 Development Mode**
|
|
152
|
-
|
|
153
|
-
```sh
|
|
154
|
-
pnpm dev
|
|
155
|
-
# or (not recommended by the dev team)
|
|
156
|
-
npm run dev
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
## **🧪 Run Tests**
|
|
162
|
-
|
|
163
|
-
```sh
|
|
164
|
-
pnpm test # Runs the full test suite once
|
|
165
|
-
pnpm test:watch # Runs tests in watch mode
|
|
166
|
-
pnpm test:coverage # Generates a coverage report
|
|
167
|
-
|
|
168
|
-
# or (not recommended by the dev team)
|
|
169
|
-
npm run test # Runs the full test suite once
|
|
170
|
-
npm run test:watch # Runs tests in watch mode
|
|
171
|
-
npm run test:coverage # Generates a coverage report
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
---
|
|
175
|
-
|
|
176
|
-
# **🧼 Code Quality**
|
|
177
|
-
|
|
178
|
-
We use **ESLint**, **Prettier**, and **TypeScript** to enforce consistent code style and reliability.
|
|
179
|
-
|
|
180
|
-
## **🔍 Lint**
|
|
181
|
-
|
|
182
|
-
```sh
|
|
183
|
-
pnpm lint
|
|
184
|
-
pnpm lint:fix
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
## **🎨 Format**
|
|
188
|
-
|
|
189
|
-
```sh
|
|
190
|
-
pnpm format
|
|
191
|
-
pnpm format:check
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
## **📘 Type Checking**
|
|
195
|
-
|
|
196
|
-
```sh
|
|
197
|
-
pnpm type-check
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
## **✔ Full Validation**
|
|
201
|
-
|
|
202
|
-
```sh
|
|
203
|
-
pnpm validate
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
## Copyright Headers
|
|
207
|
-
|
|
208
|
-
All source files located in the `src` folder must contain a copyright header at the beginning of the file. This header is based on the content of the `COPYRIGHT` file at the project root.
|
|
209
|
-
|
|
210
|
-
### Affected Files
|
|
211
|
-
|
|
212
|
-
Copyright headers are mandatory for the following files:
|
|
213
|
-
|
|
214
|
-
- TypeScript files (`.ts`)
|
|
215
|
-
- JavaScript files (`.js`)
|
|
216
|
-
- Vue files (`.vue`)
|
|
217
|
-
|
|
218
|
-
### Automatic Verification
|
|
219
|
-
|
|
220
|
-
An ESLint rule is configured via the `eslint-plugin-headers` plugin to check for the presence of these headers.
|
|
221
|
-
|
|
222
|
-
### Automatic Header Addition
|
|
223
|
-
|
|
224
|
-
If a file does not contain the required copyright header, you can add it automatically by running:
|
|
225
|
-
|
|
226
|
-
```bash
|
|
227
|
-
pnpm lint:fix
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
This command will analyze all files in the `src` folder and add missing headers according to the `COPYRIGHT` file.
|
|
231
|
-
|
|
232
|
-
### Manual Verification
|
|
233
|
-
|
|
234
|
-
To check compliance without modifying files, use:
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
pnpm lint
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
Any file without the appropriate header will be reported as a lint error.
|
|
241
|
-
|
|
242
|
-
---
|
|
243
|
-
|
|
244
|
-
# **🧪 E2E & Integration Testing**
|
|
245
|
-
|
|
246
|
-
Full E2E testing documentation is **Coming soon… ⏳**
|
|
247
|
-
This library will later integrate with the LinID front-end test runner.
|
|
248
|
-
|
|
249
|
-
---
|
|
250
|
-
|
|
251
|
-
# **🚀 Releases (Semantic Release)**
|
|
252
|
-
|
|
253
|
-
Releases are fully automated using **Semantic Release**.
|
|
254
|
-
|
|
255
|
-
When a merge is performed into `main`:
|
|
256
|
-
|
|
257
|
-
* The version bump is automatically calculated from commit messages
|
|
258
|
-
* `package.json` is updated
|
|
259
|
-
* A changelog entry is generated
|
|
260
|
-
* A Git tag is created
|
|
261
|
-
|
|
262
|
-
⚠ No manual intervention is needed.
|
|
263
|
-
|
|
264
|
-
---
|
|
265
|
-
|
|
266
|
-
# **📜 License**
|
|
267
|
-
|
|
268
|
-
This project is licensed under the **GNU Affero General Public License v3**.
|
|
269
|
-
See: [`LICENSE.md`](LICENSE.md)
|
package/COPYRIGHT
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
Copyright (C) 2025 Linagora
|
|
2
|
-
|
|
3
|
-
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General
|
|
4
|
-
Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option)
|
|
5
|
-
any later version, provided you comply with the Additional Terms applicable for LinID Identity Manager software by
|
|
6
|
-
LINAGORA pursuant to Section 7 of the GNU Affero General Public License, subsections (b), (c), and (e), pursuant to
|
|
7
|
-
which these Appropriate Legal Notices must notably (i) retain the display of the "LinID™" trademark/logo at the top
|
|
8
|
-
of the interface window, the display of the “You are using the Open Source and free version of LinID™, powered by
|
|
9
|
-
Linagora © 2009–2013. Contribute to LinID R&D by subscribing to an Enterprise offer!” infobox and in the e-mails
|
|
10
|
-
sent with the Program, notice appended to any type of outbound messages (e.g. e-mail and meeting requests) as well
|
|
11
|
-
as in the LinID Identity Manager user interface, (ii) retain all hypertext links between LinID Identity Manager
|
|
12
|
-
and https://linid.org/, as well as between LINAGORA and LINAGORA.com, and (iii) refrain from infringing LINAGORA
|
|
13
|
-
intellectual property rights over its trademarks and commercial brands. Other Additional Terms apply, see
|
|
14
|
-
<http://www.linagora.com/licenses/> for more details.
|
|
15
|
-
|
|
16
|
-
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
17
|
-
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
18
|
-
details.
|
|
19
|
-
|
|
20
|
-
You should have received a copy of the GNU Affero General Public License and its applicable Additional Terms for
|
|
21
|
-
LinID Identity Manager along with this program. If not, see <http://www.gnu.org/licenses/> for the GNU Affero
|
|
22
|
-
General Public License version 3 and <http://www.linagora.com/licenses/> for the Additional Terms applicable to the
|
|
23
|
-
LinID Identity Manager software.
|