@communecter/cocolight-api-client 1.0.51 → 1.0.54

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.
Files changed (51) hide show
  1. package/dist/123.cocolight-api-client.browser.js +1 -1
  2. package/dist/123.cocolight-api-client.cjs +1 -1
  3. package/dist/774.cocolight-api-client.mjs.js +1 -1
  4. package/dist/cocolight-api-client.browser.js +1 -1
  5. package/dist/cocolight-api-client.cjs +1 -1
  6. package/dist/cocolight-api-client.mjs.js +1 -1
  7. package/dist/cocolight-api-client.vite.mjs.js +1 -1
  8. package/dist/cocolight-api-client.vite.mjs.js.map +1 -1
  9. package/package.json +15 -9
  10. package/src/Api.js +41 -23
  11. package/src/ApiClient.js +33 -18
  12. package/src/api/EndpointApi.js +95 -95
  13. package/src/error.js +63 -10
  14. package/src/index.js +65 -2
  15. package/src/utils/FileStorageStrategy.node.js +28 -2
  16. package/src/utils/MultiServerFileStorageStrategy.node.js +24 -2
  17. package/src/utils/MultiServerTokenStorageStrategy.js +84 -27
  18. package/src/utils/TokenStorage.js +79 -19
  19. package/src/utils/createDefaultMultiServerTokenStorageStrategy.js +33 -27
  20. package/src/utils/createDefaultTokenStorageStrategy.js +29 -23
  21. package/types/Api.d.ts +131 -0
  22. package/types/ApiClient.d.ts +377 -0
  23. package/types/EJSONType.d.ts +27 -0
  24. package/types/api/Badge.d.ts +24 -0
  25. package/types/api/BaseEntity.d.ts +1017 -0
  26. package/types/api/EndpointApi.d.ts +933 -0
  27. package/types/api/EntityRegistry.d.ts +22 -0
  28. package/types/api/Event.d.ts +38 -0
  29. package/types/api/News.d.ts +45 -0
  30. package/types/api/Organization.d.ts +87 -0
  31. package/types/api/Poi.d.ts +25 -0
  32. package/types/api/Project.d.ts +81 -0
  33. package/types/api/User.d.ts +203 -0
  34. package/types/api/UserApi.d.ts +13 -0
  35. package/types/endpoints.module.d.ts +14852 -0
  36. package/types/error.d.ts +80 -0
  37. package/types/index.d.ts +52 -0
  38. package/types/mixin/UserMixin.d.ts +1 -0
  39. package/types/utils/FileOfflineStorageStrategy.node.d.ts +10 -0
  40. package/types/utils/FileStorageStrategy.node.d.ts +25 -0
  41. package/types/utils/MultiServerFileStorageStrategy.node.d.ts +22 -0
  42. package/types/utils/MultiServerTokenStorageStrategy.d.ts +65 -0
  43. package/types/utils/OfflineClientManager.d.ts +94 -0
  44. package/types/utils/OfflineQueueStorageStrategy.d.ts +13 -0
  45. package/types/utils/TokenStorage.d.ts +76 -0
  46. package/types/utils/createDefaultMultiServerTokenStorageStrategy.d.ts +11 -0
  47. package/types/utils/createDefaultOfflineStrategy.d.ts +3 -0
  48. package/types/utils/createDefaultTokenStorageStrategy.d.ts +12 -0
  49. package/types/utils/reactive.d.ts +60 -0
  50. package/types/utils/stream-utils.node.d.ts +2 -0
  51. /package/{src → types}/api/EndpointApi.types.d.ts +0 -0
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @typedef {Record<string, any>} ApiErrorDetails
3
+ */
4
+ /**
5
+ * Classe de base pour toutes les erreurs de l'API.
6
+ * @extends Error
7
+ */
8
+ export class ApiError extends Error {
9
+ /**
10
+ * @param {string} message - Message d'erreur.
11
+ * @param {number} status - Code HTTP (ex: 400, 401, 500, 503).
12
+ * @param {ApiErrorDetails} [details] - Détails supplémentaires.
13
+ */
14
+ constructor(message: string, status: number, details?: ApiErrorDetails);
15
+ /** @type {number} */
16
+ status: number;
17
+ /** @type {ApiErrorDetails|undefined} */
18
+ details: ApiErrorDetails | undefined;
19
+ }
20
+ /**
21
+ * Erreur levée par le client API lorsqu'un appel échoue (réseau, config, etc.).
22
+ * @extends ApiError
23
+ */
24
+ export class ApiClientError extends ApiError {
25
+ }
26
+ /**
27
+ * Erreur de validation AJV (schemas de requête/réponse).
28
+ * @extends Error
29
+ */
30
+ export class ApiValidationError extends Error {
31
+ /**
32
+ * @param {string} message - Message d'erreur.
33
+ * @param {number} status - Code HTTP logique (souvent 400).
34
+ * @param {string[]} messages - Messages humains dérivés des erreurs AJV.
35
+ * @param {any} [details=null] - Erreurs AJV brutes ou métadonnées.
36
+ */
37
+ constructor(message: string, status: number, messages: string[], details?: any);
38
+ /** @type {number} */
39
+ status: number;
40
+ /** @type {string[]} */
41
+ messages: string[];
42
+ /** @type {any} */
43
+ details: any;
44
+ }
45
+ /**
46
+ * Levée lorsqu'on bloque l'accès à l'API (circuit breaker).
47
+ * @extends ApiError
48
+ */
49
+ export class CircuitBreakerError extends ApiError {
50
+ /**
51
+ * @param {string} message - Message d'erreur.
52
+ */
53
+ constructor(message: string);
54
+ }
55
+ /**
56
+ * Erreur "métier" retour de l'API (ex: result=false) même si HTTP=200.
57
+ * @extends Error
58
+ */
59
+ export class ApiResponseError extends Error {
60
+ /**
61
+ * @param {string} message - Message d'erreur.
62
+ * @param {number} status - Code HTTP (peut être 200 pour erreurs logiques).
63
+ * @param {object} responseData - Payload renvoyé par l'API.
64
+ * @param {any} [details=null] - Infos supplémentaires (optionnel).
65
+ */
66
+ constructor(message: string, status: number, responseData: object, details?: any);
67
+ /** @type {number} */
68
+ status: number;
69
+ /** @type {object} */
70
+ responseData: object;
71
+ /** @type {any} */
72
+ details: any;
73
+ }
74
+ /**
75
+ * Erreur d'authentification (ex: 401/403).
76
+ * @extends ApiError
77
+ */
78
+ export class ApiAuthenticationError extends ApiError {
79
+ }
80
+ export type ApiErrorDetails = Record<string, any>;
@@ -0,0 +1,52 @@
1
+ export default cocolightApiClient;
2
+ export type Api = import("./Api.js").default;
3
+ export type ApiClient = import("./ApiClient.js").default;
4
+ export type error = typeof error;
5
+ export type reactive = typeof reactive;
6
+ export type TokenStorageStrategy = import("./utils/TokenStorage.js").TokenStorageStrategy;
7
+ export type MultiServerTokenStorageStrategy = import("./utils/MultiServerTokenStorageStrategy.js").MultiServerTokenStorageStrategy;
8
+ export type OfflineClientManager = import("./utils/OfflineClientManager.js").default;
9
+ export type User = import("./api/User.js").User;
10
+ export type Organization = import("./api/Organization.js").Organization;
11
+ export type Project = import("./api/Project.js").Project;
12
+ export type Event = import("./api/Event.js").Event;
13
+ export type Poi = import("./api/Poi.js").Poi;
14
+ export type Badge = import("./api/Badge.js").Badge;
15
+ export type News = import("./api/News.js").News;
16
+ export type EndpointApi = import("./api/EndpointApi.js").default;
17
+ export type UserApi = import("./api/UserApi.js").UserApi;
18
+ declare namespace cocolightApiClient {
19
+ export { ApiClient };
20
+ export { Api };
21
+ export { error };
22
+ export { reactive };
23
+ export let effect: typeof import("./utils/reactive.js")["effect"];
24
+ export let batch: typeof import("./utils/reactive.js")["batch"];
25
+ export let isSignal: typeof import("./utils/reactive.js")["isSignal"];
26
+ export let reactiveObject: typeof import("./utils/reactive.js")["reactive"];
27
+ export let isReactive: typeof import("./utils/reactive.js")["isReactive"];
28
+ export let computed: typeof import("./utils/reactive.js")["computed"];
29
+ export let watch: typeof import("./utils/reactive.js")["watch"];
30
+ export let getSignals: typeof import("./utils/reactive.js")["getSignals"];
31
+ export let subscribeTo: typeof import("./utils/reactive.js")["subscribeTo"];
32
+ export namespace tokenStorageStrategy {
33
+ export { createDefaultTokenStorageStrategy };
34
+ export { TokenStorageStrategy };
35
+ export { createDefaultMultiServerTokenStorageStrategy };
36
+ export { MultiServerTokenStorageStrategy };
37
+ }
38
+ export namespace helper {
39
+ export { fromEntityJSON };
40
+ }
41
+ export { OfflineClientManager };
42
+ }
43
+ import * as error from "./error.js";
44
+ import * as reactive from "./utils/reactive.js";
45
+ import ApiClient from "./ApiClient.js";
46
+ import Api from "./Api.js";
47
+ import { createDefaultTokenStorageStrategy } from "./utils/createDefaultTokenStorageStrategy.js";
48
+ import { TokenStorageStrategy } from "./utils/TokenStorage.js";
49
+ import { createDefaultMultiServerTokenStorageStrategy } from "./utils/createDefaultMultiServerTokenStorageStrategy.js";
50
+ import { MultiServerTokenStorageStrategy } from "./utils/MultiServerTokenStorageStrategy.js";
51
+ import { fromEntityJSON } from "./api/EntityRegistry.js";
52
+ import OfflineClientManager from "./utils/OfflineClientManager.js";
@@ -0,0 +1 @@
1
+ export const UserMixin: {};
@@ -0,0 +1,10 @@
1
+ export class FileOfflineStorage extends OfflineQueueStorageStrategy {
2
+ constructor(filename?: string, dir?: any);
3
+ dir: any;
4
+ filePath: any;
5
+ _ensureDirectoryExists(): void;
6
+ _readFile(): any;
7
+ _writeFile(queue: any): void;
8
+ loadQueue(): Promise<any>;
9
+ }
10
+ import { OfflineQueueStorageStrategy } from "./OfflineQueueStorageStrategy.js";
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Stratégie de stockage des tokens basée sur un fichier (Node uniquement).
3
+ * @implements {TokenStorageStrategy}
4
+ */
5
+ export class FileStorageStrategy extends TokenStorageStrategy implements TokenStorageStrategy {
6
+ /**
7
+ * @param {string} [filename="tokens.json"]
8
+ * @param {string} [dir=path.join(os.homedir(), ".config", "cocolight")]
9
+ */
10
+ constructor(filename?: string, dir?: string);
11
+ /** @type {string} */
12
+ dir: string;
13
+ /** @type {string} */
14
+ filePath: string;
15
+ /** @private */
16
+ private _ensureDirectoryExists;
17
+ /** @private */
18
+ private _readFile;
19
+ /**
20
+ * @private
21
+ * @param {Record<string, any>} data
22
+ */
23
+ private _writeFile;
24
+ }
25
+ import { TokenStorageStrategy } from "./TokenStorage.js";
@@ -0,0 +1,22 @@
1
+ /** @typedef {import("./MultiServerTokenStorageStrategy.js").MultiServerTokenStorageStrategy} MultiServerTokenStorageStrategy */
2
+ /**
3
+ * Stockage fichier (Node uniquement) multi-serveurs.
4
+ * @implements {MultiServerTokenStorageStrategy}
5
+ */
6
+ export class MultiServerFileStorageStrategy extends MultiServerTokenStorageStrategy implements MultiServerTokenStorageStrategy {
7
+ /**
8
+ * @param {string} [filename="tokens.json"]
9
+ * @param {string} [dir=path.join(os.homedir(), ".config", "cocolight")]
10
+ */
11
+ constructor(filename?: string, dir?: string);
12
+ /** @type {string} */
13
+ filePath: string;
14
+ /** @private */
15
+ private _readFile;
16
+ /** @private
17
+ * @param {Record<string, {accessToken?: string|null, refreshToken?: string|null}>} data
18
+ */
19
+ private _writeFile;
20
+ }
21
+ export type MultiServerTokenStorageStrategy = import("./MultiServerTokenStorageStrategy.js").MultiServerTokenStorageStrategy;
22
+ import { MultiServerTokenStorageStrategy } from "./MultiServerTokenStorageStrategy.js";
@@ -0,0 +1,65 @@
1
+ /** @typedef {import("./TokenStorage.js").TokenStorageStrategy} TokenStorageStrategy */
2
+ /**
3
+ * Stratégie de stockage multi-serveurs (abstraite).
4
+ * Permet de sélectionner un `baseURL` courant via `use()` puis d'opérer get/set/clear dessus.
5
+ * @abstract
6
+ * @extends TokenStorageStrategy
7
+ */
8
+ export class MultiServerTokenStorageStrategy extends TokenStorageStrategy {
9
+ /** @type {string|null} */
10
+ _currentBaseURL: string | null;
11
+ /**
12
+ * Sélectionne le serveur courant (normalise en supprimant les `/` finaux).
13
+ * @param {string} baseURL
14
+ * @returns {void}
15
+ */
16
+ use(baseURL: string): void;
17
+ /** @private */
18
+ private _ensureContext;
19
+ /**
20
+ * Retourne la liste des serveurs connus.
21
+ * @abstract
22
+ * @returns {string[]}
23
+ */
24
+ getServers(): string[];
25
+ /**
26
+ * Exporte toutes les données stockées (par baseURL).
27
+ * @abstract
28
+ * @returns {Record<string, {accessToken?: string|null, refreshToken?: string|null}>}
29
+ */
30
+ exportAll(): Record<string, {
31
+ accessToken?: string | null;
32
+ refreshToken?: string | null;
33
+ }>;
34
+ }
35
+ /**
36
+ * Stockage en mémoire (multi-serveurs).
37
+ * @implements {MultiServerTokenStorageStrategy}
38
+ */
39
+ export class MultiServerMemoryStorageStrategy extends MultiServerTokenStorageStrategy implements MultiServerTokenStorageStrategy {
40
+ /** @type {Map<string, {accessToken?: string|null, refreshToken?: string|null}>} */
41
+ _storage: Map<string, {
42
+ accessToken?: string | null;
43
+ refreshToken?: string | null;
44
+ }>;
45
+ }
46
+ /**
47
+ * Stockage navigateur (localStorage) multi-serveurs.
48
+ * @implements {MultiServerTokenStorageStrategy}
49
+ */
50
+ export class MultiServerLocalStorageStrategy extends MultiServerTokenStorageStrategy implements MultiServerTokenStorageStrategy {
51
+ /**
52
+ * @param {string} [prefix="cocolight"]
53
+ */
54
+ constructor(prefix?: string);
55
+ /** @type {string} */
56
+ prefix: string;
57
+ /** @private */
58
+ private _key;
59
+ /** @private */
60
+ private _getData;
61
+ /** @private */
62
+ private _setData;
63
+ }
64
+ export type TokenStorageStrategy = import("./TokenStorage.js").TokenStorageStrategy;
65
+ import { TokenStorageStrategy } from "./TokenStorage.js";
@@ -0,0 +1,94 @@
1
+ export class OfflineClientManager {
2
+ /**
3
+ * Attache le gestionnaire offline à une instance ApiClient.
4
+ * Configure la file d'attente offline, le monitoring réseau, et le ping serveur.
5
+ *
6
+ * @param {ApiClient} apiClient - L'instance du client à enrichir.
7
+ * @param {Object} options
8
+ * @param {Object} [options.offlineStorageStrategy] - Stratégie de stockage offline.
9
+ * @param {boolean} [options.disableOfflineMonitoring] - Si true, désactive le monitoring réseau.
10
+ */
11
+ static attachTo(apiClient: ApiClient, options?: {
12
+ offlineStorageStrategy?: any;
13
+ disableOfflineMonitoring?: boolean;
14
+ }): Promise<void>;
15
+ /**
16
+ * Initialise un gestionnaire de mode offline pour un ApiClient donné.
17
+ *
18
+ * @param {ApiClient} apiClient - Instance du client principal.
19
+ */
20
+ constructor(apiClient: ApiClient);
21
+ _clients: Map<any, any>;
22
+ _client: ApiClient;
23
+ /**
24
+ * Retourne un ApiClient configuré avec les bons tokens/baseURL pour rejouer une action offline.
25
+ * Met en cache l'instance pour éviter les recréations.
26
+ *
27
+ * @param {Object} meta - Métadonnées contenant baseURL et tokens.
28
+ * @returns {Promise<ApiClient>}
29
+ */
30
+ getClient(meta: any): Promise<ApiClient>;
31
+ /**
32
+ * Rejoue une action unique depuis la file offline.
33
+ *
34
+ * @param {Object} action - Objet contenant constant, data, options et meta.
35
+ * @returns {Promise<any>}
36
+ */
37
+ replayAction(action: any): Promise<any>;
38
+ /**
39
+ * Démarre la surveillance de l'état réseau.
40
+ * Basé sur navigator.onLine + un ping serveur régulier.
41
+ *
42
+ * @param {Object} [options]
43
+ * @param {number} [options.interval=30000] - Intervalle de vérification en ms.
44
+ * @param {boolean} [options.disableOfflineMonitoring=false] - Pour désactiver.
45
+ */
46
+ startOfflineMonitoring({ interval, disableOfflineMonitoring }?: {
47
+ interval?: number;
48
+ disableOfflineMonitoring?: boolean;
49
+ }): void;
50
+ _monitoringStarted: boolean;
51
+ _offlineMode: any;
52
+ _pingInterval: NodeJS.Timeout;
53
+ /**
54
+ * Change l'état offline et émet un événement si l'état change.
55
+ * Déclenche la relecture de la file si on revient online.
56
+ *
57
+ * @param {boolean} isOffline
58
+ */
59
+ setOfflineMode(isOffline: boolean): void;
60
+ /**
61
+ * Indique si le client est actuellement en mode offline.
62
+ *
63
+ * @returns {boolean}
64
+ */
65
+ isOffline(): boolean;
66
+ /**
67
+ * Met une action API dans la file offline.
68
+ *
69
+ * @param {Object} params
70
+ * @param {string} params.constant - Le nom de l'endpoint.
71
+ * @param {Object} params.data - Données à envoyer.
72
+ * @param {Object} [params.options] - Options de transformation/validation.
73
+ */
74
+ _enqueueOfflineAction({ constant, data, options }: {
75
+ constant: string;
76
+ data: any;
77
+ options?: any;
78
+ }): Promise<void>;
79
+ /**
80
+ * Rejoue toutes les actions offline.
81
+ * Ré-insère celles qui échouent dans la file.
82
+ */
83
+ _replayOfflineQueue(): Promise<void>;
84
+ _offlineQueue: any;
85
+ /**
86
+ * Initialise la stratégie de stockage offline et charge la file d’attente.
87
+ *
88
+ * @param {OfflineQueueStorageStrategy} storageStrategy
89
+ */
90
+ _initOfflineQueue(storageStrategy: OfflineQueueStorageStrategy): Promise<void>;
91
+ _offlineQueueStorage: OfflineQueueStorageStrategy;
92
+ }
93
+ export default OfflineClientManager;
94
+ import ApiClient from "../ApiClient.js";
@@ -0,0 +1,13 @@
1
+ export class OfflineQueueStorageStrategy {
2
+ loadQueue(): Promise<void>;
3
+ saveQueue(queue: any): Promise<void>;
4
+ }
5
+ export class MemoryOfflineStorage extends OfflineQueueStorageStrategy {
6
+ _queue: any[];
7
+ loadQueue(): Promise<any[]>;
8
+ }
9
+ export class LocalStorageOfflineStorage extends OfflineQueueStorageStrategy {
10
+ constructor(key?: string);
11
+ key: string;
12
+ loadQueue(): Promise<any>;
13
+ }
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Stratégie abstraite de stockage des tokens d'accès et de rafraîchissement.
3
+ *
4
+ * @interface
5
+ */
6
+ export class TokenStorageStrategy {
7
+ /**
8
+ * Récupère le token d'accès actuellement stocké.
9
+ *
10
+ * @abstract
11
+ * @returns {string|null} Le token d'accès, ou `null` si non défini.
12
+ */
13
+ getAccessToken(): string | null;
14
+ /**
15
+ * Définit le token d'accès.
16
+ *
17
+ * @abstract
18
+ * @param {string} token - Le token d'accès à stocker.
19
+ * @returns {void}
20
+ */
21
+ setAccessToken(token: string): void;
22
+ /**
23
+ * Récupère le token de rafraîchissement actuellement stocké.
24
+ *
25
+ * @abstract
26
+ * @returns {string|null} Le token de rafraîchissement, ou `null` si non défini.
27
+ */
28
+ getRefreshToken(): string | null;
29
+ /**
30
+ * Définit le token de rafraîchissement.
31
+ *
32
+ * @abstract
33
+ * @param {string} token - Le token de rafraîchissement à stocker.
34
+ * @returns {void}
35
+ */
36
+ setRefreshToken(token: string): void;
37
+ /**
38
+ * Supprime les tokens stockés.
39
+ *
40
+ * @abstract
41
+ * @returns {void}
42
+ */
43
+ clear(): void;
44
+ }
45
+ /**
46
+ * Stratégie de stockage des tokens uniquement en mémoire (volatile).
47
+ *
48
+ * @implements {TokenStorageStrategy}
49
+ */
50
+ export class MemoryStorageStrategy extends TokenStorageStrategy implements TokenStorageStrategy {
51
+ /** @type {string|null} */
52
+ _accessToken: string | null;
53
+ /** @type {string|null} */
54
+ _refreshToken: string | null;
55
+ /** @inheritdoc */
56
+ setAccessToken(token: any): void;
57
+ /** @inheritdoc */
58
+ setRefreshToken(token: any): void;
59
+ }
60
+ /**
61
+ * Stratégie de stockage des tokens via `localStorage` (persistance navigateur).
62
+ *
63
+ * @implements {TokenStorageStrategy}
64
+ */
65
+ export class LocalStorageStrategy extends TokenStorageStrategy implements TokenStorageStrategy {
66
+ /**
67
+ * @param {string} [prefix="cocolight"] - Préfixe utilisé pour les clés dans `localStorage`.
68
+ */
69
+ constructor(prefix?: string);
70
+ /** @type {string} */
71
+ prefix: string;
72
+ /** @inheritdoc */
73
+ setAccessToken(token: any): void;
74
+ /** @inheritdoc */
75
+ setRefreshToken(token: any): void;
76
+ }
@@ -0,0 +1,11 @@
1
+ /** @typedef {import("./MultiServerTokenStorageStrategy.js").MultiServerTokenStorageStrategy} MultiServerTokenStorageStrategy */
2
+ /** @typedef {import("./MultiServerFileStorageStrategy.node.js").MultiServerFileStorageStrategy} MultiServerFileStorageStrategy */
3
+ /**
4
+ * Crée une stratégie multi-serveurs adaptée à l’environnement.
5
+ *
6
+ * @param {'memory'|'localStorage'|'file'|'auto'} [strategyType="auto"]
7
+ * @returns {Promise<MultiServerTokenStorageStrategy>}
8
+ */
9
+ export function createDefaultMultiServerTokenStorageStrategy(strategyType?: "memory" | "localStorage" | "file" | "auto"): Promise<MultiServerTokenStorageStrategy>;
10
+ export type MultiServerTokenStorageStrategy = import("./MultiServerTokenStorageStrategy.js").MultiServerTokenStorageStrategy;
11
+ export type MultiServerFileStorageStrategy = import("./MultiServerFileStorageStrategy.node.js").MultiServerFileStorageStrategy;
@@ -0,0 +1,3 @@
1
+ export function createDefaultOfflineStrategy(offlineStorageStrategy?: string): Promise<MemoryOfflineStorage | LocalStorageOfflineStorage | import("./FileOfflineStorageStrategy.node.js").FileOfflineStorage>;
2
+ import { MemoryOfflineStorage } from "./OfflineQueueStorageStrategy.js";
3
+ import { LocalStorageOfflineStorage } from "./OfflineQueueStorageStrategy.js";
@@ -0,0 +1,12 @@
1
+ /** @typedef {import("./TokenStorage.js").TokenStorageStrategy} TokenStorageStrategy */
2
+ /** @typedef {import("./FileStorageStrategy.node.js").FileStorageStrategy} FileStorageStrategy */
3
+ /**
4
+ * Crée une stratégie de stockage de jetons par défaut en fonction de l'option fournie.
5
+ *
6
+ * @param {'memory'|'localStorage'|'file'|'auto'} [tokenStorageStrategy='auto'] - Stratégie souhaitée.
7
+ * @returns {Promise<TokenStorageStrategy>} Une promesse résolue avec la stratégie sélectionnée.
8
+ * @throws {Error} Lève une erreur si la stratégie choisie n'est pas disponible.
9
+ */
10
+ export function createDefaultTokenStorageStrategy(tokenStorageStrategy?: "memory" | "localStorage" | "file" | "auto"): Promise<TokenStorageStrategy>;
11
+ export type TokenStorageStrategy = import("./TokenStorage.js").TokenStorageStrategy;
12
+ export type FileStorageStrategy = import("./FileStorageStrategy.node.js").FileStorageStrategy;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Crée une fonction réactive qui se relance automatiquement
3
+ * lorsqu'une valeur réactive qu'elle utilise change.
4
+ * @param {Function} fn
5
+ * @returns {Function} le wrapper exécuté
6
+ */
7
+ export function effect(fn: Function): Function;
8
+ /**
9
+ * Exécute une fonction dans un lot, en retardant l'exécution
10
+ * des effets jusqu'à ce que le lot soit terminé.
11
+ * @param {Function} fn
12
+ * @returns {void}
13
+ */
14
+ export function batch(fn: Function): void;
15
+ /**
16
+ * vérifie si un objet est un signal.
17
+ * @param {*} obj
18
+ * @returns {boolean}
19
+ */
20
+ export function isSignal(obj: any): boolean;
21
+ /**
22
+ * Rend un objet profondément réactif.
23
+ * @param {object} obj
24
+ * @returns {object}
25
+ */
26
+ export function reactive(obj: object): object;
27
+ /**
28
+ * Teste si un objet est réactif.
29
+ * @param {*} obj
30
+ * @returns {boolean}
31
+ */
32
+ export function isReactive(obj: any): boolean;
33
+ /**
34
+ * Crée une valeur dérivée automatiquement recalculée.
35
+ * @param {Function} fn
36
+ * @returns {{value: *}}
37
+ */
38
+ export function computed(fn: Function): {
39
+ value: any;
40
+ };
41
+ /**
42
+ * Observe les changements de valeur retournée par un getter.
43
+ * @param {Function} getter
44
+ * @param {Function} callback
45
+ */
46
+ export function watch(getter: Function, callback: Function): void;
47
+ /**
48
+ * Récupère les signaux internes d’un objet réactif.
49
+ * @param {object} obj
50
+ * @returns {Map|null}
51
+ */
52
+ export function getSignals(obj: object): Map<any, any> | null;
53
+ /**
54
+ * Permet à React de s'abonner à une propriété réactive (champ simple).
55
+ * @param {object} obj - Objet réactif
56
+ * @param {string} key - Nom de la propriété à écouter
57
+ * @param {(newValue: any, oldValue: any) => void} callback
58
+ * @returns {() => void} fonction de nettoyage
59
+ */
60
+ export function subscribeTo(obj: object, key: string, callback: (newValue: any, oldValue: any) => void): () => void;
@@ -0,0 +1,2 @@
1
+ export function bufferToReadable(buffer: any): Promise<import("stream").Readable>;
2
+ export function createPassThrough(): Promise<import("stream").PassThrough>;
File without changes