@communecter/cocolight-api-client 1.0.171 → 1.0.172
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/package.json
CHANGED
|
@@ -380,8 +380,22 @@ export declare class BaseEntity<TServerData = any> {
|
|
|
380
380
|
_calledFromSave: boolean;
|
|
381
381
|
_syncReactiveDraft: boolean;
|
|
382
382
|
_isDeleted: boolean;
|
|
383
|
-
/** Contexte costum porté par cette instance (null hors d'un `CostumScope`). Posé au constructeur.
|
|
383
|
+
/** Contexte costum porté par cette instance (null hors d'un `CostumScope`). Posé au constructeur.
|
|
384
|
+
* Sens A — « quel costum définit le SCHÉMA de cet élément » : dérivé du `source.key` (provenance),
|
|
385
|
+
* ré-affirmé à chaque `_setData`. Gouverne draft/proxy, merge de schémas, héritage aux enfants. */
|
|
384
386
|
_costumCtx: CostumRuntimeContext | null;
|
|
387
|
+
/**
|
|
388
|
+
* Scope d'ADMINISTRATION costum — sens B : « au NOM de quel costum j'agis » (`validateGroup`,
|
|
389
|
+
* `addReference`/`removeReference`/`removeFromSource`, `previewImport`/`importElements`,
|
|
390
|
+
* `exportElements`). Distinct de `_costumCtx` (sens A, schéma) : l'hôte d'un site peut porter un
|
|
391
|
+
* `source.key` ÉTRANGER (sa provenance — ex. l'org `institutBleu`, créée sous « meir ») ; la
|
|
392
|
+
* provenance gouverne le schéma, PAS l'administration — sans cette séparation, `validateGroup`
|
|
393
|
+
* postait `costumSlug:"meir"` et (dé)posait `preferences.toBeValidated.meir` : validation sans
|
|
394
|
+
* effet (mesuré 2026-08-03, 7 sites de site-json concernés). Posé UNIQUEMENT par
|
|
395
|
+
* `setCostumScope`/`loadCostumScope` (jamais auto-dérivé), jamais touché par `_setData` :
|
|
396
|
+
* il SURVIT aux refresh/hydratations. @private
|
|
397
|
+
*/
|
|
398
|
+
private _adminScope;
|
|
385
399
|
_add?: ((payload: any) => Promise<void | unknown>) | undefined;
|
|
386
400
|
_update?: ((payload: any) => Promise<boolean>) | undefined;
|
|
387
401
|
_allowedFieldsCache?: string[];
|
|
@@ -1829,6 +1843,11 @@ export declare class BaseEntity<TServerData = any> {
|
|
|
1829
1843
|
/**
|
|
1830
1844
|
* L'entité porte-t-elle un contexte costum COMPLET (slug + costumId + costumType) ?
|
|
1831
1845
|
* Vrai pour une entité chargée avec un `source.key` connu, ou après `setCostumScope()`.
|
|
1846
|
+
*
|
|
1847
|
+
* ⚠️ Dit seulement s'IL Y A un scope, pas LEQUEL : un hôte dont le `source.key` est la provenance
|
|
1848
|
+
* d'un AUTRE costum répond `true` avec le mauvais slug. Pour administrer AU NOM d'un costum
|
|
1849
|
+
* précis, appeler `setCostumScope(slug, …)` inconditionnellement (idempotent) plutôt que de
|
|
1850
|
+
* court-circuiter sur ce test.
|
|
1832
1851
|
*/
|
|
1833
1852
|
hasCostumScope(): boolean;
|
|
1834
1853
|
/**
|
|
@@ -1847,6 +1866,12 @@ export declare class BaseEntity<TServerData = any> {
|
|
|
1847
1866
|
* Remplace la mutation externe de `_costumCtx` pratiquée par les fronts (champ INTERNE non
|
|
1848
1867
|
* contractuel) — cf. site-json `ensureCostumScope`, à migrer sur cette méthode.
|
|
1849
1868
|
*
|
|
1869
|
+
* ÉPINGLE aussi le scope d'ADMINISTRATION (`_adminScope`) : les méthodes admin agissent au nom
|
|
1870
|
+
* de CE slug, même si l'entité porte un `source.key` étranger (sa provenance, qui ne gouverne
|
|
1871
|
+
* que le schéma) — et le scope SURVIT aux refresh/hydratations (`_setData` re-dérive `_costumCtx`
|
|
1872
|
+
* du `source.key` sans toucher `_adminScope`). Poser le scope est donc à faire UNE fois,
|
|
1873
|
+
* inconditionnellement (idempotent), pas derrière un `if (hasCostumScope())`.
|
|
1874
|
+
*
|
|
1850
1875
|
* @param slug - Slug du costum (ex. `"equipementsSportifs974"`).
|
|
1851
1876
|
* @param opts.costumId / opts.costumType - Identité de l'élément hôte, requise si le costum
|
|
1852
1877
|
* n'est pas dans le registre bundlé (résolue par le front via slug/getinfo).
|
|
@@ -1855,6 +1880,13 @@ export declare class BaseEntity<TServerData = any> {
|
|
|
1855
1880
|
costumId?: string;
|
|
1856
1881
|
costumType?: string;
|
|
1857
1882
|
}): void;
|
|
1883
|
+
/**
|
|
1884
|
+
* Épingle le scope d'ADMINISTRATION (sens B) SI l'identité est complète — sinon no-op : les
|
|
1885
|
+
* méthodes admin retombent alors sur `_costumCtx` (comportement historique) et
|
|
1886
|
+
* `_requireCostumCtx` lève sa propre erreur explicite si lui aussi est incomplet.
|
|
1887
|
+
* @private
|
|
1888
|
+
*/
|
|
1889
|
+
private _setAdminScope;
|
|
1858
1890
|
/**
|
|
1859
1891
|
* Charge EN LIVE (via `getcostumjson`) le scope costum d'un slug HORS registre bundlé et pose le
|
|
1860
1892
|
* contexte COMPLET (champs/presets/hidden) sur cette entité — pour l'ÉDITER avec ses champs costum
|
|
@@ -1864,8 +1896,11 @@ export declare class BaseEntity<TServerData = any> {
|
|
|
1864
1896
|
*/
|
|
1865
1897
|
loadCostumScope(slug: string): Promise<boolean>;
|
|
1866
1898
|
/**
|
|
1867
|
-
*
|
|
1868
|
-
*
|
|
1899
|
+
* Identité costum au nom de laquelle AGIR (admin : validate/reference/import/export).
|
|
1900
|
+
* Priorité au scope EXPLICITE (`_adminScope`, posé par `setCostumScope`/`loadCostumScope` —
|
|
1901
|
+
* il survit aux re-hydratations), sinon fallback sur `_costumCtx` (provenance `source.key`,
|
|
1902
|
+
* comportement historique : un élément administré « chez lui » n'a rien à poser).
|
|
1903
|
+
* @throws {ApiError} si l'entité n'est rattachée à aucun costum.
|
|
1869
1904
|
* @private
|
|
1870
1905
|
*/
|
|
1871
1906
|
private _requireCostumCtx;
|
|
@@ -1890,7 +1925,8 @@ export declare class BaseEntity<TServerData = any> {
|
|
|
1890
1925
|
/**
|
|
1891
1926
|
* Importe en masse des éléments SOUS le costum de cette entité (IMPORT_ELEMENTS / importData).
|
|
1892
1927
|
* Méthode de haut niveau à PRÉFÉRER à `endpointApi.importElements`. `costumSlug/costumId/costumType`
|
|
1893
|
-
*
|
|
1928
|
+
* viennent du scope costum (explicite via `setCostumScope`, sinon dérivé du `source.key`) —
|
|
1929
|
+
* pas de paramètre costum à fournir. Les lignes sont
|
|
1894
1930
|
* découpées en lots (`chunkSize`) pour la progression ; `data` est JSON-encodé en interne. Le backend
|
|
1895
1931
|
* (re)vérifie + déduplique (update si le nom existe déjà) + insère + relie au costum.
|
|
1896
1932
|
*
|
|
@@ -1920,7 +1956,7 @@ export declare class BaseEntity<TServerData = any> {
|
|
|
1920
1956
|
private _summarizeImport;
|
|
1921
1957
|
/**
|
|
1922
1958
|
* Exporte les éléments du costum de cette entité (EXPORT_ELEMENTS / getCsvAdmin). Méthode haut niveau.
|
|
1923
|
-
* Scope
|
|
1959
|
+
* Scope = costum de l'entité (explicite via `setCostumScope`, sinon dérivé du `source.key`). RÉSERVÉ aux
|
|
1924
1960
|
* super-admins côté backend (gater l'UI via `me.isSuperAdmin()`). Renvoie `{ results, fields }` ;
|
|
1925
1961
|
* utiliser le helper `toCsv(results, fields)` pour produire le CSV téléchargeable.
|
|
1926
1962
|
*
|
|
@@ -1940,7 +1976,8 @@ export declare class BaseEntity<TServerData = any> {
|
|
|
1940
1976
|
}>;
|
|
1941
1977
|
/**
|
|
1942
1978
|
* (Dé)VALIDE un élément POUR le costum de cette entité (VALIDATE_GROUP / ValidateGroupAction). Méthode
|
|
1943
|
-
* haut niveau : `costumSlug`
|
|
1979
|
+
* haut niveau : `costumSlug` vient du scope costum (explicite via `setCostumScope`, sinon dérivé du
|
|
1980
|
+
* `source.key`) — pas de paramètre costum à fournir.
|
|
1944
1981
|
* (Dé)pose `preferences.toBeValidated[slug]` sur l'élément AVEC CASCADE sur les enfants liés
|
|
1945
1982
|
* (`source.keys ∋ slug`, hors citoyens) et les classifieds `parent.<id>`.
|
|
1946
1983
|
*
|