@communecter/cocolight-api-client 1.0.200 → 1.0.202

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/types/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { BaseEntity } from "./api/BaseEntity.js";
2
- import { fromEntityJSON, reviveEntities } from "./api/EntityRegistry.js";
2
+ import { createFromCollection, fromEntityJSON, reviveEntities } from "./api/EntityRegistry.js";
3
3
  import Api from "./Api.js";
4
4
  import ApiClient from "./ApiClient.js";
5
5
  import * as error from "./error.js";
@@ -33,6 +33,7 @@ declare const cocolightApiClient: {
33
33
  fromEntityJSON: typeof fromEntityJSON;
34
34
  reviveEntities: typeof reviveEntities;
35
35
  restorePaginationFromJSON: typeof BaseEntity.restorePaginationFromJSON;
36
+ createFromCollection: typeof createFromCollection;
36
37
  };
37
38
  OfflineClientManager: typeof OfflineClientManager;
38
39
  };
@@ -44,7 +45,8 @@ export type { default as Api } from "./Api.js";
44
45
  export type { default as ApiClient } from "./ApiClient.js";
45
46
  export type { default as EndpointApi } from "./api/EndpointApi.js";
46
47
  export type { UserApi } from "./api/UserApi.js";
47
- export type { ApiClientOptions, CallEndpointData, CallEndpointResult, CallEndpointResponse, ApiClientOfflineEnqueueResult } from "./ApiClient.js";
48
+ export type { Discussions, DiscussionDepth, DiscussionAudience, DiscussionMembership, DiscussionCarrierRef, DiscussionCarrierCard, DiscussionCarrier, DiscussionThread, DiscussionSpaceThread, DiscussionsListResponse, DiscussionThreadResponse, DiscussionsResponse, MarkSeenResponse, DiscussionSpaceResponse, CreateDiscussionResponse } from "./api/Discussions.js";
49
+ export type { ApiClientOptions, ApiClientLogger, CallEndpointData, CallEndpointResult, CallEndpointResponse, ApiClientOfflineEnqueueResult } from "./ApiClient.js";
48
50
  export type { TokenStorageStrategy } from "./utils/TokenStorage.js";
49
51
  export type { MultiServerTokenStorageStrategy } from "./utils/MultiServerTokenStorageStrategy.js";
50
52
  export type { default as OfflineClientManager } from "./utils/OfflineClientManager.js";
@@ -0,0 +1,29 @@
1
+ /** Ce que l'ApiClient attend d'un logger : les quatre niveaux, rien d'autre (duck-typing, pino ou non). */
2
+ export interface ApiClientLogger {
3
+ debug: (...args: unknown[]) => void;
4
+ info: (...args: unknown[]) => void;
5
+ warn: (...args: unknown[]) => void;
6
+ error: (...args: unknown[]) => void;
7
+ }
8
+ type RootLogger = ApiClientLogger & {
9
+ child: (bindings: object, options?: {
10
+ level?: string;
11
+ }) => ApiClientLogger;
12
+ };
13
+ /** Le logger racine du processus, créé au premier appel. */
14
+ export declare function getRootLogger(): RootLogger;
15
+ /**
16
+ * Le logger d'UN client. Sans `logger` fourni : un enfant du logger racine au niveau demandé (un enfant
17
+ * pino ne crée ni thread ni flux : vingt clients coûtent zéro thread). Avec un `logger` fourni : lui-même,
18
+ * sauf si `debug` est demandé ET qu'il sait faire des enfants (pino) — on lui demande alors un enfant au
19
+ * niveau `debug`, pour que l'option tienne sa promesse même avec le logger d'un serveur réglé sur `info`.
20
+ * Un logger sans `child` (console, objet maison) est rendu tel quel : `debug` est alors sans effet.
21
+ */
22
+ export declare function createClientLogger(debug: boolean, logger?: ApiClientLogger | null): ApiClientLogger;
23
+ /**
24
+ * Pour les tests : oublie la racine (la prochaine demande en recrée une), après avoir vidé et fermé son
25
+ * flux — en dev/test la racine porte un transport `pino-pretty` (worker + listener `exit`) qu'on ne
26
+ * veut pas orpheliner à chaque reset.
27
+ */
28
+ export declare function _resetRootLoggerForTests(): Promise<void>;
29
+ export {};
@@ -0,0 +1,27 @@
1
+ import type { ValidateFunction } from "ajv";
2
+ export type AjvVariant = "defaults" | "noDefaults";
3
+ /** Fonction de validation AJV. */
4
+ export type Validator = ValidateFunction;
5
+ /** L'instance AJV partagée d'une variante, construite au premier appel. */
6
+ export declare function getAjv(variant: AjvVariant): any;
7
+ /**
8
+ * Le validateur compilé d'un schéma.
9
+ * - sans `dynamic` : le schéma est un objet STABLE (contrat, ou nettoyage mémoïsé) → cache par identité,
10
+ * illimité mais faible (WeakMap).
11
+ * - `dynamic: true` : le schéma vient d'être construit (enveloppe costum) → cache borné, indexé par `key`
12
+ * (cf. `dynamicKey`) ou, à défaut, par le JSON du schéma entier.
13
+ */
14
+ export declare function getValidator(schema: object, variant?: AjvVariant, opts?: {
15
+ dynamic?: boolean;
16
+ key?: string;
17
+ }): Validator;
18
+ /**
19
+ * Clé du cache borné pour un schéma recomposé à partir d'un schéma de base STABLE (identité) et d'un
20
+ * complément VARIABLE (sérialisé) : on ne sérialise que le complément — l'enveloppe costum, quelques
21
+ * champs — jamais le schéma du contrat entier (plusieurs dizaines de Ko avec ses `$defs`).
22
+ */
23
+ export declare function dynamicKey(base: object, extra: unknown): string;
24
+ /** Version nettoyée d'un schéma du contrat, la MÊME d'un appel à l'autre pour le même schéma source. */
25
+ export declare function cleanSchemaLeftoverAlias<T>(schema: T): T;
26
+ /** Pour les tests : taille du cache borné d'une variante. */
27
+ export declare function _dynamicCacheSizeForTests(variant: AjvVariant): number;