Dépendances PoC TAMIS
Premier point et pour rappel, pour ceux qui souhaitent installer la stack complète de l'application en local, JB a mis à disposition deux guides rapides pour mettre en place un client + serveur :
* [Client](https://git.startinblox.com/applications/tamis-poc/-/snippets/16)
* [Serveur](https://git.startinblox.com/applications/tamis-poc/-/snippets/17)
Les principaux dépôts de code consommés par le POC v1 sont les suivants :\
\
Côté serveur:
* [Le framework](https://git.startinblox.com/djangoldp-packages/djangoldp), côté serveur
* [Le paquet server spécifique TAMIS](https://git.startinblox.com/djangoldp-packages/djangoldp-tamis)
* Le paquet qui sert pour [la gestion des utilisateurs](https://git.startinblox.com/djangoldp-packages/djangoldp-account)
* Le paquet qui sert pour [l'authentification OIDC](https://git.startinblox.com/djangoldp-packages/django-webidoidc-provider)
* Le paquet qui sert [les tableaux de bord](https://git.startinblox.com/djangoldp-packages/djangoldp-dashboard)
Côté client:
* [La base Orbit](https://git.startinblox.com/applications/hubl), qui sert de plateforme partagée pour assembler les webcomponents :
* [Le framework](https://git.startinblox.com/framework/sib-core) côté client
* [Les webcomponents TAMIS](https://git.startinblox.com/components/solid-tamis)
* Le webcomponent partagé qui sert [de base au tableau de bord](https://git.startinblox.com/components/solid-dashboard)
\
Pour ce qui est d'Orbit, le template générique de nos applications, il a pour dépendances principales pour son fonctionnement [Vite](https://vite.dev/), [Lit](https://lit.dev/), [Handlebars](https://handlebarsjs.com/) (through a Vite plugin though) et notre [Orbit-styling-framework](https://git.startinblox.com/components/orbit-styling-framework/). Ensuite cela dépend de la configuration appliquée.\
\
De manière générale, pour retrouver la liste des dépendances d'un de nos projets, il faut croiser le contenu de [la configuration du projet](https://git.startinblox.com/applications/tamis-poc/-/snippets/16) et [le modèle de chargement des composants d'Orbit](https://git.startinblox.com/applications/hubl/-/blob/master/vite/default.npm.json?ref_type=heads). Ce qui permet pour chacun des composants présents de retrouver l'URL du package publié sur NPM (l'entrée dans le tableau, par exemple @startinblox/core, préfixé de https://npmjs.com, ce qui donne [https://npmjs.com/@<wbr>startinblox/core](https://npmjs.com/@startinblox/core). Via NPM, on peut retrouver le lien vers le repository associé et également la liste des dépendances.
### Le détail des principales:
Les 3 premiers composants présentés dans le default.npm.json (@startinblox/core, @startinblox/router et @startinblox/oidc) sont chargés quel que soit la configuration de l'application. Leur détail:
* [@startinblox/core](https://git.startinblox.com/framework/sib-core): le framework, qui dépend principalement des librairies [vite](https://vite.dev/), [jsonld](https://github.com/digitalbazaar/jsonld.js), [Lit](https://lit.dev/), [jsonld-context-parser](https://www.npmjs.com/package/jsonld-context-parser) et d'autres helpers plus spécifiques. [Liste complète de ses dépendances ici](https://www.npmjs.com/package/@startinblox/core?activeTab=dependencies)
* [@startinblox/oidc](https://git.startinblox.com/framework/sib-auth/): notre composant d'authentification, qui lui dépend du [core](https://git.startinblox.com/framework/sib-core) et de [solid-client-authn-browser](https://www.npmjs.com/package/@inrupt/solid-client-authn-browser), la librairie d'Inrupt compatible solid-oidc. [Liste complète des dépendances ici](https://www.npmjs.com/package/@startinblox/oidc?activeTab=dependencies)
* [@startinblox/router](https://git.startinblox.com/framework/sib-router/): notre composant de router, qui lui dépend essentiellement du [core](https://git.startinblox.com/framework/sib-core). [Liste complète des dépendances ici](https://www.npmjs.com/package/@startinblox/router?activeTab=dependencies)
Pour ce qui est des composants spécifiques TAMIS, si on part donc de [la configuration disponible ici](https://git.startinblox.com/applications/tamis-poc/-/snippets/16)\
\
On peut voir qu'elle charge en particulier les composants:
* Tamis-profile
* Tamis-prestations
* Tamis-asset
Ces 3 composants font partie de la même librairie Tamis accessible via CDN à l'URL [https://cdn.jsdelivr.net/npm/@<wbr>startinblox/component-tamis](https://cdn.jsdelivr.net/npm/@startinblox/component-tamis).\
Cette librairie est publiée [sur NPM, ici](https://www.npmjs.com/@startinblox/component-tamis).\
La liste de ses dépendances [est également accessible](https://www.npmjs.com/package/@startinblox/component-tamis?activeTab=dependencies)\
\
Voilà. Ce n'est effectivement pas trivial mais si je simplifie, depuis le front il s'agit surtout de retrouver l'URL du paquet sur NPM et depuis celle-ci on peut remonter beaucoup d'informations.
issue