@communecter/cocolight-api-client 1.0.171 → 1.0.173

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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@communecter/cocolight-api-client",
3
- "version": "1.0.171",
3
+ "version": "1.0.173",
4
4
  "description": "Client Axios simplifié pour l'API cocolight",
5
5
  "repository": {
6
6
  "type": "git",
@@ -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
- * Contexte costum de CETTE entité (résolu de son `source.key`) — requis par l'import/export admin.
1868
- * @throws {ApiError} si l'entité n'est pas rattachée à un costum.
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
- * sont dérivés du `_costumCtx` (source.key) — pas de paramètre costum à fournir. Les lignes sont
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 automatiquement sur `source.key` = costum de l'entité (`_costumCtx.slug`). RÉSERVÉ aux
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` est dérivé du `_costumCtx` (source.key) — pas de paramètre costum à fournir.
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
  *
@@ -298,21 +298,37 @@ export interface UpdateBlockLocalityData {
298
298
  level1: string;
299
299
  level1Name: string;
300
300
  /**
301
- * ID du département. Peut être vide pour les pays étrangers.
301
+ * ID du niveau administratif intermédiaire propre à certains pays (ex. Wallonie en Belgique, province malgache). Absent pour la France.
302
+ */
303
+ level2?: string;
304
+ /**
305
+ * Nom du niveau intermédiaire. Absent pour la France.
306
+ */
307
+ level2Name?: string;
308
+ /**
309
+ * ID de la région. Peut être vide pour les pays étrangers.
302
310
  */
303
311
  level3?: string;
304
312
  /**
305
- * Nom du département. Peut être vide pour les pays étrangers.
313
+ * Nom de la région. Peut être vide pour les pays étrangers.
306
314
  */
307
315
  level3Name?: string;
308
316
  /**
309
- * ID de la commune. Peut être vide pour les pays étrangers.
317
+ * ID du département. Peut être vide pour les pays étrangers.
310
318
  */
311
319
  level4?: string;
312
320
  /**
313
- * Nom de la commune. Peut être vide pour les pays étrangers.
321
+ * Nom du département. Peut être vide pour les pays étrangers.
314
322
  */
315
323
  level4Name?: string;
324
+ /**
325
+ * ID de l'EPCI (intercommunalité). Peut être vide.
326
+ */
327
+ level5?: string;
328
+ /**
329
+ * Nom de l'EPCI. Peut être vide.
330
+ */
331
+ level5Name?: string;
316
332
  postalCode?: string;
317
333
  streetAddress?: string;
318
334
  };
@@ -2883,21 +2899,37 @@ export interface AddOrganizationData {
2883
2899
  level1: string;
2884
2900
  level1Name: string;
2885
2901
  /**
2886
- * ID du département. Peut être vide pour les pays étrangers.
2902
+ * ID du niveau administratif intermédiaire propre à certains pays (ex. Wallonie en Belgique, province malgache). Absent pour la France.
2903
+ */
2904
+ level2?: string;
2905
+ /**
2906
+ * Nom du niveau intermédiaire. Absent pour la France.
2907
+ */
2908
+ level2Name?: string;
2909
+ /**
2910
+ * ID de la région. Peut être vide pour les pays étrangers.
2887
2911
  */
2888
2912
  level3?: string;
2889
2913
  /**
2890
- * Nom du département. Peut être vide pour les pays étrangers.
2914
+ * Nom de la région. Peut être vide pour les pays étrangers.
2891
2915
  */
2892
2916
  level3Name?: string;
2893
2917
  /**
2894
- * ID de la commune. Peut être vide pour les pays étrangers.
2918
+ * ID du département. Peut être vide pour les pays étrangers.
2895
2919
  */
2896
2920
  level4?: string;
2897
2921
  /**
2898
- * Nom de la commune. Peut être vide pour les pays étrangers.
2922
+ * Nom du département. Peut être vide pour les pays étrangers.
2899
2923
  */
2900
2924
  level4Name?: string;
2925
+ /**
2926
+ * ID de l'EPCI (intercommunalité). Peut être vide.
2927
+ */
2928
+ level5?: string;
2929
+ /**
2930
+ * Nom de l'EPCI. Peut être vide.
2931
+ */
2932
+ level5Name?: string;
2901
2933
  postalCode?: string;
2902
2934
  streetAddress?: string;
2903
2935
  };
@@ -3166,21 +3198,37 @@ export interface AddProjectData {
3166
3198
  level1: string;
3167
3199
  level1Name: string;
3168
3200
  /**
3169
- * ID du département. Peut être vide pour les pays étrangers.
3201
+ * ID du niveau administratif intermédiaire propre à certains pays (ex. Wallonie en Belgique, province malgache). Absent pour la France.
3202
+ */
3203
+ level2?: string;
3204
+ /**
3205
+ * Nom du niveau intermédiaire. Absent pour la France.
3206
+ */
3207
+ level2Name?: string;
3208
+ /**
3209
+ * ID de la région. Peut être vide pour les pays étrangers.
3170
3210
  */
3171
3211
  level3?: string;
3172
3212
  /**
3173
- * Nom du département. Peut être vide pour les pays étrangers.
3213
+ * Nom de la région. Peut être vide pour les pays étrangers.
3174
3214
  */
3175
3215
  level3Name?: string;
3176
3216
  /**
3177
- * ID de la commune. Peut être vide pour les pays étrangers.
3217
+ * ID du département. Peut être vide pour les pays étrangers.
3178
3218
  */
3179
3219
  level4?: string;
3180
3220
  /**
3181
- * Nom de la commune. Peut être vide pour les pays étrangers.
3221
+ * Nom du département. Peut être vide pour les pays étrangers.
3182
3222
  */
3183
3223
  level4Name?: string;
3224
+ /**
3225
+ * ID de l'EPCI (intercommunalité). Peut être vide.
3226
+ */
3227
+ level5?: string;
3228
+ /**
3229
+ * Nom de l'EPCI. Peut être vide.
3230
+ */
3231
+ level5Name?: string;
3184
3232
  postalCode?: string;
3185
3233
  streetAddress?: string;
3186
3234
  };
@@ -3286,21 +3334,37 @@ export interface AddPoiData {
3286
3334
  level1: string;
3287
3335
  level1Name: string;
3288
3336
  /**
3289
- * ID du département. Peut être vide pour les pays étrangers.
3337
+ * ID du niveau administratif intermédiaire propre à certains pays (ex. Wallonie en Belgique, province malgache). Absent pour la France.
3338
+ */
3339
+ level2?: string;
3340
+ /**
3341
+ * Nom du niveau intermédiaire. Absent pour la France.
3342
+ */
3343
+ level2Name?: string;
3344
+ /**
3345
+ * ID de la région. Peut être vide pour les pays étrangers.
3290
3346
  */
3291
3347
  level3?: string;
3292
3348
  /**
3293
- * Nom du département. Peut être vide pour les pays étrangers.
3349
+ * Nom de la région. Peut être vide pour les pays étrangers.
3294
3350
  */
3295
3351
  level3Name?: string;
3296
3352
  /**
3297
- * ID de la commune. Peut être vide pour les pays étrangers.
3353
+ * ID du département. Peut être vide pour les pays étrangers.
3298
3354
  */
3299
3355
  level4?: string;
3300
3356
  /**
3301
- * Nom de la commune. Peut être vide pour les pays étrangers.
3357
+ * Nom du département. Peut être vide pour les pays étrangers.
3302
3358
  */
3303
3359
  level4Name?: string;
3360
+ /**
3361
+ * ID de l'EPCI (intercommunalité). Peut être vide.
3362
+ */
3363
+ level5?: string;
3364
+ /**
3365
+ * Nom de l'EPCI. Peut être vide.
3366
+ */
3367
+ level5Name?: string;
3304
3368
  postalCode?: string;
3305
3369
  streetAddress?: string;
3306
3370
  };
@@ -3580,21 +3644,37 @@ export interface AddEventData {
3580
3644
  level1: string;
3581
3645
  level1Name: string;
3582
3646
  /**
3583
- * ID du département. Peut être vide pour les pays étrangers.
3647
+ * ID du niveau administratif intermédiaire propre à certains pays (ex. Wallonie en Belgique, province malgache). Absent pour la France.
3648
+ */
3649
+ level2?: string;
3650
+ /**
3651
+ * Nom du niveau intermédiaire. Absent pour la France.
3652
+ */
3653
+ level2Name?: string;
3654
+ /**
3655
+ * ID de la région. Peut être vide pour les pays étrangers.
3584
3656
  */
3585
3657
  level3?: string;
3586
3658
  /**
3587
- * Nom du département. Peut être vide pour les pays étrangers.
3659
+ * Nom de la région. Peut être vide pour les pays étrangers.
3588
3660
  */
3589
3661
  level3Name?: string;
3590
3662
  /**
3591
- * ID de la commune. Peut être vide pour les pays étrangers.
3663
+ * ID du département. Peut être vide pour les pays étrangers.
3592
3664
  */
3593
3665
  level4?: string;
3594
3666
  /**
3595
- * Nom de la commune. Peut être vide pour les pays étrangers.
3667
+ * Nom du département. Peut être vide pour les pays étrangers.
3596
3668
  */
3597
3669
  level4Name?: string;
3670
+ /**
3671
+ * ID de l'EPCI (intercommunalité). Peut être vide.
3672
+ */
3673
+ level5?: string;
3674
+ /**
3675
+ * Nom de l'EPCI. Peut être vide.
3676
+ */
3677
+ level5Name?: string;
3598
3678
  postalCode?: string;
3599
3679
  streetAddress?: string;
3600
3680
  };
@@ -6193,6 +6273,8 @@ export interface AddClassifiedData {
6193
6273
  level3Name?: string;
6194
6274
  level4?: string;
6195
6275
  level4Name?: string;
6276
+ level5?: string;
6277
+ level5Name?: string;
6196
6278
  postalCode?: string;
6197
6279
  streetAddress?: string;
6198
6280
  };
@@ -48,6 +48,8 @@ export interface PostalAddress {
48
48
  level3Name?: string;
49
49
  level4?: string;
50
50
  level4Name?: string;
51
+ level5?: string;
52
+ level5Name?: string;
51
53
  addressCountry?: string;
52
54
  localityId?: string;
53
55
  inseeDensity?: number;
@@ -3746,6 +3746,14 @@ declare const endpoints: {
3746
3746
  level1Name: {
3747
3747
  type: string;
3748
3748
  };
3749
+ level2: {
3750
+ minLength: number;
3751
+ type: string;
3752
+ };
3753
+ level2Name: {
3754
+ minLength: number;
3755
+ type: string;
3756
+ };
3749
3757
  level3: {
3750
3758
  minLength: number;
3751
3759
  type: string;
@@ -3762,6 +3770,14 @@ declare const endpoints: {
3762
3770
  minLength: number;
3763
3771
  type: string;
3764
3772
  };
3773
+ level5: {
3774
+ minLength: number;
3775
+ type: string;
3776
+ };
3777
+ level5Name: {
3778
+ minLength: number;
3779
+ type: string;
3780
+ };
3765
3781
  localityId: {
3766
3782
  type: string;
3767
3783
  };
@@ -19746,6 +19762,14 @@ declare const endpoints: {
19746
19762
  level1Name: {
19747
19763
  type: string;
19748
19764
  };
19765
+ level2: {
19766
+ minLength: number;
19767
+ type: string;
19768
+ };
19769
+ level2Name: {
19770
+ minLength: number;
19771
+ type: string;
19772
+ };
19749
19773
  level3: {
19750
19774
  minLength: number;
19751
19775
  type: string;
@@ -19762,6 +19786,14 @@ declare const endpoints: {
19762
19786
  minLength: number;
19763
19787
  type: string;
19764
19788
  };
19789
+ level5: {
19790
+ minLength: number;
19791
+ type: string;
19792
+ };
19793
+ level5Name: {
19794
+ minLength: number;
19795
+ type: string;
19796
+ };
19765
19797
  localityId: {
19766
19798
  type: string;
19767
19799
  };
@@ -20261,6 +20293,14 @@ declare const endpoints: {
20261
20293
  level1Name: {
20262
20294
  type: string;
20263
20295
  };
20296
+ level2: {
20297
+ minLength: number;
20298
+ type: string;
20299
+ };
20300
+ level2Name: {
20301
+ minLength: number;
20302
+ type: string;
20303
+ };
20264
20304
  level3: {
20265
20305
  minLength: number;
20266
20306
  type: string;
@@ -20277,6 +20317,14 @@ declare const endpoints: {
20277
20317
  minLength: number;
20278
20318
  type: string;
20279
20319
  };
20320
+ level5: {
20321
+ minLength: number;
20322
+ type: string;
20323
+ };
20324
+ level5Name: {
20325
+ minLength: number;
20326
+ type: string;
20327
+ };
20280
20328
  localityId: {
20281
20329
  type: string;
20282
20330
  };
@@ -20719,6 +20767,14 @@ declare const endpoints: {
20719
20767
  level1Name: {
20720
20768
  type: string;
20721
20769
  };
20770
+ level2: {
20771
+ minLength: number;
20772
+ type: string;
20773
+ };
20774
+ level2Name: {
20775
+ minLength: number;
20776
+ type: string;
20777
+ };
20722
20778
  level3: {
20723
20779
  minLength: number;
20724
20780
  type: string;
@@ -20735,6 +20791,14 @@ declare const endpoints: {
20735
20791
  minLength: number;
20736
20792
  type: string;
20737
20793
  };
20794
+ level5: {
20795
+ minLength: number;
20796
+ type: string;
20797
+ };
20798
+ level5Name: {
20799
+ minLength: number;
20800
+ type: string;
20801
+ };
20738
20802
  localityId: {
20739
20803
  type: string;
20740
20804
  };
@@ -21181,6 +21245,14 @@ declare const endpoints: {
21181
21245
  level1Name: {
21182
21246
  type: string;
21183
21247
  };
21248
+ level2: {
21249
+ minLength: number;
21250
+ type: string;
21251
+ };
21252
+ level2Name: {
21253
+ minLength: number;
21254
+ type: string;
21255
+ };
21184
21256
  level3: {
21185
21257
  minLength: number;
21186
21258
  type: string;
@@ -21197,6 +21269,14 @@ declare const endpoints: {
21197
21269
  minLength: number;
21198
21270
  type: string;
21199
21271
  };
21272
+ level5: {
21273
+ minLength: number;
21274
+ type: string;
21275
+ };
21276
+ level5Name: {
21277
+ minLength: number;
21278
+ type: string;
21279
+ };
21200
21280
  localityId: {
21201
21281
  type: string;
21202
21282
  };
@@ -37048,6 +37128,12 @@ declare const endpoints: {
37048
37128
  minLength: number;
37049
37129
  type: string;
37050
37130
  };
37131
+ level5: {
37132
+ type: string;
37133
+ };
37134
+ level5Name: {
37135
+ type: string;
37136
+ };
37051
37137
  localityId: {
37052
37138
  type: string;
37053
37139
  };