@communecter/cocolight-api-client 1.0.155 → 1.0.156
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/dist/1035.cocolight-api-client.browser.js +1 -1
- package/dist/1035.cocolight-api-client.cjs +1 -1
- package/dist/1483.cocolight-api-client.browser.js +1 -1
- package/dist/1483.cocolight-api-client.cjs +1 -1
- package/dist/1491.cocolight-api-client.browser.js +1 -1
- package/dist/1491.cocolight-api-client.cjs +1 -1
- package/dist/1494.cocolight-api-client.browser.js +1 -1
- package/dist/1494.cocolight-api-client.cjs +1 -1
- package/dist/1641.cocolight-api-client.browser.js +1 -1
- package/dist/1641.cocolight-api-client.cjs +1 -1
- package/dist/1678.cocolight-api-client.browser.js +1 -1
- package/dist/1678.cocolight-api-client.cjs +1 -1
- package/dist/2041.cocolight-api-client.browser.js +1 -1
- package/dist/2041.cocolight-api-client.cjs +1 -1
- package/dist/2302.cocolight-api-client.browser.js +1 -1
- package/dist/2302.cocolight-api-client.cjs +1 -1
- package/dist/2313.cocolight-api-client.browser.js +1 -1
- package/dist/2313.cocolight-api-client.cjs +1 -1
- package/dist/2379.cocolight-api-client.browser.js +1 -1
- package/dist/2379.cocolight-api-client.cjs +1 -1
- package/dist/2439.cocolight-api-client.browser.js +1 -1
- package/dist/2439.cocolight-api-client.cjs +1 -1
- package/dist/2594.cocolight-api-client.browser.js +1 -1
- package/dist/2594.cocolight-api-client.cjs +1 -1
- package/dist/2766.cocolight-api-client.browser.js +1 -1
- package/dist/2766.cocolight-api-client.cjs +1 -1
- package/dist/2812.cocolight-api-client.browser.js +1 -1
- package/dist/2812.cocolight-api-client.cjs +1 -1
- package/dist/2918.cocolight-api-client.browser.js +1 -1
- package/dist/2918.cocolight-api-client.cjs +1 -1
- package/dist/3028.cocolight-api-client.browser.js +1 -1
- package/dist/3028.cocolight-api-client.cjs +1 -1
- package/dist/3330.cocolight-api-client.browser.js +1 -1
- package/dist/3330.cocolight-api-client.cjs +1 -1
- package/dist/3371.cocolight-api-client.browser.js +1 -1
- package/dist/3371.cocolight-api-client.cjs +1 -1
- package/dist/3401.cocolight-api-client.browser.js +1 -1
- package/dist/3401.cocolight-api-client.cjs +1 -1
- package/dist/3516.cocolight-api-client.browser.js +1 -1
- package/dist/3516.cocolight-api-client.cjs +1 -1
- package/dist/3593.cocolight-api-client.browser.js +1 -1
- package/dist/3593.cocolight-api-client.cjs +1 -1
- package/dist/3764.cocolight-api-client.browser.js +1 -1
- package/dist/3764.cocolight-api-client.cjs +1 -1
- package/dist/3873.cocolight-api-client.browser.js +1 -1
- package/dist/3873.cocolight-api-client.cjs +1 -1
- package/dist/3911.cocolight-api-client.browser.js +1 -1
- package/dist/3911.cocolight-api-client.cjs +1 -1
- package/dist/4031.cocolight-api-client.browser.js +1 -1
- package/dist/4031.cocolight-api-client.cjs +1 -1
- package/dist/4152.cocolight-api-client.browser.js +1 -1
- package/dist/4152.cocolight-api-client.cjs +1 -1
- package/dist/4203.cocolight-api-client.browser.js +1 -1
- package/dist/4203.cocolight-api-client.cjs +1 -1
- package/dist/424.cocolight-api-client.browser.js +1 -1
- package/dist/424.cocolight-api-client.cjs +1 -1
- package/dist/435.cocolight-api-client.browser.js +1 -1
- package/dist/435.cocolight-api-client.cjs +1 -1
- package/dist/4402.cocolight-api-client.browser.js +1 -1
- package/dist/4402.cocolight-api-client.cjs +1 -1
- package/dist/4425.cocolight-api-client.browser.js +1 -1
- package/dist/4425.cocolight-api-client.cjs +1 -1
- package/dist/4472.cocolight-api-client.browser.js +1 -1
- package/dist/4472.cocolight-api-client.cjs +1 -1
- package/dist/4914.cocolight-api-client.browser.js +1 -1
- package/dist/4914.cocolight-api-client.cjs +1 -1
- package/dist/4959.cocolight-api-client.browser.js +1 -1
- package/dist/4959.cocolight-api-client.cjs +1 -1
- package/dist/5100.cocolight-api-client.browser.js +1 -1
- package/dist/5100.cocolight-api-client.cjs +1 -1
- package/dist/5111.cocolight-api-client.browser.js +1 -1
- package/dist/5111.cocolight-api-client.cjs +1 -1
- package/dist/5286.cocolight-api-client.browser.js +1 -1
- package/dist/5286.cocolight-api-client.cjs +1 -1
- package/dist/5380.cocolight-api-client.browser.js +1 -1
- package/dist/5380.cocolight-api-client.cjs +1 -1
- package/dist/5383.cocolight-api-client.browser.js +1 -1
- package/dist/5383.cocolight-api-client.cjs +1 -1
- package/dist/5480.cocolight-api-client.browser.js +1 -1
- package/dist/5480.cocolight-api-client.cjs +1 -1
- package/dist/5541.cocolight-api-client.browser.js +1 -1
- package/dist/5541.cocolight-api-client.cjs +1 -1
- package/dist/5839.cocolight-api-client.browser.js +1 -1
- package/dist/5839.cocolight-api-client.cjs +1 -1
- package/dist/5862.cocolight-api-client.browser.js +1 -1
- package/dist/5862.cocolight-api-client.cjs +1 -1
- package/dist/5869.cocolight-api-client.browser.js +1 -1
- package/dist/5869.cocolight-api-client.cjs +1 -1
- package/dist/588.cocolight-api-client.browser.js +1 -1
- package/dist/588.cocolight-api-client.cjs +1 -1
- package/dist/601.cocolight-api-client.browser.js +1 -1
- package/dist/601.cocolight-api-client.cjs +1 -1
- package/dist/6012.cocolight-api-client.browser.js +1 -1
- package/dist/6012.cocolight-api-client.cjs +1 -1
- package/dist/6200.cocolight-api-client.browser.js +1 -1
- package/dist/6200.cocolight-api-client.cjs +1 -1
- package/dist/6369.cocolight-api-client.browser.js +1 -1
- package/dist/6369.cocolight-api-client.cjs +1 -1
- package/dist/7009.cocolight-api-client.browser.js +1 -1
- package/dist/7009.cocolight-api-client.cjs +1 -1
- package/dist/725.cocolight-api-client.browser.js +1 -1
- package/dist/725.cocolight-api-client.cjs +1 -1
- package/dist/7320.cocolight-api-client.browser.js +1 -1
- package/dist/7339.cocolight-api-client.browser.js +1 -1
- package/dist/7339.cocolight-api-client.cjs +1 -1
- package/dist/7398.cocolight-api-client.browser.js +1 -1
- package/dist/7398.cocolight-api-client.cjs +1 -1
- package/dist/7888.cocolight-api-client.browser.js +1 -1
- package/dist/7888.cocolight-api-client.cjs +1 -1
- package/dist/7975.cocolight-api-client.browser.js +1 -1
- package/dist/7975.cocolight-api-client.cjs +1 -1
- package/dist/809.cocolight-api-client.browser.js +1 -1
- package/dist/809.cocolight-api-client.cjs +1 -1
- package/dist/8300.cocolight-api-client.browser.js +1 -1
- package/dist/8300.cocolight-api-client.cjs +1 -1
- package/dist/8317.cocolight-api-client.browser.js +1 -1
- package/dist/8317.cocolight-api-client.cjs +1 -1
- package/dist/8525.cocolight-api-client.browser.js +1 -1
- package/dist/8525.cocolight-api-client.cjs +1 -1
- package/dist/8894.cocolight-api-client.browser.js +1 -1
- package/dist/8894.cocolight-api-client.cjs +1 -1
- package/dist/9301.cocolight-api-client.browser.js +1 -1
- package/dist/9301.cocolight-api-client.cjs +1 -1
- package/dist/9438.cocolight-api-client.browser.js +1 -1
- package/dist/9438.cocolight-api-client.cjs +1 -1
- package/dist/9478.cocolight-api-client.browser.js +1 -1
- package/dist/9478.cocolight-api-client.cjs +1 -1
- package/dist/9568.cocolight-api-client.browser.js +1 -1
- package/dist/9568.cocolight-api-client.cjs +1 -1
- package/dist/cocolight-api-client.browser.js +6 -6
- package/dist/cocolight-api-client.cjs +1 -1
- package/dist/cocolight-api-client.vite.mjs.js +1 -1
- package/dist/cocolight-api-client.vite.mjs.js.map +1 -1
- package/package.json +7 -17
- package/types/Api.d.ts +1 -0
- package/types/ApiClient.d.ts +10 -1
- package/types/api/BaseEntity.d.ts +2 -0
- package/types/utils/OfflineClientManager.d.ts +8 -0
- package/dist/1035.cocolight-api-client.mjs.js +0 -1
- package/dist/1483.cocolight-api-client.mjs.js +0 -1
- package/dist/1491.cocolight-api-client.mjs.js +0 -1
- package/dist/1494.cocolight-api-client.mjs.js +0 -1
- package/dist/1641.cocolight-api-client.mjs.js +0 -1
- package/dist/1678.cocolight-api-client.mjs.js +0 -1
- package/dist/2041.cocolight-api-client.mjs.js +0 -1
- package/dist/2302.cocolight-api-client.mjs.js +0 -1
- package/dist/2313.cocolight-api-client.mjs.js +0 -1
- package/dist/2379.cocolight-api-client.mjs.js +0 -1
- package/dist/2439.cocolight-api-client.mjs.js +0 -1
- package/dist/2594.cocolight-api-client.mjs.js +0 -1
- package/dist/2766.cocolight-api-client.mjs.js +0 -1
- package/dist/2812.cocolight-api-client.mjs.js +0 -1
- package/dist/2918.cocolight-api-client.mjs.js +0 -1
- package/dist/3028.cocolight-api-client.mjs.js +0 -1
- package/dist/3330.cocolight-api-client.mjs.js +0 -1
- package/dist/3371.cocolight-api-client.mjs.js +0 -1
- package/dist/3401.cocolight-api-client.mjs.js +0 -1
- package/dist/3516.cocolight-api-client.mjs.js +0 -1
- package/dist/3593.cocolight-api-client.mjs.js +0 -1
- package/dist/3764.cocolight-api-client.mjs.js +0 -1
- package/dist/3873.cocolight-api-client.mjs.js +0 -1
- package/dist/3911.cocolight-api-client.mjs.js +0 -1
- package/dist/4031.cocolight-api-client.mjs.js +0 -1
- package/dist/4152.cocolight-api-client.mjs.js +0 -1
- package/dist/4203.cocolight-api-client.mjs.js +0 -1
- package/dist/424.cocolight-api-client.mjs.js +0 -1
- package/dist/435.cocolight-api-client.mjs.js +0 -1
- package/dist/4402.cocolight-api-client.mjs.js +0 -1
- package/dist/4425.cocolight-api-client.mjs.js +0 -1
- package/dist/4472.cocolight-api-client.mjs.js +0 -1
- package/dist/4914.cocolight-api-client.mjs.js +0 -1
- package/dist/4959.cocolight-api-client.mjs.js +0 -1
- package/dist/5100.cocolight-api-client.mjs.js +0 -1
- package/dist/5111.cocolight-api-client.mjs.js +0 -1
- package/dist/5286.cocolight-api-client.mjs.js +0 -1
- package/dist/5380.cocolight-api-client.mjs.js +0 -1
- package/dist/5383.cocolight-api-client.mjs.js +0 -1
- package/dist/5480.cocolight-api-client.mjs.js +0 -1
- package/dist/5541.cocolight-api-client.mjs.js +0 -1
- package/dist/5839.cocolight-api-client.mjs.js +0 -1
- package/dist/5862.cocolight-api-client.mjs.js +0 -1
- package/dist/5869.cocolight-api-client.mjs.js +0 -1
- package/dist/588.cocolight-api-client.mjs.js +0 -1
- package/dist/601.cocolight-api-client.mjs.js +0 -1
- package/dist/6012.cocolight-api-client.mjs.js +0 -1
- package/dist/6200.cocolight-api-client.mjs.js +0 -1
- package/dist/6369.cocolight-api-client.mjs.js +0 -1
- package/dist/7009.cocolight-api-client.mjs.js +0 -1
- package/dist/725.cocolight-api-client.mjs.js +0 -1
- package/dist/7339.cocolight-api-client.mjs.js +0 -1
- package/dist/7398.cocolight-api-client.mjs.js +0 -1
- package/dist/7888.cocolight-api-client.mjs.js +0 -1
- package/dist/7975.cocolight-api-client.mjs.js +0 -1
- package/dist/809.cocolight-api-client.mjs.js +0 -1
- package/dist/8300.cocolight-api-client.mjs.js +0 -1
- package/dist/8317.cocolight-api-client.mjs.js +0 -1
- package/dist/8525.cocolight-api-client.mjs.js +0 -1
- package/dist/8894.cocolight-api-client.mjs.js +0 -1
- package/dist/9301.cocolight-api-client.mjs.js +0 -1
- package/dist/9438.cocolight-api-client.mjs.js +0 -1
- package/dist/9478.cocolight-api-client.mjs.js +0 -1
- package/dist/9568.cocolight-api-client.mjs.js +0 -1
- package/dist/cocolight-api-client.mjs.js +0 -1
- package/src/Api.ts +0 -348
- package/src/ApiClient.ts +0 -1994
- package/src/EJSONType.ts +0 -103
- package/src/api/Action.ts +0 -665
- package/src/api/Answer.ts +0 -1392
- package/src/api/Badge.ts +0 -143
- package/src/api/BaseEntity.ts +0 -6384
- package/src/api/Classified.ts +0 -175
- package/src/api/Comment.ts +0 -280
- package/src/api/EndpointApi.ts +0 -2270
- package/src/api/EndpointApi.types.ts +0 -6566
- package/src/api/EntityRegistry.ts +0 -324
- package/src/api/Event.ts +0 -360
- package/src/api/Form.ts +0 -282
- package/src/api/News.ts +0 -547
- package/src/api/Notifications.ts +0 -196
- package/src/api/Organization.ts +0 -771
- package/src/api/Poi.ts +0 -242
- package/src/api/Project.ts +0 -545
- package/src/api/User.ts +0 -1889
- package/src/api/UserApi.ts +0 -192
- package/src/api/serverDataType/Action.ts +0 -177
- package/src/api/serverDataType/Answer.ts +0 -106
- package/src/api/serverDataType/Classified.ts +0 -152
- package/src/api/serverDataType/Comment.ts +0 -88
- package/src/api/serverDataType/Country.ts +0 -1
- package/src/api/serverDataType/Event.ts +0 -112
- package/src/api/serverDataType/Form.ts +0 -157
- package/src/api/serverDataType/News.ts +0 -138
- package/src/api/serverDataType/Notification.ts +0 -81
- package/src/api/serverDataType/Organization.ts +0 -111
- package/src/api/serverDataType/Poi.ts +0 -75
- package/src/api/serverDataType/Project.ts +0 -115
- package/src/api/serverDataType/User.ts +0 -112
- package/src/api/serverDataType/Zone.ts +0 -33
- package/src/api/serverDataType/common.ts +0 -84
- package/src/costum/normalize.ts +0 -7
- package/src/costum/registry.ts +0 -138
- package/src/costum/runtime-map.ts +0 -221
- package/src/costum/runtime.ts +0 -274
- package/src/costum/schemas/CercleTravailleursSociauxLiberauxLaPlumeSociale.ts +0 -19
- package/src/costum/schemas/FabEn.ts +0 -19
- package/src/costum/schemas/LivingLabInnovationSocialeBraspanon.ts +0 -19
- package/src/costum/schemas/alfph.ts +0 -27
- package/src/costum/schemas/campagne.ts +0 -19
- package/src/costum/schemas/chtitube.ts +0 -19
- package/src/costum/schemas/circuitCourt.ts +0 -19
- package/src/costum/schemas/cmcasHauteBretagne.ts +0 -19
- package/src/costum/schemas/coFinancementTierslieux.ts +0 -27
- package/src/costum/schemas/coeurNumerique.ts +0 -19
- package/src/costum/schemas/communLundi.ts +0 -19
- package/src/costum/schemas/cressReunion.ts +0 -35
- package/src/costum/schemas/cressReunionNetwork.ts +0 -35
- package/src/costum/schemas/ctenat.ts +0 -43
- package/src/costum/schemas/cyberReunion.ts +0 -19
- package/src/costum/schemas/ekisphere.ts +0 -35
- package/src/costum/schemas/equipementsSportifs974.ts +0 -19
- package/src/costum/schemas/federationDesCae.ts +0 -19
- package/src/costum/schemas/formationGenerique.ts +0 -35
- package/src/costum/schemas/franceTierslieux.ts +0 -19
- package/src/costum/schemas/hinaura.ts +0 -27
- package/src/costum/schemas/hubmayotte.ts +0 -19
- package/src/costum/schemas/hubnouvellecaledonie.ts +0 -19
- package/src/costum/schemas/hubpolynesiefrancaise.ts +0 -19
- package/src/costum/schemas/hubreunion.ts +0 -19
- package/src/costum/schemas/hubterritoires.ts +0 -19
- package/src/costum/schemas/hubwallisetfutuna.ts +0 -19
- package/src/costum/schemas/hva.ts +0 -27
- package/src/costum/schemas/ibv2.ts +0 -19
- package/src/costum/schemas/institutBleu.ts +0 -19
- package/src/costum/schemas/journalInsoumisChambery.ts +0 -27
- package/src/costum/schemas/kpacite.ts +0 -19
- package/src/costum/schemas/laCompagnieDesTierslieux.ts +0 -43
- package/src/costum/schemas/laMaisonDesFaiseurs.ts +0 -19
- package/src/costum/schemas/laReunionPourUnNumeriqueInclusif.ts +0 -19
- package/src/costum/schemas/laSemaineDesTierslieux.ts +0 -19
- package/src/costum/schemas/labEnCommuns.ts +0 -19
- package/src/costum/schemas/lakou.ts +0 -27
- package/src/costum/schemas/lesCommunsDesTierslieux.ts +0 -19
- package/src/costum/schemas/mayottePourUnNumeriqueInclusif.ts +0 -19
- package/src/costum/schemas/meir.ts +0 -27
- package/src/costum/schemas/navigatorDesTierslieux.ts +0 -19
- package/src/costum/schemas/notragora.ts +0 -27
- package/src/costum/schemas/nouvellecaledoniePourUnNumeriqueInclusif.ts +0 -19
- package/src/costum/schemas/openAtlas.ts +0 -19
- package/src/costum/schemas/polynesieFrancaisePourUnNumeriqueInclusif.ts +0 -19
- package/src/costum/schemas/prdr.ts +0 -19
- package/src/costum/schemas/reseauTierslieux.ts +0 -19
- package/src/costum/schemas/rfflabs.ts +0 -19
- package/src/costum/schemas/ries.ts +0 -19
- package/src/costum/schemas/siteDuPactePourLaTransition.ts +0 -27
- package/src/costum/schemas/sportSanteBienetre.ts +0 -43
- package/src/costum/schemas/suppa.ts +0 -19
- package/src/costum/schemas/terramies.ts +0 -19
- package/src/costum/schemas/testeTplFormation.ts +0 -35
- package/src/costum/schemas/tierslieuxbelgique.ts +0 -19
- package/src/costum/schemas/tierslieuxorg1.ts +0 -35
- package/src/costum/schemas/transiter.ts +0 -35
- package/src/costum/schemas/vhelioPeiTour2025.ts +0 -19
- package/src/costum/schemas/wallisetfutunaPourUnNumeriqueInclusif.ts +0 -19
- package/src/costum/symbol.ts +0 -26
- package/src/costum/types.ts +0 -895
- package/src/endpoints.module.ts +0 -4253
- package/src/error.ts +0 -86
- package/src/forms/entityForm.ts +0 -142
- package/src/index.ts +0 -161
- package/src/mixin/UserMixin.ts +0 -4
- package/src/types/api-responses.ts +0 -217
- package/src/types/entities.ts +0 -58
- package/src/types/error-guards.ts +0 -230
- package/src/types/index.ts +0 -41
- package/src/types/payloads.ts +0 -21
- package/src/types/transforms.ts +0 -119
- package/src/utils/FileOfflineStorageStrategy.node.ts +0 -50
- package/src/utils/FileStorageStrategy.node.ts +0 -63
- package/src/utils/MultiServerFileStorageStrategy.node.ts +0 -67
- package/src/utils/MultiServerTokenStorageStrategy.ts +0 -139
- package/src/utils/OfflineClientManager.ts +0 -216
- package/src/utils/OfflineQueueStorageStrategy.ts +0 -47
- package/src/utils/TokenStorage.ts +0 -77
- package/src/utils/compat.ts +0 -12
- package/src/utils/createDefaultMultiServerTokenStorageStrategy.ts +0 -35
- package/src/utils/createDefaultOfflineStrategy.ts +0 -34
- package/src/utils/createDefaultTokenStorageStrategy.ts +0 -33
- package/src/utils/reactive.ts +0 -243
- package/src/utils/stream-utils.node.ts +0 -12
package/src/utils/reactive.ts
DELETED
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
// reactive.ts - Système maison combinant Signal + Proxy pour réactivité profonde et fine
|
|
2
|
-
|
|
3
|
-
const effectStack: (() => void)[] = [];
|
|
4
|
-
const computedCache = new WeakMap();
|
|
5
|
-
const signalRegistry = new WeakMap();
|
|
6
|
-
let batchDepth = 0;
|
|
7
|
-
const pendingEffects = new Set<() => void>();
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Crée une fonction réactive qui se relance automatiquement
|
|
11
|
-
* lorsqu'une valeur réactive qu'elle utilise change.
|
|
12
|
-
*/
|
|
13
|
-
export function effect(fn: () => void): () => void {
|
|
14
|
-
const wrapper = () => {
|
|
15
|
-
try {
|
|
16
|
-
effectStack.push(wrapper);
|
|
17
|
-
fn();
|
|
18
|
-
} finally {
|
|
19
|
-
effectStack.pop();
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
wrapper();
|
|
23
|
-
return wrapper;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Exécute une fonction dans un lot, en retardant l'exécution
|
|
28
|
-
* des effets jusqu'à ce que le lot soit terminé.
|
|
29
|
-
*/
|
|
30
|
-
export function batch(fn: () => void): void {
|
|
31
|
-
batchDepth++;
|
|
32
|
-
try {
|
|
33
|
-
fn();
|
|
34
|
-
} finally {
|
|
35
|
-
batchDepth--;
|
|
36
|
-
if (batchDepth === 0) {
|
|
37
|
-
const effects = Array.from(pendingEffects);
|
|
38
|
-
pendingEffects.clear();
|
|
39
|
-
for (const effect of effects) (effect as () => void)();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Crée un signal observable pour une valeur primitive ou complexe.
|
|
46
|
-
*/
|
|
47
|
-
function createSignal(initialValue?: any): any {
|
|
48
|
-
let value = initialValue;
|
|
49
|
-
const subscribers = new Set();
|
|
50
|
-
|
|
51
|
-
const signal = {
|
|
52
|
-
get value() {
|
|
53
|
-
const currentEffect = effectStack[effectStack.length - 1];
|
|
54
|
-
if (currentEffect) subscribers.add(currentEffect);
|
|
55
|
-
return value;
|
|
56
|
-
},
|
|
57
|
-
set value(newValue) {
|
|
58
|
-
if (value !== newValue) {
|
|
59
|
-
value = newValue;
|
|
60
|
-
if (batchDepth > 0) {
|
|
61
|
-
subscribers.forEach((fn) => pendingEffects.add(fn as () => void));
|
|
62
|
-
} else {
|
|
63
|
-
subscribers.forEach((fn) => (fn as () => void)());
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
subscribe(fn: any) {
|
|
68
|
-
subscribers.add(fn);
|
|
69
|
-
return () => subscribers.delete(fn);
|
|
70
|
-
},
|
|
71
|
-
__isSignal: true
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
return signal;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* vérifie si un objet est un signal.
|
|
79
|
-
* @param {*} obj
|
|
80
|
-
* @returns {boolean}
|
|
81
|
-
*/
|
|
82
|
-
export function isSignal(obj: any) {
|
|
83
|
-
return obj && obj.__isSignal === true;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
function toRaw(obj: any) {
|
|
87
|
-
return isSignal(obj) ? obj.value : obj;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
function _wrapArray(arr: any[], path: string[]): any {
|
|
91
|
-
const proxy = new Proxy(arr, {
|
|
92
|
-
get(target, prop, receiver) {
|
|
93
|
-
if (typeof prop === "string" && !isNaN(+prop)) {
|
|
94
|
-
const val = target[+prop];
|
|
95
|
-
return isReactive(val) ? val : _wrapReactive(val, [...path, prop] as any);
|
|
96
|
-
}
|
|
97
|
-
return Reflect.get(target, prop, receiver);
|
|
98
|
-
},
|
|
99
|
-
set(target, prop, value) {
|
|
100
|
-
if (typeof prop === "string" && !isNaN(+prop)) {
|
|
101
|
-
const val = _wrapReactive(value, [...path, prop] as any);
|
|
102
|
-
target[+prop] = val;
|
|
103
|
-
}
|
|
104
|
-
return true;
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
return proxy;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
function _wrapReactive(obj: any, path: any = []) {
|
|
111
|
-
if (typeof obj !== "object" || obj === null) return obj;
|
|
112
|
-
if (Array.isArray(obj)) return _wrapArray(obj, path);
|
|
113
|
-
if (obj.__isReactive) return obj;
|
|
114
|
-
|
|
115
|
-
// Ne pas proxifier les types d'upload (Buffer, File, Blob, Stream)
|
|
116
|
-
// car cela corromprait leurs données internes
|
|
117
|
-
// Buffer (Node.js)
|
|
118
|
-
if (typeof Buffer !== "undefined" && Buffer.isBuffer(obj)) return obj;
|
|
119
|
-
// File (Browser)
|
|
120
|
-
if (typeof File !== "undefined" && obj instanceof File) return obj;
|
|
121
|
-
// Blob (Browser)
|
|
122
|
-
if (typeof Blob !== "undefined" && obj instanceof Blob) return obj;
|
|
123
|
-
// ReadableStream (Node.js)
|
|
124
|
-
if (obj && typeof obj.pipe === "function" && typeof obj.on === "function") return obj;
|
|
125
|
-
// Date objects
|
|
126
|
-
if (obj instanceof Date) return obj;
|
|
127
|
-
|
|
128
|
-
// ✨ AJOUT : Ne pas proxifier les instances d'entités BaseEntity
|
|
129
|
-
if (obj.__entityTag) return obj;
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
const signalMap = new Map();
|
|
133
|
-
const proxy = new Proxy(obj, {
|
|
134
|
-
|
|
135
|
-
get(target, prop) {
|
|
136
|
-
if (prop === "__raw") return target;
|
|
137
|
-
if (prop === "__isReactive") return true;
|
|
138
|
-
|
|
139
|
-
if (!signalMap.has(prop)) {
|
|
140
|
-
const val = target[prop];
|
|
141
|
-
const reactiveVal = _wrapReactive(val, [...path, String(prop)] as any);
|
|
142
|
-
const signal = createSignal(reactiveVal);
|
|
143
|
-
signalMap.set(prop, signal);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
const signal = signalMap.get(prop);
|
|
147
|
-
return signal.value;
|
|
148
|
-
},
|
|
149
|
-
|
|
150
|
-
set(target, prop, value) {
|
|
151
|
-
const val = _wrapReactive(value, [...path, String(prop)] as any);
|
|
152
|
-
if (!signalMap.has(prop)) {
|
|
153
|
-
const signal = createSignal(val);
|
|
154
|
-
signalMap.set(prop, signal);
|
|
155
|
-
}
|
|
156
|
-
signalMap.get(prop)!.value = val;
|
|
157
|
-
target[prop] = toRaw(val);
|
|
158
|
-
return true;
|
|
159
|
-
},
|
|
160
|
-
|
|
161
|
-
deleteProperty(target, prop) {
|
|
162
|
-
signalMap.delete(prop);
|
|
163
|
-
return Reflect.deleteProperty(target, prop);
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
|
|
167
|
-
signalRegistry.set(proxy, signalMap);
|
|
168
|
-
return proxy;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* Rend un objet profondément réactif.
|
|
173
|
-
* @param {object} obj
|
|
174
|
-
* @returns {object}
|
|
175
|
-
*/
|
|
176
|
-
export function reactive(obj: any) {
|
|
177
|
-
if (typeof obj !== "object" || obj === null) return obj;
|
|
178
|
-
if (obj.__isReactive) return obj;
|
|
179
|
-
return _wrapReactive(obj);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/**
|
|
183
|
-
* Teste si un objet est réactif.
|
|
184
|
-
* @param {*} obj
|
|
185
|
-
* @returns {boolean}
|
|
186
|
-
*/
|
|
187
|
-
export function isReactive(obj: any) {
|
|
188
|
-
return obj !== null && typeof obj === "object" && obj.__isReactive === true;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* Crée une valeur dérivée automatiquement recalculée.
|
|
193
|
-
* @param {Function} fn
|
|
194
|
-
* @returns {{value: *}}
|
|
195
|
-
*/
|
|
196
|
-
export function computed(fn: any) {
|
|
197
|
-
if (computedCache.has(fn)) return computedCache.get(fn);
|
|
198
|
-
|
|
199
|
-
const result = createSignal();
|
|
200
|
-
effect(() => result.value = fn());
|
|
201
|
-
computedCache.set(fn, result);
|
|
202
|
-
return result;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* Observe les changements de valeur retournée par un getter.
|
|
207
|
-
* @param {Function} getter
|
|
208
|
-
* @param {Function} callback
|
|
209
|
-
*/
|
|
210
|
-
export function watch(getter: any, callback: any) {
|
|
211
|
-
let oldValue: any;
|
|
212
|
-
effect(() => {
|
|
213
|
-
const newValue = getter();
|
|
214
|
-
if (newValue !== oldValue) {
|
|
215
|
-
callback(newValue, oldValue);
|
|
216
|
-
oldValue = newValue;
|
|
217
|
-
}
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
/**
|
|
222
|
-
* Récupère les signaux internes d'un objet réactif.
|
|
223
|
-
* @param {object} obj
|
|
224
|
-
* @returns {Map|null}
|
|
225
|
-
*/
|
|
226
|
-
export function getSignals(obj: any) {
|
|
227
|
-
if (!isReactive(obj)) return null;
|
|
228
|
-
return signalRegistry.get(obj);
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
* Permet à React de s'abonner à une propriété réactive (champ simple).
|
|
233
|
-
* @param {object} obj - Objet réactif
|
|
234
|
-
* @param {string} key - Nom de la propriété à écouter
|
|
235
|
-
* @param {(newValue: any, oldValue: any) => void} callback
|
|
236
|
-
* @returns {() => void} fonction de nettoyage
|
|
237
|
-
*/
|
|
238
|
-
export function subscribeTo(obj: any, key: any, callback: any) {
|
|
239
|
-
const signals = getSignals(obj);
|
|
240
|
-
if (!signals || !signals.has(key)) return () => {};
|
|
241
|
-
const signal = signals.get(key);
|
|
242
|
-
return signal?.subscribe?.(() => callback(signal.value)) ?? (() => {});
|
|
243
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// utils/stream-utils.node.ts
|
|
2
|
-
import type { Readable, PassThrough } from "stream";
|
|
3
|
-
|
|
4
|
-
export async function bufferToReadable(buffer: Buffer): Promise<Readable> {
|
|
5
|
-
const { Readable } = await import("stream");
|
|
6
|
-
return Readable.from(buffer);
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export async function createPassThrough(): Promise<PassThrough> {
|
|
10
|
-
const { PassThrough } = await import("stream");
|
|
11
|
-
return new PassThrough();
|
|
12
|
-
}
|